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