From 9041bf0365d5ef7f9215543c6bc2e51375802943 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 12 九月 2023 18:33:30 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 CanadaMes-ui/src/views/home/index.vue                                                |   62 +-
 CanadaMes-ui/src/views/Electrical/Sign.vue                                           |  225 ++++----
 springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java    |   70 ++
 springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java |   29 
 CanadaMes-ui/src/views/Electrical/State.vue                                          |   38 
 CanadaMes-ui/src/views/Electrical/Parameter.vue                                      |  114 ++--
 springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java         |  138 ++--
 springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java          |   37 
 CanadaMes-ui/src/views/user/index.vue                                                |  236 ++++-----
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java          |   39 
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java          |   12 
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java  |   16 
 CanadaMes-ui/src/lang/locales/zh-CN.json                                             |    7 
 springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java         |   16 
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java     |    2 
 CanadaMes-ui/src/views/Electrical/alarm.vue                                          |   17 
 CanadaMes-ui/src/api/home.js                                                         |    4 
 CanadaMes-ui/src/views/Electrical/Action.vue                                         |  410 ++++++++--------
 CanadaMes-ui/src/lang/locales/en-US.json                                             |    3 
 19 files changed, 768 insertions(+), 707 deletions(-)

diff --git a/CanadaMes-ui/src/api/home.js b/CanadaMes-ui/src/api/home.js
index 224c6c9..fa70d72 100644
--- a/CanadaMes-ui/src/api/home.js
+++ b/CanadaMes-ui/src/api/home.js
@@ -43,9 +43,9 @@
     })
 }
 
