From 4eb9cd026398e50c36a5c0339ea8992dc76e8318 Mon Sep 17 00:00:00 2001
From: Administrator <XS@163.COM>
Date: 星期六, 25 四月 2026 21:53:24 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java | 72 +++++++++++++++++++++++++++---------
1 files changed, 54 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
index 277d761..ec2f975 100644
--- a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
@@ -66,7 +66,7 @@
private MainProcessTaskSubmitter mainProcessTaskSubmitter;
//鍏ュ嚭搴� ===>> 鍙屽伐浣嶅爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�
- public synchronized void dualCrnIoExecute() {
+ public void dualCrnIoExecute() {
List<BasDualCrnp> basDualCrnps = basDualCrnpService.selectList(new EntityWrapper<>());
for (BasDualCrnp basDualCrnp : basDualCrnps) {
dualCrnIoExecute(basDualCrnp);
@@ -91,32 +91,34 @@
.eq("dual_crn_no", basDualCrnp.getCrnNo())
.in("wrk_sts", WrkStsType.INBOUND_RUN.sts, WrkStsType.OUTBOUND_RUN.sts)
);
- if(wrkMasts.size() >= 2){
+ if(wrkMasts == null || wrkMasts.size() >= 2){
return;
}
- if(dualCrnProtocol.getMode() != DualCrnModeType.AUTO.id) {
+ if(!DualCrnModeType.AUTO.id.equals(dualCrnProtocol.getMode())) {
return;
}
- if(dualCrnProtocol.getAlarm() != 0) {
+ if(dualCrnProtocol.getAlarm() == null || dualCrnProtocol.getAlarm() != 0) {
return;
}
- if(dualCrnProtocol.getTaskSend() != 0 || dualCrnProtocol.getTaskSendTwo() != 0) {
+ if((dualCrnProtocol.getTaskSend() != null && dualCrnProtocol.getTaskSend() != 0)
+ || (dualCrnProtocol.getTaskSendTwo() != null && dualCrnProtocol.getTaskSendTwo() != 0)) {
return;
}
this.crnExecute(basDualCrnp, dualCrnThread);
}
- private synchronized void crnExecute(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
+ private void crnExecute(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
if(dualCrnProtocol == null){
return;
}
- if (!(dualCrnProtocol.getStatusType().equals(DualCrnStatusType.IDLE) && dualCrnProtocol.getStatusTypeTwo().equals(DualCrnStatusType.IDLE))) {
+ if (!(DualCrnStatusType.IDLE.equals(dualCrnProtocol.getStatusType())
+ && DualCrnStatusType.IDLE.equals(dualCrnProtocol.getStatusTypeTwo()))) {
return;
}
@@ -126,7 +128,7 @@
}
// 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
- if (dualCrnProtocol.getLastIo().equals("O")) {
+ if ("O".equals(dualCrnProtocol.getLastIo())) {
boolean executeResult1 = processLoveMove(basDualCrnp, dualCrnThread);
if (executeResult1) {
return;
@@ -141,7 +143,7 @@
}
}
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
- else if (dualCrnProtocol.getLastIo().equals("I")) {
+ else if ("I".equals(dualCrnProtocol.getLastIo())) {
boolean executeResult1 = processLoveMove(basDualCrnp, dualCrnThread);
if (executeResult1) {
return;
@@ -392,7 +394,7 @@
return list;
}
- private synchronized SendDualCrnCommandParam crnExecuteIn(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread, WrkMast wrkMast) {
+ private SendDualCrnCommandParam crnExecuteIn(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread, WrkMast wrkMast) {
DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
if (dualCrnProtocol == null) {
return null;
@@ -525,7 +527,7 @@
return null;
}
- private synchronized SendDualCrnCommandParam crnExecuteOut(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread, WrkMast wrkMast, int station) {
+ private SendDualCrnCommandParam crnExecuteOut(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread, WrkMast wrkMast, int station) {
DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
if (dualCrnProtocol == null) {
return null;
@@ -636,7 +638,7 @@
return null;
}
- private synchronized SendDualCrnCommandParam crnExecuteLocMove(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread, WrkMast wrkMast, int station) {
+ private SendDualCrnCommandParam crnExecuteLocMove(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread, WrkMast wrkMast, int station) {
DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
if (dualCrnProtocol == null) {
return null;
@@ -699,7 +701,7 @@
}
//鍙屽伐浣嶅爢鍨涙満浠诲姟鎵ц瀹屾垚
- public synchronized void dualCrnIoExecuteFinish() {
+ public void dualCrnIoExecuteFinish() {
List<BasDualCrnp> basDualCrnps = basDualCrnpService.selectList(new EntityWrapper<>());
for (BasDualCrnp basDualCrnp : basDualCrnps) {
dualCrnIoExecuteFinish(basDualCrnp);
@@ -720,20 +722,26 @@
return;
}
- if(dualCrnProtocol.getMode() != DualCrnModeType.AUTO.id) {
+ if(!DualCrnModeType.AUTO.id.equals(dualCrnProtocol.getMode())) {
return;
}
- if(dualCrnProtocol.getAlarm() != 0) {
+ if(dualCrnProtocol.getAlarm() == null || dualCrnProtocol.getAlarm() != 0) {
return;
}
- if((dualCrnProtocol.getTaskNo() > 0 && dualCrnProtocol.getDeviceTaskNo() > 0) && dualCrnProtocol.getTaskSend() == 0 && dualCrnProtocol.getStatus().equals(DualCrnStatusType.WAITING.id)) {
+ if((dualCrnProtocol.getTaskNo() != null && dualCrnProtocol.getTaskNo() > 0
+ && dualCrnProtocol.getDeviceTaskNo() != null && dualCrnProtocol.getDeviceTaskNo() > 0)
+ && (dualCrnProtocol.getTaskSend() == null || dualCrnProtocol.getTaskSend() == 0)
+ && DualCrnStatusType.WAITING.id.equals(dualCrnProtocol.getStatus())) {
executeFinish(basDualCrnp, dualCrnThread, dualCrnProtocol, dualCrnProtocol.getTaskNo(), 1);
return;
}
- if((dualCrnProtocol.getTaskNoTwo() > 0 && dualCrnProtocol.getDeviceTaskNoTwo() > 0) && dualCrnProtocol.getTaskSendTwo() == 0 && dualCrnProtocol.getStatusTwo().equals(DualCrnStatusType.WAITING.id)) {
+ if((dualCrnProtocol.getTaskNoTwo() != null && dualCrnProtocol.getTaskNoTwo() > 0
+ && dualCrnProtocol.getDeviceTaskNoTwo() != null && dualCrnProtocol.getDeviceTaskNoTwo() > 0)
+ && (dualCrnProtocol.getTaskSendTwo() == null || dualCrnProtocol.getTaskSendTwo() == 0)
+ && DualCrnStatusType.WAITING.id.equals(dualCrnProtocol.getStatusTwo())) {
executeFinish(basDualCrnp, dualCrnThread, dualCrnProtocol, dualCrnProtocol.getTaskNoTwo(), 2);
}
}
@@ -743,6 +751,20 @@
}
public void submitDualCrnIoTasks(MainProcessLane lane, long minIntervalMs) {
+ mainProcessTaskSubmitter.submitSerialTask(
+ MainProcessLane.DUAL_CRN_SCAN,
+ "submitDualCrnIoTasks",
+ minIntervalMs,
+ new Runnable() {
+ @Override
+ public void run() {
+ submitDualCrnIoTasksInternal(lane, minIntervalMs);
+ }
+ }
+ );
+ }
+
+ private void submitDualCrnIoTasksInternal(MainProcessLane lane, long minIntervalMs) {
List<BasDualCrnp> basDualCrnps = basDualCrnpService.selectList(new EntityWrapper<>());
for (final BasDualCrnp basDualCrnp : basDualCrnps) {
Integer crnNo = basDualCrnp == null ? null : basDualCrnp.getCrnNo();
@@ -769,6 +791,20 @@
}
public void submitDualCrnIoExecuteFinishTasks(MainProcessLane lane, long minIntervalMs) {
+ mainProcessTaskSubmitter.submitSerialTask(
+ MainProcessLane.DUAL_CRN_SCAN,
+ "submitDualCrnIoExecuteFinishTasks",
+ minIntervalMs,
+ new Runnable() {
+ @Override
+ public void run() {
+ submitDualCrnIoExecuteFinishTasksInternal(lane, minIntervalMs);
+ }
+ }
+ );
+ }
+
+ private void submitDualCrnIoExecuteFinishTasksInternal(MainProcessLane lane, long minIntervalMs) {
List<BasDualCrnp> basDualCrnps = basDualCrnpService.selectList(new EntityWrapper<>());
for (final BasDualCrnp basDualCrnp : basDualCrnps) {
Integer crnNo = basDualCrnp == null ? null : basDualCrnp.getCrnNo();
@@ -875,7 +911,7 @@
}
//妫�娴嬫祬搴撲綅鐘舵��
- public synchronized boolean checkShallowLocStatus(String locNo, Integer taskNo) {
+ public boolean checkShallowLocStatus(String locNo, Integer taskNo) {
String checkDeepLocOutTaskBlockReport = "Y";
Object systemConfigMapObj = redisUtil.get(RedisKeyType.SYSTEM_CONFIG_MAP.key);
if (systemConfigMapObj != null) {
--
Gitblit v1.9.1