From c49dc2f40279bcc360948cea68dec69cf213b85f Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期一, 25 十二月 2023 15:33:34 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 CanadaMes-ui/src/views/home/index.vue                                                        |   93 +++--
 springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java                 |    2 
 springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java               |   12 
 springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java            |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java                  |   26 +
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java                  |   13 
 CanadaMes-ui/src/layout/index.vue                                                            |  251 ++++++++++---
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java          |   40 +-
 CanadaMes-ui/src/lang/locales/zh-CN.json                                                     |    2 
 Alarm.json                                                                                   |  507 +++++++++++++++++++++++++++++
 CanadaMes-ui/src/api/home.js                                                                 |   14 
 CanadaMes-ui/src/lang/locales/en-US.json                                                     |    2 
 springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java |    1 
 13 files changed, 820 insertions(+), 147 deletions(-)

diff --git a/Alarm.json b/Alarm.json
new file mode 100644
index 0000000..89bf615
--- /dev/null
+++ b/Alarm.json
@@ -0,0 +1,507 @@
+{
+  "content": [
+    {
+      "name": "D01 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D02 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D03 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D04 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D05 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D06 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02 VFD error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01 servo turn error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02 servo turn error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01 servo travel error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02 servo travel error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01 servo travel error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02 servo travel error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D01 DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D01 pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D02 DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D02 pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D03 DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D03 pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D04 DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D04 pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D05 DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D05 pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D06 DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D06 pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01 DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01 pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02 DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02 pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01 IN DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01 IN pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01 OUT DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01 OUT pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02 IN DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02 IN pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02 OUT DEC error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02 OUT pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D01 Scan glass exceeding limit",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "emergency stop alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "More glass than known",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "less glass than known",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D01 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D02 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D03 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D04 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D05 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "D06 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02 conveyor timeout alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01 conveyor Left safety alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01 conveyor right safety alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02 conveyor Left safety alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02 conveyor right safety alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "1# buffer safety alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "2# buffer safety alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "3# buffer safety alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "4# buffer safety alarm",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A01.SR right in pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "A02.SR left in pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01.SR left in pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01.SR left dec error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01.SR right dec error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B01.SR right in pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02.SR left in pos error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02.SR left dec error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    },
+    {
+      "name": "B02.SR right dec error",
+      "value": "1",
+      "state": "1",
+      "type": "3",
+      "page": "1"
+    }
+  ],
+  "address": [
+    {
+      "name": "DB104.0.0",
+      "count": 71
+    }
+  ]
+}
\ No newline at end of file
diff --git a/CanadaMes-ui/src/api/home.js b/CanadaMes-ui/src/api/home.js
index 1d4772c..f281e67 100644
--- a/CanadaMes-ui/src/api/home.js
+++ b/CanadaMes-ui/src/api/home.js
@@ -198,11 +198,11 @@
     })
 }
 
-export function AddOutSliceS(data) {
+export function AddOutSliceS(FrameNo) {
     return request({
-        url: '/home/AddOutSliceS',
+        url: '/home/AddOutSliceS?FrameNo='+FrameNo,
         method: 'post',
-        data
+        data:""
     })
 }
 
@@ -214,6 +214,14 @@
     })
 }
 
