From 2ae67fc99e481dee2806dae7889a0a3f06c2f991 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Tue, 16 Jul 2024 22:28:12 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E8=A3=85=E7=AE=B1?= =?UTF-8?q?=E5=8C=BA=E8=A3=85=E7=AE=B1=E4=BB=BB=E5=8A=A1=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E5=86=8D=E9=80=81=E7=A9=BA=E8=BD=BD=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/first_floor_area/ZxDjwTask.java | 20 +++++++------ .../auto/AutoSendGzqToDjq.java | 8 ++--- .../auto/AutoSendVehicleToDjq.java | 29 ++++++++++++------- .../auto/AutoSendZxToDjw.java | 13 +-------- .../auto/ManualSendToZxq.java | 2 +- 5 files changed, 35 insertions(+), 37 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index ecc2b2b2e..038c934b3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -20,6 +20,7 @@ import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.dto.SchBaseTaskVO; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.first_floor_area.auto.AutoSendVehicleToDjq; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; @@ -49,7 +50,8 @@ import java.util.List; @Slf4j public class ZxDjwTask extends AbstractAcsTask { - + @Resource + private AutoSendVehicleToDjq autoSendVehicleToDjq; @Resource private BstIvtBoxinfoMapper bstIvtBoxinfoMapper; @Resource @@ -118,31 +120,31 @@ public class ZxDjwTask extends AbstractAcsTask { } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { throw new BadRequestException("子卷号不能为空!"); } - //1.判断是否最后一个子卷:相同木箱号的子卷包装关系如果生成状态:0,且个数等于1且子卷号等于当前载具号,就是最后一个子卷 List packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0")); if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) { - //4.更改木箱信息为已装箱:1 + //2.更改木箱信息为已装箱:1 BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtBoxinfo::getBox_no, schBaseTask.getVehicle_code2()).ne(BstIvtBoxinfo::getIs_packing, "1")); if (bstIvtBoxinfo == null) { throw new BadRequestException("子卷包装关系为已装箱或找该任务的木箱号不存在!"); } bstIvtBoxinfo.setIs_packing(IOSEnum.IS_NOTANDYES.code("是")); bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo); - //5.最后一个子卷,清除装箱位木箱信息 + //3.最后一个子卷,清除装箱位木箱信息 packageinfoivtService.update(null, new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code2())); + //4.创建装箱区->待检区或管制区补空任务 + autoSendVehicleToDjq.sendVehicleToDjqOrGzq1(IOSEnum.IS_NOTANDYES.code("是")); } - //6.改变子卷包装状态为已装箱:1 + //5.改变子卷包装状态为已装箱:1 PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService .getOne(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false); pdmBiSubpackagerelation.setStatus(IOSEnum.IS_NOTANDYES.code("是")); subpackageRelationService.updateById(pdmBiSubpackagerelation); - //2.更改任务状态为完成 + //6.更改任务状态为完成 updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()); - //3.改变起点点位状态 + //7.改变起点点位状态 packageinfoivtService.update(null, new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); - //创建装箱区->空载具缓存位补空任务 - //kzjhcwTask.toKzjHcw(schBaseTask.getPoint_code1()); + } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java index 23cc294e2..9569c4917 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java @@ -54,7 +54,7 @@ public class AutoSendGzqToDjq { JSONObject task1 = new JSONObject(); String pointCode3; String pointCode4; - List gzqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); + List gzqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); //todo 新增NG卷放置临时管制区135136,只取空不补空 List ivtLists = gzqIvtList.stream() @@ -68,7 +68,7 @@ public class AutoSendGzqToDjq { PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), - PackageInfoIvtEnum.SORT_TYPE.code("降序"), + PackageInfoIvtEnum.SORT_TYPE.code("升序"), "" ); if (CollectionUtils.isNotEmpty(packageList)) { @@ -84,12 +84,12 @@ public class AutoSendGzqToDjq { } } //管制区->待检区送合格品任务 - List gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); + List gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); if (CollectionUtils.isEmpty(gzqPackageinfoivtList)) { return; } //待检区有空位且过滤未完成任务 - List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); + List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); if (CollectionUtils.isEmpty(djqPackageinfoivtList)) { return; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java index 99b88fe73..b6e4523ef 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java @@ -1,24 +1,26 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.first_floor_area.SendDjqKzjTask; import org.nl.b_lms.sch.tasks.first_floor_area.SendGzqKzjTask; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; +import org.nl.wms.sch.manage.TaskStatusEnum; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -41,7 +43,8 @@ public class AutoSendVehicleToDjq { private SendGzqKzjTask sendGzqKzjTask; @Resource - private IbstIvtPackageinfoivtService ibstIvtPackageinfoivtService; + private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService; + @Resource private IbstIvtPackageinfoivtService packageinfoivtService; @@ -49,11 +52,11 @@ public class AutoSendVehicleToDjq { //装箱区->待检区或管制区补空载具 public void run() { - this.sendVehicleToDjqOrGzq1(); + this.sendVehicleToDjqOrGzq1(IOSEnum.IS_NOTANDYES.code("否")); } @SneakyThrows - public void sendVehicleToDjqOrGzq1() { + public void sendVehicleToDjqOrGzq1(String isCalling) { log.info(THIS_CLASS + "-装箱区->待检区或管制区补空任务开始执行扫描。"); RLock lock = redissonClient.getLock(THIS_CLASS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); @@ -61,11 +64,15 @@ public class AutoSendVehicleToDjq { if (tryLock) { String pointCode2; JSONObject task = new JSONObject(); - //存在装箱任务,暂不补空 - List taskTypes = new ArrayList<>(Collections.singletonList(PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位"))); - List existTaskList = taskService.getExistTasks(taskTypes); - if (CollectionUtils.isNotEmpty(existTaskList)) { - return; + if (isCalling.equals(IOSEnum.IS_NOTANDYES.code("否"))) { + //存在未完成的木箱出库任务 + List taskList = taskService.list(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(SchBaseTask::getTask_type, "010704")); + if (CollectionUtils.isNotEmpty(taskList)) { + return; + } } //存在装箱区有空载具的点位 List zxqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); @@ -78,7 +85,7 @@ public class AutoSendVehicleToDjq { // } else { // pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); // } - //todo 新增NG卷放置临时管制区135136,只取空不补空 + //todo 新增NG卷放置临时管制区135136,优先去补管制区 pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); //去装箱区搬运空载具 if (pointCode2 != null) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java index 0bd34718d..59ef1168a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java @@ -158,12 +158,10 @@ public class AutoSendZxToDjw { //托盘类型 1小托盘 2大托盘 param.put("containerType", bstIvtBoxinfo.getVehicle_type()); //木箱计划放入子卷数量 - //param.put("boxNo", relationList.get(0).getQuanlity_in_box()); - //todo 木箱计划放入子卷数量,暂时默认1 param.put("boxNo", relationList.get(0).getQuanlity_in_box()); Integer num = getNumFromRedis(); num = num + 1; - if (num.equals(Integer.parseInt(bstIvtBoxinfo.getNum()))) { + if (num.equals(Integer.parseInt(relationList.get(0).getQuanlity_in_box().toString()))) { param.put("lastOne", IOSEnum.IS_NOTANDYES.code("是")); num = 0; } else { @@ -171,15 +169,6 @@ public class AutoSendZxToDjw { } // 更新计数 redisUtils.set(NUM_KEY, num); - //NUM = NUM + 1; - // if (NUM == Integer.parseInt(bstIvtBoxinfo.getNum())) { - // //todo 查询是否为最后一个子卷,暂时默认1 - // param.put("lastOne", IOSEnum.IS_NOTANDYES.code("是")); - // NUM = 0; - // } else { - // //todo 查询是否为最后一个子卷,暂时默认1 - // param.put("lastOne", IOSEnum.IS_NOTANDYES.code("否")); - // } jo.put("request_param", param.toString()); zxDjwTask.createTask(jo); // try { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/ManualSendToZxq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/ManualSendToZxq.java index 95de47d32..0e7d3f7a2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/ManualSendToZxq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/ManualSendToZxq.java @@ -27,7 +27,7 @@ public class ManualSendToZxq { //待检区->装箱区agv手动搬运任务 public void run() { - this.sendDjqToZxq(); + //this.sendDjqToZxq(); } /**