From eb87cabfb1b88e0c1bd7ebf091eef5369c7729ad Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期二, 19 三月 2024 11:46:16 +0800
Subject: [PATCH] 文件导入功能+页面

---
 springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java   |   12 +
 springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java  |   25 ++-
 Albania_Mes-ui/package-lock.json                                               |  158 +++++++++++++++++++
 Albania_Mes-ui/src/views/home/index.vue                                        |  209 +++++++++++++++++++++++--
 Albania_Mes-ui/package.json                                                    |    5 
 springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java    |   26 +--
 7 files changed, 386 insertions(+), 51 deletions(-)

diff --git a/Albania_Mes-ui/package-lock.json b/Albania_Mes-ui/package-lock.json
index 124ad55..82dbf30 100644
--- a/Albania_Mes-ui/package-lock.json
+++ b/Albania_Mes-ui/package-lock.json
@@ -19,7 +19,8 @@
         "moment": "^2.29.4",
         "vue": "^2.6.11",
         "vue-i18n": "^8.26.5",
-        "vue-router": "^3.3.4"
+        "vue-router": "^3.3.4",
+        "xlsx": "^0.18.5"
       },
       "devDependencies": {
         "@vue/cli-plugin-babel": "~4.5.0",
@@ -2599,6 +2600,14 @@
         "node": ">= 0.12.0"
       }
     },
+    "node_modules/adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/aggregate-error": {
       "version": "3.1.0",
       "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz",
@@ -3681,6 +3690,18 @@
       "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
       "dev": true
     },
+    "node_modules/cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "dependencies": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/chalk": {
       "version": "2.4.2",
       "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
@@ -4076,6 +4097,14 @@
       },
       "engines": {
         "node": ">= 4.0"
+      }
+    },
+    "node_modules/codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
+      "engines": {
+        "node": ">=0.8"
       }
     },
     "node_modules/collection-visit": {
@@ -4574,6 +4603,17 @@
       },
       "engines": {
         "node": ">=4"
+      }
+    },
+    "node_modules/crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+      "bin": {
+        "crc32": "bin/crc32.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
       }
     },
     "node_modules/create-ecdh": {
@@ -6639,6 +6679,14 @@
       "dev": true,
       "engines": {
         "node": ">= 0.6"
+      }
+    },
+    "node_modules/frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
+      "engines": {
+        "node": ">=0.8"
       }
     },
     "node_modules/fragment-cache": {
@@ -12023,6 +12071,17 @@
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
       "dev": true
     },
+    "node_modules/ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "dependencies": {
+        "frac": "~1.1.2"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/sshpk": {
       "version": "1.16.1",
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
@@ -14148,6 +14207,22 @@
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
       "dev": true
     },
+    "node_modules/wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
@@ -14233,6 +14308,26 @@
       "dev": true,
       "dependencies": {
         "async-limiter": "~1.0.0"
+      }
+    },
+    "node_modules/xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "dependencies": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      },
+      "bin": {
+        "xlsx": "bin/xlsx.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
       }
     },
     "node_modules/xtend": {
@@ -16544,6 +16639,11 @@
       "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=",
       "dev": true
     },
+    "adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+    },
     "aggregate-error": {
       "version": "3.1.0",
       "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz",
@@ -17474,6 +17574,15 @@
       "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
       "dev": true
     },
+    "cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      }
+    },
     "chalk": {
       "version": "2.4.2",
       "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
@@ -17792,6 +17901,11 @@
         "chalk": "^2.4.1",
         "q": "^1.1.2"
       }
+    },
+    "codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
     },
     "collection-visit": {
       "version": "1.0.0",
@@ -18210,6 +18324,11 @@
           }
         }
       }
+    },
+    "crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
     },
     "create-ecdh": {
       "version": "4.0.4",
@@ -19903,6 +20022,11 @@
       "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz",
       "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
       "dev": true
+    },
+    "frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
     },
     "fragment-cache": {
       "version": "0.2.1",
@@ -24371,6 +24495,14 @@
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
       "dev": true
     },
+    "ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "requires": {
+        "frac": "~1.1.2"
+      }
+    },
     "sshpk": {
       "version": "1.16.1",
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
@@ -26092,6 +26224,16 @@
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
       "dev": true
     },
+    "wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+    },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+    },
     "word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
@@ -26166,6 +26308,20 @@
         "async-limiter": "~1.0.0"
       }
     },