+export function isAllowReorderings(isAllowReordering,data) {
+    return request({
+        url: '/home/isAllowReorderings?isAllowReordering=' + isAllowReordering,
+        method: 'post',
+        data
+    })
+}
+
 export function isConfirmStates(isConfirmStates) {
     return request({
         url: '/home/isConfirmStates?isConfirmStates=' + isConfirmStates,
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index d39ffc4..72526fd 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -329,6 +329,7 @@
   "You do not have this permission":"You do not have this permission",
   "This glass is already in the Queue":"This glass is already in the Queue",
   "Complete":"Complete",
+  "Allow":"Allow",
   "Not Allow":"Not Allow",
   "Completed":"Completed",
   "Waiting":"Waiting",
@@ -339,6 +340,7 @@
   "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
   "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
   "Complete Task":"Complete Task",
+  "Outed":"Outed",
     "ServoManualone": {
       "A01 鎵�鍦ㄦ牸瀛�": "A01 Current Grid",
       "鏁伴噺": "Quantity",
diff --git a/CanadaMes-ui/src/lang/locales/zh-CN.json b/CanadaMes-ui/src/lang/locales/zh-CN.json
index 58a4f8a..0c9eb7e 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -319,6 +319,7 @@
   "This glass is already in the Queue":"姝ょ幓鐠冨凡鍦ㄥ嚭鐗囬槦鍒椾腑",
   "Complete":"瀹屾垚",
   "Not Allow":"涓嶅厑璁�",
+  "Allow":"鍏佽",
   "Completed":"宸插畬鎴�",
   "Waiting":"绛夊緟涓�",
   "Deleted":"宸插垹闄�",
@@ -328,6 +329,7 @@
   "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
   "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
   "Complete Task":"瀹屾垚浠诲姟",
+  "Outed":"宸插嚭绗�",
   "langparameter": {
     "conveyor Velocity(Auto FAST)": "D01-D06 鐨甫杈撻�佽嚜鍔ㄥ揩閫�",
     "conveyor Velocity(Auto SLOW)": "D01-D06 鐨甫杈撻�佽嚜鍔ㄦ參閫�",
diff --git a/CanadaMes-ui/src/layout/index.vue b/CanadaMes-ui/src/layout/index.vue
index a2c944d..6566166 100644
--- a/CanadaMes-ui/src/layout/index.vue
+++ b/CanadaMes-ui/src/layout/index.vue
@@ -1,7 +1,7 @@
 <template>
   <el-container style="flex: 1;height:100%;">
-    <div style="width: 200px;background-color: #222f3e" :style="{width: isCollapse?'70px':'250px'}">
-      <el-aside :width="isCollapse?'70px':'250px'">
+    <div style="width: 200px;background-color: #222f3e" :style="{ width: isCollapse ? '70px' : '250px' }">
+      <el-aside :width="isCollapse ? '70px' : '250px'">
         <el-col :gutter="20">
           <el-row :span="4">
             <div class="logo" @click="goToHome">
@@ -9,11 +9,10 @@
             </div>
           </el-row>
           <el-row :span="20">
-            <el-menu :default-active="activePath" class="el-menu-vertical-demo"
-                      background-color="#222f3e" text-color="#fff" active-text-color="#ffd04b"
-                      :collapse="isCollapse" :unique-opened="true"
-                      :collapse-transition="false" :router="true">
-             <!-- <el-menu-item index="/" @click="youhua">
+            <el-menu :default-active="activePath" class="el-menu-vertical-demo" background-color="#222f3e"
+              text-color="#fff" active-text-color="#ffd04b" :collapse="isCollapse" :unique-opened="true"
+              :collapse-transition="false" :router="true">
+              <!-- <el-menu-item index="/" @click="youhua">
                 <template slot="title">
                
                   <i class="el-icon-menu"></i>
@@ -31,10 +30,8 @@
                   <span>{{ item.name }}</span>
                 </template>
                 <!--浜岀骇鑿滃崟-->
-              
-                <el-menu-item :index="'/'+menu.router"
-                              v-for="menu in item.menuLists" :key="menu.id"
-                             >
+
+                <el-menu-item :index="'/' + menu.router" v-for="menu in item.menuLists" :key="menu.id">
                   <template slot="title">
                     <!--鍥炬爣-->
                     <i :class="menu.icon"></i>
@@ -50,19 +47,21 @@
     </div>
     <el-container>
       <el-header class="header-container">
-        
-        <el-menu :default-active="activePath1" class="el-menu-demo" mode="horizontal"
-                 background-color="#576574" text-color="#fff" active-text-color="#ffd04b">
+
+        <el-menu :default-active="activePath1" class="el-menu-demo" mode="horizontal" background-color="#576574"
+          text-color="#fff" active-text-color="#ffd04b">
           <div class="header-left">
-            <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse" style="height:30px;"></el-button>
+            <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse"
+              style="height:30px;"></el-button>
           </div>
           <!-- <div class="tagContainer" style="display: flex;">
   <tag v-for="(tag, index) in tags" :key="index" :tag="tag" @removeTag="removeTag(index)" @switchTag="switchTag(index)"></tag>
 </div> -->
           <template>
-            <el-submenu index="1" class="custom-submenu"  >
+            <el-submenu index="1" class="custom-submenu">
               <template slot="title">
-                <el-avatar src="../assets/emi.png"   style="width:20px;height:20px;margin-top:30px;background-color: white;"></el-avatar>
+                <el-avatar src="../assets/emi.png"
+                  style="width:20px;height:20px;margin-top:30px;background-color: white;"></el-avatar>
               </template>
               <el-menu-item index="1-1" @click="logout">{{ $t('exit') }}</el-menu-item>
               <el-menu-item index="1-2" @click="showChangePasswordDialog">{{ $t('changePassword') }}</el-menu-item>
@@ -92,10 +91,24 @@
       </el-header>
       <el-main>
         <keep-alive>
-          <router-view/>
+          <router-view />
         </keep-alive>
       </el-main>
     </el-container>
+    <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')">
+      <el-table :data="this.alarm" border style="width: 100%;font-size: 25px;">
+        <el-table-column prop="id" :label="$t('id')"></el-table-column>
+        <el-table-column prop="content" :label="$t('content')"></el-table-column>
+        <el-table-column prop="timeons" :label="$t('timeon')"></el-table-column>
+      </el-table>
+    </el-dialog>
+    <el-dialog :visible.sync="dialogFormVisible3" >
+     
+      <el-button :class="{ 'blue-button': receivedData === 1 }" @click="toggleButtonValue(1)">{{ $t('A01Abort/ResumeTasks') }}</el-button>
+    <el-button :class="{ 'blue-button': receivedData2 === 1 }" @click="toggleButtonValue(2)">{{ $t('A02Abort/ResumeTasks') }}</el-button>
+      
+    </el-dialog>
+
   </el-container>
 </template>
 
@@ -107,6 +120,7 @@
 // import { mapState, mapMutations } from 'vuex';
 // import Tag from '../layout/tag.vue';
 // import store from '../store';
+let socket;
 
 export default {
   name: "Layout",
@@ -116,6 +130,8 @@
     return {
       activeTag: '', // 褰撳墠婵�娲荤殑鏍囩
       dialogVisible: false,
+      receivedData:0,
+      receivedData2:0,
       formData: {
         oldPassword: '',
         newPassword: '',
@@ -128,7 +144,11 @@
       menuListForm: {
         pageSize: 1,
         pageNum: -1
-      }
+      },
+      dialogFormVisible2: false,
+      dialogFormVisible3: true,
+      alarm: [],
+      alarm2: []
     }
   },
   // components: {
@@ -148,12 +168,104 @@
       // 璁板綍涓婁竴娆℃縺娲荤殑鑿滃崟
       // this.activePath = window.sessionStorage.getItem('activePath')
     });
+    this.init();
   },
   computed: {
     // ...mapState('tags', ['tags'])
   },
   methods: {
-    
+    toggleButtonValue(buttonNumber) {
+      if (buttonNumber === 1) {
+        this.receivedData = this.receivedData === 0 ? 1 : 0;
+      } else if (buttonNumber === 2) {
+        this.receivedData2 = this.receivedData2 === 0 ? 1 : 0;
+      }
+console.log(this.receivedData,this.receivedData2)
+
+
+        const data3 = [];
+        const resetButtonValues3 = [this.receivedData,this.receivedData2];
+
+        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+        data3.push(resetButtonValues3.flat());
+      
+        // 鍦� data3 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
+
+        // 鍒涘缓 jsonObject3 瀵硅薄锛屽苟娣诲姞 data3 灞炴��
+        const jsonObject3 = { data: data3 };
+
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString3 = JSON.stringify(jsonObject3);
+        console.log("鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨:", jsonString3);
+        socket?.send(jsonString3);
+        // setTimeout(()=>
+        //   window.location.reload(),2000
+        // )
+      
+
+
+    },
+    init() {
+      let viewname = "Home";
+      if (typeof (WebSocket) == "undefined") {
+        console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
+      } else {
+        //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
+        let socketUrl = "ws://" + this.$t('ip') + ":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 = function (msg) {
+          //console.log("鏀跺埌鏁版嵁====" + msg.data);
+          let obj = JSON.parse(msg.data);
+          
+          if (obj.alarmmg[0].length > 0) {
+            if (this.alarm.length > 0) {
+              if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length-1].id) {
+                this.alarm = obj.alarmmg[0];
+                this.dialogFormVisible2 = true;
+              }
+            } else {
+              this.alarm = obj.alarmmg[0];
+              this.dialogFormVisible2 = true;
+            }
+          }
+
+
+
+
+          
+          
+          this.$forceUpdate();
+
+
+
+          if (obj.Abort[0].length > 0) {
+            this.receivedData=obj.Abort[0][0];
+            this.receivedData2=obj.Abort[0][1];
+            this.dialogFormVisible3 = true;
+          }
+        
+
+        }.bind(this);
+        //鍏抽棴浜嬩欢
+        socket.onclose = function () {
+          console.log("websocket宸插叧闂�");
+        };
+        //鍙戠敓浜嗛敊璇簨浠�
+        socket.onerror = function () {
+          console.log("websocket鍙戠敓浜嗛敊璇�");
+        }
+      }
+    },
     logout: function () {
       removeToken()
       this.$router.push('/login')
@@ -161,19 +273,19 @@
     goToHome() {
       this.$router.push('/home');
     },
-  
+
     // ...mapMutations('tags', ['addTag', 'removeTag', 'switchTag']),
     addTag() {
-  // let submenuItem;
-  // const menuItem = this.menuList.find(item => item.menuLists.some(menu => menu.router === router));
-  // if (menuItem) {
-  //   submenuItem = menuItem.menuLists.find(menu => menu.router === router);
-  // }
-  // if (submenuItem) {
-  //   const tag = submenuItem.router;
-  //   this.$store.commit('tags/addTag', tag);
-  // }
-},
+      // let submenuItem;
+      // const menuItem = this.menuList.find(item => item.menuLists.some(menu => menu.router === router));
+      // if (menuItem) {
+      //   submenuItem = menuItem.menuLists.find(menu => menu.router === router);
+      // }
+      // if (submenuItem) {
+      //   const tag = submenuItem.router;
+      //   this.$store.commit('tags/addTag', tag);
+      // }
+    },
 
     removeTag() {
       // this.$store.commit('tags/removeTag', index); // 浠� Vuex Store 涓Щ闄ゆ爣绛�
@@ -188,13 +300,13 @@
         this.$message.error('鏂板瘑鐮佷笌纭瀵嗙爜涓嶄竴鑷�');
         return;
       }
