From 28ded8102d83cf74bc232d1cdfc89b7f22c41952 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 03 十二月 2024 09:09:31 +0800
Subject: [PATCH] 增加点击防抖事件 增加笼子使用详情的计算优化。 增加数据推送时的报错处理 测量台交互逻辑增加 参数界面增加翻转加减速度

---
 springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java |  440 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 370 insertions(+), 70 deletions(-)

diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
index 0c9fb2f..0024a4c 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -14,12 +14,15 @@
 import com.example.springboot.component.PLCAutoMes;
 import com.example.springboot.component.Plchome;
 import com.example.springboot.component.S7control;
-import com.example.springboot.entity.FlowCard;
+import com.example.springboot.entity.Flowcard;
 import com.example.springboot.entity.GlassInfo;
+import com.example.springboot.entity.MeasureSetting;
 import com.example.springboot.entity.Queue;
 import com.example.springboot.entity.StorageCage;
 import com.example.springboot.entity.StorageTask;
 import com.example.springboot.entity.device.PlcParameterObject;
+import com.example.springboot.mapper.AlbaniaMapper;
+import com.example.springboot.mapper.GlassInfoMapper;
 import com.example.springboot.mapper.HomeMapper;
 import com.example.springboot.mapper.QueueMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -37,6 +40,10 @@
 
     @Autowired
     private SpianService spianService;
