From 0258088b4e7751431080a1b47e7bc2af18031bbf Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期一, 04 十二月 2023 08:59:01 +0800
Subject: [PATCH] 更新主界面功能

---
 /dev/null                                                                                    |   66 -----
 CanadaMes-ui/src/views/home/index.vue                                                        |  356 +++++++++++++++++++++++------
 springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java            |   20 +
 CanadaMes-ui/src/api/home.js                                                                 |   17 +
 springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java                   |    9 
 CanadaMes-ui/src/lang/locales/en-US.json                                                     |    4 
 springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java            |   35 ++
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java                  |   62 ++++
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java                  |   20 +
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java          |   40 ++-
 CanadaMes-ui/src/lang/locales/zh-CN.json                                                     |    2 
 springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java |   44 +++
 12 files changed, 495 insertions(+), 180 deletions(-)

diff --git a/CanadaMes-ui/src/api/home.js b/CanadaMes-ui/src/api/home.js
index 22841f0..64fb220 100644
--- a/CanadaMes-ui/src/api/home.js
+++ b/CanadaMes-ui/src/api/home.js
@@ -173,9 +173,9 @@
     })
 }
 
-export function DeleteProductionQueueGlass(id) {
+export function DeleteProductionQueueGlass(FrameNo) {
     return request({
-        url: '/home/DeleteProductionQueueGlass?id='+id,
+        url: '/home/DeleteProductionQueueGlass?FrameNo='+FrameNo,
         method: 'post',
         data: ""
     })
@@ -189,11 +189,20 @@
     })
 }
 
-export function isAllowQueues(isAllowQueue) {
+export function isAllowQueues(isAllowQueue,data) {
     return request({
-        url: '/home/AddOutSliceS?isAllowQueue'+isAllowQueue,
+        url: '/home/isAllowQueues?isAllowQueue=' + isAllowQueue,
+        method: 'post',
+        data
+    })
+}
+
+export function isConfirmStates(isConfirmStates) {
+    return request({
+        url: '/home/isConfirmStates?isConfirmStates=' + isConfirmStates,
         method: 'post',
         data:""
     })
 }
 
+
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index 4c7a184..20962e3 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -311,5 +311,7 @@
   "Outing":"Outing",
   "Suspend":"Suspend",
   "Stop":"Stop",
-  "Start":"Start"
+  "Start":"Start",
+  "Sequence":"Sequence",
+  "Position":"Position"
 }
\ 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 b232931..8bdbb90 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -307,6 +307,8 @@
   "Suspend":"鏆傚仠",
   "Stop":"鍋滄",
   "Start":"寮�濮�",
+  "Sequence":"椤哄簭",
+  "Position":"浣嶇疆",
   "langparameter": {
     "conveyor Velocity(Auto FAST)": "D01-D06 鐨甫杈撻�佽嚜鍔ㄥ揩閫�",
     "conveyor Velocity(Auto SLOW)": "D01-D06 鐨甫杈撻�佽嚜鍔ㄦ參閫�",
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index e3d1e15..584baa0 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -204,11 +204,11 @@
                     </label>
                 </div>
             </div>
-            <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
+            <div style="display:flex;justify-content: space-around;width: 9zz5%;margin: 0 auto;">
                 <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>
+                <!-- <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%">
@@ -220,7 +220,7 @@
                     <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
                     <el-table-column :width="130" prop="lengthWidth" :label="$t('Dim')">
                         <template slot-scope='scope'>
-                            {{ scope.row.glasswidthmm }}*1{{ scope.row.glassheightmm }}
+                            {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }}
                         </template>
                     </el-table-column>
                     <el-table-column :label="$t('Terminate Task')">
@@ -240,7 +240,7 @@
                     <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
                     <el-table-column :width="130" prop="lengthWidth" :label="$t('Dim')">
                         <template slot-scope='scope'>
-                            {{ scope.row.glasswidthmm }}*1{{ scope.row.glassheightmm }}
+                            {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }}
                         </template>
                     </el-table-column>
 
@@ -397,7 +397,10 @@
         </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-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="cageglassid"></el-input>
+            <el-button type="primary" @click="showcageinfo(1)">{{ $t('Query') }}</el-button>
+            <el-table :data="cageinfo.slice((currentPages - 1) * pagesizes, currentPages * pagesizes)" :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>
@@ -408,7 +411,8 @@
                 <el-table-column :width="100" prop="state" :label="$t('State')">
                     <template slot-scope='scope'>
                         {{
-                            scope.row.state == 1 ? $t('Normal') : scope.row.state == 2 ? $t('Entering') : scope.row.state == 3 ? $t('Outing') : ""
+                            scope.row.state == 1 ? $t('Normal') : scope.row.state == 2 ? $t('Entering') : scope.row.state == 3 ?
+                                $t('Outing') : ""
                         }}
                     </template>
                 </el-table-column>
@@ -434,6 +438,13 @@
                     </template>
                 </el-table-column>
             </el-table>
+
+            <el-pagination :style="'margin-top:-2px'" @size-change="handleSizeChanges"
+                @current-change="handleCurrentChanges" :pager-count="7" :current-page="currentPages"
+                :page-sizes="[21, 42, 84, 420]" :page-size="pagesizes" layout="total, sizes, prev, pager, next, jumper"
+                :total="cageinfo.length > 0 ? cageinfo.length : null" background style="float: right; margin-top: 20px">
+            </el-pagination>
+
         </el-dialog>
 
         <el-dialog :visible.sync="dialogFormVisible4" :title="$t('OrderInfo')" top="5vh">
