From 716ad435a943659416f7678897eceaa637150056 Mon Sep 17 00:00:00 2001
From: clll <1320612696@qq.com>
Date: 星期三, 13 九月 2023 16:58:18 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 CanadaMes-ui/src/img/taimian.png                                                  |    0 
 CanadaMes-ui/src/img/dipan.png                                                    |    0 
 CanadaMes-ui/src/views/home/index.vue                                             |  229 ++++++---
 springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java       |    1 
 springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java      |   18 
 springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java    |  565 ++++++++++++-----------
 CanadaMes-ui/src/views/power/index.vue                                            |  183 ++++---
 CanadaMes-ui/src/views/user/index.vue                                             |  152 +++---
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java       |    2 
 CanadaMes-ui/src/layout/index.vue                                                 |    4 
 CanadaMes-ui/src/lang/locales/zh-CN.json                                          |   74 +++
 springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java  |    4 
 springboot-vue3/src/main/resources/application.properties                         |    2 
 CanadaMes-ui/src/views/Electrical/Action.vue                                      |    4 
 CanadaMes-ui/src/main.js                                                          |    4 
 CanadaMes-ui/src/lang/locales/en-US.json                                          |   73 +++
 springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java     |    4 
 18 files changed, 784 insertions(+), 537 deletions(-)

diff --git a/CanadaMes-ui/src/img/dipan.png b/CanadaMes-ui/src/img/dipan.png
new file mode 100644
index 0000000..923b811
--- /dev/null
+++ b/CanadaMes-ui/src/img/dipan.png
Binary files differ
diff --git a/CanadaMes-ui/src/img/taimian.png b/CanadaMes-ui/src/img/taimian.png
new file mode 100644
index 0000000..81e0723
--- /dev/null
+++ b/CanadaMes-ui/src/img/taimian.png
Binary files differ
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index 9d1bac8..01ce8da 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -204,5 +204,76 @@
   "alarmid": "id",
   "alacontent": "content",
   "time-on": "time-on",
-  "End-Time": "End-Time"
+  "End-Time": "End-Time",
+  "langRegisterSuccessMessage": "Registration successful",
+
+  "娣诲姞鐢ㄦ埛鎴愬姛":"Successfully add user ",
+  "confirmResetPassword": "Are you sure you want to reset the password to the default value?",
+  "confirm": "Confirm",
+  "cancel": "Cancel",
+  "passwordResetSuccess": "Password has been reset to the default value",
+  "confirmDeleteCategory": "This operation will permanently delete the category. Do you want to continue?",
+  "prompt": "Prompt",
+  "userDeleteSuccess": "User deleted successfully",
+  "deleteCanceled": "Deletion canceled",
+  "addUserSuccess": "User added successfully",
+  "editUserSuccess": "User edited successfully",
+  "addSuccessMessage": "Added successfully",
+"deleteConfirmMessage": "Are you sure you want to delete this permission?",
+
+"confirmButtonText": "Confirm",
+"cancelButtonText": "Cancel",
+"deleteSuccessMessage": "Deleted successfully",
+"deleteCancelledMessage": "Deletion cancelled",
+
+
+  "Enter the glass lD":"Enter the glass lD",
+  "Manually feed the glass":"Manually feed the glass",
+  "Enter the order number":"Enter the order number",
+  "Exit the glass by order number":"Exit the glass by order number",
+  "Please confirm the glass information":"Please confirm the glass information",
+  "Please confirm the Ordering Information":"Please confirm the Ordering Information",
+  "Alarm Information":"Alarm Information",
+  "Cage Details":"Cage Details",
+  "order":"order",
+  "length":"length",
+  "width":"width",
+  "coating":"coating",
+  "Operate":"Operate",
+  "end task":"end task",
+  "cancal":"cancal",
+  "confirm":"confirm",
+  "number":"number",
+  "Coming out glass ID":"Coming out glass ID",
+  "Incoming glass ID":"Incoming glass ID",
+  "The Cage number being used":"The Cage number being used",
+  "The Grille number being used":"The Grille number being used",
+  "Order Nmuber":"Order Nmuber",
+  "Length and width":"Length and width",
+  "id":"id",
+  "content":"content",
+  "timeon":"timeon",
+  "endTime":"endTime",
+
+  "The Cage number":"The Cage number",
+  "tier":"tier",
+  "cell":"cell",
+  "glassid":"glassid",
+  "order number":"order number",
+  "delete":"delete",
+  "out":"out",
+
+  "Operation successful":"Operation successful",
+  "Operation canceled":"Operation canceled",
+  "There is no glass for this order":"There is no glass for this order",
+  "There are currently tasks":"There are currently tasks",
+  "There is no such glass":"There is no such glass",
+  "There is no such grid":"There is no such grid",
+  "No delete allowed":"No delete allowed",
+  "No out allowed":"No out allowed",
+  "Are you sure to perform this operation ?":"Are you sure to perform this operation ?",
+  "prompt":"prompt",
+  "Yes":"Yes",
+  "No":"No"
+
 }
\ 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 c8d6f5c..4eeba01 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -196,6 +196,80 @@
   "langResetButton": "閲嶇疆",
   "langCancelButton": "鍙栨秷",
   "langRegisterSuccessMessage": "娉ㄥ唽鎴愬姛",
+
+  "娣诲姞鐢ㄦ埛鎴愬姛":"娣诲姞鐢ㄦ埛鎴愬姛",
+  "confirmResetPassword": "纭閲嶇疆瀵嗙爜涓洪粯璁ゅ�煎悧锛�",
+  
+  "confirm": "纭畾",
+  "cancel": "鍙栨秷",
+  "passwordResetSuccess": "瀵嗙爜宸查噸缃负榛樿鍊�",
+  "confirmDeleteCategory": "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ垎绫�, 鏄惁缁х画?",
+  "prompt": "鎻愮ず",
+  "userDeleteSuccess": "鍒犻櫎鐢ㄦ埛鎴愬姛",
+  "deleteCanceled": "宸插彇娑堝垹闄�",
+  "addUserSuccess": "娣诲姞鐢ㄦ埛鎴愬姛",
+  "editUserSuccess": "淇敼鐢ㄦ埛鎴愬姛",
+  "effective": "鏈夋晥",
+"invalid": "鏃犳晥",
+
+"addSuccessMessage": "娣诲姞鎴愬姛",
+"deleteConfirmMessage": "纭畾瑕佸垹闄よ鏉冮檺鍚楋紵",
+
+"confirmButtonText": "纭畾",
+"cancelButtonText": "鍙栨秷",
+"deleteSuccessMessage": "鍒犻櫎鎴愬姛",
+"deleteCancelledMessage": "宸插彇娑堝垹闄ゆ搷浣�",
+
+
+
+  "Enter the glass lD":"杈撳叆鐜荤拑id",
+  "Manually feed the glass":"鎵嬪姩涓婄墖",
+  "Enter the order number":"杈撳叆璁㈠崟鍙�",
+  "Exit the glass by order number":"鎸夎鍗曞嚭鐗�",
+  "Please confirm the glass information":"璇风‘璁ょ幓鐠冧俊鎭�",
+  "Please confirm the Ordering Information":"璇风‘璁よ鍗曚俊鎭�",
+  "Alarm Information":"鎶ヨ淇℃伅",
+  "Cage Details":"鐞嗙墖绗艰鎯�",
+  "order":"璁㈠崟",
+  "length":"闀�",
+  "width":"瀹�",
+  "coating":"娑傚眰",
+  "Operate":"鎿嶄綔",
+  "end task":"瀹屾垚浠诲姟",
+  "cancal":"鍙栨秷",
+  "confirm":"纭",
+  "number":"鏁伴噺",
+  "Coming out glass ID":"杩涚墖鐜荤拑id",
+  "Incoming glass ID":"鍑虹墖鐜荤拑id",
+  "The Cage number being used":"绗煎瓙",
+  "The Grille number being used":"鏍煎瓙",
+  "Order Nmuber":"璁㈠崟缂栧彿",
+  "Length and width":"灏哄",
+  "id":"id",
+  "content":"鍐呭",
+  "timeon":"鎶ヨ鏃堕棿",
+  "endTime":"缁撴潫鏃堕棿",
+
+  "The Cage number":"绗煎瓙",
+  "tier":"灞�",
+  "cell":"鏍煎瓙",
+  "glassid":"鐜荤拑id",
+  "order number":"璁㈠崟",
+  "delete":"鍒犻櫎",
+  "out":"鍑虹墖",
+
+  "Operation successful":"鎿嶄綔鎴愬姛",
+  "Operation canceled":"鎿嶄綔鍙栨秷",
+  "There is no such order":"娌℃湁姝よ鍗曠殑鐜荤拑",
+  "There are currently tasks":"褰撳墠鏈変换鍔�",
+  "There is no such glass":"娌℃湁姝ょ幓鐠�",
+  "There is no such grid":"娌℃湁绌洪棽鏍煎瓙",
+  "No delete allowed":"涓嶈兘鍒犻櫎",
+  "No out allowed":"涓嶈兘鍑虹墖",
+  "Are you sure to perform this operation ?":"纭畾鎵ц姝ゆ搷浣�?",
+  "prompt":"鎻愮ず",
+  "Yes":"鏄�",
+  "No":"鍚�",
   "today": "浠婂ぉ",
   "yesterday": "鏄ㄥぉ",
   "week": "涓�鍛ㄥ墠",
