From 7a4da65b270b1eb8dadf1fbf46b09f25274f5422 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期一, 18 三月 2024 10:08:58 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/Albania_Mes

---
 springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java           |   65 +-
 springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java            |   43 ++
 springboot-vue3/src/main/java/com/example/springboot/component/S7control.java            |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java           |  173 ++------
 springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java           |   22 
 springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json                              |  424 ++++++++++++++++++++
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java              |   52 ++
 /dev/null                                                                                |   51 --
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java         |    3 
 springboot-vue3/src/main/java/com/example/springboot/entity/MeasureSetting.java          |    1 
 springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java           |   47 +-
 springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java |    4 
 springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java        |  335 ++++-----------
 springboot-vue3/src/main/java/com/example/springboot/entity/StorageTask.java             |   38 +
 14 files changed, 763 insertions(+), 497 deletions(-)

diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
index 6181031..e9e5ee3 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -24,29 +24,30 @@
 
     // 鍗曚緥瀹炰緥
     private static PLCAutoMes instance;
-    private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
-    private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
-    private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
-    private static String PlcParameter = PLCAutomaticParameterSettingReview2.class
-            .getResource("/JsonFile/PlcParameter.json").getPath();
-    private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json")
-            .getPath();
-    private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json")
-            .getPath();
-    private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
-    private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
+    // private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
+    private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
+    // private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
+    // private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
+    // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
+            
+    // private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
+            
+    // private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
+            
+    // private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
+    // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
 
     // 璋冪敤initword鏂规硶
 
-    public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
-    public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
-    public static PlcBitObject  plcBitObject = initUtil.initbit(PlcSign);
-    public static PlcParameterObject  plcStateObject= initUtil.initword(PlcState);
-    public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
-    public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
-    public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
-    public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
-
+    // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
+    // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
+    // public static PlcBitObject  plcBitObject = initUtil.initbit(PlcSign);
+    // public static PlcParameterObject  plcStateObject= initUtil.initword(PlcState);
+    // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+    public static PlcParameterObject PlcMesObject = initUtil.initword(PlcAlbania);
+    // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+    // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
+  
     // 绉佹湁鏋勯�犲嚱鏁�
     public PLCAutoMes() throws IOException {
         config = new Configuration("config.properties");
@@ -73,9 +74,9 @@
 
             // System.out.println(jsonFilePath);
 
-            readAndUpdateWordValues(PlcReadObject);
+            //readAndUpdateWordValues(PlcReadObject);
             readAndUpdateWordValues(PlcMesObject);
-            readAndUpdateWordValues(PlcframeObject);
+            //readAndUpdateWordValues(PlcframeObject);
             // readAndUpdateWordValues(PlcframeObject);
 
             // readAndUpdateWordValues(plcStateObject);
@@ -92,7 +93,7 @@
             addresses2.add("FeedID");
             addresses2.add("FeedCarStatus");
 
-            System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
+            //System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
 
         }
     }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