@@ -458,10 +469,10 @@
         <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;">
-                    <el-form-item>
-                        <label for="">{{ $t('Upper film position') }}</label>
-                        <label for="">{{ $t('Scan Code Point') }}</label>
-                    </el-form-item>
+                    <label for="">{{ $t('Upper film position') }}</label>
+                    <el-button type="primary" @click="isConfirmState()">
+                        {{ this.isConfirm == true ? "Allow" : "Not Allow" }}</el-button>
+                    <label for="">{{ $t('Scan Code Point') }}</label>
                 </div>
                 <div style="display: flex;justify-content: space-around;height: 40px;">
                     <label for="">{{ $t('current Information') }}</label>
@@ -586,33 +597,41 @@
         </el-dialog>
 
         <el-dialog :visible.sync="dialogFormVisible6" :title="$t('Production queue')" top="5vh">
-            <el-button type="primary" @click="showform7()">{{ $t('Increase') }}</el-button>
-            <el-button type="primary" @click="isAllowQueueState()">{{ this.isAllowQueue == true ? $t('Stop') : $t('Start')
+            <!-- <el-button type="primary" @click="showform7()">{{ $t('Increase') }}</el-button> -->
+            <el-button type="primary" @click="isAllowQueueState()">{{ this.isAllowQueue == true ? $t('Start') : $t('Stop')
             }}</el-button>
 
-            <el-table :data="this.OutSlice" :height="700" border style="width: 100%;overflow: auto;">
+            <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border
+                style="width: 100%;overflow: auto;">
                 <el-table-column prop="glassId" :label="$t('Barcode')"></el-table-column>
                 <el-table-column prop="storageCage.orderId" :label="$t('Order No')"></el-table-column>
                 <el-table-column prop="storageCage.listId" :label="$t('List No')"></el-table-column>
                 <el-table-column prop="storageCage.boxId" :label="$t('Box No')"></el-table-column>
-                <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column>
                 <el-table-column prop="storageCage.glasswidthmm" :label="$t('Length')"></el-table-column>
                 <el-table-column prop="storageCage.glassheightmm" :label="$t('Width')"></el-table-column>
+                <el-table-column prop="state" :label="$t('State')">
+                    <template slot-scope='scope'>
+                        {{ scope.row.state == 0 ? "Waiting" : "Outing" }}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column>
+                <el-table-column prop="position" :label="$t('Position')"></el-table-column>
+                <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column>
                 <el-table-column :width="280" :label="$t('Operate')">
                     <template slot-scope='scope'>
                         <el-button type="text" size="small" @click="getTopMove(scope.row, scope.$index)"
-                            :disabled="scope.$index == 0">
+                            :disabled="(scope.$index == 0 || isAllowQueue == true || scope.row.state == 1)">
                             缃《
                         </el-button>
                         <el-button type="text" size="small" @click="getUpMove(scope.row, scope.$index)"
-                            :disabled="scope.$index == 0">
+                            :disabled="(scope.$index == 0 || isAllowQueue == true || scope.row.state == 1)">
                             涓婄Щ
                         </el-button>
                         <el-button type="text" size="small" @click="getDownMove(scope.row, scope.$index)"
-                            :disabled="OutSlice.length - 1 == scope.$index">涓嬬Щ
+                            :disabled="(OutSlice.length - 1 == scope.$index || isAllowQueue == true || scope.row.state == 1)">涓嬬Щ
                         </el-button>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                            @click="deleteproductionqueueglass(scope.row.id)">{{ $t('Delete') }}</el-button>
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="isAllowQueue"
+                            @click="deleteproductionqueueglass(scope.row.barcode)">{{ $t('Delete') }}</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -664,7 +683,7 @@
 import {
     home, home2, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist,
     SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass, SelectGlassNo,
-    SelectAluminumFrameInfoById, SelectProductionqueue, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues
+    SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates
 } from "../../api/home";
 
 
@@ -714,6 +733,7 @@
             glassid: "",
             glassid1: "",
             glassid2: "",
+            cageglassid: "",
             url: "../../img/bigcar01.png",
             car1: 145,
             car2: 210,
@@ -733,10 +753,17 @@
             currentPage: 1,  //榛樿鍒濆椤�
             pagesize: 15,    //姣忛〉榛樿鏄剧ず鐨勬暟鎹�
             pageCount: 0,
+
+            currentPages: 1,  //榛樿鍒濆椤�
+            pagesizes: 21,    //姣忛〉榛樿鏄剧ず鐨勬暟鎹�
+            pageCounts: 0,
+
             OutSlice: [],
             AluminumFrame: [],
             framebarcode: "",
-            isAllowQueue: true
+            isAllowQueue: true,
+            FrameNoFlag: "",
+            isConfirm: true
         };
     },
     created() {
@@ -779,17 +806,28 @@
                     this.tasklist1 = obj.tasklist1[0];
                     this.tasklist2 = obj.tasklist2[0];
                     this.alarm = obj.alarmmg[0];
+                    //閾濇id鎻愮ず
 
-                    this.isAllowQueue = obj.isAllowQueue;
+
+                    //鏄惁鍏佽鍑虹墖
+                    this.isAllowQueue = obj.isAllowQueue[0];
                     //鍑虹墖闃熷垪
-                    this.OutSlice = obj.listoutslice[0];
+                    if (this.isAllowQueue == true) {
+                        this.OutSlice = obj.listoutslice[0];
+                    }
                     this.loadglassheight = obj.loadglassheight;
                     if (obj.zhuangtai != null) {
                         this.zhuangtai = obj.zhuangtai[0];
                     }
-                    if (this.dialogFormVisible7 == true) {
-                        this.showform7();
-                    }
+                    // if (this.dialogFormVisible7 == true) {
+                    //     this.showform7();
+                    // } else {
+                    //     if (obj.FrameNo != null && obj.FrameNo != "") {
+                    //         this.framebarcode = obj.FrameNo[0];
+                    //         this.showform7();
+                    //         this.addoutslice();
+                    //     }
+                    // }
                     if (obj.form2 != null && obj.form2 != "") {
                         this.form2 = obj.form2[0];
                     } else {
@@ -801,35 +839,24 @@
                     } else {
                         this.form3 = {};
                     }
+                    this.isConfirm = obj.isConfirm[0];
                     if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 0) {
                         this.form5 = obj.form3[0];
                         this.showform3();
-                        if (this.form5.glassheight < 380 || this.form5.glasswidth < 390 || this.form5.glassheight > 1810 || this.form5.glasswidth > 2760) {
-                            if (this.disabled1 == false) {
-                                this.disabled1 = true;
-                                this.$message.error(this.$t('The glass size is not within the range'));
-                            }
-                        } else {
-                            this.disabled1 = false;
-                        }
+                        this.Sizerange(this.form5);
+
                     } else {
-                        if (this.form5.glassheight < 380 || this.form5.glasswidth < 390 || this.form5.glassheight > 1810 || this.form5.glasswidth > 2760) {
-                            if (this.disabled1 == false) {
-                                this.disabled1 = true;
-                                // this.$message.error(this.$t('The glass size is not within the range'));
-                            }
-                        } else {
-                            this.disabled1 = false;
-                        }
+                        this.Sizerange(this.form5);
                     }
