From 08431a89037a83be754aca8bb7ad76d254dd8e70 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 11 十二月 2025 15:26:39 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/basCrnp/basCrnp.js                 |    1 
 src/main/webapp/views/basCrnp/basCrnp.html                   |    6 +++
 src/main/java/com/zy/common/config/CoolExceptionHandler.java |    2 
 src/main/java/com/zy/common/config/AspectConfig.java         |    4 +-
 src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java  |   57 ++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/entity/BasCrnp.java                |    4 ++
 src/main/resources/mapper/BasCrnpMapper.xml                  |    1 
 src/main/java/com/zy/common/service/CommonService.java       |   12 ++---
 src/main/java/com/zy/core/plugin/FakeProcess.java            |    2 +
 9 files changed, 79 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasCrnp.java b/src/main/java/com/zy/asrs/entity/BasCrnp.java
index aee4fb8..8822edd 100644
--- a/src/main/java/com/zy/asrs/entity/BasCrnp.java
+++ b/src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -79,6 +79,10 @@
     @TableField("control_rows")
     private String controlRows;
 
+    @ApiModelProperty(value= "娣卞簱浣嶆帓鍙�")
+    @TableField("deep_rows")
+    private String deepRows;
+
     /**
      * 鍏ョ珯鍒楄〃
      */
diff --git a/src/main/java/com/zy/common/config/AspectConfig.java b/src/main/java/com/zy/common/config/AspectConfig.java
index 3a72029..89794b4 100644
--- a/src/main/java/com/zy/common/config/AspectConfig.java
+++ b/src/main/java/com/zy/common/config/AspectConfig.java
@@ -63,7 +63,7 @@
             if (annotation != null && !Cools.isEmpty(annotation.memo())) {
                 saveErrLog(joinPoint, request, errorResponse, ex, annotation.memo());
             }
-            throw ex;
+            return errorResponse;
         } finally {
             long end = System.currentTimeMillis();
 //            log.info("璇锋眰鏃ュ織鐨勬墦鍗�");
@@ -122,7 +122,7 @@
 
     private Object buildErrorResponse(Throwable ex) {
         if (ex instanceof CoolException) {
-            return R.parse(ex.getMessage());
+            return R.error(ex.getMessage());
         }
         return R.error();
     }
diff --git a/src/main/java/com/zy/common/config/CoolExceptionHandler.java b/src/main/java/com/zy/common/config/CoolExceptionHandler.java
index 9a6fe2d..aacc45a 100644
--- a/src/main/java/com/zy/common/config/CoolExceptionHandler.java
+++ b/src/main/java/com/zy/common/config/CoolExceptionHandler.java
@@ -26,7 +26,7 @@
 
     @ExceptionHandler(CoolException.class)
     public R handleRRException(CoolException e) {
-        return R.parse(e.getMessage());
+        return R.error(e.getMessage());
     }
 
 }
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index fbfa65e..2e530de 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -38,8 +38,6 @@
     @Autowired
     private NavigateUtils navigateUtils;
     @Autowired
