From 6db39c1dfb1dca966983652e4360672cb58a96f6 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期日, 31 三月 2024 12:40:45 +0800
Subject: [PATCH] 代码更新
---
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java | 185 ++++++++++++++++++++++++++++++++++++++--------
1 files changed, 152 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 e624744..18a8576 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,81 +244,83 @@
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<>();
+ PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
map.put("message", "200");
return Result.success(map);
}
@@ -319,4 +329,113 @@
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>(); // 寰楀埌澶勭悊瀹屽悗鎵�鏈夋�诲眰鏁�;
+ 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("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();
+ 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) {
+ 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();
+ if (glasstype==null) {
+ glasstype=1;
+ }
+ } else {
+ glasstype = Integer.valueOf(value);
+ }
+ //
+ homeMapper.AddGlassinfo(map.get("order").toString(), glasstype,
+ 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()),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