+    @Autowired
+    private AlbaniaMapper albaniaMapper;
+    @Autowired
+    private GlassInfoMapper glassInfoMapper;
 
     public void EndTask(int types) {
         String A01glassid1 = spianService.queGlassid("DB103.128", 14).toString();
@@ -200,6 +207,7 @@
         } else {
             if (id == 1) {
                 // 璋冪敤浼嶅瓨鍌ㄨ繃绋�
+                System.out.println("璋冪敤涓婄墖鍑芥暟");
                 zhi = spianService.selectAll(queue.getglassId());
                 if (zhi == 200) {
                     homeMapper.InsertQueueGlassId(queue, id);
@@ -220,44 +228,202 @@
     // 澧炲姞/鍑忓皯鐞嗙墖绗肩幓鐠冩暟
     public Result UpdateStroageCageByCell(Integer cell, Integer num) {
         if (num == 0) {
-            homeMapper.DeleteStroageCageByCell(cell);
+            int sumcell=albaniaMapper.SelectOutTasksum(cell);
+            if(sumcell==0){
+                homeMapper.DeleteStroageCageByCell(cell);
+            }           
+        }else if(num==-1){
+            homeMapper.updateStroageCageByCell(cell, num);
         } else {
             homeMapper.updateStroageCageByCell(cell, num);
-            homeMapper.UpdateStroageCageWidthByCell(cell);
+            homeMapper.UpdateStroageCageWidthByCell(cell);// 淇敼绗煎瓙瀹藉害
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
+        return Result.success(map);
+    }
+     // 鐣岄潰澧炲姞/鍑忓皯鐞嗙墖绗肩幓鐠冩暟
+     public Result UpdateStroageCageByCells(Integer cell, Integer num) {
+        if (num == 0) {
+            int sumcell=albaniaMapper.SelectOutTasksum(cell);
+            if(sumcell==0){
+                homeMapper.DeleteStroageCageByCell(cell);
+            }             
+        } else {
+            homeMapper.updateStroageCageByCell(cell, num);
+            homeMapper.UpdateStroageCageWidthByCell(cell);// 淇敼绗煎瓙瀹藉害
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("message", "200");
+        return Result.success(map);
+    }
+ 
+
+    // 鎸囧畾鏍煎瓙鍑虹墖
+    public Result AddOutGlass(Integer cell, Integer glasstype) {
+        GlassInfo glass = albaniaMapper.SelectGlassInfo(glasstype);
+        Map<String, Object> map = new HashMap<>();
+        if (glass != null) {
+            albaniaMapper.AddFinishNumber(glass.getFlowcard(), glass.getMateid(), glass.getTier());
+            UpdateStroageCageByCell(cell, -1);// 鐜荤拑鏁伴噺-1
+            // 澧炲姞鍑虹墖闃熷垪鐨勪换鍔�
+            albaniaMapper.InsertOutTask(1, 0, cell, 2001, glass.getGlassid(),
+                    glass.getGlasstype(), glass.getFlowcard(), glass.getMateid(), glass.getTier());
+            map.put("message", "200");
+        } else {
+            map.put("message", "300");
+        }
         return Result.success(map);
     }
 
     // 鏌ヨ杩�/鍑虹墖浠诲姟
     public List<StorageTask> SelectStorageTask(int task_type) {
         List<StorageTask> storageTasks = new ArrayList<>();
+        String loadrack = "0";
         if (task_type == 0) {
             storageTasks = homeMapper.SelectStorageTask(task_type);
         } else {
             storageTasks = homeMapper.SelectStorageTask(task_type);
         }
         for (StorageTask storageTask : storageTasks) {
-            storageTask.setstorageCage(homeMapper.SelectStorageByCell(storageTask.getLoadrack()));
+            if (task_type == 0) {
+                loadrack = storageTask.getLoadrack();
+            } else {
+                loadrack = storageTask.getShelfRack();
+            }
+            // storageTask.setstorageCage(homeMapper.SelectStorageByCell(loadrack));
+            storageTask.setstorageCage(homeMapper.SelectStorageByCellGlass(storageTask.getId()));
+
         }
         return storageTasks;
     }
 
-    // 鎵嬪姩瀹屾垚浠诲姟
-    public Result FinishTask(Integer id) {
-        StorageTask storageTask = homeMapper.SelectStorageTaskById(id);// 鑾峰彇浠诲姟淇℃伅
-        homeMapper.FinishTask(storageTask.getId());// 瀹屾垚浠诲姟
-        if (storageTask.getTaskType().equals("0")) {
-            UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 鐜荤拑鏁伴噺+1
-        } else {
-            StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack());
-            if (storageCage.getNumber() > 1) {
-                UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), -1);// 鐜荤拑鏁伴噺-1
-            } else {
-                UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 0);// 娓呴櫎鏍煎唴淇℃伅
+    // 鏌ヨ鍑虹墖闃熷垪
+    public List<Map> SelectOutTask() {
+        return homeMapper.SelectOutTask();
+    }
+
+    // 鏌ヨ鍑虹墖闃熷垪
+    public List<Map> SelectOutLog() {
+        return homeMapper.SelectOutLog();
+    }
+
+    // 鏌ヨ杩�/鍑虹墖浠诲姟
+    public List<GlassInfo> SelectMeasure() {
+        return homeMapper.SelectMeasure();
+    }
+
+    // 鏌ヨ褰撳墠鑶滅郴鍘氬害
+    public MeasureSetting SelectSetting() {
+        return homeMapper.SelectMeasureSetting();
+    }
+
+    // 鏌ヨ娴嬮噺瀹介珮鍘氳啘绯�
+    public Map StorageCageForm() {
+        return homeMapper.SelectMeasureWidthHeight();
+    }
+
+    // 鎵嬪姩缁撴潫浠诲姟
+    public Result TerminateTask(int id) {
+        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+          // 娓呴櫎浠诲姟鍦板潃
+          for (int i = 1; i < 7; i++) {
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(), (short) 0);// 娓呴櫎浠诲姟鍦板潃
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(), (short) 0);// 娓呴櫎浠诲姟鍦板潃
+          }
+          System.out.println("缁撴潫浠诲姟鍦板潃");
+        for (int i = 1; i < 7; i++) {
+            int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲�
+            System.out.println("浠诲姟鏁伴噺:" + taskcont);
+            if (taskcont == 0) {
+                break;
             }
-            homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(), storageTask.geTier());// 娣诲姞鍑虹墖瀹屾垚鏁伴噺
+            StorageTask storageTask = homeMapper.SelectStorageTaskById();// 鑾峰彇浠诲姟淇℃伅
+            if (storageTask.getTaskType().equals("0")) {
+                System.out.println("缁撴潫杩涚墖浠诲姟:" + storageTask.getId());
+                homeMapper.FinishTask(storageTask.getId(), 2);// 瀹屾垚浠诲姟
+                homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
+                glassInfoMapper.updateGlassNumber(storageTask.getGlasstype());// 鍑忓皯鎵弿娆℃暟
+                StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getLoadrack());
+                if (storageCage.getNumber() == null || storageCage.getNumber() == 0) {
+                    UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 0);// 娓呴櫎鏍煎唴淇℃伅
+                }
+            } else {
+                System.out.println("缁撴潫鍑虹墖浠诲姟:" + storageTask.getId());
+                homeMapper.FinishTask(storageTask.getId(), 2);// 瀹屾垚浠诲姟
+                UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 1);// 鐜荤拑鏁伴噺+1
+                homeMapper.OutGlassNo(storageTask.getGlasstype());// 杩樺師鍑虹墖瀹屾垚鏁伴噺
+            }
+        }
+        Map<String, Object> map = new HashMap<>();
+        return Result.success(map);
+    }
+
+    // 鎵嬪姩瀹屾垚浠诲姟
+    public Result FinishTask() {
+        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+          // 娓呴櫎浠诲姟鍦板潃
+          for (int i = 1; i < 7; i++) {
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(), (short) 0);// 娓呴櫎浠诲姟鍦板潃
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(), (short) 0);// 娓呴櫎浠诲姟鍦板潃
+          }
+          System.out.println("缁撴潫浠诲姟鍦板潃");
+        for (int i = 1; i < 7; i++) {
+            int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲�
+            System.out.println("浠诲姟鏁伴噺:" + taskcont);
+            if (taskcont == 0) {
+                break;
+            }
+            StorageTask storageTask = homeMapper.SelectStorageTaskById();// 鑾峰彇浠诲姟淇℃伅
+            if (storageTask.getTaskType().equals("0")) {
+                System.out.println("瀹屾垚杩涚墖浠诲姟:" + storageTask.getId());
+                homeMapper.FinishTask(storageTask.getId(), 1);// 瀹屾垚浠诲姟
+                UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 鐜荤拑鏁伴噺+1
+                homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
+            } else {
+                System.out.println("瀹屾垚鍑虹墖浠诲姟:" + storageTask.getId());
+                homeMapper.FinishTask(storageTask.getId(), 1);// 瀹屾垚浠诲姟
+                StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack());
+                if (storageCage.getNumber() == null || storageCage.getNumber() == 0) {
+                    UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 0);// 娓呴櫎鏍煎唴淇℃伅
+                }
+                // homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(),
+                // storageTask.geTier());// 娣诲姞鍑虹墖瀹屾垚鏁伴噺
+
+            }
+          
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("message", "200");
+        return Result.success(map);
+    }
+
+    // 鑷姩瀹屾垚浠诲姟
+    public Result LoseTask() {
+        for (int i = 1; i < 7; i++) {
+            int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲�
+            System.out.println("浠诲姟鏁伴噺:" + taskcont);
+            if (taskcont == 0) {
+                break;
+            }
+            StorageTask storageTask = homeMapper.SelectStorageTaskById();// 鑾峰彇浠诲姟淇℃伅
+            if (storageTask.getTaskType().equals("0")) {
+                System.out.println("瀹屾垚杩涚墖浠诲姟:" + storageTask.getId());
+                homeMapper.FinishTask(storageTask.getId(), 1);// 瀹屾垚浠诲姟
+                UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 鐜荤拑鏁伴噺+1
+                homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
+            } else {
+                System.out.println("瀹屾垚鍑虹墖浠诲姟:" + storageTask.getId());
+                homeMapper.FinishTask(storageTask.getId(), 1);// 瀹屾垚浠诲姟
+                StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack());
+                if (storageCage.getNumber() > 1) {
+                    UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), -1);// 鐜荤拑鏁伴噺-1
+                } else {
+                    UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 0);// 娓呴櫎鏍煎唴淇℃伅
+                }
+                homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(), storageTask.geTier());// 娣诲姞鍑虹墖瀹屾垚鏁伴噺
+
+            }
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
@@ -265,8 +431,8 @@
     }
 
     // 鏌ヨ鐜荤拑淇℃伅