diff --git a/CanadaMes-ui/src/layout/index.vue b/CanadaMes-ui/src/layout/index.vue
index b029768..be073bb 100644
--- a/CanadaMes-ui/src/layout/index.vue
+++ b/CanadaMes-ui/src/layout/index.vue
@@ -207,12 +207,14 @@
         '鎶ヨ淇℃伅': 'AlarmInformation',
         '鍙傛暟涓嬪彂': 'ParameterSetting',
         '寮�鍏虫帶鍒�': 'SwitchControl',
-        'I/O鐘舵��': 'I/O Status',
+        'IO鐘舵��': 'Sign',
         '鏉冮檺绠$悊': 'PermissionManagement',
         '鏉冮檺鍒楄〃': 'PermissionList',
         '瑙掕壊绠$悊': 'RoleManagement',
         '瑙掕壊鍒楄〃': 'RoleList',
         '鐢垫皵绠$悊': 'Electrical management',
+        '璁惧鐘舵��':'State',
+
         '涓婚〉': 'Home'
         // 鏍规嵁瀹為檯闇�姹傜户缁坊鍔犲鐓у叧绯�
       };
diff --git a/CanadaMes-ui/src/main.js b/CanadaMes-ui/src/main.js
index 11d1158..07eff9c 100644
--- a/CanadaMes-ui/src/main.js
+++ b/CanadaMes-ui/src/main.js
@@ -2,6 +2,8 @@
 import App from './App.vue'
 import router from './router'
 import ElementUI, {Message, MessageBox} from 'element-ui';
+import locale from 'element-ui/lib/locale/lang/en' // lang i18n
+
 import 'element-ui/lib/theme-chalk/index.css';
 // 瀵煎叆鍏ㄥ眬鏍峰紡琛�
 import './assets/css/global.css'
@@ -23,7 +25,7 @@
 
 const EventBus = new Vue();
 Vue.prototype.$bus = EventBus;
-Vue.use(ElementUI);
+Vue.use(ElementUI,{locale});
 
 Vue.config.productionTip = false;
 
diff --git a/CanadaMes-ui/src/views/Electrical/Action.vue b/CanadaMes-ui/src/views/Electrical/Action.vue
index 9fe7ec2..e7f938d 100644
--- a/CanadaMes-ui/src/views/Electrical/Action.vue
+++ b/CanadaMes-ui/src/views/Electrical/Action.vue
@@ -36,7 +36,7 @@
     return {
       activeButton: '',
       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],
