From ad7f461a110cd30ae219bcaa977bbeb0c8409599 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期三, 29 五月 2024 08:13:26 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/Albania_Mes

---
 Albania_Mes-ui/src/views/Electrical/Servomanual.vue                                  |    4 
 springboot-vue3/src/main/resources/config.properties                                 |    4 
 springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java        |    1 
 springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java    |    2 
 Albania_Mes-ui/src/lang/locales/en-US.json                                           |    4 
 Albania_Mes-ui/src/views/Electrical/Action.vue                                       |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java  |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java       |   10 
 springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java          |   29 -
 springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java           |    2 
 springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java           |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java          |  169 ++++---
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java          |    4 
 Albania_Mes-ui/src/api/home.js                                                       |    7 
 Albania_Mes-ui/src/configuration/Sign.json                                           |  210 ++++++---
 Albania_Mes-ui/src/views/Electrical/InteractionState.vue                             |    2 
 springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java            |    2 
 springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java    |   17 
 Albania_Mes-ui/src/views/Electrical/AutomaticParameterSetting.vue                    |    2 
 springboot-vue3/effective-pom.xml                                                    |    2 
 Albania_Mes-ui/src/views/Electrical/Sign.vue                                         |   24 
 springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java         |    6 
 springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java               |   10 
 springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java       |   15 
 Albania_Mes-ui/src/views/home/index.vue                                              |  135 ++++-
 Albania_Mes-ui/src/views/Electrical/alarm.vue                                        |    1 
 springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java         |    6 
 springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java            |    2 
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java  |    6 
 springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java     |    4 
 springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java |   90 ++-
 Albania_Mes-ui/src/lang/locales/zh-CN.json                                           |    3 
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java     |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java       |    3 
 springboot-vue3/src/main/resources/application.properties                            |    2 
 PlcAlbania.json                                                                      |  414 +++++++++++++++++++
 36 files changed, 909 insertions(+), 295 deletions(-)

diff --git a/Albania_Mes-ui/src/api/home.js b/Albania_Mes-ui/src/api/home.js
index 935e79a..3c570fd 100644
--- a/Albania_Mes-ui/src/api/home.js
+++ b/Albania_Mes-ui/src/api/home.js
@@ -357,6 +357,13 @@
         data:""
     })
 }
+export function StartChange(flowcard) {
+    return request({
+        url: '/home/StartChange?flowcard='+flowcard,
+        method: 'post',
+        data:""
+    })
+}
 
 
 
diff --git a/Albania_Mes-ui/src/configuration/Sign.json b/Albania_Mes-ui/src/configuration/Sign.json
index 88bac50..a770d0f 100644
--- a/Albania_Mes-ui/src/configuration/Sign.json
+++ b/Albania_Mes-ui/src/configuration/Sign.json
@@ -6,7 +6,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I10.0"
+      "unit":"I10.0",
+      "name1":"LOW-E鑶滄娴�"
     },
     {
       "name": "A01Sr.dec",
@@ -14,7 +15,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I10.1"
+      "unit":"I10.1",
+      "name1":"A01鍑忛��"
     },
     {
       "name": "A01Sr.Pos",
@@ -22,7 +24,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I10.2"
+      "unit":"I10.2",
+      "name1":"A01鍒颁綅"
       
     },
     {
@@ -31,7 +34,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I10.3"
+      "unit":"I10.3",
+      "name1":"A02-Y杞村師鐐�"
     },
     {
       "name": "A02Sr.YH1",
@@ -39,7 +43,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I10.4"
+      "unit":"I10.4",
+      "name1":"A02-Y杞撮珮搴︽劅搴�1"
     },
     {
       "name": "A02Sr.YH2",
@@ -47,7 +52,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I10.5"
+      "unit":"I10.5",
+      "name1":"A02-Y杞撮珮搴︽劅搴�2"
     },
     {
       "name": "A02Sr.YH3",
@@ -55,7 +61,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I10.6"
+      "unit":"I10.6",
+      "name1":"A02-Y杞撮珮搴︽劅搴�3"
     },
     {
       "name": "A02Sr.YH4",
@@ -63,7 +70,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I10.7"
+      "unit":"I10.7",
+      "name1":"A02-Y杞撮珮搴︽劅搴�4"
     },
     {
       "name": "A02Sr.LimitTop",
@@ -71,7 +79,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I11.0"
+      "unit":"I11.0",
+      "name1":"A02-Y杞翠笂鏋侀檺"
 
     },
     {
@@ -80,7 +89,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I11.1"
+      "unit":"I11.1",
+      "name1":"A02-Y杞翠笅鏋侀檺"
     },
     {
       "name": "A02Sr.Check",
@@ -88,7 +98,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I11.2"
+      "unit":"I11.2",
+      "name1":"A02-Y杞村杈�"
     },
     {
       "name": "A02Sr.YDec",
@@ -96,7 +107,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I11.3"
+      "unit":"I11.3",
+      "name1":"A02-Y杞村噺閫�"
     },
     {
       "name": "A02Sr.Xin",
@@ -104,7 +116,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I11.4"
+      "unit":"I11.4",
+      "name1":"A02-X杞翠笂鐗�"
     },
     {
       "name": "A02Sr.XCheck",
@@ -112,7 +125,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I11.5"
+      "unit":"I11.5",
+      "name1":"A02-X杞村杈�"
     },
     {
       "name": "A02Sr.XDec",
@@ -120,7 +134,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I11.6"
+      "unit":"I11.6",
+      "name1":"A02-X杞村噺閫�"
     },
     {
       "name": "A02Sr.XPos",
@@ -128,7 +143,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I11.7"
+      "unit":"I11.7",
+      "name1":"A02-X杞村埌浣�"
     },
     {
       "name": "C01Sr.Zero",
@@ -136,7 +152,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I124.0"
+      "unit":"I124.0",
+      "name1":"C01鍘熺偣"
    
     },
     {
@@ -145,7 +162,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I124.1"
+      "unit":"I124.1",
+      "name1":"C01.YV1鍘熺偣浣�1"
     },
     {
       "name": "C01YV1.Work1",
@@ -153,7 +171,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I124.2"
+      "unit":"I124.2",
+      "name1":"C01.YV1鍔ㄤ綔浣�1"
     },
     {
       "name": "C01.YV1.Bas2",
@@ -161,7 +180,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I124.3"
+      "unit":"I124.3",
+      "name1":"C01.YV1鍘熺偣浣�2"
     },
     {
       "name": "C01.YV1.Work2",
@@ -169,7 +189,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I124.4"
+      "unit":"I124.4",
+      "name1":"C01.YV1鍔ㄤ綔浣�2"
     },
     {
       "name": "C01.YV2.Bas1",
@@ -177,7 +198,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I124.5"
+      "unit":"I124.5",
+      "name1":"C01.YV2鍘熺偣浣�1"
     },
     {
       "name": "C01.YV2.Bas2",
@@ -185,7 +207,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I124.6"
+      "unit":"I124.6",
+      "name1":"C01.YV2鍘熺偣浣�2"
     },
     {
       "name": "C01.YV2.Bas3",
@@ -193,7 +216,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I124.7"
+      "unit":"I124.7",
+      "name1":"C01.YV2鍘熺偣浣�3"
     },
     {
       "name": "C01.YV2.Bas4",
@@ -201,7 +225,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I125.0"
+      "unit":"I125.0",
+      "name1":"C01.YV2鍘熺偣浣�4"
     },
     {
       "name": "C01.YV2.Work1",
@@ -209,7 +234,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I125.1"
+      "unit":"I125.1",
+      "name1":"C01.YV2鍔ㄤ綔浣�1"
     },
     {
       "name": "C01.YV2.Work2",
@@ -217,7 +243,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I125.2"
+      "unit":"I125.2",
+      "name1":"C01.YV2鍔ㄤ綔浣�2"
     },
     {
       "name": "C01.YV2.Work3",
@@ -225,7 +252,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I125.3"
+      "unit":"I125.3",
+      "name1":"C01.YV2鍔ㄤ綔浣�3"
     },
     {
       "name": "C01.YV2.Work4",
@@ -233,7 +261,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I125.4"
+      "unit":"I125.4",
+      "name1":"C01.YV2鍔ㄤ綔浣�4"
     },
     {
       "name": "C01.YV.Blow1",
@@ -241,7 +270,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I125.5"
+      "unit":"I125.5",
+      "name1":"C01鍚规皵1"
     },
     {
       "name": "C01.YV.Blow2",
@@ -249,7 +279,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I125.6"
+      "unit":"I125.6",
+      "name1":"C01鍚规皵2"
     },
     {
       "name": "C01.YV.Blow3",
@@ -257,7 +288,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I125.7"
+      "unit":"I125.7",
+      "name1":"C01鍚规皵3"
     },
     {
       "name": "C01.YV.Blow4",
@@ -265,7 +297,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I126.0"
+      "unit":"I126.0",
+      "name1":"C01鍚规皵4"
     },
     {
       "name": "C01.SR.Limit1",
@@ -273,7 +306,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I126.1"
+      "unit":"I126.1",
+      "name1":"C01瀵瑰皠淇濇姢"
     },
     {
       "name": "C02.Sr.Zero",
@@ -281,7 +315,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I126.2"
+      "unit":"I126.2",
+      "name1":"C02鍘熺偣"
     },
     {
       "name": "C02.YV1.Bas1",
@@ -289,7 +324,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I126.3"
+      "unit":"I126.3",
+      "name1":"C02.YV1鍘熺偣浣�1"
     },
     {
       "name": "C02.YV1.Work1",
@@ -297,7 +333,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I126.4"
+      "unit":"I126.4",
+      "name1":"C02.YV1鍔ㄤ綔浣�1"
     },
     {
       "name": "C02.YV1.Bas2",
@@ -305,7 +342,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I126.5"
+      "unit":"I126.5",
+      "name1":"C02.YV1鍘熺偣浣�2"
     },
     {
       "name": "C02.YV1.Work2",
@@ -313,7 +351,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I126.6"
+      "unit":"I126.6",
+      "name1":"C02.YV1鍔ㄤ綔浣�2"
     },
     {
       "name": "C02.Sr.limit1",
@@ -321,7 +360,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I126.7"
+      "unit":"I126.7",
+      "name1":"C02瀵瑰皠淇濇姢"
     },
     {
       "name": "C02.YV2.Bas1",
@@ -329,7 +369,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I127.0"
+      "unit":"I127.0",
+      "name1":"C02.YV2鍘熺偣浣�1"
     },
     {
       "name": "C02.YV2.Bas2",
@@ -337,7 +378,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I127.1"
+      "unit":"I127.1",
+      "name1":"C02.YV2鍘熺偣浣�2"
     },
     {
       "name": "C02.YV2.Bas3",
@@ -345,7 +387,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I127.2"
+      "unit":"I127.2",
+      "name1":"C02.YV2鍘熺偣浣�3"
     },
     {
       "name": "C02.YV2.Bas4",
@@ -353,7 +396,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I127.3"
+      "unit":"I127.3",
+      "name1":"C02.YV2鍘熺偣浣�4"
     },
     {
       "name": "C02.YV2.Work1",
@@ -361,7 +405,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I127.4"
+      "unit":"I127.4",
+      "name1":"C02.YV2鍔ㄤ綔浣�1"
     },
     {
       "name": "C02.YV2.Work2",
@@ -369,7 +414,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I127.5"
+      "unit":"I127.5",
+      "name1":"C02.YV2鍔ㄤ綔浣�2"
     },
     {
       "name": "C02.YV2.Work3",
@@ -377,7 +423,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I127.6"
+      "unit":"I127.6",
+      "name1":"C02.YV2鍔ㄤ綔浣�3"
     },
     {
       "name": "C02.YV2.Work4",
@@ -385,7 +432,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I127.7"
+      "unit":"I127.7",
+      "name1":"C02.YV2鍔ㄤ綔浣�4"
     },
     {
       "name": "C02.YV.Blow1",
@@ -393,7 +441,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I128.0"
+      "unit":"I128.0",
+      "name1":"C02鍚规皵1"
     },
     {
       "name": "C02.YV.Blow2",
@@ -401,7 +450,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I128.1"
+      "unit":"I128.1",
+      "name1":"C02鍚规皵2"
     },
     {
       "name": "C02.YV.Blow3",
@@ -409,7 +459,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I128.2"
+      "unit":"I128.2",
+      "name1":"C02鍚规皵3"
     },
     {
       "name": "C02.YV.Blow4",
@@ -417,7 +468,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I128.3"
+      "unit":"I128.3",
+      "name1":"C02鍚规皵4"
     },
     {
       "name": "bStart",
@@ -425,7 +477,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I128.4"
+      "unit":"I128.4",
+      "name1":"鍚姩"
     },
     {
       "name": "bStop",
@@ -433,7 +486,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I128.5"
+      "unit":"I128.5",
+      "name1":"鍋滄"
     },
     {
       "name": "bEstop",
@@ -441,7 +495,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I128.6"
+      "unit":"I128.6",
+      "name1":"鎬ュ仠"
     },
     {
       "name": "bReset",
@@ -449,7 +504,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I128.7"
+      "unit":"I128.7",
+      "name1":"澶嶄綅"
     },
     {
       "name": "bAuto/Manual",
@@ -457,7 +513,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I129.0"
+      "unit":"I129.0",
+      "name1":"妯″紡閫夋嫨"
     },
     {
       "name": "bPause",
@@ -465,7 +522,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I129.1"
+      "unit":"I129.1",
+      "name1":"鏆傚仠"
     },
     {
       "name": "C01.Sr.Limit2",
@@ -473,7 +531,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I129.2"
+      "unit":"I129.2",
+      "name1":"C01瀵瑰皠淇濇姢2"
     },
     {
       "name": "C02.Sr.Limit2",
@@ -481,7 +540,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I129.3"
+      "unit":"I129.3",
+      "name1":"C02瀵瑰皠淇濇姢2"
     },
     {
       "name": "A01.FootControl",
@@ -489,7 +549,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I129.4"
+      "unit":"I129.4",
+      "name1":"鑴氳笍寮�鍏�"
     },
     {
       "name": "B01.Sr.DecLeft",
@@ -497,7 +558,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I129.5"
+      "unit":"I129.5",
+      "name1":"B01宸﹀噺閫�"
     },
     {
       "name": "B01.Sr.PosLeft",
@@ -505,7 +567,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I129.6"
+      "unit":"I129.6",
+      "name1":"B01宸﹀埌浣�"
     },
     {
       "name": "B01.Sr.SafetyLeft",
@@ -513,7 +576,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I129.7"
+      "unit":"I129.7",
+      "name1":"B01宸﹀畨鍏ㄦ娴�"
     }
     ,
     {
@@ -522,7 +586,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I130.0"
+      "unit":"I130.0",
+      "name1":"B01鍙冲噺閫�"
     }
     ,
     {
@@ -531,7 +596,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I130.1"
+      "unit":"I130.1",
+      "name1":"B01鍙冲埌浣�"
     }
     ,
     {
@@ -540,7 +606,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I130.2"
+      "unit":"I130.2",
+      "name1":"B01鍙冲畨鍏ㄦ娴�"
     }
     ,
     {
@@ -549,7 +616,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I130.3"
+      "unit":"I130.3",
+      "name1":"B01澶ц溅缈昏浆鍘熺偣"
     }
     ,
     {
@@ -558,7 +626,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I130.4"
+      "unit":"I130.4",
+      "name1":"B01澶ц溅缈昏浆涓婃瀬闄�"
     }
     ,
     {
@@ -567,7 +636,8 @@
       "state": "1",
       "type": "1",
       "page": "1",
-      "unit":"I130.5"
+      "unit":"I130.5",
+      "name1":"B01澶ц溅缈昏浆涓嬫瀬闄�"
     }
     
     
