From 052305ad64458243dada621e526d5a3080a34c67 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期三, 13 十二月 2023 09:27:02 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 springboot-vue3/src/main/resources/config.properties                                             |   62 
 CanadaMes-ui/src/views/Electrical/Positioning2.vue                                               |   12 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java                |  154 +-
 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java              |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/S7control.java                    |   10 
 CanadaMes-ui/src/views/Electrical/Parameter2.vue                                                 |  803 ++++++-----
 springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java                 |  151 -
 springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java            |   30 
 CanadaMes-ui/src/configuration/AutomaticParameterSetting.json                                    |  160 ++
 CanadaMes-ui/src/views/Electrical/Positioning1.vue                                               |  313 ++-
 CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue                                  |   78 
 springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java |  305 +++-
 springboot-vue3/src/main/java/com/example/springboot/service/impl/RolePermissionServiceImpl.java |    8 
 CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue                                         |  149 +
 springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java        |   30 
 CanadaMes-ui/src/configuration/ManualJog.json                                                    |  226 +-
 CanadaMes-ui/src/configuration/Positioning1.json                                                 |  109 +
 CanadaMes-ui/src/views/Electrical/Servomanual.vue                                                |   12 
 CanadaMes-ui/src/views/Electrical/ManualonePosition.vue                                          |  252 ++-
 CanadaMes-ui/public/index.html                                                                   |    2 
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java                 |   53 
 springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java               |  149 +-
 springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java            |    2 
 springboot-vue3/src/main/resources/sql/canadames.sql                                             |  527 ++++++-
 CanadaMes-ui/src/lang/locales/en-US.json                                                         |   76 
 CanadaMes-ui/src/views/Electrical/ManualJog.vue                                                  |   16 
 CanadaMes-ui/src/views/Electrical/Parameter1.vue                                                 |    8 
 CanadaMes-ui/src/views/Electrical/ServoManualone.vue                                             |  144 +
 springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java         |   62 
 29 files changed, 2,434 insertions(+), 1,473 deletions(-)

diff --git a/CanadaMes-ui/public/index.html b/CanadaMes-ui/public/index.html
index 07e4763..d406ff3 100644
--- a/CanadaMes-ui/public/index.html
+++ b/CanadaMes-ui/public/index.html
@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>2.ico">
-    <title>鍖楃幓mes绯荤粺</title>
+    <title>NorthGlass-MES-System</title>
   </head>
   <body>
     <noscript>
diff --git a/CanadaMes-ui/src/configuration/AutomaticParameterSetting.json b/CanadaMes-ui/src/configuration/AutomaticParameterSetting.json
index 6936061..87ec239 100644
--- a/CanadaMes-ui/src/configuration/AutomaticParameterSetting.json
+++ b/CanadaMes-ui/src/configuration/AutomaticParameterSetting.json
@@ -110,5 +110,163 @@
       "type": "0",
       "value": ""
     }
-  ]
+  ],
+  [
+    {
+        "title": {
+          "name": "D01~D06杈撻��"
+          
+        }
+      },
+  {
+    "name": "鏈�楂橀�熷害",
+    "read": 33,
+    "sending": 0,
+    "type": "0",
+    "unit": "m/min",
+    "count":3,
+    "value":0
+  },
+  {
+    "name": "楂橀�熺嚎閫熷害",
+    "read": 11,
+    "sending": 0,
+    "type": "0",
+    "unit": "m/min",
+    "value":0
+  },
+  {
+    "name": "浣庨�熺嚎閫熷害",
+    "read": 11,
+    "sending": 0,
+    "type": "0",
+    "unit": "m/min",
+    "value":0
+  },
+  {
+    "name": "鎵嬪姩閫熷害",
+    "read": 22,
+    "sending": 0,
+    "type": "0",
+    "unit": "m/min",
+    "value":0
+  }
+  
+ 
+],
+
+[
+  {
+      "title": {
+        "name": "A01~A02杈撻��"
+        
+      }
+    },
+{
+  "name": "鏈�楂橀�熷害",
+  "read": 33,
+  "sending": 0,
+  "type": "0",
+  "unit": "m/min",
+  "count":3,
+  "value":0
+},
+{
+  "name": "楂橀�熺嚎閫熷害",
+  "read": 11,
+  "sending": 0,
+  "unit": "m/min",
+  "type": "0",
+  "value":0
+},
+{
+  "name": "浣庨�熺嚎閫熷害",
+  "read": 11,
+  "sending": 0,
+  "unit": "m/min",
+  "type": "0",
+  "value":0
+},
+{
+  "name": "鎵嬪姩閫熷害",
+  "read": 22,
+  "sending": 0,
+  "unit": "m/min",
+  "type": "0",
+  "value":0
+}
+
+
+],[
+{
+    "title": {
+      "name": "B01~B02杈撻��"
+      
+    }
+  },
+{
+"name": "鏈�楂橀�熷害",
+"read": 33,
+"sending": 0,
+"type": "0",
+"unit": "m/min",
+"count":3,
+"value":0
+},
+{
+"name": "楂橀�熺嚎閫熷害",
+"read": 11,
+"sending": 0,
+"type": "0",
+"unit": "m/min",
+"value":0
+},
+{
+"name": "浣庨�熺嚎閫熷害",
+"read": 11,
+"sending": 0,
+"type": "0",
+"unit": "m/min",
+"value":0
+},
+{
+"name": "鎵嬪姩閫熷害",
+"read": 22,
+"sending": 0,
+"type": "0",
+"unit": "m/min",
+"value":0
+}
+
+
+]
+,[
+
+{
+"name": "缈昏浆鐐瑰姩閫熷害",
+"read": 33,
+"sending": 0,
+"type": "0",
+"unit": "mm/S",
+
+"count":3,
+"value":0
+}
+
+
+],
+[
+
+
+{
+"name": "灏忚溅鐐瑰姩閫熷害",
+"read": 11,
+"sending": 0,
+"unit": "mm/S",
+"type": "0",
+"value":0
+}
+
+
+]
 ]
\ No newline at end of file
diff --git a/CanadaMes-ui/src/configuration/ManualJog.json b/CanadaMes-ui/src/configuration/ManualJog.json
index 1930afc..36a392a 100644
--- a/CanadaMes-ui/src/configuration/ManualJog.json
+++ b/CanadaMes-ui/src/configuration/ManualJog.json
@@ -65,7 +65,83 @@
     },
     {
       "button": {
+        "name": "A01杈撻�佸弽鍚�",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 1
+      },
+      "type": "3"
+    },
+    
+    {
+      "button": {
+        "name": "A01琛岃蛋鐐瑰姩",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 0
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "A01缈昏浆",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 1
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "A01娉ㄧ數娉�",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 0
+      },
+      "type": "3"
+    },
+    {
+      "button": {
         "name": "A02杈撻�佹鍚�",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 0
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "A02杈撻�佸弽鍚�",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 1
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "A02琛岃蛋鐐瑰姩",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 0
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "A02缈昏浆",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 1
+      },
+      "type": "3"
+    },
+ 
+   
+
+    {
+      "button": {
+        "name": "A02娉ㄧ數娉�",
         "value": 0,
         "address": "DB10.0",
         "state": 0
@@ -83,51 +159,6 @@
     },
     {
       "button": {
-        "name": "B02杈撻��",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A01缈昏浆",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A02缈昏浆",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A01琛岃蛋鐐瑰姩",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A02琛岃蛋鐐瑰姩",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
-      },
-      "type": "3"
-    },
-    {
-      "button": {
         "name": "B01琛岃蛋鐐瑰姩",
         "value": 0,
         "address": "DB10.0",
@@ -135,6 +166,46 @@
       },
       "type": "3"
     },
+    
+    {
+      "button": {
+        "name": "B01缈昏浆姘旂几",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 0
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "B01鍗囬檷姘旂几",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 0
+      },
+      "type": "3"
+    }, {
+      "button": {
+        "name": "B01鍚规皵",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 1
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "B02杈撻��",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 1
+      },
+      "type": "3"
+    },
+    
+   
+   
+    
     {
       "button": {
         "name": "B02琛岃蛋鐐瑰姩",
@@ -170,69 +241,8 @@
         "state": 1
       },
       "type": "3"
-    },
-    {
-      "button": {
-        "name": "B01缈昏浆姘旂几",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "B01鍗囬檷姘旂几",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "B01鍚规皵",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A01杈撻�佸弽鍚�",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A02杈撻�佸弽鍚�",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A01娉ㄧ數娉�",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A02娉ㄧ數娉�",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
-      },
-      "type": "3"
     }
+   
+   
   ]
 ]
\ No newline at end of file
diff --git a/CanadaMes-ui/src/configuration/Positioning1.json b/CanadaMes-ui/src/configuration/Positioning1.json
index b0d9e54..0a4f289 100644
--- a/CanadaMes-ui/src/configuration/Positioning1.json
+++ b/CanadaMes-ui/src/configuration/Positioning1.json
@@ -216,7 +216,114 @@
      
       
      
-    ]
+    ],
+    [
+      {
+          "title": {
+            "name": "B01鏍间綅缃瀹�"
+            
+          }, "type": "1"
+        },
+    {
+      "name": "1#鏍煎湴鍧�",
+      "read": 33,
+      "sending": 0,
+      "type": "0",
+      "unit": "mm",
+      "address":"DB100.0",
+      "count":3,
+      "value":"0"
+    },
+    {
+      "name": "22#鏍煎湴鍧�",
+      "read": 11,
+      "sending": 0,
+      "unit": "mm",
+      "type": "0"
+      ,
+      "value":"0"
+    },
+    {
+      "name": "43#鏍煎湴鍧�",
+      "read": 22,
+      "sending": 0,
+      "unit": "mm",
+      "type": "0",
+      "value":"0"
+    },
+    {
+      "name": "64#鏍煎湴鍧�",
+      "read": 22,
+      "sending": 0,
+      "unit": "mm",
+      "type": "0",
+      "value":"0"
+    },
+    {
+      "name": "85#鏍煎湴鍧�",
+      "read": 22,
+      "sending": 0,
+      "unit": "mm",
+      "type": "0",
+      "value":"0"
+    }
+   
+    
+   
+  ],
+
+  [
+      {
+          "title": {
+            "name": "B02浣嶇疆璁惧畾"
+            
+          }, "type": "1"
+        },
+        {
+          "name": "106#鏍煎湴鍧�",
+          "read": 22,
+          "sending": 0,
+          "unit": "mm",
+          "type": "0",
+          "value":"0"
+        },
+        {
+          "name": "127#鏍煎湴鍧�",
+          "read": 22,
+          "sending": 0,
+          "unit": "mm",
+          "type": "0",
+          "value":"0"
+        },
+        {
+          "name": "148#鏍煎湴鍧�",
+          "read": 22,
+          "sending": 0,
+          "unit": "mm",
+          "type": "0",
+          "value":"0"
+        },
+        {
+          "name": "169#鏍煎湴鍧�",
+          "read": 22,
+          "sending": 0,
+          "unit": "mm",
+          "type": "0",
+          "value":"0"
+        },
+        {
+          "name": "190#鏍煎湴鍧�",
+          "read": 22,
+          "sending": 0,
+          "unit": "mm",
+          "type": "0",
+          "value":"0"
+        }
+       
+   
+    
+   
+  ]
 
    
     
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index 3cf47d1..a315b89 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -325,13 +325,7 @@
   "Unable to find whether the aluminum frame is flipped or not":"Unable to find whether the aluminum frame is flipped or not",
   "You do not have this permission":"You do not have this permission",
   "This glass is already in the Queue":"This glass is already in the Queue",
-  "Complete":"Complete",
-  "Not Allow":"Not Allow",
-  "Completed":"Completed",
-  "Waiting":"Waiting",
-  "Deleted":"Deleted",
-  "Glass State":"Glass State",
-  "Absent":"Absent",
+  "complete":"complete",
     "ServoManualone": {
       "A01 鎵�鍦ㄦ牸瀛�": "A01 Current Grid",
       "鏁伴噺": "Quantity",
@@ -359,15 +353,7 @@
     },
     "langParameter1": {
 
-      "A01~A02杈撻��": "A01~A02 Conveying",
-      "B01~B02杈撻��": "B01~B02 Conveying",
-      "D01~D06杈撻��": "D01~D06 Conveying",
-      "缈昏浆鐐瑰姩閫熷害": "Flip Jog Speed",
-      "灏忚溅鐐瑰姩閫熷害": "Cart Jog Speed",
-      "鏈�楂橀�熷害": "Max Speed",
-      "楂橀�熺嚎閫熷害": "High-Speed Line Speed",
-      "浣庨�熺嚎閫熷害": "Low-Speed Line Speed",
-      "鎵嬪姩閫熷害": "Manual Speed"
+    
       },
     
         "langParameter2": {
@@ -422,26 +408,27 @@
             "澶嶄綅": "Reset",
             "鏈洖闆�": "NotZero",
             "鍥為浂": "Zero",
-            "鐩爣鏍煎瓙": "Target Grid"
+            "鐩爣鏍煎瓙": "Target Grid",
+            "鏍煎瓙闂磋窛": "GridSpacing",
+            "瀛樼墖鎺ョ墖鍦板潃": "StorageReceivingAddress",
+            "鍑虹墖鎺ョ墖鍦板潃": "OutgoingReceivingAddress",
+            "瀛樼墖鏍间綅缃瀹�": "StorageGridPositionSetting",
+            "1#鏍煎湴鍧�": "grid address1# ",
+            "22#鏍煎湴鍧�": "grid address22#",
+            "43#鏍煎湴鍧�": "grid address43#",
+            "64#鏍煎湴鍧�": "grid address64#",
+            "85#鏍煎湴鍧�": "grid address85#",
+            "106#鏍煎湴鍧�": "grid address106#",
+            "127#鏍煎湴鍧�": "grid address127#",
+            "148#鏍煎湴鍧�": "grid address148#",
+            "169#鏍煎湴鍧�": "grid address169#",
+            "190#鏍煎湴鍧�": "grid address190#",
+            "鍑虹墖鏍间綅缃瀹�": "OutgoingGridPositionSetting",
+            "B01鏍间綅缃瀹�":"B01PositionSetting",
+            "B02浣嶇疆璁惧畾":"B02PositionSetting"
             },
             "langPositioning2": {
-              "鏍煎瓙闂磋窛": "GridSpacing",
-              "瀛樼墖鎺ョ墖鍦板潃": "StorageReceivingAddress",
-              "鍑虹墖鎺ョ墖鍦板潃": "OutgoingReceivingAddress",
-              "瀛樼墖鏍间綅缃瀹�": "StorageGridPositionSetting",
-              "1#鏍煎湴鍧�": "grid address1# ",
-              "22#鏍煎湴鍧�": "grid address22#",
-              "43#鏍煎湴鍧�": "grid address43#",
-              "64#鏍煎湴鍧�": "grid address64#",
-              "85#鏍煎湴鍧�": "grid address85#",
-              "106#鏍煎湴鍧�": "grid address106#",
-              "127#鏍煎湴鍧�": "grid address127#",
-              "148#鏍煎湴鍧�": "grid address148#",
-              "169#鏍煎湴鍧�": "grid address169#",
-              "190#鏍煎湴鍧�": "grid address190#",
-              "鍑虹墖鏍间綅缃瀹�": "OutgoingGridPositionSetting",
-              "B01鏍间綅缃瀹�":"B01PositionSetting",
-              "B02浣嶇疆璁惧畾":"B02PositionSetting"
+             
               },  "ManualonePositionlang": {
                 "A01鎵嬪姩鏍煎瓙": "A01 Target grid(Manual)",
                 "A01瀹氫綅閫熷害": "A01 TRAVEL POS Velocity manual",
@@ -459,7 +446,7 @@
                 "B01褰撳墠鏍煎瓙": "B01 Current Grid",
                 "B01鍚姩": "B01 Start",
                 "澶嶄綅": "Reset",
-                "鍥為浂": "Zero",
+                "鍥為浂": "Home",
                 "鏈洖闆�": "NotZero",
                 "B02鎵嬪姩鏍煎瓙": "B02 Target grid(Manual)",
                 "B02瀹氫綅閫熷害": "B02 TRAVEL POS Velocity manual",
@@ -479,14 +466,14 @@
                 "鏁呴殰": "Fault",
                 "澶嶄綅": "Reset",
                 "鏈洖闆�": "NotZero",
-                "鍥為浂": "Zero",
+                "鍥為浂": "Home",
                 "A02鎵嬪姩浣嶇疆": "A02 turn Target Angle(Manual)",
                 "A02瀹氫綅閫熷害": "A02 TURN POS Velocity manual",
                 "A02缈昏浆瀹炴椂浣嶇疆": "A02 turn Actual angle",
                 "A02缈昏浆鍚姩": "A02 SERVE TURN",
-                "A02澶嶄綅": "Reset",
-                "鏈洖闆�": "NotZero",
-                "鍥為浂": "Zero"
+                "A02澶嶄綅": "Reset"
+            
+               
               },
               "AutomaticParameterSettinglang": {
                 "A01琛岃蛋楂橀�熻搴�": "A01 turn Angle1",
@@ -499,7 +486,16 @@
                 "A02绗煎瓙瑙掑害": "A02 turn Angle4",
                 "澶ц溅鑷姩閫熷害": "A01 A02 TRAVEL POS Velocity AUTO",
                 "灏忚溅鑷姩閫熷害": "B01 B02 TRAVEL POS Velocity AUTO",
-                "鑷姩缈昏浆閫熷害": "A01 A02 TURN POS Velocity AUTO"
+                "鑷姩缈昏浆閫熷害": "A01 A02 TURN POS Velocity AUTO",
+                "A01~A02杈撻��": "A01~A02 Conveying",
+                "B01~B02杈撻��": "B01~B02 Conveying",
+                "D01~D06杈撻��": "D01~D06 Conveying",
+                "缈昏浆鐐瑰姩閫熷害": "Flip Jog Speed",
+                "灏忚溅鐐瑰姩閫熷害": "Cart Jog Speed",
+                "鏈�楂橀�熷害": "Max Speed",
+                "楂橀�熺嚎閫熷害": "High-Speed Line Speed",
+                "浣庨�熺嚎閫熷害": "Low-Speed Line Speed",
+                "鎵嬪姩閫熷害": "Manual Speed"
               },
               "ManualJoglang": {
                 "D01杈撻��": "D01 VFD conveyor",
diff --git a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
index e5a3153..88ca078 100644
--- a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
+++ b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -30,37 +30,43 @@
 <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
         $t('Servomanualone')
       }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
      
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Address parameter settings')
       }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
+      }}</router-link> -->
      
-      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
-      }}</router-link>
+      }}</router-link> -->
       <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
         $t('Speed parameter settings')
       }}</router-link>
       
     </el-breadcrumb>
 
-    <el-row :gutter="20">
-      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
-        <el-card class="json-block" style="width:585px;">
-          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
-            <div class="item-row" v-if="item.type === '0'">
-              <span class="name" v-if="item.type === '0'" style="width:300px;">{{ item.name }}</span>
-              <el-input style="width:250px;" v-if="item.type === '0'" v-model="item.value" class="input-box"
-                @keyup.enter.native="submitDataToBackend"></el-input>
-                <span v-if="item.unit" :name="item.unit" >{{ item.unit }}</span>
-                
+    <el-row :gutter="18" class="card">
+      <el-col :span="7" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
+        <el-card class="json-block">
+          <div class="button-row" style="display: flex; justify-content: space-between;">
+            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
+              <span v-if="item.title" :name="item.title.name" class="action-button">{{ item.title.name }}</span>
             </div>
           </div>
+          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
+            <div class="item-row">
+              <span class="name" style="width:250px;">{{ item.name }}</span>
+              <el-input v-if="item.type === '0'" v-model="item.value" class="input-box"
+                @keyup.enter.native="submitDataToBackend"></el-input>
+                <span v-if="item.unit" :name="item.unit" >{{ item.unit }}</span>
+
+            </div>
+          </div>
+
         </el-card>
       </el-col>
     </el-row>
@@ -166,13 +172,17 @@
           // console.log(obj);
           const handleMouseMove = throttle(function (event) {
 
-            const inputBox = document.querySelectorAll('.el-card__body');
+            const inputBox = document.querySelectorAll('.input-box');
             const target = event.target;
             if (inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
               const parms = obj.params;
               const fanzhuan = obj.fanzhuan;
               const xiaoche = obj.xiaoche;
               const dache = obj.dache1;
+
+              const parms2 = obj.params2;
+              const fanzhuan2 = obj.fanzhuan2;
+              const xiaoche2 = obj.xiaoche2;
 
               // console.log('parms:', parms);
               // console.log('fanzhuan:', fanzhuan);
@@ -202,8 +212,40 @@
               if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) {
                 jsonData2[2][0]['value'] = dache[0][0];
               }
+           
+
+
+
+
+            let index2 = 0;
+              for (let i =5; i < jsonData2.length; i++) {
+                let arr = jsonData2[i];
+
+                for (let j = 0; j < arr.length; j++) {
+                  let obj2 = arr[j];
+                  if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) {
+                    if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) {
+                      obj2.value = parms2[0][index2];
+                      index2++;
+                    }
+                  }
+                }
+              }
+              if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) {
+                jsonData2[8][0]['value'] = fanzhuan2[0][0];
+              }
+              if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) {
+                jsonData2[9][0]['value'] = xiaoche2[0][0];
+              }
+
             }
-          }, 200);
+
+
+
+
+
+
+          }, 50);
 
           document.addEventListener('mouseover', handleMouseMove);
         };
diff --git a/CanadaMes-ui/src/views/Electrical/ManualJog.vue b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
index eb10eca..6cfa63b 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualJog.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
@@ -30,27 +30,27 @@
 <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
         $t('Servomanualone')
       }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
      
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Address parameter settings')
       }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
+      }}</router-link> -->
      
-      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
-      }}</router-link>
+      }}</router-link> -->
       <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
         $t('Speed parameter settings')
       }}</router-link>
       
     </el-breadcrumb>
 
-    <el-row :gutter="40" style="width:100%;">
-      <el-col :span="18" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
+    <el-row :gutter="40" >
+      <el-col :span="16" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
         <el-card class="json-block" style="width:100%;">
 
           <div class="button-row" style="display: flex; justify-content: flex-start;flex-wrap:wrap;">
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
index 8f9607c..3a20c2c 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -29,19 +29,19 @@
 <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
         $t('Servomanualone')
       }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
      
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Address parameter settings')
       }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
+      }}</router-link> -->
      
-      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
-      }}</router-link>
+      }}</router-link> -->
       <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
         $t('Speed parameter settings')
       }}</router-link>
@@ -54,7 +54,16 @@
           <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
             <div class="item-row">
               <span class="name" style="width:300px;">{{ item.name }}</span>
-              <el-input style="width:250px;" v-if="item.state != 0 && item.type === '0'" v-model="item.value"
+
+                <el-input style="width:250px;"  v-if="item.state != 0 && item.type === '0' && groupIndex === 0" v-model="item.value"  @keyup.enter.native="A01start"
+                class="input-box"></el-input>
+                <el-input style="width:250px;"  v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1" v-model="item.value"  @keyup.enter.native="A02start"
+                class="input-box"></el-input>
+                <el-input style="width:250px;"  v-else-if="item.state != 0 && item.type === '0' && groupIndex === 2" v-model="item.value"  @keyup.enter.native="B01start"
+                class="input-box"></el-input>
+                <el-input style="width:250px;"  v-else-if="item.state != 0 && item.type === '0' && groupIndex === 3" v-model="item.value"  @keyup.enter.native="B02start"
+                class="input-box"></el-input>
+                <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0'" v-model="item.value"
                 class="input-box"></el-input>
             </div>
           </div>
@@ -75,14 +84,22 @@
         </el-card>
       </el-col>
     </el-row>
+ <div class="container">
+ 
+    <component :is="embeddedComponent"></component>
+  </div> 
+
     <!-- <el-button @click="submitDataToBackend">鎻愪氦鏁版嵁鍒板悗绔�</el-button> -->
   </div>
+
 </template>
+
 
 <script>
 import LanguageMixin from '../../lang/LanguageMixin'
 import data from '../../configuration/Manualoneposition'
 import { throttle } from 'lodash';
+import ManualonePosition2 from './ManualonePosition2.vue';
 let socket;
 export default {
   name: "ManualonePosition",
@@ -91,6 +108,7 @@
     return {
       jsonData: data,
       language: this.$i18n.locale,
+      embeddedComponent: ManualonePosition2,
 
       // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
     }
@@ -126,20 +144,114 @@
 
 
     },
