From d9b5a16b878aef6181c8124c97ff298b0d0adbcd Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期一, 27 十一月 2023 09:22:36 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 CanadaMes-ui/src/views/home/index.vue                                                 |  564 ++++++++++++++++----------
 springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java          |   42 ++
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java           |   36 
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java           |   68 ++
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java   |  129 +++++
 CanadaMes-ui/src/lang/locales/zh-CN.json                                              |   51 +-
 springboot-vue3/src/main/java/com/example/springboot/service/OutSlice.java            |   66 +++
 springboot-vue3/src/main/java/com/example/springboot/entity/out_slice.java            |   17 
 .vscode/launch.json                                                                   |   28 +
 CanadaMes-ui/src/api/home.js                                                          |   42 +
 springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java            |  101 ++++
 CanadaMes-ui/src/lang/locales/en-US.json                                              |   51 +-
 springboot-vue3/src/main/java/com/example/springboot/security/config/ShiroConfig.java |   34 
 13 files changed, 908 insertions(+), 321 deletions(-)

diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..a0df939
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,28 @@
+{
+    // 浣跨敤 IntelliSense 浜嗚В鐩稿叧灞炴�с�� 
+    // 鎮仠浠ユ煡鐪嬬幇鏈夊睘鎬х殑鎻忚堪銆�
+    // 娆蹭簡瑙f洿澶氫俊鎭紝璇疯闂�: https://go.microsoft.com/fwlink/?linkid=830387
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "type": "java",
+            "name": "Current File",
+            "request": "launch",
+            "mainClass": "${file}"
+        },
+        {
+            "type": "java",
+            "name": "MyGenerator",
+            "request": "launch",
+            "mainClass": "MyGenerator",
+            "projectName": "springboot-vue3"
+        },
+        {
+            "type": "java",
+            "name": "AuthorityApplication",
+            "request": "launch",
+            "mainClass": "com.example.springboot.AuthorityApplication",
+            "projectName": "springboot-vue3"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/CanadaMes-ui/src/api/home.js b/CanadaMes-ui/src/api/home.js
index 4a35acf..05cc8b4 100644
--- a/CanadaMes-ui/src/api/home.js
+++ b/CanadaMes-ui/src/api/home.js
@@ -154,4 +154,44 @@
         method: 'post',
         data: ""
     })
-}
\ No newline at end of file
+}
+
+export function SelectGlassNo(orderid) {
+    return request({
+        url: '/home/SelectGlassNo?orderid=' + orderid,
+        method: 'post',
+        data: ""
+    })
+}
+
+export function SelectAluminumFrameInfoById(FrameBarcode) {
+    return request({
+        url: '/home/SelectAluminumFrameInfoById?FrameBarcode=' + FrameBarcode,
+        method: 'post',
+        data: ""
+    })
+}
+
+export function SelectProductionqueue() {
+    return request({
+        url: '/home/SelectProductionqueue',
+        method: 'post',
+        data: ""
+    })
+}
+
+export function DeleteProductionQueueGlass(id) {
+    return request({
+        url: '/home/DeleteProductionQueueGlass?id='+id,
+        method: 'post',
+        data: ""
+    })
+}
+
+export function AddOutSliceS(data) {
+    return request({
+        url: '/home/AddOutSliceS',
+        method: 'post',
+        data
+    })
+}
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index 4cb0513..a3374c9 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -227,8 +227,8 @@
 "deleteCancelledMessage": "Deletion cancelled",
 
 
-  "Enter the glass lD":"Enter the glass lD",
-  "Infeed barcodid":"Infeed barcodid",
+  "Enter the glass barcode":"Enter the glass barcode",
+  "Manually Infeed Glass":"Manually Infeed 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",
@@ -236,33 +236,30 @@
   "Alarm Information":"Alarm Information",
   "Cage Details":"Cage Details",
   "order":"order",
-  "length":"length",
-  "width":"width",
+  "Length":"Length",
+  "Width":"Width",
   "Operate":"Operate",
-  "end task":"end task",
+  "Terminate Task":"Terminate Task",
   "cancel":"cancel",
   "confirm":"confirm",
-  "number":"number",
-  "Outfeed Barcodid":"Outfeed Barcodid",
-  "Infeed Barcodid":"Infeed Barcodid",
-  "The Cage number being used":"The Cage Number being used",
-  "The Slot number being used":"The Slot Number being used",
-  "Order Nmuber":"Order Nmuber",
-  "Length and Width":"Length and Width",
+  "Number":"Number",
+  "Outfeed glass barcode":"Outfeed glass barcode",
+  "Infeed glass barcode":"Infeed glass barcode",
+  "Cage No":"Cage No",
+  "Slot No":"Slot No",
+  "Dim":"Dim",
   "id":"id",
   "content":"content",
   "timeon":"timeon",
   "endTime":"endTime",
 
-  "The Cage number":"The Cage number",
   "The Side":"The Side",
-  "The Slot Number":"The Slot Number",
-  "Barcodid":"Barcodid",
-  "Order Number":"Order Number",
-  "List Number":"List Number",
-  "Box Number":"Box Number",
-  "delete":"delete",
-  "out":"out",
+  "barcode":"barcode",
+  "Order No":"Order No",
+  "List No":"List No",
+  "Box No":"Box No",
+  "Delete":"Delete",
+  "Out":"Out",
 
   "Operation successful":"Operation successful",
   "Operation canceled":"Operation canceled",
@@ -273,7 +270,6 @@
   "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",
   
 
@@ -283,13 +279,13 @@
   "DataBase Connection failed":"DataBase Connection failed",
   "Distribute parameters":"Distribute parameters",
   "The glass size is not within the range":"The glass size is not within the range",
-  "increase":"increase",
+  "Increase":"Increase",
   "Enable":"Enable",
   "Disable":"Disable",
   "Usage":"Usage",
   "Space (Pieces)":"Space (Pieces)",
   "This glass is already in the cage":"This glass is already in the cage",
-  "Enter the Order lD":"Enter the Order lD",
+  "Enter the Order No":"Enter the Order No",
   "OrderInfo":"OrderInfo",
   "Query":"Query",
   "permission update":"permission update",
@@ -302,6 +298,13 @@
   "Clear Current":"Clear Current",
   "Confirm Modification":"Confirm modification",
   "The glass ID already exists in the loading queue":"The glass ID already exists in the loading queue",
-  "This glass ID already exists in the sorting cage":"This glass ID already exists in the sorting cage"
+  "This glass ID already exists in the sorting cage":"This glass ID already exists in the sorting cage",
+  "Production queue":"Production queue",
+  "Enter the Frame No":"Enter the Frame No",
+  "Frame No":"Frame No",
+  "Glass information corresponding to aluminum frame":"Glass information corresponding to aluminum frame",
+  "In the cage":"In the cage",
+  "Flip":"Flip",
+  "In the queue":"In the queue"
 
 }
\ 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 0b55a8b..49d0c11 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -215,8 +215,8 @@
   "cancelButtonText": "鍙栨秷",
   "deleteSuccessMessage": "鍒犻櫎鎴愬姛",
   "deleteCancelledMessage": "宸插彇娑堝垹闄ゆ搷浣�",
-  "Enter the glass lD": "杈撳叆鐜荤拑id",
-  "Infeed barcodid": "鎵嬪姩涓婄墖",
+  "Enter the glass barcode": "杈撳叆鐜荤拑id",
+  "Infeed Barcodeid": "鎵嬪姩涓婄墖",
   "Enter the order number": "杈撳叆璁㈠崟鍙�",
   "Exit the glass by order number": "鎸夎鍗曞嚭鐗�",
   "Please confirm the glass information": "璇风‘璁ょ幓鐠冧俊鎭�",
@@ -224,32 +224,28 @@
   "Alarm Information": "鎶ヨ淇℃伅",
   "Cage Details": "鐞嗙墖绗艰鎯�",
   "order": "璁㈠崟",
-  "length": "闀�",
-  "width": "瀹�",
+  "Length": "闀�",
+  "Width": "瀹�",
   "Operate": "鎿嶄綔",
+  "Terminate Task":"缁撴潫浠诲姟",
   "end task": "瀹屾垚浠诲姟",
-  "cancel": "鍙栨秷",
-  "confirm": "纭",
-  "number": "鏁伴噺",
-  "Outfeed Barcodid": "鍑虹墖鐜荤拑id",
-  "Infeed Barcodid": "杩涚墖鐜荤拑id",
-  "The Cage number being used": "绗煎瓙",
-  "The Slot number being used": "鏍煎瓙",
-  "Order Nmuber": "璁㈠崟缂栧彿",
-  "List Number": "鍒楄〃缂栧彿",
-  "Box Number": "绠卞瓙缂栧彿",
-  "Length and Width": "灏哄",
+  "Number": "鏁伴噺",
+  "Outfeed glass barcode": "鍑虹墖鐜荤拑id",
+  "Infeed glass barcode": "杩涚墖鐜荤拑id",
+  "Order No": "璁㈠崟缂栧彿",
+  "List No": "鍒楄〃缂栧彿",
+  "Box No": "绠卞瓙缂栧彿",
+  "Dim": "灏哄",
   "id": "id",
   "content": "鍐呭",
   "timeon": "鎶ヨ鏃堕棿",
   "endTime": "缁撴潫鏃堕棿",
-  "The Cage number": "绗煎瓙",
+  "Cage No": "绗煎瓙",
   "The Side": "鍐呭渚�",
-  "The Slot Number": "鏍煎瓙",
-  "Barcodid": "鐜荤拑id",
-  "Order Number": "璁㈠崟",
-  "delete": "鍒犻櫎",
-  "out": "鍑虹墖",
+  "Slot No": "鏍煎瓙",
+  "Barcode": "鐜荤拑id",
+  "Delete": "鍒犻櫎",
+  "Out": "鍑虹墖",
   "Operation successful": "鎿嶄綔鎴愬姛",
   "Operation canceled": "鎿嶄綔鍙栨秷",
   "There is no such order": "娌℃湁姝よ鍗曠殑鐜荤拑",
