From 6cde4cd8c02521646e858699cd49be936648e8f8 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 03 十一月 2025 21:05:41 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java    |  102 ++++++++++++++++++++
 src/main/webapp/views/deviceOperate/crnOperate.html         |   72 +++++++++++++-
 src/main/java/com/zy/core/model/protocol/CrnProtocol.java   |    2 
 src/main/java/com/zy/asrs/controller/BasCrnpController.java |  101 ++++++++++++++++++++
 4 files changed, 270 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/BasCrnpController.java b/src/main/java/com/zy/asrs/controller/BasCrnpController.java
index 55fb00f..c9507fa 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
@@ -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.setLocMastDemo(String.join(";", 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){
diff --git a/src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java b/src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java
new file mode 100644
index 0000000..122bf5f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java
@@ -0,0 +1,102 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+
+@Data
+public class BasCrnpParam implements Serializable {
+
+    /**
+     * 缂栧彿
+     */
+    private Integer crnNo;
+
+    /**
+     * 鍙叆
+     */
+    private String inEnable;
+
+    /**
+     * 鍙嚭
+     */
+    private String outEnable;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer crnSts;
+
+    /**
+     * 宸ヤ綔鍙�
+     */
+    private Integer wrkNo;
+
+    /**
+     * 寮傚父鐮�
+     */
+    private Long crnErr;
+
+    /**
+     * 婧愬簱浣�
+     */
+    private String frmLocno;
+
+    /**
+     * 婧愮珯
+     */
+    private Integer frmSta;
+
+    /**
+     * 鐩爣绔�
+     */
+    private Integer toSta;
+
+    /**
+     * 鐩爣搴撲綅
+     */
+    private String toLocno;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    private Long appeUser;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date appeTime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    private Long modiUser;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    private Date modiTime;
+
+    private String hpMk;
+
+    private String retrieveMk;
+
+    private String ctlHp;
+
+    private String ctlRest;
+
+    private String empIn;
+
+    private Integer tankQty;
+
+    private Integer tankQty1;
+
+
+    private Integer locMastDemoCount;//娴嬭瘯搴撲綅鏁伴噺
+    private String locMastDemo;//娴嬭瘯搴撲綅鏁伴噺
+    private ArrayList<String> locMastDemoList;//娴嬭瘯搴撲綅鍒楄〃
+    private Integer staOutDemo;//娴嬭瘯搴撲綅鍑哄簱绔�
+    private Integer staIntDemo;//娴嬭瘯搴撲綅鍏ュ簱绔�
+
+}
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index b63211c..28b5150 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -202,7 +202,7 @@
     public String errCrn;
 
 
-    public String locMastDemoCount;//娴嬭瘯搴撲綅鏁伴噺
+    public Integer locMastDemoCount;//娴嬭瘯搴撲綅鏁伴噺
     public ArrayList<String> locMastDemoList;//娴嬭瘯搴撲綅鍒楄〃
     public Integer staOutDemo;//娴嬭瘯搴撲綅鍑哄簱绔�
     public Integer staIntDemo;//娴嬭瘯搴撲綅鍏ュ簱绔�
diff --git a/src/main/webapp/views/deviceOperate/crnOperate.html b/src/main/webapp/views/deviceOperate/crnOperate.html
index 15ed4b0..adf4e71 100644
--- a/src/main/webapp/views/deviceOperate/crnOperate.html
+++ b/src/main/webapp/views/deviceOperate/crnOperate.html
@@ -70,6 +70,20 @@
 								<el-input v-model="formParam.lev" placeholder="灞�"></el-input>
 							</el-form-item>
 						</el-form>
+						<el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
+							<el-form-item label="娴嬭瘯搴撲綅鏁伴噺">
+								<el-input v-model="formParam.locMastDemoCount" placeholder="娴嬭瘯搴撲綅鏁伴噺"></el-input>
+							</el-form-item>
+							<el-form-item label="娴嬭瘯搴撲綅">
+								<el-input v-model="formParam.locMastDemo" placeholder="娴嬭瘯搴撲綅 鍒嗛殧绗�;"></el-input>
+							</el-form-item>
+							<el-form-item label="鐩爣绔�/鐩爣搴撲綅">
+								<el-input v-model="formParam.staOutDemo" placeholder="鍫嗗灈鏈烘斁璐х珯鐐�"></el-input>
+							</el-form-item>
+							<el-form-item label="鐩爣绔�/鐩爣搴撲綅">
+								<el-input v-model="formParam.staIntDemo" placeholder="鍫嗗灈鏈哄彇璐х珯鐐�"></el-input>
+							</el-form-item>
+						</el-form>
 						<el-form label-position="top" :inline="true" class="demo-form-inline">
 							<el-form-item label="">
 								<el-checkbox @change="updateEnableInOut('in')" v-model="enableIn">鍙叆</el-checkbox>
@@ -78,7 +92,7 @@
 								<el-checkbox @change="updateEnableInOut('out')" v-model="enableOut">鍙嚭</el-checkbox>
 							</el-form-item>
 							<el-form-item label="">
-								<el-checkbox @change="updateEnableInOut('demo')" v-model="hpMkDemo">婕旂ず</el-checkbox>
+								<el-checkbox @change="updateDemo('demo')" v-model="hpMkDemo">婕旂ず</el-checkbox>
 							</el-form-item>
 						</el-form>
 						<div>
@@ -201,6 +215,10 @@
 					sourceBay: 0,
 					sourceLev: 1,
 					staNo: null,
+					locMastDemoCount: 3,
+					locMastDemo: null,
+					staOutDemo: null,
+					staIntDemo: null,
 					row: 1,
 					bay: 0,
 					lev: 1
@@ -288,11 +306,6 @@
 							inEnable: this.enableIn ? "Y" : "N",
 							crnNo: this.formParam.crnNo
 						}
-					} else if (type == "demo") {
-						param = {
-							hpMk: this.hpMkDemo ? "Y" : "N",
-							crnNo: this.formParam.crnNo
-						}
 					} else {
 						param = {
 							outEnable: this.enableOut ? "Y" : "N",
@@ -321,6 +334,53 @@
 							}
 						}
 					});
+				},
+				updateDemo(type) {
+					let that = this
+					let param = {}
+					that.$confirm('灏嗗惎鍔ㄦ紨绀烘ā寮忥紝鏄惁缁х画','鎻愮ず',{
+						confirmButtonText: '纭畾',
+						cancelButtonText: '鍙栨秷',
+						type: 'warning'
+					}).then(()=>{
+						if (type == "demo") {
+							param = {
+								hpMk: this.hpMkDemo ? "Y" : "N",
+								staOutDemo: this.formParam.staOutDemo,
+								staIntDemo: this.formParam.staIntDemo,
+								locMastDemo: this.formParam.locMastDemo,
+								locMastDemoCount: this.formParam.locMastDemoCount,
+								crnNo: this.formParam.crnNo
+							}
+						} else {
+							param = {
+								crnNo: this.formParam.crnNo
+							}
+						}
+
+
+						$.ajax({
+							url: baseUrl + "/basCrnp/update/demo/auth",
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data: param,
+							method: 'POST',
+							success: function (res) {
+								if (res.code == 200) {
+									that.$message({
+										message: res.msg,
+										type: 'success'
+									});
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+					})
 				}
 			}
 		})

--
Gitblit v1.9.1