-    public Result SelectGlassInfo(String width, String height, String thickness, String films) {
-        List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width, height, thickness, films);
+    public Result SelectGlassInfo(String width, String height, String thickness, String films, String tier) {
+        List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width, height, thickness, films, tier);
         Map<String, Object> map = new HashMap<>();
         map.put("StorageCageAddInfo", glassInfoList);
         return Result.success(map);
@@ -275,30 +441,36 @@
     // 娣诲姞鐜荤拑鍒版牸瀛愬唴
     public Result StorageCageAddGlass(String cell, GlassInfo glassInfo) {
         homeMapper.StorageCageAddGlass(cell, glassInfo);
-        UpdateStroageCageByCell(Integer.parseInt(cell), 1);
+        UpdateStroageCageByCells(Integer.parseInt(cell), 1);
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
         return Result.success(map);
     }
 
     // 鏌ヨ璁㈠崟浠诲姟
-    public List<FlowCard> SelectOrderTask() {
-        List<FlowCard> OrderTask = homeMapper.SelectOrderTask();
-        for (FlowCard flowcard : OrderTask) {
+    public List<Flowcard> SelectOrderTask() {
+        List<Flowcard> OrderTask = homeMapper.SelectOrderTask();
+        for (Flowcard flowcard : OrderTask) {
             flowcard.setglassinfo(homeMapper.SelectOrderView(flowcard.getFlowcard()));
         }
         return OrderTask;
     }
 
-    // 寮�濮嬩换鍔�
+    // 寮�濮嬪嚭鐗�
     public Result ClaimTasks(String flowcard, Integer state, Integer line) {
-        if (state == 1) {
-            homeMapper.ClaimTasks(flowcard, 0,line);
-        } else {
-            homeMapper.ClaimTasks(flowcard, 1,line);
-        }
+        int count = homeMapper.SelectTaskCount(flowcard, line);
         Map<String, Object> map = new HashMap<>();
-        map.put("message", "200");
+        if (count == 0) {
+            if (state == 1) {
+                homeMapper.ClaimTasks(flowcard, 0, line);
+            } else {
+                homeMapper.ClaimTasks(flowcard, 1, line);
+            }
+            map.put("message", "200");
+        } else {
+            map.put("message", "300");
+        }
+
         return Result.success(map);
     }
 
@@ -314,12 +486,52 @@
         return Result.success(map);
     }
 
-    // 淇敼娴嬮噺淇℃伅
+    // 鎵爜鍖归厤鎴愬姛
+    public int ScanMatch(String Order, Integer Mateid, Integer tier) {
+
+        GlassInfo glass = homeMapper.SelectCodeGlass(Order, Mateid, tier);
+        System.out.println("glass:" + glass);
+        System.out.println("order" + Order + "mateid" + Mateid + "tier" + tier);
+        if (glass == null) {
+            return 0;
+        } else {
+            int cont = QueueMapper.insertQueueCode(glass.getFlowcard(), glass.getGlassid(), glass.getMateid(),
+                    glass.getGlasstype(), glass.getWidth(), glass.getHeight(), glass.getThickness());
+            glassInfoMapper.updatemeasurenumber(glass.getId());
+            return cont;
+        }
+    }
+
+    // 浜哄伐鍖归厤淇敼娴嬮噺淇℃伅
     public Result UpdateQueue(GlassInfo glassInfo) {
-        homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
-                glassInfo.getGlasstype(),glassInfo.getThickness());
+        // 鍒犻櫎鏁版嵁
+        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
         Map<String, Object> map = new HashMap<>();
-        map.put("message", "200");
+        QueueMapper.DeleteQueue();
+        String mestoplc = plcmes.getPlcParameter("MESToGaStatus").getValue();
+        String A02Plc = plcmes.getPlcParameter("GaToMES").getValue();
+        System.out.println("浜哄伐鍖归厤mestoplc:" + mestoplc);
+        // int count = homeMapper.SelectQueue();
+        if (("0".equals(mestoplc) && "0".equals(A02Plc)) || ("1".equals(A02Plc) && "4".equals(mestoplc))) {
+            // homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(),
+            // glassInfo.getHeight(),
+            // glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(),
+            // glassInfo.getMateid());
+            homeMapper.AddQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
+                    glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(), glassInfo.getMateid());
+            glassInfoMapper.updatemeasurenumber(glassInfo.getId());
+            if ("0".equals(mestoplc)) {
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToA01").getAddress(), (short) 1);
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
+                System.out.println("鎻愬墠鍖归厤");
+            } else {
+                System.out.println("娴嬮噺鍖归厤");
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
+            }
+            map.put("message", "200");
+        } else {
+            map.put("message", "300");
+        }
         return Result.success(map);
     }
 
