From f48c38125956578611832f6017b0cb2ffdbe3725 Mon Sep 17 00:00:00 2001 From: 吴健 <14790700720@163.com> Date: 星期二, 15 四月 2025 09:00:32 +0800 Subject: [PATCH] add --- billion-main/src/main/java/com/billion/main/plc/sub/OPCUaSubscriptionTemp.java | 332 +++++++++++++++++++++++++++--------------------------- 1 files changed, 166 insertions(+), 166 deletions(-) diff --git a/billion-main/src/main/java/com/billion/main/plc/sub/OPCUaSubscriptionTemp.java b/billion-main/src/main/java/com/billion/main/plc/sub/OPCUaSubscriptionTemp.java index 1a5b98f..51adbee 100644 --- a/billion-main/src/main/java/com/billion/main/plc/sub/OPCUaSubscriptionTemp.java +++ b/billion-main/src/main/java/com/billion/main/plc/sub/OPCUaSubscriptionTemp.java @@ -1,166 +1,166 @@ -package com.billion.main.plc.sub; - - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.billion.main.da.domain.DaParamCollection; -import com.billion.main.da.service.IDaParamCollectionService; -import com.billion.main.da.service.IDaStationCollectionService; -import com.billion.main.plc.constant.Constants; -import com.billion.main.sc.domain.ScCollectionParamConf; -import com.billion.main.sc.service.IScCollectionParamConfService; -import com.kangaroohy.milo.model.ReadWriteEntity; -import com.kangaroohy.milo.runner.subscription.SubscriptionCallback; -import com.kangaroohy.milo.service.MiloService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.stream.Collectors; - - -@Slf4j -public class OPCUaSubscriptionTemp implements SubscriptionCallback { - - public static MiloService miloService; - public static IScCollectionParamConfService collectionParamConfService; - public static IDaParamCollectionService paramCollectionService; - public static IDaStationCollectionService stationCollectionService; - - public OPCUaSubscriptionTemp(MiloService miloService, IScCollectionParamConfService collectionParamConfService - , IDaParamCollectionService paramCollectionService, IDaStationCollectionService stationCollectionService) { - OPCUaSubscriptionTemp.miloService = miloService; - OPCUaSubscriptionTemp.collectionParamConfService = collectionParamConfService; - OPCUaSubscriptionTemp.paramCollectionService = paramCollectionService; - OPCUaSubscriptionTemp.stationCollectionService = stationCollectionService; - } - - @Override - public void onSubscribe(String identifier, Object value) { - log.info("鍦板潃锛�"+identifier+"鍊硷細"+value); - try { - if(null != value && !Constants.ZERO.equals(value.toString())) { - String[] nodes = identifier.split("[.]"); - String thoroughfare = nodes[0];//閫氶亾 - String device = nodes[1];//璁惧 - String tab = nodes[2];//鏍囪 - String valueString = value.toString();//鍦板潃鍊� - - CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { - subHandle(thoroughfare,device,tab,valueString); - }); - - } - } catch (Exception e) { - log.error(e.getMessage()); - } - } - - public void subHandle(String thoroughfare,String device,String tab,String valueString){ - try{ - //鐩戝惉recordData - if(tab.equals(Constants.RECORD_DATA)){ - //濡傛灉鏄�1鍋氳繘绔欏鐞� - if(valueString.equals(Constants.ONE)){ - Object sfcCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".sfcCode").getValue(); - if(ObjectUtil.isNotNull(sfcCodeObject)){ - miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(Constants.STRING_ONE_ONE).build()); - }else { - miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(Constants.STRING_ONE_TWO).build()); - } - //濡傛灉鏄�2鍋氬嚭绔欏鐞嗗鐞� - }else if(valueString.equals(Constants.TWO)){ - String result = Constants.STRING_TWO_ONE; - //璇诲彉閫熺鎬绘垚鐮� - Object sfcCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".sfcCode").getValue(); - //涓虹┖鏃讹紝杩斿洖5 - if (ObjectUtil.isNull(sfcCodeObject)){ - miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(Constants.STRING_TWO_FIVE).build()); - }else { - String snCode = sfcCodeObject.toString().trim();//浜у搧SN - Object stationStatusObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".StationStatus").getValue();//绔欑姸鎬佸湴鍧� - String stationStatus = stationStatusObjcet.toString(); - if (ObjectUtil.isNotNull(stationStatusObjcet)) { - //淇濆瓨鍙傛暟锛屽彂閫佸伐鍘侻ES - result = saveParamCollection(device, snCode, stationStatus); - //淇濆瓨杩囩珯璁板綍 - savePassingStation(device,snCode,stationStatus); - }else { - result = Constants.STRING_TWO_THREE; - log.info("璇诲彇鍒板伐浣峽}StationStatus鏁版嵁锛歿},杩斿洖RecordDataDone鐨勫�间负{}", device, "IS NULL锛�", result); - } - } - miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(result).build()); - } - } - }catch (Exception e) { - log.error(e.getMessage()); - } - } - - /** - * 淇濆瓨杩囩珯鏁版嵁 - * - * @param device 宸ヤ綅 - * @param snCode 浜у搧搴忓垪鍙� - * @return Integer - * @throws Exception e - */ - private static Integer savePassingStation(String device, String snCode,String stationStatus){ - Integer result = 21; - try { - - - } catch (Exception e) { - throw new RuntimeException(e); - } - - return result; - } - - /** - * 淇濆瓨鍙傛暟鏁版嵁鍜屽彂閫佸伐鍘侻ES - * @param device 宸ヤ綅 - * @param snCode 浜у搧SN - * @param stationStatus 绔欑姸鎬� - * @return result - * @throws Exception e - */ - private static String saveParamCollection(String device,String snCode,String stationStatus){ - String result = Constants.STRING_TWO_ONE;//杩斿洖缁撴灉 - try { - //鏌ヨ鍙傛暟閰嶇疆琛� - List<ScCollectionParamConf> list = collectionParamConfService.list(new LambdaQueryWrapper<ScCollectionParamConf>() - .eq(ScCollectionParamConf::getLocationCode, device)//宸ヤ綅 - .eq(ScCollectionParamConf::getSubscribe, Constants.ONE)//鏄惁閲囬泦 - ); - if (CollUtil.isNotEmpty(list)){ - List<String> collect = list.stream() - .map(ScCollectionParamConf::getNode).collect(Collectors.toList()); - List<ReadWriteEntity> readWriteEntityList = miloService.readFromOpcUa(collect); - ArrayList<DaParamCollection> collectionList = new ArrayList<>(); - for (int i = 0; i < readWriteEntityList.size(); i++) { - DaParamCollection daParamCollection = new DaParamCollection(); - daParamCollection.setSfcCode(snCode); - daParamCollection.setLocationCode(device); - daParamCollection.setParamCode(list.get(i).getParamCode());//鍙傛暟缂栫爜 - daParamCollection.setParamName(list.get(i).getParamName());//鍙傛暟鍚嶇О - daParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString()); - daParamCollection.setCollectTime(new Date()); - collectionList.add(daParamCollection); - } - paramCollectionService.saveBatch(collectionList); - } - - }catch (Exception e) { - throw new RuntimeException("淇濆瓨鏁版嵁鍙戦�佸伐鍘侻ES寮傚父"); - } - return result; - } - - -} +//package com.billion.main.plc.sub; +// +// +//import cn.hutool.core.collection.CollUtil; +//import cn.hutool.core.util.ObjectUtil; +//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +//import com.billion.main.da.domain.DaParamCollection; +//import com.billion.main.da.service.IDaParamCollectionService; +//import com.billion.main.da.service.IDaStationCollectionService; +//import com.billion.main.plc.constant.Constants; +//import com.billion.main.sc.domain.ScCollectionParamConf; +//import com.billion.main.sc.service.IScCollectionParamConfService; +//import com.kangaroohy.milo.model.ReadWriteEntity; +//import com.kangaroohy.milo.runner.subscription.SubscriptionCallback; +//import com.kangaroohy.milo.service.MiloService; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Component; +// +//import java.util.ArrayList; +//import java.util.Date; +//import java.util.List; +//import java.util.concurrent.CompletableFuture; +//import java.util.stream.Collectors; +// +// +//@Slf4j +//public class OPCUaSubscriptionTemp implements SubscriptionCallback { +// +// public static MiloService miloService; +// public static IScCollectionParamConfService collectionParamConfService; +// public static IDaParamCollectionService paramCollectionService; +// public static IDaStationCollectionService stationCollectionService; +// +// public OPCUaSubscriptionTemp(MiloService miloService, IScCollectionParamConfService collectionParamConfService +// , IDaParamCollectionService paramCollectionService, IDaStationCollectionService stationCollectionService) { +// OPCUaSubscriptionTemp.miloService = miloService; +// OPCUaSubscriptionTemp.collectionParamConfService = collectionParamConfService; +// OPCUaSubscriptionTemp.paramCollectionService = paramCollectionService; +// OPCUaSubscriptionTemp.stationCollectionService = stationCollectionService; +// } +// +// @Override +// public void onSubscribe(String identifier, Object value) { +// log.info("鍦板潃锛�"+identifier+"鍊硷細"+value); +// try { +// if(null != value && !Constants.ZERO.equals(value.toString())) { +// String[] nodes = identifier.split("[.]"); +// String thoroughfare = nodes[0];//閫氶亾 +// String device = nodes[1];//璁惧 +// String tab = nodes[2];//鏍囪 +// String valueString = value.toString();//鍦板潃鍊� +// +// CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { +// subHandle(thoroughfare,device,tab,valueString); +// }); +// +// } +// } catch (Exception e) { +// log.error(e.getMessage()); +// } +// } +// +// public void subHandle(String thoroughfare,String device,String tab,String valueString){ +// try{ +// //鐩戝惉recordData +// if(tab.equals(Constants.RECORD_DATA)){ +// //濡傛灉鏄�1鍋氳繘绔欏鐞� +// if(valueString.equals(Constants.ONE)){ +// Object sfcCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".sfcCode").getValue(); +// if(ObjectUtil.isNotNull(sfcCodeObject)){ +// miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(Constants.STRING_ONE_ONE).build()); +// }else { +// miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(Constants.STRING_ONE_TWO).build()); +// } +// //濡傛灉鏄�2鍋氬嚭绔欏鐞嗗鐞� +// }else if(valueString.equals(Constants.TWO)){ +// String result = Constants.STRING_TWO_ONE; +// //璇诲彉閫熺鎬绘垚鐮� +// Object sfcCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".sfcCode").getValue(); +// //涓虹┖鏃讹紝杩斿洖5 +// if (ObjectUtil.isNull(sfcCodeObject)){ +// miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(Constants.STRING_TWO_FIVE).build()); +// }else { +// String snCode = sfcCodeObject.toString().trim();//浜у搧SN +// Object stationStatusObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".StationStatus").getValue();//绔欑姸鎬佸湴鍧� +// String stationStatus = stationStatusObjcet.toString(); +// if (ObjectUtil.isNotNull(stationStatusObjcet)) { +// //淇濆瓨鍙傛暟锛屽彂閫佸伐鍘侻ES +// result = saveParamCollection(device, snCode, stationStatus); +// //淇濆瓨杩囩珯璁板綍 +// savePassingStation(device,snCode,stationStatus); +// }else { +// result = Constants.STRING_TWO_THREE; +// log.info("璇诲彇鍒板伐浣峽}StationStatus鏁版嵁锛歿},杩斿洖RecordDataDone鐨勫�间负{}", device, "IS NULL锛�", result); +// } +// } +// miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(result).build()); +// } +// } +// }catch (Exception e) { +// log.error(e.getMessage()); +// } +// } +// +// /** +// * 淇濆瓨杩囩珯鏁版嵁 +// * +// * @param device 宸ヤ綅 +// * @param snCode 浜у搧搴忓垪鍙� +// * @return Integer +// * @throws Exception e +// */ +// private static Integer savePassingStation(String device, String snCode,String stationStatus){ +// Integer result = 21; +// try { +// +// +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// +// return result; +// } +// +// /** +// * 淇濆瓨鍙傛暟鏁版嵁鍜屽彂閫佸伐鍘侻ES +// * @param device 宸ヤ綅 +// * @param snCode 浜у搧SN +// * @param stationStatus 绔欑姸鎬� +// * @return result +// * @throws Exception e +// */ +// private static String saveParamCollection(String device,String snCode,String stationStatus){ +// String result = Constants.STRING_TWO_ONE;//杩斿洖缁撴灉 +// try { +// //鏌ヨ鍙傛暟閰嶇疆琛� +// List<ScCollectionParamConf> list = collectionParamConfService.list(new LambdaQueryWrapper<ScCollectionParamConf>() +// .eq(ScCollectionParamConf::getLocationCode, device)//宸ヤ綅 +// .eq(ScCollectionParamConf::getSubscribe, Constants.ONE)//鏄惁閲囬泦 +// ); +// if (CollUtil.isNotEmpty(list)){ +// List<String> collect = list.stream() +// .map(ScCollectionParamConf::getNode).collect(Collectors.toList()); +// List<ReadWriteEntity> readWriteEntityList = miloService.readFromOpcUa(collect); +// ArrayList<DaParamCollection> collectionList = new ArrayList<>(); +// for (int i = 0; i < readWriteEntityList.size(); i++) { +// DaParamCollection daParamCollection = new DaParamCollection(); +// daParamCollection.setSfcCode(snCode); +// daParamCollection.setLocationCode(device); +// daParamCollection.setParamCode(list.get(i).getParamCode());//鍙傛暟缂栫爜 +// daParamCollection.setParamName(list.get(i).getParamName());//鍙傛暟鍚嶇О +// daParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString()); +// daParamCollection.setCollectTime(new Date()); +// collectionList.add(daParamCollection); +// } +// paramCollectionService.saveBatch(collectionList); +// } +// +// }catch (Exception e) { +// throw new RuntimeException("淇濆瓨鏁版嵁鍙戦�佸伐鍘侻ES寮傚父"); +// } +// return result; +// } +// +// +//} -- Gitblit v1.9.3