@@ -276,13 +272,13 @@
   "DataBase Connection failed": "鏁版嵁搴撹繛鎺ュけ璐�",
   "Distribute parameters": "涓嬪彂鍙傛暟",
   "The glass size is not within the range": "鐜荤拑灏哄涓嶅湪鑼冨洿鍐�",
-  "increase": "娣诲姞",
+  "Increase": "娣诲姞",
   "Enable": "鍚敤",
   "Disable": "绂佺敤",
   "Usage": "浣跨敤鐜�",
   "Space (Pieces)": "绌洪棿(鐗囨暟)",
   "This glass is already in the cage": "绗煎瓙閲屽凡鏈夋鐜荤拑",
-  "Enter the Order lD": "璇疯緭鍏ヨ鍗昳d",
+  "Enter the Order No": "璇疯緭鍏ヨ鍗昳d",
   "OrderInfo": "璁㈠崟淇℃伅",
   "Query": "鏌ヨ",
   "permission update": "鏉冮檺缂栬緫",
@@ -296,6 +292,15 @@
   "Confirm Modification": "纭淇敼",
   "The glass ID already exists in the loading queue": "涓婄墖闃熷垪宸插瓨鍦ㄦ鐜荤拑id",
   "This glass ID already exists in the sorting cage": "鐞嗙墖绗煎唴宸插瓨鍦ㄦ鐜荤拑id",
+  "Production queue":"涓婄墖闃熷垪",
+  "Enter the Aluminum Frame No":"璇疯緭鍏ラ摑妗唅d",
+  "Frame No":"閾濇id",
+  "Glass information corresponding to aluminum frame":"閾濇瀵瑰簲鐨勭幓鐠冧俊鎭�",
+  "In the cage":"鍦ㄧ鍐�",
+  "Flip":"缈昏浆",
+  "In the queue":"鍦ㄩ槦鍒�",
+  "Enter the Frame No":"璇疯緭鍏ラ摑妗唅d",
+  "Manually Infeed Glass":"鎵嬪姩杩涚墖",
   "langparameter": {
     "conveyor Velocity(Auto FAST)": "鐨甫杈撻�佽嚜鍔ㄥ揩閫�",
     "conveyor Velocity(Auto SLOW)": "鐨甫杈撻�佽嚜鍔ㄦ參閫�",
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index 166dc7d..f6c4317 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -111,9 +111,15 @@
     top: 366px; */
 }
 
-.orderbutton {
+.orderbutton1 {
     position: absolute;
     left: 1070px;
+    top: 70px;
+}
+
+.orderbutton2 {
+    position: absolute;
+    left: 1170px;
     top: 70px;
 }
 
@@ -194,39 +200,46 @@
                 </div>
             </div>
             <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
-                <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid1"></el-input>
-                <el-button type="primary" @click="SelectGlassByGlassIDs(2)">{{ $t('Infeed barcodid') }}</el-button>
-                <el-input style="width:15%;" :placeholder="$t('Enter the order number')" v-model="order"></el-input>
+                <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid1"></el-input>
+                <el-button type="primary" @click="SelectGlassByGlassIDs(2)">{{ $t('Manually Infeed Glass') }}</el-button>
+                <el-input style="width:15%;" :placeholder="$t('Enter the Order No')" 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 :width="130" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
-                    <el-table-column :width="130" prop="cell" :label="$t('The Slot number being used')"></el-table-column>
-                    <el-table-column :width="150" prop="glassId" :label="$t('Outfeed Barcodid')"></el-table-column>
-                    <el-table-column :width="130" prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
-                    <el-table-column prop="list" :label="$t('List Number')"></el-table-column>
-                    <el-table-column prop="box" :label="$t('Box Number')"></el-table-column>
-                    <el-table-column :width="230" prop="lengthWidth" :label="$t('Length(inch) and Width(inch)')"></el-table-column>
-                    <el-table-column :label="$t('Operate')">
+                    <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
+                    <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
+                    <el-table-column :width="150" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column>
+                    <el-table-column :width="130" prop="north_glass_buffer1s.ordernumber" :label="$t('Order No')"></el-table-column>
+                    <el-table-column prop="north_glass_buffer1s.listnumber" :label="$t('List No')"></el-table-column>
+                    <el-table-column prop="north_glass_buffer1s.boxnumber" :label="$t('Box No')"></el-table-column>
+                    <el-table-column prop="lengthWidth" :label="$t('Dim')"></el-table-column>
+                    <el-table-column :label="$t('Terminate Task')">
                         <template slot-scope='scope'>
                             <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                                @click="endtask(1, scope.row.glassId, scope.row.cell)">{{ $t('end task') }}</el-button>
+                                @click="endtask(1, scope.row.glassId, scope.row.cell)">{{ $t('Terminate Task')
+                                }}</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <el-table :data="this.tasklist2" border style="width: 100%">
-                    <el-table-column :width="130" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
-                    <el-table-column :width="130" prop="cell" :label="$t('The Slot number being used')"></el-table-column>
-                    <el-table-column :width="150" prop="glassId" :label="$t('Infeed Barcodid')"></el-table-column>
-                    <el-table-column :width="130" prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
-                    <el-table-column prop="list" :label="$t('List Number')"></el-table-column>
-                    <el-table-column prop="box" :label="$t('Box Number')"></el-table-column>
-                    <el-table-column :width="230"  prop="lengthWidth" :label="$t('Length(inch) and Width(inch)')"></el-table-column>
-                    <el-table-column :label="$t('Operate')">
+                    <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
+                    <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
+                    <el-table-column :width="150" prop="glassId" :labelf="$t('Infeed glass barcode')"></el-table-column>
+                    <el-table-column :width="130" prop="north_glass_buffer1s.ordernumber" :label="$t('Order No')"></el-table-column>
+                    <el-table-column prop="north_glass_buffer1s.listnumber" :label="$t('List No')"></el-table-column>
+                    <el-table-column prop="north_glass_buffer1s.boxnumber" :label="$t('Box No')"></el-table-column>
+                    <el-table-column prop="lengthWidth" :label="$t('Dim')">
+                        <template slot-scope='scope'>
+                            {{ scope.row.north_glass_buffer1s.glasslength }}*{{ scope.row.north_glass_buffer1s.glassheight }}
+                        </template>
+                    </el-table-column>
+
+                    <el-table-column :label="$t('Terminate Task')">
                         <template slot-scope='scope'>
                             <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                                @click="endtask(0, scope.row.glassId, scope.row.cell)">{{ $t('end task') }}</el-button>
+                                @click="endtask(0, scope.row.glassId, scope.row.cell)">{{ $t('Terminate Task')
+                                }}</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
@@ -274,7 +287,8 @@
                 <div class="blocks-img" :style="{ left: car2 + 'px', top: '175px' }"></div>
                 <div class="blocks-img2"></div>
                 <div class="blocks-img3"></div>
-                <el-button class="orderbutton" type="primary" @click="showform2()">{{ $t('OrderInfo') }}</el-button>
+                <el-button class="orderbutton1" type="primary" @click="showform2()">{{ $t('OrderInfo') }}</el-button>
+                <el-button class="orderbutton2" type="primary" @click="showform6()">{{ $t('Production queue') }}</el-button>
 
                 <!-- <div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:328px;">
                     <div :class="getStatusClass(item.state)" v-for="(item,index) in cagelist1" :key="item['date']"
@@ -304,22 +318,35 @@
         </el-footer>
         <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="$t('Barcodid')">
-                    <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
+                <el-form-item :label="$t('Barcode')">
+                    <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid"></el-input>
                     <el-button type="primary" @click="showform(3)">{{ $t('Query') }}</el-button>
                 </el-form-item>
-                <el-form-item :label="$t('order')">
-                    <el-input v-model="form.orderId" readonly autocomplete="off" />
+                <el-form-item :label="$t('Barcode')">
+                    <el-input v-model="form.barcode" readonly autocomplete="off" />
                 </el-form-item>
-                <el-form-item :label="$t('length(inch)')">
-                    <el-input v-model="form.height" readonly autocomplete="off" />
+                <el-form-item :label="$t('Order No')">
+                    <el-input v-model="form.ordernumber" readonly autocomplete="off" />
                 </el-form-item>
-                <el-form-item :label="$t('width(inch)')">
-                    <el-input v-model="form.width" readonly autocomplete="off" />
+                <el-form-item :label="$t('List No')">
+                    <el-input v-model="form.listnumber" readonly autocomplete="off" />
                 </el-form-item>
-                <el-form-item :label="$t('Barcodid')">
-                    <el-input v-model="form.glassId" readonly autocomplete="off" />
+                <el-form-item :label="$t('Box No')">
+                    <el-input v-model="form.boxnumber" readonly autocomplete="off" />
                 </el-form-item>
+                <el-form-item :label="$t('Length')">
+                    <el-input v-model="form.glasslength" readonly autocomplete="off" />
+                </el-form-item>
+                <el-form-item :label="$t('Width')">
+                    <el-input v-model="form.glassheight" readonly autocomplete="off" />
+                </el-form-item>
+                <el-form-item :label="$t('Length')">
+                    <el-input v-model="form.glasslengthMm" readonly autocomplete="off" />
+                </el-form-item>
+                <el-form-item :label="$t('Width')">
+                    <el-input v-model="form.glassheightMm" readonly autocomplete="off" />
+                </el-form-item>
+
             </el-form>
             <template #footer>
                 <span class="dialog-footer">
@@ -334,6 +361,79 @@
             </template>
         </el-dialog>
 
+        <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="$t('Order No')">
+                    <el-input v-model="form1.order" autocomplete="off" />
+                </el-form-item>
+                <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="getOrder();" type="primary">{{ $t('confirm') }}</el-button>
+                    <el-button @click="cancel1()">{{ $t('cancel') }}</el-button>
+                </span>
+            </template>
+        </el-dialog>
+
+        <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')">
+            <el-table :data="this.alarm" border style="width: 100%;">
+                <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="$t('Cage Details')" top="5vh">
+            <el-table :data="this.cageinfo" :height="700" border style="width: 100%;overflow: auto;">
+                <el-table-column :width="90" prop="cage" :label="$t('Cage No')"></el-table-column>
+                <el-table-column :width="90" prop="cell" :label="$t('Slot No')"></el-table-column>
+                <el-table-column :width="55" prop="tier" :label="$t('The Side')"></el-table-column>
+                <el-table-column :width="100" prop="glassId" :label="$t('Barcode')"></el-table-column>
+                <el-table-column :width="100" prop="orderId" :label="$t('Order No')"></el-table-column>
+                <el-table-column :width="100" prop="north_glass_buffer1s.listnumber"
+                    :label="$t('List No')"></el-table-column>
+                <el-table-column :width="100" prop="north_glass_buffer1s.boxnumber" :label="$t('Box No')"></el-table-column>
+                <el-table-column :width="170" prop="lengthWidth" :label="$t('Dim')"></el-table-column>
+                <el-table-column :width="280" :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)">{{ $t('Delete') }}</el-button>
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('Out') }}</el-button>
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)">
+                            {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button>
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('Increase')
+                            }}</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-dialog>
+
+        <el-dialog :visible.sync="dialogFormVisible4" :title="$t('OrderInfo')" top="5vh">
+            <el-input style="width:15%;" :placeholder="$t('Enter the Order No')" v-model="orderid"></el-input>
+            <el-button type="primary" @click="selectglassinfo()">{{ $t('Query') }}</el-button>
+            <el-table :data="GlassInfo.slice((currentPage - 1) * pagesize, currentPage * pagesize)
+                " :height="700" border style="width: 100%;overflow: auto;">
+
+                <el-table-column prop="barcode" :label="$t('Barcode')"></el-table-column>
+                <el-table-column prop="ordernumber" :label="$t('Order No')"></el-table-column>
+                <el-table-column prop="listnumber" :label="$t('List No')"></el-table-column>
+                <el-table-column prop="boxnumber" :label="$t('Box No')"></el-table-column>
+                <el-table-column prop="glasslength" :label="$t('Length')"></el-table-column>
+                <el-table-column prop="glassheight" :label="$t('Width')"></el-table-column>
+            </el-table>
+            <el-pagination :style="'margin-top:-2px'" @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                :pager-count="7" :current-page="currentPage" :page-sizes="[5, 10, 15, 20]" :page-size="pagesize"
+                layout="total, sizes, prev, pager, next, jumper" :total="GlassInfo.length > 0 ? GlassInfo.length : null"
+                background style="float: right; margin-top: 20px">
+            </el-pagination>
+        </el-dialog>
         <el-dialog :visible.sync="dialogFormVisible5" :title="$t('Please confirm the glass information')">
             <el-form :model="form" label-width="100px" style="padding-right: 30px">
                 <div style="display: flex;justify-content: space-around;">
