From 29247d82ea56dfbd42b494deaadde07679560571 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期五, 27 六月 2025 13:51:55 +0800
Subject: [PATCH] #改造
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 359 ++++++++++++++++++++++++++------------------------
src/main/java/com/zy/core/MainProcess.java | 3
2 files changed, 187 insertions(+), 175 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 2699570..3f263f5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -742,7 +742,7 @@
}
}
} catch (Exception e){
-
+ log.error("鍫嗗灈鏈�5鍒嗛挓鏃犱换鍔″垯鍥炲埌婧愮偣澶辫触");
}
}
}
@@ -774,8 +774,12 @@
}
}
- // 搴撲綅绉昏浆
- this.locToLoc(crn, crnProtocol);
+ try{
+ // 搴撲綅绉昏浆
+ this.locToLoc(crn, crnProtocol);
+ } catch (Exception e) {
+ log.error("搴撲綅绉昏浆澶辫触");
+ }
// 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
@@ -1253,80 +1257,81 @@
*/
public void storeFinished() throws InterruptedException {
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
-
- CrnSlave crn = new CrnSlave(crnSlave);
-
- if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) {
- for (CrnSlave crnOther : slaveProperties.getCrn()) {
- if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
- crn.updateCrnInStn(crnOther);
- }
- }
- }
-
- // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
- //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
- TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crnProtocol.getLaneNo(), crnProtocol.getTaskNo().intValue());
- if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) {
- log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽贩閬撳彿={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo());
+ try{
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
continue;
}
-// Thread.sleep(300);
- //纭瀹屾垚淇″彿
- CrnOperatorParam crnOperatorParam = new CrnOperatorParam();
- crnOperatorParam.setCrnNo(crn.getId());
- Date now = new Date();
- crnController.crnTaskComplete(crnOperatorParam);
- if (!Cools.isEmpty(taskWrk)) {
- if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
- taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
- taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
- locMast.setLocSts("F");//F.鍦ㄥ簱
- locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
- locMast.setModiTime(now);
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
- } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
- taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚
- taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
- locMast.setLocSts("O");//O.绌哄簱浣�
- locMast.setBarcode("");//鎵樼洏鐮�
- locMast.setModiTime(now);
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
- } else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) {
- taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
- taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
- locMast.setLocSts("F");//F.鍦ㄥ簱
- locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
- locMast.setModiTime(now);
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
+ CrnSlave crn = new CrnSlave(crnSlave);
- LocMast locMast1 = locMastService.selectByLocNo(taskWrk.getStartPoint());
- locMast1.setLocSts("O");//O.绌哄簱浣�
- locMast1.setBarcode("");//鎵樼洏鐮�
- locMast1.setModiTime(now);
- locMast1.setModiUser(9999L);
- locMastService.updateById(locMast1);
+ if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) {
+ for (CrnSlave crnOther : slaveProperties.getCrn()) {
+ if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
+ crn.updateCrnInStn(crnOther);
+ }
}
- taskWrk.setModiTime(now);
- taskWrk.setCompleteTime(now);
- taskWrkService.updateById(taskWrk);
+ }
+
+ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
+ if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
+ //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+ TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crnProtocol.getLaneNo(), crnProtocol.getTaskNo().intValue());
+ if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) {
+ log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽贩閬撳彿={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo());
+ continue;
+ }
+// Thread.sleep(300);
+ //纭瀹屾垚淇″彿
+ CrnOperatorParam crnOperatorParam = new CrnOperatorParam();
+ crnOperatorParam.setCrnNo(crn.getId());
+ Date now = new Date();
+
+ crnController.crnTaskComplete(crnOperatorParam);
+ if (!Cools.isEmpty(taskWrk)) {
+ if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
+ taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
+ taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
+ //鏇存柊搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+ locMast.setLocSts("F");//F.鍦ㄥ簱
+ locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
+ locMast.setModiTime(now);
+ locMast.setModiUser(9999L);
+ locMastService.updateById(locMast);
+ } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
+ taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚
+ taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
+ //鏇存柊搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
+ locMast.setLocSts("O");//O.绌哄簱浣�
+ locMast.setBarcode("");//鎵樼洏鐮�
+ locMast.setModiTime(now);
+ locMast.setModiUser(9999L);
+ locMastService.updateById(locMast);
+ } else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) {
+ taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
+ taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
+ //鏇存柊搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+ locMast.setLocSts("F");//F.鍦ㄥ簱
+ locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
+ locMast.setModiTime(now);
+ locMast.setModiUser(9999L);
+ locMastService.updateById(locMast);
+
+ LocMast locMast1 = locMastService.selectByLocNo(taskWrk.getStartPoint());
+ locMast1.setLocSts("O");//O.绌哄簱浣�
+ locMast1.setBarcode("");//鎵樼洏鐮�
+ locMast1.setModiTime(now);
+ locMast1.setModiUser(9999L);
+ locMastService.updateById(locMast1);
+ }
+ taskWrk.setModiTime(now);
+ taskWrk.setCompleteTime(now);
+ taskWrkService.updateById(taskWrk);
// try {
@@ -1366,8 +1371,11 @@
// log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
//// throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
// }
- }
+ }
+ }
+ } catch (Exception e){
+ log.error("鍫嗗灈鏈烘墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔澶辫触 ===>> [id:{}] [error:{}]", crnSlave.getId(), e.getMessage());
}
}
}
@@ -1378,114 +1386,117 @@
public void recCrnErr() {
Date now = new Date();
for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
- if (crnProtocol.getModeType() != CrnModeType.STOP) {
- // 鏈変换鍔�
- if (crnProtocol.getTaskNo() != 0) {
- BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
- // 鏈夊紓甯�
- if (latest == null) {
+ try{
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ continue;
+ }
+ if (crnProtocol.getModeType() != CrnModeType.STOP) {
+ // 鏈変换鍔�
+ if (crnProtocol.getTaskNo() != 0) {
+ BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
+ // 鏈夊紓甯�
+ if (latest == null) {
+ if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
+ TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(crnProtocol.getTaskNo()));
+ if (taskWrk == null) {
+ continue;
+ }
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm().intValue());
+ String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
+ BasErrLog basErrLog = new BasErrLog(
+ null, // 缂栧彿
+ taskWrk.getWrkNo(), // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ taskWrk.getWrkSts().longValue(), // 宸ヤ綔鐘舵��
+ taskWrk.getIoType(), // 鍏ュ嚭搴撶被鍨�
+ crn.getId(), // 鍫嗗灈鏈�
+ null, // plc
+ taskWrk.getTargetPoint(), // 鐩爣搴撲綅
+ 0, // 鐩爣绔�
+ 0, // 婧愮珯
+ taskWrk.getStartPoint(), // 婧愬簱浣�
+ taskWrk.getBarcode(), // 鏉$爜
+ (int) crnProtocol.getAlarm(), // 寮傚父鐮�
+ errName, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "浠诲姟涓紓甯�" // 澶囨敞
+ );
+ if (!basErrLogService.insert(basErrLog)) {
+ log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+ }
+ }
+ } else {
+ // 寮傚父淇
+ if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) {
+ latest.setEndTime(now);
+ latest.setUpdateTime(now);
+ latest.setStatus(2);
+ if (!basErrLogService.updateById(latest)) {
+ log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+ }
+ }
+ }
+ // 鏃犱换鍔�
+ } else {
+ BasErrLog latest = basErrLogService.findLatest(crn.getId());
+ // 鏈夊紓甯�
if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
- TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(crnProtocol.getTaskNo()));
- if (taskWrk == null) {
- continue;
+ // 璁板綍鏂板紓甯�
+ if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
+ String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
+ BasErrLog basErrLog = new BasErrLog(
+ null, // 缂栧彿
+ null, // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ null, // 宸ヤ綔鐘舵��
+ null, // 鍏ュ嚭搴撶被鍨�
+ crn.getId(), // 鍫嗗灈鏈�
+ null, // plc
+ null, // 鐩爣搴撲綅
+ null, // 鐩爣绔�
+ null, // 婧愮珯
+ null, // 婧愬簱浣�
+ null, // 鏉$爜
+ (int) crnProtocol.getAlarm(), // 寮傚父鐮�
+ errName, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "鏃犱换鍔″紓甯�" // 澶囨敞
+ );
+ if (!basErrLogService.insert(basErrLog)) {
+ log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+ }
}
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm().intValue());
- String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
- BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
- taskWrk.getWrkNo(), // 宸ヤ綔鍙�
- now, // 鍙戠敓鏃堕棿
- null, // 缁撴潫鏃堕棿
- taskWrk.getWrkSts().longValue(), // 宸ヤ綔鐘舵��
- taskWrk.getIoType(), // 鍏ュ嚭搴撶被鍨�
- crn.getId(), // 鍫嗗灈鏈�
- null, // plc
- taskWrk.getTargetPoint(), // 鐩爣搴撲綅
- 0, // 鐩爣绔�
- 0, // 婧愮珯
- taskWrk.getStartPoint(), // 婧愬簱浣�
- taskWrk.getBarcode(), // 鏉$爜
- (int) crnProtocol.getAlarm(), // 寮傚父鐮�
- errName, // 寮傚父
- 1, // 寮傚父鎯呭喌
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- "浠诲姟涓紓甯�" // 澶囨敞
- );
- if (!basErrLogService.insert(basErrLog)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
- }
- }
- } else {
- // 寮傚父淇
- if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) {
- latest.setEndTime(now);
- latest.setUpdateTime(now);
- latest.setStatus(2);
- if (!basErrLogService.updateById(latest)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
- }
- }
- }
- // 鏃犱换鍔�
- } else {
- BasErrLog latest = basErrLogService.findLatest(crn.getId());
- // 鏈夊紓甯�
- if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
- // 璁板綍鏂板紓甯�
- if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
- BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
- null, // 宸ヤ綔鍙�
- now, // 鍙戠敓鏃堕棿
- null, // 缁撴潫鏃堕棿
- null, // 宸ヤ綔鐘舵��
- null, // 鍏ュ嚭搴撶被鍨�
- crn.getId(), // 鍫嗗灈鏈�
- null, // plc
- null, // 鐩爣搴撲綅
- null, // 鐩爣绔�
- null, // 婧愮珯
- null, // 婧愬簱浣�
- null, // 鏉$爜
- (int) crnProtocol.getAlarm(), // 寮傚父鐮�
- errName, // 寮傚父
- 1, // 寮傚父鎯呭喌
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- "鏃犱换鍔″紓甯�" // 澶囨敞
- );
- if (!basErrLogService.insert(basErrLog)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
- }
- }
- // 鏃犲紓甯�
- } else {
- // 寮傚父淇
- if (latest != null && latest.getStatus() == 1) {
- latest.setEndTime(now);
- latest.setUpdateTime(now);
- latest.setStatus(2);
- if (!basErrLogService.updateById(latest)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+ // 鏃犲紓甯�
+ } else {
+ // 寮傚父淇
+ if (latest != null && latest.getStatus() == 1) {
+ latest.setEndTime(now);
+ latest.setUpdateTime(now);
+ latest.setStatus(2);
+ if (!basErrLogService.updateById(latest)) {
+ log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+ }
}
}
}
}
+ } catch (Exception e){
+ log.error("鍫嗗灈鏈哄紓甯镐俊鎭褰曞け璐� ===>> [id:{}] [error:{}]", crn.getId(), e.getMessage());
}
-
}
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 2b938e2..06c14c4 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -32,7 +32,7 @@
try {
// 闂撮殧
- Thread.sleep(500);
+ Thread.sleep(400);
// 绯荤粺杩愯鐘舵�佸垽鏂�
if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
@@ -52,6 +52,7 @@
mainService.crnIoExecute();
// 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
mainService.storeFinished();
+ Thread.sleep(100);
// 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
mainService.crnStnToOutStn();
// 鍑哄簱 ===>> 鍫嗗灈鏈�5鍒嗛挓鏃犱换鍔″垯鍥炲埌婧愮偣
--
Gitblit v1.9.1