@@ -331,14 +543,86 @@
     public Result ManualTake(String glassInfo) {
         // 璇诲彇DB105鍖烘枃浠�
         PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+        String A02Plc = plcmes.getPlcParameter("GaToMES").getValue();
+        String A01Plc = plcmes.getPlcParameter("A01ToMES").getValue();
+        String A02Mes = plcmes.getPlcParameter("MESToGaStatus").getValue();
+        Map<String, Object> map = new HashMap<>();
         // 绉婚櫎
-        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 3);
-        //鍒犻櫎鏁版嵁
-        QueueMapper.DeleteErrorQueue();
-        
+        if ("1".equals(A02Plc)||"2".equals(A02Plc)||"1".equals(A02Mes)) {
+            Queue queue = QueueMapper.selectLastQueue3();
+            if (queue != null) {
+                // 鍑忓皯鍖归厤娆℃暟
+                glassInfoMapper.updateGlassNumber(queue.getglasstype());
+            }
+            // 鍒犻櫎闃熷垪
+            QueueMapper.DeletefromQueue();
+            if("0".equals(A02Plc)){
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 0);
+            }else{
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 3);
+            }
+            
+            System.out.println("浜哄伐鎷胯蛋A02Plc:" + A02Plc);
+            map.put("message", "200");
+        }else{
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToA01").getAddress(), (short) 3);
+            QueueMapper.DeletefromQueue();
+            map.put("message", "300");
+            System.out.println("浜哄伐鎷胯蛋A01Plc:" + A01Plc);
+        }
         // plcmes.getPlcParameter("GaToMES").setValue("3");
