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 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 185 insertions(+), 174 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());
             }
-
         }
     }
 

--
Gitblit v1.9.1