+    A01start(){
+
+      const data = [];
+
+for (let i = 0; i < 1; i++) {
+  const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+    return { value: item.value };
+  });
+
+  const values = inputData.map(item => item.value);
+
+  data.push(values);
+}
+data.push([], [], [],[],[],[]);
+
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
+    },
+    A02start(){
+      const data = [];
+
+for (let i = 1; i < 2; i++) {
+  const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+    return { value: item.value };
+  });
+
+  const values = inputData.map(item => item.value);
+  data.unshift([]);
+  data.push(values);
+}
+data.push([], [], [],[],[]);
+
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
+    },
+    B01start(){
+      const data = [];
+
+for (let i = 2; i < 3; i++) {
+  const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+    return { value: item.value };
+  });
+
+  const values = inputData.map(item => item.value);
+  data.unshift([], []);
+  data.push(values);
+}
+//data.unshift([]);
+
+data.push([], [], [],[]);
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
+    },
+    B02start(){
+      const data = [];
+
+for (let i = 3; i < 4; i++) {
+  const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+    return { value: item.value };
+  });
+
+  const values = inputData.map(item => item.value);
+  data.unshift([], [], []);
+  data.push(values);
+}
+
+data.push([], [],[]);
+
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
+    },
     submitDataToBackend (currentButtonName) {
       if (currentButtonName === 'A01鍚姩' || currentButtonName === 'A01 Start') {
         const data = [];
 
-        for (let i = 0; i < 1; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
-
-          const values = inputData.map(item => item.value);
+  const values = [this.jsonData[0][3].button.value]
 
           data.push(values);
-        }
-        data.push([], [], [],[],[],[]);
+       
+        data.unshift([], [], [],[],[],[],[]);
 
 
 
@@ -155,77 +267,60 @@
       if (currentButtonName === 'A02鍚姩' || currentButtonName === 'A02 Start') {
         const data = [];
 
-        for (let i = 1; i < 2; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
+const values = [this.jsonData[1][3].button.value]
 
-          const values = inputData.map(item => item.value);
-          data.unshift([]);
-          data.push(values);
-        }
-        data.push([], [], [],[],[]);
+        data.push(values);
+     
+      data.unshift([], [], [],[],[],[],[],[]);
 
 
 
-        const jsonObject = { data };
+      const jsonObject = { data };
 
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
+      // 鎻愪氦鏁版嵁鍒板悗绔�
+      const jsonString = JSON.stringify(jsonObject);
+      console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+      socket?.send(jsonString);
 
       }
 
       if (currentButtonName === 'B01鍚姩' || currentButtonName === 'B01 Start') {
         const data = [];
 
-        for (let i = 2; i < 3; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
+const values = [this.jsonData[2][3].button.value]
 
-          const values = inputData.map(item => item.value);
-          data.unshift([], []);
-          data.push(values);
-        }
-        //data.unshift([]);
-
-        data.push([], [], [],[]);
+        data.push(values);
+     
+      data.unshift([], [], [],[],[],[],[],[],[]);
 
 
-        const jsonObject = { data };
 
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
+      const jsonObject = { data };
+
+      // 鎻愪氦鏁版嵁鍒板悗绔�
+      const jsonString = JSON.stringify(jsonObject);
+      console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+      socket?.send(jsonString);
 
       }
 
       if (currentButtonName === 'B02鍚姩' || currentButtonName === 'B02 Start') {
         const data = [];
 
-        for (let i = 3; i < 4; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
+const values = [this.jsonData[3][3].button.value]
 
-          const values = inputData.map(item => item.value);
-          data.unshift([], [], []);
-          data.push(values);
-        }
-
-        data.push([], [],[]);
+        data.push(values);
+     
+      data.unshift([], [], [],[],[],[],[],[],[],[]);
 
 
 
-        const jsonObject = { data };
+      const jsonObject = { data };
 
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
+      // 鎻愪氦鏁版嵁鍒板悗绔�
+      const jsonString = JSON.stringify(jsonObject);
+      console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+      socket?.send(jsonString);
 
       }
 
@@ -335,7 +430,7 @@
           }
 
           let obj = JSON.parse(msg.data);
-          // console.log(obj);
+        // console.log(obj);
           const jsonData2 = this.jsonData;
           const weihuiling = obj.weihuiling;
           const handleMouseMove = throttle(function (event) {
@@ -353,24 +448,6 @@
 
              
 
-              //鏀瑰彉鐘舵�佹枃瀛�
-// for (let i = 2; i < jsonData2.length; i++) {
-//   let arr6 = jsonData2[i];
-//   for (let j = 2; j < arr6.length; j++) {
-//     let obj6 = arr6[j];
-//     if (obj6.button&& (obj6.button.name === "鏈洖闆�" || obj6.button.name === "NotZero")) {
-//       if ( obj6.button.name.includes("鏈�")&& this.language==="zh-CN") {
-//         console.log(obj6.button.name)
-//       obj6.button.name =obj6.button.name.replace("鏈�","宸�") ;
-//     }
-//     if ( obj6.button.name.includes("NotZero")) {
-//       obj6.button.name =obj6.button.name.replace("NotZero","Zero") ;
-//     }
-//   }
-
-     
-// }
-// }
 
 
 
@@ -380,6 +457,8 @@
 
           document.addEventListener('mouseover', handleMouseMove);
 
+
+if(obj.zuhe1){
 
 
            //鏇存柊瀹炴椂浣嶇疆
@@ -431,7 +510,7 @@
                 for (let j = 2; j < arr2.length; j++) {
                   let obj3 = arr2[j];
                   if (obj3.button) {
-                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "NotZero")) {
+                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "NotZero" || obj3.button.name === "宸插洖闆�" || obj3.button.name === "Zero")) {
                       obj3.button.value = weihuiling[0][i];
                       //  console.log(obj3.button.value)
                     }
@@ -450,11 +529,19 @@
   for (let j = 0; j < arr.length; j++) {
     let obj = arr[j];
     if (obj.button && obj.button.value===1) {
-      if ( obj.button.name.includes("鏈洖闆�")&& this.language==="zh-CN") {
+      if ( obj.button.name==="鏈洖闆�" && this.language==="zh-CN") {
       obj.button.name =obj.button.name.replace("鏈洖闆�","宸插洖闆�") ;
     }
-    if ( obj.button.name.includes("NotZero")) {
+    if ( obj.button.name==="NotZero") {
       obj.button.name =obj.button.name.replace("NotZero","Zero") ;
+    }
+  }
+  if (obj.button && obj.button.value===0) {
+      if ( obj.button.name==="宸插洖闆�"&& this.language==="zh-CN") {
+      obj.button.name =obj.button.name.replace("宸插洖闆�","鏈洖闆�") ;
+    }
+    if ( obj.button.name==="Zero") {
+      obj.button.name =obj.button.name.replace("Zero","NotZero") ;
     }
   }
 
@@ -462,6 +549,7 @@
 }
 }
 
+}
 
 
         };
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
index 8ea33b4..fee9ef8 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -1,14 +1,7 @@
 <template>
   <div class="app">
-    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
-      }}</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
-      }}</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
-      }}</router-link>
-      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link> -->
+    <!-- <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
+   
       <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">{{
@@ -27,18 +20,12 @@
         $t('ManualonePosition')
       }}</router-link>
 
-<router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Servomanualone')
-      }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
+
      
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Address parameter settings')
       }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Positioning2')
-      }}</router-link>
+   
      
       <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
@@ -47,7 +34,7 @@
         $t('Speed parameter settings')
       }}</router-link>
       
-    </el-breadcrumb>
+    </el-breadcrumb> -->
 
     <el-row :gutter="20">
       <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
@@ -55,7 +42,12 @@
           <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
             <div class="item-row">
               <span class="name" style="width:300px;">{{ item.name }}</span>
-              <el-input style="width:250px;" v-if="item.state != 0 && item.type === '0'" v-model="item.value"
+             
+                <el-input style="width:250px;"  v-if="item.state != 0 && item.type === '0' && groupIndex === 0" v-model="item.value"  @keyup.enter.native="A01start"
+                class="input-box"></el-input>
+                <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1" v-model="item.value" @keyup.enter.native="A02start"
+                class="input-box"></el-input>
+                <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0'" v-model="item.value"
                 class="input-box"></el-input>
             </div>
           </div>
@@ -125,54 +117,95 @@
 
 
     },
+
+
+    A01start(){
+      const data = [];
+
+for (let i = 0; i < 1; i++) {
+  const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+    return { value: item.value };
+  });
+
+  const values = inputData.map(item => item.value);
+
+  data.push(values);
+}
+data.push([], [], [],[]);
+
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
+
+    },
+    A02start(){
+
+      const data = [];
+
+for (let i = 1; i < 2; i++) {
+  const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+    return { value: item.value };
+  });
+
+  const values = inputData.map(item => item.value);
+  data.unshift([]);
+  data.push(values);
+}
+data.push([], [], []);
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+    },
     //鎻愪氦鏂规硶
     submitDataToBackend (currentButtonName) {
       if (currentButtonName === 'A01缈昏浆鍚姩' || currentButtonName === 'A01 SERVE TURN') {
         const data = [];
 
-        for (let i = 0; i < 1; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
+const values = [this.jsonData[0][3].button.value]
 
-          const values = inputData.map(item => item.value);
-
-          data.push(values);
-        }
-        data.push([], [], [],[]);
+        data.push(values);
+     
+      data.unshift([], [], [],[],[]);
 
 
 
-        const jsonObject = { data };
+      const jsonObject = { data };
 
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
+      // 鎻愪氦鏁版嵁鍒板悗绔�
+      const jsonString = JSON.stringify(jsonObject);
+      console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+      socket?.send(jsonString);
 
       }
 
       if (currentButtonName === 'A02缈昏浆鍚姩' || currentButtonName === 'A02 SERVE TURN') {
         const data = [];
 
-        for (let i = 1; i < 2; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
+const values = [this.jsonData[0][3].button.value]
 
-          const values = inputData.map(item => item.value);
-          data.unshift([]);
-          data.push(values);
-        }
-        data.push([], [], []);
+        data.push(values);
+     
+      data.unshift([], [], [],[],[],[]);
 
 
-        const jsonObject = { data };
 
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
+      const jsonObject = { data };
+
+      // 鎻愪氦鏁版嵁鍒板悗绔�
+      const jsonString = JSON.stringify(jsonObject);
+      console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+      socket?.send(jsonString);
 
       }
 
@@ -319,6 +352,12 @@
 
           document.addEventListener('mouseover', handleMouseMove);
 
+
+          if(obj.zuhe1){
+
+
+
+         
   // 閬嶅巻guzhang鏁扮粍
   for (let i = 0; i < jsonData2.length; i++) {
                 let arr = jsonData2[i];
@@ -341,7 +380,7 @@
                 for (let j = 0; j < arr2.length; j++) {
                   let obj3 = arr2[j];
                   if (obj3.button) {
-                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "NotZero")) {
+                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "NotZero" || obj3.button.name === "宸插洖闆�" || obj3.button.name === "Zero")) {
                       obj3.button.value = weihuiling[0][i];
                       //  console.log(obj3.button.value)
                     }
@@ -373,11 +412,19 @@
   for (let j = 0; j < arr.length; j++) {
     let obj = arr[j];
     if (obj.button && obj.button.value===1) {
-      if ( obj.button.name.includes("鏈洖闆�")&& this.language==="zh-CN") {
+      if ( obj.button.name==="鏈洖闆�" && this.language==="zh-CN") {
       obj.button.name =obj.button.name.replace("鏈洖闆�","宸插洖闆�") ;
     }
-    if ( obj.button.name.includes("NotZero")) {
+    if ( obj.button.name==="NotZero") {
       obj.button.name =obj.button.name.replace("NotZero","Zero") ;
+    }
+  }
+  if (obj.button && obj.button.value===0) {
+      if ( obj.button.name==="宸插洖闆�"&& this.language==="zh-CN") {
+      obj.button.name =obj.button.name.replace("宸插洖闆�","鏈洖闆�") ;
+    }
+    if ( obj.button.name==="Zero") {
+      obj.button.name =obj.button.name.replace("Zero","NotZero") ;
     }
   }
 
@@ -385,6 +432,8 @@
 }
 }
 
+}
+
         };
 
 
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter1.vue b/CanadaMes-ui/src/views/Electrical/Parameter1.vue
index 4477dbc..8cdd45d 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter1.vue
@@ -36,13 +36,13 @@
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Address parameter settings')
       }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
+      }}</router-link> -->
      
-      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
-      }}</router-link>
+      }}</router-link> -->
       <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
         $t('Speed parameter settings')
       }}</router-link>
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter2.vue b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
index 1a051ce..12173e8 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
@@ -1,232 +1,337 @@
 <template>
-    <div class="app">
+  <div class="app">
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-        <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
-        }}</router-link>
-        <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
-        }}</router-link>
-        <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
-        }}</router-link>
-        <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      <router-link
+        to="/Electrical/alarm"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Alarm") }}</router-link
+      >
+      <router-link
+        to="/Electrical/State"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("State") }}</router-link
+      >
+      <router-link
+        to="/Electrical/Action"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Action") }}</router-link
+      >
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
         }}</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>
-      </el-breadcrumb>
-  
-      <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State')
-      }}</router-link>
-      <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>
+      <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
+      >
+    </el-breadcrumb>
 
-<router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Servomanualone')
-      }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
-     
-      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Address parameter settings')
-      }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
+      <router-link
+        to="/Electrical/Parameter2"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Automatic State") }}</router-link
+      >
+      <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
+      >
+
+      <router-link
+        to="/Electrical/Servomanualone"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Servomanualone") }}</router-link
+      >
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
+
+      <router-link
+        to="/Electrical/Positioning1"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Address parameter settings") }}</router-link
+      >
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
-     
+      }}</router-link> -->
+      <!--      
       <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
-      }}</router-link>
-      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Speed parameter settings')
-      }}</router-link>
-      
+      }}</router-link> -->
+      <router-link
+        to="/Electrical/AutomaticParameterSetting"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Speed parameter settings") }}</router-link
+      >
     </el-breadcrumb>
-  
+
     <el-row :gutter="40">
-      <el-col :span="6" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex"   style="margin-bottom: -20px;">
-        <el-card class="json-block"  style="width:300px;margin-bottom: 2px;">
-          <div class="button-row" style="display: flex; justify-content: space-between;">
-            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
-              <span v-if="item.title" :name="item.title.name" class="action-button" >{{ item.title.name }}</span>
-            </div>
-          </div>
-
-          <div class="button-row" style="display: flex; justify-content: space-between;">
-            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
-              <el-button v-if="item.button && language==='en-US'" :name="item.button.name" v-model="item.button.value" class="action-button"
-  @click="updateButtonValue(dataGroup, itemIndex);submitDataToBackend(item.button.name)"
-  :class="{ 'green-button':  (item.button.value === 0  && item.button.name !==  'Clear ID' ) ,'red-button': item.button.value === 2 && (item.button.name !==  'Clear ID' ) ,'yellow-button': item.button.value === 1 && (item.button.name !==  'Clear ID' ),'id': item.button.value === 1 && (item.button.name ==  'Clear ID' ) }">{{ item.button.name }}</el-button>
-           
-
-  <el-button v-if="item.button && language==='zh-CN'" :name="item.button.name" v-model="item.button.value" class="action-button"
-  @click="updateButtonValue(dataGroup, itemIndex);submitDataToBackend(item.button.name)"
-  :class="{ 'green-button':  (item.button.value === 0  && item.button.name !==  '娓呴櫎ID' ) ,'red-button': item.button.value === 2 && (item.button.name !==  '娓呴櫎ID' ) ,'yellow-button': item.button.value === 1 && (item.button.name !==  '娓呴櫎ID' ),'id': item.button.value === 1 && (item.button.name ==  '娓呴櫎ID' ) }">{{ item.button.name }}</el-button>
-
-</div>
-          </div>
-          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
-            <div class="item-row">
-
-              
-              <span class="name" v-if="groupIndex === 12" style="width:250px;">{{ item.name }}</span>
-              <span class="name" v-else style="width:150px;">{{ item.name }}</span>
-      
-              <el-input v-if="item.type === '0'" v-model="item.value" readonly="readonly"     style="width:300px;" class="input-box"></el-input>
-             
-             
-            
-            </div>
-          </div>
+      <el-col
+        :span="6"
+        v-for="(dataGroup, groupIndex) in jsonData"
+        :key="groupIndex"
         
+        style="margin-bottom: -20px;"
+      >
+        <el-card class="json-block" style="width: 300px; margin-bottom: 2px">
+          <div
+            class="button-row"
+            style="display: flex; justify-content: space-between"
+          >
+            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
+              <span
+                v-if="item.title"
+                :name="item.title.name"
+                class="action-button"
+                >{{ item.title.name }}</span
+              >
+            </div>
+          </div>
+
+          <div
+            class="button-row"
+            style="display: flex; justify-content: space-between"
+          >
+            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
+              <el-button
+                v-if="item.button && language === 'en-US'"
+                :name="item.button.name"
+                v-model="item.button.value"
+                class="action-button"
+                @click="
+                  updateButtonValue(dataGroup, itemIndex);
+                  submitDataToBackend(item.button.name);
+                "
+                :class="{
+                  'green-button':
+                    item.button.value === 0 && item.button.name !== 'Clear ID',
+                  'red-button':
+                    item.button.value === 2 && item.button.name !== 'Clear ID',
+                  'yellow-button':
+                    item.button.value === 1 && item.button.name !== 'Clear ID',
+                  id: item.button.value === 1 && item.button.name == 'Clear ID',
+                }"
+                >{{ item.button.name }}</el-button
+              >
+
+              <el-button
+                v-if="item.button && language === 'zh-CN'"
+                :name="item.button.name"
+                v-model="item.button.value"
+                class="action-button"
+                @click="
+                  updateButtonValue(dataGroup, itemIndex);
+                  submitDataToBackend(item.button.name);
+                "
+                :class="{
+                  'green-button':
+                    item.button.value === 0 && item.button.name !== '娓呴櫎ID',
+                  'red-button':
+                    item.button.value === 2 && item.button.name !== '娓呴櫎ID',
+                  'yellow-button':
+                    item.button.value === 1 && item.button.name !== '娓呴櫎ID',
+                  id: item.button.value === 1 && item.button.name == '娓呴櫎ID',
+                }"
+                >{{ item.button.name }}</el-button
+              >
+            </div>
+          </div>
+          <div
+            v-for="(item, itemIndex) in dataGroup"
+            :key="itemIndex"
+            class="item-container"
+          >
+            <div class="item-row">
+              <span
+                class="name"
+                v-if="groupIndex === 12"
+                style="width: 250px"
+                >{{ item.name }}</span
+              >
+              <span class="name" v-else style="width: 150px">{{
+                item.name
+              }}</span>
+
+              <el-input
+                v-if="item.type === '0'"
+                v-model="item.value"
+                readonly="readonly"
+                style="width: 300px"
+                class="input-box"
+              ></el-input>
+            </div>
+          </div>
         </el-card>
       </el-col>
     </el-row>
     <!-- <el-button @click="submitDataToBackend">鎻愪氦鏁版嵁鍒板悗绔�</el-button> -->
   </div>
-  </template>
+</template>
   
   <script>
-  import LanguageMixin from '../../lang/LanguageMixin'
-  import data from '../../configuration/parameter2'
-  // import { throttle } from 'lodash';
-  let socket;
+import LanguageMixin from "../../lang/LanguageMixin";
+import data from "../../configuration/parameter2";
+// import { throttle } from 'lodash';
+let socket;
 
