From bca069bc5858219548fc5e1bcfc659e4758f3576 Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期二, 03 三月 2026 14:45:54 +0800
Subject: [PATCH] #26-03-10-00

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   25 +-------
 src/main/java/com/zy/common/config/AdminInterceptor.java    |    2 
 src/main/java/com/zy/core/MainProcess.java                  |    2 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  112 ++++++++++++++++++++++++++++++------
 src/main/resources/application.yml                          |    1 
 5 files changed, 98 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 2356ae6..5a824d9 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -278,27 +278,8 @@
                         JSONObject jsonObject = JSON.parseObject(response);
                         if (jsonObject != null && jsonObject.getInteger("code") != null && jsonObject.getInteger("code") == 200) {
                             log.info("鍏ュ簱浠诲姟鐢宠鎴愬姛锛岀瓑寰匴MS涓嬪彂浠诲姟銆傛潯鐮侊細{}锛岀珯鐐癸細{}", barcode, inSta.getStaNo());
-                            staProtocol.setStaNo((short)0);
-                            staProtocol.setWorkNo(0);//璁剧疆涓�9998绛夊緟涓婁綅鏈轰笅鍙戜换鍔�/9997鏄┖鏉垮叆搴撳垽鏂紝寰呬笅鍙戞椂涔熷啓鍏�9998
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            if (!result) {
-                                LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
-                            Thread.sleep(300);
-                            StaProtocol staProtocol2 = devpThread.getStation().get(inSta.getStaNo());
-                            if (staProtocol2 == null) {
-                                continue;
-                            } else {
-                                staProtocol2 = staProtocol2.clone();
-                            }
-                            staProtocol2.setStaNo(inSta.getStaNo().shortValue());
-                            staProtocol2.setWorkNo(9998);//璁剧疆涓�9998绛夊緟涓婁綅鏈轰笅鍙戜换鍔�/9997鏄┖鏉垮叆搴撳垽鏂紝寰呬笅鍙戞椂涔熷啓鍏�9998
-                            boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol2));
-                            if (!result2) {
-                                LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
+                            devpThread.setPakMk(staProtocol.getSiteId(), false,9998);
+
 
                         } else {
                             //                            // 鑾峰彇宸ヤ綔鍙�
@@ -457,7 +438,7 @@
 //                // 鍏ュ嚭搴撴ā寮忓垽鏂�
 //                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
 
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() ) {
 //                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7");
                     if (wrkMast == null) {
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 63d454f..e2922d6 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -3,14 +3,14 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.WrkLastno;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.entity.param.TaskCreateParam;
 import com.zy.asrs.entity.param.TaskStatusFeedbackParam;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.OpenService;
-import com.zy.asrs.service.WrkDetlService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.*;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.core.cache.MessageQueue;
@@ -44,7 +44,10 @@
 
     @Autowired
     private ApiLogService apiLogService;
-    
+    @Autowired
+    private WrkLastnoService wrkLastnoService;
+    @Autowired
+    private RowLastnoService rowLastnoService;
     @Autowired
     private CommonService commonService;
     
@@ -112,7 +115,45 @@
         }
         return false;
     }
+    /**
+     * 鐢熸垚宸ヤ綔鍙�
+     *
+     * @param wrkMk
+     * @return workNo(宸ヤ綔鍙�)
+     */
+    public int getWorkNo(Integer wrkMk) {
+        WrkLastno wrkLastno = wrkLastnoService.selectById(wrkMk);
+        if (Cools.isEmpty(wrkLastno)) {
+            throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
+        }
 
+        int workNo = wrkLastno.getWrkNo();
+        int sNo = wrkLastno.getSNo();
+        int eNo = wrkLastno.getENo();
+        workNo = workNo >= eNo ? sNo : workNo + 1;
+        while (true) {
+            WrkMast wrkMast = wrkMastService.selectById(workNo);
+            if (null != wrkMast) {
+                workNo = workNo >= eNo ? sNo : workNo + 1;
+            } else {
+                break;
+            }
+        }
+        // 淇敼搴忓彿璁板綍
+        if (workNo > 0) {
+            wrkLastno.setWrkNo(workNo);
+            wrkLastnoService.updateById(wrkLastno);
+        }
+        // 妫�楠�
+        if (workNo == 0) {
+            throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳");
+        } else {
+            if (wrkMastService.selectById(workNo) != null) {
+                throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪");
+            }
+        }
+        return workNo;
+    }
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean taskCreate(TaskCreateParam param) {
@@ -124,21 +165,22 @@
             //21锛氭嫞閫夊嚭搴� 22锛氭嫞閫夊叆搴�
             //31锛氱洏鐐瑰嚭搴� 32锛氱洏鐐瑰叆搴�
             switch (param.getIoType()){
-                case 1:  Inbound = false;break;
-                case 2 : Inbound = true;break;
-                case 3:  Inbound = false;break;
+                case 1:  Inbound = false;ioType = 101;break;
+                case 2 : Inbound = true;ioType = 1;break;
+                case 3:  Inbound = false;ioType = 11;break;
                 case 11: Inbound = false;ioType = 110;break;
-                case 12: Inbound = true;break;
+                case 12: Inbound = true;ioType = 10;break;
                 case 21: Inbound = false;ioType = 103;break;
-                case 22: Inbound = true;break;
+                case 22: Inbound = true;ioType = 53;break;
                 case 31: Inbound = false;ioType = 107;break;
-                case 32: Inbound = true;break;
+                case 32: Inbound = true;ioType = 57;break;
             }
             // 2. 淇濆瓨WrkMast
             WrkMast wrkMast = new WrkMast();
-
+            int workNo = getWorkNo(0);
             if(param.getIoType() == 2 || param.getIoType() == 12){
-                wrkMast.setWrkNo(Integer.valueOf(param.getTaskNo()));
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setUserNo(param.getTaskNo());
                 wrkMast.setIoType(param.getIoType() != 2?10:1);
                 wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
                 wrkMast.setBarcode(param.getBarcode());
@@ -150,7 +192,8 @@
             }else if(param.getIoType() == 22 || param.getIoType() == 32){
                 wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()));
                 wrkMast.setWrkSts(param.getIoType() != 32 ? 53L: 57L);