@@ -350,72 +450,100 @@
                 </div>
                 <div style="display: flex;justify-content: space-around;">
                     <el-form-item>
-                        <el-input style="width:50%;margin-left: 20%;" :placeholder="$t('Enter the glass lD')"
+                        <el-input style="width:50%;margin-left: 20%;" :placeholder="$t('Enter the glass barcode')"
                             v-model="glassid2"></el-input>
                         <el-button type="primary" @click="SelectGlassByGlassIDs(1)" :disabled="disabled">{{ $t('Query')
                         }}</el-button>
                     </el-form-item>
                     <el-form-item>
-                        <el-input style="width:50%;margin-left: 20%;" :placeholder="$t('Enter the glass lD')"
+                        <el-input style="width:50%;margin-left: 20%;" :placeholder="$t('Enter the glass barcode')"
                             v-model="glassid1"></el-input>
                         <el-button type="primary" @click="SelectGlassByGlassIDs(2)" :disabled="disabled">{{ $t('Query')
                         }}</el-button>
                     </el-form-item>
                 </div>
                 <div style="display: flex;justify-content: space-around;">
-                    <el-form-item :label="$t('Barcodid')">
-                        <el-input v-model="form2.glassId" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Barcode')">
+                        <el-input v-model="form2.barcode" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('Barcodid')">
-                        <el-input v-model="form4.glassId" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Barcode')">
+                        <el-input v-model="form4.barcode" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('Barcodid')">
-                        <el-input v-model="form3.glassId" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Barcode')">
+                        <el-input v-model="form3.barcode" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('Barcodid')">
-                        <el-input v-model="form5.glassId" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Barcode')">
+                        <el-input v-model="form5.barcode" readonly autocomplete="off" />
                     </el-form-item>
                 </div>
                 <div style="display: flex;justify-content: space-around;">
-                    <el-form-item :label="$t('order')">
-                        <el-input v-model="form2.orderId" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Order No')">
+                        <el-input v-model="form2.ordernumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('order')">
-                        <el-input v-model="form4.orderId" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Order No')">
+                        <el-input v-model="form4.ordernumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('order')">
-                        <el-input v-model="form3.orderId" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Order No')">
+                        <el-input v-model="form3.ordernumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('order')">
-                        <el-input v-model="form5.orderId" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Order No')">
+                        <el-input v-model="form5.ordernumber" readonly autocomplete="off" />
                     </el-form-item>
                 </div>
                 <div style="display: flex;justify-content: space-around;">
-                    <el-form-item :label="$t('length')">
-                        <el-input v-model="form2.height" readonly autocomplete="off" />
+                    <el-form-item :label="$t('List No')">
+                        <el-input v-model="form2.listnumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('length')">
-                        <el-input v-model="form4.height" readonly autocomplete="off" />
+                    <el-form-item :label="$t('List No')">
+                        <el-input v-model="form4.listnumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('length')">
-                        <el-input v-model="form3.height" readonly autocomplete="off" />
+                    <el-form-item :label="$t('List No')">
+                        <el-input v-model="form3.listnumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('length')">
-                        <el-input v-model="form5.height" readonly autocomplete="off" />
+                    <el-form-item :label="$t('List No')">
+                        <el-input v-model="form5.listnumber" readonly autocomplete="off" />
                     </el-form-item>
                 </div>
                 <div style="display: flex;justify-content: space-around;">
-                    <el-form-item :label="$t('width')">
-                        <el-input v-model="form2.width" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Box No')">
+                        <el-input v-model="form2.boxnumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('width')">
-                        <el-input v-model="form4.width" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Box No')">
+                        <el-input v-model="form4.boxnumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('width')">
-                        <el-input v-model="form3.width" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Box No')">
+                        <el-input v-model="form3.boxnumber" readonly autocomplete="off" />
                     </el-form-item>
-                    <el-form-item :label="$t('width')">
-                        <el-input v-model="form5.width" readonly autocomplete="off" />
+                    <el-form-item :label="$t('Box No')">
+                        <el-input v-model="form5.boxnumber" readonly autocomplete="off" />
+                    </el-form-item>
+                </div>
+                <div style="display: flex;justify-content: space-around;">
+                    <el-form-item :label="$t('Length')">
+                        <el-input v-model="form2.glasslength" readonly autocomplete="off" />
+                    </el-form-item>
+                    <el-form-item :label="$t('Length')">
+                        <el-input v-model="form4.glasslength" readonly autocomplete="off" />
+                    </el-form-item>
+                    <el-form-item :label="$t('Length')">
+                        <el-input v-model="form3.glasslength" readonly autocomplete="off" />
+                    </el-form-item>
+                    <el-form-item :label="$t('Length')">
+                        <el-input v-model="form5.glasslength" readonly autocomplete="off" />
+                    </el-form-item>
+                </div>
+                <div style="display: flex;justify-content: space-around;">
+                    <el-form-item :label="$t('Width')">
+                        <el-input v-model="form2.glassheight" readonly autocomplete="off" />
+                    </el-form-item>
+                    <el-form-item :label="$t('Width')">
+                        <el-input v-model="form4.glassheight" readonly autocomplete="off" />
+                    </el-form-item>
+                    <el-form-item :label="$t('Width')">
+                        <el-input v-model="form3.glassheight" readonly autocomplete="off" />
+                    </el-form-item>
+                    <el-form-item :label="$t('Width')">
+                        <el-input v-model="form5.glassheight" readonly autocomplete="off" />
                     </el-form-item>
                 </div>
                 <div style="display: flex;justify-content: space-around;">
@@ -431,105 +559,76 @@
             </el-form>
             <template #footer>
                 <span class="dialog-footer">
-
                     <el-button @click="cancel3()">{{ $t('cancel') }}</el-button>
                 </span>
             </template>
         </el-dialog>
 