-      changePassword({oldPassword, newPassword}).then(res => {
+      changePassword({ oldPassword, newPassword }).then(res => {
         console.log(res.data);
         this.$message.success('瀵嗙爜淇敼鎴愬姛');
         removeToken()
         this.$router.push('/login')
       }).catch(() => {
-       
+
       });
 
       this.dialogVisible = false;
@@ -217,7 +329,7 @@
         '瑙掕壊绠$悊': 'RoleManagement',
         '瑙掕壊鍒楄〃': 'RoleList',
         '鐢垫皵绠$悊': 'Electrical management',
-        '璁惧鐘舵��':'State',
+        '璁惧鐘舵��': 'State',
 
         '涓婚〉': 'Home'
         // 鏍规嵁瀹為檯闇�姹傜户缁坊鍔犲鐓у叧绯�
@@ -244,69 +356,74 @@
 </script>
 
 <style scoped lang="less">
-
-.el-menu--horizontal > .el-submenu .el-submenu__title {
+.el-menu--horizontal>.el-submenu .el-submenu__title {
   height: 45px !important;
 }
-.custom-submenu  {
- 
- 
- height: 90px   !important;
+
+.custom-submenu {
+
+
+  height: 90px !important;
 }
 
 
 .header-container {
 
- height: 30px   !important; /* 璁剧疆杈冨皬鐨勯珮搴� */
+  height: 30px !important;
+  /* 璁剧疆杈冨皬鐨勯珮搴� */
 }
 
 
 
 .header-left {
- margin-right: auto;
-width:30px;
- 
+  margin-right: auto;
+  width: 30px;
+
 }
+
 .el-aside {
- height: 100vh;
- background-color: #222f3e;
- line-height: 200px;
+  height: 100vh;
+  background-color: #222f3e;
+  line-height: 200px;
 }
 
 .el-menu-vertical-demo:not(.el-menu--collapse) {
- width: 200px;
- min-height: 400px;
+  width: 200px;
+  min-height: 400px;
 }
 
 .el-menu-demo {
- display: flex;
- width: 100%;
- height: 100%;
- justify-content: flex-end;
- align-items: center;
+  display: flex;
+  width: 100%;
+  height: 100%;
+  justify-content: flex-end;
+  align-items: center;
 
 }
 
 .el-menu-vertical-demo {
- border: 0;
+  border: 0;
 }
 
 .logo {
- background-color: #222f3e;
- display: flex;
- justify-content: center;
- align-items: center;
- height: 60px;
+  background-color: #222f3e;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 60px;
 
- .sys-name {
-   font-size: 20px;
-   color: #ffffff;
-   margin-left: 10px;
- }
+  .sys-name {
+    font-size: 20px;
+    color: #ffffff;
+    margin-left: 10px;
+  }
 }
-
+.blue-button {
+  background-color: green;
+  color: white;
+}
 .el-header {
 
- background-color: #576574;
+  background-color: #576574;
 }
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index db2e352..9ab796e 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -46,8 +46,8 @@
     background-color: blue;
 }
 
-.red {
-    background-color: red;
+.black {
+    background-color: black;
 }
 
 .yellow {
@@ -155,7 +155,7 @@
 .box {
     width: 90%;
     margin-left: 5%;
-    color: red;
+    color: black;
     font-size: 12px;
     overflow: hidden;
     height: 20px;
@@ -643,13 +643,15 @@
             <el-button type="primary" @click="isAllowQueueState()" :disabled="!this.isAllowReordering">{{ this.isAllowQueue
                 == true ? $t('Start') : $t('Stop')
             }}</el-button>
-            <el-button type="primary" @click="isAllowReorderingState()" :disabled="this.isAllowQueue">{{
+            <el-button type="primary" @click="isAllowReorderings()" :disabled="this.isAllowQueue">{{
                 this.isAllowReordering == true ? $t('Not Allow') : $t('Allow')
             }}</el-button>
+            <el-input style="width:15%;" :placeholder="$t('Enter the Frame No')" v-model="framebarcode"></el-input>
+            <el-button type="primary" @click="AddOutSliceS()">{{ $t('Add') }}</el-button>
             <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border :cell-style="cellStyle"
                 style="width: 100%;overflow: auto;font-size: 18px;">
                 <el-table-column :min-width="175" prop="glassId" :label="$t('Barcode')"></el-table-column>
-                <el-table-column :min-width="90" prop="orderId" :label="$t('Order No')"></el-table-column>
+                <el-table-column :min-width="100" prop="orderId" :label="$t('Order No')"></el-table-column>
                 <el-table-column :min-width="70" prop="listId" :label="$t('List No')"></el-table-column>
                 <el-table-column :min-width="70" prop="boxId" :label="$t('Box No')"></el-table-column>
                 <el-table-column :min-width="100" prop="glasswidthmm" :label="$t('Length')"></el-table-column>
@@ -657,14 +659,14 @@
                 <el-table-column :min-width="90" prop="state" :label="$t('Glass State')">
                     <template slot-scope='scope'>
                         {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : scope.row.state == 2
-                            ? $t('Completed') : scope.row.state == 3 ? $t('Absent') : $t('Deleted') }}
+                            ? $t('Outed') : scope.row.state == 3 ? $t('Absent') : $t('Completed') }}
                     </template>
                 </el-table-column>
                 <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column>
                 <el-table-column :min-width="90" prop="barcode" :label="$t('Complete')">
                     <template slot-scope='scope' style="height:100px;height:100px;">
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            :disabled="!(!isAllowQueue && scope.row.state != 2&&scope.row.state != 4)"
+                            :disabled="!(!isAllowQueue && scope.row.state != 2 && scope.row.state != 4)"
                             @click="CompleteQueue(scope.row.id, scope.row.barcode, scope.row.glassId)">{{ $t('Complete')
                             }}</el-button>
                     </template>
@@ -688,7 +690,7 @@
                 <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column>
 
 
-                <el-table-column :width="280" :label="$t('Operate')">
+                <el-table-column :width="200" :label="$t('Operate')">
                     <template slot-scope='scope'>
                         <el-button type="text" size="small" @click="getTopMove(scope.row, scope.$index)"
                             style="font-size: 15px;"
@@ -749,7 +751,6 @@
                 </el-table-column>
             </el-table>
         </el-dialog>
-
         <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh">
             <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'">
                 <!-- {{ this.CountDowns }} -->
@@ -763,7 +764,8 @@
 import {
     home, home2, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist,
     SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass, SelectGlassNo,
-    SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates, SelectPermissionByUserName, currentUsername, CompleteQueue
+    SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates, SelectPermissionByUserName, currentUsername, CompleteQueue,
+    isAllowReorderings
 } from "../../api/home";
 
 
@@ -897,12 +899,16 @@
                     this.cagelist4 = obj.cagelist4[0];
                     this.tasklist1 = obj.tasklist1[0];
                     this.tasklist2 = obj.tasklist2[0];
-                    this.alarm = obj.alarmmg[0];
-                    if (this.alarm.length > 0&&this.alarm!=obj.alarmmg[0]) {
-                        this.dialogFormVisible2 = true;
-                    }
-                    //  else {
-                    //     this.dialogFormVisible2 = false;
+                    // if (obj.alarmmg[0].length > 0) {
+                    //     if (this.alarm.length > 0) {
+                    //         if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
+                    //             this.alarm = obj.alarmmg[0];
+                    //             this.dialogFormVisible2 = true;
+                    //         }
+                    //     } else {
+                    //         this.alarm = obj.alarmmg[0];
+                    //         this.dialogFormVisible2 = true;
+                    //     }
                     // }
                     //鏄惁鎬ュ仠
                     if (obj.emergencystop != null) {
@@ -929,6 +935,8 @@
 
                     //鏄惁鍏佽鍑虹墖
                     this.isAllowQueue = obj.isAllowQueue[0];
+                    //鏄惁鍏佽鍑虹墖闃熷垪璋冨簭
+                    this.isAllowReordering = obj.isAllowReordering[0];
                     //鍑虹墖闃熷垪
                     if (this.isAllowReordering == true) {
                         this.OutSlice = obj.listoutslice[0];
@@ -1061,7 +1069,7 @@
             } else if (state == 2) {
                 return "yellow gezi";
             } else if (state == 3) {
-                return "red gezi";
+                return "black gezi";
             } else {
                 return "black gezi";
             }
@@ -1079,7 +1087,6 @@
                     this.load();
                 });
             }
-
         },
         //鎵嬪姩涓婄墖
         sbumitglassid() {
@@ -1504,19 +1511,24 @@
             this.AluminumFrame.forEach(item => { item.barcode = glassid; item.isCheck = isChecked })
         },
         //娣诲姞鍒板嚭鐗囬槦鍒�
-        addoutslice() {
-            var dats_ = new Array();
-            this.AluminumFrame.forEach(item => {
-                var dats2_ = new Array();
-                dats2_[0] = item.barcode;
-                dats2_[1] = item.isCheck;
-                dats2_[2] = item.Flip;
-                dats2_[3] = item.FrameNo;
-                dats2_[4] = item.glasslengthmm;
-                dats2_[5] = item.glassheightmm;
-                dats_[dats_.length] = dats2_;
-            });
-            AddOutSliceS(dats_).then(res => {
+        AddOutSliceS() {
+            // var dats_ = new Array();
+            // this.AluminumFrame.forEach(item => {
+            //     var dats2_ = new Array();
+            //     dats2_[0] = item.barcode;
+            //     dats2_[1] = item.isCheck;
+            //     dats2_[2] = item.Flip;
+            //     dats2_[3] = item.FrameNo;
+            //     dats2_[4] = item.glasslengthmm;
+            //     dats2_[5] = item.glassheightmm;
+            //     dats_[dats_.length] = dats2_;
+            // });
+            // AddOutSliceS(dats_).then(res => {
+            //     if (res.data.message == 200) {
+            //         this.$message.success(this.$t('Operation successful'));
+            //     }
+            // });
+            AddOutSliceS(this.framebarcode).then(res => {
                 if (res.data.message == 200) {
                     this.$message.success(this.$t('Operation successful'));
                 }
@@ -1641,9 +1653,13 @@
                 }
             })
         },
-        //
-        isAllowReorderingState() {
-            this.isAllowReordering = !this.isAllowReordering;
+        //鏄惁鍏佽鍑虹墖闃熷垪鎺掑簭
+        isAllowReorderings() {
+            isAllowReorderings(!this.isAllowReordering, this.OutSlice).then(res => {
+                if (res.data.message == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
+            })
         },
         //鍒囨崲涓婄墖鏄惁闇�瑕佺‘璁ょ幓鐠冧俊鎭�
         isConfirmState() {
@@ -1654,8 +1670,8 @@
             });
         }
         ,
-        cellStyle({  column, rowIndex, columnIndex }) {
-            // console.log(row, column, "ss");
+        //琛ㄦ牸鏍峰紡
+        cellStyle({ column, rowIndex, columnIndex }) {
             column = rowIndex;
             rowIndex = column;
             let style = "";
@@ -1753,8 +1769,8 @@
                 }
             });
         },
+        //45绉掑浣嶅�掓暟璁℃椂
         CountDown() {
-            //50绉掑�掓暟璁℃椂
             let count = 45;
             let timer = setInterval(
                 () => {
@@ -1767,6 +1783,7 @@
                             this.PromptSize = 500;
                             this.CountDowns = count;
                             count--;
+                            this.dialogFormCountDown = true;
                         }
                         else {
                             this.PromptSize = 200;
@@ -1780,7 +1797,7 @@
                 },
                 1000
             );
-            this.dialogFormCountDown = true;
+
         }
     }
 }
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 2d0c98d..fca4eb9 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
@@ -28,7 +28,7 @@
     FileInputStream fileInputStream;
     try {
       // 浠庢枃浠朵腑璇诲彇瀛楄妭鏁版嵁瀛樺叆 fileInputStream
-      fileInputStream = new FileInputStream("D:/canadames/Alarm.json");
+      fileInputStream = new FileInputStream("D:/Code/canadames/Alarm.json");
       // 璇诲彇 fileInputStream 涓瓧鑺傚苟灏嗗叾瑙g爜涓哄瓧绗�
       InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
       // 鎻愰珮璇诲彇鏁堢巼锛屽湪 BufferedReader 鍐呭寘瑁� InputStreamReader
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 2b12967..32c2368 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
@@ -2,8 +2,10 @@
 
 import cn.hutool.json.JSONObject;
 
+import java.io.IOException;
 import java.sql.SQLException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,10 +32,20 @@
     private JdbcConnections dbserve;
     // 鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
     public static Boolean isAllowQueue = true;
+    public static Boolean isAllowReordering = true;
     // 閾濇id
     public static String FrameNo="";
     // 鏄惁闇�瑕佹墜鍔ㄧ‘璁ょ幓鐠�
     public static Boolean isConfirm = false;
+
+    private Configuration config;
+
+
+
+
+    public Plchome() throws IOException {
+        config = new Configuration("config.properties");
+    }
 
     // public static Map b=new HashMap<>();
     // b.put()
@@ -92,8 +104,10 @@
             // 鑾峰彇鍑虹墖闃熷垪淇℃伅
             List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
             jsonObject.append("listoutslice", listoutslice);
-            // 鑾峰彇褰撳墠鍑虹墖闃熷垪鐘舵��
+            // 鑾峰彇褰撳墠鍑虹墖闃熷垪鍑虹墖鐘舵��
             jsonObject.append("isAllowQueue", Plchome.isAllowQueue);
+            // 鑾峰彇褰撳墠鍑虹墖闃熷垪璋冨簭鐘舵��
+            jsonObject.append("isAllowReordering", Plchome.isAllowReordering);
             // 鏄惁闇�瑕佷汉宸ョ‘璁や笂鐗囩幓鐠�
             jsonObject.append("isConfirm", isConfirm);
 
@@ -155,6 +169,16 @@
                  jsonObject.append("emergencystop", emergencystop);
              }
 