+    "xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      }
+    },
     "xtend": {
       "version": "4.0.2",
       "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",
diff --git a/Albania_Mes-ui/package.json b/Albania_Mes-ui/package.json
index e3cce57..4b43b67 100644
--- a/Albania_Mes-ui/package.json
+++ b/Albania_Mes-ui/package.json
@@ -19,7 +19,8 @@
     "moment": "^2.29.4",
     "vue": "^2.6.11",
     "vue-i18n": "^8.26.5",
-    "vue-router": "^3.3.4"
+    "vue-router": "^3.3.4",
+    "xlsx": "^0.18.5"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "~4.5.0",
@@ -49,4 +50,4 @@
     "last 2 versions",
     "not dead"
   ]
-}
\ No newline at end of file
+}
diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index 43dc37f..e7b3396 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -237,6 +237,74 @@
     height: 15px;
     position: absolute;
 }
+/*
+
+*/
+#fileinput .container {
+  width: 800px;
+  margin: 0 auto;
+}
+
+#fileinput .header {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 10px;
+}
+
+#fileinput table {
+  width: 100%;
+  border-collapse: collapse;
+  border: 1px solid;
+}
+
+#fileinput tr,
+#fileinput th,
+#fileinput td {
+  border: 1px solid #000;
+  padding: 5px;
+}
+
+#fileinput button {
+  border: none;
+  padding: 5px;
+  background-color: #00a297;
+  color: #fff;
+  border-radius: 5px;
+  cursor: pointer;
+  margin: 0 5px;
+}
+
+#fileinput tr:nth-child(2n) {
+  background-color: #dcdcdc;
+}
+
+#fileinput .hide {
+  display: none;
+}
+
+#fileinput .c1 {
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  background: rgba(0, 0, 0, .5);
+  z-index: 2;
+}
+
+#fileinput .c2 {
+  background-color: white;
+  position: fixed;
+  width: 400px;
+  height: 300px;
+  top: 50%;
+  left: 50%;
+  z-index: 3;
+  margin-top: -150px;
+  margin-left: -200px;
+}
+
+
 </style>
 <template>
     <el-container>
@@ -253,20 +321,20 @@
             </div>
             <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
                 <el-button type="primary" @click="showform(1)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
-                    :class="SoftEmergencyStopState == true ? 'hide' : ''" style="z-index: 999;">
+                    :class="SoftEmergencyStopState == true ? 'hide' : ''">
                     {{ $t('Import order') }}</el-button>
 
                 <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
-                    :class="SoftEmergencyStopState == true ? 'hide' : ''" style="z-index: 999;">
+                    :class="SoftEmergencyStopState == true ? 'hide' : ''">
                     {{ $t('Measure') }}</el-button>
 
                 <el-button type="primary" @click="showform(3)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
-                    :class="SoftEmergencyStopState == true ? 'hide' : ''" style="z-index: 999;">
+                    :class="SoftEmergencyStopState == true ? 'hide' : ''">
                     {{ $t('StorageCage') }}</el-button>
                 <el-button type="primary" @click="showform(4)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
-                    :class="SoftEmergencyStopState == true ? 'hide' : ''" style="z-index: 999;">
+                    :class="SoftEmergencyStopState == true ? 'hide' : ''">
                     {{ $t('Task queue') }}</el-button>
-                    
+
             </div>
             <div style="display: flex;align-items: center;">
                 <div class="blocks" style="position: relative;width: 100%;">
@@ -325,6 +393,60 @@
 
         </el-main>
         <el-dialog :visible.sync="Importorder" :title="$t('Import order')" top="5vh">
+            <!--鏂囦欢瀵煎叆鏁版嵁椤甸潰-->
+            <div id="fileinput" class="container">
+                <div class="header">
+                    <div class="btn">
+                        <button @click="AllAdd">淇濆瓨</button>
+                    </div>
+                    <div class="inp">
+                        <input type="file" id="uploadExcel" multiple @change="Change" />
+                    </div>
+                </div>
+                <table id="table">
+                    <thead>
+                        <tr>
+                            <th>Customer</th>
+                            <th>order</th>
+                            <th>base</th>
+                            <th>height</th>
+                            <th>thickness</th>
+                            <th>films</th>
+                            <th>quantity</th>
+                            <th>tier</th>
+                            <th>matching</th>
+                            <th>glasstype</th>
+                            <th>productname</th>
+                        </tr>
+                    </thead>
+                    <tbody style="text-align: center">
+                        <tr v-for="item in dataList" :key="item.id">
+                            <!-- <td>{{ item[0] }}</td>
+                            <td>{{ item[1] }}</td>
+                            <td>{{ item[2] }}</td>
+                            <td>{{ item[3] }}</td>
+                            <td>{{ item[4] }}</td>
+                            <td>{{ item[5] }}</td>
+                            <td>{{ item[6] }}</td>
+                            <td>{{ item[7] }}</td>
+                            <td>{{ item[8] }}</td>
+                            <td>{{ item[9] }}</td>
+                            <td>{{ item[10] }}</td> -->
+                            <td>{{ item.Customer }}</td>
+                            <td>{{ item.order }}</td>
+                            <td>{{ item.base }}</td>
+                            <td>{{ item.height }}</td>
+                            <td>{{ item.thickness }}</td>
+                            <td>{{ item.films }}</td>
+                            <td>{{ item.quantity }}</td>
+                            <td>{{ item.tier }}</td>
+                            <td>{{ item.matching}}</td>
+                            <td>{{ item.glasstype }}</td>
+                            <td>{{ item.productname }}</td>
+                        </tr>
+                    </tbody>
+                </table>
+            </div>
         </el-dialog>
 
         <el-dialog :visible.sync="Measure" :title="$t('Measure')" top="5vh"><!--娴嬮噺椤甸潰-->
