From 06a1cab3919857c8a1256c2d0393a84dc65a32e4 Mon Sep 17 00:00:00 2001 From: zhengxuming <739390650@QQ.COM> Date: Thu, 23 Oct 2025 15:30:55 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E5=8F=AB=E6=96=99=E3=80=81=E9=80=80?= =?UTF-8?q?=E6=96=99=E9=80=80=E7=A9=BA=E6=A1=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/config/lucene/LogMessageConstant.java | 2 +- .../mapper/MdPbStoragevehicleextMapper.xml | 10 +++++ .../controller/MesToWmsController.java | 3 +- .../dto/mes/MesBackMaterialRequestDto.java | 13 ------ .../service/impl/MesToWmsServiceImpl.java | 43 ++++++++++++------- .../service/impl/PdaIosInServiceImpl.java | 8 ++-- .../service/util/GetMaterialFromMesTask.java | 2 +- .../util/tasks/zw/DownEmptyUpFullTask.java | 22 ++++++++-- .../util/tasks/zw/SeparateMaterialTask.java | 9 ++-- .../service/impl/OutBillServiceImpl.java | 4 +- 10 files changed, 71 insertions(+), 45 deletions(-) diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java index af19bdd..201ac7f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java @@ -90,6 +90,6 @@ public class LogMessageConstant { /** * 索引路径 */ - public final static String INDEX_DIR = "D:\\software\\lucene\\index"; + public final static String INDEX_DIR = "C:\\software\\lucene\\index"; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 0aec00b..ac5c249 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -211,6 +211,11 @@ attr.stor_id = #{param.stor_id} + + AND + attr.stor_code = #{param.stor_code} + + AND attr.sect_id = #{param.sect_id} @@ -234,6 +239,11 @@ mater.material_name LIKE CONCAT('%', #{param.material_code},'%') ) + + AND + mater.material_model LIKE CONCAT('%', #{material_model},'%') + + AND ext.pcsn LIKE #{param.pcsn} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/controller/MesToWmsController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/controller/MesToWmsController.java index 1a29455..9ced759 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/controller/MesToWmsController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/controller/MesToWmsController.java @@ -26,6 +26,7 @@ import java.util.Map; @RestController @RequestMapping("/api/mes") @Slf4j +@SaIgnore public class MesToWmsController { @Resource @@ -49,7 +50,7 @@ public class MesToWmsController { } - @PostMapping("/getStructIvt") + @PostMapping("/getStructivt") @Log("查询库存") @SaIgnore public ResponseEntity getStructIvt(@RequestBody JSONObject whereJson) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/dto/mes/MesBackMaterialRequestDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/dto/mes/MesBackMaterialRequestDto.java index 02a1069..998fd6f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/dto/mes/MesBackMaterialRequestDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/dto/mes/MesBackMaterialRequestDto.java @@ -9,13 +9,6 @@ public class MesBackMaterialRequestDto { @NotBlank(message = "设备号不可为空") private String device_code; - @NotBlank(message = "料桶号不可为空") - private String vehicle_code; - - @NotBlank(message = "物料编码不可为空") - private String material_code; - - @NotBlank(message = "批次") private String pcsn; private String qty_unit_name; @@ -23,12 +16,6 @@ public class MesBackMaterialRequestDto { @NotBlank(message = "数量不可为空") private String qty; - @NotBlank(message = "供应商编码不可为空") - private String supp_code; - - @NotBlank(message = "供应商名称不可为空") - private String supp_name; - private String remark; @NotBlank(message = "任务号不可为空") 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 b32992b..23336dc 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 @@ -156,7 +156,7 @@ public class MesToWmsServiceImpl implements MesToWmsService { } // 出库的仓位 - Structattr outStructAttr = structattrService.getByVehicleCode(dto.getStruct_code()); + Structattr outStructAttr = structattrService.getByCode(dto.getStruct_code()); if (ObjectUtil.isEmpty(outStructAttr)) { throw new BadRequestException("仓位【" + dto.getStruct_code() + "】不存在!"); } @@ -165,6 +165,11 @@ public class MesToWmsServiceImpl implements MesToWmsService { throw new BadRequestException("仓位【" + dto.getStruct_code() + "】上没有料,无法叫料!"); } + //只有料桶缓存库区的料才能被叫料 + if(!"LT".equals(outStructAttr.getStor_code())){ + throw new BadRequestException("只有料桶缓存库区的料才能被叫料!"); + } + List taskList = taskService.list(new QueryWrapper().lambda() .eq(SchBaseTask::getExt_task_code, dto.getTask_code())); @@ -443,14 +448,10 @@ public class MesToWmsServiceImpl implements MesToWmsService { if (dto.getIsManual() != null && dto.getIsManual()) { dto.setTask_code(CodeUtil.getNewCode("TASK_CODE")); - dto.setPcsn("退料"); dto.setQty_unit_name("桶"); //退料需要判断 if("1".equals(dto.getTask_type())){ - if(StringUtils.isEmpty(dto.getMaterial_code())){ - throw new BadRequestException("物料编码不可为空"); - } if(StringUtils.isEmpty(dto.getQty())){ throw new BadRequestException("数量不可为空"); } @@ -463,24 +464,27 @@ public class MesToWmsServiceImpl implements MesToWmsService { if (tryLock) { log.info("MES下发设备退料信息输入参数:--------------------------------------" + MesResponse.requestOk()); + //根据点位去查找对应的料桶号信息 + SchBasePoint point = pointService.getById(dto.getDevice_code()); + //根据料桶号去载具表匹配料桶类型 - MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(dto.getVehicle_code()); + MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(point.getVehicle_code()); if(mdPbStoragevehicleinfo == null){ - throw new BadRequestException("未找到载具编码为:" + dto.getVehicle_code() + "的载具!"); + throw new BadRequestException("机台"+dto.getDevice_code()+"上没有载具的载具!"); } //通过料桶号的料桶类型,匹配确认入库库区 Dict dict= dictService.getDictByCodeAndValue("storagevehicle_type",mdPbStoragevehicleinfo.getStoragevehicle_type()); if(dict==null){ - throw new BadRequestException("未找到载具编码为" + dto.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!"); + throw new BadRequestException("未找到载具编码为" + point.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!"); } //查询库区 Sectattr sectattr = sectattrService.findByCode(dict.getPara1()); if(sectattr==null){ - throw new BadRequestException("未找到载具编码为" + dto.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!"); + throw new BadRequestException("未找到载具编码为" + point.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!"); } JSONObject param = new JSONObject(); @@ -494,28 +498,35 @@ public class MesToWmsServiceImpl implements MesToWmsService { //退料 if("1".equals(dto.getTask_type())){ - MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(dto.getMaterial_code(), true); + //查询组盘 + GroupPlate groupPlate = iMdPbGroupplateService.getOne(new LambdaQueryWrapper() + .eq(GroupPlate::getStoragevehicle_code, point.getVehicle_code()) + .eq(GroupPlate::getStatus, "03")); + if (ObjectUtil.isEmpty(groupPlate)) { + throw new BadRequestException("点位"+point.getPoint_code()+"上的托盘不存在组盘信息!"); + } + + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(groupPlate.getMaterial_id(), true); //通过托盘号查找组盘信息 - param.put("sect_code",sectattr.getSect_code()); param.put("sect_id",sectattr.getSect_id()); - param.put("vehicle_code",dto.getVehicle_code()); + param.put("vehicle_code",point.getVehicle_code()); param.put("storagevehicle_code", param.getString("vehicle_code")); param.put("site_code",dto.getDevice_code()); param.put("material_id",materDao.getMaterial_code()); param.put("material_code",materDao.getMaterial_code()); - param.put("pcsn",dto.getPcsn()); + param.put("pcsn",groupPlate.getPcsn()); param.put("qty",dto.getQty()); param.put("qty_unit_name",dto.getQty_unit_name()); param.put("stor_id",sectattr.getStor_id()); - param.put("supp_code",dto.getSupp_code()); - param.put("supp_name",dto.getSupp_name()); + param.put("supp_code",groupPlate.getSupp_code()); + param.put("supp_name",groupPlate.getSupp_name()); pdaIosInService.zwConfirmReturnMaterial(param); } else if("2".equals(dto.getTask_type())){ //退空桶 - param.put("vehicle_code",dto.getVehicle_code()); + param.put("vehicle_code",point.getVehicle_code()); param.put("storagevehicle_code", param.getString("vehicle_code")); param.put("site_code",dto.getDevice_code()); param.put("sect_id",sectattr.getSect_id()); 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 1f4e9d8..45527e6 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 @@ -609,9 +609,11 @@ public class PdaIosInServiceImpl implements PdaIosInService { // 生成回库任务 whereJson.put("config_code", IOSConstant.BACK_IN_TASK); whereJson.put("Priority", TaskEnum.ACS_PRIORITY.code("1")); - //入库分配 - groupPlate(whereJson); - + //更新状态为组盘状态 + iMdPbGroupplateService.update(new LambdaUpdateWrapper<>(GroupPlate.class) + .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + .eq(GroupPlate::getStoragevehicle_code,whereJson.getString("vehicle_code"))); + // groupPlate(whereJson); whereJson.put("bill_type",StatusEnum.IOBILL_TYPE_IN.code("余料入库")); whereJson.put("stragegy_type",StatusEnum.IOBILL_TYPE_IN.code("余料入库")); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/GetMaterialFromMesTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/GetMaterialFromMesTask.java index 2f5d579..049ce62 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/GetMaterialFromMesTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/GetMaterialFromMesTask.java @@ -122,7 +122,7 @@ public class GetMaterialFromMesTask { // 组装本地实体 MdMeMaterialbase material = new MdMeMaterialbase(); material.setMaterial_code(materialCode); - material.setMaterial_name(mesRecord.getMaterial_name()); + material.setMaterial_name(mesRecord.getMaterial_description()); material.setMaterial_id(mesRecord.getId()); // material.setMaterial_spec(mesRecord.getMaterialModel()); material.setMaterial_model(mesRecord.getMaterial_type()); 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 03d6478..e33d25d 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 @@ -3,7 +3,9 @@ package org.nl.wms.sch_manage.service.util.tasks.zw; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.apache.commons.collections4.CollectionUtils; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.IdUtil; @@ -23,6 +25,7 @@ import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_manage.enums.IOSConstant; import org.nl.wms.warehouse_manage.enums.IOSEnum; import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService; +import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService; import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis; import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService; @@ -53,7 +56,7 @@ public class DownEmptyUpFullTask extends AbstractTask { @Resource - private IInBillService rawAssistIStorService; + private IOutBillService outBillService; @Resource @@ -214,7 +217,18 @@ public class DownEmptyUpFullTask extends AbstractTask { } //如果是序列2 else{ - rawAssistIStorService.taskFinish(taskObj); + //判断序列1的任务是否已完成 + List schBaseTaskList = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getTask_group_seq, 1) + .eq(SchBaseTask::getTask_group_id,taskObj.getTask_group_id()) + .eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())); + + if(CollectionUtils.isEmpty(schBaseTaskList)){ + throw new BadRequestException("前置任务未完成,请先完成任务序列为1的任务!"); + + } + + outBillService.taskFinish(taskObj); //点位2 pointService.update(new LambdaUpdateWrapper() @@ -256,8 +270,8 @@ public class DownEmptyUpFullTask extends AbstractTask { .set(Structattr::getUpdate_time, DateUtil.now()) .eq(Structattr::getStruct_code, taskObj.getPoint_code4())); - //删除 - iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id())); + // //删除 + // iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id())); //反馈到MES系统 if("自动".equals(taskObj.getCreate_mode())){ 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 cecc86a..a7bbb94 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 @@ -23,6 +23,7 @@ import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_manage.enums.IOSConstant; import org.nl.wms.warehouse_manage.enums.IOSEnum; import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService; +import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService; import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis; import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService; @@ -54,7 +55,7 @@ public class SeparateMaterialTask extends AbstractTask { @Resource - private IInBillService rawAssistIStorService; + private IOutBillService outBillService; @Resource @@ -174,7 +175,7 @@ public class SeparateMaterialTask extends AbstractTask { taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setRemark("已完成"); taskService.updateById(taskObj); - rawAssistIStorService.taskFinish(taskObj); + outBillService.taskFinish(taskObj); //更改点位的托盘信息,空托盘的点位 2为空托盘放置点位 pointService.update(new LambdaUpdateWrapper() @@ -195,8 +196,8 @@ public class SeparateMaterialTask extends AbstractTask { .set(Structattr::getUpdate_time, DateUtil.now()) .eq(Structattr::getStruct_code, taskObj.getPoint_code1())); - //删除 - iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id())); + // //删除 + // iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id())); //反馈到MES系统 if("自动".equals(taskObj.getCreate_mode())){ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java index 5017eb6..d8aaeb0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java @@ -1273,8 +1273,8 @@ public class OutBillServiceImpl extends ServiceImpl i .storagevehicleCode(ioStorInvDis.getStoragevehicle_code()) .structCode(ioStorInvDis.getStruct_code()).taskType(task.getConfig_code()).inBound(false).build(); iStructattrService.changeStruct(changeDto); - //出库完成后删除组盘 - iMdPbGroupplateService.delete(Collections.singleton(task.getGroup_id())); + // //出库完成后删除组盘 + // iMdPbGroupplateService.delete(Collections.singleton(task.getGroup_id())); // 查询该明细下是否还有未完成的分配明细 int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)