From 4ba63e6424b4091ec74a74d4562cc776efb516f4 Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期一, 21 七月 2025 09:47:49 +0800
Subject: [PATCH] 手动完成空桶库任务问题修复

---
 src/main/java/com/zy/service/impl/MainServiceImpl.java |   72 +++++++++++++++++++++++------------
 1 files changed, 47 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 87481b1..870fe75 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -118,6 +118,9 @@
     private WaitPakinMapper waitPakinMapper;
     @Autowired
     private LocMastService locMastService;
+
+    @Resource
+    private LocMastMapper locMastMapper;
     @Autowired
     private StaDescService staDescService;
     @Autowired
@@ -731,7 +734,7 @@
                         continue;
                     }
 
-                } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+                } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("M")|| shallowLoc.getLocSts().equals("Z")) {
                     News.warnNoLog(""+mark+" - 1"+" - 12"+" - // F銆丏  搴撲綅鐘舵��={}",shallowLoc.getLocSts());
                     // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
                     if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
@@ -898,7 +901,7 @@
 
                                 }
                             }
-                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("M")|| shallowLoc.getLocSts().equals("Z")) {
                             News.warnNoLog(""+mark+" - 2"+" - 9"+" - // F銆丏  搴撲綅鐘舵��={}",shallowLoc.getLocSts());
 //                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
                             //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟
@@ -1152,21 +1155,23 @@
                     // 绌烘《鍏ュ簱瀹屾垚锛屽厛瀹屾垚瀵瑰簲搴撲綅缁勪换鍔�
                     if(wrkMast.getWorkNoOther() != 0 ){
                         WrkMast wrkMast1 = wrkMastService.selectByWrkNo(wrkMast.getWorkNoOther());
-                        // 浜ゆ崲搴撲綅鍙�
-                        String locNo = wrkMast.getLocNo();
-                        wrkMast.setLocNo(wrkMast1.getLocNo());
-                        // 浜ゆ崲鍏ュ簱鏃堕棿锛屾彁鍙栧簱瀛樻椂鎸夐『搴忓厛娴呭悗娣�
-                        Date ioTime = wrkMast.getIoTime();
-                        if(locNo.startsWith("10")) {
-                            wrkMast.setIoTime(wrkMast1.getIoTime());
-                            wrkMast1.setIoTime(ioTime);
+                        if (wrkMast1 != null) {
+                            // 浜ゆ崲搴撲綅鍙�
+                            String locNo = wrkMast.getLocNo();
+                            wrkMast.setLocNo(wrkMast1.getLocNo());
+                            // 浜ゆ崲鍏ュ簱鏃堕棿锛屾彁鍙栧簱瀛樻椂鎸夐『搴忓厛娴呭悗娣�
+                            Date ioTime = wrkMast.getIoTime();
+                            if(locNo.startsWith("10")) {
+                                wrkMast.setIoTime(wrkMast1.getIoTime());
+                                wrkMast1.setIoTime(ioTime);
+                            }
+                            wrkMast1.setLocNo(locNo);
+                            wrkMast1.setCrnEndTime(now);
+                            wrkMast1.setModiTime(now);
+                            wrkMast1.setWrkSts(4L);
+                            wrkMast1.setWorkNoOther(0);
+                            wrkMastMapper.updateById(wrkMast1);
                         }
-                        wrkMast1.setLocNo(locNo);
-                        wrkMast1.setCrnEndTime(now);
-                        wrkMast1.setModiTime(now);
-                        wrkMast1.setWrkSts(4L);
-                        wrkMast1.setWorkNoOther(0);
-                        wrkMastMapper.updateById(wrkMast1);
                     }
                     wrkMast.setCrnEndTime(now);
                     wrkMast.setModiTime(now);
@@ -1210,8 +1215,13 @@
                 Date now = new Date();
                 Date modiTime = basCrnp.getModiTime();
                 long diffInMillis = now.getTime()-modiTime.getTime();
-                if(diffInMillis < 3 * 60 * 1000) {
+                if(diffInMillis < 10 * 1000) { // 绌洪棽灏忎簬10绉掑垯璺宠繃
                     continue;
+                } else {  // 鏈夊叆搴撲换鍔℃垨澶т簬2鍒嗛挓锛屽洖鍘熺偣
+                    int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 1).eq("crn_no", crn.getId()).in("wrk_sts", 2, 9, 10));
+                    if(count == 0 && diffInMillis < 2 * 60 * 1000) {
+                        continue;
+                    }
                 }
 
                 // 鏈夊悐杞﹀叆搴撴垨鍚婅溅鍑哄簱浠诲姟
@@ -1521,13 +1531,25 @@
      */
     private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,Integer mark) {
 
+        // 鍙湁208L鑳芥斁11灞�
+        String model = null;
+        if(shallowLoc.getLocSts().equals("F")) {
+            LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+            if(locDetl != null && locDetl.getModel() != null) {
+                String matModel = locMastMapper.selectMatMatnrByMaktx(locDetl.getModel());
+                if(matModel != null && matModel.equals("208L")) {
+                    model = "208L";
+                }
+            }
+        }
         try {
             News.warnNoLog(""+mark+"moveLocForDeepLoc"+" - 0"+" - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
             List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
             LocMast loc = null;
             for (Integer row : rows) {
                 if (Utils.isDeepLoc(slaveProperties, row)) {
-                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
+//                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
+                    loc = locMastMapper.queryFreeLocMastNew(row,model);
 
                     if (loc != null) {
                         if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
@@ -1546,12 +1568,12 @@
             if (null == loc) {
                 for (Integer row : rows) {
                     if (Utils.isShallowLoc(slaveProperties, row)) {
-                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
-
+//                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
+                        loc = locMastMapper.queryFreeLocMastNew(row,model);
                         if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
                             String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
                             LocMast deepLoc1 = locMastService.selectById(deepLoc);
-                            if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
+                            if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("M")&& !deepLoc1.getLocSts().equals("Z")) {
                                 loc = null;
                             }
                         }
@@ -1583,7 +1605,7 @@
                 wrkMast.setFullPlt(shallowLoc.getLocSts().equals("F") ? "Y" : "N"); // 婊℃澘
                 wrkMast.setPicking("N"); // 鎷f枡
                 wrkMast.setExitMk("N"); // 閫�鍑�
-                wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+                wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("M") ? "M" : shallowLoc.getLocSts().equals("Z") ? "Z" : "N"); // 绌烘澘
                 wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
                 wrkMast.setLinkMis("N");
                 wrkMast.setAppeTime(new Date());
@@ -1611,7 +1633,7 @@
                     }
                 }
                 // 淇敼婧愬簱浣嶇姸鎬�
-                if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+                if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("M") || shallowLoc.getLocSts().equals("Z")) {
                     shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
                     shallowLoc.setModiTime(new Date());
                     if (!locMastService.updateById(shallowLoc)) {
@@ -1732,8 +1754,8 @@
                 staProtocol = staProtocol.clone();
             }
             if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.isInEnable() || staProtocol.isOutEnable() && site == 1090) && staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() < 9000) {
-                if (staProtocol.getWorkNo() == 1034 && !staProtocol.isHigh()) { // 1034绌烘瘝鎷栧洖娴佷换鍔¢渶瑕侀珮淇″彿
-                    return;
+                if (staProtocol.getSiteId() == 1034 && !staProtocol.isHigh()) { // 1034绌烘瘝鎷栧洖娴佷换鍔¢渶瑕侀珮淇″彿
+                    continue;
                 }
                 // 鏌ヨ宸ヤ綔妗�
                 WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo());

--
Gitblit v1.9.1