From 3f02e208daff9a760d3a0ea5680a0138e0a23e03 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期六, 03 十二月 2022 14:32:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  140 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 137 insertions(+), 3 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 40d0589..7769479 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -9,6 +9,7 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasCrnErrorMapper;
+import com.zy.asrs.mapper.BasRgvErrMapper;
 import com.zy.asrs.mapper.WaitPakinMapper;
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.*;
@@ -68,8 +69,6 @@
     @Autowired
     private WrkDetlService wrkDetlService;
     @Autowired
-    private WaitPakinMapper waitPakinMapper;
-    @Autowired
     private LocMastService locMastService;
     @Autowired
     private StaDescService staDescService;
@@ -85,6 +84,10 @@
     private BasErrLogService basErrLogService;
     @Autowired
     private BasCrnErrorMapper basCrnErrorMapper;
+    @Autowired
+    private BasRgvErrMapper basRgvErrMapper;
+    @Autowired
+    private BasRgvErrLogService basRgvErrLogService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -1736,6 +1739,138 @@
     }
 
     /**
+     * 寮傚父淇℃伅璁板綍
+     */
+    public synchronized void recErr() {
+        try {
+            this.recCrnErr();
+            this.recRgvErr();
+        } catch (Exception e) {
+            log.error("recErr fail", e);
+        }
+    }
+
+    /**
+     * RGV寮傚父淇℃伅璁板綍
+     */
+    public synchronized void recRgvErr() {
+        Date now = new Date();
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+            // 鑾峰彇RGV淇℃伅
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvProtocol == null) {
+                continue;
+            }
+            if (true) {
+                // 鏈変换鍔�
+                if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getTaskNo2() != 0) {
+                    Integer taskNo = rgvProtocol.getTaskNo1() > 0 ? rgvProtocol.getTaskNo1().intValue() : rgvProtocol.getTaskNo2().intValue();
+                    BasRgvErrLog latest = basRgvErrLogService.findLatestByTaskNo(rgv.getId(), taskNo);
+                    // 鏈夊紓甯�
+                    if (latest == null) {
+                        if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) {
+                            WrkMast wrkMast = wrkMastMapper.selectById(taskNo);
+                            if (wrkMast == null) {
+                                continue;
+                            }
+                            BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
+                            String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName();
+                            BasRgvErrLog basRgvErrLog = new BasRgvErrLog(
+                                    null,    // 缂栧彿
+                                    wrkMast.getWrkNo(),    // 宸ヤ綔鍙�
+                                    now,    // 鍙戠敓鏃堕棿
+                                    null,    // 缁撴潫鏃堕棿
+                                    wrkMast.getWrkSts(),    // 宸ヤ綔鐘舵��
+                                    wrkMast.getIoType(),    // 鍏ュ嚭搴撶被鍨�
+                                    rgv.getId(),    // 鍫嗗灈鏈�
+                                    null,    // plc
+                                    wrkMast.getLocNo(),    // 鐩爣搴撲綅
+                                    wrkMast.getStaNo(),    // 鐩爣绔�
+                                    wrkMast.getSourceStaNo(),    // 婧愮珯
+                                    wrkMast.getSourceLocNo(),    // 婧愬簱浣�
+                                    wrkMast.getBarcode(),    // 鏉$爜
+                                    (int) rgvProtocol.getAlarm(),    // 寮傚父鐮�
+                                    errName,    // 寮傚父
+                                    1,    // 寮傚父鎯呭喌
+                                    now,    // 娣诲姞鏃堕棿
+                                    null,    // 娣诲姞浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 淇敼浜哄憳
+                                    "浠诲姟涓紓甯�"    // 澶囨敞
+                            );
+
+                            if (!basRgvErrLogService.insert(basRgvErrLog)) {
+                                log.error("RGV寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", rgv.getId(), errName);
+                            }
+                        }
+                    } else {
+                        // 寮傚父淇
+                        if (rgvProtocol.getAlarm() == null || rgvProtocol.getAlarm() == 0) {
+                            latest.setEndTime(now);
+                            latest.setUpdateTime(now);
+                            latest.setStatus(2);
+                            if (!basRgvErrLogService.updateById(latest)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", rgv.getId(), latest.getId());
+                            }
+                        }
+                    }
+                    // 鏃犱换鍔�
+                } else {
+                    BasRgvErrLog latest = basRgvErrLogService.findLatest(rgv.getId());
+                    // 鏈夊紓甯�
+                    if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) {
+                        // 璁板綍鏂板紓甯�
+                        if (latest == null || (latest.getErrCode() != rgvProtocol.getAlarm().intValue())) {
+                            BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
+                            String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName();
+                            BasRgvErrLog basRgvErrLog = new BasRgvErrLog(
+                                    null,    // 缂栧彿
+                                    null,    // 宸ヤ綔鍙�
+                                    now,    // 鍙戠敓鏃堕棿
+                                    null,    // 缁撴潫鏃堕棿
+                                    null,    // 宸ヤ綔鐘舵��
+                                    null,    // 鍏ュ嚭搴撶被鍨�
+                                    rgv.getId(),    // 鍫嗗灈鏈�
+                                    null,    // plc
+                                    null,    // 鐩爣搴撲綅
+                                    null,    // 鐩爣绔�
+                                    null,    // 婧愮珯
+                                    null,    // 婧愬簱浣�
+                                    null,    // 鏉$爜
+                                    (int) rgvProtocol.getAlarm(),    // 寮傚父鐮�
+                                    errName,    // 寮傚父
+                                    1,    // 寮傚父鎯呭喌
+                                    now,    // 娣诲姞鏃堕棿
+                                    null,    // 娣诲姞浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 淇敼浜哄憳
+                                    "鏃犱换鍔″紓甯�"    // 澶囨敞
+                            );
+
+                            if (!basRgvErrLogService.insert(basRgvErrLog)) {
+                                log.error("RGV寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", rgv.getId(), errName);
+                            }
+                        }
+                        // 鏃犲紓甯�
+                    } else {
+                        // 寮傚父淇
+                        if (latest != null && latest.getStatus() == 1) {
+                            latest.setEndTime(now);
+                            latest.setUpdateTime(now);
+                            latest.setStatus(2);
+                            if (!basRgvErrLogService.updateById(latest)) {
+                                log.error("RGV寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", rgv.getId(), latest.getId());
+                            }
+                        }
+                    }
+                }
+            }
+
+        }
+    }
+
+    /**
      * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
      */
     public synchronized void recCrnErr() {
@@ -1852,7 +1987,6 @@
 
         }
     }
-
 
     // -------------------------------------------------------------------------------
 

--
Gitblit v1.9.1