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 |  214 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 214 insertions(+), 0 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 df711b9..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
@@ -1,20 +1,28 @@
 package com.example.springboot.service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 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;
+import com.example.springboot.entity.GlassInfo;
 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 {
@@ -23,6 +31,9 @@
 
     @Autowired
     private OutSliceServive outSliceServive;
+
+    @Autowired
+    private QueueMapper QueueMapper;
 
     @Autowired
     private SpianService spianService;
@@ -202,4 +213,207 @@
         return Result.success(map);
     }
 
+    public List<StorageCage> SelectStorageCageInfo() {
+        return homeMapper.SelectStorageCageInfo();
+    }
+
+    // 澧炲姞/鍑忓皯鐞嗙墖绗肩幓鐠冩暟
+    public Result UpdateStroageCageByCell(Integer cell, Integer num) {
+        if (num == 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 List<StorageTask> SelectStorageTask(int task_type) {
+        List<StorageTask> storageTasks = new ArrayList<>();
+        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()));
+        }
+        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);// 娓呴櫎鏍煎唴淇℃伅
+            }
+            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);
+        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);
+        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()));
+        // }
+        return OrderTask;
+    }
+
+    // 寮�濮嬩换鍔�
+    public Result ClaimTasks(String flowcard, Integer state) {
+        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);
+        }
+        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());
+        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