From ecde4b864d846fb68ecbfd562aa22286abfad9c4 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期五, 22 三月 2024 10:50:06 +0800
Subject: [PATCH] 表格导入(数据处理,页面调整);测量页面功能实现;

---
 springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java |  141 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 108 insertions(+), 33 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 14acc27..742d175 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,9 @@
 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.fasterxml.jackson.databind.ObjectMapper;
 
 @Service
 public class StorageCageService {
@@ -236,83 +240,154 @@
         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{
+        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();
+        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 Result ManualTake(String glassInfo) {
+        // 璇诲彇DB105鍖烘枃浠�
+        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+        // 绉婚櫎
+        // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
+        // (short) 3);
+        // 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);
+        // 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>();// 寰楀埌澶勭悊瀹屽悗鎵�鏈夌殑绫诲瀷
+
+        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))
+                .collect(Collectors.toList());
+        // 鍙栧嚭RemoveErrorData 閲岄潰鐨勫垪褰撲綔TypeData鐨刱ey
+
+        TypeDatas.forEach(item -> {
+            TypeData.put(item.get("type").toString(), item.get("glasstype").toString());
+        });
+
+        System.out.println(RemoveErrorData.size());
+        // 澶勭悊瀹屾垚 娣诲姞鏁版嵁搴�
+        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);
+            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
+                    , map.get("glasstype").toString() // 闇�瑕佽绠� 鐜荤拑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);// 闇�瑕佽绠楁�诲眰鏁�
+        }
+        Map<String, Object> ResultCode = new HashMap<>();
+        ResultCode.put("message", "200");
+        return Result.success(ResultCode);
+    }
+
 }

--
Gitblit v1.8.0