-                    //if (obj.dbconnected == "false") {
-                    this.text = this.$t('DataBase Connection failed');
-                    // }
+                    if (obj.dbconnected == "false") {
+                        this.text = this.$t('DataBase Connection failed');
+                    }
                     if (this.dialogFormVisible3 == true) {
-                        SelectCageInfo(this.cage).then(res => {
+                        SelectCageInfo(this.cageglassid).then(res => {
                             this.cageinfo = res.data.cageinfo;
                         });
                     }
+
 
                     this.$forceUpdate();
 
@@ -971,20 +998,14 @@
         },
         //鑾峰彇鎵爜浣嶅拰涓婄墖浣嶆暟鎹�
         SelectGlassByGlassIDs(parameter) {
+
             this.showform3();
             if (parameter == 1) {
                 SelectGlassByGlassID(this.glassid2).then(res => {
                     if (res.data.form != null) {
                         this.form4 = res.data.form;
                         this.$message.success(this.$t('query was successful'));
-                        if (this.form4.glassheight < 380 || this.form4.glasswidth < 390 || this.form4.glassheight > 1810 || this.form4.glasswidth > 2760) {
-                            if (this.disabled == false) {
-                                this.disabled = true;
-                                this.$message.error(this.$t('The glass size is not within the range'));
-                            }
-                        } else {
-                            this.disabled = false;
-                        }
+                        this.Sizerange(this.form4);
                     } else {
                         this.$message.error(this.$t('There is no such glass'));
                     }
@@ -1002,14 +1023,7 @@
                     if (res.data.form != null) {
                         this.form5 = res.data.form;
                         this.$message.success(this.$t('query was successful'));
-                        if (this.form5.glassheight < 380 || this.form5.glasswidth < 390 || this.form5.glassheight > 1810 || this.form5.glasswidth > 2760) {
-                            if (this.disabled1 == false) {
-                                this.disabled1 = true;
-                                this.$message.error(this.$t('The glass size is not within the range'));
-                            }
-                        } else {
-                            this.disabled1 = false;
-                        }
+                        this.Sizerange(this.form5);
                     } else {
                         this.$message.error(this.$t('There is no such glass'));
                     }
@@ -1038,16 +1052,14 @@
             this.dialogFormVisible4 = true;
         },
         showform6() {
-            SelectProductionqueue().then(res => {
-                this.OutSlice = res.data.listoutslice;
-            });
             this.dialogFormVisible6 = true;
         },
         showform7() {
+            //鏌ヨ閾濇id瀵瑰簲鐜荤拑淇℃伅
             SelectAluminumFrameInfoById(this.framebarcode).then(res => {
                 this.AluminumFrame = res.data.listAluminumFrame;
                 this.AluminumFrame.sort(function (x, y) {
-                    if(x['storageCage']!=null&&y['storageCage']!=null){
+                    if (x['storageCage'] != null && y['storageCage'] != null) {
                         return y['storageCage']['tier'] - x['storageCage']['tier'];
                     }
                 });
@@ -1061,7 +1073,7 @@
                     item.FrameNo = this.framebarcode;
                 });
             });
-            this.dialogFormVisible7 = true;
+            // this.dialogFormVisible7 = true;
         },
         //鍙栨秷鎿嶄綔鏃跺叧闂〉闈�
         cancel() {
@@ -1109,9 +1121,11 @@
         },
         //鏄剧ず鐞嗙墖绗艰鎯呬俊鎭�
         showcageinfo(cage) {
-            this.cage = cage;
+            cage = this.cageglassid;
             SelectCageInfo(cage).then(res => {
+
                 this.cageinfo = res.data.cageinfo;
+                this.currentPages = 1;
                 this.dialogFormVisible3 = true;
             });
         },
@@ -1262,6 +1276,14 @@
         handleCurrentChange: function (currentPage) {
             this.currentPage = currentPage;
         },
+        //鏀瑰彉姣忛〉瀹圭撼鐨勬暟鎹噺
+        handleSizeChanges: function (size) {
+            this.pagesizes = size;
+        },
+        //鍒囨崲椤电爜
+        handleCurrentChanges: function (currentPage) {
+            this.currentPages = currentPage;
+        },
         //鎵嬪姩娣诲姞鎵爜浣嶇幓鐠�
         InsertQueueGlass(parameter) {
             if (parameter == 1 && this.form5.glassId != "") {
@@ -1299,12 +1321,14 @@
             if (parameter == 1) {
                 DeleteQueueGlass(1).then(res => {
                     if (res.data.message == 200) {
+                        this.form2 = {};
                         this.$message.success(this.$t('Operation successful'));
                     }
                 });
             } else {
                 DeleteQueueGlass(2).then(res => {
                     if (res.data.message == 200) {
+                        this.form3 = {};
                         this.$message.success(this.$t('Operation successful'));
                     }
                 });
@@ -1322,9 +1346,6 @@
             this.AluminumFrame.forEach(item => { item.barcode = glassid; item.isCheck = isChecked })
         },
         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();
@@ -1342,26 +1363,203 @@
                 }
             });
         }, getTopMove(row, index) {
-            this.OutSlice.splice(index, 1)
-            this.OutSlice.unshift(row)
+            let Sequence = [];
+            this.OutSlice.forEach(item => {
+                Sequence.push(item.sequence);
+            });
+            let OutSliceArr = [];
+            OutSliceArr.push(row);
+            let belowstop = 1;
+            let hereframeno = this.OutSlice[index].barcode;
+            let upperstop = 0;
+            for (let i = index + 1; i < this.OutSlice.length; i++) {
+                if (this.OutSlice[i].barcode == hereframeno) {
+                    OutSliceArr.push(this.OutSlice[i]);
+                    belowstop += 1;
+                } else {
+                    break;
+                }
+            }
+            this.OutSlice.splice(index, belowstop);
+            for (let i = 0; i < OutSliceArr.length; i++) {
+                this.OutSlice.splice(upperstop, 0, OutSliceArr[i]);
+                upperstop += 1;
+            }
+            this.UpdateSequence(Sequence);
         },
         //涓婄Щ
         getUpMove(row, index) {
-            let arr = this.OutSlice;
-            arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1]));
+            let Sequence = [];
+            this.OutSlice.forEach(item => {
+                Sequence.push(item.sequence);
+            });
+            let OutSliceArr = [];
+            OutSliceArr.push(row);
+            let belowstop = 1;
+            let upperstop = 0;
+            let index_x = index - 1;
+            let hereframeno = this.OutSlice[index].barcode;
+            let upperframeno = this.OutSlice[index_x].barcode;
+            for (let i = index + 1; i < this.OutSlice.length; i++) {
+                if (this.OutSlice[i].barcode == hereframeno) {
+                    OutSliceArr.push(this.OutSlice[i]);
+                    belowstop += 1;
+                } else {
+                    break;
+                }
+            }
+            this.OutSlice.splice(index, belowstop);
+            for (let i = index_x; i >= 0; i--) {
+                if (this.OutSlice[i].barcode != upperframeno) {
+                    upperstop = i + 1;
+                    break;
+                }
+            }
+            for (let i = 0; i < OutSliceArr.length; i++) {
+                this.OutSlice.splice(upperstop, 0, OutSliceArr[i]);
+                upperstop += 1;
+            }
+            this.UpdateSequence(Sequence);
         },
         //涓嬬Щ
         getDownMove(row, index) {
-            let arr = this.OutSlice;
-            arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index]));
+            let Sequence = [];
+            this.OutSlice.forEach(item => {
+                Sequence.push(item.sequence);
+            });
+            let OutSliceArr = [];
+            OutSliceArr.push(row);
+
+            let belowstop = 1;
+            let upperstop = this.OutSlice.length - 1;
+            let flag = 0;
+            let hereframeno = this.OutSlice[index].barcode;
+            let upperframeno;
+            for (let i = index + 1; i < this.OutSlice.length; i++) {
+                if (this.OutSlice[i].barcode == hereframeno) {
+                    OutSliceArr.push(this.OutSlice[i]);
+                    belowstop += 1;
+                } else {
+                    break;
+                }
+            }
+            this.OutSlice.splice(index, belowstop);
+            for (let i = index; i < this.OutSlice.length; i++) {
+                if (this.OutSlice[i].barcode != hereframeno && this.OutSlice[i].barcode != upperframeno) {
+                    upperframeno = this.OutSlice[i].barcode;
+                    flag += 1;
+                    upperstop = i;
+                }
+                if (i == this.OutSlice.length - 1 && flag == 1) {
+                    flag += 1;
+                    upperstop = i + 1;
+                }
+                if (flag == 2) {
+                    break;
+                }
+            }
+            for (let i = 0; i < OutSliceArr.length; i++) {
+                this.OutSlice.splice(upperstop, 0, OutSliceArr[i]);
+                upperstop += 1;
+            }
+            this.UpdateSequence(Sequence);
+        },
+        UpdateSequence(Sequence) {
+            let i = 0;
+            this.OutSlice.forEach(item => {
+                item.sequence = Sequence[i];
+                i++;
+            });
         },
         //鍒囨崲鍑虹墖闃熷垪鐘舵��
         isAllowQueueState() {
-            isAllowQueues(!this.isAllowQueue).then(res => {
+            isAllowQueues(!this.isAllowQueue, this.OutSlice).then(res => {
                 if (res.data.message == 200) {
                     this.$message.success(this.$t('Operation successful'));
                 }
             })
+        },
+        //鍒囨崲涓婄墖鏄惁闇�瑕佺‘璁ょ幓鐠冧俊鎭�
+        isConfirmState() {
+            isConfirmStates(!this.isConfirm).then(res => {
+                if (res.data.message == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
+            });
+        }
+        ,
+        arraySpanMethod({ row, column, rowIndex, columnIndex }) {
+            console.log(row, column);
+            if (rowIndex % 2 === 0) {
+                if (columnIndex === 0) {
+                    return [1, 2];
+                } else if (columnIndex === 1) {
+                    return [0, 0];
+                }
+            }
+        },
+        //鍚堝苟琛�
+        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+            // console.log(row, column, "ss");
+            row = column;
+            column = row
+            let arrOutSlice = this.OutSlice;
+            let rowspans = 0;
+            let colspans = 1;
+            let barcode = arrOutSlice[rowIndex].barcode;
+
+            let barcode2;
+            if (rowIndex != 0) {
+                barcode2 = arrOutSlice[rowIndex - 1].barcode;
+            }
+            if (columnIndex === 9) {
+                if (barcode != barcode2) {
+                    // this.FrameNoFlag = barcode;
+                    for (let i = rowIndex; i < this.OutSlice.length; i++) {
+                        if (barcode == arrOutSlice[i].barcode) {
+                            barcode = arrOutSlice[i].barcode;
+                            rowspans += 1;
+                        } else {
+
+                            break;
+                        }
+                    }
+                    return {
+                        rowspan: rowspans,
+                        colspan: colspans
+                    };
+                } else {
+                    return {
+                        rowspan: 0,
+                        colspan: 0
+                    };
+                }
+            }
+        },
+        Sizerange(Glass) {
+            if ((Glass.glassheight < 380 || Glass.glasswidth < 390 || Glass.glassheight > 1810 || Glass.glasswidth > 2760) || (Glass.glassheight < 390 || Glass.glasswidth < 380 || Glass.glassheight > 2760 || Glass.glasswidth > 1810)) {
+                if (this.disabled == false) {
+                    this.disabled = true;
+                    this.$message.error(this.$t('The glass size is not within the range'));
+                    this.$confirm(this.$t('The glass size is not within the range'), this.$t('confirm'), {
+                        confirmwidth: 7000,
+                        height: 8000,
+                        // confirmButtonText: this.$t('Yes'),
+                        // cancelButtonText: this.$t('No'),
+                        type: 'warning'
+                    }).then(() => {
+                        this.$message.success(this.$t('Operation successful'));
+                    }).catch(() => {
+                        this.$message({
+                            type: 'info',
+                            message: this.$t('Operation canceled')
+                        });
+                    });
+                }
+                this.disabled1 = true;
+            } else {
+                this.disabled1 = false;
+            }
         }
     }
 }
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 2098ce0..ee259d6 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,7 +1,9 @@
 package com.example.springboot.component;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.poi.excel.sax.handler.MapRowHandler;
 
