From 5966d6d329279119f3af29508b97c1d2c0bbe2bd Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期二, 14 五月 2024 09:07:33 +0800 Subject: [PATCH] -测试设备接口保存 --- jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java | 128 +++++++++++++++++++++++++----------------- 1 files changed, 77 insertions(+), 51 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java index 188b8fe..f7c6934 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java +++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java @@ -1,11 +1,15 @@ package com.jcdm.main.plcserver.sub; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jcdm.common.utils.StringUtils; import com.jcdm.framework.websocket.WebSocketUsers; +import com.jcdm.main.constant.Constants; import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; import com.jcdm.main.da.paramCollection.domain.DaParamCollection; @@ -35,7 +39,7 @@ public SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //鏂拌嚜鍔ㄥ伐绔� - public List<String> automaticList = Arrays.asList("OP280", "OP300A","OP300B", "OP320A","OP320B", "OP340A","OP340B", "OP350A","OP350B", "OP360","OP365","OP370", "OP390", "OP470"); + public List<String> automaticList = Arrays.asList("OP280","OP310A","OP310B", "OP300A","OP300B", "OP320A","OP320B", "OP340A","OP340B", "OP350A","OP350B", "OP360","OP365","OP370", "OP390", "OP470"); //閲囬泦妯$粍宸ヤ綅 ModuleCode public List<String> moduleCodeList = Arrays.asList("OP300A","OP300B","OP320A","OP320B","OP340A","OP340B","OP365", "OP350A", "OP350B", "OP330"); @@ -49,6 +53,9 @@ //鍖哄垎pack鍨嬪彿鐨勫伐浣� public List<String> packIdList = Arrays.asList("OP280","OP360","OP390","OP470"); + + //娴嬭瘯璁惧鎵嬪姩宸ヤ綅 + public List<String> testList = Arrays.asList("OP430-1","OP430-2","OP430-3","OP430-4","OP480-1","OP480-2","OP480-3","OP440"); //绌虹殑 @@ -91,20 +98,7 @@ String tab = nodes[2];//鏍囪 String tabVlaue = value.toString();//鍦板潃鍊� - //璇锋眰涓嬪彂SN鍙� - if (("RecordSN").equals(tab) && "1".equals(tabVlaue)) { - //鑾峰彇SN鍙锋柟娉� - String SNCode = getSNCode(); - - //涓嬪彂SN - String SNCodeAddress = thoroughfare + "." + device + ".SNCode"; - miloService.writeToOpcChar(ReadWriteEntity.builder().identifier(SNCodeAddress).value(SNCode).build()); - //涓嬪彂SN瀹屾垚 - String recordSNDoneAddress = thoroughfare + "." + device + ".RecordSNDone"; - miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(recordSNDoneAddress).value(1).build()); - } - //璇锋眰璁板綍鏁版嵁 - else if (("RecordData").equals(tab)) { + if (("RecordData").equals(tab)) { String recordDataDoneValue = ""; if("1".equals(tabVlaue)){ @@ -117,49 +111,51 @@ //鑷姩宸ヤ綅 if(automaticList.stream().anyMatch(s -> s.equals(device))){ //plc缁欐垜浠竴涓ā缁勭爜锛屾嬁妯$粍鐮佹牎楠屽嚭鍨嬪彿 - if(distinguishingModules.stream().anyMatch(s -> s.equals(device))) { + if(moduleCodeList.stream().anyMatch(s -> s.equals(device))) { + String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; //璇绘ā缁勭爜 -// String moduleCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".ModuleCode").getValue().toString(); -// String productTye = thoroughfare + "." + device + ".ProductType"; -// if (null != moduleCode && moduleCode.length() == 24) { -// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(productTye).value(Integer.valueOf(moduleCode.substring(7, 8))).build()); -// //杩涚珯淇濆瓨鏁版嵁 -//// inSaveDate(thoroughfare,device) -// //璁板綍鏁版嵁瀹屾垚 - String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; -// + Object moduleCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".ModuleCode").getValue(); + + if(moduleCode!=null){ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build()); -// -// -// //璇锋眰宸ュ崟 -// } else { -// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); -// } + }else { + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(12).build()); + } }else { if(agvId.stream().anyMatch(s -> s.equals(device))){ - String agvId = miloService.readFromOpcUa(thoroughfare + "." + device + ".AGVID").getValue().toString(); - String PACKCode = thoroughfare + "." + device + ".MPACKCode"; - if (null != agvId) { - OmProductionOrdeInfo one = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getTrolleyYard, agvId)); - String packId = one.getProductNum(); - miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(PACKCode).value(packId).build()); - } else { + Object agvIdObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".AGVID").getValue(); + //agvId 灏忚溅鐮佹槸鍚︿负绌� + if(agvIdObject!=null){ + String PACKCode = thoroughfare + "." + device + ".MPACKCode"; + OmProductionOrdeInfo one = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getTrolleyYard, agvIdObject.toString())); + //灏忚溅鐮佹煡鎵惧伐鍗曟槸鍚︿负绌� + if(one!=null){ + String packId = one.getProductNum(); + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(PACKCode).value(packId).build()); + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build()); + }else { + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); + } + }else { miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); } - } - //pack 濡傛灉鍖哄垎鍨嬪彿鐨勮瘽灏辫澶勭悊 - //璁板綍鏁版嵁瀹屾垚 - String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; - miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build()); + }else { + String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; + Object packCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".PACKCode").getValue(); + if(packCodeObject!=null){ + //pack 濡傛灉鍖哄垎鍨嬪彿鐨勮瘽灏辫澶勭悊 + //璁板綍鏁版嵁瀹屾垚 + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build()); + }else { + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(12).build()); + } + + } } }else { //鎵嬪姩宸ヤ綅澶勭悊閫昏緫 -// if(automaticList.stream().noneMatch(s -> s.equals(device))){ - //缁欏墠绔彂宸ヤ欢鍒颁綅淇″彿 - WebSocketUsers.sendMessageToUserByText(map.get(device), "IN"); -// } - //鏍¢獙鍚堟牸涓嶅悎鏍煎鏋滃悎鏍煎彲浠ヨ繘绔� + WebSocketUsers.sendMessageToUserByText(map.get(device), "IN"); String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build()); @@ -176,7 +172,16 @@ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(Integer.valueOf(recordDataDoneValue)).build()); }else { //鎵嬪姩宸ヤ綅 - WebSocketUsers.sendMessageToUserByText(map.get(device), "END"); + if(device.contains("OP330")){ + String str = device.substring(0,5); + WebSocketUsers.sendMessageToUserByText(map.get(str), "END"); + }else { + WebSocketUsers.sendMessageToUserByText(map.get(device), "END"); + } + if(testList.stream().anyMatch(s -> s.equals(device))){ + String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(21).build()); + } } }else { System.out.println("^"); @@ -351,12 +356,20 @@ ParamCollection.setParamCode(list.get(i).getCollectParameterId()); ParamCollection.setLocationCode(device); if(tt.contains("Time")){ - String str = TimeUtil.getTimestamp(TimeUtil.stringProcessing(tt)); - ParamCollection.setParamValue(str); +// String str = TimeUtil.getTimestamp(TimeUtil.stringProcessing(tt)); +// ParamCollection.setParamValue(str); + ParamCollection.setParamValue(TimeUtil.getYyyyDdMm(TimeUtil.stringProcessing(tt))); }else { ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString()); } ParamCollection.setSfcCode(packCode); + if(device.contains("OP360")){ + String node = nodeIdList.get(i); + Object value = miloService.readFromOpcUa("PACK.OP360.ModuleSNCode"+node.charAt(node.length()-1)).getValue(); + if(value!=null){ + ParamCollection.setModuleCode(value.toString()); + } + } ParamCollection.setParamName(list.get(i).getCollectParameterName()); ParamCollection.setParamUpper(list.get(i).getParamUpper()); ParamCollection.setParamLower(list.get(i).getParamLower()); @@ -466,4 +479,17 @@ return sb.toString(); } + + /** + * 鏍¢獙鏄惁瀛樺湪NG + * @param packCode sfcCode + * @return boolean + */ + public boolean checkIsNG(String packCode,String modelCode){ + List<DaPassingStationCollection> list = daPassingStationCollectionService.list(new LambdaQueryWrapper<DaPassingStationCollection>() + .eq(StrUtil.isNotBlank(packCode),DaPassingStationCollection::getSfcCode, packCode) + .eq(DaPassingStationCollection::getOutRsSign, Constants.UN_PASS)); + return CollUtil.isEmpty(list); + } + } -- Gitblit v1.9.3