+             //缁堟缁х画鎸夐挳
+            List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(","));
+            List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
+
+            short[] anniuparams = new short[anniuread.size()];
+            for (int i = 0; i < anniuread.size(); i++) {
+                boolean value = anniuread.get(i);
+                anniuparams[i] = value ? (short) 1 : (short) 0;
+            }
+            jsonObject.append("Abort", anniuparams);
             // 閾濇绾夸氦浜�
 
             // //閾濇id璇锋眰瀛�
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 ff84539..6c6958d 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
@@ -5,44 +5,30 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
 
 import com.example.springboot.mapper.HomeMapper;
 import com.example.springboot.mapper.SpianMapper;
-import com.example.springboot.security.constant.SystemConstant;
-import com.example.springboot.security.util.JwtUtil;
-import com.example.springboot.security.util.SecurityUtil;
 import com.example.springboot.service.HomeService;
 import com.example.springboot.service.JdbcConnections;
 import com.example.springboot.service.North_Glass_Buffer1Service;
 import com.example.springboot.service.OutSliceServive;
-import com.example.springboot.service.PermissionService;
 import com.example.springboot.service.SpianService;
 import com.example.springboot.service.StorageCageService;
 
-import cn.hutool.core.util.StrUtil;
 
 import com.example.springboot.common.Result;
 import com.example.springboot.component.Plchome;