diff --git a/Albania_Mes-ui/src/lang/locales/en-US.json b/Albania_Mes-ui/src/lang/locales/en-US.json
index 8ca0508..f6f959f 100644
--- a/Albania_Mes-ui/src/lang/locales/en-US.json
+++ b/Albania_Mes-ui/src/lang/locales/en-US.json
@@ -40,6 +40,10 @@
   "Height":"Height",
   "Thickness":"Thickness",
   "Clear":"Clear",
+  "MeasureNumber":"MeasureNumber",
+  "results":"results",
+  "start work":"start work",
+  
 
 
   "ip":"localhost",
diff --git a/Albania_Mes-ui/src/lang/locales/zh-CN.json b/Albania_Mes-ui/src/lang/locales/zh-CN.json
index 1e709c4..12efa83 100644
--- a/Albania_Mes-ui/src/lang/locales/zh-CN.json
+++ b/Albania_Mes-ui/src/lang/locales/zh-CN.json
@@ -39,6 +39,9 @@
   "Height":"楂�",
   "Thickness":"鍘氬害",
   "Clear":"娓呴櫎",
+  "MeasureNumber":"娴嬮噺鏁伴噺",
+  "results":"缁撴灉",
+  "start work":"寮�濮嬪伐浣�",
 
   "ip":"localhost",
   "systemTitle": "鐧诲綍绯荤粺",
diff --git a/Albania_Mes-ui/src/views/Electrical/Action.vue b/Albania_Mes-ui/src/views/Electrical/Action.vue
index 35546ef..0caa12a 100644
--- a/Albania_Mes-ui/src/views/Electrical/Action.vue
+++ b/Albania_Mes-ui/src/views/Electrical/Action.vue
@@ -12,7 +12,7 @@
       }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
-       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+       <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
       }}</router-link>
     </el-breadcrumb>
     
diff --git a/Albania_Mes-ui/src/views/Electrical/AutomaticParameterSetting.vue b/Albania_Mes-ui/src/views/Electrical/AutomaticParameterSetting.vue
index ca7eb8f..2b8e72b 100644
--- a/Albania_Mes-ui/src/views/Electrical/AutomaticParameterSetting.vue
+++ b/Albania_Mes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -11,7 +11,7 @@
       }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
-      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
+      <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{
         $t('Parameter')
       }}</router-link>
     </el-breadcrumb>
diff --git a/Albania_Mes-ui/src/views/Electrical/InteractionState.vue b/Albania_Mes-ui/src/views/Electrical/InteractionState.vue
index a773eb9..a58a2f7 100644
--- a/Albania_Mes-ui/src/views/Electrical/InteractionState.vue
+++ b/Albania_Mes-ui/src/views/Electrical/InteractionState.vue
@@ -32,7 +32,7 @@
         >{{ $t("Sign") }}</router-link
       >
       <router-link
-        to="/Electrical/Servomanual"
+        to="/Electrical/AlbaniaServo"
         tag="el-button"
         type="text"
         active-class="blue-button"
diff --git a/Albania_Mes-ui/src/views/Electrical/Servomanual.vue b/Albania_Mes-ui/src/views/Electrical/Servomanual.vue
index 45eab45..26576f8 100644
--- a/Albania_Mes-ui/src/views/Electrical/Servomanual.vue
+++ b/Albania_Mes-ui/src/views/Electrical/Servomanual.vue
@@ -23,7 +23,7 @@
       <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualJog')
       }}</router-link> -->
-      
+<!--       
        <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition')
       }}</router-link>
@@ -39,7 +39,7 @@
   
       <router-link   v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
         $t('Speed parameter settings')
-      }}</router-link>
+      }}</router-link> -->
 
 <router-link  v-if="hasPermission"
         to="/Electrical/InteractionState"
diff --git a/Albania_Mes-ui/src/views/Electrical/Sign.vue b/Albania_Mes-ui/src/views/Electrical/Sign.vue
index 24f4640..fe1c1ac 100644
--- a/Albania_Mes-ui/src/views/Electrical/Sign.vue
+++ b/Albania_Mes-ui/src/views/Electrical/Sign.vue
@@ -25,7 +25,7 @@
                 item.unit
               }}</span> -->
         <span  style="width: 100%;" class="in_mc">{{
-                item.name
+                language === 'zh-CN'?item.name1:item.name
               }}</span>
       </div>
 
@@ -50,8 +50,7 @@
         params: [],
         xyData: [],
       },
-
-
+      language :this.$i18n.locale,
       messagepack: {
         data: { taskname: "" }
       },
