From 24f160ab1f90b3d7e17c8701b0ba1401780a3e4f Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期一, 06 十二月 2021 18:28:41 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 107 insertions(+), 0 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 e0309d8..20f2d7c 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -830,4 +830,111 @@
         }
     }
 
+    /**
+     * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆
+     */
+    public void moveLocForDeepLoc(Integer crnNo, String locNo){
+        // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+        if (Utils.isDeepLoc(slaveProperties, locNo)) {
+            String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
+            LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+            // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+            if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+                WrkMast waitWrkMast = wrkMastService.selectByLocNo(shallowLocNo);
+                if (null == waitWrkMast) {
+                    log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+                    throw new CoolException(shallowLocNo + "搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒");
+                } else {
+                    waitWrkMast.setIoPri(15D);
+                    waitWrkMast.setModiTime(new Date());
+                    if (!wrkMastService.updateById(waitWrkMast)) {
+                        log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                        throw new CoolException("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿=" + waitWrkMast.getWrkNo());
+                    }
+                }
+            } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+                // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
+                List<Integer> rows = locMastService.queryDistinctRow(crnNo);
+                LocMast loc = null;
+                for (Integer row : rows) {
+                    if (Utils.isDeepLoc(slaveProperties, row)) {
+                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                        if (null != loc) { break; }
+                    }
+                }
+                if (null == loc) {
+                    for (Integer row : rows) {
+                        if (Utils.isShallowLoc(slaveProperties, row)) {
+                            loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                            if (null != loc) { break; }
+                        }
+                    }
+                }
+                if (null == loc) {
+                    throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+                }
+
+                // 鑾峰彇宸ヤ綔鍙�
+                int workNo = commonService.getWorkNo(0);
+                // 淇濆瓨宸ヤ綔妗�
+                WrkMast wrkMast = new WrkMast();
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setIoTime(new Date());
+                wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+                wrkMast.setIoPri(13D);
+                wrkMast.setCrnNo(crnNo);
+                wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
+                wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
+                wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+                wrkMast.setPicking("N"); // 鎷f枡
+                wrkMast.setExitMk("N"); // 閫�鍑�
+                wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+                wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
+                wrkMast.setLinkMis("N");
+                wrkMast.setAppeTime(new Date());
+                wrkMast.setModiTime(new Date());
+                if (!wrkMastService.insert(wrkMast)) {
+                    throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                }
+                // 宸ヤ綔妗f槑缁嗕繚瀛�
+                if (shallowLoc.getLocSts().equals("F")) {
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+                    for (LocDetl locDetl : locDetls) {
+                        WrkDetl wrkDetl = new WrkDetl();
+                        wrkDetl.setWrkNo(workNo);
+                        wrkDetl.setIoTime(new Date());
+                        wrkDetl.setQty(locDetl.getQty());
+                        VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+                        wrkDetl.setAppeTime(new Date());
+                        wrkDetl.setModiTime(new Date());
+                        if (!wrkDetlService.insert(wrkDetl)) {
+                            throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                        }
+                    }
+                }
+                // 淇敼婧愬簱浣嶇姸鎬�
+                if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+                    shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+                    shallowLoc.setModiTime(new Date());
+                    if (!locMastService.updateById(shallowLoc)){
+                        throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+                    }
+                } else {
+                    throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
+                }
+                // 淇敼鐩爣搴撲綅鐘舵��
+                if (loc.getLocSts().equals("O")) {
+                    loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+                    loc.setModiTime(new Date());
+                    if (!locMastService.updateById(loc)) {
+                        throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+                    }
+                } else {
+                    throw new CoolException("绉昏浆澶辫触");
+                }
+            }
+        }
+    }
+
 }

--
Gitblit v1.9.1