From 621dbf8001b90aa0c253eeb3ba4d38b941d8442e Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 05 十一月 2025 13:32:50 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   67 +++++++++++++++++++++
 src/main/java/com/zy/core/MainProcess.java                  |   30 ++++++++++
 src/main/java/com/zy/asrs/utils/BarcodeUtils.java           |   36 ++++++++++++
 3 files changed, 131 insertions(+), 2 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 19c5bb7..6ffce8f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,13 +4,16 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.R;
 import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.controller.CrnController;
+import com.zy.asrs.controller.TaskWrkController;
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.domain.enums.WorkNoType;
 import com.zy.asrs.domain.param.CrnOperatorParam;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.CarryParam;
 import com.zy.asrs.entity.param.TaskCreateParam;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
@@ -70,6 +73,8 @@
     private TaskWrkMapper taskWrkMapper;
     @Autowired
     private TaskWrkService taskWrkService;
+    @Autowired
+    private TaskWrkController taskWrkController;
     @Autowired
     private StaDescMapper staDescMapper;
     @Autowired
@@ -2897,7 +2902,7 @@
                     if (Cools.isEmpty(taskWrk1)){
                         continue;
                     }
-                    if (taskWrk1.getWrkSts() == 2){
+                    if (taskWrk1.getIoType() == 3 && taskWrk1.getWrkSts()<3){
                         taskWrk = taskWrk1;
                         break;
                     }
@@ -3185,10 +3190,23 @@
                             if (offer) {
                                 log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
                                 Date now = new Date();
-                                taskWrk.setStatus(TaskStatusType.OVER3.id);
+//                                taskWrk.setStatus(TaskStatusType.OVER3.id);
+                                taskWrk.setStatus(TaskStatusType.OVER.id);//鎵嬪姩瀹屾垚浠诲姟
                                 taskWrk.setWrkSts(14);
                                 taskWrk.setModiTime(now);
                                 taskWrk.setCompleteTime(now);
+
+                                LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
+                                if(Cools.isEmpty(locMast)){
+                                    R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
+                                }
+                                locMast.setLocSts("O");
+                                locMast.setModiTime(now);
+                                locMast.setModiTime(now);
+
+
+
+                                locMastService.updateById(locMast);
                                 taskWrkService.updateById(taskWrk);
                             } else {
                                 log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
@@ -3339,5 +3357,50 @@
             }
         }
     }
+    public void locMastTaskDemo(){
+        try{
+            for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+                try{
+                    // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+                    CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
+                    CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+                    if (crnProtocol == null) {
+                        continue;
+                    }
 
+                    for (String locNo : crnProtocol.getLocMastDemoList()){
+                        LocMast locMast = locMastService.selectByLocNo(locNo);
+                        if (locMast.getLocSts().equals("F")){
+                            CarryParam carryParam = new CarryParam();
+                            carryParam.setTaskNo(locNo);
+                            carryParam.setBarcode(locNo);
+                            carryParam.setIoType(1);//浠诲姟绫诲瀷=銆�1锛氬嚭搴撱��2锛氱Щ搴撱��3锛氬叆搴�   ====杞崲涓�====>  1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴�
+                            carryParam.setTaskPriority(1);
+                            carryParam.setTargetPoint("1012");
+                            carryParam.setStartPoint(BarcodeUtils.formatCode(locNo));
+                            carryParam.setMeno("Demo");
+                            taskWrkController.addTaskPoint(carryParam);
+                            Thread.sleep(50);
+                        } else if (locMast.getLocSts().equals("O")){
+                            CarryParam carryParam = new CarryParam();
+                            carryParam.setTaskNo(locNo);
+                            carryParam.setBarcode(locNo);
+                            carryParam.setIoType(3);//浠诲姟绫诲瀷=銆�1锛氬嚭搴撱��2锛氱Щ搴撱��3锛氬叆搴�   ====杞崲涓�====>  1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴�
+                            carryParam.setTaskPriority(1);
+                            carryParam.setStartPoint("1012");
+                            carryParam.setTargetPoint(BarcodeUtils.formatCode(locNo));
+                            carryParam.setMeno("Demo");
+                            taskWrkController.addTaskPoint(carryParam);
+                            Thread.sleep(50);
+                        }
+                    }
+
+                } catch (Exception e){
+
+                }
+            }
+        } catch (Exception e){
+
+        }
+    }
 }
