@ -3,6 +3,7 @@ package org.nl.b_lms.pda.service.impl;
import cn.hutool.core.util.ObjectUtil ;
import cn.hutool.core.util.ObjectUtil ;
import com.alibaba.fastjson.JSONArray ;
import com.alibaba.fastjson.JSONArray ;
import com.alibaba.fastjson.JSONObject ;
import com.alibaba.fastjson.JSONObject ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import lombok.extern.slf4j.Slf4j ;
import lombok.extern.slf4j.Slf4j ;
import org.apache.commons.lang3.StringUtils ;
import org.apache.commons.lang3.StringUtils ;
@ -10,6 +11,10 @@ import org.nl.b_lms.pda.service.VehicleTwoService;
import org.nl.b_lms.pdm.info.dao.PdmBiContainerinbound ;
import org.nl.b_lms.pdm.info.dao.PdmBiContainerinbound ;
import org.nl.b_lms.pdm.info.service.IPdmBiContainerinboundService ;
import org.nl.b_lms.pdm.info.service.IPdmBiContainerinboundService ;
import org.nl.b_lms.pdm.productSpec.service.impl.PdmProductSpecServiceImpl ;
import org.nl.b_lms.pdm.productSpec.service.impl.PdmProductSpecServiceImpl ;
import org.nl.b_lms.pdm.storagevehicleext.dao.MdPbStoragevehicleext ;
import org.nl.b_lms.pdm.storagevehicleext.service.IMdPbStoragevehicleextService ;
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation ;
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService ;
import org.nl.b_lms.sch.point.dao.SchBasePoint ;
import org.nl.b_lms.sch.point.dao.SchBasePoint ;
import org.nl.b_lms.sch.point.service.IschBasePointService ;
import org.nl.b_lms.sch.point.service.IschBasePointService ;
import org.nl.b_lms.sch.task.dao.SchBaseTask ;
import org.nl.b_lms.sch.task.dao.SchBaseTask ;
@ -37,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils ;
import org.springframework.util.CollectionUtils ;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.Arrays ;
import java.util.List ;
import java.util.List ;
import java.util.Optional ;
import java.util.Optional ;
import java.util.stream.Collectors ;
import java.util.stream.Collectors ;
@ -70,7 +76,8 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
@Autowired
@Autowired
private LmsToMesService lmsToMesService ;
private LmsToMesService lmsToMesService ;
@Autowired
private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService ;
/ * *
/ * *
* 点位服务
* 点位服务
* /
* /
@ -79,8 +86,9 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
@Autowired
@Autowired
private InBussManageService inBussManageService ;
private InBussManageService inBussManageService ;
@Autowired
@Autowired
private IPdmBiContainerinboundService iPdmBiContainerinbound Service ;
private IMdPbStoragevehicleextService mdPbStoragevehicleext Service ;
@Override
@Override
@Transactional ( rollbackFor = Exception . class )
@Transactional ( rollbackFor = Exception . class )
@ -183,9 +191,9 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
public JSONObject boxIn ( JSONObject whereJson ) {
public JSONObject boxIn ( JSONObject whereJson ) {
// 调用接口
// 调用接口
String startCode = whereJson . getString ( "point_code" ) ;
String startCode = whereJson . getString ( "point_code" ) ;
if ( "MXRKW1" . equals ( startCode ) ) {
if ( "MXRKW1" . equals ( startCode ) ) {
inBoxManageService . boxBinVehicle ( whereJson ) ;
inBoxManageService . boxBinVehicle ( whereJson ) ;
} else if ( "THRKDJW1" . equals ( startCode ) ) {
} else if ( "THRKDJW1" . equals ( startCode ) ) {
inBoxManageService . boxBinVehicleByTHRK ( whereJson ) ;
inBoxManageService . boxBinVehicleByTHRK ( whereJson ) ;
}
}
JSONObject result = new JSONObject ( ) ;
JSONObject result = new JSONObject ( ) ;
@ -211,39 +219,26 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
String a = JSONObject . toJSONString ( msg ) ;
String a = JSONObject . toJSONString ( msg ) ;
List < String > list = JSONObject . parseObject ( a , List . class ) ;
List < String > list = JSONObject . parseObject ( a , List . class ) ;
Optional < String > 称重 = list . stream ( ) . filter ( m - > m . contains ( "称重" ) ) . findAny ( ) ;
Optional < String > 称重 = list . stream ( ) . filter ( m - > m . contains ( "称重" ) ) . findAny ( ) ;
if ( 称重 . isPresent ( ) ) {
if ( 称重 . isPresent ( ) ) {
System . out . println ( 称重 . get ( ) ) ;
System . out . println ( 称重 . get ( ) ) ;
}
}
}
}
@Override
@Override
@Transactional ( rollbackFor = Exception . class )
@Transactional ( rollbackFor = Exception . class )
public JSONObject reback ( JSONObject whereJson ) {
public JSONObject reback ( JSONObject whereJson ) {
WQLObject extTab = WQLObject . getWQLObject ( "md_pb_storagevehicleext" ) ;
String bill_type = whereJson . getString ( "bill_type" ) ;
String bill_type = whereJson . getString ( "bill_type" ) ;
whereJson . put ( "material_barcode" , whereJson . getString ( "box_no" ) ) ;
whereJson . put ( "material_barcode" , whereJson . getString ( "box_no" ) ) ;
whereJson . put ( "device_code" , whereJson . getString ( "point_code" ) ) ;
whereJson . put ( "device_code" , whereJson . getString ( "point_code" ) ) ;
if ( "RK1002" . equals ( whereJson . getString ( "point_code" ) ) ) {
if ( IOSEnum . SPECIAL_POINTS . code ( "异常出库口" ) . equals ( whereJson . getString ( "point_code" ) ) ) {
List < SchBaseTask > list = ischBaseTaskService . list ( new QueryWrapper < SchBaseTask > ( )
List < SchBaseTask > list = ischBaseTaskService . list ( new QueryWrapper < SchBaseTask > ( )
. select ( "task_id" )
. select ( "task_id" )
. eq ( "point_code2" , "RK1004" )
. eq ( "point_code2" , IOSEnum . SPECIAL_POINTS . code ( "异常出库口" ) )
. eq ( "task_type" , "010706" )
. eq ( "task_type" , "010706" )
. eq ( "is_delete" , "0" )
. eq ( "is_delete" , "0" )
. lt ( "task_status" , TaskStatusEnum . FINISHED . getCode ( ) ) ) ;
. lt ( "task_status" , TaskStatusEnum . FINISHED . getCode ( ) ) ) ;
if ( ! CollectionUtils . isEmpty ( list ) ) {
if ( ! CollectionUtils . isEmpty ( list ) ) {
throw new BadRequestException ( "稍后再试,异常口存在正在执行的任务" + list . stream ( ) . map ( SchBaseTask : : getTask_id ) . collect ( Collectors . joining ( "," ) ) ) ;
throw new BadRequestException ( "稍后再试,异常口存在正在执行的任务" + list . stream ( ) . map ( SchBaseTask : : getTask_id ) . collect ( Collectors . joining ( "," ) ) ) ;
}
Param forceWeight = SpringContextHolder . getBean ( SysParamServiceImpl . class ) . findByCode ( "force_weight" ) ;
if ( forceWeight ! = null & & "1" . equals ( forceWeight . getValue ( ) ) ) {
PdmBiContainerinbound one = iPdmBiContainerinboundService . getOne ( new QueryWrapper < PdmBiContainerinbound > ( )
. eq ( "box" , whereJson . getString ( "box_no" ) ) ) ;
if ( one ! = null & & ! StringUtils . isEmpty ( one . getRemark ( ) ) ) {
List < String > remark = JSONObject . parseObject ( one . getRemark ( ) , List . class ) ;
Optional < String > 称重 = remark . stream ( ) . filter ( m - > m . contains ( "称重" ) ) . findAny ( ) ;
if ( 称重 . isPresent ( ) ) {
throw new BadRequestException ( "开启称重强制校验" + 称重 . get ( ) ) ;
}
}
}
}
}
}
if ( bill_type . equals ( "1" ) ) {
if ( bill_type . equals ( "1" ) ) {
@ -256,15 +251,17 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
whereJson . put ( "bill_type" , IOSEnum . IN_TYPE . code ( "手工入库" ) ) ;
whereJson . put ( "bill_type" , IOSEnum . IN_TYPE . code ( "手工入库" ) ) ;
}
}
whereJson . put ( "box_no" , whereJson . getString ( "box_no" ) ) ;
whereJson . put ( "box_no" , whereJson . getString ( "box_no" ) ) ;
JSONArray resultJSONArray = WQLObject . getWQLObject ( "pdm_bi_subpackagerelation" ) . query ( "package_box_sn = '" + whereJson . getString ( "material_barcode" ) + "' AND status in ('0','1')" ) . getResultJSONArray ( 0 ) ;
List < PdmBiSubpackagerelation > sub_list = ipdmBiSubpackagerelationService . list ( new LambdaQueryWrapper < PdmBiSubpackagerelation > ( )
if ( ObjectUtil . isEmpty ( resultJSONArray ) ) {
. eq ( PdmBiSubpackagerelation : : getPackage_box_sn , whereJson . getString ( "material_barcode" ) )
. in ( PdmBiSubpackagerelation : : getStatus , Arrays . asList ( '0' , '1' ) ) ) ;
if ( ObjectUtil . isEmpty ( sub_list ) ) {
throw new BadRequestException ( "未查询到子卷包装信息!" ) ;
throw new BadRequestException ( "未查询到子卷包装信息!" ) ;
}
}
String material_barcode = "" ;
String material_barcode = "" ;
List < String > subs = new ArrayList < > ( ) ;
List < String > subs = new ArrayList < > ( ) ;
for ( int i = 0 ; i < re sultJSONArray . size ( ) ; i + + ) {
for ( int i = 0 ; i < sub_ lis t . size ( ) ; i + + ) {
JSONObject resultObj = resultJSONArray . getJSONObjec t ( i ) ;
PdmBiSubpackagerelation sub_jo = sub_list . get ( i ) ;
String containerName = re sultO bj. getString ( "container_name" ) ;
String containerName = sub_ jo . getContainer_name ( ) ;
subs . add ( containerName ) ;
subs . add ( containerName ) ;
if ( i = = 0 ) {
if ( i = = 0 ) {
material_barcode = containerName ;
material_barcode = containerName ;
@ -273,10 +270,10 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
}
}
}
}
whereJson . put ( "material_barcode" , material_barcode ) ;
whereJson . put ( "material_barcode" , material_barcode ) ;
if ( StringUtils . isBlank ( re sultJSONArray . getJSONObjec t ( 0 ) . getString ( "package_box_sn" ) ) ) {
if ( StringUtils . isBlank ( sub_ lis t . get ( 0 ) . getPackage_box_sn ( ) ) ) {
throw new BadRequestException ( "木箱号不能为空!" ) ;
throw new BadRequestException ( "木箱号不能为空!" ) ;
}
}
String boxNo = re sultJSONArray . getJSONObjec t ( 0 ) . getString ( "package_box_sn" ) ;
String boxNo = sub_ lis t . get ( 0 ) . getPackage_box_sn ( ) ;
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService . getOne (
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService . getOne (
new QueryWrapper < BstIvtBoxinfo > ( ) . lambda ( )
new QueryWrapper < BstIvtBoxinfo > ( ) . lambda ( )
. eq ( BstIvtBoxinfo : : getBox_no , boxNo )
. eq ( BstIvtBoxinfo : : getBox_no , boxNo )
@ -286,46 +283,31 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
boxDao . setIs_packing ( "1" ) ;
boxDao . setIs_packing ( "1" ) ;
iBstIvtBoxinfoService . updateById ( boxDao ) ;
iBstIvtBoxinfoService . updateById ( boxDao ) ;
} else {
} else {
//查询mes木箱信息,插入木箱信息表
throw new BadRequestException ( "为查询到木箱【" + boxNo + "】相关信息" ) ;
try {
JSONObject jo = new JSONObject ( ) ;
jo . put ( "box_no" , boxNo ) ;
lmsToMesService . momGetPackingInfo ( jo ) ;
} catch ( Exception ex ) {
throw new BadRequestException ( "MES系统未查询到木箱信息!" ) ;
}
BstIvtBoxinfo boxDao1 = iBstIvtBoxinfoService . getOne (
new QueryWrapper < BstIvtBoxinfo > ( ) . lambda ( )
. eq ( BstIvtBoxinfo : : getBox_no , boxNo )
) ;
boxDao1 . setIs_packing ( "1" ) ;
iBstIvtBoxinfoService . updateById ( boxDao1 ) ;
whereJson . put ( "vehicleType" , boxDao1 . getVehicle_type ( ) ) ;
}
}
// 更新载具对应木箱信息
// 更新载具对应木箱信息
JSONObject jsonExt = extTab . query ( "storagevehicle_code = '" + whereJson . getString ( "vehicle_code" ) + "'" ) . uniqueResult ( 0 ) ;
MdPbStoragevehicleext ext_jo = mdPbStoragevehicleextService . getOne ( new LambdaQueryWrapper < MdPbStoragevehicleext > ( ) . eq ( MdPbStoragevehicleext : : getStoragevehicle_code , whereJson . getString ( "vehicle_code" ) ) ) ;
if ( ObjectUtil . isEmpty ( js onExt ) ) {
if ( ObjectUtil . isEmpty ( ext_jo ) ) {
throw new BadRequestException ( "载具不存在!" + whereJson . getString ( "vehicle_code" ) ) ;
throw new BadRequestException ( "载具不存在!" + whereJson . getString ( "vehicle_code" ) ) ;
}
}
int hasTask = ischBaseTaskService . count ( new QueryWrapper < SchBaseTask > ( )
int hasTask = ischBaseTaskService . count ( new QueryWrapper < SchBaseTask > ( )
. eq ( "is_delete" , "0" )
. eq ( "is_delete" , "0" )
. eq ( "vehicle_code2" , whereJson . getString ( "vehicle_code" ) )
. eq ( "vehicle_code2" , whereJson . getString ( "vehicle_code" ) )
. lt ( "task_status" , TaskStatusEnum . FINISHED . getCode ( ) ) ) ;
. lt ( "task_status" , TaskStatusEnum . FINISHED . getCode ( ) ) ) ;
if ( hasTask > 0 ) {
if ( hasTask > 0 ) {
throw new BadRequestException ( "托盘" + whereJson . getString ( "vehicle_code" ) + "存在执行的任务" ) ;
throw new BadRequestException ( "托盘" + whereJson . getString ( "vehicle_code" ) + "存在执行的任务" ) ;
}
}
String pcsn = js onExt . getString ( "pcsn" ) ;
String pcsn = ext_jo . getPcsn ( ) ;
if ( StringUtils . isNotEmpty ( pcsn ) ) {
if ( StringUtils . isNotEmpty ( pcsn ) ) {
JSONArray stIvtStructattr = WQLObject . getWQLObject ( "st_ivt_structattr" ) . query ( "storagevehicle_code = '" + pcsn + "'" ) . getResultJSONArray ( 0 ) ;
JSONArray stIvtStructattr = WQLObject . getWQLObject ( "st_ivt_structattr" ) . query ( "storagevehicle_code = '" + pcsn + "'" ) . getResultJSONArray ( 0 ) ;
if ( stIvtStructattr ! = null & & stIvtStructattr . size ( ) > 0 ) {
if ( stIvtStructattr ! = null & & stIvtStructattr . size ( ) > 0 ) {
throw new BadRequestException ( "当前托盘" + whereJson . getString ( "vehicle_code" ) + "已经绑定木箱" + pcsn ) ;
throw new BadRequestException ( "当前托盘" + whereJson . getString ( "vehicle_code" ) + "已经绑定木箱" + pcsn ) ;
}
}
}
}
jsonExt . put ( "pcsn" , whereJson . getString ( "box_no" ) ) ;
ext_jo . setPcsn ( whereJson . getString ( "box_no" ) ) ;
extTab . update ( js onExt ) ;
mdPbStoragevehicleextService . updateById ( ext_ jo) ;
inBussManageService . inTask ( whereJson ) ;
inBussManageService . inTask ( whereJson ) ;
PdmProductSpecServiceImpl . doRecord ( SpecEnum . RK_YC , null , Boolean . TRUE , null , subs ) ;
JSONObject result = new JSONObject ( ) ;
JSONObject result = new JSONObject ( ) ;
result . put ( "message" , "入库成功!" ) ;
result . put ( "message" , "入库成功!" ) ;
return result ;
return result ;