+        params: [0, 0, 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',
@@ -68,7 +68,7 @@
         xyData: [
           { name: 'D01 VFD conveyor', value: "0" },
           { name: 'D02 VFD conveyor', value: "0" },
-          { name: 'D03 VFD conveyor', value: "1" },
+          { name: 'D03 VFD conveyor', value: "0" },
           { name: 'D04 VFD conveyor', value: "0" },
           { name: 'D05 VFD conveyor', value: "0" },
           { name: 'D06 VFD conveyor', value: "0" },
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index f76e51d..c2448cd 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -91,11 +91,36 @@
     background-size: 46px 94px;
     background-attachment: local;
     width: 32px;
-
     position: absolute;
     /* left: 116px; */
     /* left:1060px;18.88px */
     background-image: url('../../img/bigcar01.png');
+}
+
+.blocks-img2 {
+    height: 100px;
+    max-width: 100vw;
+    background-repeat: no-repeat;
+    background-size: 85px 100px;
+    background-attachment: local;
+    width: 100px;
+    position: absolute;
+    /* left: 116px; */
+    /* left:1060px;18.88px */
+    background-image: url('../../img/dipan.png');
+}
+
+.blocks-img3 {
+    height: 90px;
+    max-width: 100vw;
+    background-repeat: no-repeat;
+    background-size: 160px 40px;
+    background-attachment: local;
+    width: 160px;
+    position: absolute;
+    /* left: 116px; */
+    /* left:1060px;18.88px */
+    background-image: url('../../img/taimian.png');
 }
 
 .el-table td,
@@ -151,37 +176,37 @@
                 </div>
             </div>
             <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
-                <el-input style="width:15%;" placeholder="Enter the glass lD" v-model="glassid"></el-input>
-                <el-button type="primary" @click="showform()">Manually feed the glass</el-button>
-                <el-input style="width:15%;" placeholder="Enter the order number" v-model="order"></el-input>
-                <el-button type="warning" @click="showform1();">Exit the glass by order number</el-button>
+                <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
+                <el-button type="primary" @click="showform()">{{ $t('Manually feed the glass') }}</el-button>
+                <el-input style="width:15%;" :placeholder="$t('Enter the order number')" v-model="order"></el-input>
+                <el-button type="warning" @click="showform1();">{{ $t('Exit the glass by order number') }}</el-button>
             </div>
             <div>
                 <el-table :data="this.tasklist1" border style="width: 100%">
-                    <el-table-column prop="glassId" label="Coming out glass ID"></el-table-column>
-                    <el-table-column :width="250" prop="cell" label="The Grille number being used"></el-table-column>
-                    <el-table-column prop="orderId" label="Order Nmuber"></el-table-column>
-                    <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-table-column prop="glassId" :label="$t('Coming out glass ID')"></el-table-column>
+                    <el-table-column :width="250" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
+                    <el-table-column :width="250" prop="cell" :label="$t('The Grille number being used')"></el-table-column>
+                    <el-table-column prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
+                    <el-table-column prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
+                    <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
+                    <el-table-column :label="$t('Operate')">
                         <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>
+                                @click="endtask(0, scope.row.glassId, scope.row.cell)">{{ $t('end task') }}</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <el-table :data="this.tasklist2" border style="width: 100%">
-                    <el-table-column prop="glassId" label="Incoming glass ID"></el-table-column>
-                    <el-table-column :width="250" prop="cell" label="The Grille number being used"></el-table-column>
-                    <el-table-column prop="orderId" label="Order Nmuber"></el-table-column>
-                    <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-table-column prop="glassId" :label="$t('Incoming glass ID')"></el-table-column>
+                    <el-table-column :width="250" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
+                    <el-table-column :width="250" prop="cell" :label="$t('The Grille number being used')"></el-table-column>
+                    <el-table-column prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
+                    <el-table-column prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
+                    <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
+                    <el-table-column :label="$t('Operate')">
                         <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>
+                                @click="endtask(1, scope.row.glassId, scope.row.cell)">{{ $t('end task') }}</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
@@ -219,70 +244,73 @@
                 </div>
                 <div class="blocks-img" :style="{ left: car1 + 'px', top: '16px' }"></div>
                 <div class="blocks-img" :style="{ left: car2 + 'px', top: '194px' }"></div>
+                <div class="blocks-img2" :style="{ left: '912px', top: '366px' }"></div>
+                <div class="blocks-img3" :style="{ left: '875px', top: '455px' }"></div>
             </div>
         </el-footer>
-        <el-dialog :visible.sync="dialogFormVisible" title="Please confirm the information">
+        <el-dialog :visible.sync="dialogFormVisible" :title="$t('Please confirm the glass information')">
             <el-form :model="form" label-width="100px" style="padding-right: 30px">
-                <el-form-item label="order">
+                <el-form-item :label="$t('order')">
                     <el-input v-model="form.orderno" autocomplete="off" />
                 </el-form-item>
-                <el-form-item label="length">
+                <el-form-item :label="$t('length')">
                     <el-input v-model="form.length" autocomplete="off" />
                 </el-form-item>
-                <el-form-item label="width">
+                <el-form-item :label="$t('width')">
                     <el-input v-model="form.width" autocomplete="off" />
                 </el-form-item>
-                <el-form-item label="coating">
+                <el-form-item :label="$t('coating')">
                     <el-input v-model="form.coating" autocomplete="off" />
                 </el-form-item>
             </el-form>
             <template #footer>
                 <span class="dialog-footer">
-                    <el-button @click="cancal()">cancal</el-button>
-                    <el-button @click="sbumitglassid()" type="primary">confirm</el-button>
+                    <el-button @click="cancal()">{{ $t('cancal') }}</el-button>
+                    <el-button @click="sbumitglassid()" type="primary">{{ $t('confirm') }}</el-button>
                 </span>
             </template>
         </el-dialog>
-        <el-dialog :visible.sync="dialogFormVisible1" title="Ordering Information">
+        <el-dialog :visible.sync="dialogFormVisible1" :title="$t('Please confirm the Ordering Information')">
             <el-form :model="form1" label-width="100px" style="padding-right: 30px">
-                <el-form-item label="order">
+                <el-form-item :label="$t('order')">
                     <el-input v-model="form1.order" autocomplete="off" />
                 </el-form-item>
-                <el-form-item label="number">
+                <el-form-item :label="$t('number')">
                     <el-input v-model="form1.number" autocomplete="off" />
                 </el-form-item>
             </el-form>
             <template #footer>
                 <span class="dialog-footer">
-                    <el-button @click="cancal1()">cancal</el-button>
-                    <el-button @click="getOrder();" type="primary">confirm</el-button>
+                    <el-button @click="cancal1()">{{ $t('cancal') }}</el-button>
+                    <el-button @click="getOrder();" type="primary">{{ $t('confirm') }}</el-button>
                 </span>
             </template>
         </el-dialog>
-        <el-dialog :visible.sync="dialogFormVisible2" title="Ordering Information">
+        <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')">
             <el-table :data="this.alarm" border style="width: 100%;">
-                <el-table-column prop="id" label="id"></el-table-column>
-                <el-table-column prop="content" label="content"></el-table-column>
-                <el-table-column prop="timeons" label="timeon"></el-table-column>
-
-                <el-table-column prop="endTime" label="endTime"></el-table-column>
+                <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-column prop="endTime" :label="$t('endTime')"></el-table-column>
             </el-table>
         </el-dialog>
-        <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>
-                <el-table-column prop="tier" label="tier"></el-table-column>
-                <el-table-column prop="glassId" label="glassid"></el-table-column>
-                <el-table-column :width="130" prop="orderId" label="order number"></el-table-column>
-                <el-table-column :width="150" prop="lengthWidth" label="length and width"></el-table-column>
-                <el-table-column prop="coating" label="coating"></el-table-column>
-                <el-table-column :width="150" label="operate">
+        <el-dialog :visible.sync="dialogFormVisible3" :title="$t('Cage Details')">
+            <el-table :data="this.cageinfo" :height="700" border style="width: 100%;overflow: auto;">
+                <el-table-column :width="150" prop="cage" :label="$t('The Cage number')"></el-table-column>
+                <el-table-column prop="cell" :label="$t('cell')"></el-table-column>
+                <el-table-column prop="tier" :label="$t('tier')"></el-table-column>
+                <el-table-column prop="glassId" :label="$t('glassid')"></el-table-column>
+                <el-table-column :width="130" prop="orderId" :label="$t('order number')"></el-table-column>
+                <el-table-column :width="150" prop="lengthWidth" :label="$t('Length and width')"></el-table-column>
+                <el-table-column prop="coating" :label="$t('coating')"></el-table-column>
+                <el-table-column :width="140" :label="$t('Operate')">
                     <template slot-scope='scope'>
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            @click="deleteglass(scope.row.glassId, scope.row.state)">delete</el-button>
+                            @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('delete') }}</el-button>
+                        <!-- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @click="open">{{ $t('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)">{{ $t('out') }}</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -442,9 +470,11 @@
             if (this.form1.order != "") {
                 InsertOrder(this.order).then(res => {
                     if (res.data.message == 200) {
-                        this.$message.success("Operation successful");
+                        this.dialogFormVisible1 = false;
+                        this.$message.success(this.$t('Operation successful'));
+
                     } else {
-                        this.$message.success("There is no such order");
+                        this.$message.success(this.$t('There is no glass for this order'));
                     }
                     this.load();
                 });
@@ -456,16 +486,16 @@
             if (this.form.order != "") {
                 Addglassid(this.glassid).then(res => {
                     if (res.data.message2 == 200) {
-                        this.$message.success("Operation successful");
+                        this.$message.success(this.$t('Operation successful'));
                         this.cancal();
-                    } else if(res.data.message2 == 500) {
-                        this.$message.success("There are currently tasks");
+                    } else if (res.data.message2 == 500) {
+                        this.$message.success(this.$t('There are currently tasks'));
                     }
-                    else if(res.data.message2 == 300) {
-                        this.$message.success("There is no such grid");
+                    else if (res.data.message2 == 300) {
+                        this.$message.success(this.$t('There is no such glass'));
                     }
-                    else if(res.data.message2 == 400) {
-                        this.$message.success("There is no such grid");
+                    else if (res.data.message2 == 400) {
+                        this.$message.success(this.$t('There is no such grid'));
                     }
                 });
             }
@@ -503,11 +533,23 @@
             this.form1 = {};
         },
         endtask(type, glassid, cell) {
-            UpdateTask(type, glassid, cell).then(res => {
-                if (res.data.message3 == 200) {
-                    this.$message.success("Operation successful");
-                }
+            this.$confirm(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
+                confirmButtonText: this.$t('Yes'),
+                cancelButtonText: this.$t('No'),
+                type: 'warning'
+            }).then(() => {
+                UpdateTask(type, glassid, cell).then(res => {
+                    if (res.data.message3 == 200) {
+                        this.$message.success(this.$t('Operation successful'));
+                    }
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: this.$t('Operation canceled')
+                });
             });
+
         },
         showcageinfo(cage) {
             this.cage = cage;
@@ -517,31 +559,52 @@
             });
         },
         deleteglass(glassid, state) {
-            if (state == 1) {
-                DeleteByGlassID(glassid).then(res => {
-                    if (res.data.message3 == 200) {
-                        this.$message.success("Operation successful");
-                    }
+            this.$confirm(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
+                confirmButtonText: this.$t('Yes'),
+                cancelButtonText: this.$t('No'),
+                type: 'warning'
+            }).then(() => {
+                if (state == 1) {
+                    DeleteByGlassID(glassid).then(res => {
+                        if (res.data.message3 == 200) {
+                            this.$message.success(this.$t('Operation successful'));
+                        }
+                    });
+                } else {
+                    this.$message.success(this.$t('No delete allowed'));
+                }
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: this.$t('Operation canceled')
                 });
-            } else {
-                this.$message.success("No out allowed");
-            }
+            });
         },
         outglass(glassid, state) {
-            if (state == 1) {
-                OutByGlassID(glassid).then(res => {
-                    if (res.data.message3 == 200) {
-                        this.$message.success("Operation successful");
-                    }
+            this.$confirm(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
+                confirmButtonText: this.$t('Yes'),
+                cancelButtonText: this.$t('No'),
+                type: 'warning'
+            }).then(() => {
+                if (state == 1) {
+                    OutByGlassID(glassid).then(res => {
+                        if (res.data.message3 == 200) {
+                            this.$message.success(this.$t('Operation successful'));
+                        }
+                    });
+                } else {
+                    this.$message.success(this.$t('No out allowed'));
+                }
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: this.$t('Operation canceled')
                 });
-            } else {
-                this.$message.success("No out allowed");
-            }
+            });
+
         }
-
     }
+
 }
-
-
 
 </script>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/power/index.vue b/CanadaMes-ui/src/views/power/index.vue