+import java.sql.SQLException;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,6 +15,8 @@
 import com.example.springboot.mapper.HomeMapper;
 import com.example.springboot.mapper.SpianMapper;
 import com.example.springboot.service.JdbcConnections;
+import com.example.springboot.service.North_Glass_Buffer1Service;
+import com.example.springboot.service.SpianService;
 
 
 public class Plchome extends Thread {
@@ -20,11 +24,15 @@
     @Autowired
     private HomeMapper homeMapper;
     private SpianMapper spianMapper;
+    private SpianService spianService;
+    private North_Glass_Buffer1Service north_Glass_Buffer1Service;
     private JdbcConnections dbserve;
-
-
+    //鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
     public static Boolean isAllowQueue=true;
-    public static String FrameNo=""; 
+    //閾濇id
+    public static String FrameNo;
+    //鏄惁闇�瑕佹墜鍔ㄧ‘璁ょ幓鐠�
+    public static Boolean isConfirm=true;
     // public static Map b=new HashMap<>();
     // b.put()
     @Override
@@ -40,6 +48,8 @@
             // 娉ㄥ叆mapper
             homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
             spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
+            spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
+            north_Glass_Buffer1Service = WebSocketServer.applicationContext.getBean(North_Glass_Buffer1Service.class);
             // 绗煎瓙浣跨敤鎯呭喌
             List<StorageCage> tableData = homeMapper.selectAll();
             jsonObject.append("tableData", tableData);
@@ -101,11 +111,51 @@
             jsonObject.append("listoutslice", listoutslice);
             //鑾峰彇褰撳墠鍑虹墖闃熷垪鐘舵��
             jsonObject.append("isAllowQueue",Plchome.isAllowQueue);
-            //鑾峰彇閾濇idDB106.DBW64
-            // List<Short> frameno = S7control.getinstance().ReadWord("DB106.24", 1);
 
+            //鑾峰彇閾濇idDB106.DBW64
+            // String frameno=spianService.queGlassid("DB106.24",14).toString();
+            // if(frameno!=Plchome.FrameNo){
+            //     Plchome.FrameNo=frameno;
+            // }
+            // Plchome.FrameNo="123";
+            // try {
+            //     north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
+            // } catch (SQLException e) {
+            //     // TODO Auto-generated catch block
+            //     e.printStackTrace();
+            // }
+            //鏄惁闇�瑕佷汉宸ョ‘璁や笂鐗囩幓鐠�
+            jsonObject.append("isConfirm", isConfirm);
+
+            //閾濇绾夸氦浜�
+
+            // //閾濇id璇锋眰瀛�
+            // List<Short> framerequest = S7control.getinstance().ReadWord("閾濇id璇锋眰瀛楀湴鍧�", 1);
+            // if(framerequest!=null){
+            //     //閾濇id
+            //     String franmeno= spianService.queGlassid("閾濇id鍦板潃", 14).toString();
+            //     String position;
+            //         try {
+            //             position=dbserve.SelectPositionByFrameBarcode(franmeno);
+            //         } catch (SQLException e) {
+            //             // TODO Auto-generated catch block
+            //             position="0";
+            //             e.printStackTrace();
+            //         }
+            //     Short send;
+            //     if(position=="0"){
+            //         send=0;
+            //     }else{
+            //         send=1;
+            //     }
+            //     S7control.getinstance().WriteWord("閾濇缈昏浆鍙戦�佸湴鍧�", (short)send);
+            // }
             
 
+            
+            
+
+            
             dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
             boolean dbconnected = false;
             try {
@@ -122,6 +172,8 @@
                 sendwServer.sendMessage(jsonObject.toString());
             }
 
+
+            
         }
     }
 }
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 99f4c1c..90285e6 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
@@ -6,11 +6,14 @@
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 
 import com.example.springboot.mapper.HomeMapper;
 import com.example.springboot.mapper.SpianMapper;
 import com.example.springboot.service.HomeService;
 import com.example.springboot.service.JdbcConnections;
