From e893f60d1dfdf911657861df40754704d1a5bac7 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期三, 10 四月 2024 09:08:45 +0800
Subject: [PATCH] 修改进片新增字段

---
 springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java |   95 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 72 insertions(+), 23 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 742d175..816e5a1 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
@@ -21,6 +21,7 @@
 import com.example.springboot.entity.StorageTask;
 import com.example.springboot.entity.device.PlcParameterObject;
 import com.example.springboot.mapper.HomeMapper;
+import com.example.springboot.mapper.QueueMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 @Service
@@ -30,6 +31,9 @@
 
     @Autowired
     private OutSliceServive outSliceServive;
+
+    @Autowired
+    private QueueMapper QueueMapper;
 
     @Autowired
     private SpianService spianService;
@@ -219,7 +223,7 @@
             homeMapper.DeleteStroageCageByCell(cell);
         } else {
             homeMapper.updateStroageCageByCell(cell, num);
-            homeMapper.UpdateStroageCageWidthByCell(cell);
+            homeMapper.UpdateStroageCageWidthByCell(cell);//淇敼绗煎瓙瀹藉害
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
@@ -246,6 +250,7 @@
         homeMapper.FinishTask(storageTask.getId());// 瀹屾垚浠诲姟
         if (storageTask.getTaskType().equals("0")) {
             UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 鐜荤拑鏁伴噺+1
+            homeMapper.DeletequeueByGlassid(storageTask.getGlassId());
         } else {
             StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack());
             if (storageCage.getNumber() > 1) {
@@ -287,11 +292,11 @@
     }
 
     // 寮�濮嬩换鍔�
-    public Result ClaimTasks(String flowcard, Integer state) {
+    public Result ClaimTasks(String flowcard, Integer state, Integer line) {
         if (state == 1) {
-            homeMapper.ClaimTasks(flowcard, 0);
+            homeMapper.ClaimTasks(flowcard, 0,line);
         } else {
-            homeMapper.ClaimTasks(flowcard, 1);
+            homeMapper.ClaimTasks(flowcard, 1,line);
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
@@ -313,10 +318,16 @@
     // 淇敼娴嬮噺淇℃伅
     public Result UpdateQueue(GlassInfo glassInfo) {
         homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
-                glassInfo.getGlasstype());
+                glassInfo.getGlasstype(),glassInfo.getThickness(),glassInfo.getTier());
         Map<String, Object> map = new HashMap<>();
+        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
         map.put("message", "200");
         return Result.success(map);
+    }
+
+    public List<StorageCage> SelectStorageCageByCage(int cage) {
+        return homeMapper.SelectStorageCageByCage(cage);
     }
 
     // 浜哄伐鎷胯蛋
@@ -324,8 +335,10 @@
         // 璇诲彇DB105鍖烘枃浠�
         PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
         // 绉婚櫎
-        // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
-        // (short) 3);
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 3);
+        //鍒犻櫎鏁版嵁
+        QueueMapper.DeleteErrorQueue();
+        
         // plcmes.getPlcParameter("GaToMES").setValue("3");
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
@@ -337,8 +350,9 @@
         // 璇诲彇DB105鍖烘枃浠�
         PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
         // 閲嶆柊娴嬮噺
-        // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
-        // (short) 2);
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 2);
+        //鍒犻櫎鏁版嵁
+        QueueMapper.DeleteErrorQueue();
         // plcmes.getPlcParameter("GaToMES").setValue("2");
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
@@ -351,43 +365,78 @@
         // 绛涢�夊鐞嗘暟鎹� 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"
         List<Map> RemoveErrorData = IportDataStr.stream()
                 .filter(item -> (item.get("order") != null && item.get("glasstype") != null && item.get("tier") != null
                         &&
                         item.get("films") != null && item.get("base") != null && item.get("height") != null
-                        && item.get("thickness") != null && item.get("quantity") != null))
+                        && item.get("thickness") != null && item.get("quantity") != null&& item.get("matching") != null))
                 .collect(Collectors.toList());
-        // 鍙栧嚭RemoveErrorData 閲岄潰鐨勫垪褰撲綔TypeData鐨刱ey
 
         TypeDatas.forEach(item -> {
             TypeData.put(item.get("type").toString(), item.get("glasstype").toString());
         });
 
+        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()));
+            }
+            if (groupby.get(key)!=null) {
+                Integer Tiers=groupby.get(key)+1;
+                groupby.put(key, Tiers);
+            }else{
+                groupby.put(key, 1);
+            }    
+        });
+
         System.out.println(RemoveErrorData.size());
         // 澶勭悊瀹屾垚 娣诲姞鏁版嵁搴�
+        int count=1;
         for (Map map : RemoveErrorData) {
-            // GlassInfo glassInfo = mapper.convertValue(map, GlassInfo.class);
-            
-            String key=map.get("base").toString()+"_"+map.get("height").toString()+"_"+map.get("thickness").toString()+"_"+map.get("films").toString();
-            String value=TypeData.get(key);
+            String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
+                       + map.get("thickness").toString() + "_" + map.get("films").toString();
+
+            String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
+
+            String value = TypeData.get(key);
             Integer glasstype;
-            if (TypeData.get(key)==null) {
-                glasstype=homeMapper.SelectMaxType();
-            }else{
-                glasstype=Integer.valueOf(value);
+            if (TypeData.get(key) == 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("glasstype").toString()) // 闇�瑕佽绠� 閰嶇墖ID
-                    , map.get("glasstype").toString() // 闇�瑕佽绠� 鐜荤拑ID
+                    Integer.parseInt(map.get("matching").toString()) // 闇�瑕佽绠� 閰嶇墖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()), 1);// 闇�瑕佽绠楁�诲眰鏁�
+                    Integer.parseInt(map.get("quantity").toString()),groupby.get(tierkey));// 闇�瑕佽绠楁�诲眰鏁�
+            //璁㈠崟鍐呮�诲眰鏁�
+            homeMapper.InsertFlowcard(map.get("order").toString(),OrderFinishedProduct.get(tierkey+"_Sum")); 
+            count++;
         }
         Map<String, Object> ResultCode = new HashMap<>();
         ResultCode.put("message", "200");
         return Result.success(ResultCode);
     }
 
+
+
+
 }

--
Gitblit v1.8.0