@@ -332,16 +454,19 @@
             <div>
                 <!--鍔熻兘-->
                 <div>
-                        <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState" style="z-index: 999;">
-                    浜哄伐鍖归厤</el-button>
-                    
+                    <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState"
+                        style="z-index: 999;">浜哄伐鍖归厤</el-button>
+                    <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState"
+                        style="z-index: 999;">浜哄伐鍖归厤</el-button>
                 </div>
                 <!--鏄剧ず-->
-                <div style="width:100%;height: 600px;border: 1px solid black;">
-                    <!--鐜荤拑鍥�-->
-                    <div
-                        style="top:0;bottom: 0;left: 0;right: 0;margin: auto;position:absolute;width: 100px;height: 200px;background-color: aqua;line-height: 200px;text-align: center;">
-                        100*200
+                <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;margin: auto auto;">
+                    <!--鐜荤拑鍥�  #81b337-->
+                    <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin: auto;position:absolute;width:'
+                + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
+                + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
+                + (this.LastQueue.glassheight / 25 * 7) + 'px;background-color: #93d2f3;text-align: center;'">
+                        {{ this.LastQueue.glasswidth }}*{{ this.LastQueue.glassheight }}
                     </div>
 
                 </div>
@@ -410,7 +535,7 @@
                 </el-table-column>
                 <el-table-column prop="state" :label="$t('Task State')">
                     <template slot-scope='scope'>
-                        {{ scope.row.state >= 0?scope.row.state == 0 ? $t('Start') : $t('Stop'):"" }}
+                        {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Start') : $t('Stop') : "" }}
                     </template>
                 </el-table-column>
                 <el-table-column prop="method" :label="$t('Task Method')">
@@ -476,12 +601,14 @@
 } from "../../api/home";
 
 
