From c5c4ab28b5c5e9aba1358b8b763ee1dadfe35d94 Mon Sep 17 00:00:00 2001 From: zhengxuming Date: Wed, 6 Aug 2025 18:14:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=9D=A5=E6=96=99=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PdaIosInServiceImpl.java | 48 ++++++++++++++++++- .../service/util/tasks/zw/InBillTask.java | 8 +++- .../service/impl/InBillServiceImpl.java | 1 + 3 files changed, 55 insertions(+), 2 deletions(-) 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 20e2e22..ec6a117 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 @@ -574,6 +574,10 @@ public class PdaIosInServiceImpl implements PdaIosInService { .eq(SchBaseTask::getPoint_code2, paramDto.getSite_code()) .or() .eq(SchBaseTask::getPoint_code3, paramDto.getSite_code()) + .or() + .eq(SchBaseTask::getPoint_code1, paramDto.getSite_code()) + .or() + .eq(SchBaseTask::getPoint_code4, paramDto.getSite_code()) ) .le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode())); @@ -631,11 +635,52 @@ public class PdaIosInServiceImpl implements PdaIosInService { .orderByDesc(SchBasePoint::getOut_empty_seq); List schBasePointList = schBasePointMapper.selectList(queryWrapper); + if (CollectionUtils.isEmpty(schBasePointList)) { throw new BadRequestException("原料卸车区不存在空的点位"); } - schBasePointString = schBasePointList.get(0).getPoint_code(); + //剔除任务执行中的点位 + + final List emptyPointStringList = schBasePointList.stream().map(SchBasePoint::getPoint_code) + .collect(Collectors.toList()); + + //找到空点位正在执行的任务(正常来说不应该存在) + List taskingSchBaseTaskList = iSchBaseTaskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO) + .and(wp -> wp + .in(SchBaseTask::getPoint_code1, emptyPointStringList) + .or() + .in(SchBaseTask::getPoint_code2, emptyPointStringList) + .or() + .in(SchBaseTask::getPoint_code3, emptyPointStringList) + .or() + .in(SchBaseTask::getPoint_code4, emptyPointStringList) + ) + .le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode())); + + //如果不存在,则正常执行 + if(CollectionUtils.isEmpty(taskingSchBaseTaskList)){ + schBasePointString = schBasePointList.get(0).getPoint_code(); + } else { + List pointList1 = taskingSchBaseTaskList.stream().map(SchBaseTask::getPoint_code1) + .collect(Collectors.toList()); + List pointList2 = taskingSchBaseTaskList.stream().map(SchBaseTask::getPoint_code2) + .collect(Collectors.toList()); + List pointList3 = taskingSchBaseTaskList.stream().map(SchBaseTask::getPoint_code3) + .collect(Collectors.toList()); + List pointList4 = taskingSchBaseTaskList.stream().map(SchBaseTask::getPoint_code4) + .collect(Collectors.toList()); + + List pointStringList = emptyPointStringList.stream().filter(a->StringUtils.isNotBlank(a) + && !pointList1.contains(a) + && !pointList2.contains(a) + && !pointList3.contains(a) + && !pointList4.contains(a)) + .collect(Collectors.toList()); + + schBasePointString = pointStringList.get(0); + } } //point1为库存空托盘点 @@ -932,6 +977,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { // 组织主数据 Map jsonMst = new HashMap<>(); jsonMst.put("checked", true); + jsonMst.put("point_code", whereJson.getString("point_code")); jsonMst.put("sect_id", sectDao.getSect_id()); jsonMst.put("stor_id", sectDao.getStor_id()); jsonMst.put("sect_code", sectDao.getSect_code()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/InBillTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/InBillTask.java index 458f66a..7ff3c0f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/InBillTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/zw/InBillTask.java @@ -11,6 +11,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.IdUtil;; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.basedata_manage.service.IStructattrService; +import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.pm_manage.service.IPmFormDataService; import org.nl.wms.pm_manage.service.dao.PmFormData; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -178,7 +179,7 @@ public class InBillTask extends AbstractTask { //更改点位的托盘信息,空托盘的点位 2为空托盘放置点位 pointService.update(new LambdaUpdateWrapper() .set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code()) - .set(SchBasePoint::getPoint_status, "1") + .set(SchBasePoint::getPoint_status, "2") .set(SchBasePoint::getUpdate_id, SecurityUtils.getCurrentUserId()) .set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName()) .set(SchBasePoint::getUpdate_time, DateUtil.now()) @@ -195,6 +196,11 @@ public class InBillTask extends AbstractTask { rawAssistIStorService.taskFinish(taskObj); + iStructattrService.update(new LambdaUpdateWrapper() + .set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code2()) + .set(Structattr::getUpdate_time, DateUtil.now()) + .eq(Structattr::getStruct_code, taskObj.getPoint_code1())); + List noFinishTask = taskService.list(new LambdaQueryWrapper<>(SchBaseTask.class) .eq(SchBaseTask::getForm_data_code,taskObj.getForm_data_code()) .eq(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code("否")) diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java index 34076f9..8a03f57 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java @@ -514,6 +514,7 @@ public class InBillServiceImpl extends ServiceImpl i dis_map.put("struct_id", struct_id); dis_map.put("struct_code", struct_code); dis_map.put("struct_name", struct_name); + dis_map.put("point_code", param.getString("point_code")); dis_map.put("storagevehicle_code", storagevehicle_code); //锁定货位 IOStorInv ioStorInv = ioStorInvMapper.selectById(map.get("iostorinv_id"));