From 2292af803eeb7ead884113665b57c9770a313828 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 23 四月 2024 11:31:42 +0800
Subject: [PATCH] #按钮

---
 src/main/java/com/zy/asrs/controller/RgvController.java |   72 +++++++++++++++++
 src/main/java/com/zy/core/model/RgvSlave.java           |    2 
 src/main/webapp/views/deviceOperate/rgvOperate.html     |  157 +++++++++++++++++++++++++++++---------
 3 files changed, 189 insertions(+), 42 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index b71f6c3..0af8021 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -104,17 +104,27 @@
 
     @GetMapping("/demo/status")
     public R demoStatus(Integer rgvNo){
+        Map<String,Object> map = new HashMap<>();
         if (Cools.isEmpty(rgvNo)){
-            return R.ok("X");
+            map.put("demo","X");
+            map.put("rgvMode",0);
+            return R.ok().add(map);
         }
         String demo = "X";
+        Integer rgvMode = 0;
 //        List<Map<String, Object>> res = new ArrayList<>();
         for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
-            if (rgvSlave.getId() == rgvNo){
+            SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvSlave.getId().equals(rgvNo)){
                demo = rgvSlave.getDemo()?"Y":"N";
+               rgvSlave.setRgvMode(rgvProtocol.getMode().intValue());
+               rgvMode = rgvProtocol.getMode().intValue();
             }
         }
-        return R.ok(demo);
+        map.put("demo",demo);
+        map.put("rgvMode",rgvMode);
+        return R.ok().add(map);
     }
 
     @GetMapping("/demo/status/true")
@@ -189,15 +199,18 @@
                        break;
                    case 12://鎵嬪姩
                        DB="5.3";
+                       rgvSlave.setRgvMode(3);
                        break;
                    case 13://鎵嬪姩瀹氫綅
                        DB="5.4";
                        break;
                    case 14://鍗曟満
                        DB="5.5";
+                       rgvSlave.setRgvMode(2);
                        break;
                    case 15://鑱旀満
                        DB="5.6";
+                       rgvSlave.setRgvMode(1);
                        break;
                    case 16://璐у弶瀹氫綅鍥炰腑
                        DB="5.7";
@@ -261,6 +274,59 @@
         return rgvControl(command)? R.ok(): R.error();
     }
 
