From fd1bfa1163d438ec6cabfdd6e01e632d31189c80 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 12 五月 2023 12:34:10 +0800
Subject: [PATCH] 库位规则、混载库位

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  111 +++++++++++++++++++------------------------------------
 1 files changed, 39 insertions(+), 72 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index ebd138e..1ea0054 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -162,45 +162,29 @@
     public void startupFullTakeStore(StockOutParam param, Long userId) {
         ArrayList<String> locNos = new ArrayList<>();
         for (StockOutParam.LocDetl locDetl:param.getLocDetls()){
-            locNos.add(locDetl.getLocNo());
+            if (!locNos.contains(locDetl.getLocNo())){
+                locNos.add(locDetl.getLocNo());
+            }
         }
         //妫�娴嬫槸鍚︿负娴呭簱浣�
-        List<LocMast> locMasts = null;
         boolean sign=false;
         String th = "";
-        for (StockOutParam.LocDetl locDetl:param.getLocDetls()){
-            int row = getRow(locDetl.getLocNo());
-            int bay = getBay(locDetl.getLocNo());
-            int lev = getLev(locDetl.getLocNo());
-            if (!(row==4 || row==5)){
-                if (row>5){
-                    locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row)
-                            .eq("bay1",bay).eq("lev1",lev));
-                    for (LocMast locMast1:locMasts){
-                        if (locNos.contains(locMast1.getLocNo())){
-                            continue;
-                        }
-                        if (locMast1.getRow1()<row){
-                            if (!locMast1.getLocSts().equals("O")){
-                                sign=true;
-                                th="搴撲綅鍙凤細"+locDetl.getLocNo()+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                                break;
-                            }
-                        }
+        for (String locNo:locNos){
+            if (sign){
+                break;
+            }
+            List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo);
+            if (!Cools.isEmpty(groupInsideLoc)) {
+                for (String insideLoc : groupInsideLoc) {
+                    if (locNos.contains(insideLoc)){
+                        continue;
                     }
-                }else {
-                    locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row)
-                            .eq("bay1",bay).eq("lev1",lev));
-                    for (LocMast locMast1:locMasts){
-                        if (locNos.contains(locMast1.getLocNo())){
-                            continue;
-                        }
-                        if (locMast1.getRow1()>row){
-                            if (!locMast1.getLocSts().equals("O")){
-                                sign=true;
-                                th="搴撲綅鍙凤細"+locDetl.getLocNo()+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                                break;
-                            }
+                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", insideLoc));
+                    if (locMast != null) {
+                        if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")){
+                            sign=true;
+                            th="搴撲綅鍙凤細"+locNo+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
+                            break;
                         }
                     }
                 }
@@ -306,7 +290,7 @@
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
             wrkMast.setIoTime(now);
-            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
             wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
             Double ioPri = wrkMastService.getIoPri(ioType, dto.getLocNo());
             wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
@@ -385,7 +369,7 @@
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(now);
-        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+        wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
         Double ioPri = wrkMastService.getIoPri(ioType, taskDto.getLocNo());
         wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
@@ -532,43 +516,26 @@
     @Override
     @Transactional
     public void emptyPlateOut(EmptyPlateOutParam param, Long userId) {
+        List<String> locNos = param.getLocNos();
         //妫�娴嬫槸鍚︿负娴呭簱浣�
-        List<LocMast> locMasts = null;
         boolean sign=false;
         String th = "";
-        for (String locNoKong: param.getLocNos()){
-            int row = getRow(locNoKong);
-            int bay = getBay(locNoKong);
-            int lev = getLev(locNoKong);
-            if (!(row==4 || row==5)){
-                if (row>5){
-                    locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row)
-                            .eq("bay1",bay).eq("lev1",lev));
-                    for (LocMast locMast1:locMasts){
-                        if (locMast1.getRow1()<row){
-                            if (!locMast1.getLocSts().equals("O")){
-                                if (param.getLocNos().contains(locMast1.getLocNo())){
-                                    continue;
-                                }
-                                sign=true;
-                                th="搴撲綅鍙凤細"+locNoKong+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                                break;
-                            }
-                        }
+        for (String locNo:locNos){
+            if (sign){
+                break;
+            }
+            List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo);
+            if (!Cools.isEmpty(groupInsideLoc)) {
+                for (String insideLoc : groupInsideLoc) {
+                    if (locNos.contains(insideLoc)){
+                        continue;
                     }
-                }else {
-                    locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row)
-                            .eq("bay1",bay).eq("lev1",lev));
-                    for (LocMast locMast1:locMasts){
-                        if (locMast1.getRow1()>row){
-                            if (!locMast1.getLocSts().equals("O")){
-                                if (param.getLocNos().contains(locMast1.getLocNo())){
-                                    continue;
-                                }
-                                sign=true;
-                                th="搴撲綅鍙凤細"+locNoKong+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                                break;
-                            }
+                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", insideLoc));
+                    if (locMast != null) {
+                        if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")){
+                            sign=true;
+                            th="搴撲綅鍙凤細"+locNo+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
+                            break;
                         }
                     }
                 }
@@ -614,7 +581,7 @@
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
             wrkMast.setIoTime(new Date());
-            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
             wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
             Double ioPri = wrkMastService.getIoPri(110, locNo);
             wrkMast.setIoPri(ioPri);
@@ -691,7 +658,7 @@
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(now);
-        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+        wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
         wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
         wrkMast.setIoPri(10D);
         wrkMast.setOutMost(locMastService.isOutMost(locNo, false)?1:0);;
@@ -1137,7 +1104,7 @@
                 WrkMast wrkMast = new WrkMast();
                 wrkMast.setWrkNo(workNo);
                 wrkMast.setIoTime(now);
-                wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
                 wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
                 wrkMast.setIoPri(15D);
                 wrkMast.setOutMost(locMastService.isOutMost(loc.getLocNo(), false)?1:0);;

--
Gitblit v1.9.1