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 |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 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 4b9c022..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,6 +45,14 @@
     @Autowired
     private BasCrnpService basCrnpService;
 
+    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", staNo)))){
@@ -72,11 +80,30 @@
                 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;
@@ -88,11 +115,18 @@
                             .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();
                         // 淇濆瓨宸ヤ綔妗�

--
Gitblit v1.9.1