From e9d5cf17813a52fe58a5924999655d01532a6b2b Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期六, 26 七月 2025 13:22:24 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/WrkMastCrnHandler.java |  163 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 113 insertions(+), 50 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WrkMastCrnHandler.java b/src/main/java/com/zy/asrs/task/handler/WrkMastCrnHandler.java
index 25b3e41..ed49f4e 100644
--- a/src/main/java/com/zy/asrs/task/handler/WrkMastCrnHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WrkMastCrnHandler.java
@@ -6,10 +6,7 @@
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WrkMastCrnService;
-import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.service.WrkMastStaService;
+import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.utils.Utils;
@@ -23,6 +20,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * Created by Monkey D. Luffy on 2023.11.21
@@ -38,7 +36,10 @@
     private LocMastService locMastService;
     @Autowired
     private WrkMastService wrkMastService;
+    @Autowired
+    private RgvOneSignService rgvOneSignService;
 
+    @Transactional
     public ReturnT<String> start(WrkMast wrkMast,WrkMast wrkMastOther) {
         try {
             Date now = new Date();
@@ -52,56 +53,118 @@
                     .eq("loc_sts", "O");
             int row1 = locMastService.selectCount(wrapper);
             int row2 = locMastService.selectCount(wrapperOther);
-            LocMast locMast1 = null;
+            List<LocMast> locMastList = null;
             if (row1>=row2){
-                locMast1 = locMastService.selectOne(wrapper.orderBy("lev1", true)
+                locMastList = locMastService.selectList(wrapper.orderBy("lev1", true)
                         .orderBy("bay1", true));
             }else {
-                locMast1 = locMastService.selectOne(wrapperOther.orderBy("lev1", true)
+                locMastList = locMastService.selectList(wrapperOther.orderBy("lev1", true)
                         .orderBy("bay1", true));
             }
 
-            if (Cools.isEmpty(locMast1)){
+            if (locMastList.isEmpty()){
                 return FAIL;
             }
-            String[] strings = staNoOther(locMast1.getLocNo());
-            if (Cools.isEmpty(strings)){
-                return FAIL;
-            }
-            wrkMast.setLocNo(strings[0]);
-            wrkMastOther.setLocNo(strings[1]);
+            for (LocMast locMast1 : locMastList){
+                String[] strings = staNoOther(locMast1.getLocNo());
+                if (Cools.isEmpty(strings) || Cools.isEmpty(strings[0]) || Cools.isEmpty(strings[1])){
+                    continue;
+                }
+                wrkMast.setLocNo(strings[0]);
+                wrkMastOther.setLocNo(strings[1]);
 
-            WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now);
+                WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now);
 
-            wrkMastCrnService.insert(wrkMastCrn);
 
-            // 鏇存柊鐩爣搴撲綅鐘舵��
-            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-            if (locMast.getLocSts().equals("O")){
-                locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
-                locMast.setModiTime(now);
+                // 鏇存柊鐩爣搴撲綅鐘舵��
+                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+                if (locMast.getLocSts().equals("O")){
+                    locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+                    locMast.setModiTime(now);
+                } else {
+                    continue;
+                }
+
+
+                // 鏇存柊鐩爣搴撲綅鐘舵��
+                LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo());
+                if (locMastOther.getLocSts().equals("O")){
+                    locMastOther.setLocSts("S"); // S.鍏ュ簱棰勭害
+                    locMastOther.setModiTime(now);
+                } else {
+                    continue;
+                }
+
                 if (!locMastService.updateById(locMast)){
-                    throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+                    return FAIL;
                 }
-            } else {
-                throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
-            }
 
-            wrkMastService.updateById(wrkMast);
-
-            // 鏇存柊鐩爣搴撲綅鐘舵��
-            LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo());
-            if (locMastOther.getLocSts().equals("O")){
-                locMastOther.setLocSts("S"); // S.鍏ュ簱棰勭害
-                locMastOther.setModiTime(now);
                 if (!locMastService.updateById(locMastOther)){
-                    throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+                    return FAIL;
                 }
-            } else {
-                throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
-            }
-            wrkMastService.updateById(wrkMastOther);
+                wrkMastService.updateById(wrkMast);
+                wrkMastService.updateById(wrkMastOther);
 
+                wrkMastCrnService.insert(wrkMastCrn);
+                return SUCCESS;
+            }
+
+        }catch (Exception e){
+            log.error("寮傚父锛侊紒锛�"+e);
+            return FAIL;
+        }
+        return SUCCESS;
+    }
+
+    public ReturnT<String> start(WrkMast wrkMast,boolean sign) {
+        try {
+            Date now = new Date();
+            LocTypeDto locTypeDto = new LocTypeDto();
+            locTypeDto.setLocType1((short)1);
+
+            String deepLocOther = getDeepLoc2(wrkMast.getSourceLocNo(), Utils.getRow(wrkMast.getSourceLocNo()));
+            if (Cools.isEmpty(deepLocOther)){
+                return FAIL;
+            }
+            WrkMast wrkMastOther = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_loc_no", deepLocOther).eq("wrk_sts", 11L));
+            if (!Cools.isEmpty(wrkMastOther)){
+//                if (!sign) {
+//                    RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMast.getStaNo()));
+//                    trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1);
+//                    rgvOneSignService.updateById(trunSma);
+//                }
+//                if ((wrkMastOther.getIoType()==101 || wrkMastOther.getIoType() == 110) && wrkMastOther.booleanStaNoSign() && wrkMastOther.booleanStaNoSignOther()){
+//                    if (sign){
+//                        RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","LineUp"+wrkMastOther.getStaNo()));
+//                        if (Cools.isEmpty(rgvOneSign)){
+//                            return FAIL;
+//                        }
+//                        RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMastOther.getStaNo()));
+//                        if (Cools.isEmpty(trunSma)){
+//                            return FAIL;
+//                        }
+//                        int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMastOther.getStaNo()).eq("wrk_sts",12L));
+//                        int wrkCountCrn = wrkMastCrnService.selectCount(new EntityWrapper<WrkMastCrn>().eq("sta_no", wrkMastOther.getStaNo()));
+//                        if (wrkCountCrn*2+wrkCount+rgvOneSign.getRgvOneSign()+trunSma.getRgvOneSign()>1){
+//                            return FAIL;
+//                        }
+//                        int wrkCountGt = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMastOther.getStaNo()).gt("wrk_sts",11L));
+//                        if (wrkCountGt > 1){
+//                            return FAIL;
+//                        }
+//                        trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1);
+//                        rgvOneSignService.updateById(trunSma);
+//                    } else {
+//                        RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMastOther.getStaNo()));
+//                        trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1);
+//                        rgvOneSignService.updateById(trunSma);
+//                    }
+//                }
+                WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now);
+                wrkMastCrnService.insert(wrkMastCrn);
+            }else {
+                return FAIL;
+            }
         }catch (Exception e){
             log.error("寮傚父锛侊紒锛�"+e);
             return FAIL;
@@ -125,18 +188,18 @@
         }
     }
 
-    /**
-     * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿
-     */
-    public static String getDeepLoc(String shallowLoc,int row) {
-        if (row == 2 || row == 6) {
-            return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
-        } else if (row == 3 || row == 7) {
-            return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
-        }else {
-            return shallowLoc;
-        }
-    }
+//    /**
+//     * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿
+//     */
+//    public static String getDeepLoc(String shallowLoc,int row) {
+//        if (row == 2 || row == 6) {
+//            return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+//        } else if (row == 3 || row == 7) {
+//            return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+//        }else {
+//            return shallowLoc;
+//        }
+//    }
 
     /**
      * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿
@@ -147,7 +210,7 @@
         } else if (row == 4 || row == 8) {
             return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
         }else {
-            return shallowLoc;
+            return null;
         }
     }
 

--
Gitblit v1.9.1