+        
+        return Result.success(map);
+    }
+
+    // 寮�濮嬩笂鐗�
+    public Result StartChange(String flowcard, int orderstate) {
+        homeMapper.StartChange(flowcard, orderstate);
+        Map<String, Object> map = new HashMap<>();
+        int state = homeMapper.selectStartChange(flowcard);
+        map.put("message", "200");
+        return Result.success(map);
+    }
+
+    // 寮�濮�/鏆傚仠鍑虹墖闃熷垪
+    public Result UpdateOutTask(Integer id, Integer state) {
+        homeMapper.UpdateOutTask(id, state);
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
+        return Result.success(map);
+    }
+
+    // 鍒犻櫎鍑虹墖闃熷垪
+    public Result DeleteOutTask(Integer id) {
+        int cell = homeMapper.SelectOutTaskId(id);
+        UpdateStroageCageByCell(cell, 1);// 鐜荤拑鏁伴噺+1
+        homeMapper.DeleteOutTask(id);
+        Map<String, Object> map = new HashMap<>();
+        map.put("message", "200");
+        return Result.success(map);
+    }
+
+    // 鍒犻櫎宸ョ▼
+    public Result deleteTasks(Map num) {
+        Map<String, Object> map = new HashMap<>();
+        String flowcard = (String) num.get("num");
+        int cagenum=homeMapper.selectflowcardCage(flowcard);
+        if(cagenum==0){
+        int aa = homeMapper.deleteFlowcard(flowcard.trim());
+        map.put("message","200");
+        homeMapper.deleteGlassinfo(flowcard.trim());
+        }else{
+        map.put("message", "300");
+        }
+        System.out.println("鍒犻櫎宸ョ▼"+flowcard);
+        return Result.success(map);
+    }
+
+    // 淇濆瓨娴嬮噺璁剧疆
+    public Result SaveMeasure(String films, Integer thickness) {
+        int Measure = homeMapper.SaveMeasure(films, thickness);
+        Map<String, Object> map = new HashMap<>();
+        map.put("message", Measure);
         return Result.success(map);
     }
 