deleted file mode 100644
index 30061c1..0000000
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
+++ /dev/null
@@ -1,196 +0,0 @@
-package com.example.springboot.component;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import com.example.springboot.service.JdbcConnections;
-import com.example.springboot.service.SpianService;
-import com.example.springboot.service.SpianServiceNew;
-import com.example.springboot.entity.north_glass_buffer1;
-import com.example.springboot.mapper.AlarmMapper;
-import com.example.springboot.mapper.SpianMapper;
-
-public class PlcHold extends Thread {
-
-  private AlarmMapper alarmMapper;
-
-  @Autowired
-  private JdbcConnections jdbcConnections;
-  private SpianMapper spianMapper;
-  private SpianService spianService;
-  private SpianServiceNew spianServiceNew;
-  int aaa;
-
-  @Override
-  public void run() {
-
-    while (this != null) {
-      try {
-
-        Thread.sleep(100);
-      } catch (InterruptedException e) {
-        // \\ TODO Auto-generated catch block
-        e.printStackTrace();
-      }
-
-      // if (S7control.getinstance().CheckConnected() == false) {
-      spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
-      spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
-      spianServiceNew = WebSocketServer.applicationContext.getBean(SpianServiceNew.class);
-      jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
-      // 鏍规嵁鐜荤拑id鑾峰彇璁㈠崟鍙�,鍗曠嫭鏁版嵁婧�
-      // try {
-      // north_glass_buffer1 glass = jdbcConnections.selectGlass(112);
-      // // System.out.println(glass.getOrderId());
-      // } catch (SQLException e) {
-      // // TODO Auto-generated catch block
-      // e.printStackTrace();
-      // }
-
-      // 鍑虹墖浠诲姟////////////////////////////////
-      spianServiceNew.selectout2("X21942613103GV");
-
-      List<Short> outlist = S7control.getinstance().ReadWord("DB106.20", 1); // 鍑虹墖杞︾姸鎬�
-      List<Short> outlist1 = S7control.getinstance().ReadWord("DB105.18", 1); // 鍑虹墖浠诲姟鏄惁鍚姩
-
-      boolean Plcout = spianService.listbool("DB106.64"); // 鍑虹墖璇锋眰瀛�
-      boolean Plcout2 = spianService.listbool("DB105.18"); // 鍑虹墖鍚姩
-      if (Plcout == false&&Plcout2==true) {
-        S7control.getinstance().WriteWord("DB105.18", (short) 0);// 鍑虹墖浠诲姟鍚姩鏀逛负0
-        System.out.println("鍏抽棴鍑虹墖鍚姩" + LocalDateTime.now());// 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负0
-      }
-      boolean Plcadd = spianService.listbool("DB106.24"); // 杩涚墖璇锋眰瀛�
-      boolean Plcadd2 = spianService.listbool("DB105.16"); // 杩涚墖鍚姩
-      if (Plcadd == false&&Plcadd2==true) {
-        S7control.getinstance().WriteWord("DB105.16", (short) 0);//杩涚墖浠诲姟鍚姩鏀逛负0
-        System.out.println("鍏抽棴杩涚墖鍚姩" + LocalDateTime.now());// 杩涚墖浠诲姟鍙戦�佸瓧鏀逛负0
-      }
-      
-
-
-      // StringBuilder writedstrIdOut = new StringBuilder();
-      // 鑾峰彇宸蹭笅鍙戠殑鍑虹墖id
-      byte[] writedglassidbytesOut = S7control.getinstance().ReadByte("DB105.30", 14);
-      String writedstrIdOut = new String(writedglassidbytesOut);
-
-   
-      if (Plcout == true) {
-        // 鍒ゆ柇褰撳墠鏄惁鏈夋湭鎵ц鐨勪换鍔�
-        int outnum = spianMapper.SelectOutSliceshu();//鏄惁鏈夋鍦ㄥ嚭鐗囩殑浠诲姟
-        int cageoutsum = spianMapper.Selectcageout(3);//绗煎瓙鍐呮槸鍚﹁繕鏈夊湪鍑虹墖鐨勭幓鐠�
-        // 褰撴病鏈変换鍔℃墽琛屽苟涓斿嚭鐗囪溅绌洪棽鏃�
-        if (outnum == 0 &&  Plchome.isAllowQueue == true && cageoutsum == 0) {
-          // 鍒ゆ柇閾濇鍑虹墖闃熷垪琛ㄦ槸鍚︽湁寰呭嚭鐗囩殑鐜荤拑
-          String outglassid = spianMapper.SelectOutSlice();
-          // 褰撴湁寰呭嚭鐗囩殑鐜荤拑鏃�
-          if (outglassid != null) {
-            // 鑾峰彇璇ョ幓鐠冩槸鍚﹁绂佺敤
-            int glassdisabled = spianMapper.SelectCageGlassState(outglassid);
-            // 鏈鐢ㄤ笅鍙戜换鍔�
-            if (glassdisabled == 0) {
-              spianService.selectout2(outglassid);
-              Plchome.isQueueWarning = false;
-            } else { // 绂佺敤鏇存敼鐘舵�佸脊鍑烘彁绀�
-              Plchome.isQueueWarning = true;
-            }
-
-          }
-        }
-     
-      }
-
-      ///////////// 杩涚墖浠诲姟
-      List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);// 鑾峰彇prc杩涚墖璇锋眰鏁版嵁
-      List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 鑾峰彇杩涚墖杞︾姸鎬�
-      List<Short> datas1ListState2 = S7control.getinstance().ReadWord("DB105.16", 1);// 鑾峰彇杩涚墖杞︿换鍔℃槸鍚﹀惎鍔�
-
-      boolean B01backs = spianService.listbool("DB106.60");// b01姹囨姤
-      boolean B02backs = spianService.listbool("DB106.62");// b02姹囨姤
-      StringBuilder B01glassid = spianService.queGlassid("DB103.184", 14);// BO1鐨勭幓鐠僫d
-      StringBuilder B02glassid = spianService.queGlassid("DB103.212", 14);// B02鐨勭幓鐠僫d
-
-      // 褰撹繘鐗囧皬杞﹀畬鎴愪换鍔℃椂
-      if (B01backs == true) {
-        // 鍒ゆ柇鏄惁姹囨姤姝g‘鐨刬d
-        int HB = spianMapper.SelectHB(B01glassid.toString());
-        if (HB > 0) {
-          // 褰揃01灏忚溅姹囨姤瀹屾垚鏃舵洿鏀圭幓鐠冪姸鎬� 涓�1
-          S7control.getinstance().WriteWord("DB105.48", (short) 1);// 鎭㈠B01灏忚溅搴旂瓟鏀逛负1
-          boolean yingda = spianService.listbool("DB105.48");// b01姹囨姤
-          if (yingda == true) {
-            spianService.overtask(B01glassid.toString());// 瀹屾垚浠诲姟
-          }
-          System.out.println("姹囨姤鏃禕01|绗�" + aaa + "娆�" + B01glassid + "搴旂瓟" + yingda);
-          aaa += 1;
-        }
-
-      }else{
-        S7control.getinstance().WriteWord("DB105.48", (short) 0);// 鎭㈠B01灏忚溅搴旂瓟鏀逛负1
-      }
-
-      // 褰撳嚭鐗囧皬杞﹀畬鎴愪换鍔℃椂
-      if (B02backs == true) {
-        // 鍒ゆ柇鏄惁姹囨姤姝g‘鐨刬d
-        int HB = spianMapper.SelectHB(B02glassid.toString());
-        System.out.println("姹囨姤鏃禕02|" + B02glassid);
-        if (HB > 0) {
-          // 褰揃02灏忚溅姹囨姤瀹屾垚鏃舵洿鏀圭幓鐠冪姸鎬佷负0
-
-          S7control.getinstance().WriteWord("DB105.50", (short) 1);// 鎭㈠B02灏忚溅搴旂瓟鏀逛负1
-          System.out.println("姹囨姤鏃禕02ID|" + B02glassid);
-          boolean yingda = spianService.listbool("DB105.50");// b02姹囨姤
-          if (yingda == true) {
-            spianService.overtask(B02glassid.toString());// 瀹屾垚浠诲姟
-          }
-          System.out.println("姹囨姤鏃禕02|绗�" + aaa + "娆�" + B02glassid + "搴旂瓟" + yingda);
-        }
-      }else{
-         S7control.getinstance().WriteWord("DB105.50", (short) 0);// 鎭㈠B02灏忚溅搴旂瓟鏀逛负0
-      }
-
-
-      // 鑾峰彇DO1鏁版嵁
-      StringBuilder queueid1 = spianService.queGlassid("DB106.26", 14);// 鑾峰彇璇锋眰鐨刬d璺烡O1鍚屾椂娓�
-      // 鑾峰彇DO2鏁版嵁
-      StringBuilder queueid2 = spianService.queGlassid("DB103.58", 14);
-
-      int questate = spianMapper.Selectquecount(queueid1.toString());// 鍒ゆ柇鎵爜浣嶆槸鍚︽湁鐜荤拑宸茬‘璁�
-      // queueid1.toString().isEmpty()
-      north_glass_buffer1 glass1 = spianMapper.selectGlass(queueid1.toString());// D01鐨勭幓鐠冧俊鎭�
-      north_glass_buffer1 glass2 = spianMapper.selectGlass(queueid2.toString());// D02鐜荤拑淇℃伅
-      // 褰撴壂鐮佷綅鐜荤拑id涓虹┖鏃� 瀹藉害涓�0
-      if (queueid1 != null && questate == 0) {
-        // 鍐欏叆D01鐨勬暟鎹埌涓婄墖闃熷垪琛�
-        if (glass1 == null) { // 褰撴病鏈夊�兼椂浼犵┖
-          spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 1);
-        } else {
-
-          spianMapper.Updatequeue(queueid1.toString(), glass1.getordernumber(), glass1.getlistnumber(),
-              glass1.getboxnumber(), 0, glass1.getglasslengthmm().toString(), glass1.getglassheightmm().toString(),
-              glass1.getglasslength().toString(), glass1.getglassheight().toString(), 1);
-        }
-
-      }
-
-      if (queueid2 != null) {
-        // 鍐欏叆D02鐨勬暟鎹埌涓婄墖闃熷垪琛�
-        if (glass2 == null) {
-          spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 2);
-        } else {
-          spianMapper.Updatequeue(queueid2.toString(), glass2.getordernumber(), glass2.getlistnumber(),
-              glass2.getboxnumber(), 0, glass2.getglasslengthmm().toString(), glass2.getglassheightmm().toString(),
-              glass2.getglasslength().toString(), glass2.getglassheight().toString(), 2);
-          spianMapper.overqueue2(queueid2.toString(), 0, 1);// 鏇存敼鎵爜浣嶄换鍔¤〃鐨勭姸鎬佷负0
-          S7control.getinstance().WriteWord("DB105.16", (short) 0);// 鍏抽棴浠诲姟鍚姩
-        }
-
-      }
-
-      // 鏌ヨ鏁版嵁搴�
-      // 鎺ㄩ�佸埌鍓嶇
-
-      // }
-    }
-  }
-
-}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
index 3da8352..17fbf5a 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
@@ -5,10 +5,11 @@
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.example.springboot.service.JdbcConnections;
-import com.example.springboot.service.SpianService;
+import com.example.springboot.service.SpianServiceNew;
 import com.example.springboot.entity.north_glass_buffer1;
 import com.example.springboot.entity.device.PlcParameterObject;
 import com.example.springboot.mapper.AlarmMapper;
+import com.example.springboot.mapper.AlbaniaMapper;
 import com.example.springboot.mapper.SpianMapper;
 
 public class PlcHoldNew extends Thread {
@@ -17,8 +18,8 @@
 
   @Autowired
   private JdbcConnections jdbcConnections;
-  private SpianMapper spianMapper;
-  private SpianService spianService;
+  private AlbaniaMapper albaniaMapper;
+  private SpianServiceNew spianService;
   int aaa;
 
   @Override
@@ -32,139 +33,59 @@
         // \\ TODO Auto-generated catch block
         e.printStackTrace();
       }
-
+      
       // if (S7control.getinstance().CheckConnected() == false) {
-      spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
-      spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
-
-      //璇诲彇DB105鍖烘枃浠�
+      spianService = WebSocketServer.applicationContext.getBean(SpianServiceNew.class);
+      albaniaMapper = WebSocketServer.applicationContext.getBean(AlbaniaMapper.class);
+      spianService.selectAll(albaniaMapper.SelectGlass());
+      //璇诲彇DB14鍖烘枃浠�
       PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-      //璇�106
-      PlcParameterObject plcread=PLCAutoMes.PlcReadObject;
-      //璇�103
-      PlcParameterObject plcstate=PLCAutoMes.plcStateObject;
-      String OutRequest=plcread.getPlcParameter("OutRequest").getValue();//鍑虹墖璇锋眰
-      String OutActivate=plcmes.getPlcParameter("OutActivate").getValue();//鍑虹墖鍚姩
-      
 
-     
-      //S7control.getinstance().WriteWord( plcmes.getPlcParameter("1231").getAddress(plcmes.getPlcParameter("1231").getAddressIndex()), (short) 0);
-      // 鍑虹墖浠诲姟
       
-      if (OutActivate.equals("1") == false&&OutRequest.equals("1")==true) {
-        S7control.getinstance().WriteWord("DB105.18", (short) 0);// 鍑虹墖浠诲姟鍚姩鏀逛负0  
+      String ExportTOMES1=plcmes.getPlcParameter("ExportTOMES1").getValue();//鍑虹墖璇锋眰涓�绾�
+      String ExportToMES2=plcmes.getPlcParameter("ExportToMES2").getValue();//鍑虹墖璇锋眰浜岀嚎
+      String PLCToMES=plcmes.getPlcParameter("PLCToMES").getValue();//杩涚墖璇锋眰
+      String B01State=plcmes.getPlcParameter("B01State").getValue();//杩愰�佽溅璇锋眰
+      String TastState=plcmes.getPlcParameter("MESToPLCStatus1").getValue();//浠诲姟瀹屾垚
+  
+      
+      //涓�鍙风嚎璇锋眰
+      if (ExportTOMES1.equals("1") == true&&B01State.equals("0")==true) {
+        //灏嗚繍杈撹溅鐘舵�佹敼涓哄繖纰�
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(), (short) 1);
+        spianService.selectout(1);
       }