-import LanguageMixin from '../../lang/LanguageMixin'
+import LanguageMixin from '../../lang/LanguageMixin';
+import * as XLSX from "../../../node_modules/xlsx/xlsx.mjs";
 let socket;
 export default {
     name: "Home",
     data() {
         return {
+            dataList: [],
             tableData1: [],
             Measuermode: false,
             confirm1: false,
@@ -576,7 +703,8 @@
             DeviceList: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
             GlassIdList: [],
             Scanningmethod: true,
-            CurrrentGlassId: ""
+            CurrrentGlassId: "",
+            LastQueue: {}
         };
     },
     created() {
@@ -639,6 +767,7 @@
                     this.alarm = obj.alarmmg[0];
 
                     this.tableData1 = obj.OrderTask[0];
+                    this.LastQueue = obj.LastQueue[0];
 
 
                     //鏄惁鍏佽鍑虹墖
@@ -736,7 +865,7 @@
                 UpdateQueue(this.StorageCageAddInfo[index]).then(res => {
                     if (res.data.message == 200) {
                         this.$message.success(this.$t('Operation successful'));
-                    }else{
+                    } else {
                         this.$message.error(this.$t('Operation failed'));
                     }
                 });
@@ -854,9 +983,53 @@
         },
         //浜哄伐鍖归厤
         ManualMatching() {
-            this.StorageCageAdd=true;
+            this.StorageCageAdd = true;
+        },
+        //浜哄伐鎷胯蛋
+        ManualTake() {
+
+        },
+        Change(event) {
+            // 鑾峰彇鍒版枃浠跺す
+            let fileList = event.target.files;
+            // 濡傛灉鏁版嵁涓嶄负绌�
+            if (fileList) {
+                // FileReader鏄竴绉嶅紓姝ユ枃浠惰鍙栨満鍒讹紝缁撳悎input:file鍙互寰堟柟渚跨殑璇诲彇鏈湴鏂囦欢銆�
+                let reader = new FileReader();
+                let file = fileList[0]; //鎷垮埌绗竴鏉℃暟鎹�
+                reader.readAsBinaryString(file)// 灏嗘枃浠朵互浜岃繘鍒跺舰寮忚鍏ラ〉闈�
+                let _this = this //鎶奷ata閲岀殑鏁版嵁璧嬪�肩粰鏂扮殑鍙橀噺
+                // wb:wordbook 宸ヤ綔琛�  
+                reader.addEventListener("load", function (e) {
+                    
+                    var data = e.target.result; //璇诲彇鎴愬姛鍚巖esult涓殑鏁版嵁
+                    var wb = XLSX.read(data, { type: "binary" });  
+                    let sheetName = wb.SheetNames[0]; //鏄幏鍙朣heets涓涓�涓猄heet鐨勫悕瀛�
+                    let sheets = wb.Sheets[sheetName];
+                    let dataList2 = JSON.stringify(XLSX.utils.sheet_to_json(sheets));
+                    let dataList3 = (JSON.parse(dataList2));
+                    _this.dataList = dataList3;//璧嬪��
+                    //console.log(dataList2);  
+                    console.log(dataList3);
+
+                })
+            }
+        },
+        Add() {
+            
+        },
+        Hide() {
+            
+        },
+        AllAdd() {
+            //娣诲姞鏁版嵁杩涘悗鍙�
+            console.log(this.dataList);
+        },
+        del() {
+            
         }
 
+
     }
 }
 </script>
diff --git a/springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java b/springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java
index f596679..f51e7d3 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java
@@ -1,7 +1,5 @@
 package com.example.springboot;
 
-import com.example.springboot.common.MessageSender;
-import org.springframework.amqp.rabbit.annotation.EnableRabbit;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.ConfigurableApplicationContext;
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 684d234..b5693e4 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
@@ -120,20 +120,11 @@
                 //double width=plcmes.getPlcParameter("Height").getValue();//瀹�
                 //double height=plcmes.getPlcParameter("width").getValue();//楂�
                 //鑾峰彇娴嬮噺鐨勯暱锛屽
-                String url="C:\\Users\\SNG-ZDH-012\\Desktop\\闃垮皵宸村凹浜氭暟鎹姹�.xlsx";
-                //List typecount= HomeService.ReadExecl2(s);
-                // List xiaopian=HomeService.ReadExecl2(s);
-                // //xiaopian   NG1{A:10,B20}   NG2{A:5,B5}
-                // for(Object C:xiaopian){
-                //     //鐪嬪眰鏁�
-                // }
-
-                // for(int i=0;i<result.size();i++){
-                //     System.out.println(result.get(i));
-                // }
-
-
-                //List result= HomeService.ReadExecl(url);
+                
+                
+                //String url="C:\\Users\\SNG-ZDH-012\\Desktop\\闃垮皵宸村凹浜氭暟鎹姹�.xlsx";E:\
+                //String url="E:\\闃垮皵宸村凹浜氭暟鎹姹�.xlsx";
+                // List result= HomeService.ReadExecl(url);
                 // for(int i=0;i<result.size();i++){
                 //     System.out.println(result.get(i));
                 // }
@@ -146,12 +137,15 @@
                 
                 //鍖归厤
                 if ("1".equals(PlcRequest)) {
-                    boolean Result=HomeService.Normal(width, height, "1");                   
+                    GlassInfo MesureGlassinfo=HomeService.Normal(width, height, "1");
+                                       
+                    
                 }
+                Queue LastQueue= QueueMapper.selectLastQueue();
                 // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                 // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
 
-                
+                jsonObject.append("LastQueue", LastQueue);
                 //鏌ヨ鐞嗙墖绗间俊鎭�
                 List<StorageCage> StorageCageInfo = storageCageService.SelectStorageCageInfo();
                 jsonObject.append("StorageCageInfo", StorageCageInfo);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java
index 27c6fb1..e908ad8 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java
@@ -17,6 +17,12 @@
     @Select("SELECT * FROM queue where glassid=#{glassid}")
     List<Queue> selectQueues(@Param("glassid") int glassid);
 