@@ -63,13 +62,14 @@
     }
   },
   created () {
-    
     //this.showdata();
   },
   activated(){
     this.init();
     this.record.xyData = this.jsonData.sign;
     const language = this.$i18n.locale;
+          
+    
     if (language === 'zh-CN') {
             this.replaceChineseWithEnglish();
           } else {
@@ -78,8 +78,6 @@
  },
   methods: {
     showdata () {
-      console.log(1111);
-      console.log(this.jsonData.sign[0].name);
       // console.log(this.record.xyData);
 
     },
@@ -128,7 +126,6 @@
           this.record.params[0] = obj.sig[0];
 
           this.record.xyData = this.jsonData.sign;
-          console.log(this.jsonData.sign)
           for (let a = 0; a < this.record.xyData.length; a++) {
             this.record.xyData[a].value = this.record.params[0][a];
 
@@ -141,7 +138,8 @@
           );
 
 
-          const language = this.$i18n.locale;
+          const language = this.$i18n.locale;language
+          console.log(language);
           if (language === 'zh-CN') {
             this.replaceChineseWithEnglish();
           } else {
@@ -164,12 +162,12 @@
     //璇█杞崲
     replaceChineseWithEnglish () {
 
-      const translation = this.$t('Signlang');
+      // const translation = this.$t('Signlang');
 
-      if (translation != null) {
-        this.record.xyData = this.record.xyData.map(item => { return { name: translation[item.name] || item.name, value: item.value,unit:item.unit }; });
-        //console.log(translation);
-      }
+      // if (translation != null) {
+      //   this.record.xyData = this.record.xyData.map(item => { return { name: translation[item.name] || item.name, value: item.value,unit:item.unit }; });
+      //   //console.log(translation);
+      // }
 
     }
   }
diff --git a/Albania_Mes-ui/src/views/Electrical/alarm.vue b/Albania_Mes-ui/src/views/Electrical/alarm.vue
index e7ace7a..512b893 100644
--- a/Albania_Mes-ui/src/views/Electrical/alarm.vue
+++ b/Albania_Mes-ui/src/views/Electrical/alarm.vue
@@ -154,6 +154,7 @@
         this.roles = res.data.list;
         //table涓殑鍐呭杩涜璇█杞崲
         const language = this.$i18n.locale;
+        
         if (language === 'zh-CN') {
           this.replaceChineseWithEnglish();
         } else {
diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index 17aa369..79776b2 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -306,6 +306,9 @@
 .cells {
     height: 100%;
 }
+.custom-row-class{
+    background-color: rgb(150, 238, 234) !important;
+}
 </style>
 <template>
     <el-container>
@@ -346,14 +349,14 @@
             </div>
             <div style="display: flex;align-items: center;overflow: hidden;">
                 <div class="blocks" style="position: relative;width: 100%;">
-                    <div class="blocks-img" :style="'z-index:999;left:150px;top:'+carposition+'px;'">
+                    <div class="blocks-img" :style="'z-index:999;left:150px;top:' + carposition + 'px;'">
 
                     </div>
                     <div
                         :style="'position: absolute;z-index:99;left:271px;top:987px;width:210px;height:38px;background-color:' + ShowDeviceList(0) + ';'">
                     </div>
                     <div
-                        :style="'position: absolute;z-index:1000;left:553px;top:'+(400+carposition)+'px;width:110px;height:88px;background-color:' + ShowDeviceList(0) + ';'">
+                        :style="'position: absolute;z-index:1000;left:553px;top:' + (400 + carposition) + 'px;width:110px;height:88px;background-color:' + ShowDeviceList(0) + ';'">
                     </div>
                     <div
                         :style="'position: absolute;z-index:99;left:800px;top:450px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';'">
@@ -477,41 +480,72 @@
             <div style="height: 780px;">
                 <!--鍔熻兘-->
                 <div>
-                    <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState"
+                    <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state <= 0)"
                         style="z-index: 999;">{{ $t('Manual matching') }}</el-button>
-                    <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState"
-                        style="z-index: 999;">{{ $t('Manual removal') }}</el-button>
-                    <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState"
-                        style="z-index: 999;">{{ $t('Remeasure') }}</el-button>
+                    <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state <= 0)"
+                        style="z-index: 999;">{{
+                $t('Manual removal') }}</el-button>
+                    <el-button type="primary" @click="AnewMeasure()" :disabled="(this.LastQueue.state <= 0)"
+                        style="z-index: 999;">{{
+                $t('Remeasure') }}</el-button>
                 </div>
                 <br>
                 <!--鏄剧ず-->
                 <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;float: left;">
                     <!--鐜荤拑鍥�  #81b337-->
-                    <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:'+((720-(this.LastQueue.glassheight / 25 * 7))/2)+'px auto;width:'
-                        + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
-                        + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
-                        + (this.LastQueue.glassheight / 25 * 7) + 'px; background-color: '
-                        + (this.LastQueue.state>0?'#4CCCE4':(this.LastQueue.state==0?'#E4CA4C':'#E4CA4C'))+';text-align: center;'">
-                        {{ (this.LastQueue.glasswidth+this.LastQueue.glassheight)!=0?(this.LastQueue.glasswidth+"*"+this.LastQueue.glassheight):"" }} 
+                    <div
+                        :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:' + ((720 - (this.LastQueue.glassheight / 25 * 7)) / 2) + 'px auto;width:'
+                         + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
+                         + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
+                         + (this.LastQueue.glassheight / 25 * 7/3) + 'px; background-color: '
+                         + (this.LastQueue.state > 0 ? '#4CCCE4' : (this.LastQueue.state == 0 ? '#E4CA4C' : '#E4CA4C')) + ';text-align: center;font-size:50px'">
+                         <div>
+                            {{ $t('Measure')}}
+                        </div>
+                        <div>
+                            {{ $t('Width')+"*"+$t('Height') }}:{{(this.LastQueue.glasswidth + this.LastQueue.glassheight) != 0 ? (this.LastQueue.glasswidth + "*"+this.LastQueue.glassheight)+"" : ""}}
+                        </div>
+                       
+                        <div>
+                            {{ $t('results') }}:{{this.LastState[this.LastQueue.state]}}
+                        </div>
+                        
                     </div>
 
                 </div>
                 <!--鏄剧ず-->
                 <div style="width:20px;height: 720px;float: left;"></div>
-                <div style="width:500px;height: 620px;border: 2px solid #d1d1d1;float: left;padding: 50px 50px;">
-                    <!--鐜荤拑鍥�  #81b337-->
-                    <span class="measuretitle">{{ $t('Width') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> <span class="measureUnit">mm</span>
+                <div style="width:600px;height: 720px;border: 2px solid #d1d1d1;float: left;">
+                    <!--鐜荤拑鍥�  #81b337  padding: 50px 50px;-->
+                    <!-- <span class="measuretitle">{{ $t('Width') }}锛�</span> <span class="measureValue">{{
+                this.LastQueue.glasswidth
+            }}</span> <span class="measureUnit">mm</span>
                     <br>
-                    <span class="measuretitle">{{ $t('Height') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
+                    <span class="measuretitle">{{ $t('Height') }}锛�</span> <span class="measureValue">{{
+                this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
                     <br>
-                    <span class="measuretitle">{{ $t('Measure Width') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
-                    <br>    
-                    <span class="measuretitle">{{ $t('Measure Height') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
+
+                    <span class="measuretitle">{{ $t('Measure Width') }}锛�</span> <span class="measureValue">{{
+                this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
                     <br>
-                    <span class="measuretitle">{{ $t('Matching results') }}锛�</span> <span class="measureValue">{{ this.LastQueue.state>0?$t('Matching successful'):(this.LastQueue.state==0?$t('Multiple data matching'):$t('Matching failed')) }}</span>
+                    <span class="measuretitle">{{ $t('Measure Height') }}锛�</span> <span class="measureValue">{{
+                this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
                     <br>
+                    <span class="measuretitle">{{ $t('Matching results') }}锛�</span> <span class="measureValue">{{
+                this.LastQueue.state > 0 ? $t('Matching successful') :
+                    (this.LastQueue.state == 0 ? $t('Multiple data matching') : $t('Matching failed')) }}</span>
+                    <br> -->
+                    <el-table :data="this.tasklist3" :row-class-name="rowClassName" style="width: 100%;padding:0;">
+                        <el-table-column prop="flowcard" :label="$t('flowcard')"></el-table-column>
+                        <el-table-column prop="films" :label="$t('Films')"></el-table-column>
+                        <el-table-column prop="width" :label="$t('Width')"></el-table-column>
+                        <el-table-column prop="height" :label="$t('Height')"></el-table-column>
+                        <el-table-column prop="thickness" :label="$t('Thickness')"></el-table-column>
+                        <el-table-column prop="number" :label="$t('Number')"></el-table-column>
+                        <el-table-column prop="measurenumber" :label="$t('MeasureNumber')"></el-table-column>
+                    </el-table>
                 </div>
+                
             </div>
         </el-dialog>
 
@@ -584,7 +618,7 @@
                 </el-table-column>
                 <el-table-column prop="line" :label="$t('Task Line')">
                 </el-table-column>
-                <el-table-column width="300" :label="$t('Operate')">
+                <el-table-column width="350" :label="$t('Operate')">
 
                     <template slot-scope='scope'>
                         <el-select v-model="selected[scope.$index]" :placeholder="$t('Line')"
@@ -598,10 +632,17 @@
                             @click="ClaimTasks(scope.row.flowcard, scope.row.state, selected[scope.$index])">
                             {{ scope.row.state > 0 ? $t('Stop Task') : $t('Start Task') }}</el-button>
 
+
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                             v-show="scope.row.state >= 0 ? true : false"
                             @click="ModeChange(scope.row.flowcard, scope.row.method)">
                             {{ $t('Mode Change') }}</el-button>
+
+                            
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            v-show="scope.row.state >= 0 ? true : false"
+                            @click="StartChange(scope.row.flowcard)">
+                            {{ $t('start work') }}</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -647,7 +688,7 @@
     Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue,
     isAllowReorderings,
 
-    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure
+    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure,StartChange
 } from "../../api/home";
 
 
@@ -658,7 +699,7 @@
     name: "Home",
     data() {
         return {
-            carposition:0,
+            carposition: 0,
             selected: [],
             options: [{
                 value: '1',
@@ -710,6 +751,7 @@
             task2: 2,
             tasklist1: [],
             tasklist2: [],
+            tasklist3: [],
             order: "",
             glassid: "",
             glassid1: "",
@@ -763,7 +805,8 @@
             GlassIdList: [],
             Scanningmethod: true,
             CurrrentGlassId: "",
-            LastQueue: {}
+            LastQueue: {},
+            LastState: ["",this.$t('Matching successful'),this.$t('Multiple data matching'),this.$t('Matching failed')]
         };
     },
     created() {
@@ -807,7 +850,7 @@
                 socket.onmessage = function (msg) {
                     //console.log("鏀跺埌鏁版嵁====" + msg.data);
                     let obj = JSON.parse(msg.data);
-                    if(obj.carposition != null){
+                    if (obj.carposition != null) {
                         this.carposition = obj.carposition[0];
                     }
                     // 鑾峰彇璁惧鐘舵��
@@ -819,13 +862,26 @@
                     this.cagelist2 = obj.cagelist2[0];
                     this.cagelist3 = obj.cagelist3[0];
                     this.cagelist4 = obj.cagelist4[0];
+                    this.tasklist3 = obj.glassInfoFlowCard[0];
                     this.tasklist2 = obj.StoragTaskeTaskFeed[0];
                     this.tasklist1 = obj.StoragTaskeTaskOut[0];
-                    this.alarm = obj.alarmmg[0];
+                    if (obj.alarmmg[0].length > 0) {
+                        if (this.alarm.length > 0) {
+                            if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
+                                this.alarm = obj.alarmmg[0];
+                                this.dialogFormVisible2 = true;
+                            }
+                        } else {
+                            this.alarm = obj.alarmmg[0];
+                            this.dialogFormVisible2 = true;
+                        }
+                    } else {
+                        this.alarm = obj.alarmmg[0];
+                        this.dialogFormVisible2 = false;
+                    }
 
                     this.tableData1 = obj.OrderTask[0];
                     this.LastQueue = obj.LastQueue[0];
-
 
                     //鏄惁鍏佽鍑虹墖
                     this.isAllowQueue = obj.isAllowQueue[0];
@@ -909,7 +965,7 @@
                 StorageCageAddGlass(this.cell, this.StorageCageAddInfo[index]).then(res => {
                     if (res.data.message == 200) {
                         this.$message.success(this.$t('Operation successful'));
-                        this.StorageCageAdd=false;
+                        this.StorageCageAdd = false;
                     }
                 })
             } else {
@@ -938,6 +994,13 @@
                     this.$message.success(this.$t('Operation successful'));
                 }
             });
+        },//閫夋嫨寮�濮嬪伐绋�
+        StartChange(flowcard) {
+            StartChange(flowcard).then(res => {
+                if (res.data.message == 200) {
+                    this.$message.success(this.$t('Operation successful'));
+                }
+            });
         },
         //鏌ヨ鐜荤拑淇℃伅
         SelectGlassInfo() {
@@ -957,7 +1020,7 @@
         UpdateStroageCageByCell(cell, nownum, num) {
             if (nownum == null && num == 1) {
                 this.StorageCageAdd = true;
-                this.Measuermode=true;
+                this.Measuermode = true;
                 this.cell = cell;
             } else {
                 if (nownum + num == 0) {
@@ -1045,7 +1108,7 @@
         //浜哄伐鍖归厤
         ManualMatching() {
             this.StorageCageAdd = true;
-            this.Measuermode=false;
+            this.Measuermode = false;
         },
         //浜哄伐鎷胯蛋
         ManualTake() {
@@ -1096,7 +1159,7 @@
         },
         importData() {
             //let tbdata=JSON.stringify(this.dataList);
-            let tbdata=this.dataList;
+            let tbdata = this.dataList;
             console.log(tbdata);
             importData(tbdata).then(res => {
                 if (res.data.message == 200) {
@@ -1107,6 +1170,14 @@
         del() {
 
             this.StorageCageAdd = true;
+        },
+        rowClassName({ row, rowIndex }) {
+            if (row.glasstype!=0&&row.glasstype == this.LastQueue.glasstype) {
+                console.log(rowIndex);
+                return 'custom-row-class';
+            } else {
+                return ''; // 杩斿洖绌哄瓧绗︿覆琛ㄧず涓嶆坊鍔犱换浣曢澶栫殑绫诲悕
+            }
         }
 
 
diff --git a/PlcAlbania.json b/PlcAlbania.json
new file mode 100644
index 0000000..eed5688
--- /dev/null
+++ b/PlcAlbania.json
@@ -0,0 +1,414 @@
+{
+   "plcAddressBegin":"DB14.0",
+   "plcAddressLenght":"208",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "PLCToMES",  
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "IDStatus1",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "IDStatus2",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"
+       },
+       {
+          "codeId": "IDStatus3",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus4",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus5",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "IDStatus6",
+          "addressIndex":"12",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID1",
+          "addressIndex":"14",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID2",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID3",
+          "addressIndex":"18",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID4",
+          "addressIndex":"20",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID5",
+          "addressIndex":"22",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID6",
+          "addressIndex":"24",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "GaToMES",
+          "addressIndex":"26",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "Height",
+          "addressIndex":"28",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "width",
+          "addressIndex":"30",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "ExportTOMES1",
+          "addressIndex":"32",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "ExportToMES2",
+          "addressIndex":"34",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESToPLC",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID1",
+          "addressIndex":"38",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID2",
+          "addressIndex":"54",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID3",
+          "addressIndex":"70",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID4",
+          "addressIndex":"86",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID5",
+          "addressIndex":"102",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID6",
+          "addressIndex":"118",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESToPLCStart1",
+          "addressIndex":"134",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },{
+         "codeId": "MESToPLCStart2",
+         "addressIndex":"136",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStart3",
+         "addressIndex":"138",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart4",
+         "addressIndex":"140",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart5",
+         "addressIndex":"142",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart6",
+         "addressIndex":"144",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget1",
+         "addressIndex":"146",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget2",
+         "addressIndex":"148",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget3",
+         "addressIndex":"150",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget4",
+         "addressIndex":"152",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget5",
+         "addressIndex":"154",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget6",
+         "addressIndex":"156",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus1",
+         "addressIndex":"158",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus2",
+         "addressIndex":"160",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus3",
+         "addressIndex":"162",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus4",
+         "addressIndex":"164",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus5",
+         "addressIndex":"166",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus6",
+         "addressIndex":"168",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToGaStatus",
+         "addressIndex":"170",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01Err",
+         "addressIndex":"172",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02Err",
+         "addressIndex":"174",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Err",
+         "addressIndex":"176",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Err",
+         "addressIndex":"178",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Err",
+         "addressIndex":"180",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace1",
+         "addressIndex":"182",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace2",
+         "addressIndex":"184",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace3",
+         "addressIndex":"186",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Position",
+         "addressIndex":"188",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Position",
+         "addressIndex":"190",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Position",
+         "addressIndex":"192",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "DeviceState",
+         "addressIndex":"194",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "AllFVRun",
+         "addressIndex":"196",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01State",
+         "addressIndex":"198",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02State",
+         "addressIndex":"200",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01State",
+         "addressIndex":"202",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01State",
+         "addressIndex":"204",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02State",
+         "addressIndex":"206",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+   ]
+}
diff --git a/springboot-vue3/effective-pom.xml b/springboot-vue3/effective-pom.xml
index ad8b457..c17ab5b 100644
--- a/springboot-vue3/effective-pom.xml
+++ b/springboot-vue3/effective-pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- ====================================================================== -->
 <!--                                                                        -->
-<!-- Generated by Maven Help Plugin on 2024-03-19T08:09:38+08:00            -->
+<!-- Generated by Maven Help Plugin on 2024-04-15T08:30:30+08:00            -->
 <!-- See: http://maven.apache.org/plugins/maven-help-plugin/                -->
 <!--                                                                        -->
 <!-- ====================================================================== -->
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java b/springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
index ac71b25..95a670a 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
@@ -7,6 +7,7 @@
 import com.example.springboot.entity.device.PlcParameterObject;
 
 import java.io.BufferedReader;
+import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -16,6 +17,11 @@
 public class InitUtil {
     //鍒濆鍖杦ord
     public static PlcParameterObject initword(String jsonFilePath) {
+        // File file=new File(jsonFilePath);
+        // if (!file.exists()) {
+        //     System.out.println(jsonFilePath);
+        //     return null;
+        // }
         try {
             FileReader fileReader = new FileReader(jsonFilePath);
             BufferedReader bufferedReader = new BufferedReader(fileReader);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
index 912d171..44b4021 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -24,7 +24,8 @@
 
     // 鍗曚緥瀹炰緥
     private static PLCAutoMes instance;
-    private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
+    private static String PlcAlbania ="D:/Code/Albania_Mes/PlcAlbania.json";
+    //  PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
     public static PlcParameterObject PlcMesObject = initUtil.initword(PlcAlbania);
   
     // 绉佹湁鏋勯�犲嚱鏁�
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java
index 13ae0ee..c2bf875 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java
@@ -2,10 +2,8 @@
 
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
-import org.apache.commons.io.FileUtils;
 
 import java.io.*;
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -13,7 +11,7 @@
 public class PlcAlbaniaServo extends Thread {
     private Configuration config;
 
-    public PlcAlbaniaServo() throws IOException {
+    public  PlcAlbaniaServo() throws IOException {
         config = new Configuration("config.properties");
     }
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
index 28a0b49..a716c1e 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
@@ -37,9 +37,9 @@
       PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
       if(plcmes.getPlcParameter("PLCToMES").getValue()!=null){
         
-      //spianService.Mestast("NG0001-1",1,4,1,"MESID1",1);
-
-       
+      // spianService.Mestast("NG0001-1",40,1,0,"MESID1",1);
+      // spianService.Mestast("NG0001-2",40,2,0,"MESID2",2);
+      // spianService.Mestast("NG0001-3",40,2,1,"MESID3",3);
     
       String ExportTOMES1=plcmes.getPlcParameter("ExportTOMES1").getValue();//鍑虹墖璇锋眰涓�绾�
       String ExportToMES2=plcmes.getPlcParameter("ExportToMES2").getValue();//鍑虹墖璇锋眰浜岀嚎
@@ -51,19 +51,17 @@
       //涓�鍙风嚎璇锋眰
       if(ExportTOMES1!=null&&MESToPLC!=null){
       if (ExportTOMES1.equals("1") == true&&MESToPLC.equals("0")==true) {
-        //灏嗚繍杈撹溅鐘舵�佹敼涓哄繖纰�
         spianService.selectout(1);
       }
     }
       // //浜岀嚎鍙疯姹傛椂
       if(ExportToMES2!=null &&MESToPLC!=null){
       if (ExportToMES2.equals("1") == true&&MESToPLC.equals("0")==true) {
-        //灏嗚繍杈撹溅鐘舵�佹敼涓哄繖纰�
-       
         spianService.selectout(2);
       }
     }
       //杩涚墖璇锋眰鏃�
+      
       GlassInfo glass=albaniaMapper.SelectGlass();
       if(PLCToMES!=null && glass!=null&&MESToPLC!=null){
       if(PLCToMES.equals("1")==true&&MESToPLC.equals("0")==true){        
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
index 07f299f..eaf8200 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -87,8 +87,8 @@
 
       // 鏍规嵁鍦板潃璇诲彇PCL鏁版嵁
       List<Boolean> plclist = S7control.getinstance().ReadBits("DB15.0.0", Plccount);
+      // System.out.println(plclist);
 //      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
-      System.out.println(plclist);
       // Boolean[] values = { false, false, true, false, true, false, true, false,
       // true, false, true, false, true, false,
       // true, false, true, false, true, false, true, false, true, false, true, false,
@@ -128,10 +128,6 @@
             alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
             for (short i = 0; i < array1.length; i++) {
               // 鏌ヨ瀵瑰簲鎶ヨ淇℃伅缁撴潫鏃堕棿涓簄ull鐨勬潯鏁�
-              if(i==48){
-                short result = alarmMapper.selectnullti(array1[i]);
-                System.out.println(result+"-"+array1[i]);
-              }
               short result = alarmMapper.selectnullti(array1[i]);
               // 璇诲彇鍒癙LC鐨勫�间负1骞朵笖瀵瑰簲鎶ヨ淇℃伅缁撴潫鏃堕棿涓簄ull鐨勬潯鏁扮殑鏉℃暟涓�0
     //System.out.println(result);
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 f663b3c..7b8acea 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,4 +1,5 @@
 package com.example.springboot.component;
+
 import cn.hutool.json.JSONObject;
 import java.util.ArrayList;
 import java.util.List;
@@ -30,13 +31,11 @@
     private HomeMapper homeMapper;
     @Autowired
     private HomeService HomeService;
+    @Autowired
+    private GlassInfoMapper glassInfoMapper;
     private QueueMapper QueueMapper;
-    private GlassInfoMapper GlassInfoMapper;
-    private MeasureSettingMapper MeasureSettingMapper;
     private OutSliceServive outSliceServive;
-    private SpianMapper spianMapper;
-    private SpianService spianService;
-    
+
     // 鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
     public static Boolean isAllowQueue = true;
     public static Boolean isAllowReordering = true;
@@ -61,29 +60,40 @@
 
     // public static Map b=new HashMap<>();
     // b.put()
+    public double carstart = 200;
+    public double carend = 20000;
+
     @Override
     public void run() {
+
         while (this != null) {
             JSONObject jsonObject = new JSONObject();
             try {
                 Thread.sleep(1000);
                 // 娉ㄥ叆mapper
-                HomeService  = WebSocketServer.applicationContext.getBean(HomeService.class);
-                QueueMapper  = WebSocketServer.applicationContext.getBean(QueueMapper.class);
+                HomeService = WebSocketServer.applicationContext.getBean(HomeService.class);
+                QueueMapper = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                 homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
-                spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
-                spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
                 outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
                 storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
+                glassInfoMapper = WebSocketServer.applicationContext.getBean(GlassInfoMapper.class);
 
+                // 鑾峰彇鍏惰溅鐨勪綅缃�
+                if (S7control.getinstance().CheckConnected() == true&&false) {
+                    double carposition = 0;
+                    float car = S7control.getinstance().readFloat32("DB10.1992");
+                    carposition = (-40 + (car / (carend - carstart) * 595));
+                    jsonObject.append("carposition", carposition);
+                }
                 // 绗煎瓙浣跨敤鎯呭喌
                 List<StorageCage> tableData = homeMapper.selectAlls();
                 jsonObject.append("tableData", tableData);
+
                 // 鏍肩悊鐗囩鏍煎瓙鐘舵��
-                List<StorageCage> cagelist1=storageCageService.SelectStorageCageByCage(1);
-                List<StorageCage> cagelist2=storageCageService.SelectStorageCageByCage(2);
-                List<StorageCage> cagelist3=storageCageService.SelectStorageCageByCage(3);
-                List<StorageCage> cagelist4=storageCageService.SelectStorageCageByCage(4);
+                List<StorageCage> cagelist1 = storageCageService.SelectStorageCageByCage(1);
+                List<StorageCage> cagelist2 = storageCageService.SelectStorageCageByCage(2);
+                List<StorageCage> cagelist3 = storageCageService.SelectStorageCageByCage(3);
+                List<StorageCage> cagelist4 = storageCageService.SelectStorageCageByCage(4);
                 jsonObject.append("cagelist1", cagelist1);
                 jsonObject.append("cagelist2", cagelist2);
                 jsonObject.append("cagelist3", cagelist3);
@@ -97,7 +107,6 @@
                 List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
                 jsonObject.append("alarmmg", alarmmg);
 
-                
                 // 鑾峰彇鍑虹墖闃熷垪淇℃伅
                 List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
                 jsonObject.append("listoutslice", listoutslice);
@@ -112,56 +121,66 @@
                 // 鏌ヨ褰撳墠閾濇淇℃伅
                 Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame();
                 jsonObject.append("CurrentFrame", CurrentFrame);
-              
-                //璇诲彇DB105鍖烘枃浠�
-                PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-      
-                String PlcRequest=plcmes.getPlcParameter("GaToMES").getValue();//璇锋眰
-                String MesSend=plcmes.getPlcParameter("MESToGaStatus").getValue();//鍙戦��
-                double width=Double.valueOf(plcmes.getPlcParameter("width").getValue());//瀹�
-                double height=Double.valueOf(plcmes.getPlcParameter("Height").getValue());//楂�
 
-                // String PlcRequest=S7control.getinstance().ReadWord("DB14.26", 1).get(0)+"";
-                // double width=Double.parseDouble(S7control.getinstance().ReadWord("DB14.28", 1).get(0)+"");
-                // double height=Double.parseDouble(S7control.getinstance().ReadWord("DB14.30", 1).get(0)+"");
-                // String MesSend=S7control.getinstance().ReadWord("DB14.170", 1).get(0)+"";
+                // 璇诲彇DB105鍖烘枃浠�
+                PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+                // if(plcmes.==null){
 
-                //鑾峰彇娴嬮噺鐨勯暱锛屽
-                 boolean istest = true;
+                // }
+
+                // 鑾峰彇娴嬮噺鐨勯暱锛屽
+                boolean istest = true;
                 // String PlcRequest = "1";
                 // String MesSend = "0";
-                // double width = 516;
-                // double height = 507;
-                
-                //鍖归厤
-                //System.err.println(PlcRequest+","+MesSend+","+width+","+height);
-                if ("0".equals(PlcRequest)&&istest) {
-                    S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 0);
-                }
-                if ("1".equals(PlcRequest)&&"0".equals(MesSend)) {
-                    boolean is=HomeService.Normal(width, height, "1");
-                    if (is&&istest) {
-                        // 娴嬮噺鎴愬姛
-                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+                // double width = 0;
+                // double height = 0;
 
-                    }else if(istest){
-                        // 閲嶆柊娴嬮噺
-                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 4);
-                    }
+                // 鍖归厤
+                // System.err.println(PlcRequest+","+MesSend+","+width+","+height);
+                // if (plcmes.getPlcParameter("GaToMES").getValue() != null) {
+                // String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// 璇锋眰
+                // String MesSend = plcmes.getPlcParameter("MESToGaStatus").getValue();// 鍙戦��
+                // double width = Double.valueOf(plcmes.getPlcParameter("width").getValue());//
+                // 瀹�
+                // double height =
+                // Double.valueOf(plcmes.getPlcParameter("Height").getValue());// 楂�
+                // if ("0".equals(PlcRequest) && istest) {
+                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
+                // (short) 0);
+                // }
+                // if ("1".equals(PlcRequest) && "0".equals(MesSend)) {
+                // boolean is = HomeService.Normal(width, height, "1");
+                // if (is && istest) {
+                // // 娴嬮噺鎴愬姛
+                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
+                // (short) 1);
 
-                }
-                 //S7control.getinstance().WriteWord("DB14.170", (short)0);
-                Queue LastQueue= QueueMapper.selectLastQueue();
-                if(LastQueue==null){
-                    Queue nullQueue=new Queue();
+                // } else if (istest) {
+                // // 閲嶆柊娴嬮噺
+                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
+                // (short) 4);
+                // }
+                // }
+                // }
+
+                // S7control.getinstance().WriteWord("DB14.170", (short)0);
+
+                // 姝e湪涓婄墖璁㈠崟涓殑鎵�鏈夊皬鐗囦俊鎭�   
+                List<GlassInfo> glassInfoFlowCard = glassInfoMapper.selectOrderState(1);
+                jsonObject.append("glassInfoFlowCard", glassInfoFlowCard);
+
+                Queue LastQueue = QueueMapper.selectLastQueue();
+                if (LastQueue == null) {
+                    Queue nullQueue = new Queue();
                     nullQueue.setglassId("");
                     nullQueue.setglassheight(0);
                     nullQueue.setglasswidth(0);
                     nullQueue.setglassheightmm(0);
+                    nullQueue.setglasstype(0);
                     nullQueue.setglasswidthmm(0);
                     jsonObject.append("LastQueue", nullQueue);
-                }else{
-                    if (LastQueue.getstate()<1) {
+                } else {
+                    if (LastQueue.getstate() < 1) {
                         LastQueue.setglasswidth(0);
                         LastQueue.setglassheight(0);
                     }
@@ -170,16 +189,15 @@
                 // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                 // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
 
-                
-                //鏌ヨ鐞嗙墖绗间俊鎭�
+                // 鏌ヨ鐞嗙墖绗间俊鎭�
                 List<StorageCage> StorageCageInfo = storageCageService.SelectStorageCageInfo();
                 jsonObject.append("StorageCageInfo", StorageCageInfo);
 
-                //鏌ヨ褰撳墠杩涚墖浠诲姟
+                // 鏌ヨ褰撳墠杩涚墖浠诲姟
                 List<StorageTask> StoragTaskeTaskFeed = storageCageService.SelectStorageTask(0);
                 jsonObject.append("StoragTaskeTaskFeed", StoragTaskeTaskFeed);
 
-                //鏌ヨ褰撳墠鍑虹墖浠诲姟
+                // 鏌ヨ褰撳墠鍑虹墖浠诲姟
                 List<StorageTask> StoragTaskeTaskOut = storageCageService.SelectStorageTask(1);
                 jsonObject.append("StoragTaskeTaskOut", StoragTaskeTaskOut);
 
@@ -187,27 +205,28 @@
                 List<FlowCard> OrderTask = storageCageService.SelectOrderTask();
                 jsonObject.append("OrderTask", OrderTask);
 
+                // jsonObject.append("params", new short[] { 30, 40, });
+                // System.out.println("jsonObject:" + jsonObject);
+                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
+                if (sendwServer != null) {
+                    for (WebSocketServer webserver : sendwServer) {
+                        webserver.sendMessage(jsonObject.toString());
+
+                        if (webserver != null) {
+
+                            List<String> messages = webserver.getMessages();
+
+                            if (!messages.isEmpty()) {
+                                // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                                webserver.clearMessages();
+                            }
+                        }
+
+                    }
+                }
+
             } catch (InterruptedException e) {
                 e.printStackTrace();
-            }
-
-            // jsonObject.append("params", new short[] { 30, 40, });
-            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
-            if (sendwServer != null) {
-                for (WebSocketServer webserver : sendwServer) {
-                    webserver.sendMessage(jsonObject.toString());
-
-                    if (webserver != null) {
-
-                        List<String> messages = webserver.getMessages();
-
-                        if (!messages.isEmpty()) {
-                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                            webserver.clearMessages();
-                        }
-                    }
-
-                }
             }
         }
     }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
index e1120ea..de8e415 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -17,6 +17,11 @@
 
   // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
   private Configuration config;
+
+    public Plcsign() throws IOException {
+        config = new Configuration("config.properties");
+    }
+
   String name = "";
   Integer count = 0;
 
@@ -63,33 +68,14 @@
   public void run() {
     while (this != null) {
       try {
-        Thread.sleep(1000);
+        Thread.sleep(100);
       } catch (InterruptedException e) {
         e.printStackTrace();
       }
-
-//      this.readValue();
-//      String PlcAddress = this.name;
-//      Integer Plccount = this.count;
-      // System.out.println(PlcAddress);
-
-//      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
-      //  List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112);
        List<String> addressList21 = Arrays.asList(config.getProperty("PlcIO.State").split(","));
        List<Boolean> plclist = S7control.getinstance().readBits(addressList21);
-       List<String> addressListName = Arrays.asList(config.getProperty("PlcIO.Name").split(","));
+      //  System.out.println("鎬ュ仠"+S7control.getinstance().ReadBits("DB10.0.5", 1));
       
-//       Boolean[] values = { true, true, true, true, true, false, true, false,
-//       true, false, true, false, true, false,
-//       true, false, true, false, true, false, true, false, true, false, true, false,
-//       true, false, true, false, true,
-//       false, true, false, true, false,
-//       true, false, true, false, true, false, true, false, null,
-//       true, false,
-//       true, false, true, false, true, false,
-//       true, false, true, false, true, };
-//       List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
-
       if (plclist != null) {
         // 灏嗚幏鍙栫殑甯冨皵绫诲瀷杞崲涓烘暣鏁扮被鍨�
         List<Integer> Intlist = new ArrayList<>();
@@ -101,7 +87,6 @@
         }
         JSONObject jsonObject = new JSONObject();
         jsonObject.append("sig", Intlist);
-        jsonObject.append("addressListName", addressListName);
 //        WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
 //        if (sendwServer3 != null) {
 //          sendwServer3.sendMessage(jsonObject.toString());
diff --git a/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java b/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
index 9089c4a..169ed38 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -19,8 +19,8 @@
 
         // new Plcalarm().start();
         // new PLCAutoMes().start();
-        //  new PlcHoldNew().start();
-         new Plchome().start();
+        // new PlcHoldNew().start();
+        new Plchome().start();
         // new PlcAlbaniaServo().start();
         // new Plcsign().start();
 
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 b2fa075..64025c1 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
@@ -532,6 +532,12 @@
     public Result ManualTake(@RequestBody String glassInfo) {
       return storageCageService.ManualTake(glassInfo);
     }
+
+    //寮�濮嬪伐绋�
+    @PostMapping("/StartChange")
+    public Result StartChange(String flowcard) {
+      return storageCageService.StartChange(flowcard);
+    }
     //閲嶆柊娴嬮噺
     @PostMapping("/AnewMeasure")
     public Result AnewMeasure(@RequestBody String glassInfo) {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java b/springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java
index 5e62d7f..442e8bd 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java
@@ -17,6 +17,8 @@
   private Integer state;// 鐘舵��
   private Integer method;// 鍑虹墖鏂瑰紡
   private Date starttime;// 浠诲姟棰嗗彇鏃堕棿
+  private Integer orderstate;// 浠诲姟棰嗗彇鏃堕棿
+  
   
 
   public List<GlassInfo> glassinfo;// 鐜荤拑淇℃伅
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java b/springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java
index 1c5e3af..345d508 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java
@@ -24,4 +24,6 @@
   private Integer measurenumber;// 娴嬮噺瀹屾垚鏁伴噺
   private Integer cageno;//绗煎唴鏁伴噺
   private Integer method;//鍑虹墖鏂瑰紡
+  private Integer orderstate;//鍑虹墖鏂瑰紡
+  
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java b/springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java
index 08c5b72..65b274c 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java
@@ -10,7 +10,7 @@
     private double glassheight;//鐜荤拑楂�
     private double glasswidthmm;//鐜荤拑瀹借嫳鍒�
     private double glassheightmm;//鐜荤拑楂樿嫳鍒�
-    private int type;//绫诲瀷
+    private int glasstype;//绫诲瀷
     private int state;//鐘舵��
     private String time;//淇敼鏃堕棿
 
@@ -86,12 +86,12 @@
         this.glassheightmm = glassheightmm;
     }
 
-    public int gettype() {
-        return type;
+    public int getglasstype() {
+        return glasstype;
     }
 
-    public void settype(int type) {
-        this.type = type;
+    public void setglasstype(int glasstype) {
+        this.glasstype = glasstype;
     }
 
     public int getstate() {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java b/springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java
index 5e62d7f..442e8bd 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java
@@ -17,6 +17,8 @@
   private Integer state;// 鐘舵��
   private Integer method;// 鍑虹墖鏂瑰紡
   private Date starttime;// 浠诲姟棰嗗彇鏃堕棿
+  private Integer orderstate;// 浠诲姟棰嗗彇鏃堕棿
+  
   
 
   public List<GlassInfo> glassinfo;// 鐜荤拑淇℃伅
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java b/springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java
index 1c5e3af..345d508 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java
@@ -24,4 +24,6 @@
   private Integer measurenumber;// 娴嬮噺瀹屾垚鏁伴噺
   private Integer cageno;//绗煎唴鏁伴噺
   private Integer method;//鍑虹墖鏂瑰紡
+  private Integer orderstate;//鍑虹墖鏂瑰紡
+  
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
index ac95341..e0d5bb0 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
@@ -12,10 +12,10 @@
 @Repository
 public interface AlbaniaMapper  {
     //鍒ゆ柇绗煎唴鏄惁鏈夊悎閫傜殑绫诲瀷绌烘牸
-    @Select("select id from storage_cage where glasstype=#{glasstype} and width>=#{width}+#{widths} and state=0 and disabled=0 order by id limit 1")
+    @Select("select id from storage_cage where glasstype=#{glasstype} and width>=#{width}+#{widths}  and disabled=0 order by id limit 1")
     StorageCage SelectCage(int glasstype,Double width,int widths);
     //鍒ゆ柇绗煎唴娌℃湁鐜荤拑鐨勭┖鏍�
-    @Select("select id from storage_cage where number=0 and cage>#{cage} and cage<#{cage2} and disabled=0 order by id limit 1")
+    @Select("select id from storage_cage where (number is null or number=0) and cage>#{cage} and cage<#{cage2} and disabled=0 order by id limit 1")
     StorageCage SelectNewCell(int cage,int cage2);
     //澧炲姞鐜荤拑鏁�
     @Update("update storage_cage set number=number+1,width=width-glasswidth where id=#{id}")
@@ -27,8 +27,8 @@
     @Insert("INSERT INTO `albania`.`storage_task`(`task_type`, `task_state`, `shelf_rack`, `load_rack`,start_time,glass_id,glasstype,flowcard,mateid,tier) VALUES (#{tasktype},#{taskstate},#{shelfrack},#{loadrack},now(),#{glassid},#{glasstype},#{flowcard},#{mateid},#{tier});")
     void Inserttask(int tasktype, int taskstate, int shelfrack, int loadrack, String glassid, int glasstype,String flowcard,int mateid,int tier);
     //鏂板涓�鏉$瀛愭暟鎹�
-    @Update("UPDATE `albania`.`storage_cage` SET `glass_id` =#{glassid}, `width` =width-#{glasswidth}, `glasswidth` =#{glasswidth}, `glassheight` =#{glassheight}, `glasswidthmm` =#{glasswidthmm}, `glassheightmm` = #{glassheightmm},  `state` = #{state}, `glasstype` = #{glasstype}, `number` = #{number} WHERE `id` =#{id};")
-    void AddCage(int id,String glassid,Double glasswidth,Double glassheight,Double glasswidthmm,Double glassheightmm,int state,String glasstype,int number);
+    @Update("UPDATE `albania`.`storage_cage` SET `glass_id` =#{glassid}, `width` =width-#{glasswidth}, `glasswidth` =#{glasswidth}, `glassheight` =#{glassheight}, `glasswidthmm` =#{glasswidth}, `glassheightmm` = #{glassheight},  `state` = #{state}, `glasstype` = #{glasstype}, `number` = #{number} WHERE `id` =#{id};")
+    void AddCage(int id,String glassid,Double glasswidth,Double glassheight,int state,int glasstype,int number);
     //鑾峰彇杩涚墖鏁版嵁
     @Select("select glassid,flowcard,glasswidth as width,glassheight as height,glasswidthmm,glassheightmm,glasstype,thickness  from queue where state=1 limit 1")
     GlassInfo SelectGlass();
@@ -57,10 +57,15 @@
     @Select("select method from flowcard where state=1 and line=#{line} ORDER BY starttime LIMIT 1;")
     GlassInfo SelectMethod(int line);
     //鐩村嚭妯″紡浠诲姟鏌ヨ
-    @Select("select b.flowcard,b.glasstype,b.mateid,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=#{line} and c.number>0")
+    @Select("select b.flowcard,b.glassid,b.glasstype,b.mateid,b.width,b.tier,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=#{line} and c.number>0 limit 1")
     GlassInfo SelectOutGlass2(int line);
+    //鏌ヨ鐩撮�氭ā寮忎笅鏈�鍚庝竴鍧�
+    @Select("select b.tier from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=2 and c.number>0 ORDER BY b.tier desc LIMIT 1")
+    int SelectOutGlassend(int line);
+    //澧炲姞绗煎瓙琛ㄥ楂�
     @Select("update storage_cage a set a.glasswidth=#{width},a.glassheight=#{height} where id=#{id} ")
     void UpdateStorage(double width,double height,int id);
+    //鏇存敼闃熷垪琛ㄧ姸鎬�
     @Update("update queue set state=2 where glassid=#{glassid};")
     void UpdateQueueState(String glassid);
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
index 676c604..d6ec9a7 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
@@ -13,12 +13,14 @@
 @Repository
 public interface GlassInfoMapper extends BaseMapper<GlassInfo> {
 
-    @Select("SELECT * FROM glassinfo where width<=#{maxwidth} and width>=#{minwidth} and height<=#{maxheight} and height>=#{minheight} and measurenumber<number")
+    @Select("select gi.* from flowcard as fd LEFT JOIN glassinfo as gi on fd.flowcard=gi.flowcard where fd.orderstate=1 and gi.flowcard is not null and  gi.width<=#{maxwidth} and gi.width>=#{minwidth} and gi.height<=#{maxheight} and gi.height>=#{minheight} and gi.measurenumber<number")
     List<GlassInfo> selectGlassInfos(@Param("maxwidth") double maxwidth, @Param("minwidth") double minwidth, @Param("maxheight") double maxheight, @Param("minheight") double minheight);
 
     // @Select("SELECT COUNT(*) FROM role_permission WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
     // boolean checkExists(@Param("roleId") int roleId, @Param("permissionId") int permissionId);
 
+    @Select("SELECT g.* FROM flowcard as f left join glassinfo as g on f.flowcard=g.flowcard WHERE f.orderstate = #{orderstate}")
+    List<GlassInfo> selectOrderState(@Param("orderstate") int orderstate);
 
     @Update("UPDATE glassinfo SET measurenumber = measurenumber+1 WHERE id = #{id}")
     void updatemeasurenumber(@Param("id") int roleId);
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 8b86aa7..5bcf1ab 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
@@ -283,6 +283,10 @@
   @Update("update flowcard set method=#{method} where flowcard=#{flowcard}")
   void ModeChange(String flowcard, int method);
 
+  
+  @Update("update flowcard set orderstate=#{orderstate} where flowcard=#{flowcard}")
+  void StartChange(String flowcard,int orderstate);
+
   @Update("update queue set glassid=concat(#{flowcard},'-',#{tier}),flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},thickness=#{thickness},state=1 where state<=0")
   void UpdateQueue(String flowcard, double width, double height, Integer glasstype, Double thickness, Integer tier);
 
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 54bf11e..e04512b 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
@@ -69,6 +69,7 @@
             //System.out.println("鏈夊尮閰嶅け璐ユ暟鎹湭鍘婚櫎");
             return false;
         }
+        //鏌ヨ褰撳墠棰嗗彇鐨勪换鍔�
         List<GlassInfo> Result = NormalGlassInfo(width, height, "1");
         if (Result.size() == 1) {
             // 鍖归厤鎴愬姛 灏变竴绉嶇被鍨� 娣诲姞鏁版嵁
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 d600266..10a3b03 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
@@ -18,7 +18,7 @@
 	 * 鏁版嵁搴撹繛鎺ュ弬鏁�
 	 * driver,url,username,password
 	 */
-	private static final String DRIVER = "com.mysql.jdbc.Driver";
+	private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
 	private static final String URL = "jdbc:mysql://10.153.19.150:3306/canadames";
 	private static final String USERNAME = "root";
 	private static final String PASSWORD = "beibo.123/";
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
index 8ebfe3d..8dc6562 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
@@ -24,6 +24,8 @@
         //鏈夎繘鐗囪姹備絾鏄祴閲忓彴娌℃湁鐜荤拑
         return 400;
     }
+    
+    System.out.println(glassInfo+"鍒濆");
     //瀹氫箟鍒濆瀛楁
     StorageCage cage;
     String glassid=glassInfo.getGlassid();
@@ -44,20 +46,23 @@
          if(glassInfo.getThickness()>=15){
             cage=albaniaMapper.SelectNewCell(3,5);
         }else{
-            cage=albaniaMapper.SelectNewCell(0,5);
+            cage=albaniaMapper.SelectNewCell(0,4);
+            
+            System.out.println(cage+"鐞嗙墖绗煎垽鏂�");
         }
         //褰撹繑鍥炵殑鏍煎瓙鍙蜂负绌烘椂,杩斿洖400绗煎瓙宸叉弧
         if(cage!=null){
-            albaniaMapper.AddCage(cage.getId(), glassid,width, height, cage.getGlassWidthMm(), cage.getGlassHeightMm(), 1, cage.getGlasstype(), 0);
+            albaniaMapper.AddCage(cage.getId(), glassid,width, height, 1, glasstype, 0);
             Mestast(glassid,1001,cage.getId(),1,"MESID1",1);
             albaniaMapper.UpdateStorage(width,height,cage.getId());
-            albaniaMapper.UpdateQueueState(glassid);
+            System.out.println(cage+"浠诲姟鍙戦��");
         }else{
             return(400);
         }
     }
     //澧炲姞浠诲姟璁板綍
     albaniaMapper.Inserttask(0, 0, 1001, cage.getId(), glassid,glasstype, flowcard,0,0);
+    albaniaMapper.UpdateQueueState(glassid);
     return(200);
 
 }
@@ -67,6 +72,7 @@
         GlassInfo glassmate=new GlassInfo();
         GlassInfo method=new GlassInfo();
         StorageCage glass=new StorageCage();
+        int glassend=0;
         method=albaniaMapper.SelectMethod(line);
         double width=0;
             for(int i=1;i<=7;i++){
@@ -76,6 +82,8 @@
                 }else{
                     //鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑�
                     glassmate= albaniaMapper.SelectOutGlass2(line);
+                    //鑾峰彇鐩撮�氭ā寮忔渶鍚庝竴鍧�
+                    glassend=albaniaMapper.SelectOutGlassend(line);
                 }
                 
                 if(glassmate==null){ 
@@ -97,11 +105,12 @@
                     Mestast(glass.getGlassId(), glass.getId(),40, 0,"MESID"+i,i);
                     albaniaMapper.AddFinishNumber(glassmate.getFlowcard(), glassmate.getMateid(), glassmate.getTier());
                     albaniaMapper.Inserttask(1, 0, glass.getId(), 2002, glassmate.getGlassid(), glassmate.getGlasstype(),glass.getFlowcard(),glassmate.getMateid(),glassmate.getTier());
-                      if(glassmate.getTier()==glassmate.getId()){//褰撻厤鐗囨暟閲忕瓑浜庢垚鍝佸皬鐗囨�荤墖鏁版椂
+                      if(glassmate.getTier()==glassmate.getId()||glassmate.getTier()==glassend){//褰撻厤鐗囨暟閲忕瓑浜庢垚鍝佸皬鐗囨�荤墖鏁版椂
                         //鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
                         S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short)1);//鍑虹墖浠诲姟鍚姩
                         return (200);//缁撴潫
                       }
+                     
                       
                     }else{
                         return (400);//缁撴潫
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
index 816e5a1..0025656 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -223,7 +223,7 @@
             homeMapper.DeleteStroageCageByCell(cell);
         } else {
             homeMapper.updateStroageCageByCell(cell, num);
-            homeMapper.UpdateStroageCageWidthByCell(cell);//淇敼绗煎瓙瀹藉害
+            homeMapper.UpdateStroageCageWidthByCell(cell);// 淇敼绗煎瓙瀹藉害
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
@@ -294,9 +294,9 @@
     // 寮�濮嬩换鍔�
     public Result ClaimTasks(String flowcard, Integer state, Integer line) {
         if (state == 1) {
-            homeMapper.ClaimTasks(flowcard, 0,line);
+            homeMapper.ClaimTasks(flowcard, 0, line);
         } else {
-            homeMapper.ClaimTasks(flowcard, 1,line);
+            homeMapper.ClaimTasks(flowcard, 1, line);
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
@@ -318,10 +318,10 @@
     // 淇敼娴嬮噺淇℃伅
     public Result UpdateQueue(GlassInfo glassInfo) {
         homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
-                glassInfo.getGlasstype(),glassInfo.getThickness(),glassInfo.getTier());
+                glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier());
         Map<String, Object> map = new HashMap<>();
-        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
         map.put("message", "200");
         return Result.success(map);
     }
@@ -335,11 +335,19 @@
         // 璇诲彇DB105鍖烘枃浠�
         PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
         // 绉婚櫎
-        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 3);
-        //鍒犻櫎鏁版嵁
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 3);
+        // 鍒犻櫎鏁版嵁
         QueueMapper.DeleteErrorQueue();
-        
+
         // plcmes.getPlcParameter("GaToMES").setValue("3");
+        Map<String, Object> map = new HashMap<>();
+        map.put("message", "200");
+        return Result.success(map);
+    }
+
+    // 寮�濮嬪伐绋�
+    public Result StartChange(String flowcard) {
+        homeMapper.StartChange(flowcard, 1);
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
         return Result.success(map);
@@ -350,8 +358,8 @@
         // 璇诲彇DB105鍖烘枃浠�
         PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
         // 閲嶆柊娴嬮噺
-        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 2);
-        //鍒犻櫎鏁版嵁
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 2);
+        // 鍒犻櫎鏁版嵁
         QueueMapper.DeleteErrorQueue();
         // plcmes.getPlcParameter("GaToMES").setValue("2");
         Map<String, Object> map = new HashMap<>();
@@ -365,14 +373,15 @@
         // 绛涢�夊鐞嗘暟鎹� 1.鍘婚櫎鏃犵敤鏁版嵁 2.璁$畻閰嶇墖ID 3.璁$畻ID 4. 璁$畻鎬诲眰鏁�
         List<Map> TypeDatas = homeMapper.SelectType();
         Map<String, String> TypeData = new HashMap<String, String>();// 寰楀埌澶勭悊瀹屽悗鎵�鏈夌殑绫诲瀷
-        Map<String, Integer> groupby=new HashMap<String, Integer>(); // 寰楀埌澶勭悊瀹屽悗鎵�鏈夋�诲眰鏁�;
-        Map<String, Integer> OrderFinishedProduct=new HashMap<String, Integer>(); // 寰楀埌澶勭悊瀹屽悗璁㈠崟鎴愬搧鎬绘暟閲�;
-        //"order zong 0  1  10  2 10"
+        Map<String, Integer> groupby = new HashMap<String, Integer>(); // 寰楀埌澶勭悊瀹屽悗鎵�鏈夋�诲眰鏁�;
+        Map<String, Integer> OrderFinishedProduct = new HashMap<String, Integer>(); // 寰楀埌澶勭悊瀹屽悗璁㈠崟鎴愬搧鎬绘暟閲�;
+        // "order zong 0 1 10 2 10"
         List<Map> RemoveErrorData = IportDataStr.stream()
                 .filter(item -> (item.get("order") != null && item.get("glasstype") != null && item.get("tier") != null
                         &&
                         item.get("films") != null && item.get("base") != null && item.get("height") != null
-                        && item.get("thickness") != null && item.get("quantity") != null&& item.get("matching") != null))
+                        && item.get("thickness") != null && item.get("quantity") != null
+                        && item.get("matching") != null))
                 .collect(Collectors.toList());
 
         TypeDatas.forEach(item -> {
@@ -380,32 +389,34 @@
         });
 
         RemoveErrorData.forEach(item -> {
-            String key=item.get("order").toString()+"_"+item.get("matching").toString();
-            String keyCount=item.get("order").toString()+"_"+item.get("matching").toString()+"_"+item.get("tier").toString();
-            String keyCountSum=item.get("order").toString()+"_"+item.get("matching").toString()+"_Sum";//璁㈠崟鎬绘暟
-            if (OrderFinishedProduct.get(keyCount)!=null) {
-                Integer count=OrderFinishedProduct.get(keyCount)+1;
-                Integer sumcount=OrderFinishedProduct.get(keyCountSum)+Integer.parseInt(item.get("quantity").toString());
-                OrderFinishedProduct.put(keyCount,count);
-                OrderFinishedProduct.put(keyCountSum,sumcount);
-            }else if(OrderFinishedProduct.get(keyCount)==null&&groupby.get(key)==null){
-                OrderFinishedProduct.put(keyCount,1);
-                OrderFinishedProduct.put(keyCountSum,Integer.parseInt(item.get("quantity").toString()));
+            String key = item.get("order").toString() + "_" + item.get("matching").toString();
+            String keyCount = item.get("order").toString() + "_" + item.get("matching").toString() + "_"
+                    + item.get("tier").toString();
+            String keyCountSum = item.get("order").toString() + "_" + item.get("matching").toString() + "_Sum";// 璁㈠崟鎬绘暟
+            if (OrderFinishedProduct.get(keyCount) != null) {
+                Integer count = OrderFinishedProduct.get(keyCount) + 1;
+                Integer sumcount = OrderFinishedProduct.get(keyCountSum)
+                        + Integer.parseInt(item.get("quantity").toString());
+                OrderFinishedProduct.put(keyCount, count);
+                OrderFinishedProduct.put(keyCountSum, sumcount);
+            } else if (OrderFinishedProduct.get(keyCount) == null && groupby.get(key) == null) {
+                OrderFinishedProduct.put(keyCount, 1);
+                OrderFinishedProduct.put(keyCountSum, Integer.parseInt(item.get("quantity").toString()));
             }
-            if (groupby.get(key)!=null) {
-                Integer Tiers=groupby.get(key)+1;
+            if (groupby.get(key) != null) {
+                Integer Tiers = groupby.get(key) + 1;
                 groupby.put(key, Tiers);
-            }else{
+            } else {
                 groupby.put(key, 1);
-            }    
+            }
         });
 
         System.out.println(RemoveErrorData.size());
         // 澶勭悊瀹屾垚 娣诲姞鏁版嵁搴�
-        int count=1;
+        int count = 1;
         for (Map map : RemoveErrorData) {
             String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
-                       + map.get("thickness").toString() + "_" + map.get("films").toString();
+                    + map.get("thickness").toString() + "_" + map.get("films").toString();
 
             String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
 
@@ -413,8 +424,8 @@
             Integer glasstype;
             if (TypeData.get(key) == null) {
                 glasstype = homeMapper.SelectMaxType();
-                if (glasstype==null) {
-                    glasstype=1;
+                if (glasstype == null) {
+                    glasstype = 1;
                 }
             } else {
                 glasstype = Integer.valueOf(value);
@@ -422,21 +433,18 @@
             //
             homeMapper.AddGlassinfo(map.get("order").toString(), glasstype,
                     Integer.parseInt(map.get("matching").toString()) // 闇�瑕佽绠� 閰嶇墖ID
-                    ,map.get("order").toString()+"-"+count+"" // 闇�瑕佽绠� 鐜荤拑ID
+                    , map.get("order").toString() + "-" + count + "" // 闇�瑕佽绠� 鐜荤拑ID
                     , Integer.parseInt(map.get("tier").toString()), map.get("films").toString(),
                     Double.parseDouble(map.get("base").toString()), Double.parseDouble(map.get("height").toString()),
                     Double.parseDouble(map.get("thickness").toString()),
-                    Integer.parseInt(map.get("quantity").toString()),groupby.get(tierkey));// 闇�瑕佽绠楁�诲眰鏁�
-            //璁㈠崟鍐呮�诲眰鏁�
-            homeMapper.InsertFlowcard(map.get("order").toString(),OrderFinishedProduct.get(tierkey+"_Sum")); 
+                    Integer.parseInt(map.get("quantity").toString()), groupby.get(tierkey));// 闇�瑕佽绠楁�诲眰鏁�
+            // 璁㈠崟鍐呮�诲眰鏁�
+            homeMapper.InsertFlowcard(map.get("order").toString(), OrderFinishedProduct.get(tierkey + "_Sum"));
             count++;
         }
         Map<String, Object> ResultCode = new HashMap<>();
         ResultCode.put("message", "200");
         return Result.success(ResultCode);
     }
-
-
-
 
 }
diff --git a/springboot-vue3/src/main/resources/application.properties b/springboot-vue3/src/main/resources/application.properties
index 01f54d2..14c402d 100644
--- a/springboot-vue3/src/main/resources/application.properties
+++ b/springboot-vue3/src/main/resources/application.properties
@@ -6,7 +6,7 @@
 #\u6570\u636E\u5E93\u9A71\u52A8
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 #\u6570\u636E\u5E93\u8FDE\u63A5\u5730\u5740
-#spring.datasource.url=jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+# spring.datasource.url=jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
 spring.datasource.url=jdbc:mysql://10.153.19.150:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
 #\u6570\u636E\u5E93\u7528\u6237\u540D
 spring.datasource.username=root
diff --git a/springboot-vue3/src/main/resources/config.properties b/springboot-vue3/src/main/resources/config.properties
index 614d072..001da20 100644
--- a/springboot-vue3/src/main/resources/config.properties
+++ b/springboot-vue3/src/main/resources/config.properties
@@ -225,8 +225,8 @@
 
 #IO鐘舵��
 PlcIO.State=DB10.2.1,DB10.2.2,DB10.2.5,DB10.10.6,DB10.11.1,DB10.11.2,DB10.11.3,DB10.11.4,DB10.11.5,DB10.11.6,DB10.12.1,DB10.12.3,DB10.10.0,DB10.10.2,DB10.10.3,DB10.10.5,DB10.26.6,DB10.30.4,DB10.33.0,DB10.30.5,DB10.33.1,DB10.30.0,DB10.30.1,DB10.30.2,DB10.30.3,DB10.32.4,DB10.32.5,DB10.32.6,DB10.32.7,DB10.32.0,DB10.32.1,DB10.32.2,DB10.32.3,DB10.27.7,DB10.24.6,DB10.38.4,DB10.41.0,DB10.38.5,DB10.41.1,DB10.35.7,DB10.38.0,DB10.38.1,DB10.38.2,DB10.38.3,DB10.40.4,DB10.40.5,DB10.40.6,DB10.40.7,DB10.40.0,DB10.40.1,DB10.40.2,DB10.40.3,DB10.0.0,DB10.0.1,DB10.0.5,DB10.0.2,DB10.0.7,DB10.0.3,DB10.28.0,DB10.36.0,DB10.1.0,DB10.18.2,DB10.18.4,DB10.19.7,DB10.18.3,DB10.18.5,DB10.20.0,DB10.18.6,DB10.19.5,DB10.19.6
-PLCIO.Name=A01Sr.Low-E,A01Sr.dec,A01Sr.Pos,A02Sr.YZero,A02Sr.YH1,A02Sr.YH2,A02Sr.YH3,A02Sr.YH4,A02Sr.LimitTop,A02Sr.LimiBottom,A02Sr.Check,A02Sr.YDec,A02Sr.Xin,A02Sr.XCheck,A02Sr.XDec,A02Sr.XPos,C01Sr.Zero,C01YV1.Bas1,C01YV1.Work1,C01.YV1.Bas2,C01.YV1.Work2,C01.YV2.Bas1,C01.YV2.Bas2,C01.YV2.Bas3,C01.YV2.Bas4,C01.YV2.Work1,C01.YV2.Work2,C01.YV2.Work3,C01.YV2.Work4,C01.YV.Blow1,C01.YV.Blow2,C01.YV.Blow3,C01.YV.Blow4,C01.SR.Limit1,C02.Sr.Zero,C02.YV1.Bas1,C02.YV1.Work1,C02.YV1.Bas2,C02.YV1.Work2,C02.Sr.limit1,C02.YV2.Bas1,C02.YV2.Bas2,C02.YV2.Bas3,C02.YV2.Bas4,C02.YV2.Work1,C02.YV2.Work2,C02.YV2.Work3,C02.YV2.Work4,C02.YV.Blow1,C02.YV.Blow2,C02.YV.Blow3,C02.YV.Blow4,bStart,bStop,bEstop,bReset,bAuto/Manual,bPause,C01.Sr.Limit2,C02.Sr.Limit2,A01.FootControl,B01.Sr.DecLeft,B01.Sr.PosLeft,B01.Sr.SafetyLeft,B01.Sr.DecRight,B01.Sr.PosRight,B01.Sr.SafetyRight,B01.Sr.TurnZero,B01.Sr.TurnLimitTop,B01.Sr.TurnLimitBottom
-
+PlcIO.Name=A01Sr.Low-E,A01Sr.dec,A01Sr.Pos,A02Sr.YZero,A02Sr.YH1,A02Sr.YH2,A02Sr.YH3,A02Sr.YH4,A02Sr.LimitTop,A02Sr.LimiBottom,A02Sr.Check,A02Sr.YDec,A02Sr.Xin,A02Sr.XCheck,A02Sr.XDec,A02Sr.XPos,C01Sr.Zero,C01YV1.Bas1,C01YV1.Work1,C01.YV1.Bas2,C01.YV1.Work2,C01.YV2.Bas1,C01.YV2.Bas2,C01.YV2.Bas3,C01.YV2.Bas4,C01.YV2.Work1,C01.YV2.Work2,C01.YV2.Work3,C01.YV2.Work4,C01.YV.Blow1,C01.YV.Blow2,C01.YV.Blow3,C01.YV.Blow4,C01.SR.Limit1,C02.Sr.Zero,C02.YV1.Bas1,C02.YV1.Work1,C02.YV1.Bas2,C02.YV1.Work2,C02.Sr.limit1,C02.YV2.Bas1,C02.YV2.Bas2,C02.YV2.Bas3,C02.YV2.Bas4,C02.YV2.Work1,C02.YV2.Work2,C02.YV2.Work3,C02.YV2.Work4,C02.YV.Blow1,C02.YV.Blow2,C02.YV.Blow3,C02.YV.Blow4,bStart,bStop,bEstop,bReset,bAuto/Manual,bPause,C01.Sr.Limit2,C02.Sr.Limit2,A01.FootControl,B01.Sr.DecLeft,B01.Sr.PosLeft,B01.Sr.SafetyLeft,B01.Sr.DecRight,B01.Sr.PosRight,B01.Sr.SafetyRight,B01.Sr.TurnZero,B01.Sr.TurnLimitTop,B01.Sr.TurnLimitBottom
+PlcIo.Name1=LOW-E鑶滄娴�,A01鍑忛��,A01鍒颁綅,A02-Y杞村師鐐�,A02-Y杞撮珮搴︽劅搴�1,A02-Y杞撮珮搴︽劅搴�2,A02-Y杞撮珮搴︽劅搴�3,A02-Y杞撮珮搴︽劅搴�4,A02-Y杞翠笂鏋侀檺,A02-Y杞翠笅鏋侀檺,A02-Y杞村杈�,A02-Y杞村噺閫�,A02-X杞翠笂鐗�,A02-X杞村杈�,A02-X杞村噺閫�,A02-X杞村埌浣�,C01鍘熺偣,C01.YV1鍘熺偣浣�1,C01.YV1鍔ㄤ綔浣�1,C01.YV1鍘熺偣浣�2,C01.YV1鍔ㄤ綔浣�2,C01.YV2鍘熺偣浣�1,C01.YV2鍘熺偣浣�2,C01.YV2鍘熺偣浣�3,C01.YV2鍘熺偣浣�4,C01.YV2鍔ㄤ綔浣�1,C01.YV2鍔ㄤ綔浣�2,C01.YV2鍔ㄤ綔浣�3,C01.YV2鍔ㄤ綔浣�4,C01鍚规皵1,C01鍚规皵2,C01鍚规皵3,C01鍚规皵4,C01瀵瑰皠淇濇姢,C02鍘熺偣,C02.YV1鍘熺偣浣�1,C02.YV1鍔ㄤ綔浣�1,C02.YV1鍘熺偣浣�2,C02.YV1鍔ㄤ綔浣�2,C02瀵瑰皠淇濇姢,C02.YV2鍘熺偣浣�1,C02.YV2鍘熺偣浣�2,C02.YV2鍘熺偣浣�3,C02.YV2鍘熺偣浣�4,C02.YV2鍔ㄤ綔浣�1,C02.YV2鍔ㄤ綔浣�2,C02.YV2鍔ㄤ綔浣�3,C02.YV2鍔ㄤ綔浣�4,C02鍚规皵1,C02鍚规皵2,C02鍚规皵3,C02鍚规皵4,鍚姩,鍋滄,鎬ュ仠,澶嶄綅,妯″紡閫夋嫨,鏆傚仠,C01瀵瑰皠淇濇姢2,C02瀵瑰皠淇濇姢2,鑴氳笍寮�鍏�,B01宸﹀噺閫�,B01宸﹀埌浣�,B01宸﹀畨鍏ㄦ娴�,B01鍙冲噺閫�,B01鍙冲埌浣�,B01鍙冲畨鍏ㄦ娴�,B01
 #A01鍙傛暟
 PlcA01.param=DB10.1664,DB10.1668,DB10.1672,DB10.1676,DB10.1680
 #A01鎸夐挳

--
Gitblit v1.8.0