@@ -347,8 +631,11 @@
         // 璇诲彇DB105鍖烘枃浠�
         PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
         // 閲嶆柊娴嬮噺
-        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 2);
-        //鍒犻櫎鏁版嵁
+        String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// plc璇锋眰瀛�
+        if ("1".equals(PlcRequest)) {
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 2);
+        }
+        // 鍒犻櫎鏁版嵁
         QueueMapper.DeleteErrorQueue();
         // plcmes.getPlcParameter("GaToMES").setValue("2");
         Map<String, Object> map = new HashMap<>();
@@ -362,14 +649,15 @@
         // 绛涢�夊鐞嗘暟鎹� 1.鍘婚櫎鏃犵敤鏁版嵁 2.璁$畻閰嶇墖ID 3.璁$畻ID 4. 璁$畻鎬诲眰鏁�
         List<Map> TypeDatas = homeMapper.SelectType();
         Map<String, String> TypeData = new HashMap<String, String>();// 寰楀埌澶勭悊瀹屽悗鎵�鏈夌殑绫诲瀷
-        Map<String, Integer> groupby=new HashMap<String, Integer>(); // 寰楀埌澶勭悊瀹屽悗鎵�鏈夋�诲眰鏁�;
-        Map<String, Integer> OrderFinishedProduct=new HashMap<String, Integer>(); // 寰楀埌澶勭悊瀹屽悗璁㈠崟鎴愬搧鎬绘暟閲�;
-        //"order zong 0  1  10  2 10"
+        Map<String, Integer> groupby = new HashMap<String, Integer>(); // 寰楀埌澶勭悊瀹屽悗鎵�鏈夋�诲眰鏁�;
+        Map<String, Integer> OrderFinishedProduct = new HashMap<String, Integer>(); // 寰楀埌澶勭悊瀹屽悗璁㈠崟鎴愬搧鎬绘暟閲�;
+        // "order zong 0 1 10 2 10"
         List<Map> RemoveErrorData = IportDataStr.stream()
