diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 7b60e3a..b5debdb 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -80,17 +80,19 @@ public class PdaServiceImpl implements PdaService { @Override public PdaResponseVo zpjb(JSONObject param) { - String subTray=param.getString("sub_tray"); + String subTray = param.getString("sub_tray"); //子拖盘解绑 if(ObjectUtil.isNotEmpty(subTray)){ - SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() - .eq(SchBaseVehiclematerialgroup::getVehicle_code, subTray) - .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, - GroupBindMaterialStatusEnum.BOUND.getValue())); + //查询母托盘 + JSONObject group_jo = new JSONObject(); + group_jo.put("vehicle_code",subTray); + SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroup(group_jo); if (ObjectUtil.isNotEmpty(one)) { one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + one.setUpdate_id(GeneralDefinition.ACS_ID); + one.setUpdate_name(GeneralDefinition.ACS_NAME); one.setUpdate_time(DateUtil.now()); - vehiclematerialgroupService.updateById(one); + vehiclematerialgroupService.updateByJson(one); } List schBasePointList= pointMapper.selectList(new LambdaQueryWrapper() .eq(SchBasePoint::getVehicle_code2, subTray)); @@ -108,7 +110,6 @@ public class PdaServiceImpl implements PdaService { group_jo.put("vehicle_code",motherTray); SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroup(group_jo); if (ObjectUtil.isNotEmpty(one)) { - one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); one.setUpdate_id(GeneralDefinition.ACS_ID); one.setUpdate_name(GeneralDefinition.ACS_NAME); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java index 4345dd1..402955f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java @@ -86,6 +86,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Material::getPalletSN,sub_tray); - wrapper.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()); - Integer list_size = materialMapper.selectCount(wrapper); - Assert.isFalse(list_size<=0, - "该任务申请子托盘["+sub_tray+"]异常,无原材料入库单据信息!"); + //若不是缓存区托盘,校验mes接口组盘记录 + if(!sub_tray.startsWith("YBHC")){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Material::getPalletSN,sub_tray); + wrapper.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()); + Integer list_size = materialMapper.selectCount(wrapper); + Assert.isFalse(list_size<=0, + "该任务申请子托盘["+sub_tray+"]异常,无原材料入库单据信息!"); + } } } }else{ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java index e53dc59..2a0ef3b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java @@ -69,6 +69,8 @@ public class GeneralDefinition { public static final String IS_CONNECT_ACS = "is_connect_acs"; /** 是否连接 */ public static final String IS_RETURN_MES = "is_return_mes"; + /** 叠盘机最大数量 */ + public static final String MAX_DKT_QTY = "max_dkt_qty"; /** ACS路径 */ public static final String ACS_URL = "acs_url"; /** 是否连接 */ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java index 3e5ead6..204f8fb 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java @@ -54,6 +54,7 @@ public class AcsUtil { result.put("message", "网络不通,操作失败!"); result.put("data", new JSONObject()); } + log.info("acs任务的回传参数为:", result.toString()); //acs抛异常这里 /* if (result.getString("status").equals(String.valueOf(HttpStatus.BAD_REQUEST.value()))) throw new BadRequestException(result.getString("message"));*/ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java index 2746c2d..a0ac74d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java @@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.nl.common.exception.BadRequestException; +import org.nl.system.service.param.ISysParamService; +import org.nl.system.service.param.dao.Param; import org.nl.wms.ext.service.WmsToAcsService; import org.nl.wms.ext.service.dto.to.BaseResponse; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; @@ -57,6 +59,8 @@ public class POINTTask extends AbstractTask { private IWorkorderService workorderService; @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private ISysParamService paramService; @Override // @Transactional(rollbackFor = Exception.class) @@ -81,9 +85,21 @@ public class POINTTask extends AbstractTask { SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper() .eq(SchBasePoint::getPoint_code, task.getPoint_code2())); if(task.getPoint_code2().startsWith("DKT")){ + //判断叠盘机最大叠盘数量 + Param max_dkt_qty = paramService.findByCode(GeneralDefinition.MAX_DKT_QTY); + if (ObjectUtil.isEmpty(max_dkt_qty)) { + Assert.notNull(taskConfig, "找不到配置文件,请确认系统参数[max_dkt_qty]配置是否存在!"); + } + Integer max_qty = Integer.valueOf(max_dkt_qty.getValue()); //如果是叠盘位,根据当前数量+1为目标地址 int qty=nextSchBasePoint.getVehicle_qty()+1; - task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty); + if(qty <= max_qty){ + task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty); + }else{ + task.setRemark("叠盘机空盘数量已达最大值:["+max_qty+"],暂时无法下发任务!"); + taskService.update(task); + continue; + } }else{ if (nextSchBasePoint.getVehicle_qty() > 0 || ObjectUtil.isNotEmpty(nextSchBasePoint.getVehicle_code2())) { @@ -200,10 +216,9 @@ public class POINTTask extends AbstractTask { } //子托盘更新组盘信息 if(StringUtils.isNotEmpty(vehicleCode2)) { - one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() - .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2) - .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, - GroupBindMaterialStatusEnum.BOUND.getValue())); + JSONObject group_jo = new JSONObject(); + group_jo.put("vehicle_code",vehicleCode2); + one = vehiclematerialgroupService.getGroup(group_jo); if (ObjectUtil.isNotEmpty(one)) { one.setTask_code(taskObj.getTask_code()); one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 @@ -213,7 +228,7 @@ public class POINTTask extends AbstractTask { one.setUpdate_id(GeneralDefinition.ACS_ID); one.setUpdate_name(GeneralDefinition.ACS_NAME); one.setUpdate_time(DateUtil.now()); - vehiclematerialgroupService.updateById(one); + vehiclematerialgroupService.updateByJson(one); } if(endPointObj.getPoint_code().contains("XHW")){ //pdm_bd_workorder_two任务完成时,status改为3 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java index a1078f4..b1d11c4 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java @@ -210,49 +210,53 @@ public class YCLCKTask extends AbstractTask { } if (status.equals(TaskStatus.FINISHED)) { // 完成 String vehicleCode = taskObj.getVehicle_code(); - String vehicleCode2 = taskObj.getVehicle_code2(); - - //查询母托盘 - JSONObject group_jo = new JSONObject(); - group_jo.put("vehicle_code",vehicleCode); - SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroup(group_jo); - - if (ObjectUtil.isNotEmpty(one)) { - one.setTask_code(taskObj.getTask_code()); - one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 - one.setPoint_name(endPointObj.getPoint_name()); - one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code()); - one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); - one.setInstorage_time(DateUtil.now()); - one.setUpdate_id(GeneralDefinition.ACS_ID); - one.setUpdate_name(GeneralDefinition.ACS_NAME); - one.setUpdate_time(DateUtil.now()); - vehiclematerialgroupService.updateByJson(one); - } - one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() - .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2) - .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, - GroupBindMaterialStatusEnum.BOUND.getValue())); - if (ObjectUtil.isNotEmpty(one)) { - one.setTask_code(taskObj.getTask_code()); - one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 - one.setPoint_name(endPointObj.getPoint_name()); - one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code()); - one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); - one.setInstorage_time(DateUtil.now()); - if(ObjectUtil.isEmpty(extGroupData.getString("time"))){ - one.setStanding_time(1); - }else{ - one.setStanding_time(Integer.valueOf(extGroupData.getString("time"))); + SchBaseVehiclematerialgroup one =null; + if(ObjectUtil.isNotEmpty(vehicleCode)){ + //查询母托盘 + JSONObject group_jo = new JSONObject(); + group_jo.put("vehicle_code",vehicleCode); + one = vehiclematerialgroupService.getGroup(group_jo); + if (ObjectUtil.isNotEmpty(one)) { + one.setTask_code(taskObj.getTask_code()); + one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 + one.setPoint_name(endPointObj.getPoint_name()); + one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code()); + one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); + one.setInstorage_time(DateUtil.now()); + one.setUpdate_id(GeneralDefinition.ACS_ID); + one.setUpdate_name(GeneralDefinition.ACS_NAME); + one.setUpdate_time(DateUtil.now()); + vehiclematerialgroupService.updateByJson(one); } - one.setUpdate_id(GeneralDefinition.ACS_ID); - one.setUpdate_name(GeneralDefinition.ACS_NAME); - one.setUpdate_time(DateUtil.now()); - if(ObjectUtil.isNotEmpty(extGroupData.getString("batch"))){ - one.setPcsn(extGroupData.getString("batch")); + } + String vehicleCode2 = taskObj.getVehicle_code2(); + if(ObjectUtil.isNotEmpty(vehicleCode2)){ + //查询子托盘 + JSONObject group_jo = new JSONObject(); + group_jo.put("vehicle_code",vehicleCode2); + one = vehiclematerialgroupService.getGroup(group_jo); + if (ObjectUtil.isNotEmpty(one)) { + one.setTask_code(taskObj.getTask_code()); + one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 + one.setPoint_name(endPointObj.getPoint_name()); + one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code()); + one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); + one.setInstorage_time(DateUtil.now()); + if(ObjectUtil.isEmpty(extGroupData.getString("time"))){ + one.setStanding_time(1); + }else{ + one.setStanding_time(Integer.valueOf(extGroupData.getString("time"))); + } + one.setUpdate_id(GeneralDefinition.ACS_ID); + one.setUpdate_name(GeneralDefinition.ACS_NAME); + one.setUpdate_time(DateUtil.now()); + if(ObjectUtil.isNotEmpty(extGroupData.getString("batch"))){ + one.setPcsn(extGroupData.getString("batch")); + } + vehiclematerialgroupService.updateByJson(one); } - vehiclematerialgroupService.updateById(one); } + // 终点解锁 endPointObj.setIng_task_code(""); endPointObj.setVehicle_code(taskObj.getVehicle_code()); diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 913bf33..7176d44 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -111,7 +111,7 @@ 完成 { this.crud.toQuery() this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) }).catch(err => { + this.crud.loading = false console.log(err.response.data.message) }) }