From d75f17c7ad7f63c3645f63476e970b3f178df32b Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 23 Jul 2024 14:25:05 +0800 Subject: [PATCH 01/14] =?UTF-8?q?rev=EF=BC=9A=E5=AD=90=E5=8D=B7=E8=A3=85?= =?UTF-8?q?=E7=AE=B1=EF=BC=9A=E6=A0=B9=E6=8D=AE=E5=AD=90=E5=8D=B7=E5=8F=B7?= =?UTF-8?q?=E5=B8=A6=E5=87=BA=E6=9C=A8=E7=AE=B1=E6=96=99=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PdmBiSubpackagerelationServiceImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 54b45a1c0..7efa2b8be 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.b_lms.pdm.subpackagerelation.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.StopWatch; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -20,6 +21,8 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.info.dao.PdmBiOrderbominfo; +import org.nl.b_lms.pdm.info.service.IPdmBiOrderbominfoService; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; @@ -87,6 +90,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl Date: Tue, 23 Jul 2024 19:02:20 +0800 Subject: [PATCH 02/14] =?UTF-8?q?fix:=20=E5=B7=A5=E5=8D=95=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=87=8D=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue index 9ddecdf35..fc2744157 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue @@ -504,6 +504,8 @@ + + From 5bf31101b12bc017b7e912a8c0db9b7f66010340 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 23 Jul 2024 22:28:09 +0800 Subject: [PATCH 03/14] =?UTF-8?q?fix:=20=E7=A9=BA=E9=9B=86=E5=90=88?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index 00000b4d6..afc17d4a2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -62,6 +62,9 @@ public class AutoSendAirShaftAgvTask { // 获取分切计划 List collect = Stream.of(cutPoint.getQzz_no1(), cutPoint.getQzz_no2()) .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + if (collect.size() == 0) { + continue; + } // 最多4条分切计划 List plans = slittingproductionplanService.list(new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getQzzno, collect) From cf62dbe85cc59b5fb6db8ef2fe117c85d47e5e6b Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 24 Jul 2024 11:21:51 +0800 Subject: [PATCH 04/14] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java | 4 ++++ .../nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java | 1 + .../nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index df44e055b..a00322bca 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -102,6 +102,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask { point1 = cutpointivtService.getPintByUpOrDownCode(pointCode2, false); point2 = bcutpointivtService.getPintByTrussCode(pointCode1, false); } + log.info("起点数据:{}", point1); + log.info("终点数据:{}", point2); String tmpUpQzzNo = point1.getUp_qzzno(); String tmpDownQzzNo = point1.getDown_qzzno(); // 更新分切计划 @@ -112,6 +114,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask { TaskUtils.updateOptMessageBySlitterPlan(p); List downQzzNos = Stream.of(tmpUpQzzNo, tmpDownQzzNo) .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + log.info("即将下卷的上下轴的气胀轴编码数据:{}", downQzzNos); slittingproductionplanService.update(p, new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getQzzno, downQzzNos)); // 上去的分切计划状态:04 -> 05 @@ -119,6 +122,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask { p.setEnd_time(""); List upQzzNos = Stream.of(point2.getQzz_no1(), point2.getQzz_no2()) .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + log.info("即将上卷的气胀轴编码数据:{}", upQzzNos); if (upQzzNos.size() > 0) { slittingproductionplanService.update(p, new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getQzzno, upQzzNos)); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 75c2671cb..a8c216785 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -453,6 +453,7 @@ public class AutoCallAirShaftTask { * @param specification 代数(4、5) */ private void makePullShaft(BstIvtShafttubeivt empty, String specification) { + log.info("不需要套轴,只做拔轴!"); List notTaskPoints = bcutpointivtService.getAreaNotTaskPointByLocationAreaAndStatus(empty.getPoint_location()); if (notTaskPoints.size() == 0) { return; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java index b949c1520..4d6bdfb4f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java @@ -81,6 +81,10 @@ public class AutoUpShaftTrussTask { // 获取下一组分切计划 List qzzNos = Stream.of(newCutPoint.getQzz_no1(), newCutPoint.getQzz_no2()) .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + if (qzzNos.size() == 0) { + log.warn("{} - 气胀轴编码未找到,跳到下一个点位!", newCutPoint); + return; + } List nextPlans = slittingproductionplanService.list(new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getQzzno, qzzNos) .eq(PdmBiSlittingproductionplan::getStatus, "03") From 8459f52a6fa45e64555c86930c1e3cacaf8289a7 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 24 Jul 2024 13:42:22 +0800 Subject: [PATCH 05/14] =?UTF-8?q?feat=EF=BC=9A=E6=89=8B=E6=8C=81=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E4=B8=8B=E4=B8=80=E4=B8=AA=E5=A5=97=E5=A5=BD=E7=BA=B8?= =?UTF-8?q?=E7=AE=A1=E7=9A=84=E6=B0=94=E8=83=80=E8=BD=B4=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=AF=B9=E5=BA=94=E5=AD=90=E5=8D=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slitter/service/impl/SlitterServiceImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index ac85063a9..4f564469a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -52,6 +52,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -1373,7 +1374,7 @@ public class SlitterServiceImpl implements SlitterService { } String area = deviceCode.getProduct_area(); // 获取当前分切机的下一组分切计划(最多四条分切计划) - // hint: 获取到的分切可能是不同组的但具有一定时间顺序 + // hint: 获取到的分切可能是不同组的但具有一定时间顺序, 可能是以前的脏数据 List timePlans = slittingproductionplanService.list( new LambdaQueryWrapper() .eq(PdmBiSlittingproductionplan::getResource_name, deviceCode.getExt_code()) @@ -1389,7 +1390,14 @@ public class SlitterServiceImpl implements SlitterService { } else { // 找到该分切计划的点位 BstIvtCutpointivt newCutPoint = cutPointList.get(0); - String collect = timePlans.stream() + List qzzNos = Stream.of(newCutPoint.getQzz_no1(), newCutPoint.getQzz_no2()) + .filter(value -> value != null && !value.isEmpty()) + .collect(Collectors.toList()); + List nextPlans = slittingproductionplanService.list(new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getQzzno, qzzNos) + .eq(PdmBiSlittingproductionplan::getStatus, "03") + .eq(PdmBiSlittingproductionplan::getIs_delete, "0")); + String collect = nextPlans.stream() .map(PdmBiSlittingproductionplan::getContainer_name) .filter(ObjectUtil::isNotEmpty) .collect(Collectors.joining(",")); From cf1ec61e516d15de5a10fa3a7f7f2483438225e6 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 24 Jul 2024 15:15:38 +0800 Subject: [PATCH 06/14] =?UTF-8?q?add=EF=BC=9A=E5=BC=82=E5=B8=B8=E5=8F=A3?= =?UTF-8?q?=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/b_lms/sch/tasks/TwoOutHeapTask.java | 27 ++++++++++++------- .../storage_manage/ios/enums/IOSEnum.java | 3 +++ .../util/impl/LashManageServiceImpl.java | 16 +++++++---- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java index e7b22bfea..860f9a7ea 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java @@ -112,16 +112,25 @@ public class TwoOutHeapTask extends AbstractAcsTask { jsonTask.put("update_time", DateUtil.now()); taskTab.update(jsonTask); - // 下发桁架任务:捆扎 - JSONObject jsonParam = new JSONObject(); - jsonParam.put("device_code", jsonTask.getString("point_code2")); - jsonParam.put("vehicle_code", jsonTask.getString("vehicle_code")); - jsonParam.put("task_group_id", jsonTask.getString("task_group_id")); - - LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); - bean1.createLashTask(jsonParam); - + // 如果是异常出库口则不需要下发行架任务 + if (jsonTask.getString("point_code2").equals(IOSEnum.EXCEP_OUT.code("异常出库口"))) { + // 解绑托盘对应关系 + WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); + JSONObject ext_jo = veExtTab.query("pcsn = '" + jsonTask.getString("vehicle_code") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(ext_jo)) { + ext_jo.put("pcsn", ""); + veExtTab.update(ext_jo); + } + } else { + // 下发桁架任务:捆扎 + JSONObject jsonParam = new JSONObject(); + jsonParam.put("device_code", jsonTask.getString("point_code2")); + jsonParam.put("vehicle_code", jsonTask.getString("vehicle_code")); + jsonParam.put("task_group_id", jsonTask.getString("task_group_id")); + LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); + bean1.createLashTask(jsonParam); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java index e0a06f97b..aa43e9337 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java @@ -115,6 +115,9 @@ public enum IOSEnum { // acs外部系统用户 EXT_ACS(MapOf.of("acs", "2","kc","康成")), + + // 异常出库口 + EXCEP_OUT(MapOf.of("异常出库口", "CK2001")), ; private Map code; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java index 6e0db8f8b..61f610794 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java @@ -27,6 +27,7 @@ import org.nl.common.utils.IdUtil; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -230,15 +231,20 @@ public class LashManageServiceImpl implements LashManageService { Map> groupPointMap = executeArr.stream() .collect(Collectors.groupingBy(row -> row.getString("point_code2"))); - // 终点 + // 终点: 如果是异常口则直接生成到异常口的任务 String next_device_code = IOSEnum.OUT_HANGER.code("行架位1"); - List heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>()); - List heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>()); + String TWO_EXCEP = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("TWO_EXCEP").getValue(); + if (TWO_EXCEP.equals(IOSEnum.IS_NOTANDYES.code("是"))) { + next_device_code = IOSEnum.EXCEP_OUT.code("异常出库口"); + } else { + List heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>()); + List heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>()); - if (heapOne.size() > heapTwo.size()) { - next_device_code = IOSEnum.OUT_HANGER.code("行架位2"); + if (heapOne.size() > heapTwo.size()) { + next_device_code = IOSEnum.OUT_HANGER.code("行架位2"); + } } // 查询木箱对应的载具 From 8f70ad21e41333391730baa42ccf1e43b1485845 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 24 Jul 2024 15:31:38 +0800 Subject: [PATCH 07/14] =?UTF-8?q?feat=EF=BC=9A=E8=BF=BD=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E3=80=81=E4=B8=8A=E5=8D=95=E4=B8=8B=E5=8D=95=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E6=8A=A5=E9=94=99=E3=80=81=E6=94=B9=E5=88=87=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=AF=8D=E5=8D=B7=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java | 4 ++++ .../tasks/slitter/service/impl/SlitterServiceImpl.java | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index a00322bca..772a587c0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -150,6 +150,10 @@ public class SlitterDownTrussTask extends AbstractAcsTask { StIvtCutpointivt point1 = cutpointivtService.getPintByUpOrDownCode(pointCode1, false); String pointCode2 = task.getPoint_code2(); BstIvtCutpointivt point2 = bcutpointivtService.getPintByTrussCode(pointCode2, false); + if (ObjectUtil.isEmpty(point1)) { + point1 = cutpointivtService.getPintByUpOrDownCode(pointCode2, false); + point2 = bcutpointivtService.getPintByTrussCode(pointCode1, false); + } String tmpUpQzzNo = point1.getUp_qzzno(); String tmpDownQzzNo = point1.getDown_qzzno(); // 更新分切计划 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 4f564469a..7aa5bfbb9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -498,7 +498,7 @@ public class SlitterServiceImpl implements SlitterService { .eq(PdmBiSlittingproductionplan::getStatus, "03") .eq(PdmBiSlittingproductionplan::getIs_delete, "0") .orderByAsc(PdmBiSlittingproductionplan::getUpdate_time)); - log.info("获取下一组分切计划:{}", timePlans); + log.info("获取下一组分切计划(可能存在脏数据):{}", timePlans); // 寻找备好轴的对接点位 List cutPointList = slitterMapper.getReadyShaftPoint(device.getExt_code()); // 任务参数 @@ -563,8 +563,11 @@ public class SlitterServiceImpl implements SlitterService { PdmBiSlittingproductionplan tmpPlan = timePlans.get(0); // hint: 以第一条为准,过滤和第一条同组同母卷的分切计划 List nextPlans = timePlans.stream() - .filter(plan -> plan.getParent_container_name().equals(tmpPlan.getParent_container_name()) && plan.getSplit_group().equals(tmpPlan.getSplit_group())) + .filter(plan -> plan.getParent_container_name().equals(tmpPlan.getParent_container_name()) + && plan.getRestruct_container_name().equals(tmpPlan.getRestruct_container_name()) + && plan.getSplit_group().equals(tmpPlan.getSplit_group())) .collect(Collectors.toList()); + log.info("获取下一趟分切计划数据:{}", nextPlans); // 筛选上下轴各一条 PdmBiSlittingproductionplan nextUpPlan = nextPlans.stream().filter(p -> "1".equals(p.getUp_or_down())).findFirst().orElse(null); PdmBiSlittingproductionplan nextDownPlan = nextPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null); @@ -745,6 +748,7 @@ public class SlitterServiceImpl implements SlitterService { if (ObjectUtil.isEmpty(plan.getLevel())) { throw new BadRequestException("子卷[" + plan.getContainer_name() + "]对应的级别不能为空"); } + log.info("分切计划数据:{}", plan); // plan.setLevel("4"); String point_type = "5".equals(plan.getLevel()) ? "5" : "4"; // 查找终点 确认是废箔还是成品: 根据分切计划的子卷等级来区分,5为报废 @@ -948,6 +952,7 @@ public class SlitterServiceImpl implements SlitterService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject acsActionFinishRequestToRelease(JSONObject param) { + log.info("ACS请求取货完成参数:{}", param); JSONObject result = new JSONObject(); result.put("status", HttpStatus.HTTP_OK); result.put("message", "反馈取货成功!"); From 808f0c07381f027cea431e6c4a13c5655f416e83 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 24 Jul 2024 18:58:27 +0800 Subject: [PATCH 08/14] =?UTF-8?q?feat=EF=BC=9A=E6=8E=A7=E5=88=B6=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E5=88=86=E5=88=87=E5=B7=A5=E5=8D=95=E5=B7=A6=E5=8F=B3?= =?UTF-8?q?=E5=8D=B7=E5=B8=A6=E6=9D=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/slitter/service/impl/SlitterServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 7aa5bfbb9..292149cfc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -740,6 +740,9 @@ public class SlitterServiceImpl implements SlitterService { plan = plans.stream().filter(p -> SlitterConstant.SLITTER_SUB_VOLUME_RIGHT.equals(p.getLeft_or_right())).findFirst().orElse(null); } else { plan = plans.stream().filter(p -> SlitterConstant.SLITTER_SUB_VOLUME_LEFT.equals(p.getLeft_or_right())).findFirst().orElse(null); + if (ObjectUtil.isEmpty(plan)) { + plan = plans.stream().filter(p -> SlitterConstant.SLITTER_SUB_VOLUME_RIGHT.equals(p.getLeft_or_right())).findFirst().orElse(null); + } } if (plan == null) { log.error("设备{}, 找不到气胀轴编码{}对应的分切计划!参数:{}", deviceCode, qzzNo, param); From 9addae906518b56e49694155932ea6075b8d5187 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 25 Jul 2024 09:28:26 +0800 Subject: [PATCH 09/14] =?UTF-8?q?rev=EF=BC=9A=E7=A9=BA=E6=9C=A8=E7=AE=B1?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E9=AB=98=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iostorInv/util/impl/OutBoxManageServiceImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 2264a1745..9c58c33b8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -551,12 +551,20 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { // 载具扩展属性表 WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); + BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, jsonObject.getString("storagevehicle_code")) + ); + if (ObjectUtil.isEmpty(boxDao)) { + throw new BadRequestException("木箱信息不存在!"+jsonObject.getString("storagevehicle_code")); + } + // 找一个空的仓位 JSONObject paramIn = new JSONObject(); paramIn.put("stor_id", IOSEnum.STOR_ID.code("二期")); paramIn.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); paramIn.put("vehicle_type", jsonObject.getString("storagevehicle_type")); - paramIn.put("height", jsonObject.getString("height")); + paramIn.put("height", boxDao.getBox_high()); InBoxManageServiceImpl bean = SpringContextHolder.getBean(InBoxManageServiceImpl.class); JSONObject jsonAttr = bean.getStruct(paramIn); From 4f267d6e33290e2df5e2cae9a739921f18355d47 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 25 Jul 2024 12:11:53 +0800 Subject: [PATCH 10/14] =?UTF-8?q?rev=EF=BC=9A=E6=9C=A8=E7=AE=B1=E5=87=BA?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iostorInv/util/impl/OutBoxManageServiceImpl.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 9c58c33b8..2264a1745 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -551,20 +551,12 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { // 载具扩展属性表 WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); - BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( - new QueryWrapper().lambda() - .eq(BstIvtBoxinfo::getBox_no, jsonObject.getString("storagevehicle_code")) - ); - if (ObjectUtil.isEmpty(boxDao)) { - throw new BadRequestException("木箱信息不存在!"+jsonObject.getString("storagevehicle_code")); - } - // 找一个空的仓位 JSONObject paramIn = new JSONObject(); paramIn.put("stor_id", IOSEnum.STOR_ID.code("二期")); paramIn.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); paramIn.put("vehicle_type", jsonObject.getString("storagevehicle_type")); - paramIn.put("height", boxDao.getBox_high()); + paramIn.put("height", jsonObject.getString("height")); InBoxManageServiceImpl bean = SpringContextHolder.getBean(InBoxManageServiceImpl.class); JSONObject jsonAttr = bean.getStruct(paramIn); From d4cf8d09d61f8713dbc3e7c77b6cb465602e6bd0 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 25 Jul 2024 15:51:51 +0800 Subject: [PATCH 11/14] =?UTF-8?q?rev=EF=BC=9A=E5=A6=82=E6=9E=9C=E6=98=AF?= =?UTF-8?q?=E8=BF=94=E6=A3=80=E5=87=BA=E5=BA=93=E6=88=96=E8=80=85=E6=94=B9?= =?UTF-8?q?=E5=88=87=E5=87=BA=E5=BA=93=E5=88=99=E4=B8=8D=E6=8D=86=E6=89=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/sch/tasks/TwoLashTask.java | 30 ++++++++++------ .../dao/mapper/StIvtIostorinvOutMapper.java | 7 ++++ .../dao/mapper/StIvtIostorinvOutMapper.xml | 16 ++++++++- .../util/impl/LashManageServiceImpl.java | 35 +++++++++++++------ 4 files changed, 66 insertions(+), 22 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java index 792928ff0..74826c19b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java @@ -9,19 +9,12 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; -import lombok.RequiredArgsConstructor; -import org.nl.b_lms.sch.point.dao.SchBasePoint; -import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; -import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxlashboundService; import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; -import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxlashbound; import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvOutMapper; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; @@ -31,7 +24,6 @@ import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -62,6 +54,12 @@ public class TwoLashTask extends AbstractAcsTask { @Autowired private IMdpbBoxtypeService iMdpbBoxtypeService; + /* + * 出入库主表mapper + */ + @Autowired + private StIvtIostorinvOutMapper stIvtIostorinvOutMapper; + @Override public List addTask() { /* @@ -116,11 +114,21 @@ public class TwoLashTask extends AbstractAcsTask { } interaction_json.put("bindingTimes", boxTypeDao.getLash_num_tow()); - // 是否二次捆扎 + // 是否二次捆扎: 如果是返检或者反切的则不需要捆扎(找最近的木箱出库单据) if (ObjectUtil.isEmpty(boxTypeDao.getNeed_lash_two())) { throw new BadRequestException("是否第二次捆扎不能为空!"); } - interaction_json.put("isBinding", boxTypeDao.getNeed_lash_two()); + String isBinding = boxTypeDao.getNeed_lash_two(); + + JSONObject jsonMst = stIvtIostorinvOutMapper.queryBoxOutInfo(json.getString("vehicle_code")); + if (ObjectUtil.isNotEmpty(jsonMst)) { + if (jsonMst.getString("bill_type").equals(IOSEnum.OUT_TYPE.code("改切出库")) + || jsonMst.getString("bill_type").equals(IOSEnum.OUT_TYPE.code("返检出库"))) { + isBinding = IOSEnum.IS_NOTANDYES.code("否"); + } + } + interaction_json.put("isBinding", isBinding); + char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); AcsTaskDto dto = AcsTaskDto.builder() .ext_task_id(json.getString("task_id")) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.java index 5b0d18f5f..b077d4530 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.java @@ -1,6 +1,7 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.springframework.data.domain.Pageable; @@ -18,4 +19,10 @@ import java.util.Map; */ public interface StIvtIostorinvOutMapper extends BaseMapper { + /** + * 根据木箱号查找最近出库的木箱 + * @param box_no: 木箱号 + * @return JSONObject + */ + JSONObject queryBoxOutInfo(String box_no); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.xml index f013ce8eb..7f3c341b0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.xml @@ -1,5 +1,19 @@ - + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java index 61f610794..1a2278448 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java @@ -7,12 +7,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; -import org.hibernate.annotations.Source; import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; -import org.nl.b_lms.sch.point.service.IschBasePointService; -import org.nl.b_lms.sch.task.dao.SchBaseTask; -import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.b_lms.sch.tasks.TwoLashTask; import org.nl.b_lms.sch.tasks.TwoOutHeapTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; @@ -22,19 +18,20 @@ import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxlashbound; import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvOutMapper; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.LashManageService; import org.nl.common.utils.IdUtil; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.system.service.param.impl.SysParamServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; /** @@ -74,6 +71,11 @@ public class LashManageServiceImpl implements LashManageService { */ private final IMdpbBoxtypeService iMdpbBoxtypeService; + /** + * 出入库主表服务 + */ + private final StIvtIostorinvOutMapper stIvtIostorinvOutMapper; + @Override @Transactional public void createLashTask(JSONObject whereJson) { @@ -274,6 +276,8 @@ public class LashManageServiceImpl implements LashManageService { public JSONObject applyTab(JSONObject whereJson) { // 载具扩展属性表 WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); + // 任务表 + WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); // TODO 贴标流程 JSONObject result = new JSONObject(); @@ -305,11 +309,22 @@ public class LashManageServiceImpl implements LashManageService { result.put("width", boxDao.getBox_width()); result.put("height", boxDao.getBox_high()); result.put("case", boxDao.getMaterial_code()); - // 是否捆扎 + + // 是否捆扎: 如果是返检或者反切的则不需要捆扎(找最近的木箱出库单据) if (ObjectUtil.isEmpty(boxTypeDao.getNeed_lash_one())) { throw new BadRequestException("第一次是否捆扎不能为空!"); } - result.put("isBinding", boxTypeDao.getNeed_lash_one()); + String isBinding = boxTypeDao.getNeed_lash_one(); + + JSONObject jsonMst = stIvtIostorinvOutMapper.queryBoxOutInfo(boxDao.getBox_no()); + if (ObjectUtil.isNotEmpty(jsonMst)) { + if (jsonMst.getString("bill_type").equals(IOSEnum.OUT_TYPE.code("改切出库")) + || jsonMst.getString("bill_type").equals(IOSEnum.OUT_TYPE.code("返检出库"))) { + isBinding = IOSEnum.IS_NOTANDYES.code("否"); + } + } + + result.put("isBinding", isBinding); // TODO 是否贴标 result.put("isLabeling", IOSEnum.IS_SEND.code("否")); // TODO 贴标模版 From 099cf07656c422448f28189e94b5a0372b91c0cd Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 25 Jul 2024 17:54:42 +0800 Subject: [PATCH 12/14] =?UTF-8?q?rev=EF=BC=9A=E5=BC=82=E5=B8=B8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/impl/InBoxManageServiceImpl.java | 33 +++++++++++++++---- .../util/impl/OutBoxManageServiceImpl.java | 5 ++- .../acs/service/impl/AcsToWmsServiceImpl.java | 1 + 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index 9db71b309..d91fda912 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -398,6 +398,9 @@ public class InBoxManageServiceImpl implements InBoxManageService { jsonParam.put("box_length", boxDao.getBox_length()); jsonParam.put("box_width", boxDao.getBox_width()); jsonParam.put("box_high", boxDao.getBox_high()); + jsonParam.put("height", jsonAttr.getString("height")); + jsonParam.put("vehicle_type", jsonAttr.getString("storagevehicle_type")); + jsonParam.put("move_block_num", jsonAttr.getString("block_num")); // 调用找货位方法 JSONObject jsonAttrNow = getStruct(jsonParam); @@ -516,12 +519,25 @@ public class InBoxManageServiceImpl implements InBoxManageService { * 判断是否有仓位 * 判断条件:库区、仓库、是否启用、是否删除、未锁定、没有载具 */ - JSONArray structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + - "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + - "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + - "AND height = '" + jsonParam.getString("height") + "'" + - "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + - "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0); + String block_num = jsonParam.getString("move_block_num"); + + JSONArray structArray = new JSONArray(); + + if (ObjectUtil.isEmpty(block_num)) { + structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + + "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + + "AND height = '" + jsonParam.getString("height") + "'" + + "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + + "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0); + } else { + structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + + "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + + "AND height = '" + jsonParam.getString("height") + "'" + + "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + + "AND sect_id = '" + jsonParam.getString("sect_id") + "' AND block_num = '"+block_num+"'").getResultJSONArray(0); + } if (ObjectUtil.isEmpty(structArray)) { notInRowList.clear(); @@ -530,7 +546,10 @@ public class InBoxManageServiceImpl implements InBoxManageService { } // 确定巷道:查看每个巷道最小木箱数的巷道,获取最小木箱数的巷道 - String block_num = getMinBlock(jsonParam); + // 不是移库则需要找新巷道 + if (ObjectUtil.isEmpty(block_num)) { + block_num = getMinBlock(jsonParam); + } // 确定排:查看每排的木箱数量,找到数量最小的那排 jsonParam.put("block_num", block_num); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 2264a1745..8108d0dc5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -151,9 +151,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { JSONObject jsonParam = new JSONObject(); jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期")); jsonParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); - jsonParam.put("box_length", boxDao.getBox_length()); - jsonParam.put("box_width", boxDao.getBox_width()); - jsonParam.put("box_high", boxDao.getBox_high()); + jsonParam.put("material_code", boxDao.getMaterial_code()); jsonParam.put("num", boxDao.getNum()); // 调用找货位方法 @@ -557,6 +555,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { paramIn.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); paramIn.put("vehicle_type", jsonObject.getString("storagevehicle_type")); paramIn.put("height", jsonObject.getString("height")); + paramIn.put("move_block_num", jsonObject.getString("block_num")); InBoxManageServiceImpl bean = SpringContextHolder.getBean(InBoxManageServiceImpl.class); JSONObject jsonAttr = bean.getStruct(paramIn); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 5dd834067..8355ef8d7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -2209,6 +2209,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (type.equals("2")) { point_code = outBoxManageService.taskExceptional(whereJson); } + // TODO 重写 if (type.equals("3")) { String task_id = outBoxManageService.taskExceptionalOut(whereJson); result.put("task_id", task_id); From 1c1a7eb3d087da5bc6cca2df2fd291933f91b6c8 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 26 Jul 2024 12:37:59 +0800 Subject: [PATCH 13/14] =?UTF-8?q?rev=EF=BC=9A=E6=9C=A8=E7=AE=B1=E5=87=BA?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/impl/OutBoxManageServiceImpl.java | 61 ++++++++++++++++--- .../acs/service/impl/AcsToWmsServiceImpl.java | 10 +-- .../outbill/rest/CheckOutBillController.java | 6 +- 3 files changed, 64 insertions(+), 13 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 8108d0dc5..019ce5ddd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -11,6 +11,7 @@ import org.nl.b_lms.sch.tasks.TwoMoveBoxTask; import org.nl.b_lms.sch.tasks.TwoOutBoxTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; 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; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; import org.nl.common.utils.IdUtil; @@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -61,6 +63,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { @Autowired private IschBaseTaskService ischBaseTaskService; + @Resource + private BstIvtBoxinfoMapper bstIvtBoxinfoMapper; + @Override @Transactional(rollbackFor = Exception.class) public String outBox(JSONObject whereJson) { @@ -143,7 +148,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { attrTab.update(jsonAttr); // 重新分配货位 - BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( + BstIvtBoxinfo boxDao = bstIvtBoxinfoMapper.selectOne( new QueryWrapper().lambda() .eq(BstIvtBoxinfo::getBox_no, taskDao.getVehicle_code()) ); @@ -516,15 +521,29 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { } else { // 判断是否被锁定 if (lowAttr.get(0).getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { - // 创建木箱移库单 - String task_group_id = createBoxMove(lowAttr.get(0)); + // 判断浅货位木箱和深货位木箱是否相同规格 + boolean ifLike = ifLikeBox(json.getString("storagevehicle_code"), lowAttr.get(0).getString("storagevehicle_code")); - json.put("task_group_id", task_group_id); - jsonAttr = json; - break; + if (ifLike) { + // 相同:出浅货位 + jsonAttr = lowAttr.get(0); + break; + } else { + // 创建木箱移库单 + String task_group_id = createBoxMove(lowAttr.get(0)); + + json.put("task_group_id", task_group_id); + jsonAttr = json; + break; + } } else { - jsonAttr = json; - break; + // 判断是否是空木箱出库锁 + if (lowAttr.get(0).getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("木箱出库锁"))) { + jsonAttr = json; + break; + } else { + continue; + } } } } else if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { @@ -538,6 +557,32 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { return jsonAttr; } + /** + * 判断深货位木箱和浅货位木箱规格是否一样 + * @param deep_box 深货位木箱 + * @param shallow_box 浅货位木箱 + * @return boolean + */ + private boolean ifLikeBox(String deep_box, String shallow_box) { + + boolean flag = false; + BstIvtBoxinfo deepBoxDao = bstIvtBoxinfoMapper.selectOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, deep_box) + ); + + BstIvtBoxinfo shallowBoxDao = bstIvtBoxinfoMapper.selectOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, shallow_box) + ); + + if (deepBoxDao.getMaterial_code().equals(shallowBoxDao.getMaterial_code())) { + flag = true; + } + + return flag; + } + /** * 创建木箱移库任务 * diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 8355ef8d7..ec19d7c8c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -2211,8 +2211,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } // TODO 重写 if (type.equals("3")) { - String task_id = outBoxManageService.taskExceptionalOut(whereJson); - result.put("task_id", task_id); + throw new BadRequestException("浅货位有货!"); + /* String task_id = outBoxManageService.taskExceptionalOut(whereJson); + result.put("task_id", task_id);*/ } } else if (taskDao.getTask_type().equals(TASKEnum.VEHICLE_TYPE.code("托盘入库"))) { // 托盘入库:满入、浅货位有货-放货时 @@ -2225,8 +2226,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { point_code = outVehicleManageService.taskExceptional(whereJson); } if (type.equals("3")) { - String task_id = outVehicleManageService.taskExceptionalOut(whereJson); - result.put("task_id", task_id); + throw new BadRequestException("浅货位有货!"); + /* String task_id = outVehicleManageService.taskExceptionalOut(whereJson); + result.put("task_id", task_id);*/ } } else if (taskDao.getTask_type().equals(TASKEnum.PROUD_TYPE.code("成品入库"))) { // 成品入库:满入、浅货位有货-放货时 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java index b2a4ce613..4e988a2a4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java @@ -10,6 +10,7 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.*; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.LashManageService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; import org.nl.modules.logging.annotation.Log; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.st.inbill.service.CheckOutBillService; @@ -48,6 +49,9 @@ public class CheckOutBillController { private final SendOutManageServiceImpl sendOutManageService; + private final OutBoxManageService outBoxManageService; + + @GetMapping @Log("查询出库单") @@ -415,7 +419,7 @@ public class CheckOutBillController { @Log("木箱出库测试") @SaIgnore public ResponseEntity testOutBox(@RequestBody JSONObject whereJson) { - new OutBoxManageServiceImpl().outBox(whereJson); + outBoxManageService.outBox(whereJson); return new ResponseEntity<>(HttpStatus.OK); } From 0c064bb559fb4bc9b52592be67740adcc8baf3f7 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 26 Jul 2024 15:38:24 +0800 Subject: [PATCH 14/14] =?UTF-8?q?rev=EF=BC=9A=E5=BC=82=E5=B8=B8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sch/tasks/TwoExcepionalMoveTask.java | 44 +++++++------------ .../storage_manage/ios/enums/IOSEnum.java | 2 +- .../util/impl/InVehicleManageServiceImpl.java | 32 ++++++++++---- .../util/impl/OutBoxManageServiceImpl.java | 16 ++----- .../impl/OutVehicleManageServiceImpl.java | 16 ++----- .../acs/service/impl/AcsToWmsServiceImpl.java | 13 +++--- 6 files changed, 53 insertions(+), 70 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java index 5fa8fca87..2c59faf8c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java @@ -18,7 +18,7 @@ import java.util.ArrayList; import java.util.List; /** - * 二期异常移库任务类 + * 二期异常出库任务(木箱:浅货位阻挡) * Created by Lxy on 2024/1/19. */ public class TwoExcepionalMoveTask extends AbstractAcsTask { @@ -85,37 +85,27 @@ public class TwoExcepionalMoveTask extends AbstractAcsTask { map.put("task_status", TaskStatusEnum.FINISHED.getCode()); - // 更新起点仓位 - JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); - jsonAttr.put("storagevehicle_code",""); - attrTab.update(jsonAttr); + if (jsonTask.getString("vehicle_code").equals(IOSEnum.IS_NOTANDYES.code("否"))){ + // 更新起点仓位 + JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); + jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); + jsonAttr.put("storagevehicle_code",""); + attrTab.update(jsonAttr); - // 更新终点仓位 - JSONObject jsonAttr1 = attrTab.query("struct_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); - jsonAttr1.put("lock_type",IOSEnum.LOCK_TYPE.code("其它")); - attrTab.update(jsonAttr1); + // 生成对接位到异常口的任务 + JSONObject param = new JSONObject(); + param.put("start_device_code", jsonTask.getString("point_code2")); + param.put("next_device_code", IOSEnum.EXCEP_OUT.code("异常出库口")); + param.put("task_type", "010712"); + param.put("vehicle_code",IOSEnum.IS_NOTANDYES.code("是")); + createTask(param); + immediateNotifyAcs(null); + } } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - - if (taskObj.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务已执行不能取消"); - } - - // 更新任务表删除字段 - map.put("is_delete", IOSEnum.IS_NOTANDYES.code("是")); - - // 解锁起点仓位 - JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); - attrTab.update(jsonAttr); - - // 解锁终点仓位 - JSONObject jsonAttr1 = attrTab.query("struct_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); - jsonAttr1.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); - attrTab.update(jsonAttr1); + throw new BadRequestException("异常任务不允许取消!"); } map.put("update_optid", SecurityUtils.getCurrentUserId()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java index aa43e9337..a9aa8eda9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java @@ -63,7 +63,7 @@ public enum IOSEnum { "空托盘出库锁", "4", "空托盘入库锁", "5", "移出锁", "6", "移入锁", "7","木箱入库锁","8", "木箱出库锁","9","出库异常锁","10", - "货位异常锁", "11","其它", "99" + "货位异常锁", "11","货位异常出库锁", "12","其它", "99" )), //仓库id diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java index cedd5a4d5..c985299f1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java @@ -129,7 +129,8 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { JSONObject jsonParam = new JSONObject(); jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期")); jsonParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); - jsonParam.put("vehicle_type", taskDao.getVehicle_type()); + jsonParam.put("vehicle_type", jsonAttr.getString("storagevehicle_type")); + jsonParam.put("move_block_num", jsonAttr.getString("block_num")); // 调用找货位方法 JSONObject jsonAttrNow = getStruct(jsonParam); @@ -166,12 +167,24 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { * 判断是否有仓位 * 判断条件:库区、仓库、是否启用、是否删除、未锁定、没有载具 */ - JSONArray structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + - "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + - "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + - "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + - "AND height = '2'" + - "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0); + String block_num = jsonParam.getString("move_block_num"); + + JSONArray structArray = new JSONArray(); + if (ObjectUtil.isEmpty(block_num)) { + structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + + "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + + "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + + "AND height = '2'" + + "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0); + } else { + structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + + "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + + "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + + "AND height = '2'" + + "AND sect_id = '" + jsonParam.getString("sect_id") + "' AND block_num = '"+block_num+"'").getResultJSONArray(0); + } if (ObjectUtil.isEmpty(structArray)) { notInRowList.clear(); @@ -180,7 +193,10 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { } // 确定巷道:查看每个巷道最小托盘数的巷道,获取最小托盘数的想到 - String block_num = getMinBlock(jsonParam); + // 不是移库则需要找新巷道 + if (ObjectUtil.isEmpty(block_num)) { + block_num = getMinBlock(jsonParam); + } // 确定排:查看每排的载具数量,找到数量最小的那排 jsonParam.put("block_num", block_num); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 019ce5ddd..3d251e164 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -197,26 +197,16 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getString("point_code1")); } - // 查询移入货位 - JSONObject jsonAttrMove = attrTab.query("sect_id = '" + jsonAttrOrder.getString("sect_id") + "' and struct_id <> '" + jsonAttrNow.getString("struct_id") + "' and lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' and IFNULL(storagevehicle_code,'') = '' AND is_used = '1' AND is_delete = '0' AND block_num = '"+jsonAttrOrder.getString("block_num")+"' order by zdepth DESC") - .uniqueResult(0); - - if (ObjectUtil.isEmpty(jsonAttrMove)) { - throw new BadRequestException("仓库不足!"); - } - // 锁住仓位 - jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("其它")); + jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常出库锁")); attrTab.update(jsonAttrNow); - jsonAttrMove.put("lock_type", IOSEnum.LOCK_TYPE.code("其它")); - attrTab.update(jsonAttrMove); - // 生成任务 JSONObject taskParam = new JSONObject(); taskParam.put("start_device_code", jsonAttrNow.getString("struct_code")); - taskParam.put("next_device_code", jsonAttrMove.getString("struct_code")); + taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num"))); taskParam.put("task_type", "010712"); + taskParam.put("vehicle_code",IOSEnum.IS_NOTANDYES.code("否")); TwoExcepionalMoveTask taskBean = new TwoExcepionalMoveTask(); String task_id = taskBean.createTask(taskParam); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java index ddcbc32c8..bd56f1976 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java @@ -180,26 +180,16 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getString("point_code1")); } - // 查询移入货位 - JSONObject jsonAttrMove = attrTab.query("sect_id = '" + jsonAttrOrder.getString("sect_id") + "' and struct_id <> '" + jsonAttrNow.getString("struct_id") + "' and lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' and IFNULL(storagevehicle_code,'') = '' AND is_used = '1' AND is_delete = '0' AND block_num = '"+jsonAttrOrder.getString("block_num")+"' order by zdepth DESC") - .uniqueResult(0); - - if (ObjectUtil.isEmpty(jsonAttrMove)) { - throw new BadRequestException("仓库不足!"); - } - // 锁住仓位 - jsonAttrMove.put("lock_type", IOSEnum.LOCK_TYPE.code("其它")); - attrTab.update(jsonAttrMove); - - jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("其它")); + jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常出库锁")); attrTab.update(jsonAttrNow); // 生成任务 JSONObject taskParam = new JSONObject(); taskParam.put("start_device_code", jsonAttrNow.getString("struct_code")); - taskParam.put("next_device_code", jsonAttrMove.getString("struct_code")); + taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num"))); taskParam.put("task_type", "010712"); + taskParam.put("vehicle_code",IOSEnum.IS_NOTANDYES.code("否")); TwoExcepionalMoveTask taskBean = new TwoExcepionalMoveTask(); String task_id = taskBean.createTask(taskParam); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index ec19d7c8c..39c077cc8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -2209,11 +2209,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (type.equals("2")) { point_code = outBoxManageService.taskExceptional(whereJson); } - // TODO 重写 if (type.equals("3")) { - throw new BadRequestException("浅货位有货!"); - /* String task_id = outBoxManageService.taskExceptionalOut(whereJson); - result.put("task_id", task_id);*/ + String task_id = outBoxManageService.taskExceptionalOut(whereJson); + result.put("task_id", task_id); } } else if (taskDao.getTask_type().equals(TASKEnum.VEHICLE_TYPE.code("托盘入库"))) { // 托盘入库:满入、浅货位有货-放货时 @@ -2226,9 +2224,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { point_code = outVehicleManageService.taskExceptional(whereJson); } if (type.equals("3")) { - throw new BadRequestException("浅货位有货!"); - /* String task_id = outVehicleManageService.taskExceptionalOut(whereJson); - result.put("task_id", task_id);*/ + String task_id = outVehicleManageService.taskExceptionalOut(whereJson); + result.put("task_id", task_id); } } else if (taskDao.getTask_type().equals(TASKEnum.PROUD_TYPE.code("成品入库"))) { // 成品入库:满入、浅货位有货-放货时 @@ -2238,7 +2235,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } if (!type.equals("3") && ObjectUtil.isEmpty(point_code)) { - throw new BadRequestException("点位为空!"); + throw new BadRequestException("仓位为空!"); } result.put("status", HttpStatus.OK.value());