From b2f1ff879839b5cd3fd093527a39ad73cb16a61c Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 22 九月 2025 09:52:57 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/task/handler/GhjtHandler.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
index f624dc9..c7022d6 100644
--- a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
@@ -24,6 +24,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -72,6 +73,9 @@
     // 鍫嗗灈鏈哄搴斾竴妤煎嚭搴撶珯鐐�
     private static final int[] oneFloorOutSite = new int[]{0,3002,3003,3006,3008,3009,3012};
 
+    // 鍫嗗灈鏈哄搴斾竴妤煎叆搴撶珯鐐�
+    private static final int[] oneFloorInSite = new int[]{0,3001,3004,3005,3007,3010,3011};
+
     public void startCkrwPushGwcs(WrkMast wrkMast) {
 
         // 鑾峰彇璇锋眰澶�
@@ -98,6 +102,7 @@
                     .setPath(MesConstant.GWCS_DCKK_URL)
                     .setHeaders(headers)
                     .setJson(body)
+                    .setTimeout(30, TimeUnit.SECONDS) // 璁剧疆杩炴帴 + 璇诲彇瓒呮椂涓�30绉�
                     .build()
                     .doPost();
             if (!Cools.isEmpty(response)) {
@@ -110,6 +115,7 @@
                     wrkMast.setModiTime(new Date());
                 } else if(wrkMast.getIoType() == 12) { // 璺ㄥ贩閬撹浆绉�
                     wrkMast.setWrkSts(1L); // 鐘舵�佹敼涓�1.鐢熸垚鍏ュ簱id
+                    wrkMast.setCrnNo(Arrays.binarySearch(oneFloorInSite,wrkMast.getStaNo()));// 鍫嗗灈鏈鸿浆鎹负鍏ュ簱鐨勫爢鍨涙満
                     wrkMast.setModiTime(new Date());
                 }
                 wrkMastMapper.updateById(wrkMast);
@@ -208,7 +214,7 @@
             String staLocNo = null;
             Integer wrkCount = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i));
             if(wrkCount > 0) {
-                log.warn("{}鍙峰爢鍨涙満宸插瓨鍦ㄤ换鍔�",i);
+//                log.warn("{}鍙峰爢鍨涙満宸插瓨鍦ㄤ换鍔�",i);
                 continue;
             }
             // 鏍规嵁鍫嗗灈鏈哄彿鏌ヨ鍒板搴旂殑娣卞簱浣嶅拰娴呭簱浣�  娣卞簱浣�4*n-3鍜�4*n 娴呭簱浣�4*n-2鍜�4*n-1
@@ -237,16 +243,16 @@
             }
             // 娌℃湁鎵惧埌婧愬簱浣�
             if (sourceLocNo == null) {
-                log.warn("娌℃湁鎵惧埌婧愬簱浣�,鍫嗗灈鏈猴細{}",i);
+//                log.warn("娌℃湁鎵惧埌婧愬簱浣�,鍫嗗灈鏈猴細{}",i);
                 continue;
             }
             // 瀵绘壘涓�涓璐х殑鐩爣搴撲綅锛屽厛娣卞悗娴�
             List<LocMast> locMasts1 = locMastMapper.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", i).in("row1", s1, s2)
-                    .le("bay1", columnNum));
+                    .le("bay1", columnNum).orderBy("lev1,bay1,row1"));
             if (locMasts1.isEmpty()) {
                 // 娣卞簱浣嶄负绌轰簡锛屽彇娴呭簱浣�
                 List<LocMast> locMasts2 = locMastMapper.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", i).in("row1", q1, q2)
-                        .le("bay1", columnNum));
+                        .le("bay1", columnNum).orderBy("lev1,bay1,row1"));
                 if (!locMasts2.isEmpty()) {
                     staLocNo = locMasts2.get(0).getLocNo();
                 }
@@ -386,12 +392,52 @@
         if (config == null) {
             throw new CoolException("鐞嗚揣鑾峰彇澶囪揣鍖洪厤缃敊璇紒锛侊紒");
         }
+        Config chang = configMapper.selectConfigByCode("auto_tally_goods_chang");
+        if (chang == null) {
+            throw new CoolException("鐞嗚揣鑾峰彇澶囪揣鍖洪暱搴﹂厤缃敊璇紒锛侊紒");
+        }
+        Config kuan = configMapper.selectConfigByCode("auto_tally_goods_kuan");
+        if (kuan == null) {
+            throw new CoolException("鐞嗚揣鑾峰彇澶囪揣鍖哄搴﹂厤缃敊璇紒锛侊紒");
+        }
+        Config gao = configMapper.selectConfigByCode("auto_tally_goods_gao");
+        if (gao == null) {
+            throw new CoolException("鐞嗚揣鑾峰彇澶囪揣鍖洪珮搴﹂厤缃敊璇紒锛侊紒");
+        }
+
         // 鍓嶅嚑鍒楁槸澶囪揣鍖�
         int columnNum = Integer.parseInt(config.getValue());
 
         // 瀵绘壘涓�绠变竴鍗风殑锛屾病鏈夌悊璐х殑锛屼笉鍦ㄥ璐у尯鐨勭墿鏂欐槑缁�
         List<LocDetl> tallyGoosList = locDetlMapper.selectTallyGoosList(columnNum);
 
+        // 杩囨护鎺夋湪绠辫鏍煎搴﹀ぇ浜�600鐨�(澶т簬600涓�涓墭鐩樺彧鑳芥斁涓�绠�)
+        tallyGoosList = tallyGoosList.stream().filter(locDetl -> {
+            String[] split = locDetl.getColor().split("\\*");
+            if (split.length == 3) {
+                // 楂樺害涔熻浣庝簬614鎵嶈兘鐞嗚揣
+                //return Integer.parseInt(split[1]) <= 600 && Integer.parseInt(split[2]) <= 614;
+                //鏂伴�昏緫
+                String[] changLimit = chang.getValue().split("-");
+                if (changLimit.length == 2){
+                    if (Integer.parseInt(split[0]) >= Integer.parseInt(changLimit[0]) && Integer.parseInt(split[0]) <= Integer.parseInt(changLimit[1])){
+                        String[] kuanLimit = chang.getValue().split("-");
+                        if (kuanLimit.length == 2){
+                            if (Integer.parseInt(split[1]) >= Integer.parseInt(kuanLimit[0]) && Integer.parseInt(split[1]) <= Integer.parseInt(kuanLimit[1])){
+                                String[] gaoLimit = gao.getValue().split("-");
+                                if (gaoLimit.length == 2){
+                                    if (Integer.parseInt(split[2]) >= Integer.parseInt(gaoLimit[0]) && Integer.parseInt(split[2]) <= Integer.parseInt(gaoLimit[1])){
+                                        return true;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+                return false;
+        }).collect(Collectors.toList());
+
         // 瀵绘壘婊¤冻鐞嗚揣鏉′欢鐨勪袱涓湪绠�
         LocDetl leftLocDetl = null;
         LocDetl rightLocDetl = null;

--
Gitblit v1.9.1