From 3c9e4d85af794e00e94de44d934f806da40f5db2 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期一, 30 六月 2025 09:17:20 +0800
Subject: [PATCH] #改造

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  128 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 0 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 cf13d45..402ba7e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -104,6 +104,8 @@
     private Long avoidDistance;
     @Autowired
     private TaskWrkLogServiceImpl taskWrkLogService;
+    @Autowired
+    private BasPlcerrorLogServiceImpl basPlcerrorLogService;
 
     public void generateStoreWrkFile() {
         try {
@@ -1500,6 +1502,132 @@
         }
     }
 
+    /**
+     * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
+     */
+    public void recDevErr() {
+        Date now = new Date();
+        for (DevpSlave devpSlave : slaveProperties.getDevp()) {
+            try{
+                // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId());
+                Map<Integer, StaProtocol> station = devpThread.getStation();
+                for (StaProtocol staProtocol : station.values()){
+                    try{
+                        if (staProtocol == null) {
+                            continue;
+                        }
+//                        if (staProtocol.isAutoing() != CrnModeType.STOP) {
+//                            // 鏈変换鍔�
+//                            if (crnProtocol.getTaskNo() != 0) {
+//                                BasErrLog latest = basPlcerrorLogService.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,    // 寮傚父鎯呭喌
+//                                                taskWrk.getCreateTime(),    // 浠诲姟鏃堕棿(鎺ユ敹鏃堕棿)
+//                                                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());
+//                                        }
+//                                    }
+//                                }
+//                            }
+//                        }
+                    } catch (Exception devErr){
+                        log.error("杈撻�佺嚎绔欑偣寮傚父淇℃伅璁板綍澶辫触 ===>> [id:{}] [error:{}]", staProtocol.getStaNo(), devErr.getMessage());
+                    }
+                }
+            } catch (Exception e){
+                log.error("杈撻�佺嚎寮傚父淇℃伅璁板綍澶辫触 ===>> [id:{}] [error:{}]", devpSlave.getId(), e.getMessage());
+            }
+        }
+    }
+
     private TaskWrk createTask(GetWmsDto dto, String barcode) {
         String wcsLocNo = dto.getLocNo();
         if (Cools.isEmpty(wcsLocNo)) {

--
Gitblit v1.9.1