+
+    @ManagerAuth(memo = "鍙�")
+    @PostMapping("/operator/single/step/one/put")
+    public R rgvFetchSingleStepOnePut(RgvOperatorParam param){
+        return rgvFetchSingleStepPut(param,1)?R.ok():R.error();
+    }
+    @ManagerAuth(memo = "鏀�")
+    @PostMapping("/operator/single/step/two/put")
+    public R rgvFetchSingleStepTwoPut(RgvOperatorParam param){
+        return rgvFetchSingleStepPut(param,2)?R.ok():R.error();
+    }
+    @ManagerAuth(memo = "X杩愯")
+    @PostMapping("/operator/single/step/three/put")
+    public R rgvFetchSingleStepThreePut(RgvOperatorParam param){
+        return rgvFetchSingleStepPut(param,3)?R.ok():R.error();
+    }
+
+    public boolean rgvFetchSingleStepPut(RgvOperatorParam param ,Integer type){
+        wrkNo++;
+        RgvCommand command = new RgvCommand();
+        RgvTaskModeType fetchPut = RgvTaskModeType.NONE;
+        switch (type){
+            case 1:
+                fetchPut = RgvTaskModeType.FETCH;
+                param.setSourceBay(0);
+                break;
+            case 2:
+                fetchPut = RgvTaskModeType.PUT;
+                param.setSourceRow(0);
+                break;
+            case 3:
+                fetchPut = RgvTaskModeType.X_MOVE;
+                break;
+            default:
+                return false;
+        }
+        command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
+        command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskNo1(wrkNo); // 宸ヤ綔鍙�
+        command.setTaskMode1(fetchPut); // 浠诲姟妯″紡: 鍙栨斁璐�
+        command.setSourceStaNo1(param.getSourceRow().shortValue()); // 婧愮珯
+        command.setDestinationStaNo1(param.getSourceBay().shortValue());  // 鐩爣绔�
+//        command.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
+//        command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
+//        command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
+//        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+//        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
+        command.setCommand((short) 0);
+
+        return rgvControl(command);
+    }
+
+
     @ManagerAuth(memo = "澶嶄綅")
     @PostMapping("/operator/reset")
     public R crnReset(RgvOperatorParam param){
diff --git a/src/main/java/com/zy/core/model/RgvSlave.java b/src/main/java/com/zy/core/model/RgvSlave.java
index 04db042..818a203 100644
--- a/src/main/java/com/zy/core/model/RgvSlave.java
+++ b/src/main/java/com/zy/core/model/RgvSlave.java
@@ -19,6 +19,8 @@
 
     private Boolean demo;
 
+    private Integer rgvMode;
+
     // RGV鍏ュ簱婧愮珯鐐�
     private List<RgvStn> rgvInSStn = new ArrayList<>();
 
diff --git a/src/main/webapp/views/deviceOperate/rgvOperate.html b/src/main/webapp/views/deviceOperate/rgvOperate.html
index dc6b8b2..d4699b7 100644
--- a/src/main/webapp/views/deviceOperate/rgvOperate.html
+++ b/src/main/webapp/views/deviceOperate/rgvOperate.html
@@ -38,7 +38,7 @@
 						<span>璁惧璋冭瘯</span>
 					</div>
 					<div>
-						<el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
+						<el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline"  v-if="rgvMode !== 2 && rgvMode !== 1 ">
 <!--							<el-form-item label="婧愮珯/婧愬簱浣�">-->
 <!--								<el-input v-model="formParam.sourceStaNo" placeholder="婧愮珯/婧愬簱浣�"></el-input>-->
 <!--							</el-form-item>-->
@@ -53,43 +53,68 @@
 							</el-form-item>
 						</el-form>
 
+						<div v-if="rgvMode === 2 ">
+							<el-form :model="formParamD" label-position="top" :inline="true" class="demo-form-inline">
+								<el-form-item label="璧峰绔�">
+									<el-input v-model="formParamD.sourceRow" placeholder="璧峰绔�"></el-input>
+								</el-form-item>
+								<el-form-item label="鐩爣绔�">
+									<el-input v-model="formParamD.sourceBay" placeholder="鐩爣绔�"></el-input>
+								</el-form-item>
+								<el-form-item label="鍚姩">
+									<el-button @click="initiateD(1)" type="warning">鍙栬揣</el-button>
+									<el-button @click="initiateD(2)" type="warning">鏀捐揣</el-button>
+									<el-button @click="initiateD(3)" type="warning">XY绉诲姩</el-button>
+								</el-form-item>
+							</el-form>
+						</div>
 						<div>
-							<el-button v-if="demo === 'N' " @click="demos('true')" type="info">婕旂ず</el-button>
-							<el-button v-if="demo === 'Y' " @click="demos('false')" type="info">鍙栨秷婕旂ず</el-button>
+							<el-button v-if="rgvMode === 0 " type="danger">鏈煡</el-button>
+							<el-button v-if="rgvMode === 3 " type="primary">鑱旀満</el-button>
+							<el-button v-if="rgvMode === 2 " type="primary">鍗曟満</el-button>
+							<el-button v-if="rgvMode === 1 " type="warning">鎵嬪姩</el-button>
 						</div>
-						<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
-							<el-button @click="rgvStatus(8)" type="primary">鍚姩</el-button>
-							<el-button @click="rgvStatus(9)" type="primary">鍋滄</el-button>
-							<el-button @click="rgvStatus(14)" type="primary">鍗曟満</el-button>
-							<el-button @click="rgvStatus(15)" type="primary">鑱旀満</el-button>
-							<el-button @click="rgvStatus(11)" type="primary">澶嶄綅鎸夐挳</el-button>
-						</div>
-						<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
-							<el-button @click="rgvStatus(7)" type="warning">鎶ヨ娑堥煶</el-button>
-							<el-button @click="rgvStatus(12)" type="warning">鎵嬪姩</el-button>
-							<el-button @click="rgvStatus(13)" type="warning">鎵嬪姩瀹氫綅</el-button>
-						</div>
-						<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
-							<el-button :style="" @click="rgvStatus(5)" type="danger">寮哄埗鍚姩</el-button>
-							<el-button @click="rgvStatus(10)" type="danger">鎬ュ仠</el-button>
-							<el-button @click="rgvStatus(16)" type="danger">璐у弶瀹氫綅鍥炰腑</el-button>
-						</div>
-						<div style="margin-top: 5px" v-if="demo === 'Y'">
-							<el-button  @click="staTova(2,1)" type="warning">杈撻��-缃崲1</el-button>
-							<el-button  @click="staTova(2,3)" type="warning">杈撻��-缃崲2</el-button>
-							<el-button  @click="staTova(2,5)" type="warning">杈撻��-缃崲3</el-button>
-							<el-button  @click="staTova(2,7)" type="warning">杈撻��-缃崲4</el-button>
-						</div>
-						<div style="margin-top: 5px" v-if="demo === 'Y'">
-							<el-button  @click="staTova(2,4)" type="warning">杈撻��-鐏岃1</el-button>
-							<el-button  @click="staTova(2,6)" type="warning">杈撻��-鐏岃2</el-button>
-							<el-button  @click="staTova(2,8)" type="warning">杈撻��-鐏岃3</el-button>
-						</div>
-						<div style="margin-top: 5px" v-if="demo === 'Y'">
-							<el-button  @click="staTova(1,10)" type="warning">缃崲1-鏀捐揣</el-button>
-							<el-button  @click="staTova(2,10)" type="warning">缃崲2-鏀捐揣</el-button>
-							<el-button  @click="staTova(3,10)" type="warning">缃崲3-鏀捐揣</el-button>
-							<el-button  @click="staTova(4,10)" type="warning">缃崲4-鏀捐揣</el-button>
+						<div  v-if="rgvMode !== 0 ">
+							<div>
+								<el-button v-if="demo === 'N' " @click="demos('true')" type="info">婕旂ず</el-button>
+								<el-button v-if="demo === 'Y' " @click="demos('false')" type="info">鍙栨秷婕旂ず</el-button>
+							</div>
+							<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
+								<el-button v-if="rgvMode !== 3 " @click="rgvStatus(15)" type="primary">鑱旀満</el-button>
+								<el-button v-if="rgvMode !== 2 " @click="rgvStatus(14)" type="primary">鍗曟満</el-button>
+								<el-button v-if="rgvMode !== 1 " @click="rgvStatus(12)" type="warning">鎵嬪姩</el-button>
+							</div>
+							<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
+								<el-button @click="rgvStatus(8)" type="primary">鍚姩</el-button>
+								<el-button @click="rgvStatus(9)" type="primary">鍋滄</el-button>
+								<el-button @click="rgvStatus(11)" type="primary">澶嶄綅鎸夐挳</el-button>
+							</div>
+							<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
+								<el-button @click="rgvStatus(7)" type="warning">鎶ヨ娑堥煶</el-button>
+								<el-button v-if="rgvMode === 1 " @click="rgvStatus(13)" type="warning">鎵嬪姩瀹氫綅</el-button>
+							</div>
+							<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
+								<el-button :style="" @click="rgvStatus(5)" type="danger">寮哄埗鍚姩</el-button>
+								<el-button @click="rgvStatus(10)" type="danger">鎬ュ仠</el-button>
+								<el-button @click="rgvStatus(16)" type="danger">璐у弶瀹氫綅鍥炰腑</el-button>
+							</div>
+							<div style="margin-top: 5px" v-if="demo === 'Y'">
+								<el-button  @click="staTova(2,1)" type="warning">杈撻��-缃崲1</el-button>
+								<el-button  @click="staTova(2,3)" type="warning">杈撻��-缃崲2</el-button>
+								<el-button  @click="staTova(2,5)" type="warning">杈撻��-缃崲3</el-button>
+								<el-button  @click="staTova(2,7)" type="warning">杈撻��-缃崲4</el-button>
+							</div>
+							<div style="margin-top: 5px" v-if="demo === 'Y'">
+								<el-button  @click="staTova(2,4)" type="warning">杈撻��-鐏岃1</el-button>
+								<el-button  @click="staTova(2,6)" type="warning">杈撻��-鐏岃2</el-button>
+								<el-button  @click="staTova(2,8)" type="warning">杈撻��-鐏岃3</el-button>
+							</div>
+							<div style="margin-top: 5px" v-if="demo === 'Y'">
+								<el-button  @click="staTova(1,10)" type="warning">缃崲1-鏀捐揣</el-button>
+								<el-button  @click="staTova(2,10)" type="warning">缃崲2-鏀捐揣</el-button>
+								<el-button  @click="staTova(3,10)" type="warning">缃崲3-鏀捐揣</el-button>
+								<el-button  @click="staTova(4,10)" type="warning">缃崲4-鏀捐揣</el-button>
+							</div>
 						</div>
 					</div>
 				</el-card>
@@ -159,6 +184,20 @@
 					barcodeType:null,
 					emptyContainer:null
 				},
