From f0d048fa2cba4f52066e14d1d31e4f7a2c7a9530 Mon Sep 17 00:00:00 2001 From: hdy <1105738590@qq.com> Date: 星期三, 12 三月 2025 09:05:57 +0800 Subject: [PATCH] 新增导入功能 --- billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java | 70 ++++++++++++++++++++++++---------- 1 files changed, 49 insertions(+), 21 deletions(-) diff --git a/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java b/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java index 8d3663b..da49e78 100644 --- a/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java +++ b/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java @@ -16,6 +16,7 @@ import com.billion.main.om.domain.OmProductionOrderInfo; import com.billion.main.om.service.IOmOrderSchedulingService; import com.billion.main.om.service.IOmProductionOrderInfoService; +import com.billion.main.plcServer.util.TimeUtil; import com.billion.main.sys.domain.SysCount; import com.billion.main.sys.service.ISysCountService; import com.kangaroohy.milo.model.ReadWriteEntity; @@ -23,7 +24,6 @@ import com.kangaroohy.milo.service.MiloService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import com.billion.main.plcServer.util.TimeUtil; import java.text.SimpleDateFormat; import java.time.LocalDateTime; @@ -100,7 +100,8 @@ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build()); } //闄ら宸ョ珯鎵�鏈夊伐绔� - else if(Constants.PLC1.contains(device) || + else if( + Constants.PLC1.contains(device) || Constants.PLC2.contains(device) || Constants.PLC3.contains(device) || Constants.PLC4.contains(device) || @@ -109,17 +110,22 @@ //鏍¢獙SFCCode鏄惁瀛樺湪 Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue(); if (SFCCode == null ) { - miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(23).build()); + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(13).build()); } else { OmOrderScheduling omOrderScheduling = new OmOrderScheduling(); + omOrderScheduling.setSfcCode(SFCCode.toString()); List<OmOrderScheduling> resultList = omOrderSchedulingService.selectOmOrderSchedulingList(omOrderScheduling); - log.info("鏌ヨ缁撴灉鏁伴噺: {}", resultList); - BsBomChildInfo bsbomChildInfo= new BsBomChildInfo(); - bsbomChildInfo.setLocationCode(device); - bsbomChildInfo.setBomCode(resultList.get(0).getWorkOrderNo()); - //涓嬪彂閰嶆柟 - formula(thoroughfare, device, bsbomChildInfo); - miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build()); + if(resultList != null){ + String getWorkOrderNo = resultList.get(0).getWorkOrderNo(); + BsBomChildInfo bsbomChildInfo= new BsBomChildInfo(); + bsbomChildInfo.setLocationCode(device); + bsbomChildInfo.setBomCode(getWorkOrderNo); + //涓嬪彂閰嶆柟 + formula(thoroughfare, device, bsbomChildInfo); + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build()); + }else { + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(13).build()); + } } } //鍑虹珯淇濆瓨鏁版嵁 @@ -134,6 +140,11 @@ omOrderScheduling.setWorkOrderNo(workOrderNumber.toString()); omOrderScheduling.setNowQty(nowQty.toString()); omOrderScheduling.setSfcCode(SFCCode.toString()); + Date Time = new Date(); + ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StartTime"); + Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString()))); + omOrderScheduling.setOnlineTime(Time); + omOrderScheduling.setStatus("1"); //鎵樼洏缁戝畾SFCCode鍜屽伐鍗曞拰浜х嚎 if(Constants.OP005.equals(device)){ omOrderScheduling.setRemarks("Body"); @@ -143,6 +154,11 @@ } omOrderSchedulingService.insertOmOrderScheduling(omOrderScheduling); }else if(Constants.OFFLINE.contains(device)){ + Date Time = new Date(); + ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime"); + Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString()))); + omOrderScheduling.setOfflineTime(Time); + omOrderScheduling.setStatus("2"); if(Constants.C060.equals(device)){ omOrderScheduling.setRemarks("Head"); omOrderScheduling.setSfcCode(SFCCode.toString()); @@ -197,38 +213,50 @@ //鏌ヨdescriptive瀛楁绛変簬1鐨勯噰闆嗛」淇濆瓨鍒版壂鐮佷繚瀛樺埌da_material_collection琛ㄩ噷 DaCollectionParamConf daCollectionParamConf1 = new DaCollectionParamConf(); daCollectionParamConf1.setProcessesCode(device); - daCollectionParamConf1.setDescriptive("3"); + daCollectionParamConf1.setDescriptive("1"); List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1); for (DaCollectionParamConf conf : daCollectionParamConfList1) { String gatherAddress = conf.getGatherAddress(); - Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // 鑾峰彇鍘熷鍊煎璞♀��:ml-citation{ref="4" data="citationList"} - if (valueObj != null ) { + String valueObj = miloService.readFromOpcUa(gatherAddress).getValue().toString(); // 鑾峰彇鍘熷鍊煎璞♀��:ml-citation{ref="4" data="citationList"} + if (!Objects.equals(valueObj, " ")) { DaMaterialCollection materialCollection = new DaMaterialCollection(); materialCollection.setSfcCode(SFCCode.toString()); materialCollection.setLocationCode(device); materialCollection.setParamName(conf.getParameterSetName()); - materialCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); - materialCollection.setCollectTime(new Date()); + materialCollection.setParamValue(miloService.readFromOpcUa(gatherAddress).getValue().toString()); + Date Time = new Date(); + ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime"); + Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString()))); + materialCollection.setCollectTime(Time); daMaterialCollectionService.insertDaMaterialCollection(materialCollection); } + else { + log.debug("閲囬泦椤逛负绌�: {}", gatherAddress); + } } - //鏌ヨdescriptive瀛楁绛変簬2鐨勯噰闆嗛」淇濆瓨鍒版壂鐮佷繚瀛樺埌da_param_collection琛ㄩ噷 +// 鏌ヨdescriptive瀛楁绛変簬2鐨勯噰闆嗛」淇濆瓨鍒版壂鐮佷繚瀛樺埌da_param_collection琛ㄩ噷 DaCollectionParamConf daCollectionParamConf2 = new DaCollectionParamConf(); daCollectionParamConf2.setProcessesCode(device); - daCollectionParamConf2.setDescriptive("4"); + daCollectionParamConf2.setDescriptive("2"); List<DaCollectionParamConf> daCollectionParamConfList2 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf2); for (DaCollectionParamConf conf : daCollectionParamConfList2) { String gatherAddress = conf.getGatherAddress(); - Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // 鑾峰彇鍘熷鍊煎璞♀��:ml-citation{ref="4" data="citationList"} - if (valueObj != null ) { + String valueObj = miloService.readFromOpcUa(gatherAddress).getValue().toString(); // 鑾峰彇鍘熷鍊煎璞♀��:ml-citation{ref="4" data="citationList"} + if (!Objects.equals(valueObj, "0.0") && !Objects.equals(valueObj, "0")) { DaParamCollection paramCollection = new DaParamCollection(); paramCollection.setSfcCode(SFCCode.toString()); paramCollection.setLocationCode(device); paramCollection.setParamName(conf.getParameterSetName()); - paramCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); - paramCollection.setCollectionTime(new Date()); + paramCollection.setParamValue(miloService.readFromOpcUa(gatherAddress).getValue().toString()); + Date Time = new Date(); + ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime"); + Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString()))); + paramCollection.setCollectTime(Time); daParamCollectionService.insertDaParamCollection(paramCollection); } + else { + log.debug("閲囬泦椤逛负绌�: {}", gatherAddress); + } } DaStationCollection daStationCollection = new DaStationCollection(); daStationCollection.setLocationCode(device); -- Gitblit v1.9.3