From f5c0365702be7d445420a9961b1f2e64b621213b Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 04 十一月 2025 12:44:02 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/controller/BasCrnpController.java |  103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 102 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/BasCrnpController.java b/src/main/java/com/zy/asrs/controller/BasCrnpController.java
index 7cf65c1..5d7a53b 100644
--- a/src/main/java/com/zy/asrs/controller/BasCrnpController.java
+++ b/src/main/java/com/zy/asrs/controller/BasCrnpController.java
@@ -11,8 +11,16 @@
 import com.core.common.DateUtils;
 import com.core.common.R;
 import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.param.BasCrnpParam;
 import com.zy.asrs.service.BasCrnpService;
 import com.zy.common.web.BaseController;
+import com.zy.core.CrnThread;
+import com.zy.core.cache.CrnErrCache;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.CrnSlave;
+import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.properties.SlaveProperties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,6 +31,9 @@
 
     @Autowired
     private BasCrnpService basCrnpService;
+
+    @Autowired
+    private SlaveProperties slaveProperties;
 
     @RequestMapping(value = "/basCrnp/{id}/auth")
     @ManagerAuth
@@ -76,7 +87,7 @@
 	@ManagerAuth(memo = "鍫嗗灈鏈轰慨鏀�")
     public R update(BasCrnp basCrnp){
         if (Cools.isEmpty(basCrnp) || null==basCrnp.getCrnNo()){
-            return R.error();
+            return R.error("璇烽�夋嫨鍫嗗灈鏈哄啀鎿嶄綔").add("璇烽�夋嫨鍫嗗灈鏈哄啀鎿嶄綔");
         }
         basCrnp.setModiUser(getUserId());
         basCrnp.setModiTime(new Date());
@@ -84,6 +95,96 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/basCrnp/update/demo/auth")
+    @ManagerAuth(memo = "鍫嗗灈鏈轰慨鏀笵emo")
+    public R updateDemo(BasCrnpParam basCrnpParam){
+        if (Cools.isEmpty(basCrnpParam) || null==basCrnpParam.getCrnNo()){
+            return R.error("璇烽�夋嫨鍫嗗灈鏈哄啀鎿嶄綔").add("璇烽�夋嫨鍫嗗灈鏈哄啀鎿嶄綔");
+        }
+        BasCrnp basCrnp = basCrnpService.selectById(basCrnpParam.getCrnNo());
+        if (basCrnp == null) {
+            return R.error("鍫嗗灈鏈哄皻鏈湪鏁版嵁搴撹繘琛岀淮鎶わ紒").add("鍫嗗灈鏈哄皻鏈湪鏁版嵁搴撹繘琛岀淮鎶�");
+        }
+        if (basCrnpParam.getHpMk().equals("Y")){
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
+            if (crnThread == null) {
+                return R.error();
+            }
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                return R.error();
+            }
+
+
+
+            if (Cools.isEmpty(basCrnpParam.getLocMastDemoCount()) || basCrnpParam.getLocMastDemoCount()<1){
+                return R.error("璇疯緭鍏ユ祴璇曞簱浣嶆暟閲�").add("璇疯緭鍏ユ祴璇曞簱浣嶆暟閲�");
+            }
+            if (Cools.isEmpty(basCrnpParam.getLocMastDemo())){
+                return R.error("璇疯緭鍏ユ祴璇曞簱浣嶅垪琛�").add("璇疯緭鍏ユ祴璇曞簱浣嶅垪琛�");
+            } else {
+                String[] split = basCrnpParam.getLocMastDemo().split(";");
+                if (split.length!=basCrnpParam.getLocMastDemoCount()){
+                    return R.error("杈撳叆娴嬭瘯搴撲綅鍒楄〃鏁伴噺涓嶅尮閰�").add("杈撳叆娴嬭瘯搴撲綅鍒楄〃鏁伴噺涓嶅尮閰�");
+                }
+                basCrnpParam.setLocMastDemoList(new ArrayList<>(Arrays.asList(split)));
+            }
+
+            if (Cools.isEmpty(basCrnpParam.getStaOutDemo())){
+                return R.error("璇疯緭鍏ユ祴璇曞嚭搴撶珯").add("璇疯緭鍏ユ祴璇曞嚭搴撶珯");
+            } else {
+                CrnSlave crn = new CrnSlave();
+                for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+                    if (crnSlave.getId().equals(crnProtocol.getCrnNo())){
+                        crn = new CrnSlave(crnSlave);
+                        break;
+                    }
+                }
+                if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
+                    return R.error("鍫嗗灈鏈哄贩閬撳彿寮傚父").add("鍫嗗灈鏈哄贩閬撳彿寮傚父");
+                }
+
+                if (!crn.getId().equals(crnProtocol.getLaneNo())) {
+                    for (CrnSlave crnOther : slaveProperties.getCrn()) {
+                        if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
+                            crn.updateCrnInStn(crnOther);
+                        }
+                    }
+                }
+                boolean sign = false;
+                for (CrnSlave.CrnStn crnStnInt : crn.getCrnInStn()){
+                    if (crnStnInt.getStaNo().equals(basCrnpParam.getStaIntDemo())) {
+                        sign = true;
+                        break;
+                    }
+                }
+                if (!sign){
+                    return R.error("鍏ュ簱绔欎笉鍦ㄥ爢鍨涙満宸烽亾").add("鍏ュ簱绔欎笉鍦ㄥ爢鍨涙満宸烽亾");
+                }
+                sign = false;
+                for (CrnSlave.CrnStn crnStnOut : crn.getCrnOutStn()){
+                    if (crnStnOut.getStaNo().equals(basCrnpParam.getStaOutDemo())) {
+                        sign = true;
+                        break;
+                    }
+                }
+                if (!sign){
+                    return R.error("鍑哄簱绔欎笉鍦ㄥ爢鍨涙満宸烽亾").add("鍑哄簱绔欎笉鍦ㄥ爢鍨涙満宸烽亾");
+                }
+            }
+            crnProtocol.setLocMastDemoCount(basCrnpParam.getLocMastDemoCount());
+            crnProtocol.setLocMastDemoList(basCrnpParam.getLocMastDemoList());
+            crnProtocol.setStaOutDemo(basCrnpParam.getStaOutDemo());
+            crnProtocol.setStaIntDemo(basCrnpParam.getStaIntDemo());
+        }
+        basCrnp.setHpMk(basCrnpParam.getHpMk());
+        basCrnp.setModiUser(getUserId());
+        basCrnp.setModiTime(new Date());
+        basCrnpService.updateById(basCrnp);
+        return R.ok();
+    }
+
     @RequestMapping(value = "/basCrnp/delete/auth")
     @ManagerAuth(memo = "鍫嗗灈鏈哄垹闄�")
     public R delete(@RequestParam String param){

--
Gitblit v1.9.1