-        <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="$t('order')">
-                    <el-input v-model="form1.order" autocomplete="off" />
-                </el-form-item>
-                <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="getOrder();" type="primary">{{ $t('confirm') }}</el-button>
-                    <el-button @click="cancel1()">{{ $t('cancel') }}</el-button>
-                </span>
-            </template>
-        </el-dialog>
-        <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')">
-            <el-table :data="this.alarm" border style="width: 100%;">
-                <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="$t('Cage Details')" top="5vh">
-            <el-table :data="this.cageinfo" :height="700" border style="width: 100%;overflow: auto;">
-                <el-table-column :width="90" prop="cage" :label="$t('The Cage number')"></el-table-column>
-                <el-table-column :width="90" prop="cell" :label="$t('The Slot Number')"></el-table-column>
-                <el-table-column :width="55" prop="tier" :label="$t('The Side')"></el-table-column>
-                <el-table-column :width="100" prop="glassId" :label="$t('Barcodid')"></el-table-column>
-                <el-table-column :width="100" prop="orderId" :label="$t('Order Number')"></el-table-column>
-                <el-table-column :width="100" prop="list" :label="$t('List Number')"></el-table-column>
-                <el-table-column :width="100" prop="box" :label="$t('Box Number')"></el-table-column>
-                <el-table-column :width="170" prop="lengthWidth" :label="$t('Length(inch) and Width(inch)')"></el-table-column>
+        <el-dialog :visible.sync="dialogFormVisible6" :title="$t('Production queue')" top="5vh">
+            <el-button type="primary" @click="showform7()">{{ $t('Increase') }}</el-button>
+            <el-table :data="this.OutSlice" :height="700" border style="width: 100%;overflow: auto;">
+                <el-table-column prop="glassId" :label="$t('Barcode')"></el-table-column>
+                <el-table-column prop="north_glass_buffer1s.ordernumber" :label="$t('Order No')"></el-table-column>
+                <el-table-column prop="north_glass_buffer1s.listnumber" :label="$t('List No')"></el-table-column>
+                <el-table-column prop="north_glass_buffer1s.boxnumber" :label="$t('Box No')"></el-table-column>
+                <el-table-column prop="barCode" :label="$t('Frame No')"></el-table-column>
+                <el-table-column prop="north_glass_buffer1s.glasslength" :label="$t('Length')"></el-table-column>
+                <el-table-column prop="north_glass_buffer1s.glassheight" :label="$t('Width')"></el-table-column>
                 <el-table-column :width="280" :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)">{{ $t('delete') }}</el-button>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('out') }}</el-button>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)">
-                            {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('increase')
-                            }}</el-button>
+                            @click="deleteproductionqueueglass(scope.row.id)">{{ $t('Delete') }}</el-button>
                     </template>
                 </el-table-column>
             </el-table>
         </el-dialog>
-        <el-dialog :visible.sync="dialogFormVisible4" :title="$t('OrderInfo')" top="5vh">
-            <el-input style="width:15%;" :placeholder="$t('Enter the Order lD')" v-model="orderid"></el-input>
-            <el-button type="primary" @click="selectglassinfo()">{{ $t('Query') }}</el-button>
-            <el-table :data="GlassInfo.slice((currentPage - 1) * pagesize, currentPage * pagesize)
-                " :height="700" border style="width: 100%;overflow: auto;">
-                <el-table-column prop="glassId" :label="$t('Barcodid')"></el-table-column>
-                <el-table-column prop="orderId" :label="$t('Order Number')"></el-table-column>
-                <el-table-column prop="width" :label="$t('length')"></el-table-column>
-                <el-table-column prop="height" :label="$t('width')"></el-table-column>
-            </el-table>
 
+        <el-dialog :visible.sync="dialogFormVisible7" :title="$t('Glass information corresponding to aluminum frame')"
+            top="5vh">
+            <el-input style="width:15%;" :placeholder="$t('Enter the Frame No')" v-model="framebarcode"></el-input>
+            <el-button type="primary" @click="showform7()">{{ $t('Query') }}</el-button>
+            <el-button type="primary" @click="addoutslice()">{{ $t('Increase') }}</el-button>
+            <el-table :data="this.AluminumFrame" :height="700" border style="width: 100%;overflow: auto;">
 
-            <!-- <el-table :data="tableDatas.slice((currentPage - 1) * pagesize, currentPage * pagesize)
-                " style="width: 100%">
-                <el-table-column label="Date" prop="date"> </el-table-column>
-                <el-table-column label="Name" prop="name"> </el-table-column>
-                <el-table-column label="鎿嶄綔">
-                    <template slot-scope="scope">
-                        <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">Edit</el-button>
-                        <el-button size="mini" type="danger"
-                            @click="handleDelete(scope.$index, scope.row)">Delete</el-button>
+                <el-table-column prop="barcode" :label="$t('Barcode')"></el-table-column>
+                <el-table-column prop="ordernumber" :label="$t('Order No')"></el-table-column>
+                <el-table-column prop="listnumber" :label="$t('List No')"></el-table-column>
+                <el-table-column prop="boxnumber" :label="$t('Box No')"></el-table-column>
+                <el-table-column prop="glasslength" :label="$t('Length')"></el-table-column>
+                <el-table-column prop="glassheight" :label="$t('Width')"></el-table-column>
+                <el-table-column prop="storageCage.cage" :label="$t('Cage No')"></el-table-column>
+                <el-table-column prop="storageCage.cell" :label="$t('Slot No')"></el-table-column>
+                <el-table-column prop="storageCage.tier" :label="$t('The Side')"></el-table-column>
+
+                <el-table-column prop="FrameNo" :label="$t('Frame No')"></el-table-column>
+
+                <el-table-column prop="Flip" :label="$t('Flip')"></el-table-column>
+                <el-table-column prop="out_slice.state" :label="$t('In the queue')">
+                    <template slot-scope='scope'>
+                        {{ scope.row.out_slice != null ? $t('Yes') : $t('No') }}
                     </template>
                 </el-table-column>
-            </el-table> -->
-
-            <!-- 琛ㄦ牸鍒嗛〉 -->
-            <!-- pager-count pager-count灞炴�у彲浠ヨ缃渶澶ч〉鐮佹寜閽暟,瓒呭嚭鎶樺彔,榛樿涓�7-->
-            <!-- 娉ㄦ剰锛氳嫢鏁版嵁鏄悗绔帴鍙h繑鍥炵殑鍒欐鏃�:total="pageCount"-->
-            <el-pagination :style="'margin-top:-2px'" @size-change="handleSizeChange" @current-change="handleCurrentChange"
-                :pager-count="7" :current-page="currentPage" :page-sizes="[5, 10, 15, 20]" :page-size="pagesize"
-                layout="total, sizes, prev, pager, next, jumper" :total="GlassInfo.length > 0 ? GlassInfo.length : null"
-                background style="float: right; margin-top: 20px">
-            </el-pagination>
-
-
+                
+                <el-table-column prop="storageCage.tier" :label="$t('In the cage')">
+                    <template slot-scope='scope'>
+                        {{ scope.row.storageCage != null ? $t('Yes') : $t('No') }}
+                    </template>
+                </el-table-column>
+                <el-table-column :width="80" :label="$t('Operate')">
+                    <template slot-scope='scope'>
+                        <el-checkbox label="" :disabled="!(scope.row.storageCage != null&&scope.row.out_slice == null)" :checked="scope.row.isCheck"  @change="CheckBoxchange(scope.row.barcode,$event)"></el-checkbox>
+                    </template>
+                </el-table-column>
+            </el-table>
         </el-dialog>
     </el-container>
 </template>
 <script>
-//:disabled="scope.row.glassId > 0 || scope.row.disabled == 1 ? true : false"
+
 import {
     home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist,
-    SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass
+    SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass, SelectGlassNo,
+    SelectAluminumFrameInfoById, SelectProductionqueue, DeleteProductionQueueGlass, AddOutSliceS
 } from "../../api/home";
 
 
@@ -552,40 +651,19 @@
             dialogFormVisible3: false,
             dialogFormVisible4: false,
             dialogFormVisible5: false,
+            dialogFormVisible6: false,
+            dialogFormVisible7: false,
             form: {
                 orderId: "",
                 glassId: "",
                 height: "",
                 width: ""
             },
-            form1: {
-                order: "NG2210210",
-                number: 800,
-            },
-            form2: {
-                orderId: "",
-                glassId: "",
-                height: "",
-                width: ""
-            },
-            form3: {
-                orderId: "",
-                glassId: "",
-                height: "",
-                width: ""
-            },
-            form4: {
-                orderId: "",
-                glassId: "",
-                height: "",
-                width: ""
-            },
-            form5: {
-                orderId: "",
-                glassId: "",
-                height: "",
-                width: ""
-            },
+            form1: {},
+            form2: {},
+            form3: {},
+            form4: {},
+            form5: {},
             alarm: [],
             tableData: [],
             cagelist1: [],
@@ -618,7 +696,10 @@
             disabled1: false,
             currentPage: 1,  //榛樿鍒濆椤�
             pagesize: 15,    //姣忛〉榛樿鏄剧ず鐨勬暟鎹�
-            pageCount: 0
+            pageCount: 0,
+            OutSlice: [],
+            AluminumFrame: [],
+            framebarcode: ""
         };
     },
     created() {
@@ -666,7 +747,9 @@
                     if (obj.zhuangtai != null) {
                         this.zhuangtai = obj.zhuangtai[0];
                     }
-
+                    if(this.dialogFormVisible7==true){
+                        this.showform7();
+                    }
                     // this.glassid1 = obj.queid[0];
                     // if (obj.queid[0] != "" && obj.queid[0] != null && obj.state[0] == 0) {
                     //     this.state = false;
@@ -686,23 +769,14 @@
                     if (obj.form2 != null && obj.form2 != "") {
                         this.form2 = obj.form2[0];
                     } else {
-                        this.form2 = {
-                            orderId: "",
-                            glassId: "",
-                            height: "",
-                            width: ""
-                        };
+                        this.form2 = {};
                     }
 
                     if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 1) {
                         this.form3 = obj.form3[0];
                     } else {
-                        this.form3 = {
-                            orderId: "",
-                            glassId: "",
-                            height: "",
-                            width: ""
-                        };
+                        this.form3 = {};
+
                     }
                     if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 0) {
                         this.form5 = obj.form3[0];
@@ -844,11 +918,10 @@
         //鏄剧ず璁㈠崟淇℃伅椤甸潰
         showform1() {
             if (this.order != "") {
-                this.form1 =
-                {
-                    order: "NG2210210",
-                    number: 800,
-                };
+                SelectGlassNo(this.order).then(res => {
+                    this.form1.order = this.order;
+                    this.form1.number = res.data.count;
+                });
                 this.dialogFormVisible1 = true;
             }
         },
@@ -898,6 +971,7 @@
         },
         selectglassinfo() {
             SelectGlass(this.orderid).then(res => {
+                this.currentPage = 1;
                 this.GlassInfo = res.data.glass;
             });
         },