-      String FeedRequest=plcread.getPlcParameter("FeedRequest").getValue();// 杩涚墖璇锋眰瀛�
-      String AddActivate=plcmes.getPlcParameter("AddActivate").getValue();// 杩涚墖鍚姩
-      if (FeedRequest.equals("1") == false&&AddActivate.equals("1")==true) {
-        S7control.getinstance().WriteWord("DB105.16", (short) 0);//杩涚墖浠诲姟鍚姩鏀逛负0
-      }     
-   
-      if (OutActivate.equals("1") == true) {
-        // 鍒ゆ柇褰撳墠鏄惁鏈夋湭鎵ц鐨勪换鍔�
-        int outnum = spianMapper.SelectOutSliceshu();//鏄惁鏈夋鍦ㄥ嚭鐗囩殑浠诲姟
-        int cageoutsum = spianMapper.Selectcageout(3);//绗煎瓙鍐呮槸鍚﹁繕鏈夊湪鍑虹墖鐨勭幓鐠�
-        // 褰撴病鏈変换鍔℃墽琛屽苟涓斿嚭鐗囪溅绌洪棽鏃�
-        if (outnum == 0 &&  Plchome.isAllowQueue == true && cageoutsum == 0) {
-          // 鍒ゆ柇閾濇鍑虹墖闃熷垪琛ㄦ槸鍚︽湁寰呭嚭鐗囩殑鐜荤拑
-          String outglassid = spianMapper.SelectOutSlice();
-          // 褰撴湁寰呭嚭鐗囩殑鐜荤拑鏃�
-          if (outglassid != null) {
-            // 鑾峰彇璇ョ幓鐠冩槸鍚﹁绂佺敤
-            int glassdisabled = spianMapper.SelectCageGlassState(outglassid);
-            // 鏈鐢ㄤ笅鍙戜换鍔�
-            if (glassdisabled == 0) {
-              spianService.selectout2(outglassid);
-              Plchome.isQueueWarning = false;
-            } else { // 绂佺敤鏇存敼鐘舵�佸脊鍑烘彁绀�
-              Plchome.isQueueWarning = true;
-            }
+      //浜岀嚎鍙疯姹傛椂
+      if (ExportToMES2.equals("1") == true&&B01State.equals("0")==true) {
+        //灏嗚繍杈撹溅鐘舵�佹敼涓哄繖纰�
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(), (short) 1);
+        spianService.selectout(2);
+      }
+      //杩涚墖璇锋眰鏃�
+      if(PLCToMES.equals("1")==true&&B01State.equals("0")==true){
+        //灏嗚繍杈撹溅鐘舵�佹敼涓哄繖纰�
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(), (short) 1);
+        
+        spianService.selectAll(albaniaMapper.SelectGlass());
+      }
+      
 
+      //浠诲姟瀹屾垚鏃�
+      if(TastState.equals("1")==true){
+        
+        //瀹屾垚纭瀛�
+        for(int i=1;i<7;i++){
+          String Tastover=plcmes.getPlcParameter("IDStatus"+i).getValue();//渚濇鑾峰彇浠诲姟绫诲瀷
+          String Glassid=plcmes.getPlcParameter("MESID"+i).getValue();//渚濇鑾峰彇浠诲姟绫诲瀷
+          if(Tastover.equals("1")){
+
+            //璋冪敤瀹屾垚浠诲姟 Glassid
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStatus"+i).getAddress(), (short) 1);//瀹屾垚纭瀛�
           }
         }
-     
       }
 
-      ///////////// 杩涚墖浠诲姟      
-
-      String B01backs = plcread.getPlcParameter("B01CompleteTheReport").getValue();// b01姹囨姤
-      String B02backs = plcread.getPlcParameter("B02CompleteTheReport").getValue();// b02姹囨姤
-      
-      String B01glassid = plcstate.getPlcParameter("B01ID1").getValue();// BO1鐨勭幓鐠僫d
-      String B02glassid = plcstate.getPlcParameter("B02ID1").getValue();// B02鐨勭幓鐠僫d
-
-      // 褰撹繘鐗囧皬杞﹀畬鎴愪换鍔℃椂
-      if (B01backs.equals("1") == true) {
-        // 鍒ゆ柇鏄惁姹囨姤姝g‘鐨刬d
-        int HB = spianMapper.SelectHB(B01glassid.toString());
-        if (HB > 0) {
-          // 鎭㈠B01灏忚溅搴旂瓟鏀逛负1
-          S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(plcmes.getPlcParameter("B01report").getAddressIndex()), (short) 1);
-          String yingda =plcmes.getPlcParameter("B01report").getValue();// b01姹囨姤
-          if (yingda.equals("1")) {
-            spianService.overtask(B01glassid.toString());// 瀹屾垚浠诲姟
-          }       
-        }
-
-      }else{
-        // 鎭㈠B01灏忚溅搴旂瓟鏀逛负0
-        S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(plcmes.getPlcParameter("B01report").getAddressIndex()), (short) 0);
-      }
-
-      // 褰撳嚭鐗囧皬杞﹀畬鎴愪换鍔℃椂
-      if (B02backs.equals("1") == true) {
-        // 鍒ゆ柇鏄惁姹囨姤姝g‘鐨刬d
-        int HB = spianMapper.SelectHB(B02glassid);
-        if (HB > 0) {
-          // 鎭㈠B02灏忚溅搴旂瓟鏀逛负1
-          S7control.getinstance().WriteWord(plcmes.getPlcParameter("B02report").getAddress(plcmes.getPlcParameter("B02report").getAddressIndex()), (short) 1);
-          String yingda =plcmes.getPlcParameter("B01report").getValue();// b02搴旂瓟
-          if (yingda.equals("1") == true) {
-            spianService.overtask(B02glassid);// 瀹屾垚浠诲姟
-          }    
-        }
-      }else{
-        S7control.getinstance().WriteWord(plcmes.getPlcParameter("B02report").getAddress(plcmes.getPlcParameter("B02report").getAddressIndex()), (short) 0);
-      }
-
-
-      // 鑾峰彇DO1鏁版嵁
-      String Do1ID=plcread.getPlcParameter("FeedID").getValue();// 鑾峰彇璇锋眰鐨刬d璺烡O1鍚屾椂娓�
-      // 鑾峰彇DO2鏁版嵁
-      String Do2ID=plcread.getPlcParameter("FeedID").getValue();// 鑾峰彇璇锋眰鐨刬d璺烡O1鍚屾椂娓�
-
-
-      int questate = spianMapper.Selectquecount(Do1ID.toString());// 鍒ゆ柇鎵爜浣嶆槸鍚︽湁鐜荤拑宸茬‘璁�
-      // queueid1.toString().isEmpty()
-      north_glass_buffer1 glass1 = spianMapper.selectGlass(Do1ID);// D01鐨勭幓鐠冧俊鎭�
-      north_glass_buffer1 glass2 = spianMapper.selectGlass(Do2ID);// D02鐜荤拑淇℃伅
-      // 褰撴壂鐮佷綅鐜荤拑id涓虹┖鏃� 瀹藉害涓�0
-      if (Do1ID != null && questate == 0) {
-        // 鍐欏叆D01鐨勬暟鎹埌涓婄墖闃熷垪琛�
-        if (glass1 == null) { // 褰撴病鏈夊�兼椂浼犵┖
-          spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 1);
-        } else {
-          spianMapper.Updatequeue(Do1ID.toString(), glass1.getordernumber(), glass1.getlistnumber(),
-          glass1.getboxnumber(), 0, glass1.getglasslengthmm().toString(), glass1.getglassheightmm().toString(),
-          glass1.getglasslength().toString(), glass1.getglassheight().toString(), 1);
-        }
-
-      }
-
-      if (Do2ID != null) {
-        // 鍐欏叆D02鐨勬暟鎹埌涓婄墖闃熷垪琛�
-        if (glass2 == null) {
-          spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 2);
-        } else {
-          spianMapper.Updatequeue(Do2ID.toString(), glass2.getordernumber(), glass2.getlistnumber(),
-          glass2.getboxnumber(), 0, glass2.getglasslengthmm().toString(), glass2.getglassheightmm().toString(),
-          glass2.getglasslength().toString(), glass2.getglassheight().toString(), 2);
-          spianMapper.overqueue2(Do2ID.toString(), 0, 1);// 鏇存敼鎵爜浣嶄换鍔¤〃鐨勭姸鎬佷负0
-          S7control.getinstance().WriteWord("DB105.16", (short) 0);// 鍏抽棴浠诲姟鍚姩
-        }
-
-      }
-
+  
       // 鏌ヨ鏁版嵁搴�
       // 鎺ㄩ�佸埌鍓嶇
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
index 0292e94..5e1f626 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -4,24 +4,35 @@
 import java.util.List;
 import com.example.springboot.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