+import com.example.springboot.service.North_Glass_Buffer1Service;
+import com.example.springboot.service.OutSliceServive;
 import com.example.springboot.service.SpianService;
 import com.example.springboot.common.Result;
 import com.example.springboot.component.Plchome;
@@ -38,6 +41,12 @@
 
   @Autowired
   SpianMapper spianMapper;
+
+  @Autowired
+  OutSliceServive outSliceServive;
+
+  @Autowired
+  North_Glass_Buffer1Service north_Glass_Buffer1Service;
 
   @Autowired
   private JdbcConnections jdbcConnections;
@@ -157,8 +166,10 @@
     if (result == null) {
       north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(glassid, "", "");
       String flip = jdbcConnections.SelectFlipByFrameBarcode(north_glass_buffer1.getFrameBarcode());
+      String position = jdbcConnections.SelectPositionByFrameBarcode(north_glass_buffer1.getFrameBarcode());
+      int sequence=homeMapper.SelectMaxSquence();
       homeMapper.AddOutSliceS(glassid, flip, north_glass_buffer1.getFrameBarcode(),
-          north_glass_buffer1.getglasslengthmm().toString(), north_glass_buffer1.getglassheightmm().toString());
+          north_glass_buffer1.getglasslengthmm().toString(), north_glass_buffer1.getglassheightmm().toString(),sequence,position);
       map.put("message2", "200");
     } else {
       map.put("message2", "500");
@@ -273,12 +284,8 @@
   // 鏍规嵁閾濇id鑾峰彇瀵瑰簲鐜荤拑淇℃伅
   @PostMapping("/SelectAluminumFrameInfoById")
   public Result SelectAluminumFrameInfoById(String FrameBarcode) throws SQLException {
-    List<north_glass_buffer1> listAluminumFrame = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdss(FrameBarcode);
     String flip = jdbcConnections.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()));