@@ -906,6 +980,27 @@
                 this.GlassInfo = res.data.glass;
             });
             this.dialogFormVisible4 = true;
+        },
+        showform6() {
+            SelectProductionqueue().then(res => {
+                this.OutSlice = res.data.listoutslice;
+            });
+            this.dialogFormVisible6 = true;
+        },
+        showform7() {
+            SelectAluminumFrameInfoById(this.framebarcode).then(res => {
+                this.AluminumFrame = res.data.listAluminumFrame;
+                this.AluminumFrame.forEach(item => {
+                    if(item.storageCage!=null&&item.out_slice==null){
+                        item.isCheck = true;
+                    }else{
+                        item.isCheck = false;
+                    }
+                    item.Flip=res.data.flip;
+                    item.FrameNo=this.framebarcode;
+                });
+            });
+            this.dialogFormVisible7 = true;
         },
         //鍙栨秷鎿嶄綔鏃跺叧闂〉闈�
         cancel() {
@@ -956,6 +1051,7 @@
             this.cage = cage;
             SelectCageInfo(cage).then(res => {
                 this.cageinfo = res.data.cageinfo;
+                console.log(this.cageinfo)
                 this.dialogFormVisible3 = true;
             });
         },
@@ -1051,7 +1147,7 @@
         //鎵嬪姩涓婄墖
         FeedInglassid() {
             Inglassid(this.insertcage, this.insertcell, this.inserttier, this.form).then(res => {
-                if (this.form.glassId != "") {
+                if (this.form.barcode != "") {
                     if (res.data.message == 200) {
                         this.$message.success(this.$t('Operation successful'));
                         this.dialogFormVisible = false;
@@ -1072,7 +1168,29 @@
                 }
             });
         },
-        handleEdit(index, row) {
+        //鍒犻櫎鍑虹墖闃熷垪鐜荤拑
+        deleteproductionqueueglass(id) {
+            this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
+                inputType: 'password',
+                inputPlaceholder: this.$t('Please enter the password'),
+                confirmButtonText: this.$t('Yes'),
+                cancelButtonText: this.$t('No'),
+                type: 'warning'
+            }).then(({ value }) => {
+                if (this.password == value) {
+                    DeleteProductionQueueGlass(id).then(res => {
+                        if (res.data.message == 200) {
+                            this.$message.success(this.$t('Operation successful'));
+                        }
+                    });
+                }
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: this.$t('Operation canceled')
+                });
+            });
+        }, handleEdit(index, row) {
             console.log(index, row);
         },
         //琛ㄦ牸鍒犻櫎
