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 +++++++++++++++++++++------
 Albania_Mes-ui/src/api/home.js                                                       |   27 +++++
 Albania_Mes-ui/src/views/home/index.vue                                              |   38 +++++-
 springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java           |    1 
 springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java           |    1 
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java          |    6 
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java          |   12 ++
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java  |   23 ++++
 8 files changed, 202 insertions(+), 47 deletions(-)

diff --git a/Albania_Mes-ui/src/api/home.js b/Albania_Mes-ui/src/api/home.js
index dccdaac..7f1d4e0 100644
--- a/Albania_Mes-ui/src/api/home.js
+++ b/Albania_Mes-ui/src/api/home.js
@@ -350,4 +350,31 @@
         method: 'post',
         data
     })
+}
+//浜哄伐鎷胯蛋AnewMeasure
+export function ManualTake(data) {
+    return request({
+        url: '/home/ManualTake',
+        method: 'post',
+        data
+        
+    })
+}
+//閲嶆柊娴嬮噺
+export function AnewMeasure(data) {
+    return request({
+        url: '/home/AnewMeasure',
+        method: 'post',
+        data
+        
+    })
+}
+
+export function importData(data) {
+    return request({
+        url: '/home/importData',
+        method: 'post',
+        data
+        
+    })
 }
\ No newline at end of file
diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index fe4231b..0114c33 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -397,7 +397,7 @@
             <div id="fileinput" class="container">
                 <div class="header">
                     <div class="btn">
-                        <button @click="AllAdd">淇濆瓨</button>
+                        <el-button type="primary" @click="importData()">淇濆瓨</el-button>
                     </div>
                     <div class="inp">
                         <input type="file" id="uploadExcel" multiple @change="Change" />
@@ -457,7 +457,9 @@
                     <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState"
                         style="z-index: 999;">浜哄伐鍖归厤</el-button>
                     <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState"
-                        style="z-index: 999;">浜哄伐鍖归厤</el-button>
+                        style="z-index: 999;">浜哄伐鎷胯蛋</el-button>
+                    <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState"
+                        style="z-index: 999;">閲嶆柊娴嬮噺</el-button>
                 </div>
                 <!--鏄剧ず-->
                 <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;margin: auto auto;">
@@ -601,7 +603,7 @@
     Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue,
     isAllowReorderings,
 
-    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue
+    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue,importData,ManualTake,AnewMeasure
 } from "../../api/home";
 
 