-  // window.onload=function(){
-  //   console.log("44");
-  // }
-  export default {
-    destroyed() {
+// window.onload=function(){
+//   console.log("44");
+// }
+export default {
+  destroyed() {
     socket.close();
   },
   name: "Parameter2",
   mixins: [LanguageMixin],
   data() {
     return {
-      jsonData: data ,
-      inputValue: '',
-      language:this.$i18n.locale,
+      jsonData: data,
+      inputValue: "",
+      language: this.$i18n.locale,
 
       // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
-    }
+    };
   },
- 
-  activated(){
-   
-    this.initWebSocket ();
+
+  activated() {
+    this.initWebSocket();
     this.filteredData();
-   const language = this.$i18n.locale;
-  console.log(language);
-  if (language === 'en-US') {
-    this.replaceChineseWithEnglish();
-  }
-  this.$forceUpdate();
+    const language = this.$i18n.locale;
+    console.log(language);
+    if (language === "en-US") {
+      this.replaceChineseWithEnglish();
+    }
+    this.$forceUpdate();
   },
-  
-  
-    computed: {
 
- 
-},
-
-
+  computed: {},
 
   methods: {
     filteredData() {
-    return this.jsonData.map(item => {
-      const filteredValue = item.map(obj => {
-        if (typeof obj.button !== 'undefined' && typeof obj.button.value !== 'undefined') {
-          obj.button.value = obj.button.value.toString().replace(/[^a-zA-Z0-9]/g, '');
-        } else if (typeof obj.value !== 'undefined') {
-          obj.value = obj.value.toString().replace(/[^a-zA-Z0-9]/g, '');
-        }
-        return obj;
+      return this.jsonData.map((item) => {
+        const filteredValue = item.map((obj) => {
+          if (
+            typeof obj.button !== "undefined" &&
+            typeof obj.button.value !== "undefined"
+          ) {
+            obj.button.value = obj.button.value
+              .toString()
+              .replace(/[^a-zA-Z0-9]/g, "");
+          } else if (typeof obj.value !== "undefined") {
+            obj.value = obj.value.toString().replace(/[^a-zA-Z0-9]/g, "");
+          }
+          return obj;
+        });
+        return filteredValue;
       });
-      return filteredValue;
-    });
-  },
-  
-  updateButtonValue(dataGroup, itemIndex) {
-  if (dataGroup[itemIndex].button.value === 0) {
-    // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
-    this.$set(dataGroup[itemIndex].button, 'value', 1);
-  } else {
-    // 鍚﹀垯灏嗗叾璁句负 0
-    this.$set(dataGroup[itemIndex].button, 'value', 0);
-  }
-},
+    },
+
+    updateButtonValue(dataGroup, itemIndex) {
+      if (dataGroup[itemIndex].button.value === 0) {
+        // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
+        this.$set(dataGroup[itemIndex].button, "value", 1);
+      } else {
+        // 鍚﹀垯灏嗗叾璁句负 0
+        this.$set(dataGroup[itemIndex].button, "value", 0);
+      }
+    },
     submitDataToBackend(currentButtonName) {
+      if (currentButtonName === "娓呴櫎ID" || currentButtonName === "Clear ID") {
+        const data2 = [];
+        const resetButtonValues = this.jsonData
+          .map((item) => {
+            const buttonItem = item.find(
+              (subItem) =>
+                subItem.button &&
+                ["娓呴櫎ID", "Clear ID"].includes(subItem.button.name)
+            );
 
+            return buttonItem ? buttonItem.button.value : null;
+          })
+          .filter((value) => value !== null);
 
+        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+        data2.push(resetButtonValues.flat());
+        data2.push([]);
+        // 鍦� data2 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
 
-  if (currentButtonName === '娓呴櫎ID'  || currentButtonName === 'Clear ID' ) {
-  const data2 = [];
-  const resetButtonValues = this.jsonData.map(item => {
-    const buttonItem = item.find(subItem => subItem.button && ['娓呴櫎ID', 'Clear ID'].includes(subItem.button.name));
+        // 鍒涘缓 jsonObject2 瀵硅薄锛屽苟娣诲姞 data2 灞炴��
+        const jsonObject2 = { data: data2 };
 
-    
-    return buttonItem ? buttonItem.button.value : null;
-  }).filter(value => value !== null);
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString2 = JSON.stringify(jsonObject2);
+        console.log("鎵�鏈塗ype涓�0鐨剉alue:", jsonString2);
+        socket?.send(jsonString2);
+      }
 
-  // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-  data2.push(resetButtonValues.flat());
-  data2.push([]);
-  // 鍦� data2 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
- 
+      if (
+        currentButtonName === "Abort/ResumeTasks" ||
+        currentButtonName === "鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨"
+      ) {
+        const data3 = [];
+        const resetButtonValues3 = [this.jsonData[13][0].button.value];
 
-  // 鍒涘缓 jsonObject2 瀵硅薄锛屽苟娣诲姞 data2 灞炴��
-  const jsonObject2 = { data: data2 };
+        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+        data3.push(resetButtonValues3.flat());
+        data3.unshift([]);
+        // 鍦� data3 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
 
-  // 鎻愪氦鏁版嵁鍒板悗绔�
-  const jsonString2 = JSON.stringify(jsonObject2);
-  console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString2);
-  socket?.send(jsonString2);
- 
- 
-}
+        // 鍒涘缓 jsonObject3 瀵硅薄锛屽苟娣诲姞 data3 灞炴��
+        const jsonObject3 = { data: data3 };
 
-if (currentButtonName === 'Abort/ResumeTasks' || currentButtonName === '鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨') {
-  const data3 = [];
-  const resetButtonValues3 = [this.jsonData[13][0].button.value];
- 
-  // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-  data3.push(resetButtonValues3.flat());
-  data3.unshift([]);
-  // 鍦� data3 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
-  
-
-
-  // 鍒涘缓 jsonObject3 瀵硅薄锛屽苟娣诲姞 data3 灞炴��
-  const jsonObject3 = { data: data3 };
-
-  // 鎻愪氦鏁版嵁鍒板悗绔�
-  const jsonString3 = JSON.stringify(jsonObject3);
-  console.log('鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨:', jsonString3);
-  socket?.send(jsonString3);
-  // setTimeout(()=>
-  //   window.location.reload(),2000
-  // )
-}
-
-
-
-
-
-
-},
-    initWebSocket () {
- 
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString3 = JSON.stringify(jsonObject3);
+        console.log("鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨:", jsonString3);
+        socket?.send(jsonString3);
+        // setTimeout(()=>
+        //   window.location.reload(),2000
+        // )
+      }
+    },
+    initWebSocket() {
       let viewname = "Parameter2";
 
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl =
+          "ws://" +
+          this.$t("ip") +
+          ":8888" +
+          "/springboot-vue3/api/talk/" +
+          viewname;
 
         if (socket != null) {
           socket.close();
@@ -243,156 +348,138 @@
 
         // 鏀跺埌娑堟伅
         socket.onmessage = (msg) => {
-  if (!msg.data) {
-    return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
-  }
+          if (!msg.data) {
+            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+          }
 
-  let obj = JSON.parse(msg.data);
- 
-  const jsonData2 = this.jsonData;
+          let obj = JSON.parse(msg.data);
 
-      const parms = obj.params;
+          const jsonData2 = this.jsonData;
 
-   
-     console.log(obj);
+          const parms = obj.params;
 
+          console.log(obj);
 
+          // const handleMouseMove = throttle(function(event) {
+          // const inputBox = document.querySelectorAll('.id');
+          // const target = event.target;
 
-  // const handleMouseMove = throttle(function(event) {
-  // const inputBox = document.querySelectorAll('.id');
-  // const target = event.target;
+          // if (parms && inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
+          //鎬ュ仠鎸夐挳
+          jsonData2[13][0].button.value = obj.jiting[0][0];
 
-  // if (parms && inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
-//鎬ュ仠鎸夐挳
-    // jsonData2[13][0].button.value = obj.jiting[0][0];
+          //娓呴櫎id
 
-    //娓呴櫎id
-
-      for (let i = 0; i < jsonData2.length; i++) {
-  let arr = jsonData2[i];
-  for (let j = 0; j < arr.length; j++) {
-    let obj = arr[j];
-    if (obj.type === '3') {
-      obj.button.value = parms[0][i];
-      // console.log(obj.button.value);
-    }
-  }
-
-     
-}
-
-//ID
-const specialChars = /[^\w\s]/g; // 姝e垯琛ㄨ揪寮忓尮閰嶉潪瀛楁瘝銆佹暟瀛椼�佷笅鍒掔嚎鍜岀┖鏍肩殑瀛楃
-
-for (let i = 0; i < jsonData2.length; i++) {
-  let arr = jsonData2[i];
-  for (let j = 0; j < arr.length; j++) {
-    let obj = arr[j];
-
-    if (obj.type === '0') {
-  if (parms[1] && parms[1][i]) {
-    obj.value = parms[1][i].replace(specialChars, '');
-    // console.log(obj.value);
-  }
-  if (obj.name === 'ID2') {
-        obj.value = parms[1][7].replace(specialChars, ''); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][6]
-      }
-
-      if (obj.name === 'A02ID') {
-        obj.value = parms[1][8].replace(specialChars, ''); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][6]
-      }
-      if (obj.name === 'B01ID') {
-        obj.value = parms[1][9].replace(specialChars, ''); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][6]
-      }
-      if (obj.name === 'B02ID') {
-        obj.value = parms[1][10].replace(specialChars, ''); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][6]
-      }
-
-
-}
-
-  }
-}
-
-//鎵嬪姩鐘舵��
-for (let i = 0; i < jsonData2.length; i++) {
-  let arr = jsonData2[i];
-  for (let j = 0; j < arr.length; j++) {
-    let obj = arr[j];
-    if (obj.type === '4') {
-      obj.button.value = parms[2][i];
-    }
-  }
-
-     
-}
-//鏀瑰彉鐘舵�佹枃瀛�
-for (let i = 0; i < jsonData2.length; i++) {
-  let arr = jsonData2[i];
-  for (let j = 0; j < arr.length; j++) {
-    let obj = arr[j];
-    if (obj.type === '4' && obj.button.value===1) {
-      if ( obj.button.name.includes("鐘舵��")&& this.language==="zh-CN") {
-      obj.button.name =obj.button.name.replace("鎵嬪姩","鑷姩") ;
-    }
-    if ( obj.button.name.includes("Status")) {
-      obj.button.name =obj.button.name.replace("Manual","Auto") ;
-    }
-  }
-
-     
-}
-}
-//鎵弿鏋壂鐮佺殑ID
-
-jsonData2.forEach((item) => {
-  item.forEach((subItem) => {
-    if (subItem.read === 66) {
-      subItem.value = parms[3][0].replace(specialChars, ''); 
-    }
-  });
-});
-
-jsonData2.forEach((item) => {
-  item.forEach((subItem) => {
-    if (subItem.read === 666) {
-      subItem.value = parms[3][1].replace(specialChars, ''); 
-    }
-  });
-});
-
-
-
-//A01褰撳墠鏍煎瓙
-let lastParmsArray = parms[parms.length - 1];
-
-let lastParmsIndex = 0;
-
-for (let i = 0; i < jsonData2.length; i++) {
-    for (let j = 0; j < jsonData2[i].length; j++) {
-        if (jsonData2[i][j].read === 333) {
-            jsonData2[i][j].value = lastParmsArray[lastParmsIndex];
-            lastParmsIndex++;
-            if (lastParmsIndex === lastParmsArray.length) {
-                lastParmsIndex = 0;
+          for (let i = 0; i < jsonData2.length; i++) {
+            let arr = jsonData2[i];
+            for (let j = 0; j < arr.length; j++) {
+              let obj = arr[j];
+              if (obj.type === "3") {
+                obj.button.value = parms[0][i];
+                // console.log(obj.button.value);
+              }
             }
-        }
-    }
-}
+          }
 
+          //ID
+          const specialChars = /[^\w\s]/g; // 姝e垯琛ㄨ揪寮忓尮閰嶉潪瀛楁瘝銆佹暟瀛椼�佷笅鍒掔嚎鍜岀┖鏍肩殑瀛楃
 
+          for (let i = 0; i < jsonData2.length; i++) {
+            let arr = jsonData2[i];
+            for (let j = 0; j < arr.length; j++) {
+              let obj = arr[j];
 
+              if (obj.type === "0") {
+                if (parms[1] && parms[1][i]) {
+                  obj.value = parms[1][i].replace(specialChars, "");
+                  // console.log(obj.value);
+                }
+                if (obj.name === "ID2") {
+                  obj.value = parms[1][7].replace(specialChars, ""); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][7]
+                }
 
-  }
-//  console.log(jsonData2);
-// }, 50);
-        
-// document.addEventListener('mouseover', handleMouseMove);
-  
-// };
+                if (obj.name === "A02ID") {
+                  obj.value = parms[1][8].replace(specialChars, "");
+                }
+                if (obj.name === "B01ID") {
+                  obj.value = parms[1][9].replace(specialChars, "");
+                }
+                if (obj.name === "B02ID") {
+                  obj.value = parms[1][10].replace(specialChars, "");
+                }
+              }
+            }
+          }
 
+          //鎵嬪姩鐘舵��
+          for (let i = 0; i < jsonData2.length; i++) {
+            let arr = jsonData2[i];
+            for (let j = 0; j < arr.length; j++) {
+              let obj = arr[j];
+              if (obj.type === "4") {
+                obj.button.value = parms[2][i];
+              }
+            }
+          }
+          //鏀瑰彉鐘舵�佹枃瀛�
+          for (let i = 0; i < jsonData2.length; i++) {
+            let arr = jsonData2[i];
+            for (let j = 0; j < arr.length; j++) {
+              let obj = arr[j];
+              if (obj.type === "4" && obj.button.value === 1) {
+                if (
+                  obj.button.name.includes("鐘舵��") &&
+                  this.language === "zh-CN"
+                ) {
+                  obj.button.name = obj.button.name.replace("鎵嬪姩", "鑷姩");
+                }
+                if (obj.button.name.includes("Status")) {
+                  obj.button.name = obj.button.name.replace("Manual", "Auto");
+                }
+              }
+            }
+          }
+          //鎵弿鏋壂鐮佺殑ID
 
+          jsonData2.forEach((item) => {
+            item.forEach((subItem) => {
+              if (subItem.read === 66) {
+                subItem.value = parms[3][0].replace(specialChars, "");
+              }
+            });
+          });
 
+          jsonData2.forEach((item) => {
+            item.forEach((subItem) => {
+              if (subItem.read === 666) {
+                subItem.value = parms[3][1].replace(specialChars, "");
+              }
+            });
+          });
+
+          //A01褰撳墠鏍煎瓙
+          let lastParmsArray = parms[parms.length - 1];
+
+          let lastParmsIndex = 0;
+
+          for (let i = 0; i < jsonData2.length; i++) {
+            for (let j = 0; j < jsonData2[i].length; j++) {
+              if (jsonData2[i][j].read === 333) {
+                jsonData2[i][j].value = lastParmsArray[lastParmsIndex];
+                lastParmsIndex++;
+                if (lastParmsIndex === lastParmsArray.length) {
+                  lastParmsIndex = 0;
+                }
+              }
+            }
+          }
+        };
+        //  console.log(jsonData2);
+        // }, 50);
+
+        // document.addEventListener('mouseover', handleMouseMove);
+
+        // };
 
         // 鍏抽棴浜嬩欢
         socket.onclose = function () {
@@ -403,62 +490,55 @@
         socket.onerror = function () {
           console.log("websocket鍙戠敓浜嗛敊璇�");
         };
-       
-        this.$router.afterEach(function(){
-          socket.close();
-        })
 
+        this.$router.afterEach(function () {
+          socket.close();
+        });
       }
     },
     replaceChineseWithEnglish() {
- 
-   
- const nameMap=  this.$t('langParameter2')
- this.jsonData = this.jsonData.map((item) => {
-return item.map((obj) => {
-if (obj.name) {
- const newName = nameMap[obj.name] || obj.name;
- return { ...obj, name: newName };
-} else if (obj.button && obj.button.name) {
- const newName = nameMap[obj.button.name] || obj.button.name;
- return { ...obj, button: { ...obj.button, name: newName } };
-} else {
- return obj;
-}
-});
-});
+      const nameMap = this.$t("langParameter2");
+      this.jsonData = this.jsonData.map((item) => {
+        return item.map((obj) => {
+          if (obj.name) {
+            const newName = nameMap[obj.name] || obj.name;
+            return { ...obj, name: newName };
+          } else if (obj.button && obj.button.name) {
+            const newName = nameMap[obj.button.name] || obj.button.name;
+            return { ...obj, button: { ...obj.button, name: newName } };
+          } else {
+            return obj;
+          }
+        });
+      });
 
-
-// console.log(this.jsonData)
-
-},
-    send () {
-     
+      // console.log(this.jsonData)
+    },
+    send() {
       socket?.send(JSON.stringify(this.messagepack));
-    }
-
-  }
-  }
-  </script>
+    },
+  },
+};
+</script>
   
   <style scoped>
-  html,body{
-width:100%;
-height:85%;
-
+html,
+body {
+  width: 100%;
+  height: 85%;
 }
-  .item-row {
+.item-row {
   display: flex;
   align-items: center;
   margin-bottom: 5px; /* 璋冩暣姣忎釜椤圭洰涔嬮棿鐨勯棿璺� */
-  }
-  
-  .action-button {
+}
+
+.action-button {
   margin-right: 30px;
   background: #66b1ff;
-  color: #FFF;
-  }
-  .blue-button {
+  color: #fff;
+}
+.blue-button {
   background-color: skyblue;
 }
 
@@ -466,15 +546,14 @@
   background-color: green;
 }
 
-.red-button{
+.red-button {
   background-color: red;
 }
-.yellow-button{
+.yellow-button {
   background-color: blue;
 }
-.id{
-
+.id {
   background-color: green;
 }
 
-  </style>
\ No newline at end of file
+</style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning1.vue b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
index 2f99457..f4febfd 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -1,75 +1,151 @@
 <template>
   <div class="app">
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
-      }}</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
-      }}</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
-      }}</router-link>
+      <router-link
+        to="/Electrical/alarm"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Alarm") }}</router-link
+      >
+      <router-link
+        to="/Electrical/State"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("State") }}</router-link
+      >
+      <router-link
+        to="/Electrical/Action"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Action") }}</router-link
+      >
       <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
       }}</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>
+      <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
+      >
     </el-breadcrumb>
 
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State')
-      }}</router-link>
-      <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>
+      <router-link
+        to="/Electrical/Parameter2"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Automatic State") }}</router-link
+      >
+      <router-link
+        to="/Electrical/ManualJog"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("ManualJog") }}</router-link
+      >
 
-<router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Servomanualone')
-      }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
-     
-      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Address parameter settings')
-      }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+      <router-link
+        to="/Electrical/ManualonePosition"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("ManualonePosition") }}</router-link
+      >
+
+      <router-link
+        to="/Electrical/Servomanualone"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Servomanualone") }}</router-link
+      >
+      <!-- <router-link
+        to="/Electrical/Parameter1"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Parameter1") }}</router-link
+      > -->
+
+      <router-link
+        to="/Electrical/Positioning1"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Address parameter settings") }}</router-link
+      >
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
-     
-      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualonePosition2')
-      }}</router-link>
-      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Speed parameter settings')
-      }}</router-link>
-      
+      }}</router-link> -->
+
+      <!-- <router-link
+        to="/Electrical/ManualonePosition2"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("ManualonePosition2") }}</router-link
+      > -->
+      <router-link
+        to="/Electrical/AutomaticParameterSetting"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Speed parameter settings") }}</router-link
+      >
     </el-breadcrumb>
 
-    <el-row :gutter="18" class='card'>
-      <el-col :span="7" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
+    <el-row :gutter="18" class="card">
+      <el-col
+        :span="7"
+        v-for="(dataGroup, groupIndex) in jsonData"
+        :key="groupIndex"
+      >
         <el-card class="json-block">
-          <div class="button-row" style="display: flex; justify-content: space-between;">
+          <div
+            class="button-row"
+            style="display: flex; justify-content: space-between"
+          >
             <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
-              <span v-if="item.title" :name="item.title.name" class="action-button">{{ item.title.name }}</span>
+              <span
+                v-if="item.title"
+                :name="item.title.name"
+                class="action-button"
+                >{{ item.title.name }}</span
+              >
             </div>
           </div>
-          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
+          <div
+            v-for="(item, itemIndex) in dataGroup"
+            :key="itemIndex"
+            class="item-container"
+          >
             <div class="item-row">
-              <span class="name" style="width:250px;">{{ item.name }}</span>
-              <el-input v-if="item.type === '0'" v-model="item.value" class="input-box"      @keyup.enter.native="submitDataToBackend" ></el-input>
-              <span v-if="item.unit" :name="item.unit" >{{ item.unit }}</span>
-
+              <span class="name" style="width: 250px">{{ item.name }}</span>
+              <el-input
+                v-if="item.type === '0'"
+                v-model="item.value"
+                class="input-box"
+                @keyup.enter.native="submitDataToBackend"
+              ></el-input>
+              <span v-if="item.unit" :name="item.unit">{{ item.unit }}</span>
 
               <!-- <el-button
                 v-if="item.type === '0' && item.name !== '鏍煎瓙闂磋窛' && item.name !== '鍑虹墖鎺ョ墖鍦板潃' && item.name !== '瀛樼墖鎺ョ墖鍦板潃'"
                 class="input-box" @click="submitDataToBackend();">鍙栧湴鍧�</el-button> -->
             </div>
           </div>
-
         </el-card>
       </el-col>
     </el-row>
@@ -79,36 +155,35 @@
   
 <script>
 let socket;
-import LanguageMixin from '../../lang/LanguageMixin'
-import data from '../../configuration/Positioning1'
+import LanguageMixin from "../../lang/LanguageMixin";
+import data from "../../configuration/Positioning1";
 
 export default {
   name: "Positioning1",
   mixins: [LanguageMixin],
-  data () {
+  data() {
     return {
-      jsonData: data // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
-    }
+      jsonData: data, // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
+    };
   },
-  activated(){
-   
-   this.initWebSocket ();
-   const language = this.$i18n.locale;
-  console.log(language);
-  if (language === 'en-US') {
-    this.replaceChineseWithEnglish();
-  }
-  this.$forceUpdate();
- },
+  activated() {
+    this.initWebSocket();
+    const language = this.$i18n.locale;
+    console.log(language);
+    if (language === "en-US") {
+      this.replaceChineseWithEnglish();
+    }
+    this.$forceUpdate();
+  },
   methods: {
-    updateButtonValue (dataGroup, itemIndex) {
-      this.$set(dataGroup[itemIndex].button, 'value', 1); // 鐐瑰嚮鎸夐挳鍚庡皢鍊兼敼涓�1
+    updateButtonValue(dataGroup, itemIndex) {
+      this.$set(dataGroup[itemIndex].button, "value", 1); // 鐐瑰嚮鎸夐挳鍚庡皢鍊兼敼涓�1
     },
     //鎻愪氦鏁版嵁鍒板悗绔�
-    submitDataToBackend () {
-      const inputData = this.jsonData.map(dataGroup => {
-        return dataGroup.map(item => {
-          if (item.type === '0') {
+    submitDataToBackend() {
+      const inputData = this.jsonData.map((dataGroup) => {
+        return dataGroup.map((item) => {
+          if (item.type === "0") {
             return { value: parseInt(item.value) };
           } else if (item.button) {
             return { value: parseInt(item.title.value) };
@@ -118,8 +193,8 @@
       });
 
       // 灏唅nputData杞崲涓烘暣鏁版暟缁�
-      const integerArray = inputData.map(dataGroup => {
-        return dataGroup.map(item => {
+      const integerArray = inputData.map((dataGroup) => {
+        return dataGroup.map((item) => {
           if (item !== null) {
             return item.value;
           }
@@ -134,14 +209,18 @@
       // console.log('鎻愪氦浠ヤ笅鏁版嵁鍒板悗绔�:', jsonString);
       socket?.send(jsonString);
     },
-    initWebSocket () {
-
+    initWebSocket() {
       let viewname = "Positioning1";
 
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl =
+          "ws://" +
+          this.$t("ip") +
+          ":8888" +
+          "/springboot-vue3/api/talk/" +
+          viewname;
 
         if (socket != null) {
           socket.close();
@@ -164,41 +243,39 @@
 
           let obj = JSON.parse(msg.data);
           const jsonData2 = this.jsonData;
-          document.addEventListener('mouseover', function (event) {
-            const inputBox = document.querySelectorAll('.el-card__body');
+          document.addEventListener("mouseover", function (event) {
+            const inputBox = document.querySelectorAll(".input-box");
             const target = event.target;
             const parms = obj.params;
-            if (parms && inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
+            if (
+              parms &&
+              inputBox &&
+              Array.from(inputBox).every((box) => !box.contains(target))
+            ) {
               // 濡傛灉榧犳爣涓嶅湪杈撳叆妗嗗唴锛屾洿鏂拌緭鍏ユ鐨勫��
               // this.submitDataToBackend()
-            
-              // console.log(parms)
 
+              // console.log(parms)
 
               let index = 0;
               for (let i = 0; i < jsonData2.length; i++) {
                 let arr = jsonData2[i];
                 for (let j = 0; j < arr.length; j++) {
                   let obj = arr[j];
-                  if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) {
+                  if (
+                    obj.type === "0" &&
+                    Object.prototype.hasOwnProperty.call(obj, "value")
+                  ) {
                     obj.value = parms[0][index];
                     index++;
                   }
                 }
               }
 
-
-
-
-
               // console.log(jsonData2);
-
             }
           });
         };
-
-
-
 
         // 鍏抽棴浜嬩欢
         socket.onclose = function () {
@@ -209,46 +286,38 @@
         socket.onerror = function () {
           console.log("websocket鍙戠敓浜嗛敊璇�");
         };
-        this.$router.afterEach(function(){
+        this.$router.afterEach(function () {
           socket.close();
-        })
-
+        });
       }
     },
     //璇█鏇挎崲
     replaceChineseWithEnglish() {
- 
-   
- const nameMap=  this.$t('langPositioning1')
- this.jsonData = this.jsonData.map((item) => {
-  return item.map((obj) => {
-    if (obj.name) {
-      const newName = nameMap[obj.name] || obj.name;
-      return { ...obj, name: newName };
-    } else if (obj.button && obj.button.name) {
-      const newName = nameMap[obj.button.name] || obj.button.name;
-      return { ...obj, button: { ...obj.button, name: newName } };
-    } else if (obj.title && obj.title.name) {
-      const newName = nameMap[obj.title.name] || obj.title.name;
-      return { ...obj, title: { ...obj.title, name: newName } };
-    } else {
-      return obj;
-    }
-  });
-});
+      const nameMap = this.$t("langPositioning1");
+      this.jsonData = this.jsonData.map((item) => {
+        return item.map((obj) => {
+          if (obj.name) {
+            const newName = nameMap[obj.name] || obj.name;
+            return { ...obj, name: newName };
+          } else if (obj.button && obj.button.name) {
+            const newName = nameMap[obj.button.name] || obj.button.name;
+            return { ...obj, button: { ...obj.button, name: newName } };
+          } else if (obj.title && obj.title.name) {
+            const newName = nameMap[obj.title.name] || obj.title.name;
+            return { ...obj, title: { ...obj.title, name: newName } };
+          } else {
+            return obj;
+          }
+        });
+      });
 
-
-// console.log(this.jsonData)
-
-},
-    send () {
-
-
+      // console.log(this.jsonData)
+    },
+    send() {
       socket?.send(JSON.stringify(this.messagepack));
     },
-
-  }
-}
+  },
+};
 </script>
   
 <style scoped>
@@ -262,7 +331,7 @@
 .action-button {
   margin-right: 30px;
   background: #66b1ff;
-  color: #FFF;
+  color: #fff;
 }
 
 .blue-button {
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning2.vue b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
index d460403..767a4e4 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
@@ -30,19 +30,19 @@
 <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
         $t('Servomanualone')
       }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
      
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Address parameter settings')
       }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
-     
+      }}</router-link> -->
+<!--      
       <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
-      }}</router-link>
+      }}</router-link> -->
       <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
         $t('Speed parameter settings')
       }}</router-link>
diff --git a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
index 2dae0ee..6480322 100644
--- a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
+++ b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -29,19 +29,19 @@
 <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
         $t('Servomanualone')
       }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
      
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Address parameter settings')
       }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
+      }}</router-link> -->
      
-      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
-      }}</router-link>
+      }}</router-link> -->
       <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
         $t('Speed parameter settings')
       }}</router-link>
@@ -56,15 +56,18 @@
           <div class="item-container">
             <div class="item-row">
               <span class="name" style='width:230px;'>{{ item.name }}</span>
-              <el-input v-if="item.type === '0'" v-model="item.value"   class='input-box' :class="{ 'special-class': groupIndex === 0,'special-class2': groupIndex === 1 }" v-show="groupIndex !== 0 && groupIndex !== 1"  ></el-input>
+             
+              <el-input v-if="item.type === '0' && groupIndex === 0" v-model="item.value"  @keyup.enter.native="zuhe1"  class='input-box' :class="{ 'special-class': groupIndex === 0,'special-class2': groupIndex === 1 }" v-show="groupIndex !== 0 && groupIndex !== 1"  ></el-input>
+              <el-input v-else-if="item.type === '0' && groupIndex === 1" v-model="item.value"  @keyup.enter.native="zuhe2"  class='input-box' :class="{ 'special-class': groupIndex === 0,'special-class2': groupIndex === 1 }" v-show="groupIndex !== 0 && groupIndex !== 1"  ></el-input>
+              <el-input v-else-if="item.type === '0' " v-model="item.value"   class='input-box' :class="{ 'special-class': groupIndex === 0,'special-class2': groupIndex === 1 }" v-show="groupIndex !== 0 && groupIndex !== 1"  ></el-input>
             </div>
           </div>
         </el-col>
       </el-row>
       <div class="button-row" style="display: flex; justify-content: space-between;">
         <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
-          <el-button v-if="item.button && language === 'en-US' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1,'error-button2': item.button.name === 'NotZero' && item.button.value === 0,'error-button3': item.button.name === 'NotZero' && item.button.value === 1,'fuwei': item.button.name === 'Reset' && item.button.value === 1,'huiling': item.button.name === 'Home' && item.button.value === 1,'qidong': item.button.name === 'A01 Semi-Auto' && item.button.value === 1,'qidong2': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'qidong3': item.button.name === 'A01 Semi-Auto Start' && item.button.value === 1,'qidong4': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'qidong5': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'jiting': item.button.name === 'Abort/ResumeTasks' && item.button.value === 1}" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
-          <el-button v-if="item.button && language === 'zh-CN' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === '鏁呴殰' && item.button.value === 1,'error-button3': item.button.name === '鏈洖闆�' && item.button.value === 1,'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0,'fuwei': item.button.name === '澶嶄綅' && item.button.value === 1,'huiling': item.button.name === '鍥為浂' && item.button.value === 1,'qidong': item.button.name === 'A01鍗婅嚜鍔�' && item.button.value === 1,'qidong2': item.button.name === 'A02鍗婅嚜鍔�' && item.button.value === 1,'qidong3': item.button.name === 'A01鍗婅嚜鍔ㄥ惎鍔�' && item.button.value === 1,'qidong4': item.button.name === 'A02鍗婅嚜鍔ㄥ惎鍔�' && item.button.value === 1,'qidong5': item.button.name === 'A02鍗婅嚜鍔�' && item.button.value === 1,'jiting': item.button.name === '鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨' && item.button.value === 1  }" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
+          <el-button v-if="item.button && language === 'en-US' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1,'error-button2': item.button.name === 'NotZero' && item.button.value === 0,'error-button3': item.button.name === 'NotZero' && item.button.value === 1,'fuwei': item.button.name === 'Reset' && item.button.value === 1,'huiling': item.button.name === 'Home' && item.button.value === 1,'qidong': item.button.name === 'A01 Semi-Auto' && item.button.value === 1,'qidong2': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'qidong3': item.button.name === 'A01 Semi-Auto Start' && item.button.value === 1,'qidong4': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'qidong5': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'jiting': item.button.name === 'Abort/ResumeTasks' && item.button.value === 1,'yihuiling': item.button.name === 'Zero' && item.button.value === 1}" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
+          <el-button v-if="item.button && language === 'zh-CN' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === '鏁呴殰' && item.button.value === 1,'error-button3': item.button.name === '鏈洖闆�' && item.button.value === 1,'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0,'fuwei': item.button.name === '澶嶄綅' && item.button.value === 1,'huiling': item.button.name === '鍥為浂' && item.button.value === 1,'qidong': item.button.name === 'A01鍗婅嚜鍔�' && item.button.value === 1,'qidong2': item.button.name === 'A02鍗婅嚜鍔�' && item.button.value === 1,'qidong3': item.button.name === 'A01鍗婅嚜鍔ㄥ惎鍔�' && item.button.value === 1,'qidong4': item.button.name === 'A02鍗婅嚜鍔ㄥ惎鍔�' && item.button.value === 1,'qidong5': item.button.name === 'A02鍗婅嚜鍔�' && item.button.value === 1,'jiting': item.button.name === '鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨' && item.button.value === 1,'yihuiling': item.button.name === '宸插洖闆�' && item.button.value === 1  }" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
         </div>
       </div>
     </el-card>
@@ -127,11 +130,9 @@
     this.$set(dataGroup[itemIndex].button, 'value', 1);
   }
 },