index 7488cf8..eb274a9 100644
--- a/CanadaMes-ui/src/views/power/index.vue
+++ b/CanadaMes-ui/src/views/power/index.vue
@@ -201,100 +201,101 @@
     this.getPowerList();
   },
   methods: {
-    getPowerList() {
-      selectPage(this.queryInfo).then(res => {
-        this.powerList.total = res.data.total;
-        this.powerList.records = res.data.records;
+  getPowerList() {
+    selectPage(this.queryInfo).then(res => {
+      this.powerList.total = res.data.total;
+      this.powerList.records = res.data.records;
+    });
+  },
+  // 鐩戝惉pageSize鏀瑰彉鐨勪簨浠�
+  handleSizeChange(newSize) {
+    this.queryInfo.pageSize = newSize;
+    this.getPowerList()
+  },
+  // 鐩戝惉pageNum鏀瑰彉鐨勪簨浠�
+  handleCurrentChange(newPage) {
+    this.queryInfo.pageNum = newPage;
+    this.getPowerList()
+  },
+  stateChange(info) {
+    saveOrUpdate(info).then(() => {
+      this.$message.success(this.$t('updateSuccessMessage'))
+    });
+  },
+  // 鐩戝惉娣诲姞鏉冮檺瀵硅瘽妗嗙殑鍏抽棴浜嬩欢
+  addDialogClosed() {
+    this.$refs['powerRef'].resetFields();
+  },
+  // 鐐瑰嚮鎸夐挳娣诲姞鏂版潈闄�
+  addPower() {
+    this.$refs.powerRef.validate(async valid => {
+      if (!valid) return;
+      // 鍙戣捣娣诲姞鏉冮檺鐨勭綉缁滆姹�
+      saveOrUpdate(this.addPowerForm).then(() => {
+        // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
+        this.getPowerList();
+        // 闅愯棌娣诲姞鏉冮檺瀵硅瘽妗�
+        this.addDialogVisible = false;
+        this.$message.success(this.$t('addSuccessMessage'));
       });
-    },
-    // 鐩戝惉pageSize鏀瑰彉鐨勪簨浠�
-    handleSizeChange(newSize) {
-      this.queryInfo.pageSize = newSize;
-      this.getPowerList()
-    },
-    // 鐩戝惉pageNum鏀瑰彉鐨勪簨浠�
-    handleCurrentChange(newPage) {
-      this.queryInfo.pageNum = newPage;
-      this.getPowerList()
-    },
-    stateChange(info) {
-      saveOrUpdate(info).then(() => {
-        this.$message.success("鏇存柊鐘舵�佹垚鍔�")
+    })
+  },
+  // 灞曠ず淇敼鏉冮檺鐨勫璇濇
+  showEditDialog(role) {
+    getById({id: role.id}).then(res => {
+      this.editRoleForm = res.data;
+    });
+    select(this.addPowerForm).then(res => {
+      this.roleList = res.data;
+    });
+    selectPermission(this.addPowerForm).then(res => {
+      this.permissionList = res.data;
+    });
+    this.editDialogVisible = true;
+  },
+  // 灞曠ず娣诲姞鏉冮檺鐨勫璇濇
+  showAddDialog() {
+    select(this.addPowerForm).then(res => {
+      this.roleList = res.data;
+    });
+    selectPermission(this.addPowerForm).then(res => {
+      this.permissionList = res.data;
+    });
+    this.addDialogVisible = true;
+  },
+  // 淇敼鏉冮檺淇℃伅骞舵彁浜�
+  editRoleInfo() {
+    this.$refs.powerRef.validate(async valid => {
+      if (!valid) return;
+      // 鍙戣捣淇敼鏉冮檺鐨勭綉缁滆姹�
+      saveOrUpdate(this.editRoleForm).then(() => {
+        // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
+        this.getPowerList();
+        // 闅愯棌娣诲姞鏉冮檺瀵硅瘽妗�
+        this.editDialogVisible = false;
+        this.$message.success(this.$t('updateSuccessMessage'));
       });
-    },
-    // 鐩戝惉娣诲姞鏉冮檺瀵硅瘽妗嗙殑鍏抽棴浜嬩欢
-    addDialogClosed() {
-      this.$refs['powerRef'].resetFields();
-    },
-    // 鐐瑰嚮鎸夐挳娣诲姞鏂版潈闄�
-    addPower() {
-      this.$refs.powerRef.validate(async valid => {
-        if (!valid) return;
-        // 鍙戣捣娣诲姞鏉冮檺鐨勭綉缁滆姹�
-        saveOrUpdate(this.addPowerForm).then(() => {
-          // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
-          this.getPowerList();
-          // 闅愯棌娣诲姞鏉冮檺瀵硅瘽妗�
-          this.addDialogVisible = false;
-          this.$message.success("娣诲姞鏉冮檺鎴愬姛");
-        });
-      })
-    },
-    // 灞曠ず淇敼鏉冮檺鐨勫璇濇
-    showEditDialog(role) {
-      getById({id: role.id}).then(res => {
-        this.editRoleForm = res.data;
+    })
+  },
+  // 鏍规嵁id鍒犻櫎鏉冮檺淇℃伅
+  removeById(power) {
+    // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鏉冮檺
+    this.$confirm(this.$t('deleteConfirmMessage'), this.$t('prompt'), {
+      confirmButtonText: this.$t('confirmButtonText'),
+      cancelButtonText: this.$t('cancelButtonText'),
+      type: 'warning'
+    }).then(() => {
+      // 鍒犻櫎鏉冮檺
+      removeById({id: power.id}).then(() => {
+        // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
+        this.getPowerList();
+        this.$message.success(this.$t('deleteSuccessMessage'));
       });
-      select(this.addPowerForm).then(res => {
-        this.roleList = res.data;
-      });
-      selectPermission(this.addPowerForm).then(res => {
-        this.permissionList = res.data;
-      });
-      this.editDialogVisible = true;
-    },
-    // 灞曠ず娣诲姞鏉冮檺鐨勫璇濇
-    showAddDialog() {
-      select(this.addPowerForm).then(res => {
-        this.roleList = res.data;
-      });
-      selectPermission(this.addPowerForm).then(res => {
-        this.permissionList = res.data;
-      });
-      this.addDialogVisible = true;
-    },
-    // 淇敼鏉冮檺淇℃伅骞舵彁浜�
-    editRoleInfo() {
-      this.$refs.powerRef.validate(async valid => {
-        if (!valid) return;
-        // 鍙戣捣淇敼鏉冮檺鐨勭綉缁滆姹�
-        saveOrUpdate(this.editRoleForm).then(() => {
-          // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
-          this.getPowerList();
-          // 闅愯棌娣诲姞鏉冮檺瀵硅瘽妗�
-          this.editDialogVisible = false;
-          this.$message.success("淇敼鏉冮檺鎴愬姛");
-        });
-      })
-    },
-    // 鏍规嵁id鍒犻櫎鏉冮檺淇℃伅
-    removeById(power) {
-      // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鏉冮檺
-      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ潈闄�, 鏄惁缁х画?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        // 鍒犻櫎鏉冮檺
-        removeById({id: power.id}).then(() => {
-          // 閲嶆柊鑾峰彇鏉冮檺鍒楄〃
-          this.getPowerList();
-          this.$message.success("鍒犻櫎鏉冮檺鎴愬姛");
-        });
-      }).catch(() => {
-        this.$message.info('宸插彇娑堝垹闄�');
-      })
-    }
+    }).catch(() => {
+      this.$message.info(this.$t('deleteCancelledMessage'));
+    })
+  }
+
   }
 }
 </script>
diff --git a/CanadaMes-ui/src/views/user/index.vue b/CanadaMes-ui/src/views/user/index.vue
index ccff3f2..93aea7e 100644
--- a/CanadaMes-ui/src/views/user/index.vue
+++ b/CanadaMes-ui/src/views/user/index.vue
@@ -40,7 +40,7 @@
             </el-switch>
           </template>
         </el-table-column>
-        <el-table-column label="鎿嶄綔">
+        <el-table-column :label="$t('langOperation')">
           <template slot-scope="scope">
             <el-button type="primary" icon="el-icon-refresh" @click="resetPassword(scope.row)">
 
@@ -241,84 +241,84 @@
       });
     },
     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;