-                .filter(item -> (item.get("order") != null && item.get("glasstype") != null && item.get("tier") != null
+                .filter(item -> (item.get("order") != null && item.get("tier") != null
                         &&
                         item.get("films") != null && item.get("base") != null && item.get("height") != null
-                        && item.get("thickness") != null && item.get("quantity") != null&& item.get("matching") != null))
+                        && item.get("thickness") != null && item.get("quantity") != null
+                        && item.get("matching") != null))
                 .collect(Collectors.toList());
 
         TypeDatas.forEach(item -> {
@@ -377,57 +665,69 @@
         });
 
         RemoveErrorData.forEach(item -> {
-            String key=item.get("order").toString()+"_"+item.get("matching").toString();
-            String keyCount=item.get("order").toString()+"_"+item.get("matching").toString()+"_"+item.get("tier").toString();
-            String keyCountSum=item.get("order").toString()+"_"+item.get("matching").toString()+"_Sum";//璁㈠崟鎬绘暟
-            if (OrderFinishedProduct.get(keyCount)!=null) {
-                Integer count=OrderFinishedProduct.get(keyCount)+1;
-                Integer sumcount=OrderFinishedProduct.get(keyCountSum)+Integer.parseInt(item.get("quantity").toString());
-                OrderFinishedProduct.put(keyCount,count);
-                OrderFinishedProduct.put(keyCountSum,sumcount);
-            }else if(OrderFinishedProduct.get(keyCount)==null&&groupby.get(key)==null){
-                OrderFinishedProduct.put(keyCount,1);
-                OrderFinishedProduct.put(keyCountSum,Integer.parseInt(item.get("quantity").toString()));
+            String key = item.get("order").toString() + "_" + item.get("matching").toString();
+            String keyCount = item.get("order").toString() + "_" + item.get("matching").toString() + "_"
+                    + item.get("tier").toString();
+            String keyCountSum = item.get("order").toString() + "_" + item.get("matching").toString() + "_Sum";// 璁㈠崟鎬绘暟
+            if (OrderFinishedProduct.get(keyCount) != null) {
+                Integer count = OrderFinishedProduct.get(keyCount) + 1;
+                Integer sumcount = OrderFinishedProduct.get(keyCountSum)
+                        + Integer.parseInt(item.get("quantity").toString());
+                OrderFinishedProduct.put(keyCount, count);
+                OrderFinishedProduct.put(keyCountSum, sumcount);
+            } else if (OrderFinishedProduct.get(keyCount) == null && groupby.get(key) == null) {
+                OrderFinishedProduct.put(keyCount, 1);
+                OrderFinishedProduct.put(keyCountSum, Integer.parseInt(item.get("quantity").toString()));
             }
-            if (groupby.get(key)!=null) {
-                Integer Tiers=groupby.get(key)+1;
+            if (groupby.get(key) != null) {
+                Integer Tiers = groupby.get(key) + 1;
                 groupby.put(key, Tiers);
-            }else{
+            } else {
                 groupby.put(key, 1);
-            }    
+            }
         });
 
         System.out.println(RemoveErrorData.size());
         // 澶勭悊瀹屾垚 娣诲姞鏁版嵁搴�
+        int count = 1;
         for (Map map : RemoveErrorData) {
             String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
-                       + map.get("thickness").toString() + "_" + map.get("films").toString();
-
+                    + map.get("thickness").toString() + "_" + map.get("films").toString() + "_"
+                    + map.get("order").toString() + "_" + map.get("matching").toString() + map.get("tier").toString();
             String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
 
             String value = TypeData.get(key);
             Integer glasstype;
+            System.out.println(key + ":" + TypeData.get(key));
             if (TypeData.get(key) == null) {
-                glasstype = homeMapper.SelectMaxType();
+
+                glasstype = homeMapper.SelectMaxTypes(key);
+                if (glasstype == null) {
+                    glasstype = homeMapper.SelectMaxType();
+                }
+                if (glasstype == null) {
+                    glasstype = 1;
+                }
             } else {
                 glasstype = Integer.valueOf(value);
             }
+            //
             homeMapper.AddGlassinfo(map.get("order").toString(), glasstype,
                     Integer.parseInt(map.get("matching").toString()) // 闇�瑕佽绠� 閰嶇墖ID
-                    , glasstype+"" // 闇�瑕佽绠� 鐜荤拑ID
+                    , map.get("order").toString() + "-" + count + "" // 闇�瑕佽绠� 鐜荤拑ID
                     , Integer.parseInt(map.get("tier").toString()), map.get("films").toString(),
                     Double.parseDouble(map.get("base").toString()), Double.parseDouble(map.get("height").toString()),
                     Double.parseDouble(map.get("thickness").toString()),
-                    Integer.parseInt(map.get("quantity").toString()),groupby.get(tierkey));// 闇�瑕佽绠楁�诲眰鏁�
-            //璁㈠崟鍐呮�诲眰鏁�
-            homeMapper.InsertFlowcard(map.get("order").toString(),OrderFinishedProduct.get(tierkey+"_Sum")); 
+                    Integer.parseInt(map.get("quantity").toString()), groupby.get(tierkey),
+                    map.get("Customer").toString());// 闇�瑕佽绠楁�诲眰鏁�
+            // 璁㈠崟鍐呮�诲眰鏁�
+            homeMapper.InsertFlowcard(map.get("order").toString(), OrderFinishedProduct.get(tierkey + "_Sum"),
+                    map.get("Customer").toString());
+            count++;
         }
         Map<String, Object> ResultCode = new HashMap<>();
         ResultCode.put("message", "200");
         return Result.success(ResultCode);
     }
-
-
-
 
 }

--
Gitblit v1.8.0