+    @Select("SELECT * FROM queue order by time asc limit 1")
+    Queue selectLastQueue();
+
+    @Select("SELECT * FROM queue where state<=0")
+    List<Queue> selectErrorQueues();
+
     // @Select("SELECT COUNT(*) FROM role_permission WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
     // boolean checkExists(@Param("roleId") int roleId, @Param("permissionId") int permissionId);
 
@@ -27,9 +33,9 @@
     @Insert("insert into queue (glassid,flowcard,listid,boxid,glasswidth,glassheight,glasswidthmm,glassheightmm,glasstype,state,time) "+
                         "select glassid,flowcard,null,null,width,height,#{glasswidthmm},#{glassheightmm},glasstype,#{state},NOW() from glassinfo where glassid=#{glassid}")
     void insert(@Param("glassid") String glassid, @Param("glasswidthmm") double glasswidthmm, @Param("glassheightmm") double glassheightmm,@Param("state") int state);
-
+    
     @Insert("insert into queue (glassid,flowcard,listid,boxid,glasswidth,glassheight,glasswidthmm,glassheightmm,glasstype,state,time) "+
-                        "values (null,null,null,null,null,null,#{glasswidthmm},#{glassheightmm},null,null,NOW())")
-    void insertMatchFailure(@Param("glasswidthmm") double glasswidthmm, @Param("glassheightmm") double glassheightmm);
+                        "values (null,null,null,null,null,null,#{glasswidthmm},#{glassheightmm},null,#{state},NOW())")
+    void insertMatchFailure(@Param("glasswidthmm") double glasswidthmm, @Param("glassheightmm") double glassheightmm,@Param("state") int state);
 
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java b/springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
index 4842b26..b70f990 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
@@ -21,6 +21,7 @@
 
 import com.example.springboot.entity.GlassInfo;
 import com.example.springboot.entity.MeasureSetting;
+import com.example.springboot.entity.Queue;
 import com.example.springboot.mapper.GlassInfoMapper;
 import com.example.springboot.mapper.MeasureSettingMapper;
 import com.example.springboot.mapper.QueueMapper;
@@ -62,7 +63,12 @@
     }
 
     // 鍖归厤閫昏緫
-    public boolean Normal(double width, double height, String line) {
+    public GlassInfo Normal(double width, double height, String line) {
+        List<Queue> ErrowQueues= QueueMapper.selectErrorQueues();
+        if (ErrowQueues.size()>0) {
+            //System.out.println("鏈夊尮閰嶅け璐ユ暟鎹湭鍘婚櫎");
+            return new GlassInfo();
+        }
         List<GlassInfo> Result = NormalGlassInfo(width, height, "1");
         if (Result.size() == 1) {
             // 鍖归厤鎴愬姛 灏变竴绉嶇被鍨� 娣诲姞鏁版嵁
@@ -70,22 +76,19 @@
             QueueMapper.insert(GlassInfo.getGlassid(), width, height, 1);
             GlassInfoMapper.updatemeasurenumber(GlassInfo.getId());
             System.out.println("鍖归厤鎴愬姛");
-            
-            // S7control.getinstance().WriteWord(plcmes.getPlcParameter("GaToMES").getAddress(),
-            // (short) 1);
             System.out.println(GlassInfo.getGlassid());
-            return true;
+            return GlassInfo;
         } else if (Result.size() > 1) {
             // 鍖归厤澶辫触 鍖归厤鍒板鏉$鍚堢殑鏁版嵁 娣诲姞鏁版嵁
-            QueueMapper.insert(null, width, height, 2);
+            QueueMapper.insertMatchFailure(width, height, 0);
             System.out.println("鍖归厤澶辫触");
-            return false;
+            
         } else {
             // 鍖归厤澶辫触 鏈壘鍒扮鍚堢殑鏁版嵁 娣诲姞鏁版嵁
-            QueueMapper.insert(null, width, height, 3);
+            QueueMapper.insertMatchFailure(width, height, -1);
             System.out.println("鏈壘鍒扮鍚堢殑鏁版嵁");
-            return false;
         }
+        return new GlassInfo();
     }
 
     // Execl琛ㄦ牸 浼犲叆鏂囦欢璺緞
@@ -93,6 +96,10 @@
         try {
             // 鍒涘缓鏂囦欢瀵硅薄
             File file = new File(filename);
+            if (!file.exists()) {
+                System.out.println("鏂囦欢涓嶅瓨鍦紒 "+filename);
+                return new ArrayList<>();
+            }
             // 鍒涘缓鏂囦欢杈撳叆娴佸璞�
             FileInputStream inputStream = new FileInputStream(file);
             // 鍒涘缓宸ヤ綔绨垮璞�

--
Gitblit v1.8.0