From 58bb9d3e0a8d8c385085f8cce3492eccf5448ec4 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 10 九月 2025 16:20:12 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java | 54 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 38 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
index e26b268..db9082c 100644
--- a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -69,11 +69,26 @@
private boolean flag1007 = false;
+ private Map<Integer, Long> staNoSet = new HashMap<>();
+
+ public Map<Integer, Long> getStaNoSet() {
+ return staNoSet;
+ }
+
+ public void setStaNoSet(Map<Integer, Long> staNoSet) {
+ this.staNoSet = staNoSet;
+ }
/**
* 鍏ュ簱锛屼粠鎷f枡绔欏埌鍏ュ簱绔欙紙CTU鍙栬揣绔欙級
*/
public synchronized void generateStoreWrkFile(Integer mark) {
+ for (Map.Entry<Integer, Long> entry : staNoSet.entrySet()) {
+ if (entry.getValue() != null && System.currentTimeMillis() - entry.getValue() > 1000 * 60 * 5) {
+ log.info("瓒呮椂锛歿}", entry.getKey());
+ staNoSet.remove(entry.getKey());
+ }
+ }
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = devpThread.getStation().get(1004);
@@ -83,9 +98,13 @@
staProtocol = staProtocol.clone();
}
// 鍒ゆ柇鏄惁婊¤冻鏉′欢
-// if (!staProtocol.isLoading()) {
-// return;
-// }
+ if (!staProtocol.isLoading()) {
+ return;
+ }
+ Long i = staNoSet.get(staProtocol.getWorkNo());
+ if (i != null) {
+ return;
+ }
// && staProtocol.isInEnable()
if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
if (staProtocol.getStaNo() == 1004) {
@@ -96,6 +115,7 @@
}
staProtocol.setStaNo((short) 1007);
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+ staNoSet.put(staProtocol.getWorkNo(), System.currentTimeMillis());
log.info("鍏ュ簱杈撻�佺嚎涓嬪彂锛歿},{}", staProtocol.getWorkNo(), 1007);
}
@@ -148,7 +168,7 @@
if (flag1007 && staProtocol.getWorkNo() > 0 && staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
staProtocol.setWorkNo(0);
staProtocol.setStaNo((short) 0);
- boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
log.info("鍙栬蛋鍐欏叆纭浣嶏細{},{}", staProtocol.getWorkNo(), 1007);
}
}
@@ -174,7 +194,7 @@
continue;
}
//&& staProtocol.isOutEnable()
- if (flag1001 && staProtocol.isAutoing() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) {
+ if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
// 鍒ゆ柇閲嶅宸ヤ綔妗�
// 106涔熺畻涓婏紝浠ュ悗106-銆�107鐢ㄤ簬鏇存柊搴撳瓨
@@ -192,6 +212,11 @@
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
log.info("杈撻�佺嚎涓嬪彂3锛歿},{}", staProtocol.getWorkNo(), 1004);
if (result) {
+ try {
+ Thread.sleep(8000L);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
setFlag1001(false);
} else {
News.error("" + mark + " - 2" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
@@ -302,7 +327,8 @@
openBusSubmitParam.setBatch(DateUtils.convert(new Date()));
List<TaskDto> taskList = new ArrayList<>();
TaskDto taskDto = new TaskDto();
- taskDto.setSeqNum(Math.random() * 1000 + "");
+ Random rand = new Random();
+ taskDto.setSeqNum("SSX-CK" + rand.nextInt() * 10000);
taskDto.setOriLoc(getFLoc("1001", "16"));
taskDto.setDestSta("1001");
taskDto.setPriority(123);
@@ -332,25 +358,21 @@
if (!staProtocol.isLoading()) {
return;
}
- if (staProtocol.getStaNo() > 0) {
+ if (staProtocol.getStaNo() <= 0) {
return;
}
OpenBusSubmitParam openBusSubmitParam = new OpenBusSubmitParam();
openBusSubmitParam.setBatch(DateUtils.convert(new Date()));
List<TaskDto> taskList = new ArrayList<>();
TaskDto taskDto = new TaskDto();
- taskDto.setSeqNum(Math.random() * 1000 + "");
+ taskDto.setSeqNum("SSX-RK" + staProtocol.getWorkNo());
taskDto.setDestLoc(getFLoc("1007", "15"));
- taskDto.setOriLoc("1007");
+ taskDto.setOriSta("1007");
taskDto.setPriority(123);
taskList.add(taskDto);
openBusSubmitParam.setTaskList(taskList);
- if (sendTask(openBusSubmitParam, staProtocol)) {
- staProtocol.setWorkNo(0);
- staProtocol.setStaNo((short) 0);
- boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
- log.info("涓嬪彂缁檙cs鎴愬姛锛歿},{}", 0, 0);
- }
+ sendTask(openBusSubmitParam, staProtocol);
+
}
@@ -388,7 +410,7 @@
throw new CoolException("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊");
}
} catch (Exception e) {
- log.error("fail", e);
+ //log.error("fail", e);
}
return false;
}
--
Gitblit v1.9.1