From 7a63bc22c7e5156cdfb3807fa0cd8c85890ef168 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 02 一月 2021 14:55:27 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |  251 +++++++++++++++++++++++++++-----------------------
 1 files changed, 135 insertions(+), 116 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 8b4c272..8269923 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -96,37 +96,64 @@
         StartupDto startupDto = new StartupDto();
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = getWorkNo(0);
-        if (sourceStaNo == 202) {
-            whsType = 2;
-        } else if (sourceStaNo == 205){
-            whsType = 1;
-        } else {
-            throw new CoolException("搴撲綅鎺掑彿鍒嗛厤");
+
+        switch (sourceStaNo) {
+            case 202:
+                whsType = 2;
+                break;
+            case 205:
+                whsType = 1;
+                break;
+            case 126:
+                whsType = 3;
+                break;
+            default:
+                throw new CoolException("搴撲綅鎺掑彿鍒嗛厤閿欒, 婧愮珯鍙凤細" + sourceStaNo);
         }
         startupDto.setWorkNo(workNo);
         RowLastno rowLastno = rowLastnoService.selectById(whsType);
         if (Cools.isEmpty(rowLastno)) {
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
-        if (whsType == 1 || whsType == 2){
-            int curRow = rowLastno.getCurrentRow();
-            int sRow = rowLastno.getsRow();
-            int eRow = rowLastno.geteRow();
-            int crn_qty = rowLastno.getCrnQty();
-            int rowCount = eRow - sRow + 1;
-            // 鐩爣鍫嗗灈鏈哄彿
-            int crnNo = 0;
-            // 鐩爣搴撲綅
-            LocMast locMast = null;
 
-            // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂�
-            if (!Cools.isEmpty(matNos)) {
-                List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0));
-                for (String locNo : locNos) {
-                    if (Utils.isShallowLoc(slaveProperties, locNo)) {
+        // ===============>>>> 寮�濮嬫墽琛�
+        int curRow = rowLastno.getCurrentRow();
+        int sRow = rowLastno.getsRow();
+        int eRow = rowLastno.geteRow();
+        int crn_qty = rowLastno.getCrnQty();
+        int rowCount = eRow - sRow + 1;
+        // 鐩爣鍫嗗灈鏈哄彿
+        int crnNo = 0;
+        // 鐩爣搴撲綅
+        LocMast locMast = null;
+
+        // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂�
+        if (!Cools.isEmpty(matNos)) {
+            List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0));
+            for (String locNo : locNos) {
+                if (Utils.isShallowLoc(slaveProperties, locNo)) {
+                    continue;
+                }
+                String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
+                // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
+                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+                if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
+                    locMast = shallowLoc;
+                    crnNo = locMast.getCrnNo();
+                    break;
+                }
+            }
+        }
+
+        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
+        if (staDescId == 10) {
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D"));
+            if (locMasts.size() > 0) {
+                for (LocMast loc : locMasts) {
+                    if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
                         continue;
                     }
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
+                    String shallowLocNo = Utils.getShallowLoc(slaveProperties,  loc.getLocNo());
                     // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
                     LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                     if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
@@ -136,110 +163,102 @@
                     }
                 }
             }
+        }
 
