|
|
@ -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; |
|
|
@ -147,7 +150,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { |
|
|
|
private IbstIvtPackageinfoivtService packageinfoivtService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IMdpbBoxtypeService iMdpbBoxtypeService; |
|
|
|
|
|
|
@ -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)){ |
|
|
|
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,13 +1242,6 @@ 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!"); |
|
|
|
} |
|
|
@ -1259,41 +1258,42 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { |
|
|
|
.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)){ |
|
|
|
|
|
|
|
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); |
|
|
|
errorMsg.add("载具" + whereJson.getString("vehicle_code") + "已绑定" + pcsn); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (!compaerResult){ |
|
|
|
errorMsg.add("称重"+current_weight+"不匹配"+box_weight); |
|
|
|
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 (notify != null && StringUtils.isNotEmpty(notify.getValue())) { |
|
|
|
AutoSendFeiShu.sendFeiShuMsg(notify.getValue(), box_no + "称重" + current_weight + ",理论" + box_weight, "二期称重异常提醒"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!inbound){ |
|
|
|
if (!inbound) { |
|
|
|
errorMsg.add("手动至异常口"); |
|
|
|
} |
|
|
|
if (count>0){ |
|
|
|
errorMsg.add(whereJson.getString("vehicle_code")+"存在任务"); |
|
|
|
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); |
|
|
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.RK, null, Boolean.TRUE, null, containers); |
|
|
|
} else { |
|
|
|
iPdmBiContainerinboundService |
|
|
|
.update(new UpdateWrapper<PdmBiContainerinbound>() |
|
|
|
.set("remark",JSONObject.toJSONString(errorMsg)) |
|
|
|
.eq("box",box_no)); |
|
|
|
.set("remark", JSONObject.toJSONString(errorMsg)) |
|
|
|
.eq("box", box_no)); |
|
|
|
//更新子卷入库备注信息
|
|
|
|
JSONObject jsonTaskParam = new JSONObject(); |
|
|
|
//创建异常任务去异常入库口
|
|
|
@ -1315,14 +1315,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { |
|
|
|
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")+"'"); |
|
|
|
.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); |
|
|
|
} |
|
|
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.TYCK, null, Boolean.FALSE, errorMsg.toString(), containers); |
|
|
|
} |
|
|
|
|
|
|
|
} else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("空盘入库"))) { |
|
|
@ -1354,24 +1353,16 @@ 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]); |
|
|
@ -1388,46 +1379,48 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { |
|
|
|
material_barcode += "," + resultObj.getString("container_name"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'") |
|
|
|
.uniqueResult(0); |
|
|
|
if (ObjectUtil.isEmpty(jsonVehicle)) { |
|
|
|
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")+"存在执行的任务"); |
|
|
|
} |
|
|
|
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); |
|
|
|
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 = ext_jo.getString("pcsn"); |
|
|
|
if (StringUtils.isNotEmpty(pcsn)){ |
|
|
|
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); |
|
|
|
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); |
|
|
|
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 + "」的空暂存位"); |
|
|
|
} |
|
|
|