-export function UpdateTask(types,shelfrack) {
+export function UpdateTask(types,glassid,shelfrack) {
     return request({
-        url: '/home/UpdateTask?types=' + types + '&shelfrack='+shelfrack,
+        url: '/home/UpdateTask?types=' + types + '&glassid='+glassid+'&shelfrack='+shelfrack,
         method: 'get',
         data :""
     })
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index 5942770..ad35a8e 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -170,5 +170,6 @@
   "Sign": "Sign",
   "State": "State",
   "Alarm": "Alarm",
-  "Distribute": "Distribute"
+  "Distribute": "Distribute",
+  "Search": "Search"
 }
\ No newline at end of file
diff --git a/CanadaMes-ui/src/lang/locales/zh-CN.json b/CanadaMes-ui/src/lang/locales/zh-CN.json
index d1971e8..30c0b8c 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -35,7 +35,6 @@
   "exit": "閫�鍑�",
   "changePassword": "淇敼瀵嗙爜",
   "resetPassword": "閲嶇疆瀵嗙爜",
-
   "home": "涓婚〉",
   "role": "瑙掕壊",
   "langRoleManagement": "瑙掕壊绠$悊",
@@ -171,6 +170,6 @@
   "Sign": "IO鐘舵��",
   "State": "State",
   "Alarm": "鎶ヨ淇℃伅",
-  "Distribute": "涓嬪彂"
-}
-
+  "Distribute": "涓嬪彂",
+  "Search": "鎼滅储"
+}
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Action.vue b/CanadaMes-ui/src/views/Electrical/Action.vue
index bf97da3..b53055a 100644
--- a/CanadaMes-ui/src/views/Electrical/Action.vue
+++ b/CanadaMes-ui/src/views/Electrical/Action.vue
@@ -1,206 +1,206 @@
-<template>
-  <div class="app">
-    <!--闈㈠寘灞戝鑸尯鍩�-->
-    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
-      <el-button type="text">Electrical</el-button>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text">Parameter</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text">Action</router-link>
-      <router-link to="/Electrical/Sign" tag="el-button" type="text">Sign</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
-      <router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
-    </el-breadcrumb>
-    <div>Action</div>
-    <el-form label-width="100px" style="display: flex;flex-wrap: wrap;" :model="{ messagepack }">
-      <!-- <div class="kuai_div" v-for="item in record.xyData" :key="item.value">
-        <el-input v-model="item.name" style="width: 240px;" class="in_mc"></el-input>
-        <el-switch v-model="item.value" active-value="0" inactive-value="1"></el-switch>
-      </div> -->
-
-      <div class="kuai_div" v-for="(item, index) in record.xyData" :key="index">
-        <el-input v-model="item.name" style="width: 240px;" class="in_mc" readonly></el-input>
-        <el-switch v-model="item.value" active-value="1" inactive-value="0" @change="send()"></el-switch>
-      </div>
-    </el-form>
-
-
-  </div>
-</template>
-
-<script >
-import LanguageMixin from '../../lang/LanguageMixin'
-let socket;
-export default {
-  name: "action",
-  mixins: [LanguageMixin],
-  data () {
-    return {
-      record: {
-        params: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-        canshu: [
-          'D01 VFD conveyor',
-          'D02 VFD conveyor',
-          'D03 VFD conveyor',
-          'D04 VFD conveyor',
-          'D05 VFD conveyor',
-          'D06 VFD conveyor',
-          'A01 VFD conveyor',
-          'A02 VFD conveyor',
-          'B01 VFD conveyor',
-          'B02 VFD conveyor',
-          'A01 SERVE TURN JOG+',
-          'A02 SERVE TURN JOG-',
-          'A01 SERVE TRAVEL JOG+',
-          'A02 SERVE TRAVEL JOG-',
-          'B01 SERVE TRAVEL JOG+',
-          'B02 SERVE TRAVEL JOG-',
-          'A01 SERVE TURN POS',
-          'A02 SERVE TURN POS',
-          'A01 SERVE TRAVEL POS',
-          'A02 SERVE TRAVEL POS',
-          'B01 SERVE TRAVEL POS',
-          'B02 SERVE TRAVEL POS',
-          'B01 YV TURN',
-          'B01 YV UP DOWN',
-          'B02 YV TURN',
-          'B02 YV UP DOWN',
-        ],
-        xyData: [
-          { name: 'D01 VFD conveyor', value: "0" },
-          { name: 'D02 VFD conveyor', value: "0" },
-          { name: 'D03 VFD conveyor', value: "1" },
-          { name: 'D04 VFD conveyor', value: "0" },
-          { name: 'D05 VFD conveyor', value: "0" },
-          { name: 'D06 VFD conveyor', value: "0" },
-          { name: 'A01 VFD conveyor', value: "0" },
-          { name: 'A02 VFD conveyor', value: "0" },
-          { name: 'B01 VFD conveyor', value: "0" },
-          { name: 'B02 VFD conveyor', value: "0" },
-          { name: 'A01 SERVE TURN JOG+', value: "0" },
-          { name: 'A02 SERVE TURN JOG-', value: "0" },
-          { name: 'A01 SERVE TRAVEL JOG+', value: "0" },
-          { name: 'A02 SERVE TRAVEL JOG-', value: "0" },
-          { name: 'B01 SERVE TRAVEL JOG+', value: "0" },
-          { name: 'B02 SERVE TRAVEL JOG-', value: "0" },
-          { name: 'A01 SERVE TURN POS', value: "0" },
-          { name: 'A02 SERVE TURN POS', value: "0" },
-          { name: 'A01 SERVE TRAVEL POS', value: "0" },
-          { name: 'A02 SERVE TRAVEL POS', value: "0" },
-          { name: 'B01 SERVE TRAVEL POS', value: "0" },
-          { name: 'B02 SERVE TRAVEL POS', value: "0" },
-          { name: 'B01 YV TURN', value: "0" },
-          { name: 'B01 YV UP DOWN', value: "0" },
-          { name: 'B02 YV TURN', value: "0" },
-          { name: 'B02 YV UP DOWN', value: "0" },
-        ]
-        ,
-      },
-
-
-      messagepack: {
-        data: { taskname: "" }
-      },
-      queryInfo: {
-        data: "1",
-        pageSize: 10
-      },
-
-    }
-  },
-  created () {
-    this.init();
-  },
-  methods: {
-    init () {
-      let viewname = "action";
-
-      if (typeof (WebSocket) == "undefined") {
-        console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
-      } else {
-        //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
-
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
-        if (socket != null) {
-          socket.close();
-          socket = null;
-        }
-        // 寮�鍚竴涓獁ebsocket鏈嶅姟
-        socket = new WebSocket(socketUrl);
-        //鎵撳紑浜嬩欢
-        socket.onopen = function () {
-          console.log("websocket宸叉墦寮�");
-        };
-        //  娴忚鍣ㄧ鏀舵秷鎭紝鑾峰緱浠庢湇鍔$鍙戦�佽繃鏉ョ殑鏂囨湰娑堟伅
-        socket.onmessage = (msg) => {
-          if (!msg.data) {
-            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
-          }
-
-          let obj = JSON.parse(msg.data);
-          this.record.params[0] = obj.params[0];
-
-          for (let a = 0; a <= this.record.params[0].length - 1; a++) {
-            if (!this.record.xyData[a]) {
-              this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a].toString() };
-            } else {
-              this.record.xyData[a].value = this.record.params[0][a].toString();
-            }
-          }
-
-          console.log(this.record.xyData);
-          this.$forceUpdate();
-        };
-
-        //鍏抽棴浜嬩欢
-        socket.onclose = function () {
-          console.log("websocket宸插叧闂�");
-        };
-        //鍙戠敓浜嗛敊璇簨浠�
-        socket.onerror = function () {
-          console.log("websocket鍙戠敓浜嗛敊璇�");
-        }
-      }
-
-    },
-    send () {
-      this.messagepack.data = this.record.xyData.map(item => parseInt(item.value)); // 杞崲涓烘暣鏁版暟缁�
-      console.log(this.messagepack);
-      socket?.send(JSON.stringify(this.messagepack));
-    }
-
-  }
-
-}
-
-
-
-
-
-</script>
-
-
-<style>
-.kuai_div {
-  /* width: 30%; */
-  margin-bottom: 30px;
-}
-
-.el-input {
-  border: none;
-
-
-
-
-
-}
-
-.el-input__inner {
-  border: 1 solid black;
-}
-
-.in_mc {}
-
-.el-input__inner {
-  border: none;
-}
+<template>
+  <div class="app">
+    <!--闈㈠寘灞戝鑸尯鍩�-->
+    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
+      <router-link to="/home" tag="el-button" type="text">{{ $t('langHome') }}</router-link>
+      <el-button type="text">Electrical</el-button>
+      <router-link to="/Electrical/Parameter" tag="el-button" type="text">Parameter</router-link>
+      <router-link to="/Electrical/Action" tag="el-button" type="text">Action</router-link>
+      <router-link to="/Electrical/Sign" tag="el-button" type="text">Sign</router-link>
+      <router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
+      <router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
+    </el-breadcrumb>
+    <div>Action</div>
+    <el-form label-width="100px" style="display: flex;flex-wrap: wrap;" :model="{ messagepack }">
+      <!-- <div class="kuai_div" v-for="item in record.xyData" :key="item.value">
+        <el-input v-model="item.name" style="width: 240px;" class="in_mc"></el-input>
+        <el-switch v-model="item.value" active-value="0" inactive-value="1"></el-switch>
+      </div> -->
+
+      <div class="kuai_div" v-for="(item, index) in record.xyData" :key="index">
+        <el-input v-model="item.name" style="width: 240px;" class="in_mc" readonly></el-input>
+        <el-switch v-model="item.value" active-value="1" inactive-value="0" @change="send()"></el-switch>
+      </div>
+    </el-form>
+
+
+  </div>
+</template>
+ 
+<script >
+import LanguageMixin from '../../lang/LanguageMixin'
+let socket;
+export default {
+  name: "action",
+  mixins: [LanguageMixin],
+  data () {
+    return {
+      record: {
+        params: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        canshu: [
+          'D01 VFD conveyor',
+          'D02 VFD conveyor',
+          'D03 VFD conveyor',
+          'D04 VFD conveyor',
+          'D05 VFD conveyor',
+          'D06 VFD conveyor',
+          'A01 VFD conveyor',
+          'A02 VFD conveyor',
+          'B01 VFD conveyor',
+          'B02 VFD conveyor',
+          'A01 SERVE TURN JOG+',
+          'A02 SERVE TURN JOG-',
+          'A01 SERVE TRAVEL JOG+',
+          'A02 SERVE TRAVEL JOG-',
+          'B01 SERVE TRAVEL JOG+',
+          'B02 SERVE TRAVEL JOG-',
+          'A01 SERVE TURN POS',
+          'A02 SERVE TURN POS',
+          'A01 SERVE TRAVEL POS',
+          'A02 SERVE TRAVEL POS',
+          'B01 SERVE TRAVEL POS',
+          'B02 SERVE TRAVEL POS',
+          'B01 YV TURN',
+          'B01 YV UP DOWN',
+          'B02 YV TURN',
+          'B02 YV UP DOWN',
+        ],
+        xyData: [
+          { name: 'D01 VFD conveyor', value: "0" },
+          { name: 'D02 VFD conveyor', value: "0" },
+          { name: 'D03 VFD conveyor', value: "1" },
+          { name: 'D04 VFD conveyor', value: "0" },
+          { name: 'D05 VFD conveyor', value: "0" },
+          { name: 'D06 VFD conveyor', value: "0" },
+          { name: 'A01 VFD conveyor', value: "0" },
+          { name: 'A02 VFD conveyor', value: "0" },
+          { name: 'B01 VFD conveyor', value: "0" },
+          { name: 'B02 VFD conveyor', value: "0" },
+          { name: 'A01 SERVE TURN JOG+', value: "0" },
+          { name: 'A02 SERVE TURN JOG-', value: "0" },
+          { name: 'A01 SERVE TRAVEL JOG+', value: "0" },
+          { name: 'A02 SERVE TRAVEL JOG-', value: "0" },
+          { name: 'B01 SERVE TRAVEL JOG+', value: "0" },
+          { name: 'B02 SERVE TRAVEL JOG-', value: "0" },
+          { name: 'A01 SERVE TURN POS', value: "0" },
+          { name: 'A02 SERVE TURN POS', value: "0" },
+          { name: 'A01 SERVE TRAVEL POS', value: "0" },
+          { name: 'A02 SERVE TRAVEL POS', value: "0" },
+          { name: 'B01 SERVE TRAVEL POS', value: "0" },
+          { name: 'B02 SERVE TRAVEL POS', value: "0" },
+          { name: 'B01 YV TURN', value: "0" },
+          { name: 'B01 YV UP DOWN', value: "0" },
+          { name: 'B02 YV TURN', value: "0" },
+          { name: 'B02 YV UP DOWN', value: "0" },
+        ]
+        ,
+      },
+
+
+      messagepack: {
+        data: { taskname: "" }
+      },
+      queryInfo: {
+        data: "1",
+        pageSize: 10
+      },
+
+    }
+  },
+  created () {
+    this.init();
+  },
+  methods: {
+    init () {
+      let viewname = "action";
+
+      if (typeof (WebSocket) == "undefined") {
+        console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
+      } else {
+        //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
+
+        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        if (socket != null) {
+          socket.close();
+          socket = null;
+        }
+        // 寮�鍚竴涓獁ebsocket鏈嶅姟
+        socket = new WebSocket(socketUrl);
+        //鎵撳紑浜嬩欢
+        socket.onopen = function () {
+          console.log("websocket宸叉墦寮�");
+        };
+        //  娴忚鍣ㄧ鏀舵秷鎭紝鑾峰緱浠庢湇鍔$鍙戦�佽繃鏉ョ殑鏂囨湰娑堟伅
+        socket.onmessage = (msg) => {
+          if (!msg.data) {
+            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+          }
+
+          let obj = JSON.parse(msg.data);
+          this.record.params[0] = obj.params[0];
+
+          for (let a = 0; a <= this.record.params[0].length - 1; a++) {
+            if (!this.record.xyData[a]) {
+              this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a].toString() };
+            } else {
+              this.record.xyData[a].value = this.record.params[0][a].toString();
+            }
+          }
+
+          // console.log(this.record.xyData);
+          this.$forceUpdate();
+        };
+
+        //鍏抽棴浜嬩欢
+        socket.onclose = function () {
+          console.log("websocket宸插叧闂�");
+        };
+        //鍙戠敓浜嗛敊璇簨浠�
+        socket.onerror = function () {
+          console.log("websocket鍙戠敓浜嗛敊璇�");
+        }
+      }
+
+    },
+    send () {
+      this.messagepack.data = this.record.xyData.map(item => parseInt(item.value)); // 杞崲涓烘暣鏁版暟缁�
+      //console.log(this.messagepack);
+      socket?.send(JSON.stringify(this.messagepack));
+    }
+
+  }
+
+}
+
+
+
+
+
+</script>
+ 
+ 
+<style>
+.kuai_div {
+  /* width: 30%; */
+  margin-bottom: 30px;
+}
+
+.el-input {
+  border: none;
+
+
+
+
+
+}
+
+.el-input__inner {
+  border: 1 solid black;
+}
+
+.in_mc {}
+
+.el-input__inner {
+  border: none;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter.vue b/CanadaMes-ui/src/views/Electrical/Parameter.vue
index d30361f..8dfa62b 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter.vue
@@ -10,20 +10,21 @@
       <router-link to="/Electrical/State" tag="el-button" type="text">State</router-link>
       <router-link to="/Electrical/alarm" tag="el-button" type="text">Alarm</router-link>
     </el-breadcrumb>
-    
+
     <div>Parameter</div>
-  
+
     <el-form label-width="100px" style="display: flex; flex-wrap: wrap;" :model="messagepack.data">
       <div id="btn_div">
-        <el-button type="primary" @click="send()" id="xiafa"  :disabled="isButtonDisabled">涓嬪彂鍙傛暟</el-button>
-       
+        <el-button type="primary" @click="send()" id="xiafa" :disabled="isButtonDisabled">涓嬪彂鍙傛暟</el-button>
+
       </div>
       <div class="kuai_div" v-for="(item, index) in record.xyData" :key="index">
-  <el-input style="width: 280px; border:none;" class="in_mc" v-model="item.name" readonly></el-input> 
-  <span style="margin-right: 5px; width: 50px;">{{ item.value }}</span>
-  <span style="margin-right: 5px; font-size: 14px;">|</span>
-  <input v-model="item.value2" type="number" style="width: 30px; margin-right: 5px; margin-top: 5px; font-size: 16px;">
-</div>
+        <el-input style="width: 280px; border:none;" class="in_mc" v-model="item.name" readonly></el-input>
+        <span style="margin-right: 5px; width: 50px;">{{ item.value }}</span>
+        <span style="margin-right: 5px; font-size: 14px;">|</span>
+        <input v-model="item.value2" type="number"
+          style="width: 30px; margin-right: 5px; margin-top: 5px; font-size: 16px;">
+      </div>
     </el-form>
   </div>
 </template>
@@ -33,14 +34,14 @@
 
 export default {
   name: "Parameter",
-  data() {
+  data () {
     return {
       record: {
         params: [100, 200, 10, 10, 10, 10],
         xyData: [
           { name: "conveyor Velocity(Auto FAST)", value: 0, value2: 0 },
           { name: "conveyor Velocity(Auto SLOW)", value: 0, value2: 0 },
-          { name: "conveyor Velocity(Manual)", value: 0 ,value2: 0 },
+          { name: "conveyor Velocity(Manual)", value: 0, value2: 0 },
           { name: "A01 A02 TURN JOG Velocity", value: 0, value2: 0 },
           { name: "A01 A02 TRAVEL JOG Velocity", value: 0, value2: 0 },
           { name: "B01 B02 TRAVEL JOG Velocity", value: 0, value2: 0 },
@@ -62,78 +63,78 @@
       }
     };
   },
-  
- 
-  created() {
+
+
+  created () {
     this.initWebSocket();
     this.isButtonDisabled = true;
   },
   methods: {
-    initWebSocket() {
+    initWebSocket () {
       let viewname = "Parameter";
-  
+
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
         let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
-  
+
         if (socket != null) {
           socket.close();
           socket = null;
         }
-  
+
         // 寮�鍚竴涓獁ebsocket鏈嶅姟
         socket = new WebSocket(socketUrl);
-  
+
         // 鎵撳紑浜嬩欢
         socket.onopen = function () {
           console.log("websocket宸叉墦寮�");
         };
-  
+
         // 鏀跺埌娑堟伅
         socket.onmessage = (msg) => {
-  if (!msg.data) {
-    return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
-  }
+          if (!msg.data) {
+            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+          }
 
-  let obj = JSON.parse(msg.data);
-  this.record.params[0] = obj.params[0];
-  this.record.state = obj.state[0];
+          let obj = JSON.parse(msg.data);
+          this.record.params[0] = obj.params[0];
+          this.record.state = obj.state[0];
 
-  let isButtonDisabled = this.record.state.includes(1); 
-  // 鍒ゆ柇state涓槸鍚﹀瓨鍦�1
-  console.log(isButtonDisabled)
-  this.isButtonDisabled = isButtonDisabled; // 灏嗗垽鏂粨鏋滀繚瀛樺埌鍙橀噺isButtonDisabled涓�
+          let isButtonDisabled = this.record.state.includes(1);
+          // 鍒ゆ柇state涓槸鍚﹀瓨鍦�1
+          //console.log(isButtonDisabled)
+          this.isButtonDisabled = isButtonDisabled; // 灏嗗垽鏂粨鏋滀繚瀛樺埌鍙橀噺isButtonDisabled涓�
 
-  for (let a = 0; a <= this.record.params[0].length - 1; a++) {
-    if (!this.record.xyData[a]) {
-      this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
-    } else {
-      this.record.xyData[a].value = this.record.params[0][a];
-    }
-  }
+          for (let a = 0; a <= this.record.params[0].length - 1; a++) {
+            if (!this.record.xyData[a]) {
+              this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
+            } else {
+              this.record.xyData[a].value = this.record.params[0][a];
+            }
+          }
 
-  console.log(this.record.xyData);
-  this.$forceUpdate();
-};
-  
+          //console.log(this.record.xyData);
+          this.$forceUpdate();
+        };
+
         // 鍏抽棴浜嬩欢
         socket.onclose = function () {
           console.log("websocket宸插叧闂�");
         };
-  
+
         // 鍙戠敓閿欒浜嬩欢
         socket.onerror = function () {
           console.log("websocket鍙戠敓浜嗛敊璇�");
         };
       }
     },
-    send() {
+    send () {
       this.messagepack.data = this.record.xyData.map((item) => parseInt(item.value2)); // 杞崲涓烘暣鏁版暟缁�
-      console.log(this.messagepack);
+      //console.log(this.messagepack);
       socket?.send(JSON.stringify(this.messagepack));
     },
-    handleChange(index, value) {
+    handleChange (index, value) {
       this.record.xyData[index].value = value;
     }
   }
@@ -149,9 +150,10 @@
 .el-input__inner {
   border: 1px solid black;
 }
-.in_mc{
 
-  border:none;
+.in_mc {
+
+  border: none;
 }
 
 
@@ -162,13 +164,15 @@
 #btn_div .el-button {
   float: right;
 }
-input[type="number"]::-webkit-inner-spin-button,
-  input[type="number"]::-webkit-outer-spin-button {
-    -webkit-appearance: none;
-    margin: 0;
-  }
 
-  input[type="number"] {
-    -moz-appearance: textfield; /* Firefox涓鐢ㄤ笂涓嬬澶� */
-  }
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  -webkit-appearance: none;
+  margin: 0;
+}
+
+input[type="number"] {
+  -moz-appearance: textfield;
+  /* Firefox涓鐢ㄤ笂涓嬬澶� */
+}
 </style>
diff --git a/CanadaMes-ui/src/views/Electrical/Sign.vue b/CanadaMes-ui/src/views/Electrical/Sign.vue
index eee5b45..3252ddb 100644
--- a/CanadaMes-ui/src/views/Electrical/Sign.vue
+++ b/CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -13,8 +13,7 @@
     <div>Sign</div>
     <div style="padding-right: 30px;display: flex;flex-wrap: wrap;" class="neir">
       <div class="kuai_sb" v-for="item in record.xyData" :key="item.name">
-        <el-col class="deng" :class="getStatusClass(item.value, item.name)">
-          <!-- <el-input v-model="item.value" style="width: 280px;" class="in_mc"></el-input> -->
+        <el-col class="deng" :class="getStatusClass(item.value)">
         </el-col>
         <el-input v-model="item.name" style="width: 280px;" class="in_mc"></el-input>
 
@@ -34,102 +33,103 @@
   data () {
     return {
       record: {
+        //瀹氫箟鏁扮粍锛屽苟娣诲姞榛樿鍊�
         params: [1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
           1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,],
         xyData: [
-          { name: 'D01.SR dec', value: 0 },
-          { name: "D01.SR in pos", value: 0 },
-          { name: "D02.SR dec", value: 0 },
-          { name: "D02.SR in pos", value: 0 },
-          { name: "D03.SR into", value: 0 },
-          { name: "D03.SR dec", value: 0 },
-          { name: 'D03.SR in pos', value: 0 },
-          { name: "D04.SR dec", value: 0 },
-          { name: "D04.SR in pos", value: 0 },
-          { name: "D05.SR dec", value: 0 },
-          { name: "D05.SR in pos", value: 0 },
-          { name: "D06.SR dec", value: 0 },
-          { name: 'D06.SR in pos', value: 0 },
-          { name: "B01.SR out dec", value: 0 },
-          { name: "B01.SR out in pos", value: 0 },
-          { name: "B01.SR in dec", value: 0 },
-          { name: "B01.SR in in pos", value: 0 },
-          { name: "B01.SR turn on", value: 0 },
-          { name: 'B01.SR turn off', value: 0 },
-          { name: "B01.SR up", value: 0 },
-          { name: "B01.SR down", value: 0 },
-          { name: "B02.SR out dec", value: 0 },
-          { name: "B02.SR out in pos", value: 0 },
-          { name: "B02.SR in dec", value: 0 },
-          { name: 'B02.SR in in pos', value: 0 },
-          { name: "B02.SR turn on", value: 0 },
-          { name: "B02.SR turn off", value: 0 },
-          { name: "B02.SR up", value: 0 },
-          { name: "B02.SR down", value: 0 },
-          { name: "B01.SR out safety", value: 0 },
-          { name: "B01.SR in safety", value: 0 },
-          { name: "B02.SR out safety", value: 0 },
-          { name: "SB.start(+)", value: 0 },
-          { name: "SB.stop(1)", value: 0 },
-          { name: "SB.reset", value: 0 },
-          { name: "SB.auto/manul", value: 0 },
-          { name: "SB.pause", value: 0 },
-          { name: "SB.emg", value: 0 },
-          { name: "D01.SB.start", value: 0 },
-          { name: "D06.SB.start", value: 0 },
-          { name: "B02.SR in safety", value: 0 },
-          { name: "SAFETYDOOR.requset", value: 0 },
-          { name: "SAFETYDOOR.confirm", value: 0 },
-          { name: "SAFETYDOOR.reset", value: 0 },
-          { name: "LED.red", value: 0 },
-          { name: "LED.green", value: 0 },
-          { name: "LED.yellow", value: 0 },
-          { name: "D01.LED.green", value: 0 },
-          { name: "D06.LED.green", value: 0 },
-          { name: "B01.YV.turn", value: 0 },
-          { name: "B01.YV.up down", value: 0 },
-          { name: "B01.YV.gassing", value: 0 },
-          { name: "B02.YV.turn", value: 0 },
-          { name: "B02.YV.up down", value: 0 },
-          { name: "B02.YV.gassing", value: 0 },
-          { name: "SAFETYDOOR.led", value: 0 },
-          { name: "SAFETYDOOR.open", value: 0 },
+          { name: 'D01.SR dec', value: 1 },
+          { name: "D01.SR in pos", value: 1 },
+          { name: "D02.SR dec", value: 1 },
+          { name: "D02.SR in pos", value: 1 },
+          { name: "D03.SR into", value: 1 },
+          { name: "D03.SR dec", value: 1 },
+          { name: 'D03.SR in pos', value: 1 },
+          { name: "D04.SR dec", value: 1 },
+          { name: "D04.SR in pos", value: 1 },
+          { name: "D05.SR dec", value: 1 },
+          { name: "D05.SR in pos", value: 1 },
+          { name: "D06.SR dec", value: 1 },
+          { name: 'D06.SR in pos', value: 1 },
+          { name: "B01.SR out dec", value: 1 },
+          { name: "B01.SR out in pos", value: 1 },
+          { name: "B01.SR in dec", value: 1 },
+          { name: "B01.SR in in pos", value: 1 },
+          { name: "B01.SR turn on", value: 1 },
+          { name: 'B01.SR turn off', value: 1 },
+          { name: "B01.SR up", value: 1 },
+          { name: "B01.SR down", value: 1 },
+          { name: "B02.SR out dec", value: 1 },
+          { name: "B02.SR out in pos", value: 1 },
+          { name: "B02.SR in dec", value: 1 },
+          { name: 'B02.SR in in pos', value: 1 },
+          { name: "B02.SR turn on", value: 1 },
+          { name: "B02.SR turn off", value: 1 },
+          { name: "B02.SR up", value: 1 },
+          { name: "B02.SR down", value: 1 },
+          { name: "B01.SR out safety", value: 1 },
+          { name: "B01.SR in safety", value: 1 },
+          { name: "B02.SR out safety", value: 1 },
+          { name: "SB.start(+)", value: 1 },
+          { name: "SB.stop(1)", value: 1 },
+          { name: "SB.reset", value: 1 },
+          { name: "SB.auto/manul", value: 1 },
+          { name: "SB.pause", value: 1 },
+          { name: "SB.emg", value: 1 },
+          { name: "D01.SB.start", value: 1 },
+          { name: "D06.SB.start", value: 1 },
+          { name: "B02.SR in safety", value: 1 },
+          { name: "SAFETYDOOR.requset", value: 1 },
+          { name: "SAFETYDOOR.confirm", value: 1 },
+          { name: "SAFETYDOOR.reset", value: 1 },
+          { name: "LED.red", value: 1 },
+          { name: "LED.green", value: 1 },
+          { name: "LED.yellow", value: 1 },
+          { name: "D01.LED.green", value: 1 },
+          { name: "D06.LED.green", value: 1 },
+          { name: "B01.YV.turn", value: 1 },
+          { name: "B01.YV.up down", value: 1 },
+          { name: "B01.YV.gassing", value: 1 },
+          { name: "B02.YV.turn", value: 1 },
+          { name: "B02.YV.up down", value: 1 },
+          { name: "B02.YV.gassing", value: 1 },
+          { name: "SAFETYDOOR.led", value: 1 },
+          { name: "SAFETYDOOR.open", value: 1 },
 
         ],
-        // canshu: [
-        //   'D01.SR dec',
-        //   'D01.SR in pos',
-        //   'D02.SR dec',
-        //   'D02.SR in pos',
-        //   'D03.SR into',
-        //   'D03.SR dec',
-        //   'D03.SR in pos',
-        //   'D04.SR dec',
-        //   'D04.SR in pos',
-        //   'D05.SR dec',
-        //   'D05.SR in pos',
-        //   'D06.SR dec',
-        //   'D06.SR in pos',
-        //   'B01.SR out dec',
-        //   'B01.SR out in pos',
-        //   'B01.SR in dec',
-        //   'B01.SR in in pos',
-        //   'B01.SR turn on',
-        //   'B01.SR turn off',
-        //   'B01.SR up',
-        //   'B01.SR down',
-        //   'B02.SR out dec',
-        //   'B02.SR out in pos',
-        //   'B02.SR in dec',
-        //   'B02.SR in in pos',
-        //   'B02.SR turn on',
-        //   'B02.SR turn off',
-        //   'B02.SR up',
-        //   'B02.SR down',
-        //   'LED.red',
-        //   'LED.green',
-        //   'LED.yellow',
-        // ],
+        canshu: [
+          'D01.SR dec',
+          'D01.SR in pos',
+          'D02.SR dec',
+          'D02.SR in pos',
+          'D03.SR into',
+          'D03.SR dec',
+          'D03.SR in pos',
+          'D04.SR dec',
+          'D04.SR in pos',
+          'D05.SR dec',
+          'D05.SR in pos',
+          'D06.SR dec',
+          'D06.SR in pos',
+          'B01.SR out dec',
+          'B01.SR out in pos',
+          'B01.SR in dec',
+          'B01.SR in in pos',
+          'B01.SR turn on',
+          'B01.SR turn off',
+          'B01.SR up',
+          'B01.SR down',
+          'B02.SR out dec',
+          'B02.SR out in pos',
+          'B02.SR in dec',
+          'B02.SR in in pos',
+          'B02.SR turn on',
+          'B02.SR turn off',
+          'B02.SR up',
+          'B02.SR down',
+          'LED.red',
+          'LED.green',
+          'LED.yellow',
+        ],
 
       },
 
@@ -148,30 +148,14 @@
     this.init();
   },
   methods: {
-    getStatusClass (zhuangtai, mc) {
-
-
-      if (mc === "LED.green" && zhuangtai === 0) {
-        return "green";
-      }
-      if (mc === "LED.red" && zhuangtai === 0) {
-        return "red";
-      }
-      if (mc === "LED.yellow" && zhuangtai === 0) {
-        return "yellow"
-      }
-
-
+    //鏍规嵁璇诲彇PLC鐨勫�硷紝鏍规嵁鍚嶇О鏀瑰彉棰滆壊
+    getStatusClass (zhuangtai) {
       if (zhuangtai === 0) {
         return "op";
       }
       else {
         return "dow";
       }
-
-
-
-
 
     },
     init () {
@@ -198,14 +182,16 @@
 
           //console.log("鏀跺埌鏁版嵁====" + msg.data);
           let obj = JSON.parse(msg.data);
-          //this.$set(this.record.params, 0, obj.params[0]);
           this.record.params[0] = obj.sig[0];
-          for (let a = 0; a <= this.record.xyData[0] - 1; a++) {
+          for (let a = 0; a < this.record.params[0].length; a++) {
             if (!this.record.xyData[a]) {
               this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
+
             } else {
               this.record.xyData[a].value = this.record.params[0][a];
+
             }
+
 
           }
           this.$forceUpdate();
@@ -221,10 +207,6 @@
         }
       }
     },
-    send () {
-      this.messagepack.data = { taskname: "鍓嶇鍒板悗鍙�" };
-      socket?.send(JSON.stringify(this.messagepack));  // 灏嗙粍瑁呭ソ鐨刯son鍙戦�佺粰鏈嶅姟绔紝鐢辨湇鍔$杩涜杞彂
-    }
   }
 
 }
@@ -241,10 +223,15 @@
   padding: 0;
 }
 
-/* .neir {
+.app {
   height: 100%;
+}
+
+.neir {
+  /* height: 580px; */
+  height: 90%;
   overflow-y: auto;
-} */
+}
 
 .el-input__inner {
   text-align: center;
diff --git a/CanadaMes-ui/src/views/Electrical/State.vue b/CanadaMes-ui/src/views/Electrical/State.vue
index c9a3310..9cfb3b3 100644
--- a/CanadaMes-ui/src/views/Electrical/State.vue
+++ b/CanadaMes-ui/src/views/Electrical/State.vue
@@ -17,7 +17,7 @@
 
       <div class="kuai_div" v-for="item in this.record.xyData" :key="item.name">
         <el-input style="width: 280px;" class="in_mc" v-model="item.name"></el-input>
-        <el-input v-model.number="item.value" style="width: 80px;"></el-input>
+        <el-input v-model="item.value" readonly="readonly" style="width: 80px;"></el-input>
       </div>
 
 
@@ -39,18 +39,18 @@
   data () {
     return {
       record: {
-        params: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0,],
+        params: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1,],
         xyData: [
-          { name: 'D01.State', value: 0 },
-          { name: 'D02.State', value: 0 },
-          { name: 'B01.State', value: 0 },
-          { name: 'B02.State', value: 0 },
-          { name: 'A01.State', value: 0 },
-          { name: 'A02.State', value: 0 },
-          { name: 'D03.State', value: 0 },
-          { name: 'D04.State', value: 0 },
-          { name: 'D05.State', value: 0 },
-          { name: 'D06.State', value: 0 },
+          { name: 'D01.State', value: "鑷姩" },
+          { name: 'D02.State', value: "鑷姩" },
+          { name: 'B01.State', value: "鑷姩" },
+          { name: 'B02.State', value: "鑷姩" },
+          { name: 'A01.State', value: "鑷姩" },
+          { name: 'A02.State', value: "鑷姩" },
+          { name: 'D03.State', value: "鑷姩" },
+          { name: 'D04.State', value: "鑷姩" },
+          { name: 'D05.State', value: "鑷姩" },
+          { name: 'D06.State', value: "鑷姩" },
         ],
         // canshu: [
         //   'D01.State',
@@ -107,7 +107,9 @@
           //console.log("鏀跺埌鏁版嵁====" + msg.data);
           let obj = JSON.parse(msg.data);
           this.record.params[0] = obj.sta[0];
-          for (let a = 0; a <= this.record.xyData[0].length - 1; a++) {
+          console.log(this.record.params[0]);
+          //灏嗚鍙栧埌鐨凱LC鐨勬暟鎹紝涓庡畾涔夌殑xyData锛岀粍鍚堟垚鏂扮殑鏁扮粍
+          for (let a = 0; a < this.record.params[0].length; a++) {
             if (!this.record.xyData[a]) {
               this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
             } else {
@@ -133,10 +135,16 @@
       console.log(this.messagepack);
       socket?.send(JSON.stringify(this.messagepack));
     },
-    handleChange (index, value) {
-      this.record.xyData[index].value = value;
+    valuezhi (zhi) {
+      if (zhi == 1) {
+        return "鑷姩";
+      }
+      else {
+        return "鎵嬪姩";
+      }
     }
 
+
   }
 
 }
diff --git a/CanadaMes-ui/src/views/Electrical/alarm.vue b/CanadaMes-ui/src/views/Electrical/alarm.vue
index c96986c..7b20441 100644
--- a/CanadaMes-ui/src/views/Electrical/alarm.vue
+++ b/CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -20,7 +20,8 @@
       <el-date-picker v-model="shijian2" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿" align="right"
         :picker-options="pickerOptions">
       </el-date-picker>
-      <el-button type="primary" @click="selectTime()">鏌ヨ</el-button>
+      &nbsp;&nbsp;
+      <el-button type="primary" @click="selectTime()">{{ $t('Search') }}</el-button>
     </div>
 
     <el-table :data="localizedRoles" style="width: 100%;" height="550">
@@ -99,9 +100,11 @@
 
 
     if (this.shijian1 == "" || this.shijian2 == "") {
+      //鏌ヨ褰撳ぉ鎶ヨ淇℃伅
       this.load();
     }
     else {
+      //鏍规嵁鏃堕棿鏌ヨ鎶ヨ淇℃伅
       this.selectTime();
     }
 
@@ -122,11 +125,13 @@
 
     },
     selectTime () {
+      //moment闇�瑕佸崟鐙畨杞緷璧栵紝npm install moment
       let sj1 = moment(this.shijian1).format('YYYY-MM-DD%20HH:mm');
       let sj2 = moment(this.shijian2).format('YYYY-MM-DD%20HH:mm')
-
+      //璋冪敤setTime鏂规硶缁檙oles璧嬪��
       setTime(sj1, sj2).then(res => {
         this.roles = res.data.list;
+        //table涓殑鍐呭杩涜璇█杞崲
         const language = this.$i18n.locale;
         if (language === 'zh-CN') {
           this.replaceChineseWithEnglish();
@@ -135,7 +140,7 @@
         }
       });
     },
-
+    //璇█杞崲
     replaceChineseWithEnglish () {
       const translation = this.$t('translation');
       this.localizedRoles = this.roles.map(role => ({
@@ -165,8 +170,6 @@
         };
         //  娴忚鍣ㄧ鏀舵秷鎭紝鑾峰緱浠庢湇鍔$鍙戦�佽繃鏉ョ殑鏂囨湰娑堟伅
         socket.onmessage = function (msg) {
-
-          //console.log("鏀跺埌鏁版嵁====" + msg.data);
           let obj = JSON.parse(msg.data);
 
           this.record.params[0] = obj.arm;
@@ -190,10 +193,6 @@
       }
 
     },
-    send () {
-      this.messagepack.data = { taskname: "鍓嶇鍒板悗鍙�" };
-      socket?.send(JSON.stringify(this.messagepack));  // 灏嗙粍瑁呭ソ鐨刯son鍙戦�佺粰鏈嶅姟绔紝鐢辨湇鍔$杩涜杞彂
-    }
 
   }
 
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index 4fcd763..f76e51d 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -164,8 +164,11 @@
                     <el-table-column prop="lengthWidth" label="Length and width"></el-table-column>
                     <el-table-column prop="coating" label="coating"></el-table-column>
                     <el-table-column label="Operate">
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @click="endtask(0)">end
-                            task</el-button>
+                        <template slot-scope='scope'>
+                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                                @click="endtask(0, scope.row.glassId, scope.row.cell)">end
+                                task</el-button>
+                        </template>
                     </el-table-column>
                 </el-table>
                 <el-table :data="this.tasklist2" border style="width: 100%">
@@ -175,8 +178,11 @@
                     <el-table-column prop="lengthWidth" label="Length and width"></el-table-column>
                     <el-table-column prop="coating" label="coating"></el-table-column>
                     <el-table-column label="Operate">
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @click="endtask(1)">end
-                            task</el-button>
+                        <template slot-scope='scope'>
+                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                                @click="endtask(1, scope.row.glassId, scope.row.cell)">end
+                                task</el-button>
+                        </template>
                     </el-table-column>
                 </el-table>
             </div>
@@ -262,7 +268,7 @@
                 <el-table-column prop="endTime" label="endTime"></el-table-column>
             </el-table>
         </el-dialog>
-        <el-dialog :visible.sync="dialogFormVisible3" title="Ordering Information">
+        <el-dialog :visible.sync="dialogFormVisible3" title="Cage Details">
             <el-table :data="this.cageinfo" border style="width: 100%;height: 700px;overflow: auto;">
                 <el-table-column :width="150" prop="cage" label="the grille number"></el-table-column>
                 <el-table-column prop="cell" label="cell"></el-table-column>
@@ -276,7 +282,7 @@
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                             @click="deleteglass(scope.row.glassId, scope.row.state)">delete</el-button>
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            @click="outglass(scope.row.glassId,scope.row.state)">out</el-button>
+                            @click="outglass(scope.row.glassId, scope.row.state)">out</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -324,8 +330,6 @@
             url: "../../img/bigcar01.png",
             car1: 150,
             car2: 242,
-            incell: "",
-            outcell: "",
             cageinfo: [],
             cage: 0
         };
@@ -362,7 +366,6 @@
                         this.car1 = 150 + 24.6 * obj.params[0][0];
                         this.car2 = 242 + 24.6 * obj.params[0][1];
                     }
-
                     this.tableData = obj.tableData[0];
                     this.cagelist1 = obj.cagelist1[0];
                     this.cagelist2 = obj.cagelist2[0];
@@ -370,12 +373,6 @@
                     this.cagelist4 = obj.cagelist4[0];
                     this.tasklist1 = obj.tasklist1[0];
                     this.tasklist2 = obj.tasklist2[0];
-                    if (this.tasklist1.length > 0) {
-                        this.incell = this.tasklist1[0]['cell'];
-                    }
-                    if (this.tasklist1.length > 0) {
-                        this.outcell = this.tasklist2[0]['cell'];
-                    }
                     this.alarm = obj.alarmmg[0];
 
                     SelectCageInfo(this.cage).then(res => {
@@ -461,8 +458,14 @@
                     if (res.data.message2 == 200) {
                         this.$message.success("Operation successful");
                         this.cancal();
-                    } else {
+                    } else if(res.data.message2 == 500) {
                         this.$message.success("There are currently tasks");
+                    }
+                    else if(res.data.message2 == 300) {
+                        this.$message.success("There is no such grid");
+                    }
+                    else if(res.data.message2 == 400) {
+                        this.$message.success("There is no such grid");
                     }
                 });
             }
@@ -499,21 +502,12 @@
             this.dialogFormVisible1 = false;
             this.form1 = {};
         },
-        endtask(type) {
-            if (type == 0) {
-                UpdateTask(type, this.incell).then(res => {
-                    if (res.data.message3 == 200) {
-                        this.$message.success("Operation successful");
-                    }
-                });
-            } else {
-                UpdateTask(type, this.outcell).then(res => {
-                    if (res.data.message3 == 200) {
-                        this.$message.success("Operation successful");
-                    }
-                });
-            }
-
+        endtask(type, glassid, cell) {
+            UpdateTask(type, glassid, cell).then(res => {
+                if (res.data.message3 == 200) {
+                    this.$message.success("Operation successful");
+                }
+            });
         },
         showcageinfo(cage) {
             this.cage = cage;
@@ -524,7 +518,7 @@
         },
         deleteglass(glassid, state) {
             if (state == 1) {
-                DeleteByGlassID(glassid).then(res=>{
+                DeleteByGlassID(glassid).then(res => {
                     if (res.data.message3 == 200) {
                         this.$message.success("Operation successful");
                     }
@@ -533,9 +527,9 @@
                 this.$message.success("No out allowed");
             }
         },
-        outglass(glassid,state){
+        outglass(glassid, state) {
             if (state == 1) {
-                OutByGlassID(glassid).then(res=>{
+                OutByGlassID(glassid).then(res => {
                     if (res.data.message3 == 200) {
                         this.$message.success("Operation successful");
                     }
diff --git a/CanadaMes-ui/src/views/user/index.vue b/CanadaMes-ui/src/views/user/index.vue
index 82dbf5f..ccff3f2 100644
--- a/CanadaMes-ui/src/views/user/index.vue
+++ b/CanadaMes-ui/src/views/user/index.vue
@@ -11,11 +11,12 @@
       <el-row :gutter="20">
         <!--鎼滅储涓庢坊鍔犲尯鍩�-->
         <el-col :span="6">
-          <el-input :placeholder= "$t('langUsernamePlaceholder')"  v-model="queryInfo.username" clearable @clear="getUserList">
+          <el-input :placeholder="$t('langUsernamePlaceholder')" v-model="queryInfo.username" clearable
+            @clear="getUserList">
           </el-input>
         </el-col>
         <el-col :span="6">
-          <el-input  :placeholder="$t('langEmailPlaceholder')"  v-model="queryInfo.email" clearable @clear="getUserList">
+          <el-input :placeholder="$t('langEmailPlaceholder')" v-model="queryInfo.email" clearable @clear="getUserList">
           </el-input>
         </el-col>
         <!--鎼滅储鎸夐挳-->
@@ -35,86 +36,62 @@
         <el-table-column :label="$t('langCreateTime')" prop="createTime"></el-table-column>
         <el-table-column :label="$t('langDisabled')">
           <template slot-scope="scope">
-            <el-switch
-                :active-value="0"
-                :inactive-value="1"
-                v-model="scope.row.state"
-                @change="stateChange(scope.row)">
+            <el-switch :active-value="0" :inactive-value="1" v-model="scope.row.state" @change="stateChange(scope.row)">
             </el-switch>
           </template>
         </el-table-column>
         <el-table-column label="鎿嶄綔">
-  <template slot-scope="scope">
-    <el-button  type="primary" icon="el-icon-refresh" @click="resetPassword(scope.row)">
-   
-      {{ $t('resetPassword') }}
-    </el-button>
-  </template>
-</el-table-column>
+          <template slot-scope="scope">
+            <el-button type="primary" icon="el-icon-refresh" @click="resetPassword(scope.row)">
+
+              {{ $t('resetPassword') }}
+            </el-button>
+          </template>
+        </el-table-column>
         <el-table-column :label="$t('langAction')">
           <template slot-scope="scope">
             <!--淇敼-->
             <el-tooltip effect="dark" :content="$t('langEdit')" placement="top" :enterable="false">
-              <el-button type="primary" icon="el-icon-edit" size="mini"
-                         @click="showEditDialog(scope.row.id)"></el-button>
+              <el-button type="primary" icon="el-icon-edit" size="mini" @click="showEditDialog(scope.row.id)"></el-button>
             </el-tooltip>
             <!--鍒犻櫎-->
             <el-tooltip effect="dark" :content="$t('langDelete')" placement="top" :enterable="false">
-              <el-button type="danger" icon="el-icon-delete" size="mini"
-                         @click="removeUserById(scope.row)"></el-button>
+              <el-button type="danger" icon="el-icon-delete" size="mini" @click="removeUserById(scope.row)"></el-button>
             </el-tooltip>
           </template>
         </el-table-column>
       </el-table>
       <!--鍒嗛〉鍖哄煙-->
-       <el-pagination
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-      :current-page="queryInfo.pageNum"
-      :page-sizes="[6, 12, 18, 24]"
-      :page-size="queryInfo.pageSize"
-      :total="userList.total"
-      
-      :pager-count="7"
-      :layout="layout"
-    >
-    </el-pagination>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+        :current-page="queryInfo.pageNum" :page-sizes="[6, 12, 18, 24]" :page-size="queryInfo.pageSize"
+        :total="userList.total" :pager-count="7" :layout="layout">
+      </el-pagination>
     </el-card>
     <!--娣诲姞鐢ㄦ埛鐨勫璇濇-->
-    <el-dialog
-        :title="$t('langAddUserTitle')"
-        :visible.sync="addDialogVisible"
-        width="50%"
-        @close="addDialogClosed">
+    <el-dialog :title="$t('langAddUserTitle')" :visible.sync="addDialogVisible" width="50%" @close="addDialogClosed">
       <!--鍐呭涓讳綋鍖哄煙-->
       <el-form :model="addUserForm" :rules="addUserRules" ref="addUserRef" label-width="100px">
-        <el-form-item :label="$t('langUsername')" prop="username" >
-          <el-input v-model="addUserForm.username" ></el-input>
+        <el-form-item :label="$t('langUsername')" prop="username">
+          <el-input v-model="addUserForm.username"></el-input>
         </el-form-item>
-        <el-form-item :label="$t('langPassword')" prop="password" >
+        <el-form-item :label="$t('langPassword')" prop="password">
           <el-input v-model="addUserForm.password" type="password"></el-input>
         </el-form-item>
         <el-form-item :label="$t('langEmail')" prop="email">
           <el-input v-model="addUserForm.email"></el-input>
         </el-form-item>
 
-      
+
         <el-form-item :label="$t('langState')" prop="state">
-          <el-select v-model="addUserForm.state" >
-            <el-option v-for="(item,index) in options"
-                       :key="index"
-                       :value="item.value"
-                       :label="item.label">
+          <el-select v-model="addUserForm.state">
+            <el-option v-for="(item, index) in options" :key="index" :value="item.value" :label="item.label">
             </el-option>
           </el-select>
         </el-form-item>
 
         <el-form-item :label="$t('role')" prop="roleId">
-          <el-select filterable v-model="addUserForm.roleId" :placeholder="$t('langSelect')"  >
-            <el-option v-for="item in roleList"
-                       :key="item.id"
-                       :value="item.id"
-                       :label="item.name">
+          <el-select filterable v-model="addUserForm.roleId" :placeholder="$t('langSelect')">
+            <el-option v-for="item in roleList" :key="item.id" :value="item.id" :label="item.name">
             </el-option>
           </el-select>
         </el-form-item>
@@ -125,21 +102,15 @@
       </span>
     </el-dialog>
     <!--淇敼鐢ㄦ埛鐨勫璇濇-->
-    <el-dialog
-        :title="$t('langEditUserTitle')"
-        :visible.sync="editDialogVisible"
-        width="50%">
+    <el-dialog :title="$t('langEditUserTitle')" :visible.sync="editDialogVisible" width="50%">
       <!--鍐呭涓讳綋鍖哄煙-->
       <el-form :model="editUserForm" :rules="addUserRules" ref="addCategoryRef" label-width="100px">
         <el-form-item :label="$t('langUsername')" prop="username">
           <el-input v-model="editUserForm.username" disabled></el-input>
         </el-form-item>
         <el-form-item :label="$t('role')" prop="roleId">
-          <el-select filterable v-model="editUserForm.roleId" :placeholder="$t('langSelect')" >
-            <el-option v-for="item in roleList"
-                       :key="item.id"
-                       :value="item.id"
-                       :label="item.name">
+          <el-select filterable v-model="editUserForm.roleId" :placeholder="$t('langSelect')">
+            <el-option v-for="item in roleList" :key="item.id" :value="item.id" :label="item.name">
             </el-option>
           </el-select>
         </el-form-item>
@@ -147,11 +118,8 @@
           <el-input v-model="editUserForm.email"></el-input>
         </el-form-item>
         <el-form-item :label="$t('langDisabled')" prop="state">
-          <el-select v-model="editUserForm.state" >
-            <el-option v-for="(item,index) in options"
-                       :key="index"
-                       :value="item.value"
-                       :label="item.label">
+          <el-select v-model="editUserForm.state">
+            <el-option v-for="(item, index) in options" :key="index" :value="item.value" :label="item.label">
             </el-option>
           </el-select>
         </el-form-item>
@@ -166,15 +134,15 @@
 
 
 <script>
-import {getById, removeById, saveOrUpdate, selectPage,resetPass} from "../../api/user";
-import {select} from "../../api/role";
+import { getById, removeById, saveOrUpdate, selectPage, resetPass } from "../../api/user";
+import { select } from "../../api/role";
 
 import LanguageMixin from '../../lang/LanguageMixin'
 export default {
   name: "User",
   mixins: [LanguageMixin],
 
-  data() {
+  data () {
     return {
       layout: 'total, sizes, prev, pager, next, jumper',
       queryInfo: {
@@ -193,23 +161,23 @@
       editUserForm: {
 
         roleId: null,
-        name:null,
-        roleid:null,
+        name: null,
+        roleid: null,
       },
       // 娣诲姞鍒嗙被鐨勯獙璇佽鍒�
       addUserRules: {
         roleId: null,
         username: [
-          {required: true, message: '璇疯緭鍏ョ敤鎴峰悕', trigger: 'blur'},
-          {min: 5, max: 15, message: '闀垮害鍦� 5 鍒� 15 涓瓧绗�', trigger: 'blur'}
+          { required: true, message: '璇疯緭鍏ョ敤鎴峰悕', trigger: 'blur' },
+          { min: 5, max: 15, message: '闀垮害鍦� 5 鍒� 15 涓瓧绗�', trigger: 'blur' }
         ],
         password: [
-          {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'},
-          {min: 5, max: 15, message: '闀垮害鍦� 5 鍒� 15 涓瓧绗�', trigger: 'blur'}
+          { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' },
+          { min: 5, max: 15, message: '闀垮害鍦� 5 鍒� 15 涓瓧绗�', trigger: 'blur' }
         ],
         email: [
-          {required: true, message: '璇疯緭鍏ラ偖绠�', trigger: 'blur'},
-          {type: 'email', message: '璇疯緭鍏ユ纭牸寮忕殑閭鍦板潃', trigger: 'blur'}
+          { required: true, message: '璇疯緭鍏ラ偖绠�', trigger: 'blur' },
+          { type: 'email', message: '璇疯緭鍏ユ纭牸寮忕殑閭鍦板潃', trigger: 'blur' }
         ]
       },
       // 鎺у埗娣诲姞鐢ㄦ埛寮规鐨勬樉绀哄拰闅愯棌
@@ -217,95 +185,95 @@
       // 鎺у埗淇敼鐢ㄦ埛寮规鐨勬樉绀哄拰闅愯棌
       editDialogVisible: false,
       options: [
-        {label: '姝e父', value: 1},
-        {label: '绂佺敤', value: 0}
+        { label: '姝e父', value: 1 },
+        { label: '绂佺敤', value: 0 }
       ],
       roleList: [],
     }
   },
-  created() {
+  created () {
     this.getUserList();
   },
   methods: {
-    getUserList() {
+    getUserList () {
       selectPage(this.queryInfo).then(res => {
         this.userList.records = res.data.records;
         this.userList.total = res.data.total
       });
-    
-//       test().then(res => {
-//         console.log(res.data)
-//       });
-//       const data6 = [
-//   { id: 32, deviceName: 'Device 7', address: 'Address 1' },
-//   { id: 33, deviceName: 'Device 8', address: 'Address 2' },
 
-// ];
+      //       test().then(res => {
+      //         console.log(res.data)
+      //       });
+      //       const data6 = [
+      //   { id: 32, deviceName: 'Device 7', address: 'Address 1' },
+      //   { id: 33, deviceName: 'Device 8', address: 'Address 2' },
 
-//       testup(data6).then(res => {
-//         console.log(res.data);
-//       });
-      
-//       call({
-//   id: 1,
-//   name: 12345 
-// }).then(res => {
-//         console.log(res.data);
-//       });
+      // ];
+
+      //       testup(data6).then(res => {
+      //         console.log(res.data);
+      //       });
+
+      //       call({
+      //   id: 1,
+      //   name: 12345 
+      // }).then(res => {
+      //         console.log(res.data);
+      //       });
 
     },
-  
-    showAddDialog() {
+
+    showAddDialog () {
       this.addDialogVisible = true;
-       select().then(res => {
-  this.roleList = res.data;
-});
+      select().then(res => {
+        this.roleList = res.data;
+      });
     },
     // stateChange(info) {
     //   saveOrUpdate(info).then(() => {
     //     this.$message.success("鏇存柊鐘舵�佹垚鍔�")
     //   });
     // },
-    stateChange(info) {
-  saveOrUpdate(info).then(() => {
-    const successMessage = this.$t('updateSuccessMessage');
-    this.$message.success(successMessage);
-  });
-},
-    resetPassword(info) {
-  this.$confirm('纭閲嶇疆瀵嗙爜涓洪粯璁ゅ�煎悧锛�', '閲嶇疆瀵嗙爜', {
-    confirmButtonText: '纭畾',
-    cancelButtonText: '鍙栨秷',
-    type: 'warning',
-  })
-    .then(() => {
-      resetPass(info).then(() => {
-        this.$message.success('瀵嗙爜宸查噸缃负榛樿鍊�');
+    stateChange (info) {
+      saveOrUpdate(info).then(() => {
+        const successMessage = this.$t('updateSuccessMessage');
+        this.$message.success(successMessage);
       });
-    })
-    .catch(() => {
-      // 鐢ㄦ埛鍙栨秷閲嶇疆瀵嗙爜鎿嶄綔
-    });
-},
-    showEditDialog(id) {
-      getById({id: id}).then(res => {
+    },
+    resetPassword (info) {
+      this.$confirm('纭閲嶇疆瀵嗙爜涓洪粯璁ゅ�煎悧锛�', '閲嶇疆瀵嗙爜', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning',
+      })
+        .then(() => {
+          resetPass(info).then(() => {
+            this.$message.success('瀵嗙爜宸查噸缃负榛樿鍊�');
+          });
+        })
+        .catch(() => {
+          // 鐢ㄦ埛鍙栨秷閲嶇疆瀵嗙爜鎿嶄綔
+        });
+    },
+    showEditDialog (id) {
+      getById({ id: id }).then(res => {
         this.editUserForm = res.data;
         this.editDialogVisible = true;
       });
 
-     
+
       select().then(res => {
-  this.roleList = res.data;
-});
+        this.roleList = res.data;
+      });
     },
-    removeUserById(user) {
+    removeUserById (user) {
       // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鍒嗙被
       this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ垎绫�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        removeById({id: user.id}).then(() => {
+        removeById({ id: user.id }).then(() => {
           // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
           this.getUserList();
           this.$message.success("鍒犻櫎鐢ㄦ埛鎴愬姛");
@@ -314,18 +282,18 @@
         this.$message.info('宸插彇娑堝垹闄�');
       });
     },
-    handleSizeChange(newSize) {
+    handleSizeChange (newSize) {
       this.queryInfo.pageSize = newSize;
       this.getUserList()
     },
-    handleCurrentChange(newPage) {
+    handleCurrentChange (newPage) {
       this.queryInfo.pageNum = newPage;
       this.getUserList()
     },
-    addDialogClosed() {
+    addDialogClosed () {
       this.$refs['addUserRef'].resetFields();
     },
-    addUser() {
+    addUser () {
       this.$refs.addUserRef.validate(async valid => {
         if (!valid) return;
         saveOrUpdate(this.addUserForm).then(() => {
@@ -337,10 +305,10 @@
         });
       })
     },
-    editUserInfo() {
+    editUserInfo () {
       this.$refs.addCategoryRef.validate(async valid => {
         if (!valid) return;
-       
+
         saveOrUpdate(this.editUserForm).then(() => {
           const 淇敼鐢ㄦ埛鎴愬姛 = this.$t('淇敼鐢ㄦ埛鎴愬姛');
           this.$message.success(淇敼鐢ㄦ埛鎴愬姛);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
index 91b1802..f45650a 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -3,6 +3,7 @@
 import cn.hutool.json.JSONObject;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import com.example.springboot.mapper.AlarmMapper;
@@ -20,79 +21,84 @@
       }
 
       List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.DBx0.0", 40);
+      // Boolean[] values = { true, false, true, false, true, false, true, false,
+      // true, false, true, false, true, false,
+      // true, false, true, false, true, false, true, false, true, false, true, false,
+      // true, false, true, false, true,
+      // false, true, false, true, false,
+      // true, false, true, false };
+      // List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
+      if (plclist != null) {
 
-      if(plclist==null){
+        JSONObject jsonObject = new JSONObject();
 
-      }else{
+        jsonObject.append("params", plclist);
+        WebSocketServer sendwServer = WebSocketServer.sessionMap.get("alarm");
+        if (sendwServer != null) {
+          sendwServer.sendMessage(jsonObject.toString());
+        }
 
-      
-      JSONObject jsonObject = new JSONObject();
+        // 灏嗚幏鍙栫殑甯冨皵绫诲瀷杞崲涓烘暣鏁扮被鍨�
+        List<Integer> Intlist = new ArrayList<>();
+        for (Boolean value : plclist) {
+          Intlist.add(value == true ? 1 : 0);
 
-      jsonObject.append("params", plclist);
-      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("alarm");
-      if (sendwServer != null) {
-        sendwServer.sendMessage(jsonObject.toString());
-      }
+        }
+        // 灏咺ntlist杞崲涓烘暟缁�
+        Integer[] shuzu1 = Intlist.toArray(new Integer[0]);
 
-      Short[] shuzu1 = plclist.toArray(new Short[0]);
-      // Short[] shuzu1 = {
-      // 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-      // 1, 0, 1, 0, 0,
-      // 1, 0, 1, 0, 1, 0, 1, 0, 1,
-      // };
-
-      String[] shuzu = {
-          "D01 VFD error",
-          "D02 VFD error",
-          "D03 VFD error",
-          "D04 VFD error",
-          "D05 VFD error",
-          "D06 VFD error",
-          "B01 VFD error",
-          "B02 VFD error",
-          "A01 VFD error",
-          "A02 VFD error",
-          "A01 servo turn error",
-          "A02 servo turn error",
-          "A01 servo travel error",
-          "A02 servo travel error",
-          "B01 servo travel error",
-          "B02 servo travel error",
-          "D01 DEC error",
-          "D01 pos error",
-          "D02 DEC error",
-          "D02 pos error",
-          "D03 DEC error",
-          "D03 pos error",
-          "D04 DEC error",
-          "D04 pos error",
-          "D05 DEC error",
-          "D05 pos error",
-          "D06 DEC error",
-          "D06 pos error",
-          "A01 DEC error",
-          "A01 pos error",
-          "A02 DEC error",
-          "A02 pos error",
-          "B01 IN DEC error",
-          "B01 IN pos error",
-          "B01 OUT DEC error",
-          "B01 OUT pos error",
-          "B02 IN DEC error",
-          "B02 IN pos error",
-          "B02 OUT DEC error",
-          "B02 OUT pos error",
-      };
-      alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
-      for (short i = 0; i < shuzu1.length; i++) {
-        short result = alarmMapper.selectnullti(shuzu[i]);
-        if (shuzu1[i] == 1 && result == 0) {
-          // alarmMapper.Insertalarm(shuzu[i]);
-        } else if (shuzu1[i] == 0 && result > 0) {
-          // alarmMapper.updatealarm(shuzu[i]);
+        String[] shuzu = {
+            "D01 VFD error",
+            "D02 VFD error",
+            "D03 VFD error",
+            "D04 VFD error",
+            "D05 VFD error",
+            "D06 VFD error",
+            "B01 VFD error",
+            "B02 VFD error",
+            "A01 VFD error",
+            "A02 VFD error",
+            "A01 servo turn error",
+            "A02 servo turn error",
+            "A01 servo travel error",
+            "A02 servo travel error",
+            "B01 servo travel error",
+            "B02 servo travel error",
+            "D01 DEC error",
+            "D01 pos error",
+            "D02 DEC error",
+            "D02 pos error",
+            "D03 DEC error",
+            "D03 pos error",
+            "D04 DEC error",
+            "D04 pos error",
+            "D05 DEC error",
+            "D05 pos error",
+            "D06 DEC error",
+            "D06 pos error",
+            "A01 DEC error",
+            "A01 pos error",
+            "A02 DEC error",
+            "A02 pos error",
+            "B01 IN DEC error",
+            "B01 IN pos error",
+            "B01 OUT DEC error",
+            "B01 OUT pos error",
+            "B02 IN DEC error",
+            "B02 IN pos error",
+            "B02 OUT DEC error",
+            "B02 OUT pos error",
+        };
+        alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
+        for (short i = 0; i < shuzu.length; i++) {
+          short result = alarmMapper.selectnullti(shuzu[i]);
+          if (shuzu1[i] == 1 && result == 0) {
+            alarmMapper.Insertalarm(shuzu[i]);
+          } else if (shuzu1[i] == 0 && result > 0) {
+            alarmMapper.updatealarm(shuzu[i]);
+          }
         }
       }
-    }
     }
   }
 }
\ No newline at end of file
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
index 258556f..953fd91 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -5,7 +5,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-
 import com.example.springboot.entity.StorageCage;
 import com.example.springboot.entity.alarmmg;
 import com.example.springboot.mapper.HomeMapper;
@@ -18,19 +17,18 @@
     public void run() {
         while (this != null) {
             try {
-                Thread.sleep(5000);
+                Thread.sleep(10000);
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
-
             JSONObject jsonObject = new JSONObject();
-            
-            //娉ㄥ叆mapper
+
+            // 娉ㄥ叆mapper
             homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
             // 绗煎瓙浣跨敤鎯呭喌
             List<StorageCage> tableData = homeMapper.selectAll();
             jsonObject.append("tableData", tableData);
-            //鏍肩悊鐗囩鏍煎瓙鐘舵��
+            // 鏍肩悊鐗囩鏍煎瓙鐘舵��
             List<StorageCage> cagelist1 = homeMapper.selectRack1();
             List<StorageCage> cagelist2 = homeMapper.selectRack2();
             List<StorageCage> cagelist3 = homeMapper.selectRack3();
@@ -39,23 +37,30 @@
             jsonObject.append("cagelist2", cagelist2);
             jsonObject.append("cagelist3", cagelist3);
             jsonObject.append("cagelist4", cagelist4);
-            //杩涘嚭鐗囦换鍔�
-            List<StorageCage> tasklist1=homeMapper.selectinout(2);
-            List<StorageCage> tasklist2=homeMapper.selectinout(3);
+            // 杩涘嚭鐗囦换鍔�
+            List<StorageCage> tasklist1 = homeMapper.selectinout(2);
+            List<StorageCage> tasklist2 = homeMapper.selectinout(3);
             jsonObject.append("tasklist1", tasklist1);
             jsonObject.append("tasklist2", tasklist2);
-            //鏌ヨ鎶ヨ淇℃伅
-            List<alarmmg> alarmmg=homeMapper.SelectAlarmmgInfo();
+            // 鏌ヨ鎶ヨ淇℃伅
+            List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
             jsonObject.append("alarmmg", alarmmg);
-            //璇诲幓Plc杩涚墖杞︿笌鍑虹墖杞︿綅缃甒
+            // 璇诲幓Plc杩涚墖杞︿笌鍑虹墖杞︿綅缃甒
             List<String> addressList = new ArrayList<String>();
-            addressList.add("DB105.DBW0");
-            addressList.add("DB105.DBW12");
+            addressList.add("DB106.0");
+            addressList.add("DB106.12");
             List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
-            //灏嗛泦鍚堣浆涓烘暟缁�
+
+            // List<Short> paramlists = new ArrayList<Short>();
+            // short para1 = 1;
+            // short para2 = 2;
+            // paramlists.add(para1);
+            // paramlists.add(para2);
+            // System.out.println(paramlists);
+
             if(paramlist!=null){
-                Short[] paramlists = paramlist.toArray(new Short[0]);
-                jsonObject.append("params", paramlists);
+            // Short[] paramlists = paramlist.toArray(new Short[0]);
+            jsonObject.append("params", paramlist);
             }
             // jsonObject.append("params", new short[] { 30, 40, });
             WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Home");
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
index 4fd48c7..e702b5b 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -4,6 +4,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Arrays;
 
 public class Plcsign extends Thread {
   @Override
@@ -16,22 +17,30 @@
       }
 
       List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.DBX0.0", 58);
-      if(plclist==null){
+      // Boolean[] values = { true, false, true, false, true, false, true, false,
+      // true, false, true, false, true, false,
+      // true, false, true, false, true, false, true, false, true, false, true, false,
+      // true, false, true, false, true,
+      // false, true, false, true, false,
+      // true, false, true, false, true, false, true, false, true, false,
+      // true, false, true, false, true, false,
+      // true, false, true, false, true, };
+      // List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
+      if (plclist != null) {
+        // 灏嗚幏鍙栫殑甯冨皵绫诲瀷杞崲涓烘暣鏁扮被鍨�
+        List<Integer> Intlist = new ArrayList<>();
+        for (Boolean value : plclist) {
+          Intlist.add(value == true ? 0 : 1);
 
-      }else{
-      JSONObject jsonObject = new JSONObject();
-      // jsonObject3.append("sig",
-      // new short[] { 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
-      // 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-      // 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
-      // });
-      jsonObject.append("sig", plclist);
-      WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
-      if (sendwServer3 != null) {
-        sendwServer3.sendMessage(jsonObject.toString());
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sig", Intlist);
+        WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
+        if (sendwServer3 != null) {
+          sendwServer3.sendMessage(jsonObject.toString());
+        }
+
       }
-
-    }
     }
   }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
index 478a339..69a97b7 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
@@ -4,6 +4,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Arrays;
 
 public class Plcstate extends Thread {
   @Override
@@ -16,13 +17,18 @@
       }
 
       List<Short> plclist = S7control.getinstance().ReadWord("DB103.DBW0", 10);
-      if (plclist == null) {
+      // Short[] values = { 0, 1, 1, 0, 1, 0, 1, 0,
+      // 1, 0, };
+      // List<Short> plclist = new ArrayList<>(Arrays.asList(values));
+      if (plclist != null) {
 
-      } else {
+        List<String> Intlist = new ArrayList<>();
+        for (Short value : plclist) {
+          Intlist.add(value == 1 ? "鑷姩" : "鎵嬪姩");
+
+        }
         JSONObject jsonObject = new JSONObject();
-        // jsonObject.append("sta",
-        // new short[] { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, });
-        jsonObject.append("sta", plclist);
+        jsonObject.append("sta", Intlist);
         WebSocketServer sendwServer = WebSocketServer.sessionMap.get("State");
         if (sendwServer != null) {
           sendwServer.sendMessage(jsonObject.toString());
diff --git a/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java b/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
index babc506..17d0dd6 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -25,7 +25,7 @@
     //
     System.out.println("鍚姩瀹屾垚");
 
-    new PlcHold().start();
+    // new PlcHold().start();
     new Plcaction().start();
     new PlcParameter().start();
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java
index 034beb9..4a0d232 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java
@@ -35,22 +35,21 @@
 
   @GetMapping("/stTime")
   public Result selecttime(String shijian1, String shijian2) {
-    System.out.println("++++++");
-    System.out.println(shijian1);
 
-    if (shijian1 != "" || shijian2 != "") {
-      String sj1 = shijian1.replace("#20", " ");
-      String sj2 = shijian2.replace("#20", " ");
-      List<alarmmg> storageCagelist = alarmMapper.selecttime(sj1, sj2);
-      Map<String, Object> map = new HashMap<>();
-      map.put("list", storageCagelist);
-      return Result.success(map);
-    } else {
-      List<alarmmg> storageCagelist = alarmMapper.selectAll();
-      Map<String, Object> map = new HashMap<>();
-      map.put("list", storageCagelist);
-      return Result.success(map);
-    }
+    // if (shijian1 != "" || shijian2 != "") {
+    // 灏唃et鏂规硶浼犺繃鏉ョ殑鍙傛暟涓�"#20"鏇挎崲涓�" "
+    String sj1 = shijian1.replace("#20", " ");
+    String sj2 = shijian2.replace("#20", " ");
+    List<alarmmg> storageCagelist = alarmMapper.selecttime(sj1, sj2);
+    Map<String, Object> map = new HashMap<>();
+    map.put("list", storageCagelist);
+    return Result.success(map);
+    // } else {
+    // List<alarmmg> storageCagelist = alarmMapper.selectAll();
+    // Map<String, Object> map = new HashMap<>();
+    // map.put("list", storageCagelist);
+    // return Result.success(map);
+    // }
 
   }
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
index 5970b54..01b46fd 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -78,21 +78,27 @@
         if (taskno > 0) {
             map.put("message2", "500");
         } else {
-            map.put("message2", "200");
             // 璋冪敤浼嶄笂鐗囧嚱鏁�
-            spianService.selectAll(glassid);
+            short results= spianService.selectAll(glassid);
+            if(results==200){
+                map.put("message2", "200");
+            }else if(results==300){
+                map.put("message2", "300");
+            }else if(results==400){
+                map.put("message2", "400");
+            }
         }
         return Result.success(map);
     }
 
     @GetMapping("/UpdateTask")
-    public Result UpdateTask(Integer types, Integer shelfrack) {
+    public Result UpdateTask(Integer types, Integer shelfrack, Integer glassid) {
         Map<String, Object> map = new HashMap<>();
         homeMapper.UpdateTask(types, shelfrack);
         if (types == 0) {
-            homeMapper.UpdateCageTask1(shelfrack);
+            homeMapper.UpdateCageTask1(shelfrack,glassid);
         } else {
-            homeMapper.UpdateCageTask2(shelfrack);
+            homeMapper.UpdateCageTask2(shelfrack,glassid);
         }
         map.put("message3", "200");
         return Result.success(map);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
index 384b18c..3e22d2c 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -34,11 +34,11 @@
   List<StorageCage> selectinout(@Param("task_type") Integer task_type);
 
   // 鏌ヨ鏄惁瀛樺湪姝よ鍗�
-  @Select("select count(*) from storage_cage where order_id=#{orderid} and state=0")
+  @Select("select count(*) from storage_cage where order_id=#{orderid} and state=1")
   short SelectOrder(@Param("orderid") String orderid);
 
   // @Insert("insert into order_out(orderid) values('#{orderid}')")
-  @Insert("INSERT INTO `canadames`.`order_out`( `orderid`,`mod_time`) VALUES ( #{orderid},now())")
+  @Insert("INSERT INTO `canadames`.`order_out`( `order_id`,`state`) VALUES ( #{orderid},0)")
   void InsertOrder(String orderid);
 
   // 鍋滄鎸夊綋鍓嶈鍗曞嚭鐗�
@@ -54,12 +54,12 @@
   void UpdateTask(@Param("task_type") Integer task_type, @Param("shelf_rack") Integer shelf_rack);
 
   // 鎵嬪姩瀹屾垚杩涚墖浠诲姟淇敼绗煎瓙鏁版嵁
-  @Update("update storage_cage set state=1 where cell=#{cell} and state=2")
-  void UpdateCageTask1(@Param("cell") Integer cell);
+  @Update("update storage_cage set state=1 where cell=#{cell} and glass_id=#{glassid} and state=2")
+  void UpdateCageTask1(@Param("cell") Integer cell,@Param("glassid") Integer glassid);
 
   // 鎵嬪姩瀹屾垚鍑虹墖浠诲姟淇敼绗煎瓙鏁版嵁
-  @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,coating=null where cell=#{cell} and state=2")
-  void UpdateCageTask2(@Param("cell") Integer cell);
+  @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,coating=null where cell=#{cell} and glass_id=#{glassid} and state=3")
+  void UpdateCageTask2(@Param("cell") Integer cell,@Param("glassid") Integer glassid);
 
   //鑾峰彇鎶ヨ淇℃伅
   @Select("select id,content,timeon as timeons,endTime from alarmmg where endTime is null")
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java b/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
new file mode 100644
index 0000000..0ca1741
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
@@ -0,0 +1,70 @@
+package com.example.springboot.service;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.springframework.stereotype.Component;
+
+import com.example.springboot.entity.Glass;
+@Component
+public class JdbcConnections {
+    /**
+	 * 鏁版嵁搴撹繛鎺ュ弬鏁�
+	 * driver,url,username,password
+	 */
+	private static final String DRIVER = "com.mysql.jdbc.Driver";
+	private static final String URL = "jdbc:mysql://localhost:3306/canadames";
+	private static final String USERNAME = "root";
+	private static final String PASSWORD = "beibo.123/";
+	
+	private static Connection conn = null;
+	private static PreparedStatement ps = null;
+	private static ResultSet rs = null;
+	
+	public  Glass selectGlass(int glassid) throws SQLException {
+        conn = getConn();
+        Glass glass=new Glass();
+        String sql = "select orderid from glass where glassid=?";
+         ps = conn.prepareStatement(sql);
+         ps.setInt(1, glassid);
+         rs= ps.executeQuery();
+         while (rs.next()) {
+			glass.setOrderId(rs.getShort("orderid"));
+         }
+
+         return glass;
+    }
+	/**
+	 * 1. 鍔犺浇椹卞姩
+	 * 2. 鑾峰彇杩炴帴	conn
+	 * 3. 鍒涘缓璇彞 ps
+	 * 4. 鎵ц璇彞 rs
+	 * 5. 澶勭悊缁撴灉
+	 * 6. 鍥炴敹璧勬簮
+	 * 
+	 * 瀹炵幇CRUD
+	 * 	鏇存柊锛�
+	 * 		1澧炲姞
+	 * 		2鍒犻櫎
+	 * 		3淇敼
+	 *  鏌ヨ锛�
+	 *  	1. 鏌ヤ竴涓紝涓�涓璞�
+	 *  	2. 鏌ヤ竴缁勶紝鍋氭垚涓�涓璞″垪琛紝鏌ュ叏閮�
+	 */
+	public static Connection getConn() throws SQLException {
+		Connection conn = null;
+		conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/canadames?serverTimezone=GMT%2B8&characterEncoding=utf-8", "root", "beibo.123/");
+		return conn;
+	}
+
+	static {
+		try {
+			Class.forName(DRIVER);
+		} catch (ClassNotFoundException e) {
+			e.printStackTrace();
+		}
+	}
+}

--
Gitblit v1.8.0