-    }
+    List<north_glass_buffer1> listAluminumFrame=north_Glass_Buffer1Service.SelectAluminumFrameInfoById(FrameBarcode);
     Map<String, Object> map = new HashMap<>();
     map.put("listAluminumFrame", listAluminumFrame);
     map.put("flip", flip);
@@ -303,21 +310,17 @@
 
   // 鏍规嵁鐜荤拑id鍒犻櫎鍑虹墖闃熷垪鐜荤拑
   @PostMapping("/DeleteProductionQueueGlass")
-  public Result DeleteProductionQueueGlass(Short id) {
-    homeMapper.DeleteProductionQueueGlass(id);
+  public Result DeleteProductionQueueGlass(String FrameNo) {
+    homeMapper.DeleteProductionQueueGlass(FrameNo);
     Map<String, Object> map = new HashMap<>();
     map.put("message", "200");
     return Result.success(map);
   }
 
-  // 娣诲姞鍑虹墖
+  // 娣诲姞閾濇id瀵瑰簲鐜荤拑鍒板嚭鐗囬槦鍒�
   @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]);
-      }
-    }
+    outSliceServive.AddOutSliceS(AluminumFrames);
     Map<String, Object> map = new HashMap<>();
     map.put("message", "200");
     return Result.success(map);