+  this.$confirm(this.$t('confirmResetPassword'), this.$t('resetPassword'), {
+    confirmButtonText: this.$t('confirm'),
+    cancelButtonText: this.$t('cancel'),
+    type: 'warning',
+  })
+    .then(() => {
+      resetPass(info).then(() => {
+        this.$message.success(this.$t('passwordResetSuccess'));
       });
+    })
+    .catch(() => {
+      // 鐢ㄦ埛鍙栨秷閲嶇疆瀵嗙爜鎿嶄綔
+    });
+},
+showEditDialog (id) {
+  getById({ id: id }).then(res => {
+    this.editUserForm = res.data;
+    this.editDialogVisible = true;
+  });
 
+  select().then(res => {
+    this.roleList = res.data;
+  });
+},
+removeUserById (user) {
+  // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鍒嗙被
+  this.$confirm(this.$t('confirmDeleteCategory'), this.$t('prompt'), {
+    confirmButtonText: this.$t('confirm'),
+    cancelButtonText: this.$t('cancel'),
+    type: 'warning'
+  }).then(() => {
+    removeById({ id: user.id }).then(() => {
+      // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
+      this.getUserList();
+      this.$message.success(this.$t('userDeleteSuccess'));
+    });
+  }).catch(() => {
+    this.$message.info(this.$t('deleteCanceled'));
+  });
+},
+handleSizeChange (newSize) {
+  this.queryInfo.pageSize = newSize;
+  this.getUserList()
+},
+handleCurrentChange (newPage) {
+  this.queryInfo.pageNum = newPage;
+  this.getUserList()
+},
+addDialogClosed () {
+  this.$refs['addUserRef'].resetFields();
+},
+addUser () {
+  this.$refs.addUserRef.validate(async valid => {
+    if (!valid) return;
+    saveOrUpdate(this.addUserForm).then(() => {
+      const successMessage = this.$t('addUserSuccess');
+      this.$message.success(successMessage);
+      // 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
+      this.addDialogVisible = false;
+      // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
+      this.getUserList();
+    });
+  })
+},
+editUserInfo () {
+  this.$refs.addCategoryRef.validate(async valid => {
+    if (!valid) return;
 
-      select().then(res => {
-        this.roleList = res.data;
-      });
-    },
-    removeUserById (user) {
-      // 寮规璇㈤棶鐢ㄦ埛鏄惁鍒犻櫎鍒嗙被
-      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ垎绫�, 鏄惁缁х画?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        removeById({ id: user.id }).then(() => {
-          // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
-          this.getUserList();
-          this.$message.success("鍒犻櫎鐢ㄦ埛鎴愬姛");
-        });
-      }).catch(() => {
-        this.$message.info('宸插彇娑堝垹闄�');
-      });
-    },
-    handleSizeChange (newSize) {
-      this.queryInfo.pageSize = newSize;
-      this.getUserList()
-    },
-    handleCurrentChange (newPage) {
-      this.queryInfo.pageNum = newPage;
-      this.getUserList()
-    },
-    addDialogClosed () {
-      this.$refs['addUserRef'].resetFields();
-    },
-    addUser () {
-      this.$refs.addUserRef.validate(async valid => {
-        if (!valid) return;
-        saveOrUpdate(this.addUserForm).then(() => {
-          this.$message.success("娣诲姞鐢ㄦ埛鎴愬姛");
-          // 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
-          this.addDialogVisible = false;
-          // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
-          this.getUserList();
-        });
-      })
-    },
-    editUserInfo () {
-      this.$refs.addCategoryRef.validate(async valid => {
-        if (!valid) return;
-
-        saveOrUpdate(this.editUserForm).then(() => {
-          const 淇敼鐢ㄦ埛鎴愬姛 = this.$t('淇敼鐢ㄦ埛鎴愬姛');
-          this.$message.success(淇敼鐢ㄦ埛鎴愬姛);
-          // 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
-          this.editDialogVisible = false;
-          // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
-          this.getUserList();
-        });
-      })
-    }
+    saveOrUpdate(this.editUserForm).then(() => {
+      const successMessage = this.$t('editUserSuccess');
+      this.$message.success(successMessage);
+      // 闅愯棌娣诲姞鍒嗙被瀵硅瘽妗�
+      this.editDialogVisible = false;
+      // 閲嶆柊鑾峰彇鍒嗙被鍒楄〃
+      this.getUserList();
+    });
+  })
+}
   }
 }
 </script>
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
index 65b6d28..92217b9 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -41,6 +41,7 @@
           // TODO Auto-generated catch block
           e.printStackTrace();
         }
+
     
       //鍒ゆ柇杩涚墖璇锋眰 
        List<Short> datas1List=S7control.getinstance().ReadWord("DB106.24", 1);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
index 03f59f7..96ac83d 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
@@ -15,11 +15,11 @@
                 e.printStackTrace();
             }
 
-            List<Short> paramlist = S7control.getinstance().ReadWord("DB100.DBW", 12);
+            List<Short> arraylist = S7control.getinstance().ReadWord("DB100.DBW0", 12);
             List<Short> state = S7control.getinstance().ReadWord("DB103.DBW0", 10);
             JSONObject jsonObject = new JSONObject();
 //            new short[]{1111,121, 3232, 0, 1, 0, 1, 0, 1, 0, 1, 0}
-            jsonObject.append("params",paramlist );
+            jsonObject.append("params",  arraylist );
             jsonObject.append("state", state);
             WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
             if (sendwServer != null) {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
index ee35614..cc0f805 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
@@ -21,8 +21,8 @@
 //      JSONObject jsonObject = new JSONObject();
 //      jsonObject.append("params", new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0});
 
-    List<Boolean> paramlist = S7control.getinstance().ReadBits("DB100.DBW", 12);
-//      Boolean[] values = {false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true,false, true};
+ List<Boolean> paramlist = S7control.getinstance().ReadBits("DB2.DBX0.0 ", 26);
+//      Boolean[] values = {true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,true, true,false, true};
 //      List<Boolean> paramlist = new ArrayList<>(Arrays.asList(values));
       if (paramlist == null) {
 
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 953fd91..cc53b99 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
@@ -17,7 +17,7 @@
     public void run() {
         while (this != null) {
             try {
-                Thread.sleep(10000);
+                Thread.sleep(1000);
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
index 697ba48..9dc9b64 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -22,7 +22,7 @@
      List<StorageCage> selectAll(Short orderids);
 
      //鍒ゆ柇璇ョ瀛愭槸鍚︽湁鍚堥�傚搴︾┖鏍�
-     @Select("select cage,cell,tier,id,ROUND(id/2)as prcId from storage_cage where cage=#{cage1} and state=0 and width>=#{width} ORDER BY cell,tier LIMIT 1")
+     @Select("select cage,cell,tier,id,ROUND(id/2)as prcId from storage_cage where cage=#{cage1} and state=0 and width>=#{width} ORDER BY cell asc,tier desc LIMIT 1")
      StorageCage selectCage1(int  cage1,double width);
      //鍒ゆ柇绗煎瓙鍐呯幓鐠冩暟
      @Select("select COUNT(tier)as tier from storage_cage where  cage=#{cage} and cell=#{cell} and state=1;")
@@ -54,16 +54,24 @@
      StorageCage selectGlassCage(int cage,double width,int cage1,int cage2);
 
     //鍒犻櫎绗煎瓙淇℃伅(鍑虹墖)
-    @Update("update storage_cage set state=#{state},width=width+#{width},glass_id=#{glassid},order_id=#{orderid},glasswidth=0 where cage=#{cage} and cell=#{cell} and tier=#{tier};")
+    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{orderid},glasswidth=0 where cage=#{cage} and cell=#{cell} and tier=#{tier};")
     void UpdataGlassCage(String orderid,String glassid,double width,int cage,int cell,int tier,int state);
 
     //淇敼绗煎瓙淇℃伅(杩涚墖)
-    @Update("update storage_cage set state=#{state},width=width-#{width},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where id=#{id};")
+    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where id=#{id};")
     void UpdataAddCage(Short orderid,Short glassid,double width,int cage,int cell,int id,int state);
+    //淇敼鍚岀瀛愭牸瀛愬搴�
+     @Update("update storage_cage set width=width-#{width} where   cage=#{cage} and cell=#{cell};")
+    void UpdataAddCage1(double width,int cage,int cell);
+    //淇敼鍚岀瀛愭牸瀛愬搴�(鍑虹墖)
+     @Update("update storage_cage set width=width+#{width} where   cage=#{cage} and cell=#{cell};")
+    void UpdataOutCage(double width,int cage,int cell);
     //璋冩嫧鏇存崲绗煎瓙淇℃伅
-    @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=2)as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.glasswidth=b.glasswidth,a.width=a.width-b.glasswidth,a.state=1 where a.id=#{id1}")
+    @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=2)as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.width=a.width-b.glasswidth,a.state=1 where a.id=#{id1}")
     void UpdateDBCage(int id1,int cage,int cell);
     // @Insert("insert into user(name, date, address, user_no) values (#{name}, #{date}, #{address}, #{userNo})")
     // void insert (Spian spian);
-    
+    //鏂板浠诲姟琛�
+    @Insert("INSERT INTO `canadames`.`storage_task`(`task_type`, `task_state`, `shelf_rack`, `load_rack`, `start_time`, `finsh_time`) VALUES (#{task_type},#{task_state},#{shelf_rack},#{load_rack},NOW(),NOW());")
+    void Inserttask(int task_type,int task_state,int shelf_rack,int load_rack);
 }
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
index 0ca1741..0f670ca 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
@@ -67,4 +67,6 @@
 			e.printStackTrace();
 		}
 	}
