From c1d88895501846c4ad1ba2b16f4a8ae10ca2b061 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 26 三月 2024 15:32:35 +0800
Subject: [PATCH] 代码更新

---
 springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java |  175 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 138 insertions(+), 37 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 c8d5699..f1fa40e 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
@@ -5,11 +5,13 @@
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.example.springboot.common.Result;
+import com.example.springboot.component.PLCAutoMes;
 import com.example.springboot.component.Plchome;
 import com.example.springboot.component.S7control;
 import com.example.springboot.entity.FlowCard;
@@ -17,7 +19,10 @@
 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.HomeMapper;
+import com.example.springboot.mapper.QueueMapper;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 @Service
 public class StorageCageService {
@@ -26,6 +31,9 @@
 
     @Autowired
     private OutSliceServive outSliceServive;
+
+    @Autowired
+    private QueueMapper QueueMapper;
 
     @Autowired
     private SpianService spianService;
@@ -236,83 +244,176 @@
         return storageTasks;
     }
 
-    //鎵嬪姩瀹屾垚浠诲姟
-    public Result FinishTask(Integer tasktype, Integer id) {
-        StorageTask storageTask = homeMapper.SelectStorageTaskById(id);//鑾峰彇浠诲姟淇℃伅
-        homeMapper.FinishTask(storageTask.getId());//瀹屾垚浠诲姟
-        if(storageTask.getTaskType().equals("0")){
-            UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()),1);//鐜荤拑鏁伴噺+1
-        }else{
+    // 鎵嬪姩瀹屾垚浠诲姟
+    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);//娓呴櫎鏍煎唴淇℃伅
+            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());//娣诲姞鍑虹墖瀹屾垚鏁伴噺
+            homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(), storageTask.geTier());// 娣诲姞鍑虹墖瀹屾垚鏁伴噺
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
         return Result.success(map);
     }
 
-
-    //鏌ヨ鐜荤拑淇℃伅
-    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) {
+        List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width, height, thickness, films);
         Map<String, Object> map = new HashMap<>();
         map.put("StorageCageAddInfo", glassInfoList);
         return Result.success(map);
     }
 
-    //娣诲姞鐜荤拑鍒版牸瀛愬唴
-    public Result StorageCageAddGlass(String cell,GlassInfo glassInfo) {
-        homeMapper.StorageCageAddGlass(cell,glassInfo);
-        UpdateStroageCageByCell(Integer.parseInt(cell),1);
+    // 娣诲姞鐜荤拑鍒版牸瀛愬唴
+    public Result StorageCageAddGlass(String cell, GlassInfo glassInfo) {
+        homeMapper.StorageCageAddGlass(cell, glassInfo);
+        UpdateStroageCageByCell(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) {
-            flowcard.setglassinfo(homeMapper.SelectOrderView(flowcard.getFlowcard()));
-        }
+        List<FlowCard> OrderTask = homeMapper.SelectOrderTask();
+        // for (FlowCard flowcard : OrderTask) {
+        //     flowcard.setglassinfo(homeMapper.SelectOrderView(flowcard.getFlowcard()));
+        // }
         return OrderTask;
     }
 
-    //寮�濮嬩换鍔�
+    // 寮�濮嬩换鍔�
     public Result ClaimTasks(String flowcard, Integer state) {
-        if(state==1){
-            homeMapper.ClaimTasks(flowcard,0);
-        }else{
-            homeMapper.ClaimTasks(flowcard,1);
+        if (state == 1) {
+            homeMapper.ClaimTasks(flowcard, 0);
+        } else {
+            homeMapper.ClaimTasks(flowcard, 1);
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
         return Result.success(map);
     }
 
-    //浠诲姟妯″紡淇敼
+    // 浠诲姟妯″紡淇敼
     public Result ModeChange(String flowcard, Integer method) {
-        if(method==1){
-            homeMapper.ModeChange(flowcard,0);
-        }else{
-            homeMapper.ModeChange(flowcard,1);
+        if (method == 1) {
+            homeMapper.ModeChange(flowcard, 0);
+        } else {
+            homeMapper.ModeChange(flowcard, 1);
         }
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
         return Result.success(map);
     }
 
-    //淇敼娴嬮噺淇℃伅
+    // 淇敼娴嬮噺淇℃伅
     public Result UpdateQueue(GlassInfo glassInfo) {
-        homeMapper.UpdateQueue(glassInfo.getFlowcard(),glassInfo.getWidth(),glassInfo.getHeight(),glassInfo.getGlasstype());
+        homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
+                glassInfo.getGlasstype());
         Map<String, Object> map = new HashMap<>();
         map.put("message", "200");
         return Result.success(map);
     }
 
+    public List<StorageCage> SelectStorageCageByCage(int cage) {
+        return homeMapper.SelectStorageCageByCage(cage);
+    }
+
+    // 浜哄伐鎷胯蛋
+    public Result ManualTake(String glassInfo) {
+        // 璇诲彇DB105鍖烘枃浠�
+        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+        // 绉婚櫎
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 3);
+        //鍒犻櫎鏁版嵁
+        QueueMapper.DeleteErrorQueue();
+        
+        // plcmes.getPlcParameter("GaToMES").setValue("3");
+        Map<String, Object> map = new HashMap<>();
+        map.put("message", "200");
+        return Result.success(map);
+    }
+
+    // 閲嶆柊娴嬮噺
+    public Result AnewMeasure(String glassInfo) {
+        // 璇诲彇DB105鍖烘枃浠�
+        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+        // 閲嶆柊娴嬮噺
+        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");
+        return Result.success(map);
+    }
+
+    // 娣诲姞灏忕墖淇℃伅
+    public Result AddGlassinfo(List<Map> IportDataStr) {
+
+        // 绛涢�夊鐞嗘暟鎹� 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>(); // 寰楀埌澶勭悊瀹屽悗鎵�鏈夋�诲眰鏁�;
+
+        List<Map> RemoveErrorData = IportDataStr.stream()
+                .filter(item -> (item.get("order") != null && item.get("glasstype") != null && item.get("tier") != null
+                        &&
+                        item.get("films") != null && item.get("base") != null && item.get("height") != null
+                        && item.get("thickness") != null && item.get("quantity") != null&& item.get("matching") != null))
+                .collect(Collectors.toList());
+
+        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();
+            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());
+        // 澶勭悊瀹屾垚 娣诲姞鏁版嵁搴�
+        for (Map map : RemoveErrorData) {
+            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);
+            }
+            homeMapper.AddGlassinfo(map.get("order").toString(), glasstype,
+                    Integer.parseInt(map.get("glasstype").toString()) // 闇�瑕佽绠� 閰嶇墖ID
+                    , glasstype+"" // 闇�瑕佽绠� 鐜荤拑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));// 闇�瑕佽绠楁�诲眰鏁�
+        }
+        Map<String, Object> ResultCode = new HashMap<>();
+        ResultCode.put("message", "200");
+        return Result.success(ResultCode);
+    }
+
+
+
+
 }

--
Gitblit v1.8.0