@@ -326,14 +329,21 @@
   // 淇敼鍑虹墖闃熷垪鐘舵�佷笌鍑虹墖闃熷垪璋冨簭
   @PostMapping("/isAllowQueues")
   public Result isAllowQueues(Boolean isAllowQueue, @RequestBody List<Out_slice> out_slice) {
-
     Plchome.isAllowQueue = isAllowQueue;
     if (isAllowQueue == true) {
       for (Out_slice out_slice2 : out_slice) {
         homeMapper.UpdateOutSliceSequence(out_slice2.getGlassId(),out_slice2.getSequence());
       }
     }
+    Map<String, Object> map = new HashMap<>();
+    map.put("message", "200");
+    return Result.success(map);
+  }
 
+  // 淇敼鍑虹墖闃熷垪鐘舵�佷笌鍑虹墖闃熷垪璋冨簭
+  @PostMapping("/isConfirmStates")
+  public Result isConfirmStates(Boolean isConfirmStates) {
+    Plchome.isConfirm = isConfirmStates;
     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
index 47dd22f..c380d66 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
@@ -9,6 +9,15 @@
     private int state;
     private String time;
     private int sequence;
+    private String position;
+
+    public String getPosition() {
+        return position;
+    }
+
+    public void setPosition(String position) {
+        this.position = position;
+    }
 
     private north_glass_buffer1 north_glass_buffer1s;
 
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 61db9ec..1889fad 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
@@ -73,7 +73,7 @@
   @Select("select * from storage_cage where position(#{cage} in ifnull(glass_id,\"\"))")
   List<StorageCage> SelectCageInfo(String cage);
 
-  @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null where glass_id=#{glassid}")
+  @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,listid=null,boxid=null where glass_id=#{glassid}")
   void DeleteByGlassID(String glassid);
 
   //鏌ヨ灏忚溅浣嶇疆
@@ -122,7 +122,7 @@
   void UpdateQueueState();
 
   //鎵嬪姩娣诲姞鎵爜浣嶇幓鐠�
-  @Select("update queue set glassid='',state=0 where id=#{id}")
+  @Select("update queue set glassid=null,orderid=null,listid=null,boxid=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,state=0 where id=#{id}")
   void DeleteQueueGlass(String id);
 
   //鏌ヨ姝よ鍗曞湪鐞嗙墖绗奸噷鐨勭幓鐠冩暟
@@ -134,7 +134,7 @@
   north_glass_buffer1 SelectBoxNo(String glassid);
 
   //鏌ヨ鍑虹墖闃熷垪淇℃伅
-  @Select("select * from out_slice where state=0 or state=1 order by sequence")
+  @Select("select * from out_slice where state=0 or state=1 or state=2 order by sequence")
   List<Out_slice> SelectProductionqueue();
 
   //鏍规嵁鐜荤拑id鏌ヨ绗煎唴鐜荤拑淇℃伅
@@ -143,8 +143,8 @@
 
 
   //鏍规嵁鐜荤拑id鍒犻櫎鍑虹墖闃熷垪鐜荤拑
-  @Select("update out_slice set state=3 where id=#{id}")
-  void DeleteProductionQueueGlass(Short id);
+  @Select("update out_slice set state=3 where barcode=#{FrameNo} and (state=0 or state=1 or state=2)")
+  void DeleteProductionQueueGlass(String id);
 
   //鏍规嵁閾濇id鏌ヨ瀵瑰簲鐜荤拑淇℃伅
   @Select("select * from north_glass_buffer1 where FrameBarcode=#{FrameBarcode}")
@@ -152,16 +152,20 @@
 
 
   //鏌ヨ鐜荤拑鏄惁宸插瓨鍦ㄤ簬鍑虹墖闃熷垪
-  @Select("select * from out_slice where glassid=#{getbarcode} and (state=0 or state=1)")
+  @Select("select * from out_slice where glassid=#{getbarcode} and (state=0 or state=1 or state=2)")
   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);
+  @Select("INSERT INTO out_slice( `glassId`, `barcode`, `glasswidth`, `glassheight`, `state`, `flip`, `sequence`, `time` ,`position`) VALUES ( #{glassid}, #{FrameNo}, #{glasslengthMm}, #{glassheightMm}, 0, #{flip}, #{sequence}, now(), #{position});")
+  void AddOutSliceS(String glassid, String flip, String FrameNo, String glasslengthMm, String glassheightMm, int sequence, String position);
 
   //鍑虹墖闃熷垪璋冨簭
   @Select("update out_slice set sequence=#{sequence} where glassid=#{glassId}")
   void UpdateOutSliceSequence(String glassId,int sequence);
 
+  //鏌ヨ鍑虹墖闃熷垪鏈�澶ч『搴�
+  @Select("select ifnull(max(sequence),0)+1 from out_slice ")
+  Short SelectMaxSquence();
+
 
 }
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 365deaa..6ebdcc0 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
@@ -10,7 +10,6 @@
 
 import org.springframework.stereotype.Component;
 
-import com.example.springboot.entity.Glass;
 import com.example.springboot.entity.Queue;
 import com.example.springboot.entity.north_glass_buffer1;
 @Component
@@ -174,7 +173,7 @@
          return glass;
     }
 