+
+
 }
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 2d8f2f3..4e5c075 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
@@ -14,300 +14,323 @@
 
 @Service
 public class SpianService {
-    @Autowired
-    private SpianMapper spianMapper;
+  @Autowired
+  private SpianMapper spianMapper;
 
-    // @GetMapping("/all2")
-    public Result selectout(String orderid) {
-        // 瀹氫箟PRC鏁版嵁浼犻�佹暟缁�
-        List<String> adddresslist = new ArrayList<>();
-        adddresslist.add("DB105.6");// 鍑虹墖杞﹁捣濮嬩綅缃�
-        adddresslist.add("DB105.8");// 鍑虹墖杞︾洰鏍囦綅缃�
-        adddresslist.add("DB105.10");// 鍑虹墖绗肩幓鐠冩暟
-        adddresslist.add("DB105.14");// 鍑虹墖杞﹀惎鍔� 1涓哄惎鍔�
-        List<Short> datas = new ArrayList<>();
-        // 鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
-        StorageCage cageout = spianMapper.selectOut(orderid);
-        int cage = cageout.getCage(); // 鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
-        int cell = cageout.getCell();// 鍑虹墖鏍煎彿
-        int tier = cageout.getTier();// 鍑虹墖鍐呭鐗�
-        int prcid = cageout.getPrcId();// prcid
-        int prcid2;
-        int ids;
-        double glasswidth = cageout.getGlassWidth();
-        // 鍒ゆ柇鐜荤拑鍐呭鐗�
-        if (tier == 2) {
-            // 鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
-            // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
-            spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, tier, 0);
+  // @GetMapping("/all2")
+  public Result selectout(String orderid) {
+    // 瀹氫箟PRC鏁版嵁浼犻�佹暟缁�
+    List<String> adddresslist = new ArrayList<>();
+    adddresslist.add("DB105.6");// 鍑虹墖杞﹁捣濮嬩綅缃�
+    adddresslist.add("DB105.8");// 鍑虹墖杞︾洰鏍囦綅缃�
+    adddresslist.add("DB105.10");// 鍑虹墖绗肩幓鐠冩暟
+    adddresslist.add("DB105.14");// 鍑虹墖杞﹀惎鍔� 1涓哄惎鍔�
+    List<Short> datas = new ArrayList<>();
+    // 鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
+    StorageCage cageout = spianMapper.selectOut(orderid);
+    int cage = cageout.getCage(); // 鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
+    int cell = cageout.getCell();// 鍑虹墖鏍煎彿
+    int tier = cageout.getTier();// 鍑虹墖鍐呭鐗�
+    int prcid = cageout.getPrcId();// prcid
+    int prcid2;
+    int ids;
+    int cages;
+    int cells;
+    double glasswidth = cageout.getGlassWidth();
+    // 鍒ゆ柇鐜荤拑鍐呭鐗�
+    if (tier == 2) {
+      // 鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
+      // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
+      spianMapper.UpdataOutCage(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+      spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, tier, 0);
 
-            datas.add((short) prcid);
-            datas.add((short) 1000);
-            datas.add((short) 1);
-            datas.add((short) 1);
-            S7control.getinstance().WriteWord(adddresslist, datas);
-            return Result.success(datas);
-        } else {
-            // 鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
-            int state = spianMapper.selectGlassState(cage, cell);
-            // 鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
-            if (state == 0) {
-                spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, tier, 0);
-                datas.add((short) prcid);
-                datas.add((short) 1000);
-                datas.add((short) 1);
-                datas.add((short) 1);
-                S7control.getinstance().WriteWord(adddresslist, datas);
-                return Result.success("鐘舵�佷负0,鐩存帴鍑虹墖");
-            } else {
-                // 鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
-                if (cage < 6) {
-                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6);
-                    if (cagecell == null) {
-                        return Result.success(cagecell);
-                    }
-                    // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
-                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID
-                    ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
-                    // 鏇存崲鐜荤拑鐨勭瀛�
-                    spianMapper.UpdateDBCage(ids, cage, cell);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
-                    spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);// 娓呴櫎鍘熸牸瀛愭暟鎹�
-                    // 濉叆璋冩嫧鏁版嵁
-                    datas.add((short) prcid);// 璋冩嫧澶栫墖璧峰浣嶇疆
-                    datas.add((short) prcid2);
-                    datas.add((short) 2);
-                    datas.add((short) 1);
-                    // 浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-                    datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
-                    // 鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�,濉叆鍑虹墖鏁版嵁
-                    datas.add((short) prcid);
-                    datas.add((short) 1000);
-                    datas.add((short) 1);
-                    datas.add((short) 1);
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-                    // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
+      datas.add((short) prcid);
+      datas.add((short) 1000);
+      datas.add((short) 1);
+      datas.add((short) 1);
+      S7control.getinstance().WriteWord(adddresslist, datas);
+      return Result.success(datas);
+    } else {
+      // 鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
+      int state = spianMapper.selectGlassState(cage, cell);
+      // 鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
+      if (state == 0) {
+        spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, tier, 0);
+        datas.add((short) prcid);
+        datas.add((short) 1000);
+        datas.add((short) 1);
+        datas.add((short) 1);
+        S7control.getinstance().WriteWord(adddresslist, datas);
+        return Result.success("鐘舵�佷负0,鐩存帴鍑虹墖");
+      } else {
+        // 鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
+        if (cage < 6) {
+          StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6);
+          if (cagecell == null) {
+            return Result.success(cagecell);
+          }
+          // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+          prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID
+          ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
+          cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
+          cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
+          // 鏇存崲鐜荤拑鐨勭瀛�
+          spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴�
+          spianMapper.UpdateDBCage(ids, cage, cell);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+          spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);// 娓呴櫎鍘熸牸瀛愭暟鎹�
+          spianMapper.UpdataOutCage(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+          // 濉叆璋冩嫧鏁版嵁
+          datas.add((short) prcid);// 璋冩嫧澶栫墖璧峰浣嶇疆
+          datas.add((short) prcid2);
+          datas.add((short) 2);
+          datas.add((short) 1);
+          // 浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
+          S7control.getinstance().WriteWord(adddresslist, datas);
+          datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
+          // 鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�,濉叆鍑虹墖鏁版嵁
+          datas.add((short) prcid);
+          datas.add((short) 1000);
+          datas.add((short) 1);
+          datas.add((short) 1);
+          S7control.getinstance().WriteWord(adddresslist, datas);
+          // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
 
-                    return Result.success(cagecell); // 璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
+          return Result.success(cagecell); // 璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
 
-                } else {// 绗煎瓙鍙峰ぇ浜�5鏃�
-                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11);
-                    if (cagecell == null) {
-                        return Result.success(cagecell);
-                    }
-                    // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
-                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID
-                    ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
-                    // 濉叆璋冩嫧鏁版嵁
-                    datas.add((short) prcid);
-                    datas.add((short) prcid2);
-                    datas.add((short) 2);
-                    datas.add((short) 1);
-                    // 杞Щ鍘熻皟鎷ㄦ牸瀛愭暟鎹�
-                    spianMapper.UpdateDBCage(ids, cage, cell);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
-                    spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);// 娓呴櫎鍘熸牸瀛愭暟鎹�
-                    // 浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-                    datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
-                    // 鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
-                    // 濉叆鍑虹墖鏁版嵁
-                    datas.add((short) prcid);
-                    datas.add((short) 1000);
-                    datas.add((short) 1);
-                    datas.add((short) 1);
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-                    return Result.success(cagecell); // 璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
+        } else {// 绗煎瓙鍙峰ぇ浜�5鏃�
+          StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11);
+          if (cagecell == null) {
+            return Result.success(cagecell);
+          }
+          // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+          prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID
+          ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
+          cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
+          cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
+          // 濉叆璋冩嫧鏁版嵁
+          datas.add((short) prcid);
+          datas.add((short) prcid2);
+          datas.add((short) 2);
+          datas.add((short) 1);
+          // 杞Щ鍘熻皟鎷ㄦ牸瀛愭暟鎹�
+          spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴�
+          spianMapper.UpdateDBCage(ids, cage, cell);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+          spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);// 娓呴櫎鍘熸牸瀛愭暟鎹�
+          spianMapper.UpdataOutCage(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+          // 浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
+          S7control.getinstance().WriteWord(adddresslist, datas);
+          datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
+          // 鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
+          // 濉叆鍑虹墖鏁版嵁
+          datas.add((short) prcid);
+          datas.add((short) 1000);
+          datas.add((short) 1);
+          datas.add((short) 1);
+          S7control.getinstance().WriteWord(adddresslist, datas);
+          return Result.success(cagecell); // 璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
 
-                }
-
-            }
         }
 
+      }
     }
 
-    // @GetMapping("/all")
-    // 杩涚墖浠诲姟,浼犺鍗昳d
-    // 鎸夎鍗曚紭鍏堣繘鐗�
-    public Short selectAll(Short glassid) {
+  }
 