-            // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
-            if (staDescId == 10) {
-                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D"));
-                if (locMasts.size() > 0) {
-                    for (LocMast loc : locMasts) {
-                        if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
-                            continue;
-                        }
-                        String shallowLocNo = Utils.getShallowLoc(slaveProperties,  loc.getLocNo());
-                        // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
-                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                        if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
-                            locMast = shallowLoc;
-                            crnNo = locMast.getCrnNo();
-                            break;
-                        }
+        // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
+        if (null == locMast) {
+            // 1-4鎺�
+            if (whsType == 1) {
+                // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙�
+                Shelves shelves = new Shelves(rowCount, crn_qty);
+                curRow = shelves.start(curRow);
+                if (curRow < 0) {
+                    throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
+                }
+                for (List<Integer> node : shelves.nodes){
+                    if (node.contains(curRow)) {
+                        crnNo = shelves.nodes.indexOf(node) + 1;
+                        break;
+                    }
+                }
+            // 5-8鎺�
+            } else if (whsType == 2) {
+                // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙�
+                Shelves shelves = new Shelves(rowCount, crn_qty);
+                curRow = shelves.start(curRow - 4);
+                if (curRow < 0) {
+                    throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
+                }
+                for (List<Integer> node : shelves.nodes){
+                    if (node.contains(curRow)) {
+                        crnNo = shelves.nodes.indexOf(node) + 1;
+                        break;
+                    }
+                }
+                // 鍋忕Щ閲忚ˉ鍋�
+                curRow = curRow + 4;
+                crnNo = crnNo + 1;
+            // 126绌烘澘鍏� 1-8鎺�
+            } else {
+                // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙�
+                Shelves shelves = new Shelves(rowCount, crn_qty);
+                curRow = shelves.start(curRow);
+                if (curRow < 0) {
+                    throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
+                }
+                for (List<Integer> node : shelves.nodes){
+                    if (node.contains(curRow)) {
+                        crnNo = shelves.nodes.indexOf(node) + 1;
+                        break;
                     }
                 }
             }
+        }
 
-            // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
-            if (null == locMast) {
-                // 閲嶅簱浣�
-                if (whsType == 1) {
-                    // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙�
-                    Shelves shelves = new Shelves(rowCount, crn_qty);
-                    curRow = shelves.start(curRow);
-                    if (curRow < 0) {
-                        throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
-                    }
-                    for (List<Integer> node : shelves.nodes){
-                        if (node.contains(curRow)) {
-                            crnNo = shelves.nodes.indexOf(node) + 1;
-                            break;
-                        }
-                    }
-                    // 杞诲簱浣�
-                } if (whsType == 2) {
-                    // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙�
-                    Shelves shelves = new Shelves(rowCount, crn_qty);
-                    curRow = shelves.start(curRow - 4);
-                    if (curRow < 0) {
-                        throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
-                    }
-                    for (List<Integer> node : shelves.nodes){
-                        if (node.contains(curRow)) {
-                            crnNo = shelves.nodes.indexOf(node) + 1;
-                            break;
-                        }
-                    }
-                    // 鍋忕Щ閲忚ˉ鍋�
-                    curRow = curRow + 4;
-                    crnNo = crnNo + 1;
-                }
-            }
-
-            basCrnpService.checkSiteStatus(crnNo);
-            // 鑾峰彇鐩爣绔�
-            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                    .eq("type_no", staDescId)
-                    .eq("stn_no", sourceStaNo)
-                    .eq("crn_no", crnNo);
-            StaDesc staDesc = staDescService.selectOne(wrapper);
-            if (Cools.isEmpty(staDesc)) {
-                throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
-            }
-            BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
-            int inQty = staNo.getInQty()==null?0:staNo.getInQty();
-            if (staNo.getAutoing().equals("Y") && inQty<2) {
-                // 鏌ユ壘搴撲綅
-                if (locMast == null) {
-                    if (Utils.isShallowLoc(slaveProperties, curRow)) {
-                        Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
-                        locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1());
-                    }
-                    if (Cools.isEmpty(locMast)) {
-                        locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
-                    }
+        basCrnpService.checkSiteStatus(crnNo);
+        // 鑾峰彇鐩爣绔�
+        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                .eq("type_no", staDescId)
+                .eq("stn_no", sourceStaNo)
+                .eq("crn_no", crnNo);
+        StaDesc staDesc = staDescService.selectOne(wrapper);
+        if (Cools.isEmpty(staDesc)) {
+            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+        }
+        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+        int inQty = staNo.getInQty()==null?0:staNo.getInQty();
+        if (staNo.getAutoing().equals("Y") && inQty<2) {
+            // 鏌ユ壘搴撲綅
+            if (locMast == null) {
+                if (Utils.isShallowLoc(slaveProperties, curRow)) {
+                    Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
+                    locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1());
                 }
                 if (Cools.isEmpty(locMast)) {
-                    // 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠�
-                    if (locTypeDto.getLocType1() == 1) {
-                        locTypeDto.setLocType1((short) 2);
-                        return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto);
-                    }
-                    throw new CoolException("娌℃湁绌哄簱浣�");
+                    locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
                 }
-                String locNo = locMast.getLocNo();
-
-                // 鏇存柊搴撲綅鎺掑彿
-                rowLastno.setCurrentRow(curRow);
-                rowLastnoService.updateById(rowLastno);
-
-                // 杩斿洖dto
-                startupDto.setCrnNo(crnNo);
-                startupDto.setSourceStaNo(sourceStaNo);
-                startupDto.setStaNo(staNo.getDevNo());
-                startupDto.setLocNo(locNo);
-            } else {
-                throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
             }
+            if (Cools.isEmpty(locMast)) {
+                // 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠�
+                if (locTypeDto.getLocType1() == 1) {
+                    locTypeDto.setLocType1((short) 2);
+                    return getLocNo(null, staDescId, sourceStaNo, matNos, locTypeDto);
+                }
+                throw new CoolException("娌℃湁绌哄簱浣�");
+            }
+            String locNo = locMast.getLocNo();
+
+            // 鏇存柊搴撲綅鎺掑彿
+            rowLastno.setCurrentRow(curRow);
+            rowLastnoService.updateById(rowLastno);
+
+            // 杩斿洖dto
+            startupDto.setCrnNo(crnNo);
+            startupDto.setSourceStaNo(sourceStaNo);
+            startupDto.setStaNo(staNo.getDevNo());
+            startupDto.setLocNo(locNo);
         } else {
-            throw new CoolException(rowLastno.getWhsType()+"鍙峰簱浣嶆帓鍙峰垎閰嶈鍒欎笉鍙敤");
+            throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
         }
         return startupDto;
     }

--
Gitblit v1.9.1