-submitDataToBackend(currentButtonName) {
+zuhe1(){
 
-//A01鍗婅嚜鍔ㄥ惎鍔ㄦ彁浜�
-  if (currentButtonName === 'A01鍗婅嚜鍔ㄥ惎鍔�' ||currentButtonName === 'A01 Semi-Auto Start') {
-    const data = [];
+  const data = [];
 
 for (let i = 0; i < 1; i++) {
   const inputData = this.jsonData[i].filter(item => item.type === '0' && item.read !== 9999).map(item => {
@@ -167,11 +168,10 @@
 console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
 socket?.send(jsonString);
 
-  }
-  //A02鍗婅嚜鍔ㄥ惎鍔� 鎻愪氦
+},
+zuhe2(){
 
-  if (currentButtonName === 'A02鍗婅嚜鍔ㄥ惎鍔�' ||currentButtonName === 'A02 Semi-Auto Start') {
-    const data2 = [];
+  const data2 = [];
 
 for (let i = 1; i < 2; i++) {
   const inputData = this.jsonData[i].filter(item => item.type === '0' && item.read !== 8888).map(item => {
@@ -198,6 +198,53 @@
   data2.push( [],[], []);
  
 }
+
+
+const jsonObject = { data:data2 };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
+},
+submitDataToBackend(currentButtonName) {
+
+//A01鍗婅嚜鍔ㄥ惎鍔ㄦ彁浜�
+  if (currentButtonName === 'A01鍗婅嚜鍔ㄥ惎鍔�' ||currentButtonName === 'A01 Semi-Auto Start') {
+    const data = [];
+
+
+  const values = [this.jsonData[0][10].button.value]
+
+  data.push(values);
+ 
+
+data.unshift([], [],[],[], [],[],[], []);
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
+  }
+  //A02鍗婅嚜鍔ㄥ惎鍔� 鎻愪氦
+
+  if (currentButtonName === 'A02鍗婅嚜鍔ㄥ惎鍔�' ||currentButtonName === 'A02 Semi-Auto Start') {
+    const data2 = [];
+
+    const values2 = [this.jsonData[1][8].button.value]
+
+  data2.push(values2);
+
+
+  data2.unshift([],[], [],[],[], [],[],[], []);
+
+
+
 
 
 const jsonObject = { data:data2 };
@@ -267,32 +314,7 @@
   // )
 }
 
-// if (currentButtonName === 'Abort/ResumeTasks' || currentButtonName === '鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨') {
-//   const data3 = [];
-//   const resetButtonValues3 = this.jsonData.map(item => {
-//     const buttonItem3 = item.find(subItem => subItem.button && ['Abort/resumeTasks', '鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨'].includes(subItem.button.name));
 
-//     return buttonItem3 ? buttonItem3.button.value : null;
-//   }).filter(value => value !== null);
-
-//   // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-//   data3.push(resetButtonValues3.flat());
-
-//   // 鍦� data3 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
-  
-//   data3.push([], [], [],[], [], [], [],[]);
-
-//   // 鍒涘缓 jsonObject3 瀵硅薄锛屽苟娣诲姞 data3 灞炴��
-//   const jsonObject3 = { data: data3 };
-
-//   // 鎻愪氦鏁版嵁鍒板悗绔�
-//   const jsonString3 = JSON.stringify(jsonObject3);
-//   console.log('鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨:', jsonString3);
-//   socket?.send(jsonString3);
-//   // setTimeout(()=>
-//   //   window.location.reload(),2000
-//   // )
-// }
 
 
 //A01鍗婅嚜鍔ㄦ彁浜�
@@ -468,7 +490,7 @@
   }
 
   let obj = JSON.parse(msg.data);
-  //  console.log(obj)
+   console.log(obj)
 const weihuiling=obj.weihuiling;
   const jsonData2 = this.jsonData;
 
@@ -518,6 +540,9 @@
 }, 50);
 
   document.addEventListener('mouseover', handleMouseMove);
+
+
+  if (obj.qidong){
 
 
 
@@ -570,24 +595,44 @@
 // }
 
 // console.log(jsonData2[5][4].button.value)
-if(jsonData2[2][3].button.value===1){
+if(jsonData2[2][3].button.value===1 &&  (jsonData2[2][3].button.name==="NotZero" ||jsonData2[2][3].button.name==="鏈洖闆�")){
   jsonData2[2][3].button.name=jsonData2[2][3].button.name.replace("鏈洖闆�","宸插洖闆�") ;
   jsonData2[2][3].button.name=jsonData2[2][3].button.name.replace("NotZero","Zero") ;
 }
-if(jsonData2[3][3].button.value===1){
+if(jsonData2[3][3].button.value===1 &&  (jsonData2[3][3].button.name==="NotZero" ||jsonData2[3][3].button.name==="鏈洖闆�")){
   jsonData2[3][3].button.name=jsonData2[3][3].button.name.replace("鏈洖闆�","宸插洖闆�") ;
   jsonData2[3][3].button.name=jsonData2[3][3].button.name.replace("NotZero","Zero") ;
 }
-if(jsonData2[4][4].button.value===1){
+if(jsonData2[4][4].button.value===1 &&  (jsonData2[4][4].button.name==="NotZero" ||jsonData2[4][4].button.name==="鏈洖闆�")){
   jsonData2[4][4].button.name=jsonData2[4][4].button.name.replace("鏈洖闆�","宸插洖闆�") ;
   jsonData2[4][4].button.name=jsonData2[4][4].button.name.replace("NotZero","Zero") ;
 }
-if(jsonData2[5][4].button.value===1){
+if(jsonData2[5][4].button.value===1 &&  (jsonData2[5][4].button.name==="NotZero" ||jsonData2[5][4].button.name==="鏈洖闆�")){
   jsonData2[5][4].button.name=jsonData2[5][4].button.name.replace("鏈洖闆�","宸插洖闆�") ;
   jsonData2[5][4].button.name=jsonData2[5][4].button.name.replace("NotZero","Zero") ;
 }
 
 
+
+
+if(jsonData2[2][3].button.value===0 && (jsonData2[2][3].button.name==="Zero" ||jsonData2[2][3].button.name==="宸插洖闆�")){
+  jsonData2[2][3].button.name=jsonData2[2][3].button.name.replace("宸插洖闆�","鏈洖闆�") ;
+  jsonData2[2][3].button.name=jsonData2[2][3].button.name.replace("Zero","NotZero") ;
+}
+if(jsonData2[3][3].button.value===0 && (jsonData2[3][3].button.name==="Zero" ||jsonData2[3][3].button.name==="宸插洖闆�")){
+  jsonData2[3][3].button.name=jsonData2[3][3].button.name.replace("宸插洖闆�","鏈洖闆�") ;
+  jsonData2[3][3].button.name=jsonData2[3][3].button.name.replace("Zero","NotZero") ;
+}
+if(jsonData2[4][4].button.value===0 && (jsonData2[4][4].button.name==="Zero" ||jsonData2[4][4].button.name==="宸插洖闆�")){
+  jsonData2[4][4].button.name=jsonData2[4][4].button.name.replace("宸插洖闆�","鏈洖闆�") ;
+  jsonData2[4][4].button.name=jsonData2[4][4].button.name.replace("Zero","NotZero") ;
+}
+if(jsonData2[5][4].button.value===0  && (jsonData2[5][4].button.name==="Zero" ||jsonData2[5][4].button.name==="宸插洖闆�")){
+  jsonData2[5][4].button.name=jsonData2[5][4].button.name.replace("宸插洖闆�","鏈洖闆�") ;
+  jsonData2[5][4].button.name=jsonData2[5][4].button.name.replace("Zero","NotZero") ;
+}
+
+}
 
    
 };
@@ -709,4 +754,9 @@
   background-color: green;
 
 }
+
+.yihuiling{
+
+  background-color: green;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Servomanual.vue b/CanadaMes-ui/src/views/Electrical/Servomanual.vue
index e73f29f..1164bb0 100644
--- a/CanadaMes-ui/src/views/Electrical/Servomanual.vue
+++ b/CanadaMes-ui/src/views/Electrical/Servomanual.vue
@@ -31,19 +31,19 @@
 <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
         $t('Servomanualone')
       }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
      
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Address parameter settings')
       }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
-      }}</router-link>
+      }}</router-link> -->
      
-      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
-      }}</router-link>
+      }}</router-link> -->
       <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
         $t('Speed parameter settings')
       }}</router-link>
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java b/springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java
index adde27f..c380a42 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java
@@ -10,89 +10,104 @@
 public class MessageHandler {
     //鍐欏叆byte
     public void outmesid(String glassid,String address) {
-        //System.out.println("outmesid:" + glassid);
-        List<Byte> glassidlist = new ArrayList();
-        char ds[]=glassid.toCharArray();
-        for (char iditem : ds) {
-            glassidlist.add((byte)iditem);
+        try {
+            List<Byte> glassidlist = new ArrayList<>();
+            char ds[]=glassid.toCharArray();
+            for (char iditem : ds) {
+                glassidlist.add((byte)iditem);
+            }
+            byte[] bytes = Bytes.toArray(glassidlist);
+            System.out.println("outmesidbytes:" + bytes.length);
+            S7control.getinstance().WriteByte(address, bytes);
+        } catch (Exception e) {
+            System.err.println("An error occurred while writing byte to PLC: " + e.getMessage());
         }
-        byte[] bytes = Bytes.toArray(glassidlist);
-        System.out.println("outmesidbytes:" + bytes.length);
-        S7control.getinstance().WriteByte(address, bytes);
     }
+
     //鍐欏叆bit
-    public void writeBitToPLC( JSONArray messageArray,List<String> addresses, int index) {
-        if (messageArray.getJSONArray(index).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(index);
-            List<Boolean> sValue = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-                Object value = jsonArray.get(i);
-                if (value != null && !value.toString().equals("null")) {
-                    try {
-                        String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                        boolean val = "1".equals(cleanedValue.trim());
-                        sValue.add(val);
-                        System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                        // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                        System.err.println("Could not parse value: " + value);
+    public void writeBitToPLC(JSONArray messageArray, List<String> addresses, int index) {
+        try {
+            // 妫�鏌ョ储寮曟槸鍚︽湁鏁�
+            if (messageArray.getJSONArray(index).size() > 0) {
+                // 鑾峰彇娑堟伅鏁扮粍
+                JSONArray jsonArray = messageArray.getJSONArray(index);
+                // 鍒涘缓涓�涓竷灏斿�煎垪琛�
+                List<Boolean> sValue = new ArrayList<>();
+                // 閬嶅巻娑堟伅鏁扮粍
+                for (int i = 0; i < jsonArray.size(); i++) {
+                    // 鑾峰彇娑堟伅鏁扮粍涓殑鍊�
+                    Object value = jsonArray.get(i);
+                    // 妫�鏌ュ�兼槸鍚︽湁鏁�
+                    if (value != null && !value.toString().equals("null")) {
+                        try {
+                            // 绉婚櫎闈炴暟瀛楀拰鏁板瓧瀛楃
+                            String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                            // 瑙f瀽涓哄竷灏斿��
+                            boolean val = "1".equals(cleanedValue.trim());
+                            // 灏嗗竷灏斿�兼坊鍔犲埌甯冨皵鍊煎垪琛ㄤ腑
+                            sValue.add(val);
+                            System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
+                        } catch (NumberFormatException e) {
+                            // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                            System.err.println("Could not parse value: " + value);
+                        }
                     }
                 }
+                // 妫�鏌ュ竷灏斿�煎垪琛ㄦ槸鍚︿负绌�
+                if (!sValue.isEmpty()) {
+
+                    // 璋冪敤 S7control.getinstance().WriteBit 鏂规硶灏嗗竷灏斿�煎垪琛ㄥ啓鍏ュ湴鍧�鍒楄〃
+                    S7control.getinstance().WriteBit(addresses, sValue);
+                    System.out.println("Values " + sValue + " written to PLC at address " + addresses);
+                }
             }
-            if (!sValue.isEmpty()) {
-                // 杩欓噷鍋囪 S7control.getinstance().WriteBit 鏂规硶鍙互姝g‘鍐欏叆 sValue 鍒板湴鍧�鍒楄〃 addresses
-              S7control.getinstance().WriteBit(addresses, sValue);
-                System.out.println("Values " + sValue + " written to PLC at address " + addresses);
-            }
+        } catch (Exception e) {
+            System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
         }
     }
-
-
 
     //鍐欏叆Word
-    public void WriteWordToPLC( JSONArray messageArray,List<String> addresses, int index) {
-        if (messageArray.getJSONArray(index).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(index);
-            List<Short> sValues = new ArrayList<>();
-
-            for (int i = 0; i < jsonArray.size(); i++) {
-                Object value = jsonArray.get(i);
-
-                if (value != null && !value.toString().equals("null")) {
-                    try {
-                        String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                        short val = Short.parseShort(cleanedValue.trim());
-                        sValues.add(val);
-                        System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                        // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                        System.err.println("Could not parse value: " + value);
+    public void WriteWordToPLC(JSONArray messageArray, List<String> addresses, int index) {
+        try {
+            if (messageArray.getJSONArray(index).size() > 0) {
+                JSONArray jsonArray = messageArray.getJSONArray(index);
+                List<Short> sValues = new ArrayList<>();
+                for (int i = 0; i < jsonArray.size(); i++) {
+                    Object value = jsonArray.get(i);
+                    if (value != null && !value.toString().equals("null")) {
+                        try {
+                            String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                            short val = Short.parseShort(cleanedValue.trim());
+                            sValues.add(val);
+                            System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
+                        } catch (NumberFormatException e) {
+                            System.err.println("Could not parse value: " + value);
+                        }
                     }
                 }
+                if (!sValues.isEmpty()) {
+                    S7control.getinstance().WriteWord(addresses, sValues);
+                    System.out.println("Values " + sValues + " written to PLC at address " + addresses);
+                }
             }
-
-            if (!sValues.isEmpty()) {
-                S7control.getinstance().WriteWord(addresses.get(index), sValues);
-                System.out.println("Values " + sValues + " written to PLC at address " + addresses.get(index));
-            }
+        } catch (Exception e) {
+            System.err.println("An error occurred while writing word to PLC: " + e.getMessage());
         }
     }
 
-//鍐欏叆String
-    public void writeStringToPLC( JSONArray messageArray, String addresses,int index) {
-        if (messageArray.getJSONArray(index).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(index);
-
-            if (!jsonArray.isEmpty()) {
-                String value = (String) jsonArray.get(0);
-                outmesid(value.trim(), addresses);
-                System.out.println("Value " + value + " written to PLC at address " + addresses);
+    //鍐欏叆String
+    public void writeStringToPLC(JSONArray messageArray, String addresses, int index) {
+        try {
+            if (messageArray.getJSONArray(index).size() > 0) {
+                JSONArray jsonArray = messageArray.getJSONArray(index);
+                if (!jsonArray.isEmpty()) {
+                    String value = (String) jsonArray.get(0);
+                    outmesid(value.trim(), addresses);
+                    System.out.println("Value " + value + " written to PLC at address " + addresses);
+                }
             }
+        } catch (Exception e) {
+            System.err.println("An error occurred while writing string to PLC: " + e.getMessage());
         }
     }
-
-
-
-
-
-}
\ No newline at end of file
+}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
index 15e3552..9bd4e04 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
@@ -75,14 +75,40 @@
       List<Short> dache1 = S7control.getinstance().ReadWord("DB100.18", 1);
       List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.22", 1);
       List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.14", 1);
-      // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7, 8 };
-      // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
-      // Short[] fanzhuan = { 4 };
-      // List<Short> fanzhuan1 = new ArrayList<>(Arrays.asList(fanzhuan));
-      // Short[] dache = { 5 };
-      // List<Short> dache1 = new ArrayList<>(Arrays.asList(dache));
-      // Short[] xiaoche = { 6 };
-      // List<Short> xiaoche1 = new ArrayList<>(Arrays.asList(xiaoche));
+      List<String> addresses = new ArrayList<>();
+      addresses.add("DB100.0");
+      addresses.add("DB100.2");
+      addresses.add("DB100.4");
+      addresses.add("DB100.6");
+      addresses.add("DB100.26");
+      addresses.add("DB100.28");
+      addresses.add("DB100.30");
+      addresses.add("DB100.32");
+      addresses.add("DB100.34");
+      addresses.add("DB100.36");
+      addresses.add("DB100.38");
+      addresses.add("DB100.40");
+      List<Short> arraylist2 = S7control.getinstance().readWords(addresses);
+//缈昏浆
+      List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1);
+      List<Short> xiaoche2 = S7control.getinstance().ReadWord("DB100.12", 1);
+
+
+//       Short[] values1 = { 1, 2, 3, 4, 5, 6, 7, 8 };
+//       List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
+//       Short[] fanzhuan = { 4 };
+//       List<Short> fanzhuan1 = new ArrayList<>(Arrays.asList(fanzhuan));
+//       Short[] dache = { 5 };
+//       List<Short> dache1 = new ArrayList<>(Arrays.asList(dache));
+//       Short[] xiaoche = { 6 };
+//       List<Short> xiaoche1 = new ArrayList<>(Arrays.asList(xiaoche));
+//
+//       Short[] values2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
+//       List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
+//       Short[] fanzhuan22 = { 4 };
+//       List<Short> fanzhuan2 = new ArrayList<>(Arrays.asList(fanzhuan22));
+//       Short[] xiaoche22 = {5};
+//       List<Short> xiaoche2 = new ArrayList<>(Arrays.asList(xiaoche22));
 
       JSONObject jsonObject = new JSONObject();
       // new short[]{1,1, 1, 1, 1, 1, 2, 33, 2,3, 4, 5}
@@ -92,111 +118,194 @@
       jsonObject.append("dache1", dache1);
       jsonObject.append("xiaoche", xiaoche1);
       jsonObject.append("fanzhuan", fanzhuan1);
-//
-//      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting");
-//      if (sendwServer != null) {
-//        sendwServer.sendMessage(jsonObject.toString());
-//      }
+      jsonObject.append("params2", arraylist2);
+      jsonObject.append("fanzhuan2", fanzhuan2);
+      jsonObject.append("xiaoche2", xiaoche2);
+
       ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting");
       if (sendwServer != null) {
         for (WebSocketServer webserver : sendwServer) {
           webserver.sendMessage(jsonObject.toString());
 
 //      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting");
-      if (webserver != null) {
-        List<String> messages = webserver.getMessages();
-        String addressList1 = "DB100.120";
-        String addressList2 = "DB100.18";
-        String addressList3 = "DB100.22";
-        String addressList4 = "DB100.14";
+          if (webserver != null) {
+            List<String> messages = webserver.getMessages();
+            String addressList1 = "DB100.120";
+            String addressList2 = "DB100.18";
+            String addressList3 = "DB100.22";
+            String addressList4 = "DB100.14";
 
-        if (!messages.isEmpty()) {
-          // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
-          String lastMessage = messages.get(messages.size() - 1);
-          // System.out.println("lastMessage锛�" + lastMessage);
-          JSONArray messageArray = new JSONArray(lastMessage);
+            if (!messages.isEmpty()) {
+              // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
+              String lastMessage = messages.get(messages.size() - 1);
+              // System.out.println("lastMessage锛�" + lastMessage);
+              JSONArray messageArray = new JSONArray(lastMessage);
 
-          // 鏁村悎绗� 1 鍒� 2 涓暟缁勫苟鍘绘帀 null 鍏冪礌
-          List<Short> mergedList = new ArrayList<>();
-          for (int i = 0; i < 2; i++) {
-            JSONArray sublist = messageArray.getJSONArray(i);
-            for (int j = 0; j < sublist.size(); j++) {
-              Object value = sublist.get(j);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short sValue = Short.parseShort(cleanedValue.trim());
-                  mergedList.add(sValue);
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
+              // 鏁村悎绗� 1 鍒� 2 涓暟缁勫苟鍘绘帀 null 鍏冪礌
+              List<Short> mergedList = new ArrayList<>();
+              for (int i = 0; i < 2; i++) {
+                JSONArray sublist = messageArray.getJSONArray(i);
+                for (int j = 0; j < sublist.size(); j++) {
+                  Object value = sublist.get(j);
+                  if (value != null && !value.toString().equals("null")) {
+                    try {
+                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                      short sValue = Short.parseShort(cleanedValue.trim());
+                      mergedList.add(sValue);
+                    } catch (NumberFormatException e) {
+                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                      System.err.println("Could not parse value: " + value);
+                    }
+                  }
                 }
               }
-            }
-          }
-          System.out.println(messageArray);
-          // 鍐欏叆绗竴涓湴鍧�
-          if (messageArray.getJSONArray(2).size() > 0) {
-            Object value = messageArray.getJSONArray(2).get(0);
-            if (value != null && !value.toString().equals("null")) {
-              try {
-                String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                short sValue = Short.parseShort(cleanedValue.trim());
-                S7control.getinstance().WriteWord(addressList2, Arrays.asList(sValue));
-                System.out
-                        .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList2);
-              } catch (NumberFormatException e) {
-                // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                System.err.println("Could not parse value: " + value);
+              System.out.println(messageArray);
+              // 鍐欏叆绗竴涓湴鍧�
+              if (messageArray.getJSONArray(2).size() > 0) {
+                Object value = messageArray.getJSONArray(2).get(0);
+                if (value != null && !value.toString().equals("null")) {
+                  try {
+                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                    short sValue = Short.parseShort(cleanedValue.trim());
+                    S7control.getinstance().WriteWord(addressList2, Arrays.asList(sValue));
+                    System.out
+                            .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList2);
+                  } catch (NumberFormatException e) {
+                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                    System.err.println("Could not parse value: " + value);
+                  }
+                }
+              }
+
+              // 鍐欏叆绗簩涓湴鍧�
+              if (messageArray.getJSONArray(3).size() > 0) {
+                Object value = messageArray.getJSONArray(3).get(0);
+                if (value != null && !value.toString().equals("null")) {
+                  try {
+                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                    short sValue = Short.parseShort(cleanedValue.trim());
+                    S7control.getinstance().WriteWord(addressList3, Arrays.asList(sValue));
+                    System.out
+                            .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList3);
+                  } catch (NumberFormatException e) {
+                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                    System.err.println("Could not parse value: " + value);
+                  }
+                }
+              }
+
+              // 鍐欏叆绗笁涓湴鍧�
+              if (messageArray.getJSONArray(4).size() > 0) {
+                Object value = messageArray.getJSONArray(4).get(0);
+                if (value != null && !value.toString().equals("null")) {
+                  try {
+                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                    short sValue = Short.parseShort(cleanedValue.trim());
+                    S7control.getinstance().WriteWord(addressList4, Arrays.asList(sValue));
+                    System.out
+                            .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList4);
+                  } catch (NumberFormatException e) {
+                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                    System.err.println("Could not parse value: " + value);
+                  }
+                }
+              }
+
+              // 鍐欏叆绗洓涓湴鍧�
+              if (!mergedList.isEmpty()) {
+                S7control.getinstance().WriteWord(addressList1, mergedList);
+                System.out.println("messageValue锛�" + mergedList + " written to PLC at address " + addressList1);
+              }
+
+
+              List<String> waddresses1 = new ArrayList<>();
+              waddresses1.add("DB100.0");
+              waddresses1.add("DB100.2");
+              waddresses1.add("DB100.4");
+              waddresses1.add("DB100.6");
+              waddresses1.add("DB100.26");
+              waddresses1.add("DB100.28");
+              waddresses1.add("DB100.30");
+              waddresses1.add("DB100.32");
+              waddresses1.add("DB100.34");
+              waddresses1.add("DB100.36");
+              waddresses1.add("DB100.38");
+              waddresses1.add("DB100.40");
+
+              String addressList22 = "DB100.8";
+              String addressList33 = "DB100.12";
+
+              if (!messages.isEmpty()) {
+                // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
+
+
+                // 鏁村悎绗� 1 鍒� 3 涓暟缁勫苟鍘绘帀 null 鍏冪礌
+                List<Short> mergedList2 = new ArrayList<>();
+                for (int i = 5; i < 8; i++) {
+                  JSONArray sublist = messageArray.getJSONArray(i);
+                  for (int j = 0; j < sublist.size(); j++) {
+                    Object value = sublist.get(j);
+                    if (value != null && !value.toString().equals("null")) {
+                      try {
+                        String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                        short sValue = Short.parseShort(cleanedValue.trim());
+                        mergedList2.add(sValue);
+                      } catch (NumberFormatException e) {
+                        // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                        System.err.println("Could not parse value: " + value);
+                      }
+                    }
+                  }
+                }
+
+                // 鍐欏叆绗紞涓湴鍧�
+                if (messageArray.getJSONArray(8).size() > 0) {
+                  Object value = messageArray.getJSONArray(8).get(0);
+                  if (value != null && !value.toString().equals("null")) {
+                    try {
+                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                      short sValue = Short.parseShort(cleanedValue.trim());
+                      S7control.getinstance().WriteWord(addressList22, Arrays.asList(sValue));
+                      System.out
+                              .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList2);
+                    } catch (NumberFormatException e) {
+                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                      System.err.println("Could not parse value: " + value);
+                    }
+                  }
+                }
+
+                // 鍐欏叆绗叚涓湴鍧�
+                if (messageArray.getJSONArray(9).size() > 0) {
+                  Object value = messageArray.getJSONArray(9).get(0);
+                  if (value != null && !value.toString().equals("null")) {
+                    try {
+                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                      short sValue = Short.parseShort(cleanedValue.trim());
+                      S7control.getinstance().WriteWord(addressList33, Arrays.asList(sValue));
+                      System.out
+                              .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList3);
+                    } catch (NumberFormatException e) {
+                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                      System.err.println("Could not parse value: " + value);
+                    }
+                  }
+                }
+
+                // 鍐欏叆绗竷涓湴鍧�
+                if (!mergedList2.isEmpty()) {
+                  S7control.getinstance().WriteWord(waddresses1, mergedList2);
+                  System.out.println("messageValue锛�" + mergedList2 + " written to PLC at address " + waddresses1);
+                }
+
+
+                // 娓呯┖娑堟伅鍒楄〃
+                webserver.clearMessages();
               }
             }
           }
 
-          // 鍐欏叆绗簩涓湴鍧�
-          if (messageArray.getJSONArray(3).size() > 0) {
-            Object value = messageArray.getJSONArray(3).get(0);
-            if (value != null && !value.toString().equals("null")) {
-              try {
-                String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                short sValue = Short.parseShort(cleanedValue.trim());
-                S7control.getinstance().WriteWord(addressList3, Arrays.asList(sValue));
-                System.out
-                        .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList3);
-              } catch (NumberFormatException e) {
-                // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                System.err.println("Could not parse value: " + value);
-              }
-            }
-          }
-
-          // 鍐欏叆绗笁涓湴鍧�
-          if (messageArray.getJSONArray(4).size() > 0) {
-            Object value = messageArray.getJSONArray(4).get(0);
-            if (value != null && !value.toString().equals("null")) {
-              try {
-                String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                short sValue = Short.parseShort(cleanedValue.trim());
-                S7control.getinstance().WriteWord(addressList4, Arrays.asList(sValue));
-                System.out
-                        .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList4);
-              } catch (NumberFormatException e) {
-                // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                System.err.println("Could not parse value: " + value);
-              }
-            }
-          }
-
-          // 鍐欏叆绗洓涓湴鍧�
-          if (!mergedList.isEmpty()) {
-            S7control.getinstance().WriteWord(addressList1, mergedList);
-            System.out.println("messageValue锛�" + mergedList + " written to PLC at address " + addressList1);
-          }
-
-          // 娓呯┖娑堟伅鍒楄〃
-          webserver.clearMessages();
         }
-      }}
-
       }
 
     }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
index a7d9579..baccc4d 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
@@ -10,52 +10,21 @@
 import java.util.List;
 
 public class PLCManualJog extends Thread {
-  String name = "";
-  Integer count = 0;
 
-  public static String readFileToString(String filePath) throws IOException {
-    File file = new File(filePath);
-    return FileUtils.readFileToString(file, "UTF-8");
+
+  // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+  private Configuration config;
+
+  // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+  MessageHandler customS7Control = new MessageHandler();
+
+
+  public PLCManualJog() throws IOException {
+    config = new Configuration("config.properties");
   }
 
-  public void readValue() {
-    String str = "";
-    BufferedReader bufferedReader = null;
-    FileInputStream fileInputStream;
-    try {
-      // 浠庢枃浠朵腑璇诲彇瀛楄妭鏁版嵁瀛樺叆 fileInputStream
-      fileInputStream = new FileInputStream("CanadaMes-ui/src/configuration/address.json");
-      // 璇诲彇 fileInputStream 涓瓧鑺傚苟灏嗗叾瑙g爜涓哄瓧绗�
-      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
-      // 鎻愰珮璇诲彇鏁堢巼锛屽湪 BufferedReader 鍐呭寘瑁� InputStreamReader
-      bufferedReader = new BufferedReader(inputStreamReader);
-      String line = null;
-      // 灏� bufferedReader 鍐呭涓�琛屼竴琛岃祴鍊肩粰str
-      while ((line = bufferedReader.readLine()) != null) {
-        str += line;
-      }
 
-      // 灏唖tr瀛楃涓叉牸寮忚浆涓簀son
-      JSONObject jsonObject = new JSONObject(str);
 
-      // 鑾峰彇json涓殑鍊�
-      JSONArray address = jsonObject.getJSONArray("address");
-      for (int i = 0; i < address.size(); i++) {
-        JSONObject ress = (JSONObject) address.get(i);
-
-        this.name = ress.getStr("name");
-        this.count = ress.getInt("count");
-
-      }
-
-    } catch (FileNotFoundException e) {
-      e.printStackTrace();
-    } catch (UnsupportedEncodingException e) {
-      e.printStackTrace();
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-  }
 
   @Override
   public void run() {
@@ -72,36 +41,14 @@
 
       // System.out.println(stt);
 
-      List<String> addressList0 = new ArrayList<>();
-      addressList0.add("DB101.2.6");
-      addressList0.add("DB101.2.7");
-      addressList0.add("DB101.3.0");
-      addressList0.add("DB101.3.1");
-      addressList0.add("DB101.3.2");
-      addressList0.add("DB101.3.3");
-      addressList0.add("DB101.3.4");
-      addressList0.add("DB101.3.5");
 
-      List<String> addressList21 = new ArrayList<>();
-      addressList21.add("DB101.0.0");
-      addressList21.add("DB101.0.1");
-      addressList21.add("DB101.0.2");
-      addressList21.add("DB101.0.3");
-      addressList21.add("DB101.0.4");
-      addressList21.add("DB101.0.5");
-      addressList21.add("DB101.0.6");
-      addressList21.add("DB101.0.7");
-      addressList21.add("DB101.1.0");
-      addressList21.add("DB101.1.1");
-      addressList21.add("DB101.1.2");
-      addressList21.add("DB101.1.3");
-      addressList21.add("DB101.1.4");
-      addressList21.add("DB101.1.5");
-      addressList21.add("DB101.1.6");
-      addressList21.add("DB101.1.7");
+      List<String> addressList21 = Arrays.asList(config.getProperty("PLCManualJog.button").split(","));
+
+
+
+
       List<Boolean> arraylist = S7control.getinstance().readBits(addressList21);
-      List<Boolean> arraylist2 = S7control.getinstance().readBits(addressList0);
-      List<Boolean> arraylist3 = S7control.getinstance().ReadBits("DB101.5.2", 2);
+
       // Boolean[] values1 = { false, true, true, true, false, false, true, false,
       // false, true, true, true, false, false,
       // true, false };
@@ -111,8 +58,7 @@
       // Boolean[] values3 = { false, false };
       // List<Boolean> arraylist3 = new ArrayList<>(Arrays.asList(values3));
 
-      arraylist.addAll(arraylist2);
-      arraylist.addAll(arraylist3);
+
 
       JSONObject jsonObject = new JSONObject();
 
@@ -138,43 +84,8 @@
 //      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualJog");
 
           if (webserver != null) {
-            //       String addressList1 = "DB101.0.0";
-//        String addressList2 = "DB101.2.6";
-            String addressList3 = "DB101.5.2";
 
 
-            List<String> addressList2 = new ArrayList<>();
-            addressList2.add("DB101.2.6");
-            addressList2.add("DB101.2.7");
-            addressList2.add("DB101.3.0");
-            addressList2.add("DB101.3.1");
-            addressList2.add("DB101.3.2");
-            addressList2.add("DB101.3.3");
-            addressList2.add("DB101.3.4");
-            addressList2.add("DB101.3.5");
-
-
-            List<String> addressList211 = new ArrayList<>();
-            addressList211.add("DB101.0.0");
-            addressList211.add("DB101.0.1");
-            addressList211.add("DB101.0.2");
-            addressList211.add("DB101.0.3");
-            addressList211.add("DB101.0.4");
-            addressList211.add("DB101.0.5");
-            addressList211.add("DB101.0.6");
-            addressList211.add("DB101.0.7");
-            addressList211.add("DB101.1.0");
-            addressList211.add("DB101.1.1");
-            addressList211.add("DB101.1.2");
-            addressList211.add("DB101.1.3");
-            addressList211.add("DB101.1.4");
-            addressList211.add("DB101.1.5");
-            addressList211.add("DB101.1.6");
-            addressList211.add("DB101.1.7");
-
-            List<String> addressList311 = new ArrayList<>();
-            addressList311.add("DB101.5.2");
-            addressList311.add("DB101.5.3");
 
             List<String> messages = webserver.getMessages();
             if (!messages.isEmpty()) {
@@ -202,36 +113,18 @@
               }
               // System.out.println(messageBooleans);
               List<Boolean> bolList = new ArrayList<>();
-              List<Boolean> bolList2 = new ArrayList<>();
-              List<Boolean> bolList3 = new ArrayList<>();
 
-              for (int i = 0; i < 16 && i < messageBooleans.size(); i++) {
+
+              for (int i = 0; i < 26 && i < messageBooleans.size(); i++) {
                 bolList.add(messageBooleans.get(i));
               }
 
-              for (int i = 16; i < 24 && i < messageBooleans.size(); i++) {
-                bolList2.add(messageBooleans.get(i));
-              }
 
-              for (int i = 24; i < 26 && i < messageBooleans.size(); i++) {
-                bolList3.add(messageBooleans.get(i));
-              }
-
-              // System.out.println(bolList);
-              // System.out.println(bolList2);
-              // System.out.println(bolList3);
               if (!bolList.isEmpty()) {
-                S7control.getinstance().WriteBit(addressList211, bolList);
-                System.out.println("messageValue锛�" + bolList + " written to PLC at address " + addressList211);
+                S7control.getinstance().WriteBit(addressList21, bolList);
+                System.out.println("messageValue锛�" + bolList + " written to PLC at address " + addressList21);
               }
-              if (!bolList2.isEmpty()) {
-                S7control.getinstance().WriteBit(addressList2, bolList2);
-                System.out.println("messageValue锛�" + bolList2 + " written to PLC at address " + addressList2);
-              }
-              if (!bolList3.isEmpty()) {
-                S7control.getinstance().WriteBit(addressList311, bolList3);
-                System.out.println("messageValue锛�" + bolList3 + " written to PLC at address " + addressList311);
-              }
+
               webserver.clearMessages();
             }
           }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
index 1d685d8..819e14e 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
@@ -16,6 +16,14 @@
     config = new Configuration("config.properties");
   }
 
+
+
+  // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+  MessageHandler customS7Control = new MessageHandler();
+
+
+
+
   public static class PLCBooleanConverter {
 
     public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
@@ -247,18 +255,6 @@
             }
             if (!sValue.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses1, sValue);
-              if (A01readstart != null && !A01readstart.isEmpty()) {
-                // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                List<Boolean> a01startval = new ArrayList<>();
-                // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                for (Boolean bit : A01readstart) {
-                  // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                  a01startval.add(!bit);
-                }
-                // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                S7control.getinstance().WriteBit(A01start, a01startval);
-                System.out.println("a01startval " + a01startval + " written to PLC at address " + A01start);
-              }
 
 
               System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
@@ -286,17 +282,7 @@
             }
             if (!sValue2.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses2, sValue2);
-              if (A02readstart != null && !A02readstart.isEmpty()) {
-                // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                List<Boolean> a02startval = new ArrayList<>();
-                // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                for (Boolean bit : A02readstart) {
-                  // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                  a02startval.add(!bit);
-                }
-                // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                S7control.getinstance().WriteBit(A02start, a02startval);
-              }
+
 
 
               System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
@@ -323,17 +309,7 @@
             }
             if (!sValue2.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses3, sValue2);
-              if (B01readstart != null && !B01readstart.isEmpty()) {
-                // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                List<Boolean> b01startval = new ArrayList<>();
-                // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                for (Boolean bit : B01readstart) {
-                  // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                  b01startval.add(!bit);
-                }
-                // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                S7control.getinstance().WriteBit(B01start, b01startval);
-              }
+
               System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses3);
             }
           }
