From 895f490f4223d5b15ec948ba2155b005018aa91d Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期日, 31 三月 2024 13:54:33 +0800
Subject: [PATCH] 更新
---
CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java | 71 +++
UI-Project/index.html | 2
CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java | 89 +++
CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java | 77 +++
CacheGlassModule/target/classes/application.yml | 5
CacheGlassModule/src/main/resources/application.yml | 5
CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java | 202 +++++++++
CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java | 20
CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java | 81 +++
/dev/null | 50 --
CacheGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java | 95 ++++
CacheGlassModule/src/main/java/com/mes/entity/device/InitUtil.java | 124 +++++
UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue | 9
CacheGlassModule/src/main/java/com/mes/entity/TaskCache.java | 15
CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java | 115 ++++
CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java | 128 +++++
CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java | 142 ++++++
CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java | 41 +
18 files changed, 1,171 insertions(+), 100 deletions(-)
diff --git a/CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java b/CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
index 9cc9e37..8ffee41 100644
--- a/CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
+++ b/CacheGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
@@ -1,7 +1,9 @@
package com.mes.common.PlcTools;
-
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
import java.nio.charset.StandardCharsets;
+import java.sql.Time;
import java.util.ArrayList;
import java.util.List;
@@ -9,15 +11,37 @@
import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
import com.google.common.primitives.Bytes;
+import org.apache.ibatis.jdbc.Null;
public class S7control {
S7PLC s7PLC; // PLC閫氳绫诲疄渚�
-
- public S7control(EPlcType plcType, String ip, int port, int rack, int slot) {
+ private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+ private String ip = "192.168.10.1"; // plc ip鍦板潃
+ private int port = 102; // plc 绔彛鍙�
+
+ private static volatile S7control instance = null;
+
+ private S7control() {
if (s7PLC == null)
s7PLC = new S7PLC(plcType, ip, port,0,0);
- }
+ }
+ public S7control(EPlcType plcType,String ip,int port,int a,int b) {
+ if (s7PLC == null)
+ s7PLC = new S7PLC(plcType, ip, port,a,b);
+ }
+
+ // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+ public static S7control getinstance() {
+ if (instance == null) {
+ synchronized (S7control.class) {
+ if (instance == null)
+ instance = new S7control();
+ }
+ }
+ return instance;
+ }
+
/**
* 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
*/
@@ -33,7 +57,7 @@
public boolean CheckConnected() {
return s7PLC.checkConnected();
}
-
+
/**
* 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
*
@@ -156,7 +180,7 @@
}
}
-
+
private int getIndexFromAddress(String address) {
@@ -181,7 +205,6 @@
public List<Short> ReadWord(String address, int count) {
if (s7PLC == null)
return null;
-
List<String> addresslist = GetAddressList(address, count, 16);
try {
return s7PLC.readInt16(addresslist);
@@ -191,7 +214,13 @@
return null;
}
}
-
+ public byte[] Readbyte(String address, int count) {
+ byte[] byt=new byte[count];
+ int wordcount=((count%2==0)?count/2:count+1);
+ List<Short> word=ReadWord(address,wordcount);
+
+ return byt;
+ }
/**
* 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
*
@@ -269,6 +298,41 @@
}
+
+
+
+ public List<String> readStringsandword(List<String> addressList) {
+ if (s7PLC == null) {
+ return null;
+ }
+ List<String> result = new ArrayList<>();
+ for (String address : addressList) {
+ try {
+ if (address.contains("-")) {
+ address = address.substring(0, address.indexOf("-"));
+
+ byte[] bytes = s7PLC.readByte(address, 14);
+ if (bytes != null) {
+ String str = new String(bytes, StandardCharsets.UTF_8);
+ result.add(str);
+ }
+
+ } else {
+ Short value = s7PLC.readInt16(address);
+ result.add(value.toString());
+
+ }
+ } catch (Exception e) {
+ System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+ result.add(null);
+ }
+ }
+
+ return result;
+ }
+
+
+
//涓嶈繛缁湴鍧�鍐欏叆Word
public void WriteWord(List<String> address, List<Short> datas) {
if (s7PLC == null)
@@ -300,7 +364,7 @@
glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
}
byte[] bytes = Bytes.toArray(glassidlist);
- WriteByte(addr, bytes);
+ S7control.getinstance().WriteByte(addr, bytes);
}
//璇诲彇涓嶈繛缁瓀ord
@@ -410,4 +474,11 @@
}
return addresslist;
}
+ public void writeString(String addr,String data) {
+ s7PLC.writeString(addr,data);
+ }
+
+ public String readStrings(String addr) {
+ return s7PLC.readString(addr);
+ }
}
diff --git a/CacheGlassModule/src/main/java/com/mes/controller/OrderTestController.java b/CacheGlassModule/src/main/java/com/mes/controller/OrderTestController.java
deleted file mode 100644
index 2d24de4..0000000
--- a/CacheGlassModule/src/main/java/com/mes/controller/OrderTestController.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.mes.controller;
-
-import com.mes.mapper.SelectInfo;
-
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import com.mes.common.Result;
-import com.mes.entity.Tempered;
-import com.mes.service.pp.SelectdppService;
-
-//@CrossOrigin //瑙e喅鍗曚釜controller 璺ㄥ煙闂
-@RestController
-@RequestMapping("/Temper")
-
-public class OrderTestController {
- @Autowired
- private SelectInfo SelectInfo;
-
- @Autowired
- private SelectdppService SelectppService;
-
- @GetMapping("/Tindex") //鏌ヨorder琛ㄧ粨鏋滈泦
- @ResponseBody
- public Result index(){
- System.out.println(1);
- List<Tempered> h=SelectppService.getSelectTempered("P24030707");
- System.out.println(h.size());
- return Result.seccess(h);
-
- }
-//
-// @PostMapping //鎻掑叆
-// public Integer save(@RequestBody Order order) {
-// return orderMapper.insert(order);
-// }
-//
-// @PostMapping("/update")
-// public Integer updateOrder(@RequestBody Order order) {
-// return orderMapper.update(order.getId(),order.getOrderid());
-// }
-//
-// @DeleteMapping("/{id}") //鍒犻櫎鏁版嵁
-// public Integer delete(@PathVariable Integer id) {
-// return orderMapper.deleteById(id);
-// }
-
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
new file mode 100644
index 0000000..99d6d28
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
@@ -0,0 +1,71 @@
+package com.mes.controller;
+
+import com.mes.mapper.SelectInfo;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.mes.common.Result;
+import com.mes.entity.Tempered;
+import com.mes.service.pp.SelectdppService;
+import com.mes.service.hangzhoumes.*;
+
+@RestController
+@RequestMapping("/TidyUpGlassModule")
+
+// TidyUpGlassModule 鐞嗙墖妯″潡
+public class TidyUpGlassModuleController {
+ @Autowired
+ private SelectInfo SelectInfo;
+
+ @Autowired
+ private SelectdppService SelectppService;
+
+ @Autowired
+ private hangzhoumesService hangzhoumesService;
+
+ @GetMapping("/SelectTerritoryInfo") // 鏌ヨ閽㈠寲鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�
+ @ResponseBody
+ public Result SelectTerritoryInfo(@RequestParam(name = "ProcessId", required = false) String ProcessId) {
+ List<Tempered> h = SelectppService.SelectTemperedTerritory(ProcessId);
+ System.out.println(h.size()+":"+ProcessId);
+ return Result.seccess(h);
+ }
+
+ @GetMapping("/CutTerritory") // 鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�
+ @ResponseBody
+ public Result CutTerritory(String ProcessId) {
+ List<Map> h = SelectppService.SelectCutTerritory(ProcessId);
+ System.out.println(h.size());
+ return Result.seccess(h);
+ }
+
+ @GetMapping("/SelectCutTerritory") // 璇嗗埆鏄剧ず 褰撳墠鐗堝浘
+ @ResponseBody
+ public Result SelectCutTerritory(String ProcessId) {
+ List<Map> h = SelectppService.SelectCutTerritory("P24032508");
+ System.out.println(h.size());
+ return Result.seccess(h);
+ }
+
+
+ @GetMapping("/SelectCageInfo") // 鏌ヨ绗煎唴淇℃伅
+ @ResponseBody
+ public Result SelectCageInfo(String ProcessId) {
+ List<Map> h = SelectppService.SelectCutTerritory("P24032508");
+ System.out.println(h.size());
+ return Result.seccess(h);
+ }
+
+
+ @GetMapping("/SelectEdgTask") //纾ㄨ竟浠诲姟
+ @ResponseBody
+ public Result SelectEdgTask(String ProcessId) {
+ List<Map> EdgTasks = hangzhoumesService.SelectEdgInfo("1");
+ System.out.println(EdgTasks.size());
+ return Result.seccess(EdgTasks);
+ }
+
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/TaskCache.java b/CacheGlassModule/src/main/java/com/mes/entity/TaskCache.java
new file mode 100644
index 0000000..f69f315
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/TaskCache.java
@@ -0,0 +1,15 @@
+package com.mes.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
+@TableName("task_cache")
+public class TaskCache {
+ private String ID;//浠诲姟缂栧彿
+ private String startcell;//璧峰
+ private String endcell;//缁撴潫
+ private String tasktype;//浠诲姟绫诲瀷
+ private String taskstauts;//浠诲姟鐘舵��
+
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/InitUtil.java b/CacheGlassModule/src/main/java/com/mes/entity/device/InitUtil.java
new file mode 100644
index 0000000..6d59bd3
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/InitUtil.java
@@ -0,0 +1,124 @@
+package com.mes.entity.device;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import com.mes.common.PlcTools.S7control;
+
+public class InitUtil {
+ //鍒濆鍖杦ord
+ public static PlcParameterObject initword(String jsonFilePath) {
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ PlcParameterObject plcParameterObject = new PlcParameterObject();
+ plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+ PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcParameterInfo.setCodeId(codeid);
+ plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+ //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
+ plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
+ plcParameterInfo.setUnit(parameterObj.getStr("unit"));
+ plcParameterObject.addPlcParameter(plcParameterInfo);
+ }
+ // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+ // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ // plcParameterObject.setPlcParameterList(getplcvlues);
+
+ return plcParameterObject;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ //鍒濆鍖朾it
+ public static PlcBitObject initbit(String jsonFilePath) {
+ PlcBitObject plcBitObject = new PlcBitObject();
+
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+
+ PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcBitInfo.setCodeId(codeid);
+ plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+
+ plcBitObject.addPlcBit(plcBitInfo);
+ }
+ System.out.println("");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ //Boolean[] values1 = { false, true, true, true, false, false, true, false,
+ // false, true ,true };
+ // List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+
+// List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+// plcBitObject.setPlcBitList(getplcvlues);
+ return plcBitObject;
+ }
+
+//
+ public static void readAndUpdateBitValues(PlcBitObject plcBitObject) {
+
+// Boolean[] values1 = { false, true, true, true, false, false, true, false,
+// false, true ,true };
+// List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+ List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+ plcBitObject.setPlcBitList(getplcvlues);
+ }
+
+
+ public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) {
+
+ // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+ byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ plcParameterObject.setPlcParameterList(getplcvlues);
+ }
+
+
+
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java
new file mode 100644
index 0000000..dcb707e
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java
@@ -0,0 +1,95 @@
+package com.mes.entity.device;
+
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import static com.mes.entity.device.InitUtil.readAndUpdateWordValues;
+public class PLCAutoMes extends Thread {
+
+ // // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+ // private Configuration config;
+ private static InitUtil initUtil;
+ // public static PlcParameterObject PlcMesObject;
+ // public static PlcParameterObject PlcReadObject;
+ // public static PlcParameterObject PlcframeObject;
+
+ // // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+ // MessageHandler customS7Control = new MessageHandler();
+
+ // 鍗曚緥瀹炰緥
+ private static PLCAutoMes instance;
+ // private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
+ private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
+ // private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
+ // private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
+ // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
+
+ // private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
+
+ // private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
+
+ // private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
+ // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
+
+ // 璋冪敤initword鏂规硶
+
+ // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
+ // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
+ // public static PlcBitObject plcBitObject = initUtil.initbit(PlcSign);
+ // public static PlcParameterObject plcStateObject= initUtil.initword(PlcState);
+ // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+ public static PlcParameterObject PlcMesObject = InitUtil.initword(PlcAlbania);
+ // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+ // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
+
+ // 绉佹湁鏋勯�犲嚱鏁�
+ public PLCAutoMes() throws IOException {
+ //config = new Configuration("config.properties");
+ initUtil = new InitUtil();
+ }
+
+ // 鑾峰彇鍗曚緥瀹炰緥
+ public static synchronized PLCAutoMes getInstance() throws IOException {
+ if (instance == null) {
+ instance = new PLCAutoMes();
+ }
+ return instance;
+ }
+
+ @Override
+ public void run() {
+ while (this != null) {
+ try {
+ Thread.sleep(100);
+
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ // System.out.println(jsonFilePath);
+
+ //readAndUpdateWordValues(PlcReadObject);
+ readAndUpdateWordValues(PlcMesObject);
+ //readAndUpdateWordValues(PlcframeObject);
+ // readAndUpdateWordValues(PlcframeObject);
+
+ // readAndUpdateWordValues(plcStateObject);
+ // int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
+ // // System.out.println(index);
+ // PlcMesObject.getPlcParameter("AddStart").getAddress(index);
+ // // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
+ // List<String> addresses = new ArrayList<>();
+ // addresses.add("FeedID");
+ // addresses.add("AddStart");
+ // // System.out.println(addresses);
+ // // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
+ // List<String> addresses2 = new ArrayList<>();
+ // addresses2.add("FeedID");
+ // addresses2.add("FeedCarStatus");
+
+ //System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
+
+ }
+ }
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
new file mode 100644
index 0000000..78846f9
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
@@ -0,0 +1,77 @@
+package com.mes.entity.device;
+
+
+
+public class PlcBitInfo {
+
+ public PlcBitInfo(String startAddress) {
+ this.startAddress = startAddress;
+ }
+ private String startAddress;
+ // 鍙傛暟鏍囪瘑
+ private String codeId;
+
+ // 鍙傛暟鍚嶇О
+ private String name;
+
+ // 璇诲彇 鍙傛暟鍊�
+ private Boolean value;
+ // 鍙傛暟鍦板潃
+ private int addressIndex;
+
+ public String getCodeId() {
+ return this.codeId;
+ }
+
+ public void setCodeId(String codeId) {
+ this.codeId = codeId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Boolean getValue() {
+ return this.value;
+ }
+
+ public void setValue(Boolean value) {
+ this.value = value;
+ }
+
+
+ public int getAddressIndex() {
+ return this.addressIndex;
+ }
+ /**
+ * 鑾峰彇鍦板潃
+ *
+ * @param index 绱㈠紩鍦板潃
+ */
+ public String getAddress(int index) {
+ String[] stringdatas = this.startAddress.trim().split("\\.");
+ if (stringdatas.length < 2 )
+ return null;
+ int dbwindex = 0;
+ int bitindex = 0;
+ if (stringdatas.length == 3) {
+ dbwindex = Integer.parseInt(stringdatas[1]);
+ bitindex = Integer.parseInt(stringdatas[2]);
+ } else
+ return null;
+ dbwindex+=index/8;
+ bitindex+=index%8;
+ return stringdatas[0]+"."+dbwindex+"."+bitindex;
+ }
+
+
+
+
+ public void setAddressIndex(int addressindex) {
+ this.addressIndex = addressindex;
+ }
+ }
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
new file mode 100644
index 0000000..977a13c
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
@@ -0,0 +1,142 @@
+package com.mes.entity.device;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcBitObject {
+
+ // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+ private String plcAddressBegin;
+ // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+ private int plcAddressLength;
+ private ArrayList<PlcBitInfo> plcBitList;
+
+ /**
+ * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
+ */
+ public String getPlcAddressBegin() {
+ return plcAddressBegin;
+ }
+
+ /**
+ * @param plcAddressBegin 璁剧疆鏁版嵁鍖哄紑濮嬪湴鍧�
+ */
+ public void setPlcAddressBegin(String plcAddressBegin) {
+ this.plcAddressBegin = plcAddressBegin;
+ }
+
+ /**
+ * @return 鏁版嵁鍖� 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+ */
+ public int getPlcAddressLength() {
+ return plcAddressLength;
+ }
+
+ /**
+ * @return 璁剧疆锛氭暟鎹尯 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+ */
+ public void setPlcAddressLength(int plcAddressLength) {
+ this.plcAddressLength = plcAddressLength;
+ }
+
+ /**
+ * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
+ */
+ public ArrayList<PlcBitInfo> getBitList() {
+ return plcBitList;
+ }
+
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ *
+ * @param codeid 鍙傛暟鏍囪瘑
+ * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ */
+ public PlcBitInfo getPlcBit(String codeid) {
+ if (plcBitList != null) {
+ for (PlcBitInfo plcbitInfo : plcBitList) {
+ if (plcbitInfo.getCodeId().equals(codeid))
+ return plcbitInfo;
+ }
+ return null;
+ } else
+ return null;
+ }
+
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ *
+ * @param codeid 鍙傛暟鏍囪瘑
+ * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ */
+ public List<Boolean> getPlcBitValues(List<String> codeids) {
+ List<Boolean> arrayList = new ArrayList<>();
+ if (plcBitList != null) {
+ Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+ for (PlcBitInfo plcBitInfo : plcBitList) {
+ if (codeids.contains(plcBitInfo.getCodeId().toString())) {
+ resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue());
+ }
+ }
+ for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+ Boolean value = resultMap.get(codeId);
+ if (value != null) {
+ arrayList.add(value);
+ } else {
+ arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+ }
+ }
+ }
+ return arrayList;
+ }
+
+
+ public List<String> getAddressListByCodeId(List<String> codeIdList) {
+ List<String> addressList = new ArrayList<>();
+ for (String codeId : codeIdList) {
+ for (PlcBitInfo plcBitInfo : plcBitList) {
+ if (plcBitInfo.getCodeId().equals(codeId)) {
+ int index = plcBitInfo.getAddressIndex();
+ String address = plcBitInfo.getAddress(index);
+ if (address != null) {
+ addressList.add(address);
+ }
+ }
+ }
+ }
+ return addressList;
+ }
+
+
+ /**
+ * 娣诲姞鍙傛暟瀹炰緥
+ *
+ * @param param 鍙傛暟瀹炰緥
+ */
+ public void addPlcBit(PlcBitInfo param) {
+ if (plcBitList != null)
+ plcBitList.add(param);
+ else {
+ plcBitList = new ArrayList<PlcBitInfo>();
+ plcBitList.add(param);
+ }
+ }
+
+ /**
+ * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+ *
+ * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+ */
+ public void setPlcBitList(List<Boolean> plcValueArray) {
+ if (plcBitList != null) {
+ for (PlcBitInfo plcbitInfo : plcBitList) {
+ plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex()));
+ }
+ }
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
new file mode 100644
index 0000000..b4a2051
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
@@ -0,0 +1,128 @@
+package com.mes.entity.device;
+public class PlcParameterInfo {
+ public PlcParameterInfo(String startAddress) {
+ this.startAddress = startAddress;
+ }
+ private String startAddress;
+ // 鍙傛暟鏍囪瘑
+ private String codeId;
+
+ // 鍙傛暟鍚嶇О
+ private String name;
+
+ // 璇诲彇 鍙傛暟鍊�
+ private String value;
+
+ // // 鍐欏叆 鍙傛暟鍊�
+ // private String writeValue;
+
+ // 鍙傛暟鍗曚綅
+ private String unit;
+
+ // 鍙傛暟鍊艰浆鎹㈢郴鏁�
+ private int ratio;
+
+ // 鍙傛暟鍦板潃
+ private int addressIndex;
+
+ // 鍙傛暟鍦板潃浣嶉暱搴�
+ private int addressLength;
+
+ public String getCodeId() {
+ return this.codeId;
+ }
+
+ public void setCodeId(String codeId) {
+ this.codeId = codeId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getValue() {
+ return this.value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ // public String getWriteValue() {
+ // return this.writeValue;
+ // }
+
+ // public void setWriteValue(String writeValue) {
+ // this.writeValue = writeValue;
+ // }
+
+ public String getUnit() {
+ return this.unit;
+ }
+
+ public void setUnit(String unit) {
+ this.unit = unit;
+ }
+
+ public int getAddressIndex() {
+ return this.addressIndex;
+ }
+
+ public void setAddressIndex(int addressindex) {
+ this.addressIndex = addressindex;
+ }
+
+ public int getAddressLength() {
+ return this.addressLength;
+ }
+
+ public void setAddressLength(int addresslength) {
+ this.addressLength = addresslength;
+ }
+
+ public int getRatio() {
+ return this.ratio;
+ }
+
+ public void setRatio(int ratio) {
+ this.ratio = ratio;
+ }
+
+
+ /**
+ * 鑾峰彇鍦板潃
+ *
+ * @param index 绱㈠紩鍦板潃
+ */
+ public String getAddress(int index) {
+ String[] stringdatas = this.startAddress.trim().split("\\.");
+ int addressLength=this.addressLength;
+ if (addressLength < 2 ){
+ return null;
+ }
+
+ if (addressLength == 2 ) {
+ int wordindex = index;
+
+ return stringdatas[0] + "." + wordindex;
+ }
+ if (addressLength == 14 ) {
+ int wordindex = index;
+ //int newIndex = wordindex + 13;
+ return stringdatas[0] + "." + wordindex ;
+ }
+ return null;
+ }
+
+ public int getPlcAddress() {
+
+ return addressIndex;
+ }
+ public String getAddress() {
+ return getAddress(this.addressIndex);
+ }
+}
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
new file mode 100644
index 0000000..5355db5
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
@@ -0,0 +1,202 @@
+package com.mes.entity.device;
+
+import java.lang.reflect.Array;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcParameterObject {
+
+ // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+ private String plcAddressBegin;
+ // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+ private int plcAddressLength;
+ private ArrayList<PlcParameterInfo> plcParameterList;
+
+ /**
+ * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
+ */
+ public String getPlcAddressBegin() {
+ return plcAddressBegin;
+ }
+
+ /**
+ * @param plcAddressBegin 璁剧疆鏁版嵁鍖哄紑濮嬪湴鍧�
+ */
+ public void setPlcAddressBegin(String plcAddressBegin) {
+ this.plcAddressBegin = plcAddressBegin;
+ }
+
+ /**
+ * @return 鏁版嵁鍖� 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+ */
+ public int getPlcAddressLength() {
+ return plcAddressLength;
+ }
+
+ /**
+ * @return 璁剧疆锛氭暟鎹尯 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+ */
+ public void setPlcAddressLength(int plcAddressLength) {
+ this.plcAddressLength = plcAddressLength;
+ }
+
+ /**
+ * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
+ */
+ public ArrayList<PlcParameterInfo> getPlcParameterList() {
+ return plcParameterList;
+ }
+
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ *
+ * @param codeid 鍙傛暟鏍囪瘑
+ * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ */
+ public PlcParameterInfo getPlcParameter(String codeid) {
+ if (plcParameterList != null) {
+ for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+ if (plcParameterInfo.getCodeId().equals(codeid))
+ return plcParameterInfo;
+ }
+ return null;
+ } else
+ return null;
+ }
+
+
+
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ *
+ * @param codeids 鍙傛暟鏍囪瘑
+ * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+ */
+ public List<String> getPlcParameterValues(List<String> codeids) {
+ List<String> arrayList = new ArrayList<>();
+ if (plcParameterList != null) {
+ Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+ for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+ if (codeids.contains(plcParameterInfo.getCodeId())) {
+ resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo);
+ }
+ }
+ for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+ PlcParameterInfo plcParameterInfo = resultMap.get(codeId);
+ if (plcParameterInfo != null) {
+ arrayList.add(plcParameterInfo.getValue());
+ } else {
+ arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+ }
+ }
+ }
+ return arrayList;
+ }
+
+
+ public List<String> getAddressListByCodeId(List<String> codeIdList) {
+ List<String> addressList = new ArrayList<>();
+ for (String codeId : codeIdList) {
+ for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+ if (plcParameterInfo.getCodeId().equals(codeId)) {
+ int index = plcParameterInfo.getAddressIndex();
+ String address = plcParameterInfo.getAddress(index);
+ if (address != null) {
+ addressList.add(address);
+ }
+ }
+ }
+ }
+ return addressList;
+ }
+
+
+
+
+
+
+ /**
+ * 娣诲姞鍙傛暟瀹炰緥
+ *
+ * @param param 鍙傛暟瀹炰緥
+ */
+ public void addPlcParameter(PlcParameterInfo param) {
+ if (plcParameterList != null)
+ plcParameterList.add(param);
+ else {
+ plcParameterList = new ArrayList<PlcParameterInfo>();
+ plcParameterList.add(param);
+ }
+ }
+
+ /**
+ * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+ *
+ * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+ */
+ public void setPlcParameterList(byte[] plcValueArray) {
+ if (plcParameterList != null) {
+
+ for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+
+ byte[] valueList = new byte[plcParameterInfo.getAddressLength()];
+
+// System.out.println(plcParameterInfo.getAddressLength());
+
+ for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) {
+ Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]);
+
+ }
+ if (plcParameterInfo.getAddressLength()==2) {
+ plcParameterInfo.setValue(String.valueOf(byte2short(valueList)));
+ }
+ else if (plcParameterInfo.getAddressLength()==14) {
+ plcParameterInfo.setValue((byteToHexString(valueList)));
+ }
+
+ else
+ {
+ String valuestr = new String(valueList);
+ plcParameterInfo.setValue(valuestr);
+ }
+ }
+ }
+ }
+ /**
+ * short绫诲瀷杞琤yte[]
+ *
+ * @param s short绫诲瀷鍊�
+ */
+ public static byte[] short2byte(short s){
+ byte[] b = new byte[2];
+ for(int i = 0; i < 2; i++){
+ int offset = 16 - (i+1)*8; //鍥犱负byte鍗�4涓瓧鑺傦紝鎵�浠ヨ璁$畻鍋忕Щ閲�
+ b[i] = (byte)((s >> offset)&0xff); //鎶�16浣嶅垎涓�2涓�8浣嶈繘琛屽垎鍒瓨鍌�
+ }
+ return b;
+ }
+ /**
+ * byte[]绫诲瀷杞瑂hort
+ *
+ * @param b byte[]绫诲瀷鍊�
+ */
+ public static short byte2short(byte[] b){
+ short l = 0;
+ for (int i = 0; i < 2; i++) {
+ l<<=8; //<<=鍜屾垜浠殑 +=鏄竴鏍风殑锛屾剰鎬濆氨鏄� l = l << 8
+ l |= (b[i] & 0xff); //鍜屼笂闈篃鏄竴鏍风殑 l = l | (b[i]&0xff)
+ }
+ return l;
+ }
+
+ public static String byteToHexString(byte[] bytes) {
+
+ String str = new String(bytes, StandardCharsets.UTF_8);
+ return str;
+ }
+
+
+}
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java b/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
index 8e25a05..e8bcfe2 100644
--- a/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
+++ b/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
@@ -1,28 +1,85 @@
package com.mes.mapper;
+import com.mes.entity.EdgStorageCageDetails;
import com.mes.entity.GlassInfo;
+import com.mes.entity.TaskCache;
import com.mes.entity.Tempered;
import java.util.List;
+import java.util.Map;
import org.apache.ibatis.annotations.*;
@Mapper
public interface SelectInfo {
- //鐜荤拑淇℃伅 鎸塈D鏌ヨ
+ // 鐜荤拑淇℃伅 鎸塈D鏌ヨ
@Select("select * from `glass_info` where id=#{id}")
GlassInfo SelectGlassId(String id);
- //閽㈠寲鎸夊伐绋嬫煡璇�
+ // 閽㈠寲鎸夊伐绋嬫煡璇�
@Select("select * from `v_optimize_heat_layout` where project_no=#{projeceid} ")
- List<Tempered> SelectTempered(String projeceid);
-//
-// @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
-// Integer insert(Order order);
-//
-// @Delete("delete from `order` where id=#{id}")
-// Integer deleteById(@Param("id") Integer id);
-//
-// @Update("update `order` set order_id=#{order_id} where id=#{id}")
-// Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
+ List<Tempered> SelectTemperedTerritory(String projeceid);
+
+ // 鍒囧壊鐗堝浘鎸夊伐绋嬫煡璇�
+ @Select("select * from optimize_detail where project_no=#{projeceid} ")
+ List<Map> SelectCutTerritory(String projeceid);
+
+ // 鏌ヨ纾ㄨ竟淇℃伅
+ @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell}")
+ List<Map> SelectEdgInfo(String EndCell);
+
+ // 鏌ヨ绗煎瓙鍐呯┖闂�
+ @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is null order by escd.slot")
+ List<EdgStorageCageDetails> SelectCacheLeisure();
+
+ // 鏌ヨ绗煎瓙鍐呭嚭鐗囦换鍔�
+ @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot WHERE escd.slot IS NOT NULL order by escd.tempering_layout_id,escd.tempering_feed_sequence")
+ List<EdgStorageCageDetails> SelectCacheOut();
+
+ // 鏌ヨ绗煎瓙鍐呬俊鎭�
+ @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot order by esc.slot")
+ List<EdgStorageCageDetails> SelectCachInfo();
+
+ // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
+ @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is not null escd.tempering_layout_id=#{tempering_layout_id} and escd.tempering_feed_sequence<#{tempering_feed_sequence} and esc.remain_width-#{width}>0 order by escd.tempering_feed_sequence")
+ List<EdgStorageCageDetails> SelectIsExistIntoCache(Integer tempering_layout_id, Integer tempering_feed_sequence,
+ double width);
+
+ // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
+ @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is not null escd.tempering_layout_id<#{tempering_layout_id} and esc.remain_width-#{width}>0 order by escd.tempering_layout_id desc,escd.tempering_feed_sequence")
+ List<EdgStorageCageDetails> SelectIsExistIntoCache(Integer tempering_layout_id, double width);
+
+ // 鏌ヨ鍏ㄩ儴浠诲姟
+ @Select("select * from task_cache")
+ List<TaskCache> SelectCacheInfoAll();
+
+ // 鏌ヨ杩涚墖浠诲姟
+ @Select("select * from task_cache where task_type='1' and task_stauts='0'")
+ List<TaskCache> SelectInputCacheInfo();
+
+ // 鏌ヨ鍑虹墖浠诲姟
+ @Select("select * from task_cache where task_type='2' and task_stauts='0'")
+ List<TaskCache> SelectOutCacheInfo();
+
+ // 鏌ヨ A09 鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+ @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell} limit 1")
+ GlassInfo SelectLastOutCacheInfo(String EndCell);
+
+ // 淇敼绗煎瓙鍐呬俊鎭�
+ @Update("update")
+ Integer UpdateCache(@Param("id") Integer id, @Param("order_id") String order_id);
+
+ // 娣诲姞鐞嗙墖浠诲姟
+ @Insert("INSERT into task_cache VALUES(#{id},#{start},#{end},#{type},0)")
+ Integer insertCacheTask(String id, String start, String end, String type);
+
+ //
+ // @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
+ // Integer insert(Order order);
+ //
+ // @Delete("delete from `order` where id=#{id}")
+ // Integer deleteById(@Param("id") Integer id);
+ //
+ // @Update("update `order` set order_id=#{order_id} where id=#{id}")
+ // Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
}
diff --git a/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java b/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java
index 00f38b4..f239f84 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java
@@ -1,10 +1,16 @@
package com.mes.service.CacheGlassService;
+import java.util.List;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mes.common.PlcTools.S7control;
+import com.mes.entity.EdgStorageCageDetails;
import com.mes.entity.GlassInfo;
+import com.mes.entity.TaskCache;
+import com.mes.entity.device.PLCAutoMes;
+import com.mes.entity.device.PlcParameterObject;
import com.mes.mapper.SelectInfo;
@@ -12,11 +18,12 @@
public class Logic {
@Autowired
private SelectInfo selectInfo;
- //璇嗗埆閫昏緫
+ //璇嗗埆閫昏緫 涓嶄氦浜�
public void identify(String Number){
//鏌ヨ浠诲姟
- // PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
- // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+ PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+ String s=S7control.getinstance().ReadWord("DB14.26", 1).get(0)+"";
boolean isexist=isExist(Number);
if (isexist) {
//瀛樺湪閫昏緫 1.娣诲姞淇℃伅 2.鍥炲PLC瀛樺湪
@@ -26,22 +33,111 @@
//S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 2);
}
}
+ //鐞嗙墖
+ public void Process(){
+ String Result=S7control.getinstance().ReadWord("DB14.0", 1).get(0)+"";
+ String Number=S7control.getinstance().ReadWord("DB14.2", 1).get(0)+"";
+ if(Result=="1"){//杩涚墖璇锋眰
+ processInto(Number);
+ }else if(Result=="2"){//鍑虹墖璇锋眰
+ processOut();
+ }else if(Result=="3"){//杩涘嚭鐗囪姹�
+ if (!processOut()) { //鍏堝嚭鍚庤繘
+ processInto(Number);
+ }
+ }
+ }
//鐞嗙墖 杩�
- public void process(String Number){
+ public boolean processInto(String Number){
//鏌ヨ娑堟伅闃熷垪閲岀殑鐜荤拑
-
+ GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+ PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+ if(GlassInfo!=null){//瀛樺湪姝ょ幓鐠冪紪鍙�
+ //鍚岄挗鍖栫増鍥惧唴鐨勬爡鏍煎彿
+ List<EdgStorageCageDetails> list=selectInfo.SelectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getTemperingfeedsequence(),GlassInfo.getWidth());
+ //绌烘爡鏍煎彿
+ if (list.size()==0) {
+ list=selectInfo.SelectCacheLeisure();
+ }
+ //灏忎簬姝ょ幓鐠冮挗鍖栫増鍥惧簭鍙风殑鏍呮牸鍙�
+ if(list.size()==0){
+ list=selectInfo.SelectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getWidth());
+ }
+ if(list.size()>0){
+ //瀛樺湪绌烘牸
+ //1.鐢熸垚浠诲姟锛� 璧峰浣嶇疆0 缁撴潫浣嶇疆this.slot 浠诲姟绫诲瀷 1 锛堣繘鐗囦换鍔★級
+ //2.鍥炲 1杩涚墖
+ EdgStorageCageDetails item=list.get(0);
+ selectInfo.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1");
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+ return true;
+ }
+
+ }else{
+ // ID缂栧彿涓嶅瓨鍦� 涓嶅鐞�/鍥炲PLC 杩涜鎶ヨ鎻愮ず
+ }
//杩斿洖缁撴灉
+ return false;
}
//鐞嗙墖 鍑�
- public void processOut(String Number){
+ public boolean processOut(){
//鏌ヨ浠诲姟
-
+ String A09=S7control.getinstance().ReadWord("DB14.56", 1).get(0)+"";
+ String A10=S7control.getinstance().ReadWord("DB14.58", 1).get(0)+"";
+ PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+ List<EdgStorageCageDetails> list=selectInfo.SelectCacheOut();
+ boolean isOut=true;//鍏朵粬鎯呭喌鏉′欢 濡傦細鍚庣画璁惧鏁呴殰绂佹鐞嗙墖鍑虹墖 绛�
+ if (list.size()>0&&isOut) {
+ EdgStorageCageDetails item=list.get(0);
+ if(A09=="0"&&A10=="1"){
+ //鍑哄埌 A09
+ selectInfo.insertCacheTask(item.getGlassid()+"","0","09","2");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+ return true;
+ }else if(A09=="1"&&A10=="0"){
+ //鍑哄埌 A10
+ selectInfo.insertCacheTask(item.getGlassid()+"","0","10","2");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+ return true;
+ }else if(A09=="0"&&A10=="0"){
+ //閮藉厑璁� A09/A10 涓婁竴鐗囨槸鍚﹀拰姝ょ墖鐜荤拑灏哄灏哄鐩稿悓
+ String endcell="09";
+ String SendEndcell="1";
+ boolean If_=false;
+ GlassInfo glassInfo09= selectInfo.SelectLastOutCacheInfo("09");
+ GlassInfo glassInfo10= selectInfo.SelectLastOutCacheInfo("10");
+ if(glassInfo10!=null&&glassInfo10.getWidth()==item.getWidth()&&glassInfo10.getHeight()==item.getHeight()){
+ endcell="10";
+ SendEndcell="2";
+ }else if(glassInfo10!=null&&If_){
+ //鍏朵粬鏉′欢
+ }
+ selectInfo.insertCacheTask(item.getGlassid()+"","0",endcell,"2");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+ return true;
+ }
+ }
//杩斿洖缁撴灉
+ return false;
}
- //纾ㄨ竟
+
+ //纾ㄨ竟 涓嶄氦浜� 鐞嗙墖鍜岀(杈规満鑷繁浜や簰
public void processMb(String Number){
//鏌ヨ浠诲姟
-
+ GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+ PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+ if(GlassInfo!=null){
+ //鍙戦�佷换鍔� ID 闀� 瀹� 鍘� 鍊掕 宸ヨ壓鍔熻兘绛�
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.22").getAddress(),"N10000");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.24").getAddress(), "1000");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.26").getAddress(),"800");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(),"60");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.30").getAddress(), "2");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+ }
//杩斿洖缁撴灉
}
@@ -63,6 +159,7 @@
}
return true;//杩斿洖 瀛樺湪
}
+
//鏄惁瀛樺湪姝ょ紪鍙风幓鐠�
public boolean isExist(String Number){
//鏌ヨ鏄惁瀛樺湪
diff --git a/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java b/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java
new file mode 100644
index 0000000..6ff9ab2
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java
@@ -0,0 +1,41 @@
+package com.mes.service.hangzhoumes;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.mes.entity.EdgStorageCageDetails;
+import com.mes.entity.GlassInfo;
+import com.mes.entity.Tempered;
+import com.mes.mapper.SelectInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+@DS("hangzhoumes")
+public class hangzhoumesService {
+
+ @Autowired
+ private SelectInfo SelectInfo;
+
+ public GlassInfo getUserInfo(String process_id){
+ return SelectInfo.SelectGlassId(process_id);
+ }
+ // //璇嗗埆淇℃伅
+ // public List<Map> SelectCutTerritory(String process_id){
+ // return SelectInfo.SelectCutTerritory(process_id);
+ // }
+
+ //鐞嗙墖缂撳瓨 绗煎唴淇℃伅
+ public List<EdgStorageCageDetails> SelectCageInfo(){
+ return SelectInfo.SelectCachInfo();
+ }
+
+ //纾ㄨ竟灏忕墖淇℃伅
+ public List<Map> SelectEdgInfo(String line){
+
+ return SelectInfo.SelectEdgInfo(line);
+ }
+
+}
+
diff --git a/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java b/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java
index c139c0d..2eecb75 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java
@@ -1,24 +1,14 @@
package com.mes.service.pp;
-import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
-import com.mes.common.CacheUtil;
-import com.mes.common.Result;
import com.mes.entity.GlassInfo;
import com.mes.entity.Tempered;
-import com.mes.entity.userInfo.User;
import com.mes.mapper.SelectInfo;
-import com.mes.mapper.userInfo.UserMapper;
-import com.mes.controller.dto.UserDTO;
-import com.mes.tools.TokenTools;
-import org.apache.ibatis.jdbc.Null;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import java.util.List;
+import java.util.Map;
@Service
@DS("pp")
@@ -31,8 +21,12 @@
return SelectInfo.SelectGlassId(process_id);
}
- public List<Tempered> getSelectTempered(String process_id){
- return SelectInfo.SelectTempered(process_id);
+ public List<Tempered> SelectTemperedTerritory(String process_id){
+ return SelectInfo.SelectTemperedTerritory(process_id);
+ }
+ //鍒囧壊鐗堝浘
+ public List<Map> SelectCutTerritory(String process_id){
+ return SelectInfo.SelectCutTerritory(process_id);
}
diff --git a/CacheGlassModule/src/main/resources/application.yml b/CacheGlassModule/src/main/resources/application.yml
index 9b16ea7..079ce3c 100644
--- a/CacheGlassModule/src/main/resources/application.yml
+++ b/CacheGlassModule/src/main/resources/application.yml
@@ -14,4 +14,9 @@
url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
username: root
password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ pp:
+ url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/CacheGlassModule/target/classes/application.yml b/CacheGlassModule/target/classes/application.yml
index 9b16ea7..079ce3c 100644
--- a/CacheGlassModule/target/classes/application.yml
+++ b/CacheGlassModule/target/classes/application.yml
@@ -14,4 +14,9 @@
url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
username: root
password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ pp:
+ url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/UI-Project/index.html b/UI-Project/index.html
index 03b130f..e96cd5a 100644
--- a/UI-Project/index.html
+++ b/UI-Project/index.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8">
- <link rel="icon" href="/favicon.ico">
+ <!-- <link rel="icon" href="/favicon.ico"> -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>鍖楃幓</title>
</head>
diff --git a/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
index a574308..9fc3091 100644
--- a/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
+++ b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
@@ -8,7 +8,6 @@
import deepClone from "@/utils/deepClone";
import { ElMessage } from "element-plus";
import { useRouter } from "vue-router";
-import GlassType from '@/components/basic/product/GlassType.vue'
const router = useRouter()
@@ -24,7 +23,8 @@
export default {
mounted() {
//鑾峰彇鏁版嵁
- request.get("/Temper/Tindex").then((res) => {
+ var data="ProcessId="+"P24032508";
+ request.get("/TidyUpGlassModule/SelectTerritoryInfo?"+data).then((res) => {
if (res.code == 200) {
var StoveCount=0;
var temperid;
@@ -161,11 +161,8 @@
<template>
<div ref="content">
-
+ <canvas ref="mycanvas"></canvas>
</div>
- <canvas ref="mycanvas" >
-
- </canvas>
</template>
<style scoped>
--
Gitblit v1.8.0