From 4790be9d288a84a38b10e143c8433b7becc62404 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 11 十二月 2025 13:10:42 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java | 71 ++++++++++++++++++++++++++++-------
1 files changed, 57 insertions(+), 14 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 bf00720..bcd030c 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());
@@ -301,9 +326,20 @@
OpenBusSubmitParam openBusSubmitParam = new OpenBusSubmitParam();
openBusSubmitParam.setBatch(DateUtils.convert(new Date()));
List<TaskDto> taskList = new ArrayList<>();
+ Random rand = new Random();
TaskDto taskDto = new TaskDto();
- taskDto.setSeqNum(Math.random() * 1000 + "");
+ taskDto.setSeqNum("SSX-CK" + rand.nextInt() * 10000);
taskDto.setOriLoc(getFLoc("1001", "16"));
+ taskDto.setDestSta("1001");
+ taskDto.setPriority(123);
+ taskList.add(taskDto);
+ String fLoc = getFLoc("1001", "16");
+ if (fLoc == taskDto.getOriLoc()) {
+ fLoc = getFLoc("1001", "16");
+ }
+ taskDto = new TaskDto();
+ taskDto.setSeqNum("SSX-CK" + rand.nextInt() * 10000);
+ taskDto.setOriLoc(fLoc);
taskDto.setDestSta("1001");
taskDto.setPriority(123);
taskList.add(taskDto);
@@ -312,7 +348,11 @@
}
}
-
+ /**
+ * 1007鍏ュ簱
+ *
+ * @param mark
+ */
public synchronized void autoIn(Integer mark) {
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = devpThread.getStation().get(1007);
@@ -328,20 +368,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);
sendTask(openBusSubmitParam, staProtocol);
+
}
@@ -360,7 +401,7 @@
}
@Transactional
- public void sendTask(OpenBusSubmitParam openBusSubmitParam, StaProtocol staProtocol) {
+ public boolean sendTask(OpenBusSubmitParam openBusSubmitParam, StaProtocol staProtocol) {
String response = "";
try {
response = new HttpHandler.Builder()
@@ -373,13 +414,15 @@
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getInteger("code").equals(200)) {
log.info("涓嬪彂浠诲姟杩斿洖鏁版嵁锛歿}", response);
+ return true;
} else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(openBusSubmitParam), response);
+ //log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(openBusSubmitParam), response);
throw new CoolException("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊");
}
} catch (Exception e) {
- log.error("fail", e);
+ //log.error("fail", e);
}
+ return false;
}
@Transactional
@@ -428,7 +471,7 @@
JSONObject loc = JSON.parseObject(jsonObject.getString("data"));
return loc.getString("locNo");
} else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(data), response);
+ //log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(data), response);
throw new CoolException("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊");
}
} catch (Exception e) {
--
Gitblit v1.9.1