-
 import com.example.springboot.entity.Flowcard;
+import com.example.springboot.entity.GlassInfo;
+import com.example.springboot.entity.MeasureSetting;
 import com.example.springboot.entity.Out_slice;
 import com.example.springboot.entity.Queue;
 import com.example.springboot.entity.StorageCage;
 import com.example.springboot.entity.StorageTask;
 import com.example.springboot.entity.alarmmg;
 import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.entity.device.PlcParameterObject;
 import com.example.springboot.mapper.HomeMapper;
+import com.example.springboot.mapper.GlassInfoMapper;
+import com.example.springboot.mapper.MeasureSettingMapper;
+import com.example.springboot.mapper.QueueMapper;
 import com.example.springboot.mapper.SpianMapper;
 
 public class Plchome extends Thread {
 
     @Autowired
     private HomeMapper homeMapper;
+    @Autowired
+    private HomeService HomeService;
+    private QueueMapper QueueMapper;
+    private GlassInfoMapper GlassInfoMapper;
+    private MeasureSettingMapper MeasureSettingMapper;
     private OutSliceServive outSliceServive;
     private SpianMapper spianMapper;
     private SpianService spianService;
+    
     // 鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
     public static Boolean isAllowQueue = true;
     public static Boolean isAllowReordering = true;
@@ -53,6 +64,8 @@
             try {
                 Thread.sleep(1000);
                 // 娉ㄥ叆mapper
+                HomeService  = WebSocketServer.applicationContext.getBean(HomeService.class);
+                QueueMapper  = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                 homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
                 spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
                 spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
@@ -81,7 +94,6 @@
                 jsonObject.append("alarmmg", alarmmg);
 
                 
-                
                 // 鑾峰彇鍑虹墖闃熷垪淇℃伅
                 List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
                 jsonObject.append("listoutslice", listoutslice);
@@ -96,9 +108,43 @@
                 // 鏌ヨ褰撳墠閾濇淇℃伅
                 Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame();
                 jsonObject.append("CurrentFrame", CurrentFrame);
-
+              
+                //璇诲彇DB105鍖烘枃浠�
+                PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+      
+                //String PlcRequest=plcmes.getPlcParameter("GaToMES").getValue();//鍑虹墖璇锋眰涓�绾�
+                //double width=plcmes.getPlcParameter("Height").getValue();//鍑虹墖璇锋眰涓�绾�
+                //double height=plcmes.getPlcParameter("width").getValue();//鍑虹墖璇锋眰涓�绾�
+                // 鑾峰彇娴嬮噺鐨勯暱锛屽
+                String PlcRequest = "1";
+                double width = 402;
+                double height = 402;
+                
+                //鑾峰彇鍖归厤璁剧疆
+                if ("1".equals(PlcRequest)) {
+                    List<GlassInfo> Result=HomeService.NormalGlassInfo(width, height, "1");
+                    if(Result.size()==1){
+                        //鍖归厤鎴愬姛  灏变竴绉嶇被鍨�  娣诲姞鏁版嵁
+                        GlassInfo GlassInfo=Result.get(0);
+                        QueueMapper.insert(GlassInfo.getGlassid(),width,height,1);
+                        System.out.println("鍖归厤鎴愬姛");
+                        //S7control.getinstance().WriteWord(plcmes.getPlcParameter("GaToMES").getAddress(), (short) 1);
+                        System.out.println(GlassInfo.getGlassid());
+                    }else if(Result.size()>1){
+                        //鍖归厤澶辫触 鍖归厤鍒板鏉$鍚堢殑鏁版嵁  娣诲姞鏁版嵁
+                        QueueMapper.insert(null,width,height,2);
+                        System.out.println("鍖归厤澶辫触");
+                    }
+                    else{
+                        //鍖归厤澶辫触 鏈壘鍒扮鍚堢殑鏁版嵁 娣诲姞鏁版嵁
+                        QueueMapper.insert(null,width,height,3);
+                        System.out.println("鏈壘鍒扮鍚堢殑鏁版嵁");
+                    }
+                    
+                }
                 // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                 // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
+
                 
                 //鏌ヨ鐞嗙墖绗间俊鎭�
                 List<StorageCage> StorageCageInfo = storageCageService.SelectStorageCageInfo();
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 ce4f674..f069ca9 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
@@ -176,7 +176,7 @@
         }
     }
 
-
+    
 
 
     private int getIndexFromAddress(String address) {
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 1ec9b0b..70c26d9 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
@@ -18,9 +18,10 @@
         System.out.println("鍚姩瀹屾垚");
 
         //  new PlcHold().start();
+        new PlcHoldNew().start();
         // new PLCAutoMes().start();
 
-        new Plchome().start();
+        //new Plchome().start();
         //  new PlcLayout().start();
         //  new Plcalarm().start();
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/MeasureSetting.java b/springboot-vue3/src/main/java/com/example/springboot/entity/MeasureSetting.java
index 92bfdef..583d8b1 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/MeasureSetting.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/MeasureSetting.java
@@ -31,5 +31,6 @@
      * 绾胯矾
      */
     private Integer line;
+    
 
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/StorageTask.java b/springboot-vue3/src/main/java/com/example/springboot/entity/StorageTask.java
index e015898..c4f12d1 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/StorageTask.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/StorageTask.java
@@ -1,5 +1,8 @@
 package com.example.springboot.entity;
+
+
 //鍑虹墖浠诲姟琛�
+
 public class StorageTask{
     private Integer id;//鑷簭
     private String taskType;//绫诲瀷
@@ -8,9 +11,12 @@
     private String shelfRack;//璧峰浣�
     private String loadrack;//鐩爣浣�
     private Integer count;//鐜荤拑鏁伴噺
+    private Integer glasstype;//鐜荤拑绫诲瀷
+    private Integer flowcard;//娴佺▼鍗�
+    private Integer mateid;//閰嶇墖id
+    private Integer tier;//鐗囧簭
 
-    private StorageCage storageCage;
-    
+	private StorageCage storageCage;
     public void setstorageCage(StorageCage storageCage) {
         this.storageCage = storageCage;
     }
@@ -75,6 +81,32 @@
         this.loadrack = loadrack;
     }
 
-    
+    public Integer getGlasstype() {
+        return glasstype;
+    }
+ 
+    public void setGlasstype(Integer glasstype) {
+        this.glasstype = glasstype;
+    } 
+    public Integer getFlowcard() {
+        return flowcard;
+    }
+ 
+    public void setFlowcard(Integer flowcard) {
+        this.flowcard = flowcard;
+    } public Integer getMateid() {
+        return mateid;
+    }
+ 
+    public void setMateid(Integer mateid) {
+        this.mateid = mateid;
+    }
+    public Integer geTier() {
+        return tier;
+    }
+ 
+    public void setTier(Integer tier) {
+        this.tier = tier;
+    }
 
 }
\ No newline at end of file
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java b/springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java
index e1d7e6e..f0bc2e2 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java
@@ -91,6 +91,7 @@
         public void setRatio(int ratio) {
             this.ratio = ratio;
         }
