@ -40,6 +40,10 @@ import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.enums.TASKEnum ;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService ;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.* ;
import org.nl.b_lms.storage_manage.md.dao.MdPdStorageVehicleInfo ;
import org.nl.b_lms.storage_manage.md.dao.MdPdStoragevehicleext ;
import org.nl.b_lms.storage_manage.md.dao.mapper.MdPdStoragevehicleextMapper ;
import org.nl.b_lms.storage_manage.md.dao.mapper.MdStorageVehicleInfoMapper ;
import org.nl.common.enums.NoticeTypeEnum ;
import org.nl.common.enums.PackageInfoIvtEnum ;
import org.nl.common.enums.SpecEnum ;
@ -84,8 +88,7 @@ import java.util.stream.Collectors;
@Slf4j
public class AcsToWmsServiceImpl implements AcsToWmsService {
private static Map < String , String > Task_Status_Convers = MapOf . of ( "1" , TaskStatusEnum . EXECUTING . getCode ( ) , "2" , TaskStatusEnum . FINISHED . getCode ( ) , "3" , "0" ) ;
private static Map < String , String > Task_Status_Convers = MapOf . of ( "1" , TaskStatusEnum . EXECUTING . getCode ( ) , "2" , TaskStatusEnum . FINISHED . getCode ( ) , "3" , "0" ) ;
private final StorPublicService storPublicService ;
@ -101,7 +104,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
private final ISysNoticeService noticeService ;
@Autowired
private IPdmBiContainerinboundService iPdmBiContainerinboundService ;
private IPdmBiContainerinboundService iPdmBiContainerinboundService ;
/ * *
* 入库处理类服务
@ -147,7 +150,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
private IbstIvtPackageinfoivtService packageinfoivtService ;
@Autowired
private IMdpbBoxtypeService iMdpbBoxtypeService ;
@ -158,7 +160,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
private final IPdmBiSlittingproductionplanService slittingproductionplanService ;
private final OutBussManageService outBussManageService ;
private final OutBussManageService outBussManageService ;
@Autowired
private ProductOutTwoService productOutTwoService ;
@ -168,6 +170,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Autowired
private IBstIvtShafttubeivtService shafttubeivtService ;
@Autowired
private MdStorageVehicleInfoMapper mdStorageVehicleInfoMapper ;
@Autowired
private MdPdStoragevehicleextMapper mdPdStoragevehicleextMapper ;
/ * *
* task_id : 任务标识
@ -195,39 +204,39 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
JSONObject task = WQLObject . getWQLObject ( "SCH_BASE_Task" )
. query ( "task_id = '" + task_id + "'" )
. uniqueResult ( 0 ) ;
if ( ObjectUtil . isEmpty ( task ) ) {
throw new BadRequestException ( "未找到任务标识为:" + task_id + "的任务!" ) ;
if ( ObjectUtil . isEmpty ( task ) ) {
throw new BadRequestException ( "未找到任务标识为:" + task_id + "的任务!" ) ;
}
if ( "1" . equals ( task . getString ( "is_delete" ) ) ) {
log . debug ( task_id + "当前LMS任务已删除,不需要再次反馈更新!" ) ;
if ( "1" . equals ( task . getString ( "is_delete" ) ) ) {
log . debug ( task_id + "当前LMS任务已删除,不需要再次反馈更新!" ) ;
continue ;
}
if ( "08,07" . contains ( task . getString ( "task_status" ) ) ) {
log . debug ( task_id + "当前LMS任务完成或取消,不需要再次反馈更新!" ) ;
if ( "08,07" . contains ( task . getString ( "task_status" ) ) ) {
log . debug ( task_id + "当前LMS任务完成或取消,不需要再次反馈更新!" ) ;
continue ;
}
if ( StrUtil . isNotEmpty ( row . getString ( "car_no" ) ) ) {
WQLObject . getWQLObject ( "SCH_BASE_Task" )
. update ( MapOf . of ( "car_no" , row . getString ( "car_no" ) ) , "task_id = '" + task_id + "'" ) ;
. update ( MapOf . of ( "car_no" , row . getString ( "car_no" ) ) , "task_id = '" + task_id + "'" ) ;
}
String handleClassName = task . getString ( "handle_class" ) ;
if ( StrUtil . isEmpty ( handleClassName ) ) {
throw new BadRequestException ( "当前任务的处理类未找到!" ) ;
}
AbstractAcsTask abstractTask = ( AbstractAcsTask ) SpringContextHolder . getBean ( Class . forName ( task . getString ( "handle_class" ) ) ) ;
abstractTask . updateTaskStatus ( row , Task_Status_Convers . get ( row . getString ( "task_status" ) ) ) ;
AbstractAcsTask abstractTask = ( AbstractAcsTask ) SpringContextHolder . getBean ( Class . forName ( task . getString ( "handle_class" ) ) ) ;
abstractTask . updateTaskStatus ( row , Task_Status_Convers . get ( row . getString ( "task_status" ) ) ) ;
} else {
throw new BadRequestException ( "任务标识为:" + task_id + "的任务正在操作中!" ) ;
}
} catch ( BadRequestException ex ) {
log . error ( task_id + "acs更新任务失败:{}" , ex ) ;
WQLObject . getWQLObject ( "SCH_BASE_Task" ) . update ( MapOf . of ( "remark" , DateUtil . now ( ) + "更新" + row . getString ( "task_status" ) + "失败:" + ex . getMessage ( ) ) , "task_id = '" + task_id + "'" ) ;
} catch ( BadRequestException ex ) {
log . error ( task_id + "acs更新任务失败:{}" , ex ) ;
WQLObject . getWQLObject ( "SCH_BASE_Task" ) . update ( MapOf . of ( "remark" , DateUtil . now ( ) + "更新" + row . getString ( "task_status" ) + "失败:" + ex . getMessage ( ) ) , "task_id = '" + task_id + "'" ) ;
throw ex ;
} catch ( Exception ex ) {
log . error ( task_id + "acs更新任务失败:{}" , ex ) ;
WQLObject . getWQLObject ( "SCH_BASE_Task" ) . update ( MapOf . of ( "remark" , DateUtil . now ( ) + "更新" + row . getString ( "task_status" ) + "失败,系统异常" ) , "task_id = '" + task_id + "'" ) ;
} catch ( Exception ex ) {
log . error ( task_id + "acs更新任务失败:{}" , ex ) ;
WQLObject . getWQLObject ( "SCH_BASE_Task" ) . update ( MapOf . of ( "remark" , DateUtil . now ( ) + "更新" + row . getString ( "task_status" ) + "失败,系统异常" ) , "task_id = '" + task_id + "'" ) ;
throw ex ;
} finally {
} finally {
if ( lock . isLocked ( ) & & lock . isHeldByCurrentThread ( ) ) {
lock . unlock ( ) ;
}
@ -267,7 +276,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
@Override
public Map < String , Object > orderFinish ( String string ) {
JSONObject orderJson = JSONObject . parseObject ( string ) ;
@ -1079,7 +1087,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result . put ( "status" , HttpStatus . OK . value ( ) ) ;
result . put ( "message" , "反馈成功,ACS上报无货且此时LMS该点位没有任何任务!" ) ;
return result ;
} else {
} else {
boolean need_clean = false ;
for ( int i = 0 ; i < left_arr . size ( ) ; i + + ) {
JSONObject left_jo = left_arr . getJSONObject ( i ) ;
@ -1104,7 +1112,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result . put ( "status" , HttpStatus . OK . value ( ) ) ;
result . put ( "message" , "反馈成功,ACS上报无货且此时LMS该点位没有任何任务!" ) ;
return result ;
} else {
} else {
boolean need_clean = false ;
for ( int i = 0 ; i < right_arr . size ( ) ; i + + ) {
JSONObject right_jo = right_arr . getJSONObject ( i ) ;
@ -1200,8 +1208,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
@Override
@Transactional ( rollbackFor = Exception . class )
@SneakyThrows
@ -1236,93 +1242,86 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if ( ObjectUtil . isEmpty ( whereJson . getString ( "material_barcode" ) ) ) {
throw new BadRequestException ( "子卷号不能为空!" ) ;
}
// 5-木箱入库.木箱回库
String materialBarcode = whereJson . getString ( "material_barcode" ) ;
if ( materialBarcode . contains ( "BRMX" ) ) {
String brBox = Arrays . asList ( materialBarcode . split ( "," ) ) . get ( 0 ) ;
whereJson . put ( "box_no" , brBox . replace ( "BR" , "" ) ) ;
inBoxManageService . inBox ( whereJson ) ;
} else {
if ( whereJson . getIntValue ( "weight" ) < = 0 ) {
throw new BadRequestException ( "上报的重量不能为0!" ) ;
}
List < String > errorMsg = new ArrayList < > ( ) ;
JSONObject jsonObject = ComPareUtil . CompareWhight ( whereJson ) ;
Boolean inbound = jsonObject . getBoolean ( "inbound" ) ;
Boolean compaerResult = jsonObject . getBoolean ( "compaer_result" ) ;
String box_no = jsonObject . getString ( "box_no" ) ;
Integer box_weight = jsonObject . getIntValue ( "box_weight" ) ;
Integer current_weight = jsonObject . getIntValue ( "current_weight" ) ;
List < String > containers = jsonObject . getObject ( "containers" , List . class ) ;
int count = taskService . count ( new QueryWrapper < SchBaseTask > ( )
. eq ( "point_code1" , whereJson . getString ( "device_code" ) )
. eq ( "vehicle_code2" , whereJson . getString ( "vehicle_code" ) )
. eq ( "is_delete" , "0" )
. lt ( "task_status" , TaskStatusEnum . EXECUTING . getCode ( ) ) ) ;
JSONObject jsonExt = WQLObject . getWQLObject ( "md_pb_storagevehicleext" ) . query ( "storagevehicle_code = '" + whereJson . getString ( "vehicle_code" ) + "'" ) . uniqueResult ( 0 ) ;
if ( ObjectUtil . isEmpty ( jsonExt ) ) {
errorMsg . add ( "载具无数据" + whereJson . getString ( "vehicle_code" ) ) ;
} else {
String pcsn = jsonExt . getString ( "pcsn" ) ;
if ( StringUtils . isNotEmpty ( pcsn ) ) {
JSONArray stIvtStructattr = WQLObject . getWQLObject ( "st_ivt_structattr" ) . query ( "storagevehicle_code = '" + pcsn + "'" ) . getResultJSONArray ( 0 ) ;
if ( stIvtStructattr ! = null & & stIvtStructattr . size ( ) > 0 ) {
errorMsg . add ( "载具" + whereJson . getString ( "vehicle_code" ) + "已绑定" + pcsn ) ;
}
}
}
if ( ! compaerResult ) {
errorMsg . add ( "称重" + current_weight + "不匹配" + box_weight ) ;
Param notify = SpringContextHolder . getBean ( SysParamServiceImpl . class ) . findByCode ( "weight_notify" ) ;
if ( notify ! = null & & StringUtils . isNotEmpty ( notify . getValue ( ) ) ) {
AutoSendFeiShu . sendFeiShuMsg ( notify . getValue ( ) , box_no + "称重" + current_weight + ",理论" + box_weight , "二期称重异常提醒" ) ;
if ( whereJson . getIntValue ( "weight" ) < = 0 ) {
throw new BadRequestException ( "上报的重量不能为0!" ) ;
}
List < String > errorMsg = new ArrayList < > ( ) ;
JSONObject jsonObject = ComPareUtil . CompareWhight ( whereJson ) ;
Boolean inbound = jsonObject . getBoolean ( "inbound" ) ;
Boolean compaerResult = jsonObject . getBoolean ( "compaer_result" ) ;
String box_no = jsonObject . getString ( "box_no" ) ;
Integer box_weight = jsonObject . getIntValue ( "box_weight" ) ;
Integer current_weight = jsonObject . getIntValue ( "current_weight" ) ;
List < String > containers = jsonObject . getObject ( "containers" , List . class ) ;
int count = taskService . count ( new QueryWrapper < SchBaseTask > ( )
. eq ( "point_code1" , whereJson . getString ( "device_code" ) )
. eq ( "vehicle_code2" , whereJson . getString ( "vehicle_code" ) )
. eq ( "is_delete" , "0" )
. lt ( "task_status" , TaskStatusEnum . EXECUTING . getCode ( ) ) ) ;
MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper . selectOne ( new QueryWrapper < MdPdStoragevehicleext > ( ) . eq ( "storagevehicle_code" , whereJson . getString ( "vehicle_code" ) ) ) ;
if ( ObjectUtil . isEmpty ( mdPdStoragevehicleext ) ) {
errorMsg . add ( "载具无数据" + whereJson . getString ( "vehicle_code" ) ) ;
} else {
String pcsn = mdPdStoragevehicleext . getPcsn ( ) ;
if ( StringUtils . isNotEmpty ( pcsn ) ) {
JSONArray stIvtStructattr = WQLObject . getWQLObject ( "st_ivt_structattr" ) . query ( "storagevehicle_code = '" + pcsn + "'" ) . getResultJSONArray ( 0 ) ;
if ( stIvtStructattr ! = null & & stIvtStructattr . size ( ) > 0 ) {
errorMsg . add ( "载具" + whereJson . getString ( "vehicle_code" ) + "已绑定" + pcsn ) ;
}
}
if ( ! inbound ) {
errorMsg . add ( "手动至异常口" ) ;
}
if ( count > 0 ) {
errorMsg . add ( whereJson . getString ( "vehicle_code" ) + "存在任务" ) ;
}
if ( ! compaerResult ) {
errorMsg . add ( "称重" + current_weight + "不匹配" + box_weight ) ;
Param notify = SpringContextHolder . getBean ( SysParamServiceImpl . class ) . findByCode ( "weight_notify" ) ;
if ( notify ! = null & & StringUtils . isNotEmpty ( notify . getValue ( ) ) ) {
AutoSendFeiShu . sendFeiShuMsg ( notify . getValue ( ) , box_no + "称重" + current_weight + ",理论" + box_weight , "二期称重异常提醒" ) ;
}
//"material_barcode":"C1101,","device_code":"RK1018","weight":500.95,"vehicle_code":"B01401","type":"1"
if ( CollectionUtils . isEmpty ( errorMsg ) ) {
whereJson . put ( "bill_type" , IOSEnum . IN_TYPE . code ( "生产入库" ) ) ;
inBussManageService . inTask ( whereJson ) ;
PdmProductSpecServiceImpl . doRecord ( SpecEnum . RK , null , Boolean . TRUE , null , containers ) ;
}
if ( ! inbound ) {
errorMsg . add ( "手动至异常口" ) ;
}
if ( count > 0 ) {
errorMsg . add ( whereJson . getString ( "vehicle_code" ) + "存在任务" ) ;
}
//"material_barcode":"C1101,","device_code":"RK1018","weight":500.95,"vehicle_code":"B01401","type":"1"
if ( CollectionUtils . isEmpty ( errorMsg ) ) {
whereJson . put ( "bill_type" , IOSEnum . IN_TYPE . code ( "生产入库" ) ) ;
inBussManageService . inTask ( whereJson ) ;
PdmProductSpecServiceImpl . doRecord ( SpecEnum . RK , null , Boolean . TRUE , null , containers ) ;
} else {
iPdmBiContainerinboundService
. update ( new UpdateWrapper < PdmBiContainerinbound > ( )
. set ( "remark" , JSONObject . toJSONString ( errorMsg ) )
. eq ( "box" , box_no ) ) ;
//更新子卷入库备注信息
JSONObject jsonTaskParam = new JSONObject ( ) ;
//创建异常任务去异常入库口
//入库口
jsonTaskParam . put ( "point_code1" , "RK1018" ) ;
//异常位
jsonTaskParam . put ( "point_code2" , "RK1003" ) ;
jsonTaskParam . put ( "vehicle_code" , jsonObject . getString ( "box_no" ) ) ;
jsonTaskParam . put ( "vehicle_code2" , whereJson . getString ( "vehicle_code" ) ) ;
JSONObject request_param = new JSONObject ( ) ;
if ( whereJson . getString ( "vehicle_code" ) . startsWith ( "A" ) ) {
request_param . put ( "containerType" , "2" ) ;
} else if ( whereJson . getString ( "vehicle_code" ) . startsWith ( "B" ) ) {
request_param . put ( "containerType" , "1" ) ;
} else {
iPdmBiContainerinboundService
. update ( new UpdateWrapper < PdmBiContainerinbound > ( )
. set ( "remark" , JSONObject . toJSONString ( errorMsg ) )
. eq ( "box" , box_no ) ) ;
//更新子卷入库备注信息
JSONObject jsonTaskParam = new JSONObject ( ) ;
//创建异常任务去异常入库口
//入库口
jsonTaskParam . put ( "point_code1" , "RK1018" ) ;
//异常位
jsonTaskParam . put ( "point_code2" , "RK1003" ) ;
jsonTaskParam . put ( "vehicle_code" , jsonObject . getString ( "box_no" ) ) ;
jsonTaskParam . put ( "vehicle_code2" , whereJson . getString ( "vehicle_code" ) ) ;
JSONObject request_param = new JSONObject ( ) ;
if ( whereJson . getString ( "vehicle_code" ) . startsWith ( "A" ) ) {
request_param . put ( "containerType" , "2" ) ;
} else if ( whereJson . getString ( "vehicle_code" ) . startsWith ( "B" ) ) {
request_param . put ( "containerType" , "1" ) ;
} else {
throw new BadRequestException ( "托盘号有误,无法找到对应的托盘类型!" ) ;
}
// 更新子卷包装关系为生成
JSONObject param = new JSONObject ( ) ;
param . put ( "status" , IOSEnum . IS_NOTANDYES . code ( "否" ) ) ;
WQLObject . getWQLObject ( "pdm_bi_subpackagerelation" )
. update ( param , "package_box_sn = '" + jsonObject . getString ( "box_no" ) + "'" ) ;
jsonTaskParam . put ( "request_param" , request_param ) ;
TwoExceptionInTask bean = SpringContextHolder . getBean ( TwoExceptionInTask . class ) ;
bean . createTask ( jsonTaskParam ) ;
bean . immediateNotifyAcs ( null ) ;
PdmProductSpecServiceImpl . doRecord ( SpecEnum . TYCK , null , Boolean . FALSE , errorMsg . toString ( ) , containers ) ;
}
throw new BadRequestException ( "托盘号有误,无法找到对应的托盘类型!" ) ;
}
// 更新子卷包装关系为生成
JSONObject param = new JSONObject ( ) ;
param . put ( "status" , IOSEnum . IS_NOTANDYES . code ( "否" ) ) ;
WQLObject . getWQLObject ( "pdm_bi_subpackagerelation" )
. update ( param , "package_box_sn = '" + jsonObject . getString ( "box_no" ) + "'" ) ;
jsonTaskParam . put ( "request_param" , request_param ) ;
TwoExceptionInTask bean = SpringContextHolder . getBean ( TwoExceptionInTask . class ) ;
bean . createTask ( jsonTaskParam ) ;
bean . immediateNotifyAcs ( null ) ;
PdmProductSpecServiceImpl . doRecord ( SpecEnum . TYCK , null , Boolean . FALSE , errorMsg . toString ( ) , containers ) ;
}
} else if ( type . equals ( IOSEnum . ACSTOLMS_TYPE . code ( "空盘入库" ) ) ) {
@ -1354,80 +1353,74 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
inBoxManageService . inBox ( whereJson ) ;
} else if ( type . equals ( IOSEnum . ACSTOLMS_TYPE . code ( "退货入库" ) ) ) {
String materialBarcode = whereJson . getString ( "material_barcode" ) ;
if ( StrUtil . isEmpty ( materialBarcode ) ) {
if ( StrUtil . isEmpty ( materialBarcode ) ) {
throw new BadRequestException ( "当前木箱号不能为空!" ) ;
}
String [ ] box_arr = materialBarcode . split ( "-" ) ;
if ( box_arr . length < 2 ) {
// 处理分割结果不足的情况
throw new BadRequestException ( "当前木箱号数据异常!" + box_arr . toString ( ) ) ;
throw new BadRequestException ( "当前木箱号数据异常!" + box_arr . toString ( ) ) ;
}
if ( box_arr [ 1 ] . equals ( "9" ) ) {
//空木箱入库
// -{"material_barcode":"MX250324000091-1","device_code":"CK2005","vehicle_code":"B00165","type":"6"}
whereJson . put ( "box_no" , box_arr [ 0 ] ) ;
inBoxManageService . inBox ( whereJson ) ;
} else {
//退货入库
WQLObject vehicleTab = WQLObject . getWQLObject ( "md_pb_storagevehicleinfo" ) ;
// 载具扩展属性表
WQLObject veExtTab = WQLObject . getWQLObject ( "md_pb_storagevehicleext" ) ;
//获取当前的入库类型
whereJson . put ( "bill_type" , "000" + box_arr [ 1 ] ) ;
whereJson . put ( "box_no" , box_arr [ 0 ] ) ;
JSONArray resultJSONArray = WQLObject . getWQLObject ( "pdm_bi_subpackagerelation" ) . query ( "package_box_sn = '" + whereJson . getString ( "box_no" ) + "' AND status in ('0','1','99')" ) . getResultJSONArray ( 0 ) ;
if ( ObjectUtil . isEmpty ( resultJSONArray ) ) {
throw new BadRequestException ( "未查询到子卷包装信息!" ) ;
}
String material_barcode = "" ;
for ( int i = 0 ; i < resultJSONArray . size ( ) ; i + + ) {
JSONObject resultObj = resultJSONArray . getJSONObject ( i ) ;
if ( i = = 0 ) {
material_barcode = resultObj . getString ( "container_name" ) ;
} else {
material_barcode + = "," + resultObj . getString ( "container_name" ) ;
}
}
JSONObject jsonVehicle = vehicleTab . query ( "storagevehicle_code = '" + whereJson . getString ( "vehicle_code" ) + "'" )
. uniqueResult ( 0 ) ;
if ( ObjectUtil . isEmpty ( jsonVehicle ) ) {
throw new BadRequestException ( "载具不存在!" ) ;
}
int hasTask = taskService . count ( new QueryWrapper < SchBaseTask > ( )
. eq ( "is_delete" , "0" )
. eq ( "vehicle_code2" , whereJson . getString ( "vehicle_code" ) )
. lt ( "task_status" , TaskStatusEnum . FINISHED . getCode ( ) ) ) ;
if ( hasTask > 0 ) {
throw new BadRequestException ( "托盘" + whereJson . getString ( "vehicle_code" ) + "存在执行的任务" ) ;
}
JSONObject ext_jo = veExtTab . query ( "storagevehicle_code = '" + jsonVehicle . getString ( "storagevehicle_code" ) + "'" ) . uniqueResult ( 0 ) ;
if ( ObjectUtil . isEmpty ( ext_jo ) ) {
JSONObject jsonVeExt = new JSONObject ( ) ;
jsonVeExt . put ( "storagevehicleext_id" , org . nl . common . utils . IdUtil . getLongId ( ) ) ;
jsonVeExt . put ( "storagevehicle_id" , jsonVehicle . getLongValue ( "storagevehicle_id" ) ) ;
jsonVeExt . put ( "storagevehicle_code" , jsonVehicle . getString ( "storagevehicle_code" ) ) ;
jsonVeExt . put ( "storagevehicle_type" , jsonVehicle . getString ( "storagevehicle_type" ) ) ;
jsonVeExt . put ( "pcsn" , whereJson . getString ( "box_no" ) ) ;
jsonVeExt . put ( "device_uuid" , org . nl . common . utils . IdUtil . getLongId ( ) ) ;
jsonVeExt . put ( "update_time" , DateUtil . now ( ) ) ;
veExtTab . insert ( jsonVeExt ) ;
//退货入库
//获取当前的入库类型
whereJson . put ( "bill_type" , "000" + box_arr [ 1 ] ) ;
whereJson . put ( "box_no" , box_arr [ 0 ] ) ;
JSONArray resultJSONArray = WQLObject . getWQLObject ( "pdm_bi_subpackagerelation" ) . query ( "package_box_sn = '" + whereJson . getString ( "box_no" ) + "' AND status in ('0','1','99')" ) . getResultJSONArray ( 0 ) ;
if ( ObjectUtil . isEmpty ( resultJSONArray ) ) {
throw new BadRequestException ( "未查询到子卷包装信息!" ) ;
}
String material_barcode = "" ;
for ( int i = 0 ; i < resultJSONArray . size ( ) ; i + + ) {
JSONObject resultObj = resultJSONArray . getJSONObject ( i ) ;
if ( i = = 0 ) {
material_barcode = resultObj . getString ( "container_name" ) ;
} else {
String pcsn = ext_jo . getString ( "pcsn" ) ;
if ( StringUtils . isNotEmpty ( pcsn ) ) {
JSONArray stIvtStructattr = WQLObject . getWQLObject ( "st_ivt_structattr" ) . query ( "storagevehicle_code = '" + pcsn + "'" ) . getResultJSONArray ( 0 ) ;
if ( stIvtStructattr ! = null & & stIvtStructattr . size ( ) > 0 ) {
throw new BadRequestException ( "当前托盘" + whereJson . getString ( "vehicle_code" ) + "已经绑定木箱" + pcsn ) ;
}
material_barcode + = "," + resultObj . getString ( "container_name" ) ;
}
}
MdPdStorageVehicleInfo mdPdStorageVehicleInfo = mdStorageVehicleInfoMapper . selectOne ( new QueryWrapper < MdPdStorageVehicleInfo > ( ) . eq ( "storagevehicle_code" , whereJson . getString ( "vehicle_code" ) ) ) ;
if ( ObjectUtil . isEmpty ( mdPdStorageVehicleInfo ) ) {
throw new BadRequestException ( "载具不存在!" ) ;
}
int hasTask = taskService . count ( new QueryWrapper < SchBaseTask > ( )
. eq ( "is_delete" , "0" )
. eq ( "vehicle_code2" , whereJson . getString ( "vehicle_code" ) )
. lt ( "task_status" , TaskStatusEnum . FINISHED . getCode ( ) ) ) ;
if ( hasTask > 0 ) {
throw new BadRequestException ( "托盘" + whereJson . getString ( "vehicle_code" ) + "存在执行的任务" ) ;
}
MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper . selectOne ( new QueryWrapper < MdPdStoragevehicleext > ( ) . eq ( "storagevehicle_code" , mdPdStorageVehicleInfo . getStoragevehicle_code ( ) ) ) ;
if ( ObjectUtil . isEmpty ( mdPdStoragevehicleext ) ) {
MdPdStoragevehicleext mdPdStoragevehicleextInsert = new MdPdStoragevehicleext ( ) ;
mdPdStoragevehicleextInsert . setStoragevehicleext_id ( org . nl . common . utils . IdUtil . getStringId ( ) ) ;
mdPdStoragevehicleextInsert . setStoragevehicle_code ( mdPdStorageVehicleInfo . getStoragevehicle_code ( ) ) ;
mdPdStoragevehicleextInsert . setStoragevehicle_id ( mdPdStorageVehicleInfo . getStoragevehicle_id ( ) ) ;
mdPdStoragevehicleextInsert . setStoragevehicle_type ( mdPdStorageVehicleInfo . getStoragevehicle_type ( ) ) ;
mdPdStoragevehicleextInsert . setPcsn ( whereJson . getString ( "box_no" ) ) ;
mdPdStoragevehicleextInsert . setDevice_uuid ( org . nl . common . utils . IdUtil . getLongId ( ) ) ;
mdPdStoragevehicleextInsert . setUpdate_time ( DateUtil . now ( ) ) ;
mdPdStoragevehicleextMapper . insert ( mdPdStoragevehicleextInsert ) ;
} else {
String pcsn = mdPdStoragevehicleext . getPcsn ( ) ;
if ( StringUtils . isNotEmpty ( pcsn ) ) {
JSONArray stIvtStructattr = WQLObject . getWQLObject ( "st_ivt_structattr" ) . query ( "storagevehicle_code = '" + pcsn + "'" ) . getResultJSONArray ( 0 ) ;
if ( stIvtStructattr ! = null & & stIvtStructattr . size ( ) > 0 ) {
throw new BadRequestException ( "当前托盘" + whereJson . getString ( "vehicle_code" ) + "已经绑定木箱" + pcsn ) ;
}
ext_jo . put ( "pcsn" , whereJson . getString ( "box_no" ) ) ;
ext_jo . put ( "device_uuid" , org . nl . common . utils . IdUtil . getLongId ( ) ) ;
ext_jo . put ( "update_time" , DateUtil . now ( ) ) ;
veExtTab . update ( ext_jo ) ;
}
whereJson . put ( "material_barcode" , material_barcode ) ;
inBussManageService . inTask ( whereJson ) ;
mdPdStoragevehicleext . setPcsn ( whereJson . getString ( "box_no" ) ) ;
mdPdStoragevehicleext . setDevice_uuid ( org . nl . common . utils . IdUtil . getLongId ( ) ) ;
mdPdStoragevehicleext . setUpdate_time ( DateUtil . now ( ) ) ;
mdPdStoragevehicleextMapper . updateById ( mdPdStoragevehicleext ) ;
}
whereJson . put ( "material_barcode" , material_barcode ) ;
inBussManageService . inTask ( whereJson ) ;
}
result . put ( "status" , HttpStatus . OK . value ( ) ) ;
result . put ( "message" , "下发成功!" ) ;
@ -1730,7 +1723,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
updateWrapper . set ( PdmBiSlittingproductionplan : : getWeight , NumberUtil . round ( weight , 2 ) . toString ( ) )
. eq ( PdmBiSlittingproductionplan : : getContainer_name , subVolume ) ;
boolean update = slittingproductionplanService . update ( updateWrapper ) ;
PdmProductSpecServiceImpl . doRecord ( SpecEnum . FQ_WG , param , Boolean . TRUE , null , subVolume ) ;
PdmProductSpecServiceImpl . doRecord ( SpecEnum . FQ_WG , param , Boolean . TRUE , null , subVolume ) ;
if ( update ) {
res . put ( "code" , cn . hutool . http . HttpStatus . HTTP_OK ) ;
res . put ( "message" , "更新成功!" ) ;
@ -1749,33 +1742,33 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Override
public JSONObject getBoxInfo ( JSONObject param ) {
String material_barcode = param . getString ( "material_barcode" ) ;
if ( StringUtils . isEmpty ( material_barcode ) ) {
if ( StringUtils . isEmpty ( material_barcode ) ) {
throw new BadRequestException ( "material_barcode参数不能为空" ) ;
}
String isUncap = "1" ;
String boxOr子卷 = material_barcode . split ( "-" ) [ 0 ] ;
BstIvtBoxinfo boxNo ;
String desiccantTemplate = null ;
if ( boxOr子卷 . contains ( "MX" ) ) {
if ( boxOr子卷 . contains ( "MX" ) ) {
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService . getOne (
new QueryWrapper < BstIvtBoxinfo > ( ) . lambda ( )
. eq ( BstIvtBoxinfo : : getBox_no , boxOr子卷 )
) ;
if ( boxDao = = null ) {
throw new BadRequestException ( "当前木箱码在木箱表不存在" + boxOr子卷 ) ;
if ( boxDao = = null ) {
throw new BadRequestException ( "当前木箱码在木箱表不存在" + boxOr子卷 ) ;
}
boxNo = boxDao ;
} else {
boxNo = boxDao ;
} else {
JSONObject sub_jo = WQLObject . getWQLObject ( "pdm_bi_subpackagerelation" )
. query ( "container_name = '" + boxOr子卷 + "' order by create_time desc" ) . uniqueResult ( 0 ) ;
if ( sub_jo = = null | | StringUtils . isEmpty ( sub_jo . getString ( "package_box_sn" ) ) ) {
throw new BadRequestException ( "当前子卷不存在子卷包装关系" + boxOr子卷 ) ;
if ( sub_jo = = null | | StringUtils . isEmpty ( sub_jo . getString ( "package_box_sn" ) ) ) {
throw new BadRequestException ( "当前子卷不存在子卷包装关系" + boxOr子卷 ) ;
}
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService . getOne (
new QueryWrapper < BstIvtBoxinfo > ( ) . lambda ( )
. eq ( BstIvtBoxinfo : : getBox_no , sub_jo . getString ( "package_box_sn" ) )
) ;
boxNo = boxDao ;
boxNo = boxDao ;
String material_type = sub_jo . getString ( "material_type" ) ;
if ( material_type . equals ( "FG1" ) ) {
desiccantTemplate = "6" ;
@ -1830,7 +1823,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
JSONObject vehicle_info = WQLObject . getWQLObject ( "md_pb_storagevehicleext" ) . query ( "storagevehicle_code = '" + material_barcode + "'" ) . uniqueResult ( 0 ) ;
if ( ObjectUtil . isEmpty ( vehicle_info ) ) {
vehicle_info = WQLObject . getWQLObject ( "md_pb_storagevehicleext" ) . query ( "storagevehicle_code = '" + vehicle_code + "'" ) . uniqueResult ( 0 ) ;
if ( ObjectUtil . isEmpty ( vehicle_info ) ) {
if ( ObjectUtil . isEmpty ( vehicle_info ) ) {
throw new BadRequestException ( "未查询到载具号【" + vehicle_code + "】对应的载具信息!" ) ;
}
}
@ -1846,18 +1839,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if ( ObjectUtil . isNotEmpty ( sub_jo ) ) {
//木箱类型
String box_type = sub_jo . getString ( "box_type" ) ;
if ( ObjectUtil . isEmpty ( box_type ) ) {
if ( ObjectUtil . isEmpty ( box_type ) ) {
throw new BadRequestException ( "未查询到木箱号【" + material_barcode + "】对应的包装关系缺少木箱类型信息!" ) ;
}
//查询木箱类型数据
LambdaQueryWrapper < MdpbBoxtype > queryWrapper = new QueryWrapper < MdpbBoxtype > ( ) . lambda ( ) ;
queryWrapper . eq ( MdpbBoxtype : : getBox_type , box_type ) ;
queryWrapper . eq ( MdpbBoxtype : : getBox_type , box_type ) ;
MdpbBoxtype boxType = iMdpbBoxtypeService . getOne ( queryWrapper ) ;
if ( ObjectUtil . isEmpty ( boxType ) ) {
if ( ObjectUtil . isEmpty ( boxType ) ) {
throw new BadRequestException ( "未查询到木箱类型【" + box_type + "】信息!" ) ;
}
desiccantTemplate = String . valueOf ( boxType . getDesiccant_num ( ) ) ;
} else {
} else {
throw new BadRequestException ( "未查询到木箱号【" + material_barcode + "】对应的包装关系!" ) ;
}
//根据木箱高度,判断入库仓位的高度
@ -1986,13 +1979,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if ( ObjectUtil . isEmpty ( qzzSize ) ) {
throw new BadRequestException ( "气涨轴规格不能为空!" ) ;
}
String qzz = qzzSize . substring ( qzzSize . length ( ) - 3 ) ;
String qzz = qzzSize . substring ( qzzSize . length ( ) - 3 ) ;
String [ ] split = qzz . split ( "-" ) ;
String size = split [ 0 ] ;
String qzz_generation = split [ 1 ] ;
// 获取空位
List < BstIvtShafttubeivt > shafttubeivts = shafttubeivtService . getNotTaskEmptyShaftCache ( size , qzz_generation , "0" ) ;
List < BstIvtShafttubeivt > shafttubeivts = shafttubeivtService . getNotTaskEmptyShaftCache ( size , qzz_generation , "0" ) ;
if ( shafttubeivts . size ( ) = = 0 ) {
throw new BadRequestException ( "未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位" ) ;
}