From a3a66aa959151e91f57be097b83f2a2715b502f5 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 31 三月 2025 13:11:36 +0800
Subject: [PATCH] 定时任务增加同步锁

---
 src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java |   52 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
index f7ed8a3..e73f080 100644
--- a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
@@ -45,9 +45,17 @@
     @Autowired
     private BasCrnpService basCrnpService;
 
-    public ReturnT<String> start() {
+    public static final List<Integer> rows1 = new ArrayList<Integer>() {{
+        add(1);add(5);add(9);add(13);add(17);add(21);
+    }};
+
+    public static final List<Integer> rows2 = new ArrayList<Integer>() {{
+        add(4);add(8);add(12);add(16);add(20);add(24);
+    }};
+
+    public ReturnT<String> start(Integer staNo) {
         try {
-            if (!Cools.isEmpty(wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", 213)))){
+            if (!Cools.isEmpty(wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", staNo)))){
                 return null;
             }
             // 鑾峰彇宸ヤ綔鍙�
@@ -65,14 +73,37 @@
             crns.add(6);
             boolean sign = true;
             for (Integer crnNo : crns){
+                BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+                if (basCrnp.getCrnSts()!=3 || !basCrnp.getOutEnable().equals("Y")){
+                    continue;
+                }
                 sign = true;
                 // 鑾峰彇搴撲綅
                 LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","D").eq("crn_no",crnNo));
-
                 if (Cools.isEmpty(locMast)) {
 //                    throw new CoolException("搴撲腑鏃犵┖鏉匡紒锛侊紒");
                     sign=false;
                 }
+                if (sign){
+                    if (rows1.contains(locMast.getRow1())){
+                        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "D").eq("row1", locMast.getRow1() + 1)
+                                .eq("bay1", locMast.getBay1()).eq("lev1", locMast.getLev1()));
+                        if (!Cools.isEmpty(locMast1)) {
+                            locMast = locMast1;
+                        }
+                    }else if (rows2.contains(locMast.getRow1())){
+                        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "D").eq("row1", locMast.getRow1() - 1)
+                                .eq("bay1", locMast.getBay1()).eq("lev1", locMast.getLev1()));
+                        if (!Cools.isEmpty(locMast1)) {
+                            locMast = locMast1;
+                        }
+                    }
+                }
+                if (sign && Cools.isEmpty(locMast)) {
+//                    throw new CoolException("搴撲腑鏃犵┖鏉匡紒锛侊紒");
+                    sign=false;
+                }
+
                 if (sign && !locMast.getLocSts().equals("D")){
 //                    throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
                     sign=false;
@@ -81,13 +112,20 @@
                     // 鑾峰彇婧愮珯
                     Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                             .eq("type_no", 110)
-                            .eq("stn_no", 213)
+                            .eq("stn_no", staNo)
                             .eq("crn_no", locMast.getCrnNo());
                     StaDesc staDesc = staDescService.selectOne(wrapper);
-                    Integer sourceStaNo = staDesc.getCrnStn();
-                    if (Cools.isEmpty(sourceStaNo)) {
+                    if (Cools.isEmpty(staDesc)) {
 //                    throw new CoolException("妫�绱㈡簮绔欏け璐�");
                         sign = false;
+                    }
+                    Integer sourceStaNo = null;
+                    if (sign){
+                        sourceStaNo = staDesc.getCrnStn();
+                        if (Cools.isEmpty(sourceStaNo)) {
+//                    throw new CoolException("妫�绱㈡簮绔欏け璐�");
+                            sign = false;
+                        }
                     }
                     if (sign){
                         Date now = new Date();
@@ -99,7 +137,7 @@
                         wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
                         wrkMast.setIoPri(10D);
                         wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
-                        wrkMast.setStaNo(213); // 鐩爣绔�
+                        wrkMast.setStaNo(staNo); // 鐩爣绔�
                         wrkMast.setCrnNo(locMast.getCrnNo());
                         wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣�
                         wrkMast.setFullPlt("N"); // 婊℃澘锛歒

--
Gitblit v1.9.1