+				formParamD: {
+					rgvNo: null,
+					sourceStaNo: null,
+					sourceRow: 1,
+					sourceBay: 0,
+					sourceLev: 1,
+					staNo: null,
+					row: 1,
+					bay: 0,
+					lev: 1,
+					barcode:null,
+					barcodeType:null,
+					emptyContainer:null
+				},
 				enableIn: false,
 				enableOut: false,
 				options:[
@@ -171,7 +210,8 @@
 						label:'鍚�'
 					}
 				],
-				demo: 'X'
+				demo: 'X',
+				rgvMode: 0
 			},
 			created() {
 				this.init()
@@ -260,8 +300,9 @@
 						contentType: 'application/json;charset=UTF-8',
 						method: 'get',
 						success: function (res) {
-							that.demo = res.msg
-
+							// console.log(res)
+							that.demo = res.data.demo
+							that.rgvMode = res.data.rgvMode
 						}
 					});
 				},
@@ -295,6 +336,44 @@
 						});
 					})
 				},
+				initiateD(method){
+					let urlS = "/rgv/operator/single/step/three/put";
+					if (method===1){
+						urlS = "/rgv/operator/single/step/one/put";
+					}else if (method === 2){
+						urlS = "/rgv/operator/single/step/two/put";
+					}else if (method === 3){
+						urlS = "/rgv/operator/single/step/three/put";
+					}
+					let that = this
+					that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{
+						confirmButtonText: '纭畾',
+						cancelButtonText: '鍙栨秷',
+						type: 'warning'
+					}).then(()=>{
+						$.ajax({
+							url: baseUrl + urlS,
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data: this.formParam,
+							method: 'POST',
+							success: function (res) {
+								if (res.code == 200) {
+									that.$message({
+										message: res.msg,
+										type: 'success'
+									});
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+					})
+				},
 				demos(method){
 					let that = this
 					that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{

--
Gitblit v1.9.1