@@ -358,18 +334,7 @@
             }
             if (!sValue2.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses4, sValue2);
-              if (B02readstart != null && !B02readstart.isEmpty()) {
-                // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                List<Boolean> b02startval = new ArrayList<>();
-                // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                for (Boolean bit : B02readstart) {
-                  // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                  b02startval.add(!bit);
-                }
-                // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                S7control.getinstance().WriteBit(B02start, b02startval);
-                System.out.println("Values " + b02startval + " written to PLC at address " + B02start);
-              }
+
               System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses4);
             }
           }
@@ -446,6 +411,11 @@
             }
           }
 
+          customS7Control.writeBitToPLC( messageArray, A01start,7);
+          customS7Control.writeBitToPLC( messageArray, A02start,8);
+          customS7Control.writeBitToPLC( messageArray,B01start,9);
+          customS7Control.writeBitToPLC( messageArray, B02start,10);
+
           // 娓呯┖娑堟伅鍒楄〃
           webserver.clearMessages();
         }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
index 51b0640..2947528 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
@@ -16,6 +16,8 @@
     config = new Configuration("config.properties");
   }
 
+
+  MessageHandler customS7Control = new MessageHandler();
   public static class PLCBooleanConverter {
 
     public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
@@ -197,17 +199,7 @@
                 }
                 if (!sValue.isEmpty()) {
                   S7control.getinstance().WriteWord(waddresses1, sValue);
-                  if (A01readstart != null && !A01readstart.isEmpty()) {
-                    // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                    List<Boolean> a01startval = new ArrayList<>();
-                    // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                    for (Boolean bit : A01readstart) {
-                      // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                      a01startval.add(!bit);
-                    }
-                    // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                    S7control.getinstance().WriteBit(A01start, a01startval);
-                  }
+
                   System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
                 }
               }
@@ -232,17 +224,7 @@
                 }
                 if (!sValue2.isEmpty()) {
                   S7control.getinstance().WriteWord(waddresses2, sValue2);
-                  if (A02readstart != null && !A02readstart.isEmpty()) {
-                    // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                    List<Boolean> a02startval = new ArrayList<>();
-                    // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                    for (Boolean bit : A02readstart) {
-                      // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                      a02startval.add(!bit);
-                    }
-                    // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                    S7control.getinstance().WriteBit(A02start, a02startval);
-                  }
+
                   System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
                 }
               }
@@ -319,6 +301,10 @@
                 }
               }
 
+
+              customS7Control.writeBitToPLC( messageArray, A01start,5);
+              customS7Control.writeBitToPLC( messageArray, A02start,6);
+
               // 娓呯┖娑堟伅鍒楄〃
               webserver.clearMessages();
             }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
index eb37fda..361b818 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
@@ -69,7 +69,7 @@
         e.printStackTrace();
       }
 
-   //    鎵嬪姩鐘舵�佸湴鍧�
+     //  鎵嬪姩鐘舵�佸湴鍧�
       List<String> addressList1 = new ArrayList<>();
 
       addressList1.add("DB103.44");//D01
@@ -152,7 +152,7 @@
 
 
 
-
+//
 //      String[] values6 = { ".x1 ","x2 ","x3",";;x4","x5","x6","x7","x8","x9","x10","x11"};
 //      List<String> paramlist = new ArrayList<>(Arrays.asList(values6));
 //      Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
@@ -172,7 +172,7 @@
         boolean value = data2.get(i);
         params[i] = value ? (short) 1 : (short) 0;
       }
-
+//
       short[] anniuparams = new short[anniuread.size()];
       for (int i = 0; i < anniuread.size(); i++) {
         boolean value = anniuread.get(i);
@@ -184,94 +184,102 @@
       jsonObject.append("params", data);
       jsonObject.append("params", data3);
       jsonObject.append("params", data4);
-      jsonObject.append("jiting", anniuparams);
+     jsonObject.append("jiting", anniuparams);
 
 
+//      WebSocketServer sendwServer = WebSocketServer.getWebSocketServer("Parameter2");
+//      if (sendwServer != null) {
+//        JSONObject jsonObject = new JSONObject();
+//        jsonObject.set("message", "Hello, Parameter2!");
+//        sendwServer.sendMessage(jsonObject.toString());
+//      }
 
       ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2");
  if (sendwServer != null) {
- for (WebSocketServer webserver : sendwServer) {
- webserver.sendMessage(jsonObject.toString());
+     for (WebSocketServer webserver : sendwServer) {
+
+         webserver.sendMessage(jsonObject.toString());
 
 
+         if (webserver != null) {
 
 
-        List<String> messages = webserver.getMessages();
-        List<String> addressList = new ArrayList<>();
+             List<String> messages = webserver.getMessages();
+             List<String> addressList = new ArrayList<>();
 
-        addressList.add("DB101.9.2");
-        addressList.add("DB101.9.3");
-        addressList.add("DB101.9.4");
-        addressList.add("DB101.9.5");
-        addressList.add("DB101.9.6");
-        addressList.add("DB101.9.7");
-        addressList.add("DB101.10.0");
-        addressList.add("DB101.10.1");
-        addressList.add("DB101.10.2");
-        addressList.add("DB101.10.3");
+             addressList.add("DB101.9.2");
+             addressList.add("DB101.9.3");
+             addressList.add("DB101.9.4");
+             addressList.add("DB101.9.5");
+             addressList.add("DB101.9.6");
+             addressList.add("DB101.9.7");
+             addressList.add("DB101.10.0");
+             addressList.add("DB101.10.1");
+             addressList.add("DB101.10.2");
+             addressList.add("DB101.10.3");
 
 
-
-        if (!messages.isEmpty()) {
-          // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-          String lastMessage = messages.get(messages.size() - 1);
+             if (!messages.isEmpty()) {
+                 // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                 String lastMessage = messages.get(messages.size() - 1);
 //        System.out.println("lastMessage锛�" + lastMessage);
-          JSONArray messageArray = new JSONArray(lastMessage);
+                 JSONArray messageArray = new JSONArray(lastMessage);
 
-          if (messageArray.getJSONArray(0).size() > 0) {
-            JSONArray jsonArray3 = messageArray.getJSONArray(0);
-            List<Boolean> sValue3 = new ArrayList<>();
-            for (int i = 0; i < jsonArray3.size(); i++) {
-              Object value = jsonArray3.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  boolean val = "1".equals(cleanedValue.trim());
-                  sValue3.add(val);
-                  System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue3.isEmpty()) {
-             S7control.getinstance().WriteBit(addressList, sValue3);
-              System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3);
-            }
-          }
-          // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
-          if (messageArray.getJSONArray(1).size() > 0) {
-            JSONArray jsonArray3 = messageArray.getJSONArray(1);
-            List<Boolean> sValue3 = new ArrayList<>();
-            for (int i = 0; i < jsonArray3.size(); i++) {
-              Object value = jsonArray3.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  boolean val = "1".equals(cleanedValue.trim());
-                  sValue3.add(val);
-                  System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue3.isEmpty()) {
-            S7control.getinstance().WriteBit(niuanaddressList3, sValue3);
+                 if (messageArray.getJSONArray(0).size() > 0) {
+                     JSONArray jsonArray3 = messageArray.getJSONArray(0);
+                     List<Boolean> sValue3 = new ArrayList<>();
+                     for (int i = 0; i < jsonArray3.size(); i++) {
+                         Object value = jsonArray3.get(i);
+                         if (value != null && !value.toString().equals("null")) {
+                             try {
+                                 String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                                 boolean val = "1".equals(cleanedValue.trim());
+                                 sValue3.add(val);
+                                 System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
+                             } catch (NumberFormatException e) {
+                                 // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                                 System.err.println("Could not parse value: " + value);
+                             }
+                         }
+                     }
+                     if (!sValue3.isEmpty()) {
+           S7control.getinstance().WriteBit(addressList, sValue3);
+                         System.out.println("Values " + sValue3 + " written to PLC at address " + addressList);
+                     }
+                 }
+                 // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
+                 if (messageArray.getJSONArray(1).size() > 0) {
+                     JSONArray jsonArray3 = messageArray.getJSONArray(1);
+                     List<Boolean> sValue3 = new ArrayList<>();
+                     for (int i = 0; i < jsonArray3.size(); i++) {
+                         Object value = jsonArray3.get(i);
+                         if (value != null && !value.toString().equals("null")) {
+                             try {
+                                 String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                                 boolean val = "1".equals(cleanedValue.trim());
+                                 sValue3.add(val);
+                                 System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
+                             } catch (NumberFormatException e) {
+                                 // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                                 System.err.println("Could not parse value: " + value);
+                             }
+                         }
+                     }
+                     if (!sValue3.isEmpty()) {
+             S7control.getinstance().WriteBit(niuanaddressList3, sValue3);
 
-              System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3);
-            }
-          }
+                         System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3);
+                     }
+                 }
 
 
-          // 娓呯┖娑堟伅鍒楄〃
-            webserver.clearMessages();
-        }
-      }
+                 // 娓呯┖娑堟伅鍒楄〃
+                 webserver.clearMessages();
+             }
+         }
+     }
  }
-    }
+      }
     }
   }
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
index 9ec4c88..6c3299a 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
@@ -80,7 +80,7 @@
 
             // System.out.println(stt);
             //瀛樼墖鏍�  鍑虹墖鏍艰鍙�
-  List<Short> arraylist = S7control.getinstance().ReadWord("DB100.42", 23);
+  List<Short> arraylist = S7control.getinstance().ReadWord("DB100.42", 33);
 //            System.out.println(arraylist);
 //            Short[] 瀛樼墖 = { 1 };
 //            List<Short> 瀛樼墖1 = new ArrayList<>(Arrays.asList(瀛樼墖));
@@ -122,7 +122,7 @@
 
                             // 鏁村悎绗� 1 鍒� 3 涓暟缁勫苟鍘绘帀 null 鍏冪礌
                             List<Short> mergedList = new ArrayList<>();
