From fc1e53879b1ab80384af1587546a3e861bf1da83 Mon Sep 17 00:00:00 2001 From: zhengxuming Date: Tue, 5 Aug 2025 15:43:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E9=80=80=E6=96=99/=E9=80=80=E7=A9=BA?= =?UTF-8?q?=E6=A1=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MesToWmsServiceImpl.java | 45 ++++++++++++++++--- .../service/impl/PdaIosInServiceImpl.java | 2 +- .../service/util/tasks/BackInTask.java | 32 ++++++++++++- .../service/util/tasks/VehicleInTask.java | 29 +++++++++++- .../util/tasks/zw/DownEmptyUpFullTask.java | 4 +- .../util/tasks/zw/SeparateMaterialTask.java | 4 +- .../dto/MesManualBackMaterialRequestDto.java | 1 - .../dto/MesManualCallMaterialRequestDto.java | 1 - 8 files changed, 104 insertions(+), 14 deletions(-) diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/service/impl/MesToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/service/impl/MesToWmsServiceImpl.java index 9a8a278..8825ce1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/service/impl/MesToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/service/impl/MesToWmsServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.wms.ext_manage.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -11,6 +12,7 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.CodeUtil; import org.nl.common.utils.SecurityUtils; import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; @@ -130,10 +132,16 @@ public class MesToWmsServiceImpl implements MesToWmsService { @Transactional(rollbackFor = Exception.class) public MesResponse callMaterial(MesCallMaterialRequestDto dto) { log.info("MES下发设备叫料信息输入参数:-------------------: {}", dto); + RLock lock = redissonClient.getLock(dto.getTask_code()); boolean tryLock = lock.tryLock(1, TimeUnit.SECONDS); try { if (tryLock) { + + if(dto.getIsManual() != null && dto.getIsManual()){ + dto.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + } + String pointCode = dto.getDevice_code(); SchBasePoint outPoint = pointService.getById(pointCode); if (null == outPoint) { @@ -392,6 +400,10 @@ public class MesToWmsServiceImpl implements MesToWmsService { if (tryLock) { log.info("MES下发设备退料信息输入参数:--------------------------------------" + MesResponse.requestOk()); + if(dto.getIsManual() != null && dto.getIsManual()){ + dto.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + } + //根据料桶号去载具表匹配料桶类型 MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(dto.getVehicle_code()); @@ -405,13 +417,36 @@ public class MesToWmsServiceImpl implements MesToWmsService { throw new BadRequestException("未找到载具编码为" + dto.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!"); } + //查询库区 Sectattr sectattr = sectattrService.findByCode(dict.getPara1()); - //通过 + JSONObject param = new JSONObject(); - param.put("vehicle_code",dto.getVehicle_code()); - param.put("site_code",dto.getDevice_code()); - param.put("sect_id",sectattr.getSect_id()); - pdaIosInService.confirmIn(param); + if(dto.getIsManual() != null && dto.getIsManual()){ + param.put("create_mode", "手动" ); + } else{ + param.put("create_mode", "自动" ); + } + param.put("task_code", dto.getTask_code()); + //退料 + if("1".equals(dto.getTask_type())){ + param.put("sect_code",sectattr.getSect_code()); + param.put("vehicle_code",dto.getVehicle_code()); + param.put("storagevehicle_code", param.getString("vehicle_code")); + + param.put("qty","1"); + param.put("stor_id",sectattr.getStor_id()); + pdaIosInService.confirmReturnMaterial(param); + + } else if("2".equals(dto.getTask_type())){ + //退空桶 + param.put("vehicle_code",dto.getVehicle_code()); + param.put("site_code",dto.getDevice_code()); + param.put("sect_id",sectattr.getSect_id()); + param.put("sect_code",sectattr.getSect_code()); + pdaIosInService.vehicleInConfirm(param); + } else{ + throw new BadRequestException("任务类型有误!请传入1或2"); + } return MesResponse.requestOk(); } else { throw new BadRequestException("任务标识为:" + dto.getTask_code() + "的任务正在操作中!"); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java index e65dd3e..bd9c757 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java @@ -443,7 +443,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { params.put("material_code", whereJson.getString("material_code")); params.put("qty", whereJson.getString("qty")); params.put("pcsn", whereJson.getString("pcsn")); - Structattr attrDao = iRawAssistIStorService.getStructattr(whereJson); + Structattr attrDao = iRawAssistIStorService.getStructattr(params); //确定起点 SchBasePoint schBasePoint = iSchBasePointService.getOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, whereJson.getString("site_code"))); if (ObjectUtil.isEmpty(schBasePoint)) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java index f10836d..fe43f85 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java @@ -10,6 +10,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.IdUtil;; import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.dao.Structattr; +import org.nl.wms.ext_manage.service.WmsToMesService; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBaseTaskService; @@ -23,6 +24,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; + /** * @Author: Liuxy * @Description: 余料回库类 @@ -50,11 +53,22 @@ public class BackInTask extends AbstractTask { @Autowired private IStructattrService iStructattrService; + /** + * WMS回传MES + */ + @Autowired + private WmsToMesService wmsToMesService; + + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); task.setTask_id(IdUtil.getStringId()); - task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + if(json.containsKey("task_code")){ + task.setTask_code(json.getString("task_code")); + } else { + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + } task.setTask_status(TaskStatus.CREATE.getCode()); task.setConfig_code(json.getString("config_code")); task.setPoint_code1(json.getString("point_code1")); @@ -155,6 +169,14 @@ public class BackInTask extends AbstractTask { taskObj.setRemark("已完成"); taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskService.updateById(taskObj); + + //如果是自动的,回调MES接口,将task_code传给mes + if("自动".equals(taskObj.getCreate_mode())){ + JSONObject jsonObject=new JSONObject(); + jsonObject.put("status",200); + jsonObject.put("message","成功"); + wmsToMesService.uploadMes(jsonObject); + } } @Transactional @@ -170,5 +192,13 @@ public class BackInTask extends AbstractTask { taskObj.setRemark("已取消"); taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskService.updateById(taskObj); + + //反馈到MES系统 + if("自动".equals(taskObj.getCreate_mode())){ + JSONObject jsonObject=new JSONObject(); + jsonObject.put("status",400); + jsonObject.put("message","任务被取消"); + wmsToMesService.uploadMes(jsonObject); + } } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/VehicleInTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/VehicleInTask.java index 42b1150..7557def 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/VehicleInTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/VehicleInTask.java @@ -10,6 +10,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.IdUtil;; import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.dao.Structattr; +import org.nl.wms.ext_manage.service.WmsToMesService; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBaseTaskService; @@ -50,11 +51,21 @@ public class VehicleInTask extends AbstractTask { @Autowired private IStructattrService iStructattrService; + /** + * WMS回传MES + */ + @Autowired + private WmsToMesService wmsToMesService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); task.setTask_id(IdUtil.getStringId()); - task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + if(json.containsKey("task_code")){ + task.setTask_code(json.getString("task_code")); + } else { + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + } task.setTask_status(TaskStatus.CREATE.getCode()); task.setConfig_code(json.getString("config_code")); task.setPoint_code1(json.getString("point_code1")); @@ -156,6 +167,14 @@ public class VehicleInTask extends AbstractTask { taskObj.setRemark("已完成"); taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskService.updateById(taskObj); + + //如果是自动的,回调MES接口,将task_code传给mes + if("自动".equals(taskObj.getCreate_mode())){ + JSONObject jsonObject=new JSONObject(); + jsonObject.put("status",200); + jsonObject.put("message","成功"); + wmsToMesService.uploadMes(jsonObject); + } } @Transactional @@ -171,5 +190,13 @@ public class VehicleInTask extends AbstractTask { taskObj.setRemark("已取消"); taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskService.updateById(taskObj); + + //反馈到MES系统 + if("自动".equals(taskObj.getCreate_mode())){ + JSONObject jsonObject=new JSONObject(); + jsonObject.put("status",400); + jsonObject.put("message","任务被取消"); + wmsToMesService.uploadMes(jsonObject); + } } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/DownEmptyUpFullTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/DownEmptyUpFullTask.java index 899d8e1..a5cb1fa 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/DownEmptyUpFullTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/DownEmptyUpFullTask.java @@ -245,7 +245,7 @@ public class DownEmptyUpFullTask extends AbstractTask { //反馈到MES系统 if("自动".equals(taskObj.getCreate_mode())){ JSONObject jsonObject=new JSONObject(); - jsonObject.put("status","200"); + jsonObject.put("status",200); jsonObject.put("message","成功"); wmsToMesService.uploadMes(jsonObject); } @@ -303,7 +303,7 @@ public class DownEmptyUpFullTask extends AbstractTask { //反馈到MES系统 if("自动".equals(taskObj.getCreate_mode())){ JSONObject jsonObject=new JSONObject(); - jsonObject.put("status","400"); + jsonObject.put("status",400); jsonObject.put("message","任务被取消"); wmsToMesService.uploadMes(jsonObject); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/SeparateMaterialTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/SeparateMaterialTask.java index 89cc660..7aacec8 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/SeparateMaterialTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/SeparateMaterialTask.java @@ -181,7 +181,7 @@ public class SeparateMaterialTask extends AbstractTask { //反馈到MES系统 if("自动".equals(taskObj.getCreate_mode())){ JSONObject jsonObject=new JSONObject(); - jsonObject.put("status","200"); + jsonObject.put("status",200); jsonObject.put("message","成功"); wmsToMesService.uploadMes(jsonObject); } @@ -238,7 +238,7 @@ public class SeparateMaterialTask extends AbstractTask { //反馈到MES系统 if("自动".equals(taskObj.getCreate_mode())){ JSONObject jsonObject=new JSONObject(); - jsonObject.put("status","400"); + jsonObject.put("status",400); jsonObject.put("message","任务被取消"); wmsToMesService.uploadMes(jsonObject); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dto/MesManualBackMaterialRequestDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dto/MesManualBackMaterialRequestDto.java index 9084011..280bee4 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dto/MesManualBackMaterialRequestDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dto/MesManualBackMaterialRequestDto.java @@ -31,7 +31,6 @@ public class MesManualBackMaterialRequestDto { private String remark; - @NotBlank(message = "任务号不可为空") private String task_code; @NotBlank(message = "任务类型不可为空") diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dto/MesManualCallMaterialRequestDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dto/MesManualCallMaterialRequestDto.java index f0957a5..96f1149 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dto/MesManualCallMaterialRequestDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dto/MesManualCallMaterialRequestDto.java @@ -27,7 +27,6 @@ public class MesManualCallMaterialRequestDto { private String remark; - @NotBlank(message = "任务号不可为空") private String task_code; @NotBlank(message = "任务类型不可为空")