diff --git a/src/main/java/com/zy/asrs/utils/BarcodeUtils.java b/src/main/java/com/zy/asrs/utils/BarcodeUtils.java
index ac3c396..9823ef5 100644
--- a/src/main/java/com/zy/asrs/utils/BarcodeUtils.java
+++ b/src/main/java/com/zy/asrs/utils/BarcodeUtils.java
@@ -52,4 +52,40 @@
                 return Integer.parseInt(staNo);
         }
     }
+
+    public static String formatCode(String input) {
+        if (input == null || input.length() != 7 || !input.matches("\\d+")) {
+            throw new IllegalArgumentException("杈撳叆蹇呴』鏄�7浣嶆暟瀛�");
+        }
+
+        // 鏍规嵁绀轰緥鍒嗘瀽鎷嗗垎瑙勫垯锛�
+        // "0500708" -> "05", "07", "08" (璺宠繃绗�3浣�)
+        // "0201001" -> "02", "10", "01"
+        // "1001010" -> "10", "10", "10"
+        // "0500210" -> "05", "02", "10"
+
+        // 鎷嗗垎瑙勫垯锛氱1-2浣嶏紝绗�4-5浣嶏紝绗�6-7浣嶏紙璺宠繃绗�3浣嶏級
+        String part1 = input.substring(0, 2);  // 鍓嶄袱浣�
+        String part2 = input.substring(3, 5);  // 绗�4-5浣嶏紙璺宠繃绗�3浣嶏級
+        String part3 = input.substring(5, 7);  // 绗�6-7浣�
+
+        // 鍘婚櫎鍓嶅闆跺苟鏍煎紡鍖栦负涓や綅鏁�
+        String formattedPart1 = String.format("%02d", Integer.parseInt(part1));
+        String formattedPart2 = String.format("%02d", Integer.parseInt(part2));
+        String formattedPart3 = String.format("%02d", Integer.parseInt(part3));
+
+        return "F-F01-" + formattedPart1 + "-" + formattedPart2 + "-" + formattedPart3;
+    }
+
+    public static void main(String[] args) {
+        // 娴嬭瘯鎵�鏈夌ず渚�
+        System.out.println("0500708 -> " + formatCode("0500708")); // F-F01-05-07-08
+        System.out.println("0201001 -> " + formatCode("0201001")); // F-F01-02-10-01
+        System.out.println("1001010 -> " + formatCode("1001010")); // F-F01-10-10-10
+        System.out.println("0500210 -> " + formatCode("0500210")); // F-F01-05-02-10
+
+        // 楠岃瘉闀垮害鏄惁涓�14涓瓧绗�
+        String result = formatCode("1000110");
+        System.out.println("缁撴灉闀垮害: " + result.length() + " 瀛楃: " + result);
+    }
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index fd7e5fd..7998686 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -25,6 +25,7 @@
     private Thread thread2;
     private Thread thread3;
     private Thread thread4;
+    private Thread thread5;
 
     /**
      * =====>>  寮�濮嬪伐浣�
@@ -35,6 +36,9 @@
 
         thread2 = new Thread(this::crnAndDevOtherRun);
         thread2.start();
+
+        thread5 = new Thread(this::demoRun5);
+        thread5.start();
 
         thread3 = new Thread(this::demoRun);
         thread3.start();
@@ -128,6 +132,31 @@
         }
     }
 
+    private void demoRun5() {
+        while (!Thread.currentThread().isInterrupted()) {
+            try {
+                // 闂撮殧
+                Thread.sleep(200);
+                // 绯荤粺杩愯鐘舵�佸垽鏂�
+                if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
+                    continue;
+                }
+                // 绯荤粺婕旂ず妯″紡杩愯鐘舵�佸垽鏂�
+                if (!SystemProperties.WCS_RUNNING_STATUS_DEMO.get()) {
+                    continue;
+                }
+                // 绯荤粺婕旂ず妯″紡杩愯鐘舵�佸垽鏂�
+                if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE != 2) {
+                    continue;
+                }
+                // 鍏ュ簱  ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
+                mainService.locMastTaskDemo();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     private void demoOpenRun() {
         while (!Thread.currentThread().isInterrupted()) {
             try {
@@ -183,6 +212,7 @@
         if (thread2 != null) thread2.interrupt();
         if (thread3 != null) thread3.interrupt();
         if (thread4 != null) thread4.interrupt();
+        if (thread5 != null) thread5.interrupt();
     }
 
 }

--
Gitblit v1.9.1