From 89af7e4c0a0fcd715bad4dbcf4e66442c0bf5975 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 14 五月 2022 23:33:53 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   77 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 75 insertions(+), 2 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 dab964d..0b89c2c 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -13,9 +13,11 @@
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
 import com.zy.common.model.enums.IoWorkType;
 import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import com.zy.common.web.WcsController;
 import lombok.extern.slf4j.Slf4j;
@@ -69,6 +71,10 @@
     private OrderDetlService orderDetlService;
     @Autowired
     private WcsController wcsController;
+    @Autowired
+    private RowLastnoService rowLastnoService;
+    @Autowired
+    private SlaveProperties slaveProperties;
 
     @Override
     @Transactional
@@ -881,9 +887,76 @@
     }
 
     @Override
-    public StartupDto dealPreHaveStart(Integer wrkNo, Long userId) {
+    @Transactional
+    public String dealPreHaveStart(Integer wrkNo, Long userId) {
+        WrkMast wrkMast = wrkMastService.selectById(wrkNo);
+        if (wrkMast == null) {
+            throw new CoolException("浠诲姟宸插け鏁�");
+        }
+        String locNo = wrkMast.getLocNo();
+        LocMast locMast = locMastService.selectById(locNo);
+        assert locMast != null;
+        RowLastno rowLastno = rowLastnoService.findBySection(locMast.getRow1());
+        assert rowLastno != null;
 
-        return null;
+        // 鐩爣搴撲綅
+        LocMast targetLoc = null;
+
+        for (int curRow = rowLastno.getsRow(); curRow<=rowLastno.geteRow(); curRow++) {
+
+            if (Utils.isShallowLoc(slaveProperties, curRow)) {
+                Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
+                targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1());
+                // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
+                if (!locMastService.checkEmptyCount(targetLoc)) {
+                    continue;
+                }
+            }
+            if (Cools.isEmpty(targetLoc)) {
+                targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1());
+                // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
+                if (!locMastService.checkEmptyCount(targetLoc)) {
+                    continue;
+                }
+                // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
+                if (null != targetLoc && Utils.isShallowLoc(slaveProperties, targetLoc.getLocNo())) {
+                    LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, targetLoc.getLocNo()));
+                    if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) {
+                        continue;
+                    }
+                }
+                // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O
+                if (null != targetLoc && Utils.isDeepLoc(slaveProperties, targetLoc.getLocNo())) {
+                    LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, targetLoc.getLocNo()));
+                    if (!shallowLoc.getLocSts().equals("O")) {
+                        continue;
+                    }
+                }
+            }
+
+            if (!Cools.isEmpty(targetLoc)) {
+                break;
+            }
+
+        }
+
+        if (targetLoc == null) {
+            throw new CoolException("鎿嶄綔澶辫触锛屽綋鍓嶄粨搴撴壘涓嶅埌绌哄簱浣�");
+        }
+
+        // 淇敼宸ヤ綔妗�
+        StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo());
+        if (Cools.isEmpty(staDesc)) {
+            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+        }
+        wrkMast.setWrkSts(2L);
+        wrkMast.setLocNo(targetLoc.getLocNo());
+        wrkMast.setStaNo(staDesc.getCrnStn());
+        if (!wrkMastService.updateById(wrkMast)) {
+            throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
+        }
+
+        return targetLoc.getLocNo();
     }
 
 }

--
Gitblit v1.9.1