-                            for (int i = 0; i < 5; i++) {
+                            for (int i = 0; i < 7; i++) {
                                 JSONArray sublist = messageArray.getJSONArray(i);
                                 for (int j = 0; j < sublist.size(); j++) {
                                     Object value = sublist.get(j);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
index b3f59ca..7d5e20e 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
@@ -139,9 +139,10 @@
       List<Boolean> resumeTasks = S7control.getinstance().readBits(abortresumeTasks);
 
       short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
-              A01readstart, A01readBstart, A02readstart, A02readsBtart
+              A01readBstart, A01readstart,   A02readsBtart,A02readstart
       );
 
+//      System.out.println(A01readBstart);
 
 // 鎵�鏈夋晠闅滄寜閽浆鎹负1鍜�0
       short[] params2 = new short[arraylist7.size()];
@@ -255,34 +256,17 @@
 
               // 鍐欏叆AO1缁勫悎
               customS7Control.WriteWordToPLC(messageArray, addresses,0);
-              if (A01readstart != null && !A01readstart.isEmpty()) {
-                // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                List<Boolean> a01startval = new ArrayList<>();
-                // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                for (Boolean bit : A01readstart) {
-                  // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                  a01startval.add(!bit);
-                }
-                // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                S7control.getinstance().WriteBit(A01start, a01startval);
-              }
 
+              //A01鍗婅嚜鍔ㄥ惎鍔�
+              customS7Control.writeBitToPLC( messageArray, A01start,8);
 
 
               // 鍐欏叆AO2缁勫悎
               customS7Control.WriteWordToPLC(messageArray, addresses2,1);
+              //A02鍗婅嚜鍔ㄥ惎鍔�
 
-              if (A02readstart != null && !A02readstart.isEmpty()) {
-                // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                List<Boolean> a02startval = new ArrayList<>();
-                // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                for (Boolean bit : A02readstart) {
-                  // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                  a02startval.add(!bit);
-                }
-                // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                S7control.getinstance().WriteBit(A02start, a02startval);
-              }
+              customS7Control.writeBitToPLC( messageArray, A02start,9);
+
 
 
               // 澶嶄綅鎸夐挳鍐欏叆
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
index 226f0b0..36f2afb 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -215,7 +215,7 @@
              return null;
         return s7PLC.readBoolean(addresslist);
     }