-        int cage1;
-        int cells;
-        int ids;
-        int prcid;
-        int tiers;
-        int prctier;
+  // @GetMapping("/all")
+  // 杩涚墖浠诲姟,浼犺鍗昳d
+  // 鎸夎鍗曚紭鍏堣繘鐗�
+  public Short selectAll(Short glassid) {
 
-        Glass glasslist = spianMapper.selectGlass(glassid);
-        if (glasslist == null) {
-            return (300);
+    int cage1;
+    int cells;
+    int ids;
+    int prcid;
+    int tiers;
+    int prctier;
+
+    Glass glasslist = spianMapper.selectGlass(glassid);
+    if (glasslist == null) {
+      return (300);
+    }
+    double widths = glasslist.getWidth();
+    Short orderids = glasslist.getOrderId();
+
+    List<String> adddresslist = new ArrayList<>();
+    adddresslist.add("DB105.0");// 杩涚墖杞﹁捣濮嬩綅缃�
+    adddresslist.add("DB105.2");// 杩涚墖杞︾洰鏍囦綅缃�
+    adddresslist.add("DB105.4");// 杩涚墖绗肩幓鐠冩暟
+    adddresslist.add("DB105.12");// 杩涚墖杞﹀惎鍔� 1涓哄惎鍔�
+    List<Short> datas = new ArrayList<>();
+
+    // String orderid="A001";
+    // 鑾峰彇璁㈠崟鐩稿叧搴︽渶楂樼殑绗煎瓙鎺掑簭
+    List<StorageCage> storageCage = spianMapper.selectAll(orderids);
+    if (storageCage == null) {
+      return (400);
+    }
+    for (StorageCage storageCage2 : storageCage) {
+      // 淇濆瓨璁㈠崟浼樺厛椤哄簭绗煎瓙鍙�
+      cage1 = storageCage2.getCage();
+      // 鍒ゆ柇璇ョ瀛愬彿鐩搁偦鏈�澶х殑绌烘牸鏁�
+      int cages = spianMapper.selectCage(cage1);
+      // 鍒ゆ柇閫変腑绗煎瓙鏄惁鏈夊悎閫傚搴︾┖鏍�
+      StorageCage cages1 = spianMapper.selectCage1(cage1, widths);
+      if (cages1 != null) {
+        ids = cages1.getId();// 鏁版嵁搴揑D
+        tiers = cages1.getTier();// 鍐呭鐗�
+        cells = cages1.getCell();// 鏍煎瓙鍙�
+        prcid = cages1.getPrcId();// 浼犵粰prc鐨勭洰鏍囧湴id
+        prctier = spianMapper.selectsum(cage1, cells);// 浼犵粰prc鐨勬牸瀛愬唴鐜荤拑鏁�
+        // 鏈夊悎閫傜┖鏍兼椂杩涚墖
+        if (cages > 1 && cages1.getTier() != null) {
+          // 鎵ц杩涚墖
+          datas.add((short) 1000);
+          datas.add((short) prcid);
+          datas.add((short) prctier);
+          datas.add((short) 1);
+          // 鏁版嵁搴撲慨鏀圭瀛愯〃鏂板涓�鏉$幓鐠�
+          spianMapper.UpdataAddCage(orderids, glassid, widths, cage1, cells, ids, 1);
+          spianMapper.UpdataAddCage1(widths, cage1, cells);// 鍑忓皯鏍煎瓙瀹藉害
+          S7control.getinstance().WriteWord(adddresslist, datas);
+
+          return (200);
         }
-        double widths = glasslist.getWidth();
-        Short orderids = glasslist.getOrderId();
-
-        List<String> adddresslist = new ArrayList<>();
-        adddresslist.add("DB105.0");// 杩涚墖杞﹁捣濮嬩綅缃�
-        adddresslist.add("DB105.2");// 杩涚墖杞︾洰鏍囦綅缃�
-        adddresslist.add("DB105.4");// 杩涚墖绗肩幓鐠冩暟
-        adddresslist.add("DB105.12");// 杩涚墖杞﹀惎鍔� 1涓哄惎鍔�
-        List<Short> datas = new ArrayList<>();
-
-        // String orderid="A001";
-        // 鑾峰彇璁㈠崟鐩稿叧搴︽渶楂樼殑绗煎瓙鎺掑簭
-        List<StorageCage> storageCage = spianMapper.selectAll(orderids);
-        if (storageCage == null) {
-            return (400);
-        }
-        for (StorageCage storageCage2 : storageCage) {
-            // 淇濆瓨璁㈠崟浼樺厛椤哄簭绗煎瓙鍙�
-            cage1 = storageCage2.getCage();
-            // 鍒ゆ柇璇ョ瀛愬彿鐩搁偦鏈�澶х殑绌烘牸鏁�
-            int cages = spianMapper.selectCage(cage1);
-            // 鍒ゆ柇閫変腑绗煎瓙鏄惁鏈夊悎閫傚搴︾┖鏍�
-            StorageCage cages1 = spianMapper.selectCage1(cage1, widths);
-            if (cages1 != null) {
-                ids = cages1.getId();// 鏁版嵁搴揑D
-                tiers = cages1.getTier();// 鍐呭鐗�
-                cells = cages1.getCell();// 鏍煎瓙鍙�
-                prcid = cages1.getPrcId();// 浼犵粰prc鐨勭洰鏍囧湴id
-                prctier = spianMapper.selectsum(cage1, cells);// 浼犵粰prc鐨勬牸瀛愬唴鐜荤拑鏁�
-                // 鏈夊悎閫傜┖鏍兼椂杩涚墖
-                if (cages > 1 && cages1.getTier() != null) {
-                    // 鎵ц杩涚墖
-                    datas.add((short) 1000);
-                    datas.add((short) prcid);
-                    datas.add((short) prctier);
-                    datas.add((short) 1);
-                    // 鏁版嵁搴撲慨鏀圭瀛愯〃鏂板涓�鏉$幓鐠�
-                    spianMapper.UpdataAddCage(orderids, glassid, widths, cage1, cells, ids, 1);
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-
-                    return (200);
-                }
-            }
-
-        }
-        return (300);
+      }
 
     }
+    return (400);
 
-    // @GetMapping("/all2")
-    public Result selectout2(String glassid) {
-        // 瀹氫箟PRC鏁版嵁浼犻�佹暟缁�
-        List<String> adddresslist = new ArrayList<>();
-        adddresslist.add("DB105.6");// 鍑虹墖杞﹁捣濮嬩綅缃�
-        adddresslist.add("DB105.8");// 鍑虹墖杞︾洰鏍囦綅缃�
-        adddresslist.add("DB105.10");// 鍑虹墖绗肩幓鐠冩暟
-        adddresslist.add("DB105.14");// 鍑虹墖杞﹀惎鍔� 1涓哄惎鍔�
-        List<Short> datas = new ArrayList<>();
-        // 鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
-        StorageCage cageout = spianMapper.selectOut2(glassid);
-        int cage = cageout.getCage(); // 鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
-        int cell = cageout.getCell();// 鍑虹墖鏍煎彿
-        int tier = cageout.getTier();// 鍑虹墖鍐呭鐗�
-        int prcid = cageout.getPrcId();// prcid
-        int prcid2;
-        int ids;
-        double glasswidth = cageout.getGlassWidth();
-        // 鍒ゆ柇鐜荤拑鍐呭鐗�
-        if (tier == 2) {
-            // 鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
-            // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
-            spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, tier, 0);
+  }
 
-            datas.add((short) prcid);
-            datas.add((short) 1000);
-            datas.add((short) 1);
-            datas.add((short) 1);
-            S7control.getinstance().WriteWord(adddresslist, datas);
-            return Result.success(datas);
-        } else {
-            // 鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
-            int state = spianMapper.selectGlassState(cage, cell);
-            // 鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
-            if (state == 0) {
-                return Result.success("鐘舵�佷负0,鐩存帴鍑虹墖");
-            } else {
-                // 鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
-                if (cage < 6) {
-                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6);
-                    if (cagecell == null) {
-                        return Result.success(cagecell);
-                    }
-                    // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
-                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID
-                    ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
-                    // 鏇存崲鐜荤拑鐨勭瀛�
-                    spianMapper.UpdateDBCage(ids, cage, cell);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
-                    spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);// 娓呴櫎鍘熸牸瀛愭暟鎹�
-                    // 濉叆璋冩嫧鏁版嵁
-                    datas.add((short) prcid);// 璋冩嫧澶栫墖璧峰浣嶇疆
-                    datas.add((short) prcid2);
-                    datas.add((short) 2);
-                    datas.add((short) 1);
-                    // 浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-                    datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
-                    // 鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�,濉叆鍑虹墖鏁版嵁
-                    datas.add((short) prcid);
-                    datas.add((short) 1000);
-                    datas.add((short) 1);
-                    datas.add((short) 1);
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-                    // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
+  // @GetMapping("/all2")
+  public Result selectout2(String glassid) {
+    // 瀹氫箟PRC鏁版嵁浼犻�佹暟缁�
+    List<String> adddresslist = new ArrayList<>();
+    adddresslist.add("DB105.6");// 鍑虹墖杞﹁捣濮嬩綅缃�
+    adddresslist.add("DB105.8");// 鍑虹墖杞︾洰鏍囦綅缃�
+    adddresslist.add("DB105.10");// 鍑虹墖绗肩幓鐠冩暟
+    adddresslist.add("DB105.14");// 鍑虹墖杞﹀惎鍔� 1涓哄惎鍔�
+    List<Short> datas = new ArrayList<>();
+    // 鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
+    StorageCage cageout = spianMapper.selectOut2(glassid);
+    int cage = cageout.getCage(); // 鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
+    int cell = cageout.getCell();// 鍑虹墖鏍煎彿
+    int tier = cageout.getTier();// 鍑虹墖鍐呭鐗�
+    int prcid = cageout.getPrcId();// prcid
+    int prcid2;
+    int ids;
+    int cages;
+    int cells;
+    double glasswidth = cageout.getGlassWidth();
+    // 鍒ゆ柇鐜荤拑鍐呭鐗�
+    if (tier == 2) {
+      // 鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
+      // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
+      spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, tier, 0);
+      spianMapper.UpdataOutCage(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+      datas.add((short) prcid);
+      datas.add((short) 1000);
+      datas.add((short) 1);
+      datas.add((short) 1);
+      S7control.getinstance().WriteWord(adddresslist, datas);
+      return Result.success(datas);
+    } else {
+      // 鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
+      int state = spianMapper.selectGlassState(cage, cell);
+      // 鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
+      if (state == 0) {
+        return Result.success("鐘舵�佷负0,鐩存帴鍑虹墖");
+      } else {
+        // 鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
+        if (cage < 6) {
+          StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6);
+          if (cagecell == null) {
+            return Result.success(cagecell);
+          }
+          // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+          prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID
+          ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
+          cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
+          cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
+          // 鏇存崲鐜荤拑鐨勭瀛�
+          spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴�
+          spianMapper.UpdateDBCage(ids, cage, cell);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+          spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);// 娓呴櫎鍘熸牸瀛愭暟鎹�
+          spianMapper.UpdataOutCage(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+          // 濉叆璋冩嫧鏁版嵁
+          datas.add((short) prcid);// 璋冩嫧澶栫墖璧峰浣嶇疆
+          datas.add((short) prcid2);
+          datas.add((short) 2);
+          datas.add((short) 1);
+          // 浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
+          S7control.getinstance().WriteWord(adddresslist, datas);
+          datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
+          // 鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�,濉叆鍑虹墖鏁版嵁
+          datas.add((short) prcid);
+          datas.add((short) 1000);
+          datas.add((short) 1);
+          datas.add((short) 1);
+          S7control.getinstance().WriteWord(adddresslist, datas);
+          // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
 
-                    return Result.success(cagecell); // 璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
+          return Result.success(cagecell); // 璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
 
-                } else {// 绗煎瓙鍙峰ぇ浜�5鏃�
-                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11);
-                    if (cagecell == null) {
-                        return Result.success(cagecell);
-                    }
-                    // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
-                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID
-                    ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
-                    // 濉叆璋冩嫧鏁版嵁
-                    datas.add((short) prcid);
-                    datas.add((short) prcid2);
-                    datas.add((short) 2);
-                    datas.add((short) 1);
-                    // 杞Щ鍘熻皟鎷ㄦ牸瀛愭暟鎹�
-                    spianMapper.UpdateDBCage(ids, cage, cell);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
-                    spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);// 娓呴櫎鍘熸牸瀛愭暟鎹�
-                    // 浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-                    datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
-                    // 鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
-                    // 濉叆鍑虹墖鏁版嵁
-                    datas.add((short) prcid);
-                    datas.add((short) 1000);
-                    datas.add((short) 1);
-                    datas.add((short) 1);
-                    S7control.getinstance().WriteWord(adddresslist, datas);
-                    return Result.success(cagecell); // 璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
+        } else {// 绗煎瓙鍙峰ぇ浜�5鏃�
+          StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11);
+          if (cagecell == null) {
+            return Result.success(cagecell);
+          }
+          // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+          prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID
+          ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
+          cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
+          cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
 
-                }
+          // 濉叆璋冩嫧鏁版嵁
+          datas.add((short) prcid);
+          datas.add((short) prcid2);
+          datas.add((short) 2);
+          datas.add((short) 1);
+          // 杞Щ鍘熻皟鎷ㄦ牸瀛愭暟鎹�
+          spianMapper.UpdateDBCage(ids, cage, cell);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+          spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴�
+          spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);// 娓呴櫎鍘熸牸瀛愭暟鎹�
+          spianMapper.UpdataOutCage(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+          // 浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
+          S7control.getinstance().WriteWord(adddresslist, datas);
+          datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
+          // 鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
+          // 濉叆鍑虹墖鏁版嵁
+          datas.add((short) prcid);
+          datas.add((short) 1000);
+          datas.add((short) 1);
+          datas.add((short) 1);
+          S7control.getinstance().WriteWord(adddresslist, datas);
+          return Result.success(cagecell); // 璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
 
-            }
         }
 