@@ -1089,36 +1207,26 @@
         },
         //鎵嬪姩娣诲姞鎵爜浣嶇幓鐠�
         InsertQueueGlass(parameter) {
-            if (parameter == 1 && this.form5.glassId != "") {
-                if (this.form5.glassId != this.form2.glassId) {
-                    InsertQueueGlassId(this.form5.glassId, 1).then(res => {
+            if (parameter == 1 && this.form5.barcode != "") {
+                if (this.form5.barcode != this.form2.barcode) {
+                    InsertQueueGlassId(this.form5.barcode, 1).then(res => {
                         if (res.data.message == 200) {
-                            this.form5 = {
-                                orderId: "",
-                                glassId: "",
-                                height: "",
-                                width: ""
-                            };
+                            this.form5 = {};
                             this.$message.success(this.$t('Operation successful'));
-                        }else{
+                        } else {
                             this.$message.error(this.$t('This glass ID already exists in the sorting cage'));
                         }
                     });
                 } else {
                     this.$message.error(this.$t('The glass ID already exists in the loading queue'));
                 }
-            } else if (parameter == 2 && this.form4.glassId != "") {
-                if (this.form4.glassId != this.form3.glassId) {
-                    InsertQueueGlassId(this.form4.glassId, 2).then(res => {
+            } else if (parameter == 2 && this.form4.barcode != "") {
+                if (this.form4.barcode != this.form3.barcode) {
+                    InsertQueueGlassId(this.form4.barcode, 2).then(res => {
                         if (res.data.message == 200) {
-                            this.form4 = {
-                                orderId: "",
-                                glassId: "",
-                                height: "",
-                                width: ""
-                            };
+                            this.form4 = {};
                             this.$message.success(this.$t('Operation successful'));
-                        }else{
+                        } else {
                             this.$message.error(this.$t('This glass ID already exists in the sorting cage'));
                         }
                     });
@@ -1152,6 +1260,36 @@
                     this.$message.success(this.$t('Operation successful'));
                 }
             });
+        },
+        CheckBoxchange(glassid,isChecked){
+            this.AluminumFrame.forEach(item=>{item.barcode=glassid;item.isCheck=isChecked})
+            console.log(this.AluminumFrame);
+        },
+        addoutslice(){
+            // var AluminumFrames1=this.AluminumFrame.map(item=>{return item.barcode});
+            // var AluminumFrames2=this.AluminumFrame.map(item=>{return item.isCheck});
+            // var AluminumFrames3=this.AluminumFrame.map(item=>{return item.Flip});
+            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_;
+            });
+            console.log(dats_);
+            //var AluminumFrames=this.AluminumFrame.map((item)=>({barcode,isCheck,Flip}) );
+            // console.log(AluminumFrames1);
+            // console.log(AluminumFrames2);
+            // console.log(AluminumFrames3);
+            AddOutSliceS(dats_).then(res=>{
+                if (res.data.message == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
+            });
         }
     }
 }
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 cf088ab..60f5831 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
@@ -1,18 +1,10 @@
 package com.example.springboot.component;
 
 import cn.hutool.json.JSONObject;
-
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-
-import org.springframework.web.bind.annotation.PostMapping;
-
-import com.example.springboot.common.Result;
-import com.example.springboot.entity.Glass;
 import com.example.springboot.entity.StorageCage;
 import com.example.springboot.entity.alarmmg;
+import com.example.springboot.entity.north_glass_buffer1;
 import com.example.springboot.mapper.HomeMapper;
 import com.example.springboot.mapper.SpianMapper;
 import com.example.springboot.service.JdbcConnections;
@@ -45,12 +37,18 @@
             List<StorageCage> cagelist3 = homeMapper.selectRack3();
             List<StorageCage> cagelist4 = homeMapper.selectRack4();
             jsonObject.append("cagelist1", cagelist1);
-            jsonObject.append("cagelist2", (Object) cagelist2);
+            jsonObject.append("cagelist2", cagelist2);
             jsonObject.append("cagelist3", cagelist3);
             jsonObject.append("cagelist4", cagelist4);
             // 杩涘嚭鐗囦换鍔�
             List<StorageCage> tasklist1 = homeMapper.selectinout(3);
             List<StorageCage> tasklist2 = homeMapper.selectinout(2);
+            for (StorageCage storageCage : tasklist1) {
+                storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
+            }
+            for (StorageCage storageCage : tasklist2) {
+                storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
+              }
             jsonObject.append("tasklist1", tasklist1);
             jsonObject.append("tasklist2", tasklist2);
             // 鏌ヨ鎶ヨ淇℃伅
@@ -62,17 +60,18 @@
             // addressList.add("DB106.0");
             // List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
             // if (paramlist != null) {
-            //     jsonObject.append("params", paramlist);
+            // jsonObject.append("params", paramlist);
             // }
             // // 鑾峰彇杩涚墖杞︾姸鎬�
-            // List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 鑾峰彇杩涚墖杞︾姸鎬�
+            // List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
+            // 1);// 鑾峰彇杩涚墖杞︾姸鎬�
             // boolean exist1 = datas1ListState.contains((short) 0);
             // jsonObject.append("zhuangtai", exist1);
-            //鑾峰彇杩涚墖鐜荤拑淇℃伅
+            // 鑾峰彇杩涚墖鐜荤拑淇℃伅
             // List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
             // if (inglassInfo != null) {
-            //     if (inglassInfo.size() > 0)
-            //         jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
+            // if (inglassInfo.size() > 0)
+            // jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
             // }
             // 浼� 鑾峰彇杩涙槸鍚︽湁寰呯‘璁ょ殑鐜荤拑id
             String queid = spianMapper.Selectqueueid();
@@ -80,8 +79,10 @@
             jsonObject.append("queid", queid);
             jsonObject.append("state", state);
             // 鑾峰彇鎵爜浣嶄笌涓婄墖浣嶇幓鐠冧俊鎭�
-            Glass form2 = homeMapper.GetQueueInfo(2);
-            Glass form3 = homeMapper.GetQueueInfo(1);
+            String queueglassid2 = homeMapper.GetQueueInfo(2);
+            String queueglassid1 = homeMapper.GetQueueInfo(1);
+            north_glass_buffer1 form2 = homeMapper.SelectGlassByGlassID(queueglassid2);
+            north_glass_buffer1 form3 = homeMapper.SelectGlassByGlassID(queueglassid1);
             jsonObject.append("form2", form2);
             jsonObject.append("form3", form3);
             // List<Short> paramlists = new ArrayList<Short>();
@@ -91,7 +92,6 @@
             // paramlists.add(para2);
             // System.out.println(paramlists);
 
-            
             dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
             boolean dbconnected = false;
             try {
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 04444d3..c773316 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
@@ -1,23 +1,30 @@
 package com.example.springboot.controller;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.logging.log4j.util.PropertySource.Comparator;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import com.example.springboot.mapper.HomeMapper;
 import com.example.springboot.mapper.SpianMapper;
 import com.example.springboot.service.HomeService;
+import com.example.springboot.service.MultiFieldComparator;
 import com.example.springboot.service.SpianService;
 import com.example.springboot.common.Result;
 import com.example.springboot.component.S7control;
 import com.example.springboot.entity.CarPosition;
-import com.example.springboot.entity.Glass;
 import com.example.springboot.entity.StorageCage;
 import com.example.springboot.entity.alarmmg;
+import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.entity.Out_slice;
 
 import org.springframework.web.bind.annotation.*;
+
 
 @RestController
 @RequestMapping("/home")
@@ -62,6 +69,9 @@
   @GetMapping("/loadinout")
   public Result selectinout(Integer types) {
     List<StorageCage> storageCageinout = homeMapper.selectinout(types);
+    for (StorageCage storageCage : storageCageinout) {
+      storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
+    }
     Map<String, Object> map = new HashMap<>();
     map.put("list", storageCageinout);
     return Result.success(map);
@@ -110,11 +120,9 @@
     homeMapper.UpdateTask(types);
     StorageCage glass = homeMapper.SelectGlassInfo(glassid);
     if (types == 0) {
-      // spianMapper.UpdataAddCage1(glass.getGlassWidth(),glass.getCage(),glass.getCell());
       homeMapper.UpdateCageTask1(glassid);
       S7control.getinstance().WriteWord("DB105.14", (short) 0);
     } else {
-
       spianMapper.UpdataOutCage1(glass.getGlassWidth(), glass.getCage(), glass.getCell());
       homeMapper.UpdateCageTask2(glassid);
       S7control.getinstance().WriteWord("DB105.12", (short) 0);
@@ -136,6 +144,9 @@
   @GetMapping("/SelectCageInfo")
   public Result SelectCageInfo(short cage) {
     List<StorageCage> cageinfo = homeMapper.SelectCageInfo(cage);
+    for (StorageCage storageCage : cageinfo) {
+      storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
+    }
     Map<String, Object> map = new HashMap<>();
     map.put("cageinfo", cageinfo);
     return Result.success(map);
@@ -193,9 +204,9 @@
   // 鏍规嵁鐜荤拑id鏌ヨ鐜荤拑淇℃伅
   @GetMapping("/SelectGlassByGlassID")
   public Result SelectGlassByGlassID(String glassid) {
-    Glass Glass = homeMapper.SelectGlassByGlassID(glassid);
+    north_glass_buffer1 north_glass_buffer1s = homeMapper.SelectGlassByGlassID(glassid);
     Map<String, Object> map = new HashMap<>();
-    map.put("form", Glass);
+    map.put("form", north_glass_buffer1s);
     return Result.success(map);
   }
 
@@ -210,14 +221,14 @@
 
   // 鎵嬪姩寰�鐞嗙墖绗兼坊鍔犵幓鐠�
   @PostMapping("/Inglassid")
-  public Result Inglassid(short cage, short cell, short tier, @RequestBody Glass glass) {
+  public Result Inglassid(short cage, short cell, short tier, @RequestBody north_glass_buffer1 north_glass_buffer1s) {
     Map<String, Object> map = new HashMap<>();
-    short result = homeMapper.SelectStorageByGlassId(glass.getGlassId());
+    short result = homeMapper.SelectStorageByGlassId(north_glass_buffer1s.getbarcode());
     if (result > 0) {
       map.put("message", "300");
     } else {
-      homeMapper.Inglassid(glass, cage, cell, tier);
-      spianMapper.UpdataAddCage1(glass.getwidth(), cage, cell);
+      homeMapper.Inglassid(north_glass_buffer1s, cage, cell, tier);
+      spianMapper.UpdataAddCage1(north_glass_buffer1s.getglasslengthMm(), cage, cell);
     }
     return Result.success(map);
   }
@@ -226,7 +237,7 @@
   @PostMapping("/SelectGlass")
   public Result SelectGlass(String orderid) {
     Map<String, Object> map = new HashMap<>();
-    List<Glass> glass = homeMapper.SelectGlass(orderid);
+    List<north_glass_buffer1> glass = homeMapper.SelectGlass(orderid);
     map.put("glass", glass);
     return Result.success(map);
   }
@@ -240,6 +251,8 @@
       map.put("message", "300");
     } else {
       homeMapper.InsertQueueGlassId(glassid, id);
+    //璋冪敤浼嶅瓨鍌ㄨ繃绋�
+    spianMapper.selectAll(glassid);
       map.put("message", "200");
     }
     return Result.success(map);
@@ -263,4 +276,100 @@
     return Result.success(map);
   }
 
+  // 鏌ヨ姝よ鍗曞湪鐞嗙墖绗奸噷鐨勭幓鐠冩暟
+  @PostMapping("/SelectGlassNo")
+  public Result SelectGlassNo(String orderid) {
+    Short count = homeMapper.SelectGlassNo(orderid);
+    Map<String, Object> map = new HashMap<>();
+    map.put("count", count);
+    return Result.success(map);
+  }
+
+  // 鏍规嵁閾濇id鑾峰彇瀵瑰簲鐜荤拑淇℃伅
+  @PostMapping("/SelectAluminumFrameInfoById")
+  public Result SelectAluminumFrameInfoById(String FrameBarcode) {
+    List<north_glass_buffer1> listAluminumFrame = homeMapper.SelectAluminumFrameInfoById(FrameBarcode);
+    String flip=homeMapper.SelectFlipByFrameBarcode(FrameBarcode);
+    for (north_glass_buffer1 north_glass_buffer1 : listAluminumFrame) {
+      north_glass_buffer1.setstorageCage(homeMapper.SelectStorageGlassById(north_glass_buffer1.getbarcode()));
+      north_glass_buffer1.setOut_slice(homeMapper.SelectQueueByglassid(north_glass_buffer1.getbarcode()));
+    }
+    Map<String, Object> map = new HashMap<>();
+    map.put("listAluminumFrame", listAluminumFrame);
+    map.put("flip", flip);
+    return Result.success(map);
+  }
+  
+  
+
+  // 鏌ヨ鍑虹墖闃熷垪鏁版嵁
+  @PostMapping("/SelectProductionqueue")
+  public Result SelectProductionqueue() {
+    List<Out_slice> listoutslice = homeMapper.SelectProductionqueue();
+    for (Out_slice out_slice : listoutslice) {
+      out_slice.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(out_slice.getGlassId()));
+      out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
+    }
+    
+    //HashMap<String,List<Out_slice>> map=new HashMap<String,List<Out_slice>>();
+    // HashMap map=new HashMap<>();
+    // for (Out_slice out_slice : listoutslice) {
+    //   String key_=out_slice.getState()+"-";
+    //   if (map.get(key_)==null) {
+    //     List<Out_slice> lists=new ArrayList<Out_slice>();
+    //     lists.add(out_slice);
+    //     map.put(key_, lists);
+    //   }else{
+    //     List<Out_slice> lists=(List<Out_slice>)map.get(key_);
+    //     lists.add(out_slice);
+    //     map.put(key_,lists);
+    //   }
+    // }
+    // System.out.println(map);
+
+    // List<Out_slice> listskey=(List<Out_slice>)map.get("1-");
+    // List<Out_slice> list=new ArrayList<Out_slice>();
+    // for (Out_slice out_slice : listskey) {
+    //   if (list.isEmpty()) {
+    //     list.add(out_slice);
+    //   }else{
+    //     for (int i=0;i<list.size();i++) {
+    //       Out_slice out_slice2=list.get(i);
+    //       if(out_slice.getID()>out_slice2.getID()){
+    //         continue;
+    //       }else{
+    //         list.add(i,out_slice2);
+    //       }
+    //     }
+    //   }
+    // }
+    //Collections.sort(listoutslice,new MultiFieldComparator());
+
+    Map<String, Object> maps = new HashMap<>();
+    maps.put("listoutslice", listoutslice);
+    return Result.success(maps);
+  }
+
+  // 鏍规嵁鐜荤拑id鍒犻櫎鍑虹墖闃熷垪鐜荤拑
+  @PostMapping("/DeleteProductionQueueGlass")
+  public Result DeleteProductionQueueGlass(Short id) {
+    homeMapper.DeleteProductionQueueGlass(id);
+    Map<String, Object> map = new HashMap<>();
+    map.put("message", "200");
+    return Result.success(map);
+  }
+
+  // 
+  @PostMapping("/AddOutSliceS")
+  public Result AddOutSliceS(@RequestBody String[][] AluminumFrames ) {
+    for (String[] item : AluminumFrames) {
+      if(item[1]=="true"){
+        homeMapper.AddOutSliceS(item[0],item[2],item[3],item[4],item[5]);
+      }
+    }
+    System.out.println(AluminumFrames);
+    Map<String, Object> map = new HashMap<>();
+    map.put("message", "200");
+    return Result.success(map);
+  }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java b/springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java
new file mode 100644
index 0000000..84e3004
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java
@@ -0,0 +1,101 @@
+package com.example.springboot.entity;
+
+public class Out_slice {
+    private int id;
+    private String glassId;
+    private String barcode;
+    private double glasswidth;
+    private double glassheight;
+    private int state;
+    private String time;
+
+    private north_glass_buffer1 north_glass_buffer1s;
+
+    public void setnorth_glass_buffer1s(north_glass_buffer1 north_glass_buffer1s) {
+        this.north_glass_buffer1s = north_glass_buffer1s;
+    }
+    
+    public north_glass_buffer1 getnorth_glass_buffer1s() {
+        return north_glass_buffer1s;
+    }
+
+    private StorageCage storageCage;
+
+    public void setstorageCage(StorageCage storageCage) {
+        this.storageCage = storageCage;
+    }
+    
+    public StorageCage getstorageCage() {
+        return storageCage;
+    }
+
+    public Out_slice() {
+    }
+
+    public Out_slice(int ID, String glassId, String barCode, double glasswidth, double glassheight, int state, String time) {
+        this.id = ID;
+        this.glassId = glassId;
+        this.barcode = barCode;
+        this.glasswidth = glasswidth;
+        this.glassheight = glassheight;
+        this.state = state;
+        this.time = time;
+    }
+
+    public int getID() {
+        return id;
+    }
+
+    public String getGlassId() {
+        return glassId;
+    }
+
+    public String getBarCode() {
+        return barcode;
+    }
+
+    public double getGlasswidth() {
+        return glasswidth;
+    }
+
+    public double getGlassheight() {
+        return glassheight;
+    }
+
+    public int getState() {
+        return state;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setID(int ID) {
+        this.id = ID;
+    }
+
+    public void setGlassId(String glassId) {
+        this.glassId = glassId;
+    }
+
+public void setBarCode(String barCode) {
+        barcode = barCode;
+    }
+
+    public void setGlasswidth(double glasswidth) {
+        this.glasswidth = glasswidth;
+    }
+
+    public void setGlassheight(double glassheight) {
+        this.glassheight = glassheight;
+    }
+
+    public void setState(int state) {
+        this.state = state;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+    
+}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java b/springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java
index 2c952ab..30e8ff6 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java
@@ -1,5 +1,7 @@
 package com.example.springboot.entity;
 
+
+
 public class StorageCage {
     private Integer id;
     private Integer prcId;
@@ -14,6 +16,28 @@
     private String orderId;
     private Integer disabled;
     private String lengthWidth;
+    private String listno;
+    private String boxno;
+
+    private north_glass_buffer1 north_glass_buffer1s;
+
+    public void setnorth_glass_buffer1s(north_glass_buffer1 north_glass_buffer1s) {
+        this.north_glass_buffer1s = north_glass_buffer1s;
+    }
+    
+    public north_glass_buffer1 getnorth_glass_buffer1s() {
+        return north_glass_buffer1s;
+    }
+
+    private Out_slice outSlice;
+
+    public void setout_slice(Out_slice outSlice) {
+        this.outSlice = outSlice;
+    }
+    
+    public Out_slice getout_slice() {
+        return outSlice;
+    }
 
     public Integer id() {
         return id;
@@ -122,4 +146,22 @@
     public void setLengthWidth(String lengthWidth) {
         this.lengthWidth = lengthWidth;
     }
+
+    public String getListno() {
+        return listno;
+    }
+
+    public void setListno(String listno) {
+        this.listno = listno;
+    }
+
+    public String getBoxno() {
+        return boxno;
+    }
+
+    public void setBoxno(String boxno) {
+        this.boxno = boxno;
+    }
+
+    
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/out_slice.java b/springboot-vue3/src/main/java/com/example/springboot/entity/out_slice.java
index c9bb6c4..84e3004 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/out_slice.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/out_slice.java
@@ -1,6 +1,6 @@
 package com.example.springboot.entity;
 
-public class out_slice {
+public class Out_slice {
     private int id;
     private String glassId;
     private String barcode;
@@ -19,10 +19,20 @@
         return north_glass_buffer1s;
     }
 
-    public out_slice() {
+    private StorageCage storageCage;
+
+    public void setstorageCage(StorageCage storageCage) {
+        this.storageCage = storageCage;
+    }
+    
+    public StorageCage getstorageCage() {
+        return storageCage;
     }
 
-    public out_slice(int ID, String glassId, String barCode, double glasswidth, double glassheight, int state, String time) {
+    public Out_slice() {
+    }
+
+    public Out_slice(int ID, String glassId, String barCode, double glasswidth, double glassheight, int state, String time) {
         this.id = ID;
         this.glassId = glassId;
         this.barcode = barCode;
@@ -87,4 +97,5 @@
     public void setTime(String time) {
         this.time = time;
     }
+    
 }
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 a9598f5..d6236e3 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
@@ -6,6 +6,9 @@
 import com.example.springboot.entity.Glass;
 import com.example.springboot.entity.StorageCage;
 import com.example.springboot.entity.alarmmg;
+import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.entity.north_glass_buffer1_frames;
+import com.example.springboot.entity.Out_slice;
 
 import java.util.List;
 
@@ -32,7 +35,7 @@
   List<StorageCage> selectRack4();
 
   // 鏍规嵁浠诲姟绫诲瀷鏌ヨ褰撳墠姝e湪鍑虹墖锛岃繘鐗囩殑鐜荤拑淇℃伅
-  @Select("select a.*,concat(round(a.glasswidth*b.conversionrate,2),' x ',round(a.glassheight*b.conversionrate,2)) as lengthwidth from storage_cage as a,conver as b where a.state=#{task_type} limit 1")
+  @Select("select *,concat(glasswidth,' x ',glassheight) as lengthwidth from storage_cage where state=#{task_type}")
   List<StorageCage> selectinout(@Param("task_type") Integer task_type);
 
   // 鏌ヨ鏄惁瀛樺湪姝よ鍗�
@@ -68,7 +71,7 @@
   List<alarmmg> SelectAlarmmgInfo();
 
   //鑾峰彇鐞嗙墖绗煎唴鐜荤拑淇℃伅
-  @Select("select *,concat(round(a.glasswidth*b.conversionrate,2),' x ',round(a.glassheight*b.conversionrate,2)) as lengthwidth from storage_cage  as a,conver as b  ")
+  @Select("select *,concat(round(a.glasswidth),' x ',round(a.glassheight)) as lengthwidth from storage_cage as a")
   List<StorageCage> SelectCageInfo(short cage);
 
   @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null where glass_id=#{glassid}")
@@ -87,28 +90,29 @@
   StorageCage SelectGlassInfo(String glassid);
 
   //鏌ヨ鐜荤拑淇℃伅
- @Select("select * from glass where glassid=#{glassid}")
-  Glass SelectGlassByGlassID(String glassid);
+//  @Select("select * from glass where glassid=#{glassid}")
+  @Select("SELECT ordernumber,listnumber,boxnumber,barcode,glasslength,glassheight,glasslength_mm,glassheight_mm FROM north_glass_buffer1 where barcode=#{barcode}")
+  north_glass_buffer1 SelectGlassByGlassID(String barcode);
 
   //鍚敤/绂佺敤鐞嗙墖绗兼牸瀛�
   @Update("update storage_cage set disabled=#{disabled} where cage=#{cage} and cell=#{cell}")
   void Disabled(short cage, short cell, short disabled);
 
   //鐞嗙墖绗兼柊澧炵幓鐠�
-  @Update("update storage_cage set state=1,glass_id=#{glass.glassId},order_id=#{glass.orderId},glasswidth=#{glass.width},glassheight=#{glass.height} where cage=#{cage} and cell=#{cell} and tier=#{tier}")
-  void Inglassid(Glass glass, short cage, short cell, short tier);
+  @Update("update storage_cage set state=1,glass_id=#{glass.barcode},order_id=#{glass.ordernumber},glasswidth=#{glass.glasslengthMm},glassheight=#{glass.glassheightMm} where cage=#{cage} and cell=#{cell} and tier=#{tier}")
+  void Inglassid(north_glass_buffer1 glass, short cage, short cell, short tier);
 
   //鏌ヨ鐞嗙墖绗间腑鏄惁鏈夋鐜荤拑
   @Select("select count(*) from storage_cage where glass_id=#{glassId}")
   short SelectStorageByGlassId(String glassId);
 
   //鏍规嵁璁㈠崟鏌ヨ鐜荤拑淇℃伅
-  @Select("select * from glass where position(#{orderid} in orderid)")
-  List<Glass> SelectGlass(String orderid);
+  @Select("select * from north_glass_buffer1 where position(#{orderid} in ordernumber)")
+  List<north_glass_buffer1> SelectGlass(String orderid);
 
   //鑾峰彇涓婄墖闃熷垪淇℃伅
-  @Select("select gl.* from queue qe inner join glass gl on qe.glassid=gl.glassid where qe.id=#{id}")
-  Glass GetQueueInfo(int id);
+  @Select("select glassid from queue where id=#{id}")
+  String GetQueueInfo(int id);
 
   //鎵嬪姩娣诲姞鎵爜浣嶇幓鐠�
   @Select("update queue set glassid=#{glassid},state=1 where id=#{id}")
@@ -119,8 +123,48 @@
   void UpdateQueueState();
 
   //鎵嬪姩娣诲姞鎵爜浣嶇幓鐠�
-  @Select("update queue set glassid='' where id=#{id}")
+  @Select("update queue set glassid='',state=0 where id=#{id}")
   void DeleteQueueGlass(String id);
 
-  
+  //鏌ヨ姝よ鍗曞湪鐞嗙墖绗奸噷鐨勭幓鐠冩暟
+  @Select("select count(*) from storage_cage where order_id=#{orderid}")
+  Short SelectGlassNo(String orderid);
+
+  //鏍规嵁鐜荤拑id浠庡鎴疯〃鏌ヨ鏁版嵁
+  @Select("select * from north_glass_buffer1 where barcode=#{glassid}")
+  north_glass_buffer1 SelectBoxNo(String glassid);
+
+  //鏌ヨ鍑虹墖闃熷垪淇℃伅
+  @Select("select * from out_slice where state=0 or state=1")
+  List<Out_slice> SelectProductionqueue();
+
+  //鏍规嵁鐜荤拑id鏌ヨ绗煎唴鐜荤拑淇℃伅
+  @Select("select * from storage_cage where glass_id=#{glassid}")
+  StorageCage SelectStorageGlassById(String glassid);
+
+
+  //鏍规嵁鐜荤拑id鍒犻櫎鍑虹墖闃熷垪鐜荤拑
+  @Select("update out_slice set state=3 where id=#{id}")
+  void DeleteProductionQueueGlass(Short id);
+
+  //鏍规嵁閾濇id鏌ヨ瀵瑰簲鐜荤拑淇℃伅
+  @Select("select * from north_glass_buffer1 where FrameBarcode=#{FrameBarcode}")
+  List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode);
+
+  //鏌ヨ鏍规嵁id鏌ヨ
+  @Select("select b.* from storage_cage a inner join out_slice b on a.glass_id=b.glassId where b.glassId=#{glassId}")
+  List<Out_slice> SelectOutSliceById(String glassId);
+
+  //鏌ヨ鐜荤拑id鏄惁
+  @Select("select Flip from north_glass_buffer1_frames where Barcode=#{frameBarcode} limit 1")
+  String SelectFlipByFrameBarcode(String frameBarcode);
+
+  //鏌ヨ鐜荤拑鏄惁宸插瓨鍦ㄤ簬鍑虹墖闃熷垪
+  @Select("select * from out_slice where glassid=#{getbarcode} and (state=0 or state=1)")
+  Out_slice SelectQueueByglassid(String getbarcode);
+
+  //鏌ヨ鐜荤拑鏄惁宸插瓨鍦ㄤ簬鍑虹墖闃熷垪
+  @Select("INSERT INTO out_slice( `glassId`, `barcode`, `glasswidth`, `glassheight`, `state`, `flip`) VALUES ( #{glassid}, #{FrameNo}, #{glasslengthMm}, #{glassheightMm}, 0, #{flip});")
+  void AddOutSliceS(String glassid, String flip, String FrameNo, String glasslengthMm, String glassheightMm);
+
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/security/config/ShiroConfig.java b/springboot-vue3/src/main/java/com/example/springboot/security/config/ShiroConfig.java
index 3e7a55a..52ad80c 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/security/config/ShiroConfig.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/security/config/ShiroConfig.java
@@ -1,5 +1,5 @@
 package com.example.springboot.security.config;
-
+ 
 import com.example.springboot.security.JWTRealm;
 import com.example.springboot.security.NoSessionFilter;
 import com.example.springboot.security.StatelessDefaultSubjectFactory;
@@ -18,17 +18,17 @@
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.DependsOn;
-
+ 
 import javax.servlet.Filter;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
-
+ 
 @Configuration
 public class ShiroConfig {
-
-
+ 
+ 
     /**
      * Shiro鐢熷懡鍛ㄦ湡澶勭悊鍣�
      *
@@ -38,7 +38,7 @@
     public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
         return new LifecycleBeanPostProcessor();
     }
-
+ 
     /**
      * 寮�鍚疭hiro鐨勬敞瑙�(濡侤RequiresRoles,@RequiresPermissions),闇�鍊熷姪SpringAOP鎵弿浣跨敤Shiro娉ㄨВ鐨勭被,骞跺湪蹇呰鏃惰繘琛屽畨鍏ㄩ�昏緫楠岃瘉
      * DefaultAdvisorAutoProxyCreator鐨勯『搴忓繀椤诲湪shiroFilterFactoryBean涔嬪墠锛屼笉鐒禨ecurityUtils.getSubject().getPrincipal()鑾峰彇涓嶅埌鍙傛暟
@@ -52,24 +52,24 @@
         advisorAutoProxyCreator.setProxyTargetClass(true);
         return advisorAutoProxyCreator;
     }
-
+ 
     @Bean
     public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor() {
         AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
         authorizationAttributeSourceAdvisor.setSecurityManager(defaultSecurityManager());
         return authorizationAttributeSourceAdvisor;
     }
-
+ 
     @Bean(name = "shiroFilterFactoryBean")
     public ShiroFilterFactoryBean shiroFilterFactoryBean() {
         ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
         shiroFilterFactoryBean.setSecurityManager(defaultSecurityManager());
-
+ 
         // 杩囨护瑙勫垯
         Map<String, String> linkedHashMap = new LinkedHashMap<>();
         // 鏃犵姸鎬佺櫥褰曟儏鍐典笅鍏抽棴浜唖hiro涓殑session锛屽鑷存墍鏈夐渶瑕佸姞涓奱uthc鎺ュ彛璇锋眰鏃跺�欓兘浼氭姤閿欙紝
         // 鎵�浠ヤ娇鐢ˊRequiresRoles,@RequiresPermissions娉ㄨВ,aop鏂瑰紡瀹炵幇鎺ュ彛鐨勬潈闄愭牎楠�
-
+ 
         /* 娣诲姞shiro鐨勫唴缃繃婊ゅ櫒锛岃嚜瀹氫箟url瑙勫垯
          * Shiro鑷甫鎷︽埅鍣ㄩ厤缃鍒�
          * rest锛氭瘮濡�/admins/user/**=rest[user],鏍规嵁璇锋眰鐨勬柟娉曪紝鐩稿綋浜�/admins/user/**=perms[user锛歮ethod] ,鍏朵腑method涓簆ost锛実et锛宒elete绛�
@@ -110,7 +110,7 @@
 //        // 鎺堟潈鐨勬潈闄�
 //        linkedHashMap.put("/api/rolePermission/saveOrUpdate", "perms[rolePermission:add]");
 //        linkedHashMap.put("/api/rolePermission/removeByIds", "perms[rolePermission:delete]");
-
+ 
         // 鑷畾涔夎繃婊ゅ櫒
         HashMap<String, Filter> filterHashMap = new HashMap<>();
         filterHashMap.put("jwt", new NoSessionFilter());
@@ -120,7 +120,7 @@
         shiroFilterFactoryBean.setFilterChainDefinitionMap(linkedHashMap);
         return shiroFilterFactoryBean;
     }
-
+ 
     @Bean
     public DefaultWebSecurityManager defaultSecurityManager() {
         DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
@@ -134,7 +134,7 @@
         defaultWebSecurityManager.setSubjectFactory(subjectFactory());
         return defaultWebSecurityManager;
     }
-
+ 
     /**
      * 鐧诲綍鐨勮璇佸拰鎺堟潈
      *
@@ -146,7 +146,7 @@
         userRealm.setCredentialsMatcher(hashedCredentialsMatcher());
         return userRealm;
     }
-
+ 
     /**
      * token鐨勮璇佸拰鎺堟潈
      *
@@ -156,12 +156,12 @@
     public JWTRealm jwtRealm() {
         return new JWTRealm();
     }
-
+ 
     @Bean
     public StatelessDefaultSubjectFactory subjectFactory() {
         return new StatelessDefaultSubjectFactory();
     }
-
+ 
     /*
      * 鍑瘉鍖归厤鍣� 鐢变簬鎴戜滑鐨勫瘑鐮佹牎楠屼氦缁橲hiro鐨凷impleAuthenticationInfo杩涜澶勭悊浜�
      */
@@ -172,7 +172,7 @@
         hashedCredentialsMatcher.setHashIterations(1024);// 鏁e垪鐨勬鏁帮紝姣斿鏁e垪涓ゆ锛岀浉褰撲簬MD5(MD5(""));
         return hashedCredentialsMatcher;
     }
-
+ 
     @Bean
     public CookieRememberMeManager cookieRememberMeManager() {
         CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/OutSlice.java b/springboot-vue3/src/main/java/com/example/springboot/service/OutSlice.java
new file mode 100644
index 0000000..13764dd
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/OutSlice.java
@@ -0,0 +1,66 @@
+package com.example.springboot.service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import com.example.springboot.entity.Out_slice;
+
+public class OutSlice {
+
+    // public static List<Out_slice> Groupbyresult(List<Out_slice> out_slices) {
+    //     // 浼犲叆涓�涓泦鍚� 杩涜鍒嗙粍鏉′欢鍒嗙粍
+    //     List<Out_slice> resultlist = new ArrayList<Out_slice>();
+    //     HashMap map = new HashMap<>();
+    //     // HashMap<String,List<Out_slice>> map=new HashMap<String,List<Out_slice>>();
+    //     for (Out_slice out_slice : out_slices) {
+    //         String key_ = out_slice.getState() + "-";
+    //         if (map.get(key_) == null) {
+    //             List<Out_slice> lists = new ArrayList<Out_slice>();
+    //             lists.add(out_slice);
+    //             map.put(key_, lists);
+    //         } else {
+    //             List<Out_slice> lists = (List<Out_slice>) map.get(key_);
+    //             lists.add(out_slice);
+    //             map.put(key_, lists);
+    //         }
+    //     }
+    //     return resultlist;
+    // }
+
+    // public static List<Out_slice> Orderbyresult(List<Out_slice> out_slices, int orders) {
+    //     // orders 鎺掑簭妯″紡
+    //     List<Out_slice> list = new ArrayList<Out_slice>();
+    //     for (Out_slice out_slice : out_slices) {
+    //         if (list.isEmpty()) {
+    //             list.add(out_slice);
+    //         } else {
+    //             for (int i = 0; i < list.size(); i++) {
+    //                 Out_slice out_slice2 = list.get(i);
+    //                 if (out_slice.getID() > out_slice2.getID()) {
+    //                     continue;
+    //                 } else {
+    //                     list.add(i, out_slice2);
+    //                 }
+    //             }
+    //         }
+    //     }
+    // }
+
+    // public static void f() {
+    //     HashMap map = new HashMap<>();
+    //     for (Out_slice out_slice : listoutslice) {
+    //         String key_ = out_slice.getState() + "-";
+    //         if (map.get(key_) == null) {
+    //             List<Out_slice> lists = new ArrayList<Out_slice>();
+    //             lists.add(out_slice);
+    //             map.put(key_, lists);
+    //         } else {
+    //             List<Out_slice> lists = (List<Out_slice>) map.get(key_);
+    //             lists.add(out_slice);
+    //             map.put(key_, lists);
+    //         }
+    //     }
+    // }
+
+}

--
Gitblit v1.8.0