@@ -991,7 +993,21 @@
         },
         //浜哄伐鎷胯蛋
         ManualTake() {
-
+            let s="123";
+            ManualTake(s).then(res => {
+                if (res.data.message == 200) {
+                    console.log(res.data.message);
+                }
+            })
+        },
+        //閲嶆柊娴嬮噺
+        AnewMeasure() {
+            let s="123";
+            AnewMeasure(s).then(res => {
+                if (res.data.message == 200) {
+                    console.log(res.data.message);
+                }
+            })
         },
         Change(event) {
             // 鑾峰彇鍒版枃浠跺す
@@ -1022,12 +1038,16 @@
         Add() {
             
         },
-        Hide() {
+        importData() {
             
-        },
-        AllAdd() {
-            //娣诲姞鏁版嵁杩涘悗鍙�
-            console.log(this.dataList);
+            //let tbdata=JSON.stringify(this.dataList);
+            let tbdata=this.dataList;
+            console.log(tbdata);
+            importData(tbdata).then(res => {
+                if (res.data.message == 200) {
+                    //this.$message.success(this.$t('Operation successful'));
+                }
+            });
         },
         del() {
             
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
index b5693e4..4c3aa17 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -117,6 +117,7 @@
                 PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
       
                 //String PlcRequest=plcmes.getPlcParameter("GaToMES").getValue();//璇锋眰
+                //String MesSend=plcmes.getPlcParameter("MESToGaStatus").getValue();//鍙戦��
                 //double width=plcmes.getPlcParameter("Height").getValue();//瀹�
                 //double height=plcmes.getPlcParameter("width").getValue();//楂�
                 //鑾峰彇娴嬮噺鐨勯暱锛屽
@@ -132,14 +133,13 @@
 
 
                 String PlcRequest = "1";
+                String MesSend = "0";
                 double width = 402;
                 double height = 402;
                 
                 //鍖归厤
-                if ("1".equals(PlcRequest)) {
+                if ("1".equals(PlcRequest)&&"0".equals(PlcRequest)) {
                     GlassInfo MesureGlassinfo=HomeService.Normal(width, height, "1");
-                                       
-                    
                 }
                 Queue LastQueue= QueueMapper.selectLastQueue();
                 // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
index f47de89..f4c9d3e 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -1,6 +1,7 @@
 package com.example.springboot.controller;
 
 import java.sql.SQLException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -16,6 +17,11 @@
 import com.example.springboot.service.OutSliceServive;
 import com.example.springboot.service.SpianService;
 import com.example.springboot.service.StorageCageService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+
+import cn.hutool.core.lang.Console;
 
 import com.example.springboot.common.Result;
 import com.example.springboot.component.Plchome;
@@ -482,10 +488,25 @@
   public Result ModeChange(String flowcard,Integer method) {
     return storageCageService.ModeChange(flowcard,method);
   }
-
+  
    //娣诲姞鐜荤拑淇℃伅鍒版祴閲忎俊鎭�
    @PostMapping("/UpdateQueue")
    public Result UpdateQueue(@RequestBody GlassInfo glassInfo) {
      return storageCageService.UpdateQueue(glassInfo);
    }
+    //浜哄伐鎷胯蛋
+    @PostMapping("/ManualTake")
+    public Result ManualTake(@RequestBody String glassInfo) {
+      return storageCageService.ManualTake(glassInfo);
+    }
+    //閲嶆柊娴嬮噺
+    @PostMapping("/AnewMeasure")
+    public Result AnewMeasure(@RequestBody String glassInfo) {
+      return storageCageService.AnewMeasure(glassInfo);
+    }
+   //瀵煎叆鏁版嵁 锛氭坊鍔犵幓鐠冧俊鎭�
+   @PostMapping("/importData")
+   public Result importData(@RequestBody List<Map> IportDataStr) { 
+     return storageCageService.AddGlassinfo(IportDataStr);
+   }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java b/springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java
index 0a886d5..9a1653b 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java
@@ -20,6 +20,7 @@
   private Double thickness;// 鍘�
   private Integer number;// 鏁伴噺
   private Integer finishnumber;// 瀹屾垚鏁伴噺
+  private Integer sumtier;// 瀹屾垚鏁伴噺
   private Integer measurenumber;// 娴嬮噺瀹屾垚鏁伴噺
   private Integer cageno;//绗煎唴鏁伴噺
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java b/springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java
index 0a886d5..9a1653b 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java
@@ -20,6 +20,7 @@
   private Double thickness;// 鍘�
   private Integer number;// 鏁伴噺
   private Integer finishnumber;// 瀹屾垚鏁伴噺
+  private Integer sumtier;// 瀹屾垚鏁伴噺
   private Integer measurenumber;// 娴嬮噺瀹屾垚鏁伴噺
   private Integer cageno;//绗煎唴鏁伴噺
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
index 105307a..e2c5d54 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -14,6 +14,7 @@
 import com.example.springboot.entity.RolePermission;
 
 import java.util.List;
+import java.util.Map;
 
 @Mapper
 public interface HomeMapper {
@@ -286,5 +287,14 @@
   @Update("update glassinfo set finishnumber=finishnumber+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{geTier}")
   void AddGlassNo(String flowcard, Integer mateid, Integer geTier);
   
-
+  //娣诲姞鍑虹墖闃熷垪
+  @Insert("INSERT INTO glassinfo (`flowcard`, `glasstype`, `mateid`, `glassid`, `tier`, `films`, `width`, `height`, `thickness`, `number`, `finishnumber`, `sumtier`, `measurenumber`)"+ 
+         " VALUES (#{flowcard}, #{glasstype}, #{mateid}, #{glassid}, #{tier}, #{films}, #{width}, #{height}, #{thickness}, #{number}, 0, #{sumtier}, 0)")
+  void AddGlassinfo(String flowcard, Integer glasstype, Integer mateid, String glassid, Integer tier, String films, Double width, Double height,Double thickness, Integer number, Integer sumtier);
+  //鏈�澶х幓鐠冪被鍨�
+  @Select("select max(glasstype)+1 from glassinfo")
+  Integer SelectMaxType();
+  //鏌ヨ鍏ㄩ儴鐜荤拑绫诲瀷
+  @Select("select CONCAT(IFNULL(width,''),'_',IFNULL(height,''),'_',IFNULL(thickness,''),'_',IFNULL(films,'')) as type,glasstype from glassinfo GROUP BY width,height,thickness,films")
+  List<Map> SelectType();
 }
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