-	//鏍规嵁閾濇id鏌ヨ鏄惁缈昏浆
+	//鏍规嵁閾濇id鏌ヨl閾濇鏄惁缈昏浆
 	public String SelectFlipByFrameBarcode(String frameBarcode) throws SQLException {
 		conn = getConn();
         // north_glass_buffer1 glass=new north_glass_buffer1();
@@ -190,6 +189,21 @@
 		//  conn.close();
          return flip;
 	}
+	//鏍规嵁閾濇id鏌ヨ鏄惁閾濇鎽嗘斁
+	public String SelectPositionByFrameBarcode(String frameBarcode) throws SQLException {
+       	conn = getConn();
+        // north_glass_buffer1 glass=new north_glass_buffer1();
+		String position="";
+        String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1";
+         ps = conn.prepareStatement(sql1);
+		 ps.setString(1, frameBarcode);
+         rs= ps.executeQuery();
+         while (rs.next()) {
+			position=rs.getString("position");
+         }
+		//  conn.close();
+         return position;
+    }
 	
 	/**
 	 * 1. 鍔犺浇椹卞姩
@@ -222,6 +236,8 @@
 		}
 	}
 
+    
+
 
 
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java b/springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
new file mode 100644
index 0000000..d2a518a
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
@@ -0,0 +1,44 @@
+package com.example.springboot.service;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.mapper.HomeMapper;
+
+@Service
+public class North_Glass_Buffer1Service {
+    @Autowired
+    private HomeMapper homeMapper;
+
+    @Autowired
+    private JdbcConnections jdbcConnections;
+
+    public List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode) throws SQLException {
+        List<north_glass_buffer1> listAluminumFrame = jdbcConnections
+                .SelectGlassByGlassIdOrderIdFrameIdss(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()));
+        }
+        return listAluminumFrame;
+    }
+
+    public void AddOutSliceS(String FrameBarcode) throws SQLException{
+        List<north_glass_buffer1> north_glass_buffer1s=SelectAluminumFrameInfoById(FrameBarcode);
+        String flip = jdbcConnections.SelectFlipByFrameBarcode(FrameBarcode);
+        String position =jdbcConnections.SelectPositionByFrameBarcode(FrameBarcode);
+        int sequence=homeMapper.SelectMaxSquence();
+        for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) {
+            if(north_glass_buffer1.getstorageCage()!=null&&north_glass_buffer1.getOut_slice()==null){
+                homeMapper.AddOutSliceS(north_glass_buffer1.getbarcode(), flip, FrameBarcode, north_glass_buffer1.getglasslengthmm().toString(), north_glass_buffer1.getglassheightmm().toString(), sequence, position);
+                sequence+=1;
+            }
+        }
+    }
+
+    
+}
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
deleted file mode 100644
index 27e72af..0000000
--- a/springboot-vue3/src/main/java/com/example/springboot/service/OutSlice.java
+++ /dev/null
@@ -1,66 +0,0 @@
-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.java : out_slices) {
-    //         String key_ = Out_slice.java.getState() + "-";
-    //         if (map.get(key_) == null) {
-    //             List<Out_slice> lists = new ArrayList<Out_slice>();
-    //             lists.add(Out_slice.java);
-    //             map.put(key_, lists);
-    //         } else {
-    //             List<Out_slice> lists = (List<Out_slice>) map.get(key_);
-    //             lists.add(Out_slice.java);
-    //             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.java : out_slices) {
-    //         if (list.isEmpty()) {
-    //             list.add(Out_slice.java);
-    //         } else {
-    //             for (int i = 0; i < list.size(); i++) {
-    //                 Out_slice out_slice2 = list.get(i);
-    //                 if (Out_slice.java.getID() > out_slice2.getID()) {
-    //                     continue;
-    //                 } else {
-    //                     list.add(i, out_slice2);
-    //                 }
-    //             }
-    //         }
-    //     }
-    // }
-
-    // public static void f() {
-    //     HashMap map = new HashMap<>();
-    //     for (Out_slice Out_slice.java : listoutslice) {
-    //         String key_ = Out_slice.java.getState() + "-";
-    //         if (map.get(key_) == null) {
-    //             List<Out_slice> lists = new ArrayList<Out_slice>();
-    //             lists.add(Out_slice.java);
-    //             map.put(key_, lists);
-    //         } else {
-    //             List<Out_slice> lists = (List<Out_slice>) map.get(key_);
-    //             lists.add(Out_slice.java);
-    //             map.put(key_, lists);
-    //         }
-    //     }
-    // }
-
-}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java b/springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java
new file mode 100644
index 0000000..ed546f4
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java
@@ -0,0 +1,35 @@
+package com.example.springboot.service;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.example.springboot.mapper.HomeMapper;
+
+@Service
+public class OutSliceServive {
+
+  @Autowired
+  private HomeMapper homeMapper;
+
+  @Autowired
+  private JdbcConnections jdbcConnections;
+
+  public void AddOutSliceS(String[][] AluminumFrames) throws SQLException {
+    int sequence = homeMapper.SelectMaxSquence();
+    
+    // 娣诲姞鍒版暟鎹簱
+    for (String[] item : AluminumFrames) {
+      if (item[1] == "true") {
+        String position = jdbcConnections.SelectPositionByFrameBarcode(item[3]);
+        homeMapper.AddOutSliceS(item[0], item[2], item[3], item[4], item[5], sequence, position);
+        sequence += 1;
+      }
+    }
+  }
+
+  
+
+}

--
Gitblit v1.8.0