-
+//璇诲彇涓嶈繛缁湴鍧�bit
     public List<Boolean> readBits(List<String> addressList) {
         if (s7PLC == null || addressList.isEmpty()) {
             return null;
@@ -230,7 +230,7 @@
         return values;
     }
 
-
+//璇诲彇String
     public List<String> readStrings(List<String> addressList) {
         if (s7PLC == null) {
             return null;
@@ -264,7 +264,7 @@
         return result;
     }
 
-
+//涓嶈繛缁湴鍧�鍐欏叆Word
     public void WriteWord(List<String> address, List<Short> datas) {
         if (s7PLC == null)
             return;
@@ -283,7 +283,7 @@
     
     
     
-
+//瀛楃涓插啓鍏�
     public void outmesid(String data, String addr) {
 //        System.out.println("outmesid: " + data);
         List<Byte> glassidlist = new ArrayList<>();
@@ -316,7 +316,7 @@
 
         return data;
     }
-
+//璇诲彇鏃堕棿
     public Long readtime(String address) {
         if (s7PLC==null)
             return null;
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 715295f..53913d9 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
@@ -11,34 +11,31 @@
 
 public class AppRunnerConfig implements ApplicationRunner {
 
-  @Override
-  public void run(ApplicationArguments args) throws Exception {
-    // TODO Auto-generated method stub
-    //
-    System.out.println("鍚姩瀹屾垚");
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        // TODO Auto-generated method stub
+        //
+        System.out.println("鍚姩瀹屾垚");
 
 new PlcHold().start();
-//
-    //
-  new Plchome().start();
-////    //
-//      new PlcParameter().start();
-//      //
-//      new Plcalarm().start();
-//      //
-//      new Plcsign().start();
-//      //
-//      new Plcaction().start();
-//      new Plcstate().start();
-//      new PlcPositioning1().start();
-//      new PlcPositioning2().start();
-    //  new PlcParameter2().start();
-//      new PlcParameter1().start();
-//      new PLCAutomaticParameterSetting().start();
-//
-//      new PlcManualonePosition().start();
-//      new PlcManualonePosition2().start();
-//      new PlcServoManualone().start();
-//      new PLCManualJog().start();
-  }
+
+        new Plchome().start();
+
+        new Plcalarm().start();
+
+        new Plcsign().start();
+
+        new Plcaction().start();
+        new Plcstate().start();
+        new PlcPositioning1().start();
+
+        new PlcParameter2().start();
+
+        new PLCAutomaticParameterSetting().start();
+
+        new PlcManualonePosition().start();
+        new PlcManualonePosition2().start();
+        new PlcServoManualone().start();
+        new PLCManualJog().start();
+    }
 }
\ No newline at end of file
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java
index 2c00982..952d0a0 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java
@@ -13,7 +13,7 @@
 @Mapper
 @Repository
 public interface RolePermissionMapper extends BaseMapper<RolePermission> {
-
+    List<RolePermission> selectByNameLike(@Param("name") String name);
     @Select("SELECT rp.state,rp.permission_id,rp.role_id, p.* FROM role_permission AS rp JOIN permission AS p ON rp.permission_id = p.id WHERE rp.role_id = #{roleId}")
     List<Map<String, Object>> selectquanxian(@Param("roleId") int roleId);
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/impl/RolePermissionServiceImpl.java b/springboot-vue3/src/main/java/com/example/springboot/service/impl/RolePermissionServiceImpl.java
index b6abbeb..3648bc8 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/impl/RolePermissionServiceImpl.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/impl/RolePermissionServiceImpl.java
@@ -1,12 +1,15 @@
 package com.example.springboot.service.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.springboot.entity.MenuList;
 import com.example.springboot.service.PermissionService;
 import com.example.springboot.mapper.RolePermissionMapper;
 import com.example.springboot.entity.RolePermission;
 import com.example.springboot.entity.vo.RolePermissionVo;
+
 import com.example.springboot.service.RolePermissionService;
 import com.example.springboot.service.RoleService;
 import lombok.extern.slf4j.Slf4j;
@@ -22,14 +25,19 @@
     private PermissionService permissionService;
 
     @Override
+
     public IPage<RolePermission> selectPage(RolePermissionVo rolePermissionVO) {
         IPage<RolePermission> rolePermissionIPage = lambdaQuery()
                 .orderByAsc(RolePermission::getRoleId)
+                .like(StrUtil.isNotBlank(rolePermissionVO.getName()), RolePermission::getName, rolePermissionVO.getName())
                 .page(new Page<>(rolePermissionVO.getPageNum(), rolePermissionVO.getPageSize()));
+
         rolePermissionIPage.getRecords().forEach(rolePermission -> {
             rolePermission.setRole(roleService.getById(rolePermission.getRoleId()));
             rolePermission.setPermission(permissionService.getById(rolePermission.getPermissionId()));
         });
+
         return rolePermissionIPage;
     }
+
 }
diff --git a/springboot-vue3/src/main/resources/config.properties b/springboot-vue3/src/main/resources/config.properties
index 7d251cb..296a448 100644
--- a/springboot-vue3/src/main/resources/config.properties
+++ b/springboot-vue3/src/main/resources/config.properties
@@ -27,9 +27,9 @@
 A02start=DB101.5.1
 #A01start
 A01start=DB101.5.0
-#A02start
+#A02bstart
 A02Bstart=DB101.11.1
-#A01start
+#A01bstart
 A01Bstart=DB101.11.0
 #abort/resumeTasks
 abortresumeTasks=DB101.10.4
@@ -53,4 +53,60 @@
 
 
 
-#PLCManualJog--------------------------
\ No newline at end of file
+#PLCManualJog--------------------------
+
+
+
+#Parameter2--------------------------
+
+#id
+Parameter2.id=DB103.44,DB103.58,DB103.72,DB103.86,DB103.100,DB103.114,DB103.128,DB103.142,DB103.156,DB103.184,DB103.212
+
+#娓呴櫎id
+Parameter2.state=DB103.0,DB103.2,DB103.12,DB103.14,DB103.16,DB103.18,DB103.8,DB103.10,DB103.4,DB103.6
+
+
+
+#鎵嬪姩鐘舵��
+Parameter2.cleanid=DB101.9.2,DB101.9.3,DB101.9.4,DB101.9.5,DB101.9.6,DB101.9.7,DB101.10.0,DB101.10.1,DB101.10.2,DB101.10.3
+#鎵爜鏋�
+Parameter2.scanner=DB103.256,DB103.270
+
+#鎬ュ仠
+Parameter2.stop=DB101.10.4
+
+#褰撳墠鏍煎瓙
+Parameter2.Currentcell=DB103.32,DB103.34,DB103.36,DB103.40
+
+#PLCManualJog-------------------------------------
+
+#List<String> addressList21 = new ArrayList<>();
+#addressList21.add("DB101.0.0");
+#addressList21.add("DB101.0.1");
+#addressList21.add("DB101.0.2");
+#addressList21.add("DB101.0.3");
+#addressList21.add("DB101.0.4");
+#addressList21.add("DB101.0.5");
+#addressList21.add("DB101.0.6");
+#addressList21.add("DB101.3.4");
+#addressList21.add("DB101.1.4");
+#addressList21.add("DB101.1.2"); //A01 SERVE TURN
+#addressList21.add("DB101.5.2");
+#addressList21.add("DB101.0.7");//A02 VFD conveyor
+#addressList21.add("DB101.3.5");
+#addressList21.add("DB101.1.5");
+#addressList21.add("DB101.1.3");
+#addressList21.add("DB101.5.3");
+#addressList21.add("DB101.1.0");//B01 VFD conveyor
+#addressList21.add("DB101.1.6");
+#addressList21.add("DB101.2.6");
+#addressList21.add("DB101.2.7");
+#addressList21.add("DB101.3.2");
+#
+#addressList21.add("DB101.1.1");//B02 VFD conveyor
+#addressList21.add("DB101.1.7");
+#addressList21.add("DB101.3.0");
+#addressList21.add("DB101.3.1");
+#addressList21.add("DB101.3.3");
+#鎸夐挳
+PLCManualJog.button=DB101.0.0,DB101.0.1,DB101.0.2,DB101.0.3,DB101.0.4,DB101.0.5,DB101.0.6,DB101.3.4,DB101.1.4,DB101.1.2,DB101.5.2,DB101.0.7,DB101.3.5,DB101.1.5,DB101.1.3,DB101.5.3,DB101.1.0,DB101.1.6,DB101.2.6,DB101.2.7,DB101.3.2,DB101.1.1,DB101.1.7,DB101.3.0,DB101.3.1,DB101.3.3
diff --git a/springboot-vue3/src/main/resources/sql/canadames.sql b/springboot-vue3/src/main/resources/sql/canadames.sql
index f5ea62f..a9b4d90 100644
--- a/springboot-vue3/src/main/resources/sql/canadames.sql
+++ b/springboot-vue3/src/main/resources/sql/canadames.sql
@@ -11,7 +11,7 @@
  Target Server Version : 80022
  File Encoding         : 65001
 
- Date: 07/12/2023 11:39:42
+ Date: 11/12/2023 13:35:48
 */
 
 SET NAMES utf8mb4;
@@ -27,7 +27,7 @@
   `timeon` datetime(0) NULL DEFAULT NULL COMMENT '寮�濮嬫椂闂�',
   `endTime` datetime(0) NULL DEFAULT NULL COMMENT '缁撴潫鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1397 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 1742 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of alarmmg
@@ -171,10 +171,273 @@
 INSERT INTO `alarmmg` VALUES (1472, 'A02 conveyor Left safety alarm', '2023-12-06 16:20:28', '2023-12-06 16:20:31');
 INSERT INTO `alarmmg` VALUES (1473, 'A01 conveyor right safety alarm', '2023-12-06 16:31:59', '2023-12-06 16:32:02');
 INSERT INTO `alarmmg` VALUES (1474, 'A01 conveyor right safety alarm', '2023-12-06 16:32:17', '2023-12-06 16:32:20');
-INSERT INTO `alarmmg` VALUES (1475, 'A01 servo turn error', '2023-12-07 11:21:49', NULL);
-INSERT INTO `alarmmg` VALUES (1476, 'A02 servo turn error', '2023-12-07 11:21:49', NULL);
-INSERT INTO `alarmmg` VALUES (1477, 'A01 servo travel error', '2023-12-07 11:22:19', NULL);
-INSERT INTO `alarmmg` VALUES (1478, 'A02 servo travel error', '2023-12-07 11:22:22', NULL);
+INSERT INTO `alarmmg` VALUES (1475, 'A01 servo turn error', '2023-12-07 11:21:49', '2023-12-07 13:34:48');
+INSERT INTO `alarmmg` VALUES (1476, 'A02 servo turn error', '2023-12-07 11:21:49', '2023-12-07 13:34:48');
+INSERT INTO `alarmmg` VALUES (1477, 'A01 servo travel error', '2023-12-07 11:22:19', '2023-12-07 13:34:48');
+INSERT INTO `alarmmg` VALUES (1478, 'A02 servo travel error', '2023-12-07 11:22:22', '2023-12-07 13:34:48');
+INSERT INTO `alarmmg` VALUES (1479, 'D02 VFD error', '2023-12-07 13:45:51', '2023-12-07 13:45:52');
+INSERT INTO `alarmmg` VALUES (1480, 'A01 servo turn error', '2023-12-07 13:45:55', '2023-12-07 13:46:35');
+INSERT INTO `alarmmg` VALUES (1481, 'A02 servo turn error', '2023-12-07 13:45:55', '2023-12-07 13:46:35');
+INSERT INTO `alarmmg` VALUES (1482, 'D03 VFD error', '2023-12-07 13:46:17', '2023-12-07 13:46:37');
+INSERT INTO `alarmmg` VALUES (1483, 'D04 VFD error', '2023-12-07 13:46:17', '2023-12-07 13:46:37');
+INSERT INTO `alarmmg` VALUES (1484, 'D05 VFD error', '2023-12-07 13:46:17', '2023-12-07 13:46:37');
+INSERT INTO `alarmmg` VALUES (1485, 'A01 servo travel error', '2023-12-07 13:46:30', '2023-12-07 13:46:37');
+INSERT INTO `alarmmg` VALUES (1486, 'A02 servo travel error', '2023-12-07 13:46:30', '2023-12-07 13:46:37');
+INSERT INTO `alarmmg` VALUES (1487, 'A01 servo turn error', '2023-12-07 13:46:50', '2023-12-07 13:47:37');
+INSERT INTO `alarmmg` VALUES (1488, 'A02 servo turn error', '2023-12-07 13:46:50', '2023-12-07 13:47:37');
+INSERT INTO `alarmmg` VALUES (1489, 'A01 servo travel error', '2023-12-07 13:47:16', '2023-12-07 13:47:37');
+INSERT INTO `alarmmg` VALUES (1490, 'A02 servo travel error', '2023-12-07 13:47:16', '2023-12-07 13:47:37');
+INSERT INTO `alarmmg` VALUES (1491, 'More glass than known', '2023-12-07 13:56:56', '2023-12-07 13:57:35');
+INSERT INTO `alarmmg` VALUES (1492, 'less glass than known', '2023-12-07 13:57:36', '2023-12-07 13:57:48');
+INSERT INTO `alarmmg` VALUES (1493, 'More glass than known', '2023-12-07 13:57:48', '2023-12-07 14:07:27');
+INSERT INTO `alarmmg` VALUES (1494, 'More glass than known', '2023-12-07 14:09:01', '2023-12-07 14:09:14');
+INSERT INTO `alarmmg` VALUES (1495, 'less glass than known', '2023-12-07 14:09:15', '2023-12-07 14:19:19');
+INSERT INTO `alarmmg` VALUES (1496, 'A01 servo travel error', '2023-12-07 14:40:51', '2023-12-07 14:41:14');
+INSERT INTO `alarmmg` VALUES (1497, 'A01 conveyor right safety alarm', '2023-12-07 14:47:06', '2023-12-07 14:47:09');
+INSERT INTO `alarmmg` VALUES (1498, 'A01 servo turn error', '2023-12-07 14:49:31', '2023-12-07 14:51:34');
+INSERT INTO `alarmmg` VALUES (1499, 'A02 servo turn error', '2023-12-07 14:49:31', '2023-12-07 14:51:34');
+INSERT INTO `alarmmg` VALUES (1500, 'A01 servo travel error', '2023-12-07 14:50:05', '2023-12-07 14:51:34');
+INSERT INTO `alarmmg` VALUES (1501, 'A02 servo travel error', '2023-12-07 14:50:05', '2023-12-07 14:51:34');
+INSERT INTO `alarmmg` VALUES (1502, 'A01 conveyor right safety alarm', '2023-12-07 15:11:25', '2023-12-07 15:11:28');
+INSERT INTO `alarmmg` VALUES (1503, 'A01 servo turn error', '2023-12-07 15:12:17', '2023-12-07 15:12:26');
+INSERT INTO `alarmmg` VALUES (1504, 'A02 servo turn error', '2023-12-07 15:12:17', '2023-12-07 15:12:26');
+INSERT INTO `alarmmg` VALUES (1505, 'A02 servo travel error', '2023-12-07 15:12:17', '2023-12-07 15:12:26');
+INSERT INTO `alarmmg` VALUES (1506, 'A01 servo travel error', '2023-12-07 15:12:20', '2023-12-07 15:12:26');
+INSERT INTO `alarmmg` VALUES (1507, 'A01 servo turn error', '2023-12-07 15:12:27', '2023-12-07 15:12:29');
+INSERT INTO `alarmmg` VALUES (1508, 'A01 conveyor right safety alarm', '2023-12-07 15:13:30', '2023-12-07 15:14:59');
+INSERT INTO `alarmmg` VALUES (1509, 'A01 VFD error', '2023-12-07 15:14:57', '2023-12-07 15:14:58');
+INSERT INTO `alarmmg` VALUES (1510, 'A01 servo turn error', '2023-12-07 15:15:08', '2023-12-07 15:16:49');
+INSERT INTO `alarmmg` VALUES (1511, 'A02 servo turn error', '2023-12-07 15:15:08', '2023-12-07 15:16:49');
+INSERT INTO `alarmmg` VALUES (1512, 'A02 servo travel error', '2023-12-07 15:15:38', '2023-12-07 15:16:49');
+INSERT INTO `alarmmg` VALUES (1513, 'A01 conveyor right safety alarm', '2023-12-07 15:15:38', '2023-12-07 15:18:11');
+INSERT INTO `alarmmg` VALUES (1514, 'A01 servo travel error', '2023-12-07 15:15:40', '2023-12-07 15:16:49');
+INSERT INTO `alarmmg` VALUES (1515, 'A01 servo turn error', '2023-12-07 15:25:11', '2023-12-07 15:25:46');
+INSERT INTO `alarmmg` VALUES (1516, 'A02 servo turn error', '2023-12-07 15:25:11', '2023-12-07 15:25:46');
+INSERT INTO `alarmmg` VALUES (1517, 'A01 servo travel error', '2023-12-07 15:25:38', '2023-12-07 15:25:46');
+INSERT INTO `alarmmg` VALUES (1518, 'A02 servo travel error', '2023-12-07 15:25:38', '2023-12-07 15:25:46');
+INSERT INTO `alarmmg` VALUES (1519, 'A02 conveyor Left safety alarm', '2023-12-07 15:31:15', '2023-12-07 15:31:18');
+INSERT INTO `alarmmg` VALUES (1520, 'A01 servo turn error', '2023-12-07 15:31:48', '2023-12-07 15:32:24');
+INSERT INTO `alarmmg` VALUES (1521, 'A02 servo turn error', '2023-12-07 15:31:48', '2023-12-07 15:32:20');
+INSERT INTO `alarmmg` VALUES (1522, 'A02 servo travel error', '2023-12-07 15:32:10', '2023-12-07 15:32:13');
+INSERT INTO `alarmmg` VALUES (1523, 'A01 servo travel error', '2023-12-07 15:32:17', '2023-12-07 15:32:18');
+INSERT INTO `alarmmg` VALUES (1524, 'A02 conveyor Left safety alarm', '2023-12-07 15:33:06', '2023-12-07 15:33:09');
+INSERT INTO `alarmmg` VALUES (1525, 'A01 servo turn error', '2023-12-07 15:33:21', '2023-12-07 15:35:32');
+INSERT INTO `alarmmg` VALUES (1526, 'A02 servo turn error', '2023-12-07 15:33:21', '2023-12-07 15:35:32');
+INSERT INTO `alarmmg` VALUES (1527, 'A02 servo travel error', '2023-12-07 15:33:47', '2023-12-07 15:35:34');
+INSERT INTO `alarmmg` VALUES (1528, 'A02 conveyor Left safety alarm', '2023-12-07 15:33:47', '2023-12-07 15:35:34');
+INSERT INTO `alarmmg` VALUES (1529, 'A01 servo travel error', '2023-12-07 15:33:53', '2023-12-07 15:35:34');
+INSERT INTO `alarmmg` VALUES (1530, 'A01 servo turn error', '2023-12-07 15:37:15', '2023-12-07 15:38:14');
+INSERT INTO `alarmmg` VALUES (1531, 'A02 servo turn error', '2023-12-07 15:37:15', '2023-12-07 15:38:14');
+INSERT INTO `alarmmg` VALUES (1532, 'A01 servo travel error', '2023-12-07 15:37:45', '2023-12-07 15:38:13');
+INSERT INTO `alarmmg` VALUES (1533, 'A01 conveyor right safety alarm', '2023-12-07 16:01:56', '2023-12-07 16:01:59');
+INSERT INTO `alarmmg` VALUES (1534, 'D02 VFD error', '2023-12-07 16:01:58', '2023-12-07 16:01:59');
+INSERT INTO `alarmmg` VALUES (1535, 'A01 VFD error', '2023-12-07 16:01:58', '2023-12-07 16:01:59');
+INSERT INTO `alarmmg` VALUES (1536, 'A01 servo turn error', '2023-12-07 16:05:46', '2023-12-07 16:06:22');
+INSERT INTO `alarmmg` VALUES (1537, 'A02 servo turn error', '2023-12-07 16:05:46', '2023-12-07 16:06:22');
+INSERT INTO `alarmmg` VALUES (1538, 'A01 servo travel error', '2023-12-07 16:06:12', '2023-12-07 16:06:21');
+INSERT INTO `alarmmg` VALUES (1539, 'A02 servo travel error', '2023-12-07 16:06:12', '2023-12-07 16:06:21');
+INSERT INTO `alarmmg` VALUES (1540, 'A01 conveyor right safety alarm', '2023-12-07 16:10:13', '2023-12-07 16:10:15');
+INSERT INTO `alarmmg` VALUES (1541, 'A01 conveyor right safety alarm', '2023-12-07 16:10:34', '2023-12-07 16:10:35');
+INSERT INTO `alarmmg` VALUES (1542, 'A01 servo turn error', '2023-12-07 16:12:10', '2023-12-07 16:12:36');
+INSERT INTO `alarmmg` VALUES (1543, 'A02 servo turn error', '2023-12-07 16:12:10', '2023-12-07 16:12:36');
+INSERT INTO `alarmmg` VALUES (1544, 'A01 servo turn error', '2023-12-07 16:13:28', '2023-12-07 16:14:06');
+INSERT INTO `alarmmg` VALUES (1545, 'A02 servo turn error', '2023-12-07 16:13:28', '2023-12-07 16:14:06');
+INSERT INTO `alarmmg` VALUES (1546, 'A01 servo travel error', '2023-12-07 16:13:57', '2023-12-07 16:14:06');
+INSERT INTO `alarmmg` VALUES (1547, 'A02 servo travel error', '2023-12-07 16:13:57', '2023-12-07 16:14:06');
+INSERT INTO `alarmmg` VALUES (1548, 'A01 conveyor right safety alarm', '2023-12-07 16:15:51', '2023-12-07 16:15:54');
+INSERT INTO `alarmmg` VALUES (1549, 'A01 conveyor right safety alarm', '2023-12-07 16:16:12', '2023-12-07 16:16:14');
+INSERT INTO `alarmmg` VALUES (1550, '1# buffer safety alarm', '2023-12-07 16:16:13', '2023-12-07 16:19:27');
+INSERT INTO `alarmmg` VALUES (1551, 'A01 servo turn error', '2023-12-07 16:16:27', '2023-12-07 16:16:59');
+INSERT INTO `alarmmg` VALUES (1552, 'A02 servo turn error', '2023-12-07 16:16:27', '2023-12-07 16:17:11');
+INSERT INTO `alarmmg` VALUES (1553, 'A01 servo travel error', '2023-12-07 16:16:58', '2023-12-07 16:16:59');
+INSERT INTO `alarmmg` VALUES (1554, 'A02 servo travel error', '2023-12-07 16:16:58', '2023-12-07 16:16:59');
+INSERT INTO `alarmmg` VALUES (1555, 'A01 conveyor right safety alarm', '2023-12-07 16:16:58', '2023-12-07 16:18:35');
+INSERT INTO `alarmmg` VALUES (1556, 'A01 servo turn error', '2023-12-07 16:17:00', '2023-12-07 16:17:10');
+INSERT INTO `alarmmg` VALUES (1557, 'B01 VFD error', '2023-12-07 16:18:35', '2023-12-07 16:18:36');
+INSERT INTO `alarmmg` VALUES (1558, 'A01 servo turn error', '2023-12-07 16:18:53', '2023-12-07 16:19:05');
+INSERT INTO `alarmmg` VALUES (1559, 'A02 servo turn error', '2023-12-07 16:18:53', '2023-12-07 16:19:05');
+INSERT INTO `alarmmg` VALUES (1560, 'D02 VFD error', '2023-12-07 16:18:58', '2023-12-07 16:19:06');
+INSERT INTO `alarmmg` VALUES (1561, 'D03 VFD error', '2023-12-07 16:18:58', '2023-12-07 16:19:06');
+INSERT INTO `alarmmg` VALUES (1562, 'D04 VFD error', '2023-12-07 16:18:58', '2023-12-07 16:19:06');
+INSERT INTO `alarmmg` VALUES (1563, 'D05 VFD error', '2023-12-07 16:18:58', '2023-12-07 16:19:06');
+INSERT INTO `alarmmg` VALUES (1564, 'D06 VFD error', '2023-12-07 16:18:58', '2023-12-07 16:19:06');
+INSERT INTO `alarmmg` VALUES (1565, 'A01 servo turn error', '2023-12-07 16:21:09', '2023-12-07 16:23:03');
+INSERT INTO `alarmmg` VALUES (1566, 'A02 servo turn error', '2023-12-07 16:21:09', '2023-12-07 16:23:03');
+INSERT INTO `alarmmg` VALUES (1567, 'A01 servo travel error', '2023-12-07 16:21:41', '2023-12-07 16:23:03');
+INSERT INTO `alarmmg` VALUES (1568, 'A01 conveyor right safety alarm', '2023-12-07 16:27:01', '2023-12-07 16:27:03');
+INSERT INTO `alarmmg` VALUES (1569, 'A01 conveyor right safety alarm', '2023-12-07 16:27:22', '2023-12-07 16:27:24');
+INSERT INTO `alarmmg` VALUES (1570, '1# buffer safety alarm', '2023-12-07 16:27:22', '2023-12-07 16:34:37');
+INSERT INTO `alarmmg` VALUES (1571, 'B01 VFD error', '2023-12-07 16:27:23', '2023-12-07 16:27:24');
+INSERT INTO `alarmmg` VALUES (1572, 'A01 VFD error', '2023-12-07 16:27:23', '2023-12-07 16:27:24');
+INSERT INTO `alarmmg` VALUES (1573, 'A01 servo travel error', '2023-12-07 16:28:02', '2023-12-07 16:28:22');
+INSERT INTO `alarmmg` VALUES (1574, 'A02 servo travel error', '2023-12-07 16:28:02', '2023-12-07 16:28:22');
+INSERT INTO `alarmmg` VALUES (1575, 'A01 conveyor right safety alarm', '2023-12-07 16:28:02', '2023-12-07 16:34:37');
+INSERT INTO `alarmmg` VALUES (1576, 'A02 servo turn error', '2023-12-07 16:28:22', '2023-12-07 16:28:23');
+INSERT INTO `alarmmg` VALUES (1577, 'A01 servo turn error', '2023-12-07 16:34:41', '2023-12-07 16:39:08');
+INSERT INTO `alarmmg` VALUES (1578, 'A01 servo turn error', '2023-12-07 16:39:22', '2023-12-07 16:40:18');
+INSERT INTO `alarmmg` VALUES (1579, 'A02 servo turn error', '2023-12-07 16:39:22', '2023-12-07 16:40:18');
+INSERT INTO `alarmmg` VALUES (1580, 'A02 servo travel error', '2023-12-07 16:39:49', '2023-12-07 16:40:16');
+INSERT INTO `alarmmg` VALUES (1581, 'A01 servo travel error', '2023-12-07 16:39:52', '2023-12-07 16:40:16');
+INSERT INTO `alarmmg` VALUES (1582, 'A01 conveyor right safety alarm', '2023-12-07 16:44:24', '2023-12-07 16:44:27');
+INSERT INTO `alarmmg` VALUES (1583, 'A01 conveyor right safety alarm', '2023-12-07 16:44:36', '2023-12-07 16:44:39');
+INSERT INTO `alarmmg` VALUES (1584, '1# buffer safety alarm', '2023-12-07 16:44:37', '2023-12-07 16:46:27');
+INSERT INTO `alarmmg` VALUES (1585, 'A01 servo turn error', '2023-12-07 16:44:58', '2023-12-07 16:45:31');
+INSERT INTO `alarmmg` VALUES (1586, 'A02 servo turn error', '2023-12-07 16:44:58', '2023-12-07 16:45:32');
+INSERT INTO `alarmmg` VALUES (1587, 'A01 servo travel error', '2023-12-07 16:45:25', '2023-12-07 16:45:31');
+INSERT INTO `alarmmg` VALUES (1588, 'A02 servo travel error', '2023-12-07 16:45:25', '2023-12-07 16:45:31');
+INSERT INTO `alarmmg` VALUES (1589, 'A01 conveyor right safety alarm', '2023-12-07 16:45:25', '2023-12-07 16:46:27');
+INSERT INTO `alarmmg` VALUES (1590, 'A01 servo turn error', '2023-12-07 16:46:30', '2023-12-07 16:47:59');
+INSERT INTO `alarmmg` VALUES (1591, 'A01 servo turn error', '2023-12-07 16:48:00', '2023-12-07 16:48:46');
+INSERT INTO `alarmmg` VALUES (1592, 'A02 servo turn error', '2023-12-07 16:48:00', '2023-12-07 16:48:46');
+INSERT INTO `alarmmg` VALUES (1593, 'A01 servo travel error', '2023-12-07 16:48:32', '2023-12-07 16:48:34');
+INSERT INTO `alarmmg` VALUES (1594, 'A02 servo travel error', '2023-12-07 16:48:32', '2023-12-07 16:48:34');
+INSERT INTO `alarmmg` VALUES (1595, 'A01 conveyor right safety alarm', '2023-12-07 16:50:42', '2023-12-07 16:50:44');
+INSERT INTO `alarmmg` VALUES (1596, 'A01 conveyor right safety alarm', '2023-12-07 16:50:53', '2023-12-07 16:50:56');
+INSERT INTO `alarmmg` VALUES (1597, 'B01 VFD error', '2023-12-07 16:50:54', '2023-12-07 16:50:56');
+INSERT INTO `alarmmg` VALUES (1598, '1# buffer safety alarm', '2023-12-07 16:50:54', '2023-12-07 17:01:21');
+INSERT INTO `alarmmg` VALUES (1599, 'A01 servo turn error', '2023-12-07 16:51:07', '2023-12-07 16:59:23');
+INSERT INTO `alarmmg` VALUES (1600, 'A02 servo turn error', '2023-12-07 16:51:07', '2023-12-07 16:59:23');
+INSERT INTO `alarmmg` VALUES (1601, 'A01 servo travel error', '2023-12-07 16:51:36', '2023-12-07 16:59:23');
+INSERT INTO `alarmmg` VALUES (1602, 'A01 conveyor right safety alarm', '2023-12-07 16:51:36', '2023-12-07 17:01:21');
+INSERT INTO `alarmmg` VALUES (1603, 'A02 servo turn error', '2023-12-08 08:37:43', '2023-12-08 08:51:23');
+INSERT INTO `alarmmg` VALUES (1604, 'A01 servo travel error', '2023-12-08 08:37:43', '2023-12-08 08:51:23');
+INSERT INTO `alarmmg` VALUES (1605, 'A02 servo travel error', '2023-12-08 08:37:43', '2023-12-08 08:51:23');
+INSERT INTO `alarmmg` VALUES (1606, 'A01 conveyor right safety alarm', '2023-12-08 08:58:27', '2023-12-08 08:58:30');
+INSERT INTO `alarmmg` VALUES (1607, 'A01 conveyor right safety alarm', '2023-12-08 08:58:39', '2023-12-08 08:58:42');
+INSERT INTO `alarmmg` VALUES (1608, '1# buffer safety alarm', '2023-12-08 08:58:39', '2023-12-08 09:00:30');
+INSERT INTO `alarmmg` VALUES (1609, 'B01 VFD error', '2023-12-08 08:58:40', '2023-12-08 08:58:42');
+INSERT INTO `alarmmg` VALUES (1610, 'A01 VFD error', '2023-12-08 08:58:40', '2023-12-08 08:58:42');
+INSERT INTO `alarmmg` VALUES (1611, 'A01 servo turn error', '2023-12-08 08:58:52', '2023-12-08 08:59:36');
+INSERT INTO `alarmmg` VALUES (1612, 'A02 servo turn error', '2023-12-08 08:58:52', '2023-12-08 08:59:36');
+INSERT INTO `alarmmg` VALUES (1613, 'A01 servo travel error', '2023-12-08 08:59:19', '2023-12-08 08:59:36');
+INSERT INTO `alarmmg` VALUES (1614, 'A01 conveyor right safety alarm', '2023-12-08 08:59:19', '2023-12-08 09:00:28');
+INSERT INTO `alarmmg` VALUES (1615, 'A02 servo travel error', '2023-12-08 08:59:22', '2023-12-08 08:59:36');
+INSERT INTO `alarmmg` VALUES (1616, 'A01 conveyor right safety alarm', '2023-12-08 09:02:34', '2023-12-08 09:02:37');
+INSERT INTO `alarmmg` VALUES (1617, 'A01 conveyor right safety alarm', '2023-12-08 09:02:46', '2023-12-08 09:02:48');
+INSERT INTO `alarmmg` VALUES (1618, 'A01 servo turn error', '2023-12-08 09:03:01', '2023-12-08 09:03:42');
+INSERT INTO `alarmmg` VALUES (1619, 'A02 servo turn error', '2023-12-08 09:03:01', '2023-12-08 09:03:31');
+INSERT INTO `alarmmg` VALUES (1620, 'A02 servo travel error', '2023-12-08 09:03:25', '2023-12-08 09:03:31');
+INSERT INTO `alarmmg` VALUES (1621, 'A01 servo travel error', '2023-12-08 09:03:28', '2023-12-08 09:03:31');
+INSERT INTO `alarmmg` VALUES (1622, 'A01 conveyor right safety alarm', '2023-12-08 09:03:28', '2023-12-08 09:04:06');
+INSERT INTO `alarmmg` VALUES (1623, 'A02 conveyor Left safety alarm', '2023-12-08 09:06:48', '2023-12-08 09:06:50');
+INSERT INTO `alarmmg` VALUES (1624, '2# buffer safety alarm', '2023-12-08 09:06:48', '2023-12-08 09:06:50');
+INSERT INTO `alarmmg` VALUES (1625, 'A02 conveyor Left safety alarm', '2023-12-08 09:07:18', '2023-12-08 09:07:21');
+INSERT INTO `alarmmg` VALUES (1626, 'D03 VFD error', '2023-12-08 09:07:20', '2023-12-08 09:07:21');
+INSERT INTO `alarmmg` VALUES (1627, 'A02 VFD error', '2023-12-08 09:07:20', '2023-12-08 09:07:21');
+INSERT INTO `alarmmg` VALUES (1628, 'A01 servo turn error', '2023-12-08 09:07:53', '2023-12-08 09:08:10');
+INSERT INTO `alarmmg` VALUES (1629, 'A02 servo turn error', '2023-12-08 09:07:53', '2023-12-08 09:08:08');
+INSERT INTO `alarmmg` VALUES (1630, 'A01 servo travel error', '2023-12-08 09:08:01', '2023-12-08 09:08:08');
+INSERT INTO `alarmmg` VALUES (1631, 'A02 conveyor Left safety alarm', '2023-12-08 09:08:01', '2023-12-08 09:11:19');
+INSERT INTO `alarmmg` VALUES (1632, 'A02 servo travel error', '2023-12-08 09:08:03', '2023-12-08 09:08:08');
+INSERT INTO `alarmmg` VALUES (1633, 'A02 conveyor Left safety alarm', '2023-12-08 09:16:57', '2023-12-08 09:17:00');
+INSERT INTO `alarmmg` VALUES (1634, 'A02 conveyor Left safety alarm', '2023-12-08 09:17:27', '2023-12-08 09:17:30');
+INSERT INTO `alarmmg` VALUES (1635, 'A01 servo turn error', '2023-12-08 09:17:54', '2023-12-08 09:18:23');
+INSERT INTO `alarmmg` VALUES (1636, 'A02 servo turn error', '2023-12-08 09:17:54', '2023-12-08 09:18:14');
+INSERT INTO `alarmmg` VALUES (1637, 'A02 servo travel error', '2023-12-08 09:18:10', '2023-12-08 09:18:14');
+INSERT INTO `alarmmg` VALUES (1638, 'A02 conveyor Left safety alarm', '2023-12-08 09:18:10', '2023-12-08 09:18:37');
+INSERT INTO `alarmmg` VALUES (1639, 'A01 servo travel error', '2023-12-08 09:18:12', '2023-12-08 09:18:14');
+INSERT INTO `alarmmg` VALUES (1640, 'A02 servo turn error', '2023-12-08 09:18:15', '2023-12-08 09:18:18');
+INSERT INTO `alarmmg` VALUES (1641, 'A01 conveyor right safety alarm', '2023-12-08 09:37:04', '2023-12-08 09:37:08');
+INSERT INTO `alarmmg` VALUES (1642, 'A01 servo turn error', '2023-12-08 09:45:50', '2023-12-08 09:46:38');
+INSERT INTO `alarmmg` VALUES (1643, 'A02 servo turn error', '2023-12-08 09:45:50', '2023-12-08 09:46:38');
+INSERT INTO `alarmmg` VALUES (1644, 'A02 servo travel error', '2023-12-08 09:46:17', '2023-12-08 09:46:37');
+INSERT INTO `alarmmg` VALUES (1645, 'A01 servo travel error', '2023-12-08 09:46:25', '2023-12-08 09:46:37');
+INSERT INTO `alarmmg` VALUES (1646, 'More glass than known', '2023-12-08 09:47:13', '2023-12-08 09:57:18');
+INSERT INTO `alarmmg` VALUES (1647, 'A01 servo turn error', '2023-12-08 09:57:18', '2023-12-08 09:57:22');
+INSERT INTO `alarmmg` VALUES (1648, 'A02 servo turn error', '2023-12-08 09:57:18', '2023-12-08 09:57:22');
+INSERT INTO `alarmmg` VALUES (1649, 'A01 servo turn error', '2023-12-08 09:57:43', '2023-12-08 09:58:47');
+INSERT INTO `alarmmg` VALUES (1650, 'A02 servo turn error', '2023-12-08 09:57:43', '2023-12-08 09:58:47');
+INSERT INTO `alarmmg` VALUES (1651, 'A01 servo travel error', '2023-12-08 09:58:14', '2023-12-08 09:58:45');
+INSERT INTO `alarmmg` VALUES (1652, 'less glass than known', '2023-12-08 10:33:05', '2023-12-08 10:40:57');
+INSERT INTO `alarmmg` VALUES (1653, 'D01 VFD error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1654, 'D02 VFD error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1655, 'D03 VFD error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1656, 'D04 VFD error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1657, 'D05 VFD error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1658, 'D06 VFD error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1659, 'B01 VFD error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1660, 'B02 VFD error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1661, 'A01 servo travel error', '2023-12-08 10:41:52', '2023-12-08 10:42:20');
+INSERT INTO `alarmmg` VALUES (1662, 'A02 servo travel error', '2023-12-08 10:41:52', '2023-12-08 10:42:21');
+INSERT INTO `alarmmg` VALUES (1663, 'A01 servo turn error', '2023-12-08 10:42:29', '2023-12-08 10:43:17');
+INSERT INTO `alarmmg` VALUES (1664, 'A02 servo turn error', '2023-12-08 10:42:29', '2023-12-08 10:43:17');
+INSERT INTO `alarmmg` VALUES (1665, 'A02 servo travel error', '2023-12-08 10:43:01', '2023-12-08 10:43:16');
+INSERT INTO `alarmmg` VALUES (1666, 'less glass than known', '2023-12-08 10:46:25', '2023-12-08 10:49:17');
+INSERT INTO `alarmmg` VALUES (1667, 'A01 conveyor right safety alarm', '2023-12-08 11:02:49', '2023-12-08 11:02:51');
+INSERT INTO `alarmmg` VALUES (1668, 'A01 conveyor right safety alarm', '2023-12-08 11:03:01', '2023-12-08 11:03:03');
+INSERT INTO `alarmmg` VALUES (1669, '2# buffer safety alarm', '2023-12-08 11:03:03', '2023-12-08 11:10:41');
+INSERT INTO `alarmmg` VALUES (1670, 'More glass than known', '2023-12-08 11:15:18', '2023-12-08 11:17:01');
+INSERT INTO `alarmmg` VALUES (1671, '1# buffer safety alarm', '2023-12-08 11:16:30', '2023-12-08 11:16:31');
+INSERT INTO `alarmmg` VALUES (1672, 'A01 servo turn error', '2023-12-08 11:17:02', '2023-12-08 11:18:24');
+INSERT INTO `alarmmg` VALUES (1673, 'A02 servo turn error', '2023-12-08 11:17:02', '2023-12-08 11:18:24');
+INSERT INTO `alarmmg` VALUES (1674, 'A01 servo travel error', '2023-12-08 11:17:34', '2023-12-08 11:18:23');
+INSERT INTO `alarmmg` VALUES (1675, 'A02 servo travel error', '2023-12-08 11:17:34', '2023-12-08 11:18:23');
+INSERT INTO `alarmmg` VALUES (1676, 'A01 conveyor right safety alarm', '2023-12-08 11:21:07', '2023-12-08 11:21:10');
+INSERT INTO `alarmmg` VALUES (1677, 'More glass than known', '2023-12-08 11:21:14', '2023-12-08 11:22:33');
+INSERT INTO `alarmmg` VALUES (1678, 'A01 servo turn error', '2023-12-08 13:51:58', '2023-12-08 13:52:37');
+INSERT INTO `alarmmg` VALUES (1679, 'A02 servo turn error', '2023-12-08 13:51:58', '2023-12-08 13:52:37');
+INSERT INTO `alarmmg` VALUES (1680, 'A01 servo travel error', '2023-12-08 13:52:26', '2023-12-08 13:52:31');
+INSERT INTO `alarmmg` VALUES (1681, 'A02 servo travel error', '2023-12-08 13:52:26', '2023-12-08 13:52:31');
+INSERT INTO `alarmmg` VALUES (1682, 'A01 servo turn error', '2023-12-08 13:56:08', '2023-12-08 13:56:43');
+INSERT INTO `alarmmg` VALUES (1683, 'A02 servo turn error', '2023-12-08 13:56:08', '2023-12-08 13:56:43');
+INSERT INTO `alarmmg` VALUES (1684, 'A02 servo travel error', '2023-12-08 13:56:32', '2023-12-08 13:56:35');
+INSERT INTO `alarmmg` VALUES (1685, 'A01 servo turn error', '2023-12-08 14:02:20', '2023-12-08 14:02:33');
+INSERT INTO `alarmmg` VALUES (1686, 'A02 servo turn error', '2023-12-08 14:02:20', '2023-12-08 14:02:29');
+INSERT INTO `alarmmg` VALUES (1687, 'A01 servo travel error', '2023-12-08 14:02:22', '2023-12-08 14:02:27');
+INSERT INTO `alarmmg` VALUES (1688, 'A01 conveyor right safety alarm', '2023-12-08 14:04:06', '2023-12-08 14:04:09');
+INSERT INTO `alarmmg` VALUES (1689, 'less glass than known', '2023-12-08 14:12:29', '2023-12-08 14:13:51');
+INSERT INTO `alarmmg` VALUES (1690, 'A01 servo travel error', '2023-12-08 14:13:45', '2023-12-08 14:13:51');
+INSERT INTO `alarmmg` VALUES (1691, 'A02 servo travel error', '2023-12-08 14:13:45', '2023-12-08 14:13:51');
+INSERT INTO `alarmmg` VALUES (1692, 'A01 servo turn error', '2023-12-08 14:13:52', '2023-12-08 14:14:03');
+INSERT INTO `alarmmg` VALUES (1693, 'A02 servo turn error', '2023-12-08 14:13:52', '2023-12-08 14:14:03');
+INSERT INTO `alarmmg` VALUES (1694, '1# buffer safety alarm', '2023-12-08 14:14:57', '2023-12-08 14:15:06');
+INSERT INTO `alarmmg` VALUES (1695, 'A01 servo turn error', '2023-12-08 14:15:58', '2023-12-08 14:16:30');
+INSERT INTO `alarmmg` VALUES (1696, 'A02 servo turn error', '2023-12-08 14:15:58', '2023-12-08 14:16:31');
+INSERT INTO `alarmmg` VALUES (1697, 'A01 servo travel error', '2023-12-08 14:16:17', '2023-12-08 14:16:18');
+INSERT INTO `alarmmg` VALUES (1698, 'A02 servo travel error', '2023-12-08 14:16:17', '2023-12-08 14:16:18');
+INSERT INTO `alarmmg` VALUES (1699, 'A01 conveyor right safety alarm', '2023-12-08 14:20:24', '2023-12-08 14:20:26');
+INSERT INTO `alarmmg` VALUES (1700, 'less glass than known', '2023-12-08 14:20:37', '2023-12-08 14:21:58');
+INSERT INTO `alarmmg` VALUES (1701, 'A01 servo turn error', '2023-12-08 14:21:58', '2023-12-08 14:22:34');
+INSERT INTO `alarmmg` VALUES (1702, 'A02 servo turn error', '2023-12-08 14:21:58', '2023-12-08 14:22:37');
+INSERT INTO `alarmmg` VALUES (1703, 'A01 servo travel error', '2023-12-08 14:22:25', '2023-12-08 14:22:33');
+INSERT INTO `alarmmg` VALUES (1704, 'A02 servo travel error', '2023-12-08 14:22:27', '2023-12-08 14:22:33');
+INSERT INTO `alarmmg` VALUES (1705, 'less glass than known', '2023-12-08 14:28:18', '2023-12-08 14:29:07');
+INSERT INTO `alarmmg` VALUES (1706, 'A01 servo turn error', '2023-12-08 14:29:08', '2023-12-08 14:30:26');
+INSERT INTO `alarmmg` VALUES (1707, 'A02 servo turn error', '2023-12-08 14:29:08', '2023-12-08 14:30:26');
+INSERT INTO `alarmmg` VALUES (1708, 'less glass than known', '2023-12-08 14:33:25', '2023-12-08 14:33:42');
+INSERT INTO `alarmmg` VALUES (1709, 'less glass than known', '2023-12-08 14:33:43', '2023-12-08 14:33:46');
+INSERT INTO `alarmmg` VALUES (1710, 'A01 servo turn error', '2023-12-08 14:33:47', '2023-12-08 14:34:27');
+INSERT INTO `alarmmg` VALUES (1711, 'A02 servo turn error', '2023-12-08 14:33:47', '2023-12-08 14:34:27');
+INSERT INTO `alarmmg` VALUES (1712, 'A02 servo travel error', '2023-12-08 14:34:21', '2023-12-08 14:34:24');
+INSERT INTO `alarmmg` VALUES (1713, 'A01 servo travel error', '2023-12-08 14:34:23', '2023-12-08 14:34:24');
+INSERT INTO `alarmmg` VALUES (1714, 'less glass than known', '2023-12-08 14:35:31', '2023-12-08 14:36:20');
+INSERT INTO `alarmmg` VALUES (1715, 'A01 servo turn error', '2023-12-08 14:36:20', '2023-12-08 14:37:04');
+INSERT INTO `alarmmg` VALUES (1716, 'A02 servo turn error', '2023-12-08 14:36:20', '2023-12-08 14:37:04');
+INSERT INTO `alarmmg` VALUES (1717, 'A01 servo turn error', '2023-12-08 14:40:35', '2023-12-08 14:41:16');
+INSERT INTO `alarmmg` VALUES (1718, 'A02 servo turn error', '2023-12-08 14:40:35', '2023-12-08 14:41:16');
+INSERT INTO `alarmmg` VALUES (1719, 'A01 servo travel error', '2023-12-08 14:41:05', '2023-12-08 14:41:08');
+INSERT INTO `alarmmg` VALUES (1720, 'less glass than known', '2023-12-08 15:03:34', '2023-12-08 15:04:26');
+INSERT INTO `alarmmg` VALUES (1721, 'A02 conveyor Left safety alarm', '2023-12-08 15:10:39', '2023-12-08 15:10:42');
+INSERT INTO `alarmmg` VALUES (1722, '2# buffer safety alarm', '2023-12-08 15:10:39', '2023-12-08 15:10:42');
+INSERT INTO `alarmmg` VALUES (1723, 'less glass than known', '2023-12-08 15:10:51', '2023-12-08 15:12:08');
+INSERT INTO `alarmmg` VALUES (1724, 'A01 servo turn error', '2023-12-08 15:12:30', '2023-12-08 15:13:20');
+INSERT INTO `alarmmg` VALUES (1725, 'A02 servo turn error', '2023-12-08 15:12:30', '2023-12-08 15:13:01');
+INSERT INTO `alarmmg` VALUES (1726, 'A02 servo turn error', '2023-12-08 15:13:02', '2023-12-08 15:13:20');
+INSERT INTO `alarmmg` VALUES (1727, 'A02 conveyor Left safety alarm', '2023-12-08 15:14:13', '2023-12-08 15:14:55');
+INSERT INTO `alarmmg` VALUES (1728, 'More glass than known', '2023-12-08 15:14:14', '2023-12-08 15:16:56');
+INSERT INTO `alarmmg` VALUES (1729, 'B01 VFD error', '2023-12-08 15:14:54', '2023-12-08 15:14:55');
+INSERT INTO `alarmmg` VALUES (1730, '1# buffer safety alarm', '2023-12-08 15:16:13', '2023-12-08 15:16:24');
+INSERT INTO `alarmmg` VALUES (1731, 'A01 servo turn error', '2023-12-08 15:16:56', '2023-12-08 15:18:54');
+INSERT INTO `alarmmg` VALUES (1732, 'A02 servo turn error', '2023-12-08 15:16:56', '2023-12-08 15:18:54');
+INSERT INTO `alarmmg` VALUES (1733, 'A01 servo travel error', '2023-12-08 15:17:29', '2023-12-08 15:18:54');
+INSERT INTO `alarmmg` VALUES (1734, 'A02 servo travel error', '2023-12-08 15:17:29', '2023-12-08 15:18:54');
+INSERT INTO `alarmmg` VALUES (1735, 'A01 servo turn error', '2023-12-08 15:20:41', '2023-12-08 15:21:22');
+INSERT INTO `alarmmg` VALUES (1736, 'A02 servo turn error', '2023-12-08 15:20:41', '2023-12-08 15:21:22');
+INSERT INTO `alarmmg` VALUES (1737, 'A02 servo travel error', '2023-12-08 15:21:11', '2023-12-08 15:21:14');
+INSERT INTO `alarmmg` VALUES (1738, 'A01 servo turn error', '2023-12-08 15:23:23', '2023-12-08 15:24:02');
+INSERT INTO `alarmmg` VALUES (1739, 'A02 servo turn error', '2023-12-08 15:23:23', '2023-12-08 15:24:01');
+INSERT INTO `alarmmg` VALUES (1740, 'A01 servo travel error', '2023-12-08 15:23:55', '2023-12-08 15:23:59');
+INSERT INTO `alarmmg` VALUES (1741, 'A02 servo turn error', '2023-12-08 15:24:02', '2023-12-08 15:24:03');
 
 -- ----------------------------
 -- Table structure for car_position
@@ -208,7 +471,7 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鍟嗗搧鍒嗙被' ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鍟嗗搧鍒嗙被' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of category
@@ -252,7 +515,7 @@
   `last_product_count_date` date NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE,
   UNIQUE INDEX `device_id_idx`(`device_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 46 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of device
@@ -283,7 +546,7 @@
   `height` decimal(10, 2) NULL DEFAULT NULL,
   `Conversionrate` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of glass
@@ -325,7 +588,7 @@
 INSERT INTO `menu_list` VALUES (51, 2, '璁惧鐘舵��', NULL, 51, 'Electrical/State', 1, '2023-08-25 13:29:13', '2023-09-11 17:07:08');
 INSERT INTO `menu_list` VALUES (52, 2, '寮�鍏虫帶鍒�', NULL, 52, 'Electrical/Action', 1, '2023-08-25 13:29:18', '2023-09-12 17:02:54');
 INSERT INTO `menu_list` VALUES (53, 2, '鍙傛暟涓嬪彂', NULL, 53, 'Electrical/Servomanual', 1, '2023-08-25 13:29:22', '2023-12-07 09:10:42');
-INSERT INTO `menu_list` VALUES (54, 2, 'IO鐘舵��', NULL, 53, 'Electrical/Sign', 1, '2023-08-25 13:29:22', '2023-09-11 17:06:16');
+INSERT INTO `menu_list` VALUES (54, 2, 'IO鐘舵��', NULL, 54, 'Electrical/Sign', 1, '2023-08-25 13:29:22', '2023-12-08 11:35:20');
 
 -- ----------------------------
 -- Table structure for north_glass_buffer1
@@ -350,7 +613,7 @@
   `datecreated` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
   `FrameBarcode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1393 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 1394 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of north_glass_buffer1
@@ -1095,7 +1358,7 @@
   `order_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '璁㈠崟鍙�',
   `state` int NULL DEFAULT NULL COMMENT '鐘舵��(0锛氭寜姝よ鍗曞彿鍑虹墖锛�1缁撴潫鍑虹墖)',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of order_out
@@ -1117,7 +1380,7 @@
   `sequence` int NULL DEFAULT NULL COMMENT '搴忓垪',
   `position` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '閾濇鎽嗘斁',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 102 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 111 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of out_slice
@@ -1139,7 +1402,7 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鏉冮檺' ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '鏉冮檺' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of permission
@@ -1167,6 +1430,7 @@
 INSERT INTO `permission` VALUES (29, 'alarm:select', '鎶ヨ淇℃伅鏌ヨ', 1, '2021-11-28 15:07:36', '2023-08-28 15:16:24');
 INSERT INTO `permission` VALUES (30, 'alarm:add', '鎶ヨ淇℃伅娣诲姞', 1, '2023-08-24 08:48:53', '2023-08-28 15:16:27');
 INSERT INTO `permission` VALUES (31, 'alarm:update', '鎶ヨ淇℃伅淇敼', 1, '2023-08-24 08:49:23', '2023-08-28 15:16:29');
+INSERT INTO `permission` VALUES (32, 'hom:ManuallyInfeedGlass', '涓婄墖淇℃伅', 1, '2023-12-08 11:07:18', '2023-12-08 11:07:18');
 INSERT INTO `permission` VALUES (33, 'home:OutingQueue', '鍑虹墖闃熷垪', 1, '2023-12-05 08:52:57', '2023-12-05 15:03:51');
 INSERT INTO `permission` VALUES (34, 'home:OrderInfo', '鐜荤拑淇℃伅', 1, '2023-12-05 08:53:18', '2023-12-05 08:53:30');
 INSERT INTO `permission` VALUES (35, 'home:CageDetails', '鐞嗙墖绗间俊鎭�', 1, '2023-12-05 14:52:28', '2023-12-05 14:52:43');
@@ -1194,8 +1458,8 @@
 -- ----------------------------
 -- Records of queue
 -- ----------------------------
-INSERT INTO `queue` VALUES (1, 'X21942610302GV', '123456', '210', '103', 610.0000, 1015.0000, 36.8125, 22.5625, 1, 0, '2023-12-07 11:21:57');
-INSERT INTO `queue` VALUES (2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 0, '2023-12-06 16:32:20');
+INSERT INTO `queue` VALUES (1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, '2023-12-08 14:03:55');
+INSERT INTO `queue` VALUES (2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 0, '2023-12-08 14:04:09');
 
 -- ----------------------------
 -- Table structure for role
@@ -1231,52 +1495,55 @@
   `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '鍒涘缓鏃堕棿',
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 57 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊鍜岃彍鍗曞叧鑱旇〃' ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 62 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊鍜岃彍鍗曞叧鑱旇〃' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of role_menu_list
 -- ----------------------------
-INSERT INTO `role_menu_list` VALUES (1, 1, 1, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (2, 1, 2, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (3, 1, 3, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (4, 1, 4, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (5, 1, 5, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (6, 1, 6, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (7, 1, 7, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (8, 1, 8, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (9, 1, 9, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (10, 1, 10, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (11, 1, 11, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (12, 1, 12, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
-INSERT INTO `role_menu_list` VALUES (19, 1, 50, 1, '2023-08-24 09:13:00', '2023-08-24 09:13:00');
-INSERT INTO `role_menu_list` VALUES (20, 1, 49, 1, '2023-08-24 10:08:38', '2023-08-28 15:39:54');
-INSERT INTO `role_menu_list` VALUES (21, 1, 51, 1, '2023-08-24 10:08:56', '2023-08-28 15:39:54');
-INSERT INTO `role_menu_list` VALUES (22, 1, 52, 1, '2023-08-24 10:08:56', '2023-08-28 15:39:54');
-INSERT INTO `role_menu_list` VALUES (23, 1, 53, 1, '2023-08-24 10:08:56', '2023-08-28 15:39:54');
-INSERT INTO `role_menu_list` VALUES (25, 1, 60, 1, '2023-08-25 13:05:53', '2023-08-25 13:05:53');
-INSERT INTO `role_menu_list` VALUES (26, 1, 1, 1, '2023-08-28 14:29:17', '2023-08-28 15:39:54');
-INSERT INTO `role_menu_list` VALUES (27, 1, 7, 1, '2023-08-28 15:11:09', '2023-08-28 15:39:54');
-INSERT INTO `role_menu_list` VALUES (28, 1, 2, 1, '2023-08-28 15:14:19', '2023-08-28 15:39:54');
-INSERT INTO `role_menu_list` VALUES (29, 1, 49, 1, '2023-08-28 15:14:27', '2023-08-28 15:39:54');
-INSERT INTO `role_menu_list` VALUES (31, 2, 2, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (32, 2, 3, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (33, 2, 4, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (37, 2, 8, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (38, 2, 9, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (39, 2, 10, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (42, 2, 50, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (43, 2, 49, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (44, 2, 51, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (45, 2, 52, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (46, 2, 53, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (47, 2, 60, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (50, 2, 2, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (51, 2, 49, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
-INSERT INTO `role_menu_list` VALUES (52, 2, 1, 1, '2023-08-30 16:28:57', '2023-08-30 16:28:57');
-INSERT INTO `role_menu_list` VALUES (53, 2, 7, 1, '2023-08-30 16:29:05', '2023-08-30 16:29:05');
-INSERT INTO `role_menu_list` VALUES (54, 1, 9, 1, '2023-09-08 10:55:54', '2023-09-08 11:02:55');
-INSERT INTO `role_menu_list` VALUES (55, 1, 8, 1, '2023-09-08 10:56:45', '2023-09-08 11:01:43');
-INSERT INTO `role_menu_list` VALUES (56, 2, 54, 1, '2023-09-11 17:09:17', '2023-09-11 17:09:24');
+INSERT INTO `role_menu_list` VALUES (1, 1, 1, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (2, 1, 2, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (3, 1, 3, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (4, 1, 4, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (5, 1, 5, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (6, 1, 6, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (7, 1, 7, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (8, 1, 8, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (9, 1, 9, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (10, 1, 10, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (11, 1, 11, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (12, 1, 12, 1, '2021-11-28 15:10:03', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (19, 1, 50, 1, '2023-08-24 09:13:00', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (20, 1, 49, 1, '2023-08-24 10:08:38', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (21, 1, 51, 1, '2023-08-24 10:08:56', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (22, 1, 52, 1, '2023-08-24 10:08:56', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (23, 1, 53, 1, '2023-08-24 10:08:56', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (25, 1, 60, 1, '2023-08-25 13:05:53', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (26, 1, 1, 1, '2023-08-28 14:29:17', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (27, 1, 7, 1, '2023-08-28 15:11:09', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (29, 1, 49, 1, '2023-08-28 15:14:27', '2023-12-08 11:55:22');
+INSERT INTO `role_menu_list` VALUES (31, 2, 2, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (32, 2, 3, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (33, 2, 4, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (37, 2, 8, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (38, 2, 9, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (39, 2, 10, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (42, 2, 50, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (43, 2, 49, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (44, 2, 51, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (45, 2, 52, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (46, 2, 53, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (47, 2, 60, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (51, 2, 49, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (52, 2, 1, 1, '2023-08-30 16:28:57', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (53, 2, 7, 1, '2023-08-30 16:29:05', '2023-12-08 14:18:20');
+INSERT INTO `role_menu_list` VALUES (54, 1, 9, 1, '2023-09-08 10:55:54', '2023-12-08 11:55:27');
+INSERT INTO `role_menu_list` VALUES (55, 1, 8, 1, '2023-09-08 10:56:45', '2023-12-08 11:55:27');
+INSERT INTO `role_menu_list` VALUES (56, 2, 54, 1, '2023-09-11 17:09:17', '2023-12-08 11:38:39');
+INSERT INTO `role_menu_list` VALUES (57, 5, 8, 1, '2023-12-08 11:32:37', '2023-12-08 11:48:14');
+INSERT INTO `role_menu_list` VALUES (58, 5, 9, 1, '2023-12-08 11:32:44', '2023-12-08 11:48:14');
+INSERT INTO `role_menu_list` VALUES (59, 5, 49, 1, '2023-12-08 11:33:13', '2023-12-08 11:48:14');
+INSERT INTO `role_menu_list` VALUES (60, 5, 1, 1, '2023-12-08 11:47:23', '2023-12-08 11:48:14');
+INSERT INTO `role_menu_list` VALUES (61, 5, 7, 1, '2023-12-08 11:47:34', '2023-12-08 11:48:14');
 
 -- ----------------------------
 -- Table structure for role_permission
@@ -1291,62 +1558,90 @@
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊鏉冮檺' ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 108 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '瑙掕壊鏉冮檺' ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of role_permission
 -- ----------------------------
-INSERT INTO `role_permission` VALUES (1, 1, 1, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:40', 'admin');
-INSERT INTO `role_permission` VALUES (2, 1, 2, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (3, 1, 3, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (7, 1, 7, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (8, 1, 8, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (9, 1, 9, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:55', 'admin');
-INSERT INTO `role_permission` VALUES (10, 1, 10, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (11, 1, 11, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (12, 1, 12, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (13, 1, 13, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (16, 1, 16, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (17, 1, 17, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (18, 1, 18, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (19, 1, 19, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (20, 1, 20, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (22, 1, 22, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (25, 1, 25, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:54', 'admin');
-INSERT INTO `role_permission` VALUES (26, 1, 26, 0, '2021-11-28 15:07:54', '2023-12-05 15:46:55', 'admin');
-INSERT INTO `role_permission` VALUES (27, 1, 27, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:55', 'admin');
-INSERT INTO `role_permission` VALUES (28, 1, 28, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:55', 'admin');
-INSERT INTO `role_permission` VALUES (37, 2, 25, 1, '2021-11-28 16:30:57', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (38, 2, 26, 1, '2021-11-28 16:30:57', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (39, 2, 27, 1, '2021-11-28 16:30:57', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (40, 2, 28, 1, '2021-11-28 16:32:35', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (41, 2, 22, 1, '2021-11-28 19:57:35', '2023-12-05 15:46:25', 'user1');
-INSERT INTO `role_permission` VALUES (42, 1, 30, 1, '2023-08-24 08:55:34', '2023-12-05 15:46:55', 'admin');
-INSERT INTO `role_permission` VALUES (43, 1, 29, 1, '2023-08-24 08:56:15', '2023-12-05 15:46:55', 'admin');
-INSERT INTO `role_permission` VALUES (44, 1, 31, 0, '2023-08-24 08:56:23', '2023-12-05 15:46:55', 'admin');
-INSERT INTO `role_permission` VALUES (53, 2, 2, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (54, 2, 3, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (56, 2, 8, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (57, 2, 9, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (58, 2, 10, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (61, 2, 13, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (62, 2, 16, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (63, 2, 17, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (64, 2, 18, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (65, 2, 19, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (66, 2, 20, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (67, 2, 22, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (68, 2, 25, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (69, 2, 26, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (70, 2, 27, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (71, 2, 28, 1, '2021-11-28 15:07:54', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (72, 2, 30, 1, '2023-08-24 08:55:34', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (73, 2, 29, 1, '2023-08-24 08:56:15', '2023-12-05 15:46:33', 'user1');
-INSERT INTO `role_permission` VALUES (74, 2, 1, 1, '2023-08-30 16:29:46', '2023-12-05 15:46:33', 'user1');
+INSERT INTO `role_permission` VALUES (1, 1, 1, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (2, 1, 2, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (3, 1, 3, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (7, 1, 7, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (8, 1, 8, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (9, 1, 9, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (10, 1, 10, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (11, 1, 11, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (12, 1, 12, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (13, 1, 13, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (16, 1, 16, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (17, 1, 17, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (18, 1, 18, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (19, 1, 19, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (20, 1, 20, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (22, 1, 22, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (25, 1, 25, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (26, 1, 26, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (27, 1, 27, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (28, 1, 28, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (37, 2, 25, 1, '2021-11-28 16:30:57', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (38, 2, 26, 1, '2021-11-28 16:30:57', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (39, 2, 27, 1, '2021-11-28 16:30:57', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (40, 2, 28, 1, '2021-11-28 16:32:35', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (41, 2, 22, 1, '2021-11-28 19:57:35', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (42, 1, 30, 1, '2023-08-24 08:55:34', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (43, 1, 29, 1, '2023-08-24 08:56:15', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (44, 1, 31, 1, '2023-08-24 08:56:23', '2023-12-08 11:53:19', NULL);
+INSERT INTO `role_permission` VALUES (53, 2, 2, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (54, 2, 3, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (56, 2, 8, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (57, 2, 9, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (58, 2, 10, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (61, 2, 13, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (62, 2, 16, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (63, 2, 17, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (64, 2, 18, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (65, 2, 19, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (66, 2, 20, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (67, 2, 22, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (68, 2, 25, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (69, 2, 26, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (70, 2, 27, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (71, 2, 28, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (72, 2, 30, 1, '2023-08-24 08:55:34', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (73, 2, 29, 1, '2023-08-24 08:56:15', '2023-12-08 14:19:11', NULL);
+INSERT INTO `role_permission` VALUES (74, 2, 1, 1, '2023-08-30 16:29:46', '2023-12-08 14:19:11', NULL);
 INSERT INTO `role_permission` VALUES (75, 1, 32, 1, '2023-12-05 08:54:59', '2023-12-05 08:54:59', NULL);
 INSERT INTO `role_permission` VALUES (76, 1, 33, 1, '2023-12-05 08:55:04', '2023-12-05 08:55:04', NULL);
 INSERT INTO `role_permission` VALUES (77, 1, 34, 1, '2023-12-05 08:55:09', '2023-12-05 08:55:09', NULL);
 INSERT INTO `role_permission` VALUES (78, 1, 35, 1, '2023-12-05 14:54:43', '2023-12-05 14:54:46', NULL);
+INSERT INTO `role_permission` VALUES (79, 2, 33, 1, '2023-12-08 10:58:25', '2023-12-08 11:42:12', NULL);
+INSERT INTO `role_permission` VALUES (80, 2, 34, 1, '2023-12-08 10:59:15', '2023-12-08 11:42:12', NULL);
+INSERT INTO `role_permission` VALUES (81, 2, 35, 1, '2023-12-08 10:59:23', '2023-12-08 11:42:12', NULL);
+INSERT INTO `role_permission` VALUES (82, 5, 33, 1, '2023-12-08 10:59:33', '2023-12-08 11:48:26', NULL);
+INSERT INTO `role_permission` VALUES (83, 5, 34, 0, '2023-12-08 10:59:39', '2023-12-08 11:48:26', NULL);
+INSERT INTO `role_permission` VALUES (84, 5, 35, 0, '2023-12-08 10:59:51', '2023-12-08 11:48:26', NULL);
+INSERT INTO `role_permission` VALUES (85, 5, 32, 0, '2023-12-08 11:08:54', '2023-12-08 11:48:26', NULL);
+INSERT INTO `role_permission` VALUES (86, 5, 1, 1, '2023-12-08 11:45:47', '2023-12-08 11:48:26', NULL);
+INSERT INTO `role_permission` VALUES (87, 5, 7, 1, '2023-12-08 11:45:55', '2023-12-08 11:48:26', NULL);
+INSERT INTO `role_permission` VALUES (89, 5, 2, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (90, 5, 3, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (91, 5, 8, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (92, 5, 9, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (93, 5, 10, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (94, 5, 13, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (95, 5, 16, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (96, 5, 17, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (97, 5, 18, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (98, 5, 19, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (99, 5, 20, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (100, 5, 22, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (101, 5, 25, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (102, 5, 26, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (103, 5, 27, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (104, 5, 28, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (105, 5, 30, 1, '2023-08-24 08:55:34', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (106, 5, 29, 1, '2023-08-24 08:56:15', '2023-12-08 14:18:38', NULL);
+INSERT INTO `role_permission` VALUES (107, 5, 1, 1, '2023-08-30 16:29:46', '2023-12-08 14:18:38', NULL);
 
 -- ----------------------------
 -- Table structure for storage_cage
@@ -1810,7 +2105,7 @@
   `cageno` int NULL DEFAULT NULL COMMENT '绗煎瓙鍙�',
   PRIMARY KEY (`id`) USING BTREE,
   INDEX `raw_package_id1`(`raw_package_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 491 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 492 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of storage_rack
@@ -2250,7 +2545,7 @@
   `finsh_time` datetime(0) NULL DEFAULT NULL COMMENT '浠诲姟缁撴潫鏃堕棿',
   `glass_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 67 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of storage_task
@@ -2281,23 +2576,15 @@
   `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '鏇存柊鏃堕棿',
   `dianqimima` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鎿嶄綔瀵嗙爜',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
 
 -- ----------------------------
 -- Records of user
 -- ----------------------------
 INSERT INTO `user` VALUES (1, 0, '', 0, 1, 'admin', 'b2f0c414a5ffb6944c424bc18ae3a8a0', NULL, NULL, NULL, 1, '2023-08-25 08:58:58', '2023-09-18 20:38:44', '112');
-INSERT INTO `user` VALUES (2, 1, '1-', 1, 2, 'user1', 'b2f0c414a5ffb6944c424bc18ae3a8a0', 'user1@qq.com', NULL, NULL, 1, '2021-11-28 14:31:39', '2023-11-27 16:34:51', NULL);
-INSERT INTO `user` VALUES (3, 1, '1-', 1, 2, 'user2', 'f403c87893db29eb71b21905b57bbd0d', 'user2@qq.com', NULL, NULL, 1, '2021-11-28 14:31:39', '2021-11-28 15:09:36', NULL);
-INSERT INTO `user` VALUES (9, 1, '1-', 1, 1, 'yttttttttttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '666@qq.com', NULL, NULL, 1, '2023-08-23 20:35:32', '2023-08-23 20:35:32', NULL);
-INSERT INTO `user` VALUES (10, 1, '1-', 1, 2, '767655555', '500637c0d48b442a3be6d4fce12e0910', NULL, NULL, NULL, 1, '2023-08-23 20:42:58', '2023-08-23 20:42:58', NULL);
-INSERT INTO `user` VALUES (11, 1, '1-', 1, 5, 'uiuyiuy', 'e046c4175152aa3001d2c71c5bc1aee5', '767676767tt@qq.com', NULL, NULL, 1, '2023-08-23 20:43:42', '2023-08-23 20:43:42', NULL);
-INSERT INTO `user` VALUES (13, 1, '1-', 1, 2, 'user3', '500637c0d48b442a3be6d4fce12e0910', '2265557345@qq.com', NULL, NULL, 1, '2023-08-24 09:58:40', '2023-08-24 09:58:40', NULL);
-INSERT INTO `user` VALUES (15, 1, '1-', 1, 2, '99999', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '2267666@qq.com', NULL, NULL, 1, '2023-08-25 09:37:05', '2023-08-28 14:37:27', NULL);
-INSERT INTO `user` VALUES (16, 1, '1-', 1, 2, '5656tttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '5454@qq.com', NULL, NULL, 1, '2023-08-28 14:17:44', '2023-08-28 14:37:24', NULL);
-INSERT INTO `user` VALUES (17, 1, '1-', 1, 2, '6767ttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '225@qq.com', NULL, NULL, 1, '2023-08-28 14:20:05', '2023-08-28 14:23:53', NULL);
-INSERT INTO `user` VALUES (18, 1, '1-', 1, 2, '8989ttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '224@qq.com', NULL, NULL, 1, '2023-08-28 14:26:17', '2023-08-28 14:37:22', NULL);
-INSERT INTO `user` VALUES (19, 1, '1-', 1, 5, '8080ttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '87@qq.com', NULL, NULL, 1, '2023-08-28 14:34:39', '2023-08-29 16:03:38', NULL);
+INSERT INTO `user` VALUES (2, 1, '1-', 1, 5, 'user1', 'b2f0c414a5ffb6944c424bc18ae3a8a0', 'user1@qq.com', NULL, NULL, 1, '2021-11-28 14:31:39', '2023-11-27 16:34:51', NULL);
+INSERT INTO `user` VALUES (3, 1, '1-', 1, 2, 'user2', 'b2f0c414a5ffb6944c424bc18ae3a8a0', 'user2@qq.com', NULL, NULL, 1, '2021-11-28 14:31:39', '2023-12-08 11:18:52', NULL);
+INSERT INTO `user` VALUES (22, 1, '1-', 1, 5, 'user3', 'b2f0c414a5ffb6944c424bc18ae3a8a0', NULL, NULL, NULL, 1, '2023-12-08 11:40:31', '2023-12-08 11:40:31', NULL);
 
 -- ----------------------------
 -- Procedure structure for Your_Stored_Procedure

--
Gitblit v1.8.0