From 7a801ba86c24da0ebb0aabb1fee92eae497d998b Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期四, 11 四月 2024 11:00:42 +0800 Subject: [PATCH] 程序转移 --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/HangzhouMesMapper.java | 76 +++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterObject.java | 202 ++++++++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitInfo.java | 77 +++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/GlassFilms.java | 17 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/EdgStorageCageDetails.java | 30 + hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/GlassInfo.java | 34 + hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/EdgStorageCage.java | 18 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java | 54 - hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java | 160 ++++++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java | 128 +++++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/PpMapper.java | 35 + hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitObject.java | 142 ++++++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java | 122 +++++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java | 67 ++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java | 97 ++++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/Engineering.java | 30 + hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/PpService.java | 49 ++ hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/HangzhoumesService.java | 34 + 18 files changed, 1,326 insertions(+), 46 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java new file mode 100644 index 0000000..96b7996 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java @@ -0,0 +1,122 @@ +package com.mes.common; +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; + +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 = S7object.getinstance().plccontrol.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 = S7object.getinstance().plccontrol.ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength()); + plcParameterObject.setPlcParameterList(getplcvlues); + } + + + +} diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java new file mode 100644 index 0000000..06efda5 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java @@ -0,0 +1,97 @@ +package com.mes.common; + + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import static com.mes.common.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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitInfo.java new file mode 100644 index 0000000..0c0f241 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitInfo.java @@ -0,0 +1,77 @@ +package com.mes.common; + + + +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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitObject.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitObject.java new file mode 100644 index 0000000..e01cb3c --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitObject.java @@ -0,0 +1,142 @@ +package com.mes.common; + +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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java new file mode 100644 index 0000000..2ae2998 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java @@ -0,0 +1,128 @@ +package com.mes.common; +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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterObject.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterObject.java new file mode 100644 index 0000000..26736c3 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterObject.java @@ -0,0 +1,202 @@ +package com.mes.common; + +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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java index cf3d9d1..84126c3 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java @@ -1,7 +1,13 @@ package com.mes.taskcache.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.mes.taskcache.service.HangzhoumesService; +import com.mes.taskcache.service.PpService; +import com.mes.utils.Result; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; /** * <p> @@ -15,5 +21,62 @@ @RequestMapping("/taskCache") public class TaskCacheController { + @Autowired + private PpService ppService; + + @Autowired + private HangzhoumesService hangzhoumesService; + +// @GetMapping("/SelectTerritoryInfo") // 鏌ヨ閽㈠寲鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙� +// @ResponseBody +// public Result SelectTerritoryInfo(@RequestParam(name = "ProcessId", required = false) String ProcessId) { +// List<Tempered> h = ppService.selectTemperedTerritory(ProcessId); +// return Result.seccess(h); +// } + + @GetMapping("/CutTerritory") // 鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙� + @ResponseBody + public Result CutTerritory(String ProcessId) { + List<Map> h = ppService.selectCutTerritory(ProcessId); + return Result.build(200,"鎴愬姛",h); + } + + @GetMapping("/CurrentCutTerritory") // 璇嗗埆鏄剧ず 褰撳墠鐗堝浘 + @ResponseBody + public Result CurrentCutTerritory() { + List<Map> h = ppService.selectCutTerritory(); + System.out.println(h); + return Result.build(200,"鎴愬姛",h); + } + + @GetMapping("/SelectCutTerritory") // 璇嗗埆鏄剧ず 鐗瑰畾鐗堝浘 + @ResponseBody + public Result SelectCutTerritory(String TerritoryId) { + List<Map> h = ppService.selectCutTerritory(TerritoryId); + return Result.build(200,"鎴愬姛",h); + } + + @GetMapping("/IdentControls") // 璇嗗埆鎿嶄綔锛� 鐮存崯/鎷胯蛋 鍙傛暟锛圛D锛屽姛鑳絒0:鐮存崯锛�1锛氭嬁璧癩锛� + @ResponseBody + public Result Ident(@RequestParam(name = "IdentId", required = false) String ProcessId,@RequestParam(name = "ControlsId", required = false) String ControlsId) { + List<Map> h = ppService.selectCutTerritory("P24032508"); + return Result.build(200,"鎴愬姛",h); + } + + @GetMapping("/SelectCageInfo") // 鏌ヨ绗煎唴淇℃伅 + @ResponseBody + public Result SelectCageInfo(String ProcessId) { + List<Map> h = hangzhoumesService.SelectCageInfo(); + return Result.build(200,"鎴愬姛",h); + } + + + @GetMapping("/SelectEdgTask") //纾ㄨ竟浠诲姟 + @ResponseBody + public Result SelectEdgTask(String ProcessId) { + List<Map> EdgTasks = hangzhoumesService.SelectEdgInfo("1"); + return Result.build(200,"鎴愬姛",EdgTasks); + } + } diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/EdgStorageCage.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/EdgStorageCage.java new file mode 100644 index 0000000..4d4c5af --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/EdgStorageCage.java @@ -0,0 +1,18 @@ +package com.mes.taskcache.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et +@TableName("`edg_storage_cage`") +public class EdgStorageCage { + @TableId(type = IdType.AUTO) + private Integer id;//纾ㄨ竟鍓嶇悊鐗囩琛╥d + private Integer flowcard_id;//璁惧id + private String glass_type;//鏍呮牸鍙� + private String height;//鍚敤鐘舵�� + private Integer thickness;//鍓╀綑 + +} diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/EdgStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/EdgStorageCageDetails.java new file mode 100644 index 0000000..06f3515 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/EdgStorageCageDetails.java @@ -0,0 +1,30 @@ +package com.mes.taskcache.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et +@TableName("`edg_storage_cage_details`") +public class EdgStorageCageDetails { + @TableId(type = IdType.AUTO) + private Integer id;//纾ㄨ竟鍓嶇悊鐗囩璇︽儏琛╥d + private Integer deviceid;//璁惧id + private Integer slot;//鏍呮牸鍙� + private Integer glassid;//鐜荤拑id + private Integer sequence;//灏忕墖鍦ㄦ牸鍐呯殑椤哄簭 + private String flowcardid;//娴佺▼鍗″彿 + private Integer glasstype;//鐜荤拑绫诲瀷 + private Double width;//瀹� + private Double height;//楂� + private Double thickness;//鍘氬害 + private Double edgwidth;//纾ㄥ墠瀹� + private Double edgheight;//纾ㄥ墠楂� + private Integer temperinglayoutid;//閽㈠寲鐗堝浘id + private Integer temperingfeedsequence;//閽㈠寲鐗堝浘鐗囧簭 + private Integer patternsequence;//鍘熺墖椤哄簭 + private Integer state;//鐘舵�� + private Integer gap;//鐜荤拑闂撮殭 + +} diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/Engineering.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/Engineering.java new file mode 100644 index 0000000..65c57eb --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/Engineering.java @@ -0,0 +1,30 @@ +package com.mes.taskcache.entity; + +import java.math.BigInteger; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et +@TableName("`engineering`") +public class Engineering { + @TableId(type = IdType.AUTO) + private BigInteger id;//宸ョ▼琛╥d + private Integer engineerid;//宸ョ▼鍙� + private String engineername;//宸ョ▼鍚嶇О + private Double avgavailability;//骞冲潎鍒╃敤鐜� + private Double validavailability;//鏈夋晥鍒╃敤鐜� + private Double lastavailability;//灏剧墖鍒╃敤鐜� + private Integer state;//鐘舵�� + private Integer glasstotal;//灏忕墖鎬绘暟 + private Double glasstotalarea;//灏忕墖鎬婚潰绉� + private Integer planpatterntotal;//璁″垝鍘熺墖鎬绘暟 + private Double planpatterntotalarea;//璁″垝鍘熺墖鎬婚潰绉� + private Integer realitypatterntotal;//瀹為檯鍘熺墖鎬绘暟 + private Double realitypatterntotalarea;//瀹為檯鍘熺墖鎬婚潰绉� + private Integer filmsid;//鑶滅郴id + private String notes;//澶囨敞 + +} diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/GlassFilms.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/GlassFilms.java new file mode 100644 index 0000000..363b937 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/GlassFilms.java @@ -0,0 +1,17 @@ +package com.mes.taskcache.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et +@TableName("`glass_films`") +public class GlassFilms { + @TableId(type = IdType.AUTO) + private Integer id;//鑶滅郴琛╥d + private Integer films_id;//鑶滅郴id + private String films_name;//鑶滅郴 + + +} diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/GlassInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/GlassInfo.java new file mode 100644 index 0000000..5621427 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/GlassInfo.java @@ -0,0 +1,34 @@ +package com.mes.taskcache.entity; + +import java.math.BigInteger; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et +@TableName("`glass_info`") +public class GlassInfo { + @TableId(type = IdType.AUTO) + private BigInteger id;//鐜荤拑淇℃伅琛╥d + private String flowcardid;//娴佺▼鍗� + private Integer glasstype;//娴佺▼鍗$幓鐠冪被鍨� + private Double width;//瀹� + private Double height;//楂� + private Double thickness;//鍘氬害 + private Integer filmsid;//鑶滅郴 + private Double edgwidth;//纾ㄥ墠瀹� + private Double edgheight;//纾ㄥ墠楂� + private Integer ismultiple;//鏄惁閰嶇墖 + private Double maxwidth;//閰嶇墖鏈�澶у + private Double maxheight;//閰嶇墖鏈�澶ч珮 + private Integer ishorizontal;//閽㈠寲鏄惁鎺ュ彈妯斁 + private Integer patternsequence;//鍘熺墖椤哄簭 + private Integer temperinglayoutid;//閽㈠寲鐗堝浘id + private Integer temperingfeedsequence;//閽㈠寲鐗堝浘鐗囧簭 + private Integer xcoordinate;//x鍧愭爣 + private Integer ycoordinate;//y鍧愭爣 + private Integer angle;//鏃嬭浆瑙掑害锛堥�嗘椂閽堬級 + +} diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java index 1f3a632..2969f2c 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java @@ -1,49 +1,15 @@ package com.mes.taskcache.entity; -import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import lombok.EqualsAndHashCode; -/** - * <p> - * - * </p> - * - * @author zhoush - * @since 2024-04-07 - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class TaskCache implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * ID缂栧彿 - */ - @TableId("ID") - private String id; - - /** - * 璧峰 - */ - private String startCell; - - /** - * 鐩爣 - */ - private String endCell; - - /** - * 浠诲姟绫诲瀷 1:杩� 2锛氬嚭 - */ - private String taskType; - - /** - * 浠诲姟鐘舵�� 0 鏈紑濮� 1姝e湪杩涜 2瀹屾垚 - */ - private String taskStauts; - - +@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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/HangzhouMesMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/HangzhouMesMapper.java new file mode 100644 index 0000000..69a61db --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/HangzhouMesMapper.java @@ -0,0 +1,76 @@ +package com.mes.taskcache.mapper; + + + +import java.util.List; +import java.util.Map; + +import com.mes.taskcache.entity.EdgStorageCageDetails; +import com.mes.taskcache.entity.GlassInfo; +import com.mes.taskcache.entity.TaskCache; +import org.apache.ibatis.annotations.*; + +@Mapper +public interface HangzhouMesMapper { + + // 鐜荤拑淇℃伅 鎸塈D鏌ヨ + @Select("select * from `glass_info` where id=#{id}") + GlassInfo selectGlassId(String id); + // 鏌ヨ纾ㄨ竟淇℃伅 + @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 esc.*,escd.id as detailsID,escd.device_id as details_device_id,escd.glass_id,escd.sequence,escd.flow_card_id,escd.glass_type,escd.width,escd.height,escd.thickness,escd.edg_width,escd.edg_height,escd.tempering_layout_id,escd.tempering_feed_sequence,escd.pattern_sequence,escd.state,escd.gap from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot order by esc.slot") + List<Map> 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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/PpMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/PpMapper.java new file mode 100644 index 0000000..4617917 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/PpMapper.java @@ -0,0 +1,35 @@ +package com.mes.taskcache.mapper; + + + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.*; +// +//@DS("pp") +@Mapper +public interface PpMapper { + +// // 閽㈠寲鎸夊伐绋嬫煡璇� +// @Select("select * from `v_optimize_heat_layout` where project_no=#{projeceid} ") +// List<Tempered> selectTemperedTerritory(String projeceid); + + // 鍒囧壊鐗堝浘 鎸夊伐绋�,鐗堝浘缂栧彿鏌ヨ + @Select("select * from optimize_detail where project_no=#{projeceid} and stock_id=#{TerritoryId}") + List<Map> selectCutTerritory(String projeceid,String TerritoryId); + + // 鍒囧壊鐗堝浘 鎸夊伐绋嬫煡璇� + @Select("select * from optimize_detail where project_no=#{projeceid} ") + List<Map> selectCutTerritory(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); +} diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/HangzhoumesService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/HangzhoumesService.java new file mode 100644 index 0000000..0a00d81 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/HangzhoumesService.java @@ -0,0 +1,34 @@ +package com.mes.taskcache.service; + + +import com.mes.taskcache.entity.GlassInfo; +import com.mes.taskcache.mapper.HangzhouMesMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class HangzhoumesService { + + @Autowired + private HangzhouMesMapper hangzhouMesMapper; + //鏍规嵁缂栧彿 鏌ユ壘鐜荤拑灏忕墖淇℃伅 + public GlassInfo getUserInfo(String process_id){ + return hangzhouMesMapper.selectGlassId(process_id); + } + + //鐞嗙墖缂撳瓨 绗煎唴淇℃伅 + public List<Map> SelectCageInfo(){ + return hangzhouMesMapper.selectCachInfo(); + } + + //纾ㄨ竟灏忕墖淇℃伅 + public List<Map> SelectEdgInfo(String line){ + return hangzhouMesMapper.selectEdgInfo(line); + } + + +} + diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java new file mode 100644 index 0000000..7615a77 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java @@ -0,0 +1,160 @@ +package com.mes.taskcache.service; + +import java.util.List; + +import com.mes.common.PLCAutoMes; +import com.mes.common.PlcParameterObject; +import com.mes.common.S7object; +import com.mes.taskcache.entity.EdgStorageCageDetails; +import com.mes.taskcache.entity.GlassInfo; +import com.mes.taskcache.mapper.HangzhouMesMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + + + +@Service +public class LogicService { + @Autowired + private HangzhouMesMapper hangzhouMesMapper; + +// //鐞嗙墖 +// public void Process(){ +// String Result= S7object.getinstance().plccontrol.ReadWord("DB14.0", 1).get(0)+""; +// String Number=S7object.getinstance().plccontrol.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 boolean processInto(String Number){ + //鏌ヨ娑堟伅闃熷垪閲岀殑鐜荤拑 + GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number); + PlcParameterObject plcmes= PLCAutoMes.PlcMesObject; + if(GlassInfo!=null){//瀛樺湪姝ょ幓鐠冪紪鍙� + //鍚岄挗鍖栫増鍥惧唴鐨勬爡鏍煎彿 + List<EdgStorageCageDetails> list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getTemperingfeedsequence(),GlassInfo.getWidth()); + //绌烘爡鏍煎彿 + if (list.size()==0) { + list=hangzhouMesMapper.selectCacheLeisure(); + } + //灏忎簬姝ょ幓鐠冮挗鍖栫増鍥惧簭鍙风殑鏍呮牸鍙� + if(list.size()==0){ + list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getWidth()); + } + if(list.size()>0){ + //瀛樺湪绌烘牸 + //1.鐢熸垚浠诲姟锛� 璧峰浣嶇疆0 缁撴潫浣嶇疆this.slot 浠诲姟绫诲瀷 1 锛堣繘鐗囦换鍔★級 + //2.鍥炲 1杩涚墖 + EdgStorageCageDetails item=list.get(0); + hangzhouMesMapper.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1"); + S7object.getinstance().plccontrol.WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1); + return true; + } + + }else{ + // ID缂栧彿涓嶅瓨鍦� 涓嶅鐞�/鍥炲PLC 杩涜鎶ヨ鎻愮ず + } + //杩斿洖缁撴灉 + return false; + } +// //鐞嗙墖 鍑� +// public boolean processOut(){ +// //鏌ヨ浠诲姟 +// String A09=S7object.getinstance().plccontrol.ReadWord("DB14.56", 1).get(0)+""; +// String A10=S7object.getinstance().plccontrol.ReadWord("DB14.58", 1).get(0)+""; +// PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; +// List<EdgStorageCageDetails> list=hangzhouMesMapper.selectCacheOut(); +// boolean isOut=true;//鍏朵粬鎯呭喌鏉′欢 濡傦細鍚庣画璁惧鏁呴殰绂佹鐞嗙墖鍑虹墖 绛� +// if (list.size()>0&&isOut) { +// EdgStorageCageDetails item=list.get(0); +// if(A09=="0"&&A10=="1"){ +// //鍑哄埌 A09 +// hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","09","2"); +// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1"); +// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); +// return true; +// }else if(A09=="1"&&A10=="0"){ +// //鍑哄埌 A10 +// hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","10","2"); +// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2"); +// S7object.getinstance().plccontrol.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= hangzhouMesMapper.selectLastOutCacheInfo("09"); +// GlassInfo glassInfo10= hangzhouMesMapper.selectLastOutCacheInfo("10"); +// if(glassInfo10!=null&&glassInfo10.getWidth()==item.getWidth()&&glassInfo10.getHeight()==item.getHeight()){ +// endcell="10"; +// SendEndcell="2"; +// }else if(glassInfo10!=null&&If_){ +// //鍏朵粬鏉′欢 +// } +// hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0",endcell,"2"); +// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell); +// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); +// return true; +// } +// } +// //杩斿洖缁撴灉 +// return false; +// } + +// //纾ㄨ竟 涓嶄氦浜� 鐞嗙墖鍜岀(杈规満鑷繁浜や簰 +// public void processMb(String Number){ +// //鏌ヨ浠诲姟 +// GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number); +// PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; +// if(GlassInfo!=null){ +// //鍙戦�佷换鍔� ID 闀� 瀹� 鍘� 鍊掕 宸ヨ壓鍔熻兘绛� +// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.22").getAddress(),"N10000"); +// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.24").getAddress(), "1000"); +// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.26").getAddress(),"800"); +// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(),"60"); +// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.30").getAddress(), "2"); +// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); +// } +// //杩斿洖缁撴灉 +// } + + //鏌ヨ娑堟伅闃熷垪閲屾鐜荤拑ID鐨勬暟鎹� + public boolean SelectMessageId(String num){ + //鏌ヨ鏄惁瀛樺湪 + GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num); + if(glassInfo==null){ + return false;//杩斿洖 涓嶅瓨鍦� + } + return true;//杩斿洖 瀛樺湪 + } + //鍒犻櫎娑堟伅闃熷垪閲屾鐜荤拑ID鐨勬暟鎹� + public boolean DeleteMessageId(String num){ + //鏌ヨ鏄惁瀛樺湪 + GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num); + if(glassInfo==null){ + return false;//杩斿洖 涓嶅瓨鍦� + } + return true;//杩斿洖 瀛樺湪 + } + + //鏄惁瀛樺湪姝ょ紪鍙风幓鐠� + public boolean isExist(String num){ + //鏌ヨ鏄惁瀛樺湪 + GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num); + if(glassInfo==null){ + return false;//杩斿洖 涓嶅瓨鍦� + } + return true;//杩斿洖 瀛樺湪 + } + +} + diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/PpService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/PpService.java new file mode 100644 index 0000000..6dcb8ff --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/PpService.java @@ -0,0 +1,49 @@ +package com.mes.taskcache.service; + + +import com.mes.taskcache.mapper.HangzhouMesMapper; +import com.mes.taskcache.mapper.PpMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class PpService { + + @Autowired + private PpMapper selectInfoMapper; + @Autowired + private HangzhouMesMapper hangzhouMesMapper; + + // public GlassInfo getUserInfo(String process_id){ + // return hangzhouMesMapper.selectGlassId(process_id); + // } + +// public List<Tempered> selectTemperedTerritory(String process_id){ +// return selectInfoMapper.selectTemperedTerritory(process_id); +// } + + //鍒囧壊鐗堝浘 褰撳墠璇嗗埆鐗堝浘 + public List<Map> selectCutTerritory(){ + //寰楀埌瑕佹樉绀虹殑 宸ョ▼ID 浠ュ強鐗堝浘ID + //1.鍦℉angzhoumes鏁版嵁搴撻噷 寰楀埌鐩墠宸茬粡 棰嗗彇浣嗘湭瀹屾垚鐨� 宸ョ▼ID闆嗗悎 + //2.鎷垮伐绋嬮泦鍚堝幓PP鏁版嵁搴撻噷 寰楀埌瀵瑰簲鐨勫皬鐗囬泦鍚� + //3.鎷垮搴旂殑灏忕墖闆嗗悎 涓� 缂撳瓨浠诲姟琛ㄨ繘琛屽姣� 鏌ユ壘涓嬩竴鐗堝浘鏄剧ず + String process_id = "P24032204"; + String territory_id = "1"; + return selectInfoMapper.selectCutTerritory(process_id,territory_id); + } + //鍒囧壊鐗堝浘 鏍规嵁宸ョ▼鍙锋煡璇� 鎵�鏈夌増鍥惧皬鐗囨暟鎹� + public List<Map> selectCutTerritory(String process_id){ + return selectInfoMapper.selectCutTerritory(process_id); + } + //鍒囧壊鐗堝浘 鏍规嵁宸ョ▼鍙�,鐗堝浘缂栧彿鏌ヨ 鐗堝浘缂栧彿閲屾墍鏈夊皬鐗囨暟鎹� + public List<Map> selectCutTerritory(String process_id,String TerritoryId){ + return selectInfoMapper.selectCutTerritory(process_id,TerritoryId); + } + + +} + -- Gitblit v1.8.0