+       
 
            /**
      * 鑾峰彇鍦板潃
@@ -121,4 +122,7 @@
 
         return addressIndex;
     }
+    public String getAddress() {
+       return getAddress(this.addressIndex);
+    }
 }
\ No newline at end of file
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
index e33d0bb..84b1c7b 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
@@ -1,44 +1,51 @@
 package com.example.springboot.mapper;
+import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Repository;
+import com.example.springboot.entity.GlassInfo;
 import com.example.springboot.entity.StorageCage;
-import com.example.springboot.entity.north_glass_buffer1;
 
 @Mapper
 @Repository
 public interface AlbaniaMapper  {
-    // 鑾峰彇鍒ゆ柇璇ユ牸瀛愭槸鍚﹂渶瑕佹妸澶栫墖鎺ㄥ叆鍐呯墖浣嶇疆
-    @Select("select state from storage_cage where  cage=#{cage} and cell=#{cell} and tier=1;")
-    int selectcell(int cage, int cell);
-     // 鍒ゆ柇璇ョ瀛愭槸鍚︽湁鍚堥�傚搴︾┖鏍�
-    @Select("select cage,cell,tier,id,ROUND(id/2)as prcId,width from storage_cage where cage=#{cage1} and cell=#{cell} and state=0 and disabled=0 and width>=#{width} ORDER BY cell asc,tier asc LIMIT 1")
-    StorageCage selectCage1(int cage1, int cell, double width);
-
-    // 鍒ゆ柇绗煎瓙鍐呯幓鐠冩暟
-    @Select("select COUNT(tier)as tier from storage_cage where  cage=#{cage} and cell=#{cell} and state!=0 and state!=3;")
-    int selectsum(int cage, int cell);
-
-    // 瀹屾垚鍑虹墖涓殑鐜荤拑鐘舵��
-    @Update("update storage_cage set state=#{state} where glass_id=#{glassid} and state=3;")
-    void UpdateCageOver(String glassid, int state);
-    // 瀹屾垚杩涚墖涓殑鐜荤拑鐘舵��
-    @Update("update storage_cage set state=#{state} where glass_id=#{glassid} and state=2;")
-    void UpdateCageadd(String glassid, int state);
-    //鏌ヨ鏄惁鏈夎绫诲瀷鐨勪换鍔¤繕鏈畬鎴�
-     // 鍒ゆ柇鍑虹墖涓�1鏃讹紝鏄惁鍙洿鎺ュ嚭鐗�
-    @Select("select COUNT(state) from storage_cage where state=#{state}")
-    int SelectCageState(int state);
-    // 鑾峰彇鐜荤拑淇℃伅
-    @Select("select *,ordernumber ,glasslength_mm as glasslengthmm,glassheight_mm as glassheightmm,barcode,listnumber,boxnumber,glasslength,glassheight,FrameBarcode from north_glass_buffer1 where barcode=#{glassid}")
-    north_glass_buffer1 selectGlass(String glassid);
     //鍒ゆ柇绗煎唴鏄惁鏈夊悎閫傜殑绫诲瀷绌烘牸
-    @Select("select id from storage_cage where glasstype=#{glasstype} and width>=#{width}+#{widths} and state=0 order by id limit 1")
-    int SelectCage(int glasstype,int width,int widths);
+    @Select("select id from storage_cage where glasstype=#{glasstype} and width>=#{width}+#{widths} and state=0  order by id limit 1")
+    int SelectCage(int glasstype,Double width,int widths);
     //鍒ゆ柇绗煎唴娌℃湁鐜荤拑鐨勭┖鏍�
-    @Select("select id from storage_cage where state=0 and number=0 order by id limit 1")
-    int SelectNewCell();
+    @Select("select id from storage_cage where number=0 and cage>#{cage} and cage<#{cage2} order by id limit 1")
+    int SelectNewCell(int cage,int cage2);
+    //澧炲姞鐜荤拑鏁�
+    @Update("update storage_cage set number=number+1,width=width-glasswidth where id=#{id}")
+    void UpdateCageNumberAdd(int id);
+    //鍑忓皯鐜荤拑鏁�
+    @Update("update storage_cage set number=number-1,width=width+glasswidth where id=#{id}")
+    void UpdateCageNumberOut(int id);
+    //澧炲姞浠诲姟璁板綍
+    @Insert("INSERT INTO `albania`.`storage_task`(`task_type`, `task_state`, `shelf_rack`, `load_rack`,start_time,glass_id,glasstype,flowcard,mateid,tier) VALUES (#{tasktype},#{taskstate},#{shelfrack},#{loadrack},now(),#{glassid},#{glasstype},#{flowcard},#{mateid},#{tier});")
+    void Inserttask(int tasktype, int taskstate, int shelfrack, int loadrack, String glassid, int glasstype,String flowcard,int mateid,int tier);
+    //鏂板涓�鏉$瀛愭暟鎹�
+    @Update("UPDATE `albania`.`storage_cage` SET `glass_id` =#{glassid}, `width` =width-#{glasswidth}, `glasswidth` =#{glasswidth}, `glassheight` =#{glassheight}, `glasswidthmm` =#{glasswidthmm}, `glassheightmm` = #{glassheightmm},  `state` = #{state}, `glasstype` = #{glasstype}, `number` = #{number} WHERE `id` =#{id};")
+    void AddCage(int id,String glassid,Double glasswidth,Double glassheight,Double glasswidthmm,Double glassheightmm,int state,int glasstype,int number);
+    //鑾峰彇杩涚墖鏁版嵁
+    @Select("select glassid,flowcard,glasswidth as width,glassheight as height,glasswidthmm,glassheightmm,glasstype from queue where state=0 limit 1")
+    GlassInfo SelectGlass();
+    //涓�鍙风嚎鏌ヨ浠诲姟
+    @Select("select * from v_cagerelease1 where mateid not in(select mateid from v_cagerelease1 where surplus=0 group by mateid);")
+    GlassInfo SelectOutGlass1();
+    //浜屽彿绾挎煡璇换鍔�
+    @Select("select * from v_cagerelease2 where mateid not in(select mateid from v_cagerelease2 where surplus=0 group by mateid)LIMIT 1;")
+    GlassInfo SelectOutGlass2();
+    //娴佺▼鍗′换鍔℃煡璇�
+    @Select("select G.flowcard,G.glasstype,G.number,G.mateid,G.tier,G.starttime,G.finishnumber,IF((G.number-G.finishnumber-ku.KuCount)<0,G.number,ku.KuCount) as 'surplus',G.totaltier as id from (select Gfd.flowcard,Ggf.glasstype,Ggf.number,Ggf.mateid,Ggf.tier,Ggf.finishnumber,Gfd.starttime,Gfd.totaltier  from flowcard as Gfd LEFT JOIN glassinfo as Ggf on Gfd.flowcard=Ggf.flowcard where Gfd.state=1 and Gfd.line=#{line}) as G left join (select glasstype,sum(number) AS KuCount from storage_cage where flowcard is not null group by glasstype) as ku on G.glasstype=ku.glasstype where G.mateid not in(select mateid from v_cagerelease1 where surplus=0 group by mateid)order by `g`.`starttime`,`g`.`mateid`,`g`.`finishnumber`,`g`.`tier`LIMIT 1;")
+    GlassInfo SelectOutGlass(int line);
+    //鑾峰彇璇ョ被鍨嬪湪搴撳瓨鐨勪綅缃�
+    @Select("select * from storage_cage where glasstype=#{glasstype} and number>0 limit 1")
+    StorageCage SelectCageGlass(int glasstype);
+    //鍙戦�佸嚭鐗囧悗澧炲姞宸插彂鏁伴噺
+    @Update("update glassinfo set finishnumber=finishnumber+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{tier};")
+    void AddFinishNumber(String flowcard,int mateid,int tier);
     
 
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java b/springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
index 0daec53..2467976 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
@@ -1,9 +1,50 @@
 package com.example.springboot.service;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import com.example.springboot.entity.GlassInfo;
+import com.example.springboot.entity.MeasureSetting;
+// import com.example.springboot.mapper.GlassInfoMapper;
+// import com.example.springboot.mapper.MeasureSettingMapper;
+// import com.example.springboot.mapper.QueueMapper;
 
 @Service
 public class HomeService {
-    
+
+    // @Autowired
+    // MeasureSettingMapper MeasureSettingMapper;
+    // @Autowired
+    // GlassInfoMapper GlassInfoMapper;
+    // @Autowired
+    // QueueMapper QueueMapper;
+
+    // // 鍖归厤鐜荤拑 瀹斤紝楂橈紝绾胯矾
+    // public List<GlassInfo> NormalGlassInfo(double width, double height, String line) {
+    //     //
+    //     List<GlassInfo> Results=new ArrayList<GlassInfo>();
+    //     // 鑾峰彇鍖归厤璁剧疆
+    //     MeasureSetting MeasureSetting = MeasureSettingMapper.SelectMeasureSetting(line);
+    //     if (height > 0 && width > 0 && MeasureSetting != null) {
+    //         // 鏈夋晥鍙傛暟 璇锋眰=1 闀�/瀹�>0
+    //         double maxheight = height + MeasureSetting.getErrorHeight();
+    //         double minheight = height - MeasureSetting.getErrorHeight();
+    //         double maxwidth = width + MeasureSetting.getErrorWidth();
+    //         double minwidth = width - MeasureSetting.getErrorWidth();
+    //         // 鏌ヨ褰撳墠娴嬮噺鏁版嵁
+    //         List<GlassInfo> GlassInfos = GlassInfoMapper.selectGlassInfos(maxwidth, minwidth, maxheight, minheight);
+    //         List types = new ArrayList<>();
+    //         for (int i = 0; i < GlassInfos.size(); i++) {
+    //             Integer glasstype = GlassInfos.get(i).getGlasstype();
+    //             if (!types.contains(glasstype)) {
+    //                 types.add(glasstype);
+    //                 Results.add(GlassInfos.get(i));
+    //             }
+    //         }
+    //     }
+    //     return Results;
+    // }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
index 2988da2..4d665ce 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -92,13 +92,13 @@
                 ids = cages1.getId();// 鏁版嵁搴揑D
                 tiers = cages1.getTier();// 鍐呭鐗�
                 cells = cages1.getCell();// 鏍煎瓙鍙�
-                prcid = cages1.getPrcId();// 浼犵粰prc鐨勭洰鏍囧湴id
+                //prcid = cages1.getPrcId();// 浼犵粰prc鐨勭洰鏍囧湴id
                 width = cages1.getWidth();// 鏍煎瓙鍓╀綑瀹藉害
                 widths = glasslist.getglasslengthmm();
 
                 // 鎵ц杩涚墖
                 datas.add((short) 1000);// 璧峰浣嶇疆
-                datas.add((short) prcid);// 鐩爣浣嶇疆
+                datas.add((short) 1);// 鐩爣浣嶇疆
                 datas.add((short) widths);// 杩涚墖鐜荤拑瀹�
                 datas.add((short) prctier); // 鐜荤拑鏁�
                 datas.add((short) 1);// 浠诲姟鍚姩
@@ -171,7 +171,7 @@
         int cage = cageout.getCage(); // 鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
         int cell = cageout.getCell();// 鍑虹墖鏍煎彿
         int tier = cageout.getTier();// 鍑虹墖鍐呭鐗�
-        int prcid = cageout.getPrcId();// prcid
+        //int prcid = cageout.getPrcId();// prcid
         int prcid2;
         int ids;
         int cages;
@@ -183,7 +183,7 @@
             int state = spianMapper.selectGlassState(cage, cell);// 鑾峰彇鏍煎瓙鏁伴噺
             // 鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
             // 淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
-            datas.add((short) prcid);
+            datas.add((short) 1);
             datas.add((short) 1000);
             datas.add((short) state);
             datas.add((short) 1);
@@ -214,7 +214,7 @@
             // 鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
             if (state == 1) {
                 // spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, tier, 3);
-                datas.add((short) prcid);
+                datas.add((short) 1);
                 datas.add((short) 1000);
                 datas.add((short) 1);
                 datas.add((short) 1);
@@ -248,14 +248,14 @@
                         return (300);
                     }
                     // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
-                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID
+                    //prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID
                     ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
                     cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
                     cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
 
                     // 濉叆璋冩嫧鏁版嵁
-                    datas.add((short) prcid);// 璋冩嫧澶栫墖璧峰浣嶇疆
-                    datas.add((short) prcid2);
+                    datas.add((short) 1);// 璋冩嫧澶栫墖璧峰浣嶇疆
+                    datas.add((short) 1);
                     datas.add((short) 2);
                     datas.add((short) 1);
                     // 鏇存崲鐜荤拑鐨勭瀛�
@@ -290,13 +290,13 @@
                         return (300);
                     }
                     // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
-                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID
+                    //prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID
                     ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
                     cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
                     cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
                     // 濉叆璋冩嫧鏁版嵁
-                    datas.add((short) prcid);
-                    datas.add((short) prcid2);
+                    datas.add((short) 1);
+                    datas.add((short) 1);
                     datas.add((short) 2);
                     datas.add((short) 1);
                     String glassids = spianMapper.SelectGlassid(cage, cell); // 鑾峰彇琚皟鎷ㄧ殑鐜荤拑id
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
index 1da7bc8..7b49fa8 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
@@ -1,260 +1,98 @@
 package com.example.springboot.service;
-
-
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
 import com.example.springboot.component.PLCAutoMes;
 import com.example.springboot.component.S7control;
+import com.example.springboot.entity.GlassInfo;
 import com.example.springboot.entity.StorageCage;
-import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.entity.GlassInfo;
 import com.example.springboot.entity.device.PlcParameterObject;
-import com.example.springboot.mapper.SpianMapper;
+import com.example.springboot.mapper.AlbaniaMapper;
 import com.google.common.primitives.Bytes;
 
 
 @Service
 public class SpianServiceNew {
     @Autowired
-    private SpianMapper spianMapper;
-   
-    // @GetMapping("/all")
-public Short selectAll(String glassid) {
- //璇诲彇DB105鍖烘枃浠�
- PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
- //璇�106
- PlcParameterObject plcread=PLCAutoMes.PlcReadObject;
-        int cage1 = 0;
-        int cells;
-        int ids;
-        int prcid;
-        int tiers;
-        int prctier;
-        double width;
-        double minwidth = 0;
+    private AlbaniaMapper albaniaMapper;
+     //璇诲彇DB105鍖烘枃浠�
+    private PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+public Short selectAll(GlassInfo glassInfo) {
+    //瀹氫箟鍒濆瀛楁
+    int cageid;
+    String glassid=glassInfo.getGlassid();
+    Double width=glassInfo.getWidth();
+    //int mateid=glassInfo.getMateid();
+    String flowcard=glassInfo.getFlowcard();
+    int glasstype=glassInfo.getGlasstype();
+    
+    
 
-        north_glass_buffer1 glasslist = spianMapper.selectGlass(glassid); // 鑾峰彇鐜荤拑鍙傛暟
-        // 濡傛灉娌℃湁姝d鏃�
-        if (glasslist == null) {
-            return (300);
+    //鍒ゆ柇鏄惁鏈夊悓绫诲瀷鐨�
+     cageid=albaniaMapper.SelectCage(glasstype,width, 50);
+    //濡傛灉鏈夊悓绫诲瀷鏃剁洿鎺ュ鍔�
+    if(cageid!=Integer.MIN_VALUE){
+        //鍙戦�乸lc浠诲姟
+        //Mestast(glassid,1001,cageid,1);
+        
+    }else{ 
+         //鍒ゆ柇鐜荤拑鏄惁杩涘叆澶х墖绗�
+        if(glassInfo.getThickness()>=15){
+            cageid=albaniaMapper.SelectNewCell(3,5);
+        }else{
+            cageid=albaniaMapper.SelectNewCell(3,5);
+            //鍙戦�乸lc浠诲姟
         }
-
-        double widths = glasslist.getglasslengthmm();
-        String orderids = glasslist.getordernumber();
-        String FrameBarcode = glasslist.getFrameBarcode();
-        // 鑾峰彇閾濇鐩稿叧搴︽渶楂樼殑绗煎瓙鎺掑簭
-        List<StorageCage> storageCage = spianMapper.selectAllFbarcode(FrameBarcode, widths, 400);
-        // 鍒ゆ柇閾濇鎸囧畾绌烘牸鏄惁闇�瑕侀棿闅旂┖闂�
-        if (storageCage.size() == 0) {
-            storageCage = spianMapper.selectAll(orderids, FrameBarcode);
-        }
-        if (storageCage == null) {
-            return (400);
-        }
-        for (StorageCage storageCage2 : storageCage) {
-            // 淇濆瓨璁㈠崟浼樺厛椤哄簭绗煎瓙鍙�
-            cage1 = storageCage2.getCage();
-            // 鍒ゆ柇璇ョ瀛愬彿鐩搁偦鏈�澶х殑绌烘牸鏁�
-            int cages = spianMapper.selectCage(cage1);
-
-            // 濡傛灉鐩搁偦绗煎瓙娌℃湁绌烘牸,鎴栬�呮湁姝e湪鎵ц鐨勫嚭鐗囦换鍔℃椂杩斿洖400
-            if (cages == 0) {
-                return (400);
-            }
-            StorageCage cages1;
-            // 鍒ゆ柇鏄惁鏄浜岀墖闇�瑕佸姞闂撮殧鐗�
-            prctier = spianMapper.selectsum(cage1, storageCage2.getCell());// 浼犵粰prc鐨勬牸瀛愬唴鐜荤拑鏁�
-            if (prctier > 0) {
-                cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths + 400);
-            } else {
-                cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths);
-            }
-            // 鍒ゆ柇閫変腑绗煎瓙鏄惁鏈夊悎閫傚搴︾┖鏍�
-            // 鏈夊悎閫傜┖鏍兼椂杩涚墖
-            if (cages1 != null && cages >= 1 && storageCage2.getDisabled() == 0) {
-                ids = cages1.getId();// 鏁版嵁搴揑D
-                tiers = cages1.getTier();// 鍐呭鐗�
-                cells = cages1.getCell();// 鏍煎瓙鍙�
-                prcid = cages1.getPrcId();// 浼犵粰prc鐨勭洰鏍囧湴id
-                width = cages1.getWidth();// 鏍煎瓙鍓╀綑瀹藉害
-                widths = glasslist.getglasslengthmm();
-
-                // 鎵ц杩涚墖
-
-                // 鑾峰彇璇ユ牸瀛愬唴鏄惁鏈夌幓鐠�
-                int cellint = spianMapper.selectcell(cage1, cells);
-                if (cellint == 1) {
-                    // 灏嗗鐗囩幓鐠冪殑鏁版嵁鏇存柊鍒板唴鐗�
-                    spianMapper.UpdateDBCage(ids, cage1, cells, 1);
-                    // 灏嗘柊鍏ョ殑鐜荤拑瀛樺叆澶栫墖
-                    spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids - 1, 2);
-                    spianMapper.UpdataAddCage1(widths, cage1, cells);// 鍑忓皯鏍煎瓙瀹藉害
-                } else {
-                    // 鏁版嵁搴撲慨鏀圭瀛愯〃鏂板涓�鏉$幓鐠�
-                    spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids, 2);
-                    spianMapper.UpdataAddCage1(widths, cage1, cells);// 鍑忓皯鏍煎瓙瀹藉害        
-                }
-                // 杩涚墖杞﹁捣濮嬩綅缃�
-                S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("AddStart").getAddressIndex()), (short) 1000);
-                // 杩涚墖杞︾洰鏍囦綅缃�
-                S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Addgoal").getAddressIndex()), (short) prcid);
-                // 杩涚墖鐜荤拑瀹�
-                S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddLength").getAddress(plcmes.getPlcParameter("AddLength").getAddressIndex()), (short) widths);
-                // 杩涚墖绗煎唴宸叉湁鐜荤拑鏁�
-                S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("AddCount").getAddressIndex()), (short) prctier);
-                // 杩涚墖杞﹀惎鍔� 1涓哄惎鍔�
-                S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);       
-                String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
-                int activate2 = 0;
-                if (activate.equals("1")) {
-                    activate2 = 1;
-                }else{
-                    while (activate.equals("1")) {
-                        // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1
-                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);
-                        activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
-                    }
-                }
-                outmesid(glassid, "FeedID");//娲惧彂id
-                spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier,activate2);// 鏂板浠诲姟
-                return (200);
-
-            }
-
-        }
-        return (400);
-
-    }
-
-    public Short selectout2(String glassid) {
-         //璇诲彇DB105鍖烘枃浠�
-            PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-        //璇�106
-        PlcParameterObject plcread=PLCAutoMes.PlcReadObject;
-
-        char[] a = glassid.toCharArray();
-        List<Short> datas = new ArrayList<>();
-        // 鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
-        StorageCage cageout = spianMapper.selectOut2(glassid);
-        if (cageout == null) {
-            return (300);
-        }
-
-        int cage = cageout.getCage(); // 鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
-        int cell = cageout.getCell();// 鍑虹墖鏍煎彿
-        int tier = cageout.getTier();// 鍑虹墖鍐呭鐗�
-        int prcid = cageout.getPrcId();// prcid
-        int prcid2;
-        int ids;
-        int cages;
-        int cells;
-        double glasswidth = cageout.getGlassWidth();
-        int state = spianMapper.selectGlassState(cage, cell);// 鑾峰彇鏍煎瓙鏁伴噺
-        // 鍒ゆ柇鐜荤拑鍐呭鐗�
-        if (tier == 2) {
+        //褰撹繑鍥炵殑鏍煎瓙鍙蜂负绌烘椂,杩斿洖400绗煎瓙宸叉弧
+        if(cageid!=Integer.MIN_VALUE){
+            Mestast(glassid,1001,cageid,1);
+            //鍙戦�乸lc浠诲姟
             
-            // 鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
-            spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 鏇存柊鍑虹墖闃熷垪浠诲姟鐘舵�佷负杩涜涓�
-            spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
-            spianMapper.UpdataGlassCageState(glassid.toString(), 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵�� 
-            spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, state, 3);// 鏂板浠诲姟
-           
-        } else {
-            // 鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
-           
-            // 鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
-            if (state == 1) {
-                spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 鏇存柊鍑虹墖闃熷垪浠诲姟鐘舵�佷负杩涜涓�
-                spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
-                spianMapper.UpdataGlassCageState(glassid, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵��
-                spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1,3);// 鏂板浠诲姟
-                
-
-            } else {
-                // 鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
-                if (cage < 6) {
-                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6, cell);
-                    if (cagecell == null) {
-                        return (300);
-                    }
-                    // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
-                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID
-                    ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
-                    cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
-                    cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
-                    // 鏇存崲鐜荤拑鐨勭瀛�
-                    String glassids = spianMapper.SelectGlassid(cage, cell); // 鑾峰彇琚皟鎷ㄧ殑鐜荤拑id
-                    spianMapper.UpdataGlassCageState(glassids, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵��
-                    spianMapper.UpdateDBCage(ids, cage, cell, 2);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
-                    spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴�
-                    spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
-                    spianMapper.Inserttask(2, 0, cageout.getId(), ids, glassids, 2, 3);// 鏂板璋冨害浠诲姟
-                    
-                } else {// 绗煎瓙鍙峰ぇ浜�5鏃�
-                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11, cell);
-                    if (cagecell == null) {
-                        return (300);
-                    }
-                    // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
-                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID
-                    ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
-                    cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
-                    cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
-                    String glassids = spianMapper.SelectGlassid(cage, cell); // 鑾峰彇琚皟鎷ㄧ殑鐜荤拑id               
-                    spianMapper.UpdataGlassCageState(glassids, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵��           
-                    spianMapper.Inserttask(2, 0, cageout.getId() + 1, ids, glassids, 2, 3);// 鏂板璋冨害浠诲姟
-                    spianMapper.UpdateDBCage(ids, cage, cell, 2);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
-                    spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴�
-                    spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
-                    
-
-                }
-                //鍙戦�乸lc浠诲姟
-                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("AddStart").getAddressIndex()), (short) prcid);
-                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Addgoal").getAddressIndex()), (short) prcid2);
-                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("AddCount").getAddressIndex()), (short) state);
-                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);       
-                 String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
-                 int activate2 = 0;
-                 if (activate.equals("1")) {
-                     activate2 = 1;
-                 }else{
-                     while (activate.equals("1")) {
-                         // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1
-                         S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);
-                         activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
-                     }
-                 }
-                outmesid(glassid, "ReleaseID");//娲惧彂id
-                //鍙戦�佸畬鍊掔墖缁撴潫
-                return (200); // 缁撴潫
-            }
+        }else{
+            return(400);
         }
-         // 鍑虹墖杞﹁捣濮嬩綅缃�
-         S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("OutStart").getAddressIndex()), (short) prcid);
-         // 鍑虹墖杞︾洰鏍囦綅缃�
-         S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Outgoal").getAddressIndex()), (short) 1000);
-         // 鍑虹墖绗煎唴宸叉湁鐜荤拑鏁�
-         S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("OutCount").getAddressIndex()), (short) state);
-         // 鍑虹墖杞﹀惎鍔� 1涓哄惎鍔�
-         S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("OutActivate").getAddressIndex()), (short) 1);       
-         String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
-         int activate2 = 0;
-         if (activate.equals("1")) {
-             activate2 = 1;
-         }else{
-             while (activate.equals("1")) {
-                 // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1
-                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);
-                 
-                 activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
-             }
-         }
-         outmesid(glassid, "ReleaseID");//娲惧彂id
-        //鐩存帴鍑虹墖缁撴潫
+    }
+    //澧炲姞浠诲姟璁板綍
+    albaniaMapper.Inserttask(0, 0, 1001, cageid, glassid,glasstype, flowcard,0,0);
+    return(200);
+
+}
+
+    //鍑虹墖
+    public Short selectout(int line) {
+        int mateid;
+        int glasstype;
+        int tier;
+        int sumid;
+        String flowcard;
+        GlassInfo glassmate=new GlassInfo();
+           
+            for(int i=1;i<=7;i++){
+                glassmate= albaniaMapper.SelectOutGlass(line);
+                mateid=glassmate.getMateid();
+                glasstype=glassmate.getGlasstype();
+                tier=glassmate.getTier();
+                sumid=glassmate.getId();
+                flowcard=glassmate.getFlowcard(); 
+   
+                    StorageCage glass= albaniaMapper.SelectCageGlass(glasstype);
+                    //鍙戦�侀厤鐗囨暟鎹�
+                    Mestast(glassmate.getGlasstype()+"i", glass.getId(),2002, 0);
+                    albaniaMapper.AddFinishNumber(flowcard, mateid, tier);
+                    albaniaMapper.Inserttask(1, 0, glass.getId(), 2002, glassmate.getGlassid()+i, glasstype,glass.getFlowcard(),mateid,tier);
+                    if(tier==sumid){
+                        //鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short)2);//鍑虹墖浠诲姟鍚姩
+                        return (200);//缁撴潫
+                    }
+                
+            }
+           
+     
+       
         return(200);// 缁撴潫
     }
 
@@ -270,7 +108,7 @@
         }
         byte[] bytes = Bytes.toArray(glassidlist);
         System.out.println("outmesidbytes:" + bytes.length);
-        S7control.getinstance().WriteByte(plcmes.getPlcParameter(address).getAddress(plcmes.getPlcParameter(address).getAddressIndex()),bytes);
+        S7control.getinstance().WriteByte(plcmes.getPlcParameter(address).getAddress(),bytes);
         //S7control.getinstance().WriteByte(address, bytes);// 娲惧彂鍑虹墖id
 
     }
@@ -285,7 +123,7 @@
                 writedstrIdOut.append((char) iditem);
             }
         }
-        return writedstrIdOut;
+        return writedstrIdOut;  
     }
 
     // char鏁扮粍杞寲鎴恇it鏁扮粍
@@ -307,15 +145,16 @@
         return listbool;
     }
 
-    // 鏍规嵁鐜荤拑id瀹屾垚鍦ㄨ繘琛屼腑鐨勪换鍔�
-    public void overtask(String glassid) {
-
-        spianMapper.UpdatetaskOut(glassid.toString());// 瀹屾垚涓婁竴娆� 鍑虹墖鎴栬�呰繘鐗囦换鍔�
-        spianMapper.OverOutSlice(glassid.toString(), 2, 1);// 瀹屾垚鍑虹墖闃熷垪浠诲姟
-        spianMapper.UpdataGlassCage(glassid.toString(), 0);// 娓呴櫎鍑虹墖鏍煎瓙鐜荤拑淇℃伅
-        spianMapper.UpdateCageOver(glassid.toString(), 0);// 鏇存敼绗煎瓙琛ㄥ嚭鐗囩姸鎬�
-        spianMapper.UpdateCageadd(glassid.toString(), 1);// 鏇存敼绗煎瓙琛ㄨ繘鐗囩姸鎬�
-        spianMapper.UpdateAddQueue(glassid.toString());// 鎶婅繘鐗囩殑鐜荤拑鏇存柊鍒板嚭鐗囬槦鍒椾腑
+    //涓嬪彂鐞嗙墖浠诲姟
+    public void Mestast(String glassid,int MESToPLCStart1,int MESToPLCTarget1,int MESToPLC) {
+        outmesid(glassid, "MESID1");//涓嬪彂鐜荤拑id
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart1").getAddress(), (short) MESToPLCStart1);//璧峰浣嶇疆
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget1").getAddress(), (short) MESToPLCTarget1);//鐩爣浣嶇疆
+        if(MESToPLC!=0){
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short)MESToPLC);//mes鐞嗙墖浠诲姟绫诲瀷
+        }
+        
+        
     }
 
 }
diff --git a/springboot-vue3/src/main/resources/JsonFile/Albania.json b/springboot-vue3/src/main/resources/JsonFile/Albania.json
deleted file mode 100644
index 751f96c..0000000
--- a/springboot-vue3/src/main/resources/JsonFile/Albania.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-   "plcAddressBegin":"DB17.0",
-   "plcAddressLenght":"272",
-   "dataType":"word",
-   "parameteInfor":[
-      {
-         "codeId": "PLCToMesIn",  
-         "addressIndex":"0",
-         "addressLenght":"2", 
-         "ratio":"1", 
-         "unit":"m/min"    
-      },
-      {
-          "codeId": "PLCINID",
-          "addressIndex":"16",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"      
-       },
-       {
-          "codeId": "InIdState",
-          "addressIndex":"18",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"       
-       },
-       {
-          "codeId": "J01Quest",
-          "addressIndex":"20",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "J01id",
-          "addressIndex":"22",
-          "addressLenght":"14",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "J01TurnGo",
-          "addressIndex":"38",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-
-
-   ]
-}
diff --git a/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json b/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
new file mode 100644
index 0000000..bfde5fe
--- /dev/null
+++ b/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
@@ -0,0 +1,424 @@
+{
+   "plcAddressBegin":"DB14.0",
+   "plcAddressLenght":"210",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "PLCToMES",  
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "IDStatus1",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "IDStatus2",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "IDStatus3",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus4",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus5",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "IDStatus6",
+          "addressIndex":"12",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID1",
+          "addressIndex":"14",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID2",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID3",
+          "addressIndex":"18",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID4",
+          "addressIndex":"20",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID5",
+          "addressIndex":"22",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID6",
+          "addressIndex":"24",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "GaToMES",
+          "addressIndex":"26",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "Height",
+          "addressIndex":"28",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "width",
+          "addressIndex":"30",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "ExportTOMES1",
+          "addressIndex":"32",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "ExportToMES2",
+          "addressIndex":"34",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESToPLC",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID1",
+          "addressIndex":"38",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID2",
+          "addressIndex":"54",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID3",
+          "addressIndex":"70",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID4",
+          "addressIndex":"86",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID5",
+          "addressIndex":"102",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID6",
+          "addressIndex":"118",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESToPLCStart1",
+          "addressIndex":"134",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },{
+         "codeId": "MESToPLCStart2",
+         "addressIndex":"136",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStart3",
+         "addressIndex":"138",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart4",
+         "addressIndex":"140",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart5",
+         "addressIndex":"142",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart6",
+         "addressIndex":"144",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget1",
+         "addressIndex":"146",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget2",
+         "addressIndex":"148",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget3",
+         "addressIndex":"150",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget4",
+         "addressIndex":"152",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget5",
+         "addressIndex":"154",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget6",
+         "addressIndex":"156",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus1",
+         "addressIndex":"158",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus2",
+         "addressIndex":"160",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus3",
+         "addressIndex":"162",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus4",
+         "addressIndex":"164",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus5",
+         "addressIndex":"166",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus6",
+         "addressIndex":"168",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToGaStatus",
+         "addressIndex":"170",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01Err",
+         "addressIndex":"172",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02Err",
+         "addressIndex":"174",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Err",
+         "addressIndex":"176",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Err",
+         "addressIndex":"178",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Err",
+         "addressIndex":"180",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace1",
+         "addressIndex":"182",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace2",
+         "addressIndex":"184",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace3",
+         "addressIndex":"186",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Position",
+         "addressIndex":"188",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Position",
+         "addressIndex":"190",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Position",
+         "addressIndex":"192",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "DeviceState",
+         "addressIndex":"194",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "AllFVRun",
+         "addressIndex":"196",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01State",
+         "addressIndex":"198",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02State",
+         "addressIndex":"200",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01State",
+         "addressIndex":"202",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01State",
+         "addressIndex":"204",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02State",
+         "addressIndex":"206",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MainControl",
+         "addressIndex":"208",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+
+
+
+
+   ]
+}

--
Gitblit v1.8.0