+      }
     }
 
-    /*** 淇敼鐢ㄦ埛* @throws SQLException */
-    // public static int updateUser(Glass user) throws SQLException {conn =
-    // getConn();
-    // String sql = "update t_user set name=?,gender=?,age=?,score=?"+ " where
-    // id=?";ps = conn.prepareStatement(sql);
-    // ps.setString(1, user.getName());ps.setString(2, user.getGender());
-    // ps.setInt(3, user.getAge());ps.setDouble(4, user.getScore());ps.setInt(5,
-    // user.getId());return ps.executeUpdate();}
-    // /*** 澧炲姞鐢ㄦ埛* @throws SQLException */
-    // public static int insertUser(User user) throws SQLException {
-    // conn = getConn();
-    // String sql = "insert into t_user(name,gender,age,score)"+ " values(?,?,?,?)";
-    // ps = conn.prepareStatement(sql);ps.setString(1,
-    // user.getName());ps.setString(2, user.getGender());
-    // ps.setInt(3, user.getAge());ps.setDouble(4, user.getScore());return
-    // ps.executeUpdate();
-    // }
+  }
+
+  /*** 淇敼鐢ㄦ埛* @throws SQLException */
+  // public static int updateUser(Glass user) throws SQLException {conn =
+  // getConn();
+  // String sql = "update t_user set name=?,gender=?,age=?,score=?"+ " where
+  // id=?";ps = conn.prepareStatement(sql);
+  // ps.setString(1, user.getName());ps.setString(2, user.getGender());
+  // ps.setInt(3, user.getAge());ps.setDouble(4, user.getScore());ps.setInt(5,
+  // user.getId());return ps.executeUpdate();}
+  // /*** 澧炲姞鐢ㄦ埛* @throws SQLException */
+  // public static int insertUser(User user) throws SQLException {
+  // conn = getConn();
+  // String sql = "insert into t_user(name,gender,age,score)"+ " values(?,?,?,?)";
+  // ps = conn.prepareStatement(sql);ps.setString(1,
+  // user.getName());ps.setString(2, user.getGender());
+  // ps.setInt(3, user.getAge());ps.setDouble(4, user.getScore());return
+  // ps.executeUpdate();
+  // }
 
 }
diff --git a/springboot-vue3/src/main/resources/application.properties b/springboot-vue3/src/main/resources/application.properties
index 0c946de..dfc1dbb 100644
--- a/springboot-vue3/src/main/resources/application.properties
+++ b/springboot-vue3/src/main/resources/application.properties
@@ -12,7 +12,7 @@
 #\u6570\u636E\u5E93\u7528\u6237\u5BC6\u7801
 spring.datasource.password=beibo.123/
 #\u6620\u5C04\u6587\u4EF6\u7684\u4F4D\u7F6E
-mybatis-plus.mapper-locations=classpath:com/example/springboot/dao/*Dao.xml
+mybatis-plus.mapper-locations=classpath:com/example/springboot/mapper/*Mapper.xml
 #\u7C7B\u578B\u522B\u540D
 mybatis-plus.type-aliases-package=com.example.springboot.entity
 #\u914D\u7F6Esql\u6253\u5370

--
Gitblit v1.8.0