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