-    private CommonService commonService;
-    @Autowired
     private RedisUtil redisUtil;
 
     /**
@@ -139,12 +137,12 @@
             ioPri = param.getTaskPri().doubleValue();
         }
 
-        Integer sourceCrnNo = commonService.findCrnNoByLocNo(sourceLocMast.getLocNo());
+        Integer sourceCrnNo = this.findCrnNoByLocNo(sourceLocMast.getLocNo());
         if (sourceCrnNo == null) {
             throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
         }
 
-        Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
+        Integer crnNo = this.findCrnNoByLocNo(locMast.getLocNo());
         if (crnNo == null) {
             throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
         }
@@ -202,7 +200,7 @@
             ioPri = param.getTaskPri().doubleValue();
         }
 
-        Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
+        Integer crnNo = this.findCrnNoByLocNo(locMast.getLocNo());
         if (crnNo == null) {
             throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
         }
@@ -256,12 +254,12 @@
             ioPri = param.getTaskPri().doubleValue();
         }
 
-        Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
+        Integer crnNo = this.findCrnNoByLocNo(locMast.getLocNo());
         if (crnNo == null) {
             throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
         }
 
-        Integer sourceStationId = commonService.findOutStationId(crnNo, param.getStaNo());
+        Integer sourceStationId = this.findOutStationId(crnNo, param.getStaNo());
         if (sourceStationId == null) {
             throw new CoolException("鏈壘鍒拌緭閫佺洰鏍囩珯鐐瑰彲璧拌璺緞");
         }
diff --git a/src/main/java/com/zy/core/plugin/FakeProcess.java b/src/main/java/com/zy/core/plugin/FakeProcess.java
index f3233fa..bc1848a 100644
--- a/src/main/java/com/zy/core/plugin/FakeProcess.java
+++ b/src/main/java/com/zy/core/plugin/FakeProcess.java
@@ -582,6 +582,8 @@
                         StationCommand command = stationThread.getMoveCommand(9998, wrkMast.getSourceStaNo(), 0, 0);
                         MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
                     }
+                }else if(wrkMast.getWrkSts() == WrkStsType.LOC_MOVE_RUN.sts){
+                    updateWrkSts = WrkStsType.COMPLETE_LOC_MOVE.sts;
                 }else{
                     News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗗伐浣滅姸鎬佸紓甯搞�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", basCrnp.getCrnNo(), crnProtocol.getTaskNo());
                     continue;
diff --git a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
index 8cdbd4f..5bac05c 100644
--- a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -91,6 +91,9 @@
                         crnProtocol.setLastIo("O");
                     }
                 }
+
+                //搴撲綅绉昏浆
+                this.crnExecuteLocTransfer(basCrnp, crnThread);
             }
         }
     }
@@ -285,6 +288,58 @@
         }
     }
 
+    private synchronized void crnExecuteLocTransfer(BasCrnp basCrnp, CrnThread crnThread) {
+        CrnProtocol crnProtocol = crnThread.getStatus();
+        if(crnProtocol == null){
+            return;
+        }
+
+        Integer crnNo = basCrnp.getCrnNo();
+
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+                .eq("crn_no", crnNo)
+                .eq("wrk_sts", WrkStsType.NEW_LOC_MOVE.sts)
+        );
+
+        for (WrkMast wrkMast : wrkMasts) {
+            // 鑾峰彇婧愬簱浣嶄俊鎭�
+            LocMast sourceLocMast = locMastService.selectById(wrkMast.getSourceLocNo());
+            if (sourceLocMast == null) {
+                News.taskInfo(wrkMast.getWrkNo(), "婧愬簱浣�:{} 淇℃伅涓嶅瓨鍦�", wrkMast.getSourceLocNo());
+                continue;
+            }
+
+            if(!sourceLocMast.getLocSts().equals("R")){
+                News.taskInfo(wrkMast.getWrkNo(), "婧愬簱浣�:{} 鐘舵�佸紓甯革紝涓嶅睘浜庡嚭搴撻绾︾姸鎬�", wrkMast.getSourceLocNo());
+                continue;
+            }
+            
+            // 鑾峰彇搴撲綅淇℃伅
+            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+            if (locMast == null) {
+                News.taskInfo(wrkMast.getWrkNo(), "搴撲綅:{} 淇℃伅涓嶅瓨鍦�", wrkMast.getLocNo());
+                continue;
+            }
+
+            if (!locMast.getLocSts().equals("S")) {
+                News.taskInfo(wrkMast.getWrkNo(), "搴撲綅:{} 鐘舵�佸紓甯革紝涓嶅睘浜庡叆搴撻绾︾姸鎬�", wrkMast.getLocNo());
+                continue;
+            }
+
+            CrnCommand command = crnThread.getPickAndPutCommand(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), wrkMast.getWrkNo(), crnNo);
+
+            wrkMast.setWrkSts(WrkStsType.LOC_MOVE_RUN.sts);
+            wrkMast.setCrnNo(crnNo);
+            wrkMast.setSystemMsg("");
+            wrkMast.setIoTime(new Date());
+            if (wrkMastService.updateById(wrkMast)) {
+                MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, command));
+                News.info("鍫嗗灈鏈哄懡浠や笅鍙戞垚鍔燂紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnNo, JSON.toJSON(command));
+                return;
+            }
+        }
+    }
+
     //鍫嗗灈鏈轰换鍔℃墽琛屽畬鎴�
     public synchronized void crnIoExecuteFinish() {
         List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
@@ -320,6 +375,8 @@
                     updateWrkSts = WrkStsType.COMPLETE_INBOUND.sts;
                 }else if(wrkMast.getWrkSts() == WrkStsType.OUTBOUND_RUN.sts){
                     updateWrkSts = WrkStsType.OUTBOUND_RUN_COMPLETE.sts;
+                }else if(wrkMast.getWrkSts() == WrkStsType.LOC_MOVE_RUN.sts){
+                    updateWrkSts = WrkStsType.COMPLETE_LOC_MOVE.sts;
                 }else{
                     News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗗伐浣滅姸鎬佸紓甯搞�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", basCrnp.getCrnNo(), crnProtocol.getTaskNo());
                     continue;
diff --git a/src/main/resources/mapper/BasCrnpMapper.xml b/src/main/resources/mapper/BasCrnpMapper.xml
index 2d87eeb..8751e37 100644
--- a/src/main/resources/mapper/BasCrnpMapper.xml
+++ b/src/main/resources/mapper/BasCrnpMapper.xml
@@ -19,6 +19,7 @@
         <result column="out_station_list" property="outStationList" />
         <result column="max_in_task" property="maxInTask" />
         <result column="max_out_task" property="maxOutTask" />
+        <result column="deep_rows" property="deepRows" />
 
     </resultMap>
 
diff --git a/src/main/webapp/static/js/basCrnp/basCrnp.js b/src/main/webapp/static/js/basCrnp/basCrnp.js
index aab4dc6..d135083 100644
--- a/src/main/webapp/static/js/basCrnp/basCrnp.js
+++ b/src/main/webapp/static/js/basCrnp/basCrnp.js
@@ -28,6 +28,7 @@
             ,{field: 'inEnable', align: 'center',title: '鍙叆(checkBox)'}
             ,{field: 'outEnable', align: 'center',title: '鍙嚭(checkBox)'}
             ,{field: 'controlRows', align: 'center',title: '鎺у埗搴撲綅鎺掑彿'}
+            ,{field: 'deepRows', align: 'center',title: '娣卞簱浣嶆帓鍙�'}
             ,{field: 'inStationList', align: 'center',title: '鍏ュ簱绔欏垪琛�'}
             ,{field: 'outStationList', align: 'center',title: '鍑哄簱绔欏垪琛�'}
             ,{field: 'maxInTask', align: 'center',title: '鏈�澶у叆搴撲换鍔℃暟'}
diff --git a/src/main/webapp/views/basCrnp/basCrnp.html b/src/main/webapp/views/basCrnp/basCrnp.html
index 19609e2..6edd160 100644
--- a/src/main/webapp/views/basCrnp/basCrnp.html
+++ b/src/main/webapp/views/basCrnp/basCrnp.html
@@ -107,6 +107,12 @@
                     </div>
                 </div>
                 <div class="layui-form-item">
+                    <label class="layui-form-label">娣卞簱浣嶆帓鍙�: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="deepRows" placeholder="璇疯緭鍏ユ繁搴撲綅鎺掑彿">
+                    </div>
+                </div>
+                <div class="layui-form-item">
                     <label class="layui-form-label">鍏ュ簱绔欏垪琛�: </label>
                     <div class="layui-input-block">
                         <input class="layui-input" name="inStationList" placeholder="璇疯緭鍏ュ叆搴撶珯鍒楄〃">

--
Gitblit v1.9.1