From 78176aa862f5664ce0b27b9bc9aabf4073d6d5dd Mon Sep 17 00:00:00 2001 From: zds <2388969634@qq.com> Date: Wed, 21 Aug 2024 13:17:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E4=BB=BB=E5=8A=A1=E5=AE=8C=E6=88=90=E5=90=8E?= =?UTF-8?q?=E6=9C=AA=E6=B8=85=E7=A9=BA=E8=B5=B7=E7=82=B9=E8=BD=BD=E5=85=B7?= =?UTF-8?q?=E6=95=B0=E9=87=8F=20opt:=E4=BC=98=E5=8C=96=E5=90=84=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=94=B3=E8=AF=B7=E7=82=B9=E4=BD=8D=E7=9A=84=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/task_manage/task/tasks/KJRKTask.java | 4 +- .../sch/task_manage/task/tasks/POINTTask.java | 72 +++++++++++-------- .../task_manage/task/tasks/SSXBKJTask.java | 4 +- .../sch/task_manage/task/tasks/YCLCKTask.java | 3 +- .../sch/task_manage/task/tasks/YCLRKTask.java | 2 +- .../task/tasks/mapper/PointMapper.java | 2 + .../task/tasks/mapper/PointMapper.xml | 14 ++++ 7 files changed, 66 insertions(+), 35 deletions(-) diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KJRKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KJRKTask.java index 3338c0e..f7be36f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KJRKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KJRKTask.java @@ -1,5 +1,6 @@ package org.nl.wms.sch.task_manage.task.tasks; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSONObject; @@ -94,7 +95,7 @@ public class KJRKTask extends AbstractTask { */ private SchBasePoint findNextPoint() { String regionCode = "KJHC"; - List schBasePointList = pointMapper.findPointByRegion(regionCode, "0"); + List schBasePointList = pointMapper.findPointByCondition(regionCode, "0",0); for (SchBasePoint schBasePoint : schBasePointList) { //查找点上无载具号无任务号、载具数量为0的 if (schBasePoint.getIs_used() @@ -140,6 +141,7 @@ public class KJRKTask extends AbstractTask { // 终点解锁 endPointObj.setIng_task_code(""); endPointObj.setVehicle_qty(1); + endPointObj.setUpdate_time(DateUtil.now()); pointService.update(endPointObj); // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); 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 12b6a39..e01fb6f 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 @@ -1,6 +1,7 @@ package org.nl.wms.sch.task_manage.task.tasks; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -55,10 +56,6 @@ public class POINTTask extends AbstractTask { private IWorkorderService workorderService; @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; - @Autowired - private PointMapper pointMapper; - @Autowired - private WmsToAcsService wmsToAcsService; @Override // @Transactional(rollbackFor = Exception.class) @@ -68,36 +65,44 @@ public class POINTTask extends AbstractTask { // 配置信息 SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); - for (SchBaseTask task : tasks) { - - task.setTask_status(TaskStatus.CREATED.getCode()); - task.setRemark(""); - SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper() - .eq(SchBasePoint::getPoint_code, task.getPoint_code1())); - SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper() - .eq(SchBasePoint::getPoint_code, task.getPoint_code2())); - if(task.getPoint_code2().startsWith("DKT")){ - //如果是叠盘位,根据当前数量+1为目标地址 - int qty=nextSchBasePoint.getVehicle_qty()+1; - task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty); - } - task.setVehicle_code(schBasePoint.getVehicle_code()); - task.setVehicle_code2(schBasePoint.getVehicle_code2()); - taskService.update(task); + Assert.notNull(taskConfig, "找不到任务配置文件,请确认YCLCKTask配置是否存在!"); + // 获取任务配置最大生成任务数 + Integer tcmn = taskConfig.getTask_create_max_num(); + // 获取执行中的任务 + List unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(TASK_CONFIG_CODE); + //执行中任务数量小于最大可生成任务数 + if(unFinishTasksByTaskConfig.size() < tcmn){ + for (SchBaseTask task : tasks) { + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setRemark(""); + SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, task.getPoint_code1())); + SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, task.getPoint_code2())); + if(task.getPoint_code2().startsWith("DKT")){ + //如果是叠盘位,根据当前数量+1为目标地址 + int qty=nextSchBasePoint.getVehicle_qty()+1; + task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty); + } + task.setVehicle_code(schBasePoint.getVehicle_code()); + task.setVehicle_code2(schBasePoint.getVehicle_code2()); + taskService.update(task); - //发起任务时先把点位占用,防止发起重复任务 - schBasePoint.setIng_task_code(task.getTask_code()); - pointService.update(schBasePoint); - nextSchBasePoint.setIng_task_code(task.getTask_code()); - pointService.update(nextSchBasePoint); - //去回温库的任务,更细工单表 - if(nextSchBasePoint.getPoint_code().contains("XHW")){ - //pdm_bd_workorder_two任务完成时,status改为2出库中 - workorderService.update(schBasePoint.getVehicle_code2(),"2"); + //发起任务时先把点位占用,防止发起重复任务 + schBasePoint.setIng_task_code(task.getTask_code()); + pointService.update(schBasePoint); + nextSchBasePoint.setIng_task_code(task.getTask_code()); + pointService.update(nextSchBasePoint); + //去回温库的任务,更细工单表 + if(nextSchBasePoint.getPoint_code().contains("XHW")){ + //pdm_bd_workorder_two任务完成时,status改为2出库中 + workorderService.update(schBasePoint.getVehicle_code2(),"2"); + } + //下发 + this.renotifyAcs(task); } - //下发 - this.renotifyAcs(task); } + } /** @@ -211,6 +216,11 @@ public class POINTTask extends AbstractTask { if (ObjectUtil.isNotEmpty(endPointObj)) { endPointObj.setIng_task_code(""); pointService.update(endPointObj); + //去回温库的任务,更细工单表 + if(endPointObj.getPoint_code().contains("XHW")){ + //pdm_bd_workorder_two任务完成时,status改为1出库中 + workorderService.update(endPointObj.getVehicle_code2(),"1"); + } } // 起点解锁 if (ObjectUtil.isNotEmpty(startPointObj)) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/SSXBKJTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/SSXBKJTask.java index 7a0fae2..cdba214 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/SSXBKJTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/SSXBKJTask.java @@ -1,5 +1,6 @@ package org.nl.wms.sch.task_manage.task.tasks; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSONObject; @@ -92,7 +93,7 @@ public class SSXBKJTask extends AbstractTask { */ private SchBasePoint findNextPoint() { String regionCode = "KJHC"; - List schBasePointList = pointMapper.findPointByRegion(regionCode, "0"); + List schBasePointList = pointMapper.findPointByCondition(regionCode, "0",1); for (SchBasePoint schBasePoint : schBasePointList) { //查找点上无载具号无任务号、载具数量为1的 if (schBasePoint.getIs_used() @@ -137,6 +138,7 @@ public class SSXBKJTask extends AbstractTask { } // 终点解锁 endPointObj.setIng_task_code(""); + endPointObj.setUpdate_time(DateUtil.now()); pointService.update(endPointObj); // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); 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 d90817b..3b27c5e 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 @@ -124,7 +124,7 @@ public class YCLCKTask extends AbstractTask { * @return */ private SchBasePoint findNextPoint(SchBaseTask task, String regionCode) { - List schBasePointList = pointMapper.findPointByRegion(regionCode, "0"); + List schBasePointList = pointMapper.findPointByCondition(regionCode, "0",0); for (SchBasePoint schBasePoint : schBasePointList) { //已锁定直接返回 if (task.getTask_code().equals(schBasePoint.getIng_task_code())) { @@ -232,6 +232,7 @@ public class YCLCKTask extends AbstractTask { startPointObj.setVehicle_code(""); startPointObj.setVehicle_code2(""); startPointObj.setIng_task_code(""); + startPointObj.setVehicle_qty(0); startPointObj.setUpdate_time(DateUtil.now()); pointService.updateById(startPointObj); // 任务完成 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java index f08bcee..781c600 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java @@ -147,7 +147,7 @@ public class YCLRKTask extends AbstractTask { * @return */ private SchBasePoint getSchBasePoint(String regionCode) { - List schBasePointList = pointMapper.findPointByRegion(regionCode, "0"); + List schBasePointList = pointMapper.findPointByCondition(regionCode, "0",0); for (SchBasePoint schBasePoint : schBasePointList) { if (schBasePoint.getIs_used() && schBasePoint.getVehicle_qty() ==0 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java index 67b0427..3e8b025 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java @@ -14,6 +14,8 @@ import java.util.List; public interface PointMapper extends BaseMapper { List findPointByRegion(String regionCode,String point_status); + List findPointByCondition(String regionCode,String point_status,Integer vehicle_qty); + List findPointByParentPoint(String pointCode); void updatePointStatus(String device_code,String state); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml index 882ab7d..0d0ce7e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml @@ -11,6 +11,20 @@ ORDER BY region_code + +