-import com.example.springboot.component.S7control;
 import com.example.springboot.entity.CarPosition;
 import com.example.springboot.entity.StorageCage;
-import com.example.springboot.entity.StorageTask;
-import com.example.springboot.entity.User;
 import com.example.springboot.entity.alarmmg;
 import com.example.springboot.entity.north_glass_buffer1;
 import com.example.springboot.entity.Out_slice;
-import com.example.springboot.entity.Permission;
 import com.example.springboot.entity.Queue;
 import com.example.springboot.entity.RolePermission;
 
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
 
 @RestController
 @RequestMapping("/home")
@@ -95,7 +81,6 @@
   // 鏌ヨ鐞嗙墖绗肩幓鐠冩儏鍐�
   @GetMapping("/loads")
   public Result selectRack() {
-
     List<StorageCage> storageCagelist1 = homeMapper.selectRack1();
     List<StorageCage> storageCagelist2 = homeMapper.selectRack2();
     List<StorageCage> storageCagelist3 = homeMapper.selectRack3();
@@ -193,7 +178,6 @@
   // 鏍规嵁鐜荤拑id鎵嬪姩鍑虹墖
   @GetMapping("/OutByGlassID")
   public Result OutByGlassID(String glassid) throws SQLException {
-
     Map<String, Object> map = new HashMap<>();
     Out_slice result = homeMapper.SelectQueueByglassid(glassid);
     if (result == null) {
@@ -208,7 +192,6 @@
               sequence, position, (short) 0, north_glass_buffer1.getordernumber(), north_glass_buffer1.getlistnumber(),
               north_glass_buffer1.getboxnumber(), north_glass_buffer1.getglasslength().toString(),
               north_glass_buffer1.getglassheight().toString());
-
           map.put("message2", "200");
         } else {
           map.put("message2", "300");
@@ -357,18 +340,33 @@
 
   // 娣诲姞閾濇id瀵瑰簲鐜荤拑鍒板嚭鐗囬槦鍒�
   @PostMapping("/AddOutSliceS")
-  public Result AddOutSliceS(@RequestBody String[][] AluminumFrames) throws SQLException {
-    outSliceServive.AddOutSliceS(AluminumFrames);
+  public Result AddOutSliceS(String FrameNo) throws SQLException {
+    //public Result AddOutSliceS(@RequestBody String[][] AluminumFrames) throws SQLException {
+    north_Glass_Buffer1Service.AddOutSliceS(FrameNo);
     Map<String, Object> map = new HashMap<>();
     map.put("message", "200");
     return Result.success(map);
   }
 
-  // 淇敼鍑虹墖闃熷垪鐘舵�佷笌鍑虹墖闃熷垪璋冨簭
+  // 淇敼鍑虹墖闃熷垪鍑虹墖鐘舵��
   @PostMapping("/isAllowQueues")
   public Result isAllowQueues(Boolean isAllowQueue, @RequestBody List<Out_slice> out_slice) {
     Plchome.isAllowQueue = isAllowQueue;
-    if (isAllowQueue == true) {
+    // if (isAllowQueue == true) {
+    //   for (Out_slice out_slice2 : out_slice) {
+    //     homeMapper.UpdateOutSliceSequence(out_slice2.getGlassId(), out_slice2.getSequence());
+    //   }
+    // }
+    Map<String, Object> map = new HashMap<>();
+    map.put("message", "200");
+    return Result.success(map);
+  }
+
+  // 淇敼鍑虹墖闃熷垪璋冨簭鐘舵�佷笌鍑虹墖闃熷垪璋冨簭
+  @PostMapping("/isAllowReorderings")
+  public Result isAllowReorderings(Boolean isAllowReordering, @RequestBody List<Out_slice> out_slice) {
+    Plchome.isAllowReordering = isAllowReordering;
+    if (isAllowReordering == true) {
       for (Out_slice out_slice2 : out_slice) {
         homeMapper.UpdateOutSliceSequence(out_slice2.getGlassId(), out_slice2.getSequence());
       }
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 f079317..262fa57 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
@@ -155,7 +155,7 @@
 
 
   //鏌ヨ鐜荤拑鏄惁宸插瓨鍦ㄤ簬鍑虹墖闃熷垪
-  @Select("select * from out_slice where glassid=#{getbarcode} and (state=0 or state=1 or state=2 or state=3)")
+  @Select("select * from out_slice where glassid=#{getbarcode}")
   Out_slice SelectQueueByglassid(String getbarcode);
 
   //娣诲姞鍑虹墖闃熷垪
@@ -173,23 +173,26 @@
   @Select("select rp.* from role_permission rp inner join user r on rp.role_id=r.role_id and r.username=#{username} and (permission_id=32 or permission_id=33 or permission_id=34 or permission_id=35)")
   List<RolePermission> SelectPermissionByUserName(String username);
   //瀹屾垚鍑虹墖浠诲姟
-  @Update("update out_slice set state=2 where id=#{id}")
+  @Update("update out_slice set state=4 where id=#{id}")
   void CompleteQueue(String id);
 
   //鏌ヨ閾濇id瀵瑰簲鐜荤拑瀹屾垚鏁伴噺
-  @Select("select count(*) from out_slice where barcode=#{frameid} and (state=0 or state=1 or state=3)")
+  @Select("select count(*) from out_slice where barcode=#{frameid} and state!=4")
   Short SelectCountByFrameNo(String frameid);
 
   //鍒犻櫎宸插畬鎴愮殑浠诲姟
-  @Update("delete from out_slice where Barcode=#{frameid}")
+  @Delete("delete from out_slice where Barcode=#{frameid}")
   void CompleteQueueByFrameNo(String frameid);
 
+  //鏌ヨ绗煎唴鏍煎瓙鍓╀綑瀹藉害
   @Select("Select width from storage_cage where cage=#{cage} and cell=#{cell} limit 1")
   Double SelectCageWidth(short cage, short cell);
 
-  @Select("update out_slice set state=3 where glassId=#{glassid} and state<3")
+  //淇敼鍑虹墖闃熷垪鐜荤拑鐘舵�佷负缂哄け
+  @Update("update out_slice set state=3 where glassId=#{glassid} and state<3")
   void UpdateOutSliceGlass(String glassid);
 
+  //鏌ヨ鏈畬鎴愮殑浠诲姟
   @Select("select * from storage_task where task_state=0 and task_type=#{task_type}")
   List<StorageTask> SelectTaskByState(int task_type);
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java b/springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
index 94ca6f0..af4492d 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
@@ -34,7 +34,6 @@
         String flip = jdbcConnections.SelectFlipByFrameBarcode(FrameBarcode);
         String position = jdbcConnections.SelectPositionByFrameBarcode(FrameBarcode);
         int sequence = homeMapper.SelectMaxSquence();
-
         for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) {
             Short state = 0;
             if (north_glass_buffer1.getOut_slice() == null) {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java b/springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java
index 100ac98..256c2e9 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java
@@ -6,11 +6,9 @@
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoProperties.Storage;
 import org.springframework.stereotype.Service;
 
 import com.example.springboot.common.Result;
-import com.example.springboot.component.S7control;
 import com.example.springboot.entity.Out_slice;
 import com.example.springboot.entity.StorageCage;
 import com.example.springboot.mapper.HomeMapper;
@@ -26,8 +24,6 @@
   @Autowired
   SpianService spianService;
 
-  @Autowired
-  private JdbcConnections jdbcConnections;
 
   public void AddOutSliceS(String[][] AluminumFrames) throws SQLException {
     // int sequence = homeMapper.SelectMaxSquence();
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
index 40f930c..0747f90 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -313,12 +313,12 @@
         spianMapper.UpdateCageadd(glassid, 1);// 鏇存敼绗煎瓙琛ㄨ繘鐗囩姸鎬�
         String barcode = spianMapper.SelectBarcode(glassid);// 鑾峰彇璇ョ幓鐠冪殑閾濇id
         spianMapper.UpdateAddQueue(glassid);// 鎶婅繘鐗囩殑鐜荤拑鏇存柊鍒板嚭鐗囬槦鍒椾腑
-//        if (barcode != null) {
-//            int barcodeState = spianMapper.SelectOverState(barcode);// 鑾峰彇璇ラ摑妗嗙殑鐘舵��
-//            if (barcodeState == 0) {// 褰撹閾濇鎵�鏈夌殑鐜荤拑閮芥槸瀹屾垚鐘舵�佹椂鍒犻櫎鍦ㄥ嚭鐗囬槦鍒楃殑鏁版嵁
-//                spianMapper.DeleteQueue(barcode);
-//            }
-//        }
+        // if (barcode != null) {
+        //     int barcodeState = spianMapper.SelectOverState(barcode);// 鑾峰彇璇ラ摑妗嗙殑鐘舵��
+        //     if (barcodeState == 0) {// 褰撹閾濇鎵�鏈夌殑鐜荤拑閮芥槸瀹屾垚鐘舵�佹椂鍒犻櫎鍦ㄥ嚭鐗囬槦鍒楃殑鏁版嵁
+        //         spianMapper.DeleteQueue(barcode);
+        //     }
+        // }
 
     }
 }

--
Gitblit v1.8.0