-                wrkMast.setWrkNo(Integer.valueOf(param.getTaskNo()));
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setUserNo(param.getTaskNo());
                 wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
                 wrkMast.setBarcode(param.getBarcode());
                 wrkMast.setMemo(param.getMemo());
@@ -159,7 +202,8 @@
                 wrkMast.setLocNo(param.getTargetLocNo());
                 wrkMast.setSourceLocNo(param.getSourceLocNo());
             }else if(param.getIoType() == 3){
-                wrkMast.setWrkNo(Integer.valueOf(param.getTaskNo()));
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setUserNo(param.getTaskNo());
                 wrkMast.setIoType(11);
                 wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 12.0);
                 wrkMast.setBarcode(param.getBarcode());
@@ -169,7 +213,8 @@
                 wrkMast.setLocNo(param.getTargetLocNo());
                 wrkMast.setSourceLocNo(param.getSourceLocNo());
             }else{
-                wrkMast.setWrkNo(Integer.valueOf(param.getTaskNo()));
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setUserNo(param.getTaskNo());
                 wrkMast.setIoType(ioType);
                 wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
                 wrkMast.setBarcode(param.getBarcode());
@@ -185,11 +230,39 @@
             }else{
                 wrkMast.setWrkSts(11L);
             }
+            String locNo = null;
+            if(param.getSourceLocNo() != null){
+                locNo = param.getSourceLocNo();
+            }
+            if(param.getTargetLocNo() !=null){
+                locNo = param.getTargetLocNo();
+            }
+// 鍙栧墠涓や綅
+            int rowNo = Integer.parseInt(locNo.substring(0, 2));
+
+            int crnNo;
+
+            if (rowNo >= 1 && rowNo <= 4) {
+                crnNo = 1;
+            } else if (rowNo >= 5 && rowNo <= 8) {
+                crnNo = 2;
+            } else if (rowNo >= 9 && rowNo <= 10) {
+                crnNo = 3;
+            } else if (rowNo >= 11 && rowNo <= 14) {
+                crnNo = 4;
+            } else {
+                throw new IllegalArgumentException("鎺掑彿瓒呭嚭鑼冨洿: " + rowNo);
+            }
+
+            wrkMast.setCrnNo(crnNo);
             wrkMast.setModiTime(new Date());
             wrkMast.setAppeTime(new Date());
             wrkMast.setWrkDate(new Date());
-            
-            wrkMastService.insert(wrkMast);
+            if(param.getIoType() == 22 || param.getIoType() == 32){
+                wrkMastService.updateById(wrkMast);
+            }else{
+                wrkMastService.insert(wrkMast);
+            }
 
             // 3. 淇濆瓨WrkDetl
             if (param.getDetlList() != null && !param.getDetlList().isEmpty()) {
@@ -225,8 +298,7 @@
             }
             
             return true;
-        } catch (Exception e) {
-            log.error("浠诲姟涓嬪彂寮傚父", e);
+        } catch (Exception e) { log.error("浠诲姟涓嬪彂寮傚父", e);
              try {
                 apiLogService.save("浠诲姟涓嬪彂",
                         "/taskCreate",
diff --git a/src/main/java/com/zy/common/config/AdminInterceptor.java b/src/main/java/com/zy/common/config/AdminInterceptor.java
index cd7bdef..ac45067 100644
--- a/src/main/java/com/zy/common/config/AdminInterceptor.java
+++ b/src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -51,7 +51,7 @@
         if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
 //            System.out.println("鉁� 鏀捐 OPTIONS 棰勬璇锋眰");
             // 鎵嬪姩璁剧疆 CORS 澶�
-            response.setHeader("Access-Control-Allow-Origin", "http://10.10.10.250:8080");
+            response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8080");
             response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
             response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Token, token");
             response.setHeader("Access-Control-Allow-Credentials", "true");
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 89d0bce..5b9255f 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -58,7 +58,7 @@
 //                    continue;
 //                }
                 //鐩樼偣鎷f枡鍐嶅叆搴�
-                mainService.stnToCrnStnPick();
+//                mainService.stnToCrnStnPick();
 
                 // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
                 mainService.generateStoreWrkFile(); // 缁勬墭
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2d1c309..c928101 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -40,6 +40,7 @@
 wms:
   rgvOpen: false
   url: 127.0.0.1:8080/zzgtasrs
+  urlWMS: 127.0.0.1:8056/actionapi/HighAsRs
   comb: mobile/combAuto/wcs/auth
 
 #License鐩稿叧閰嶇疆

--
Gitblit v1.9.1