From 8b43954926db6b4df6a61ab6e04d6cb11189069d Mon Sep 17 00:00:00 2001 From: 吴健 <14790700720@163.com> Date: 星期二, 15 四月 2025 08:54:08 +0800 Subject: [PATCH] add-415 --- jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java | 747 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 597 insertions(+), 150 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 f12e9a5..2cb2892 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,9 +1,9 @@ package com.jcdm.main.plcserver.sub; - import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.jcdm.common.core.domain.BaseEntity; import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo; import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; @@ -14,6 +14,8 @@ import com.jcdm.main.da.paramCollection.domain.DaParamCollection; import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; +import com.jcdm.main.da.passingStationCollection.domain.ProductNewPassStation; +import com.jcdm.main.da.passingStationCollection.service.ProductNewPassStationService; import com.jcdm.main.da.passingStationCollection.service.impl.DaPassingStationCollectionServiceImpl; import com.jcdm.main.plcserver.conf.OPCElement; import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord; @@ -21,8 +23,10 @@ import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.runner.subscription.SubscriptionCallback; import com.kangaroohy.milo.service.MiloService; -import javafx.animation.Timeline; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.math.BigDecimal; @@ -37,6 +41,7 @@ @Component public class OPCUaSubscription implements SubscriptionCallback { + private static final Logger logger = LoggerFactory.getLogger("sys-user"); public static MiloService miloService; public IDaCollectionParamConfService collectionParamConfService; @@ -54,6 +59,7 @@ public IRmRepairRecordService rmRepairRecordService; public IBsTechnologyRouteChildInfoService bsTechnologyRouteChildInfoService; + public ProductNewPassStationService productNewPassStationService; public HashMap<String,List<DaCollectionParamConf>> allCollectParamList = new HashMap<>(); @@ -64,7 +70,8 @@ IBsOrderSchedulingService bsOrderSchedulingService, List<DaOpcuaConfig> lists, IRmRepairRecordService rmRepairRecordService, - IBsTechnologyRouteChildInfoService bsTechnologyRouteChildInfoService) { + IBsTechnologyRouteChildInfoService bsTechnologyRouteChildInfoService, + ProductNewPassStationService productNewPassStationService) { OPCUaSubscription.miloService = miloService; this.collectionParamConfService = collectionParamConfService; this.daParamCollectionService = daParamCollectionService; @@ -73,6 +80,7 @@ this.lists = lists; this.rmRepairRecordService = rmRepairRecordService; this.bsTechnologyRouteChildInfoService = bsTechnologyRouteChildInfoService; + this.productNewPassStationService = productNewPassStationService; } @@ -80,10 +88,7 @@ public void onSubscribe(String identifier, Object value) { String ecpStr = "";//寮傚父璁板綍鏍囪 try { - if(null != value && "1".equals(value.toString())) { -// if (OPCElement.OP121_ZZ_CODE_CHECK.equals(identifier)){ -// rework("2V91Y RD25D080",identifier); -// } + if(null != value && "1".equals(value.toString())) { //1銆佹绱N鍙� //2銆佽繃绔欏弬鏁伴噰闆� //3銆佹壂鐮佹灙鏁版嵁鍥炰紶 @@ -92,26 +97,139 @@ List<String> collect2 = lists.stream().filter(x -> OPCElement.SAVE_DATA.equals(x.getrFunction())) .map(DaOpcuaConfig::getNode).collect(Collectors.toList()); if (collect1.contains(identifier)){ - log.info("-------鐩戝惉鍒�,{}鐨凜ODE_CHECK鐨勪俊鍙�",identifier); - log.info("-------time--------------,{}",LocalDateTime.now()); + logger.info("-------鐩戝惉鍒�,{}鐨凜ODE_CHECK鐨勪俊鍙�",identifier); + //logger.info("-------time--------------,{}",LocalDateTime.now()); //sn - this.SNRetrieval(identifier,value.toString()); - if (identifier.equals(OPCElement.OP120_ZZ_CODE_CHECK) && "1".equals(value.toString())){ - //鎬昏涓婄嚎鎵爜浼犺緭鏁版嵁 - log.info("-------鐩戝惉鍒�,{}鐨勬壂鐮佹灙鎵爜鐨凜ODE_CHECK鐨勪俊鍙�",identifier); - scannerGunMessage(); + if (OPCElement.OP010_CODE_CHECK.equals(identifier)){ + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP010.CodeCheckFeed", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity);//鍐欏畬鎴� + } else if (OPCElement.OP020_CODE_CHECK.equals(identifier)) { + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP020.CodeCheckFeed", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity);//鍐欏畬鎴� + } else if (OPCElement.OP030_CODE_CHECK.equals(identifier)) { + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP030.CodeCheckFeed", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity);//鍐欏畬鎴� + Object SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP030.Code").getValue(); + if (ObjectUtil.isNotEmpty(SNCodeObject)){ + String snCode = SNCodeObject.toString(); + if (StrUtil.isNotBlank(snCode)){ + String type = productNewFlag(snCode); + if ("280".equals(type) || "380".equals(type)){ + //鑾峰彇绠变綋鐮� + ProductNewPassStation productNewPassStation = new ProductNewPassStation(); + productNewPassStation.setFinishFlag(OPCElement.UN_FINISH); + productNewPassStation.setSfcCode(snCode); + List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(productNewPassStation); + if (CollUtil.isNotEmpty(productPassStationList)){ + List<ProductNewPassStation> collect = productPassStationList.stream().sorted(Comparator.comparing(ProductNewPassStation::getCreateTime).reversed()).collect(Collectors.toList()); + ProductNewPassStation productNewPassStation1 = collect.get(0); + String boxCode = productNewPassStation1.getBoxCode(); + passingStationCollectionServiceImpl.sendMessage(type+"*"+boxCode,"OP030"); + } + + } else if ("196".equals(type) || "296".equals(type)){ + ReadWriteEntity entity6 = new ReadWriteEntity("CFL4HX.OP030.CodeComplete", 1); + miloService.writeToOpcByte(entity6); + } + } + + } + } else if (OPCElement.OP040_CODE_CHECK.equals(identifier)) { + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP040.CodeCheckFeed", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity);//鍐欏畬鎴� + //鎺ㄩ�佹暟鎹� + log.info("杩涘叆OP040.CodeCheck"); + tile2("CFL4HX.OP040.CodeCheck"); + } else { + this.SNRetrieval(identifier,value.toString()); + if (identifier.equals(OPCElement.OP120_ZZ_CODE_CHECK) && "1".equals(value.toString())){ + //鎬昏涓婄嚎鎵爜浼犺緭鏁版嵁 + logger.info("-------鐩戝惉鍒�,{}鐨勬壂鐮佹灙鎵爜鐨凜ODE_CHECK鐨勪俊鍙�",identifier); + scannerGunMessage(); + } } + } if (collect2.contains(identifier)){ if ("1".equals(value.toString())){ - log.info("-------鐩戝惉鍒�,{}鐨凷AVE_REQUEST_LAST鐨勪俊鍙�",identifier); - log.info("-------time--------------,{}",LocalDateTime.now()); - //save - this.SaveData(identifier); + logger.info("-------鐩戝惉鍒�,{}鐨凷AVE_REQUEST_LAST鐨勪俊鍙�",identifier); + //logger.info("-------time--------------,{}",LocalDateTime.now()); + //HX绾挎敼瑁� + if (OPCElement.OP010_REQUEST_PRODUCT_TYPE.equals(identifier)){ + Object SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP010.Code").getValue(); + if (ObjectUtil.isNotEmpty(SNCodeObject)){ + String snCode = SNCodeObject.toString(); + ReadWriteEntity entity3 = new ReadWriteEntity("CFL4HX.OP010.ProductTypeSN",snCode); + OPCUaSubscription.miloService.writeToOpcUa(entity3);//鍐欎骇鍝丼N鍙峰弽棣� + ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.OP010.SNDone", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity2);//鍐欏畬鎴� + + } + } else if (OPCElement.OP010_SAVE_REQUEST.equals(identifier)) { + ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.OP010.SaveFeed", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity2);//鍐欏畬鎴� + } else if (OPCElement.OP020_PRINT_REQUEST.equals(identifier)) { + Object SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP020.Code").getValue(); + if (ObjectUtil.isNotEmpty(SNCodeObject)){ + String snCode = SNCodeObject.toString(); + DaPassingStationCollection passingStationCollectionCheck = new DaPassingStationCollection(); + passingStationCollectionCheck.setLocationCode("OP020"); + passingStationCollectionCheck.setSfcCode(snCode); + List<DaPassingStationCollection> checkList = passingStationCollectionServiceImpl.selectDaPassingStationCollectionList(passingStationCollectionCheck); + if (CollUtil.isNotEmpty(checkList)){ + if (snCode.startsWith("380")){ + log.info("enter-380"); + String[] split = snCode.split(StrUtil.SPACE); + if (split.length>1){ + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP020.PrintSN1", split[0]); + OPCUaSubscription.miloService.writeToOpcUa(entity);//鍐欏畬鎴� + ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.OP020.PrintSN2", "鈽�"+split[1]+"鈽�"); + OPCUaSubscription.miloService.writeToOpcUa(entity2);//鍐欏畬鎴� + ReadWriteEntity entity3 = new ReadWriteEntity("CFL4HX.OP020.SendSNDone", 2); + OPCUaSubscription.miloService.writeToOpcByte(entity3);//鍐欏畬鎴� + } + } else { + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP020.PrintSN1", snCode); + OPCUaSubscription.miloService.writeToOpcByte(entity);//鍐欏畬鎴� + ReadWriteEntity entity3 = new ReadWriteEntity("CFL4HX.OP020.SendSNDone", 2); + OPCUaSubscription.miloService.writeToOpcByte(entity3);//鍐欏畬鎴� + } + } else { + if (snCode.startsWith("380")){ + log.info("enter-380"); + String[] split = snCode.split(StrUtil.SPACE); + if (split.length>1){ + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP020.PrintSN1", split[0]); + OPCUaSubscription.miloService.writeToOpcUa(entity);//鍐欏畬鎴� + ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.OP020.PrintSN2", "鈽�"+split[1]+"鈽�"); + OPCUaSubscription.miloService.writeToOpcUa(entity2);//鍐欏畬鎴� + ReadWriteEntity entity3 = new ReadWriteEntity("CFL4HX.OP020.SendSNDone", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity3);//鍐欏畬鎴� + } + } else { + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP020.PrintSN1", snCode); + OPCUaSubscription.miloService.writeToOpcByte(entity);//鍐欏畬鎴� + ReadWriteEntity entity3 = new ReadWriteEntity("CFL4HX.OP020.SendSNDone", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity3);//鍐欏畬鎴� + } + } + + } + } else if (OPCElement.OP030_SAVE_REQUEST.equals(identifier)) { + cleanForm("CFL4HX.OP030.SaveFeed"); + ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.OP030.SaveFeed", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity2);//鍐欏畬鎴� + + } else if (OPCElement.OP040_SAVE_REQUEST.equals(identifier)) { + cleanForm040(OPCElement.OP040_SAVE_REQUEST); + ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.OP040.SaveFeed", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity2);//鍐欏畬鎴� + } else { + this.SaveData(identifier); + } } } - } } catch (Exception e) { System.out.println(e.getMessage()); @@ -130,7 +248,7 @@ } if (null != SNCodeObject){ String SNCode = SNCodeObject.toString(); - passingStationCollectionServiceImpl.sendMessage(SNCode); + passingStationCollectionServiceImpl.sendMessage(SNCode,"OP120"); } } @@ -141,162 +259,290 @@ Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code").getValue(); if(null != SNCodeObject) { String SNCode=SNCodeObject.toString(); - String a=passingStationCollectionServiceImpl.SelectSN(SNCode,parts[1]); - log.info("-----杩斿洖codeCheckFeed-----,{}",a); +// String a=passingStationCollectionServiceImpl.SelectSN(SNCode,parts[1]); + String a; + BsOrderScheduling bsOrderSchedulingQuery = new BsOrderScheduling(); + bsOrderSchedulingQuery.setEngineNo(SNCode); + List<BsOrderScheduling> queryOrderList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderSchedulingQuery); + if (CollUtil.isNotEmpty(queryOrderList)){ + a = "1"; + //濡傛灉鏄�佽溅鍨嬶紝鍒ゆ柇鏄惁閲嶅鎵爜 + if (OPCElement.OP050_CODE_CHECK.equals(Node)){ + String type = productNewFlag(SNCode); + if (!"280".equals(type) && !"380".equals(type) && !"196".equals(type) && !"296".equals(type) ){ + DaPassingStationCollection passCheck = new DaPassingStationCollection(); + passCheck.setSfcCode(SNCode); + passCheck.setLocationCode("OP060"); + List<DaPassingStationCollection> passCheckList = passingStationCollectionServiceImpl.selectDaPassingStationCollectionList(passCheck); + if (CollUtil.isNotEmpty(passCheckList)){ + //鏄惁杩斾慨 + a = "5"; +// RmRepairRecord repairRecordCheck = new RmRepairRecord(); +// repairRecordCheck.setBoxCode(SNCode); +// repairRecordCheck.setProcessesCode("OP050"); +// List<RmRepairRecord> repairCheckList = rmRepairRecordService.selectRmRepairRecordList(repairRecordCheck); +// if (CollUtil.isEmpty(repairCheckList)){ +// +// } + } + } + } + }else { + a = "4"; + } + //濡傛灉鏄繑淇伐浣嶉渶瑕佷紶杈撹繑淇伐浣嶅彿 + List<DaPassingStationCollection> daPassingStationCollections = new ArrayList<>(); + List<RmRepairRecord> rmRepairRecords = new ArrayList<>(); + if (OPCElement.OP465_ZZ_CODE_CHECK.equals(Node) || OPCElement.OP355_ZZ_CODE_CHECK.equals(Node) + || OPCElement.OP695_ZZ_CODE_CHECK.equals(Node) || OPCElement.OP755_ZZ_CODE_CHECK.equals(Node)){ + //杩囩珯璁板綍 + DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection(); + PassingStationCollection.setSfcCode(SNCode); + daPassingStationCollections = passingStationCollectionServiceImpl.selectDaPassingStationCollectionList(PassingStationCollection); +// if (CollUtil.isNotEmpty(daPassingStationCollections)){ +// DaPassingStationCollection lastOne = daPassingStationCollections.get(daPassingStationCollections.size() - 1); +// String outRsSign = lastOne.getOutRsSign(); +// if ("鍚堟牸".equals(outRsSign)){ +// a = "1"; +// }else { +// a = "2"; +// } +// } + RmRepairRecord rmRepairRecord = new RmRepairRecord(); + rmRepairRecord.setBoxCode(SNCode); + rmRepairRecords = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord); + if (CollUtil.isNotEmpty(rmRepairRecords)){ + a = "1"; + }else { + a = "2"; + } + } + logger.info("-----杩斿洖codeCheckFeed-----,{}",a); // String a="1"; + //zz涓婄嚎宸ヤ綅鏌ヨhx绾挎槸鍚﹁繃绔欏悎鏍� + if (OPCElement.OP120_ZZ_CODE_CHECK.equals(Node)){ + //杩囩珯璁板綍 + DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection(); + PassingStationCollection.setSfcCode(SNCode); + PassingStationCollection.setLocationCode("OP160"); + List<DaPassingStationCollection> ZZOP120PassCheck = passingStationCollectionServiceImpl.selectDaPassingStationCollectionList(PassingStationCollection); + if (CollUtil.isEmpty(ZZOP120PassCheck)){ + a = ""; + } else { + DaPassingStationCollection passingStationCollection = ZZOP120PassCheck.get(0); + String outRsSign = passingStationCollection.getOutRsSign(); + if (!OPCElement.QUALIFIED.equals(outRsSign)){ + a = ""; + } + } + } // 1:OK鍙敓浜� 2:NG涓嶅彲鐢熶骇 3:NG鍙繑宸� 4:PC妫�绱㈠け璐ワ紙鏃犺褰曪級5:PC妫�绱㈠け璐ワ紙杞欢锛� if (StrUtil.isNotBlank(a)){ int input = Integer.parseInt(a); ReadWriteEntity entity = new ReadWriteEntity(parts[0]+"."+parts[1]+".CodeCheckFeed", input); - log.info("-------鐩戝惉鍒�,{}鐨凜odeCheck鐨勪俊鍙�",Node); + logger.info("鍙戝姩鏈哄彿锛歿},鐩戝惉鍒皗}鐨凜odeCheck鐨勪俊鍙�",SNCode,Node); + miloService.writeToOpcByte(entity); + logger.info("鐩戝惉鍒拌繑鍥瀋odecheckfeed淇″彿锛寋}",entity); //棣栫珯浼犺緭璁㈠崟鍙� - if (OPCElement.OP050_HX_CODE_CHECK.equals(Node)){ - //鏌ヨ璁㈠崟鍙� - BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); - bsOrderScheduling.setEngineNo(SNCode); - List<BsOrderScheduling> tempList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling); - String orderNum = ""; - if (CollUtil.isNotEmpty(tempList)){ - BsOrderScheduling bsOrderScheduling1 = tempList.get(0); - orderNum = bsOrderScheduling1.getOrderNo(); - } - - ReadWriteEntity entity2 = new ReadWriteEntity(parts[0]+"."+parts[1]+".OrderNumber", orderNum); - miloService.writeToOpcUa(entity2); - } +// if (OPCElement.OP050_HX_CODE_CHECK.equals(Node)){ +// //鏌ヨ璁㈠崟鍙� +// BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); +// bsOrderScheduling.setEngineNo(SNCode); +// List<BsOrderScheduling> tempList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling); +// String orderNum = ""; +// if (CollUtil.isNotEmpty(tempList)){ +// BsOrderScheduling bsOrderScheduling1 = tempList.get(0); +// orderNum = bsOrderScheduling1.getOrderNo(); +// } +// ReadWriteEntity entity2 = new ReadWriteEntity(parts[0]+"."+parts[1]+".OrderNumber", orderNum); +// miloService.writeToOpcUa(entity2); +// } //濡傛灉鏄繑淇伐浣嶉渶瑕佷紶杈撹繑淇伐浣嶅彿 if (OPCElement.OP465_ZZ_CODE_CHECK.equals(Node) || OPCElement.OP355_ZZ_CODE_CHECK.equals(Node) || OPCElement.OP695_ZZ_CODE_CHECK.equals(Node) || OPCElement.OP755_ZZ_CODE_CHECK.equals(Node)){ - rework(SNCode,Node); + rework(SNCode,Node,daPassingStationCollections,rmRepairRecords); + } + if (OPCElement.OP050_CODE_CHECK.equals(Node)) { + //鏂版満鍨�050 + String type = productNewFlag(SNCode); + if ("280".equals(type) || "380".equals(type)){ + ProductNewPassStation productNewPassStation = new ProductNewPassStation(); + productNewPassStation.setSfcCode(SNCode); + List<ProductNewPassStation> passStationList = productNewPassStationService.getProductPassStationList(productNewPassStation); + ProductNewPassStation productNewPassStation2 = new ProductNewPassStation(); + productNewPassStation2.setFinishFlag("0"); + List<ProductNewPassStation> collect = productNewPassStationService.getProductPassStationList(productNewPassStation2) + .stream().sorted(Comparator.comparing(ProductNewPassStation::getCreateTime)) + .collect(Collectors.toList()); + String partSfcCode = ""; + if (CollUtil.isNotEmpty(collect)){ + ProductNewPassStation passStation = collect.get(0); + partSfcCode = passStation.getSfcCode(); + } + if (CollUtil.isNotEmpty(passStationList)){ + ProductNewPassStation passStation = passStationList.get(0); + String productType = ""; + if (ObjectUtils.isNotEmpty(passStation)){ + productType = passStation.getProductType(); + } + passingStationCollectionServiceImpl.sendMessage(SNCode+"*sfcCode*"+productType+"*"+partSfcCode,"OP050"); + } + } + } + if (OPCElement.OP060_CODE_CHECK.equals(Node)){ + String type = productNewFlag(SNCode); + if ("280".equals(type) || "380".equals(type)){ + checkBoxRod(Node); + } } System.out.println(entity); - miloService.writeToOpcByte(entity); + } } } } - private void rework(String SNCode,String Node) throws Exception{ + private void rework(String SNCode,String Node,List<DaPassingStationCollection> daPassingStationCollections,List<RmRepairRecord> rmRepairRecords) throws Exception{ BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); bsOrderScheduling.setEngineNo(SNCode); List<String> allProcessCoed = new ArrayList<>(); + List<BsTechnologyRouteChildInfo> bsTechnologyRouteChildInfos = new ArrayList<>(); List<String> collect = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling).stream().map(BsOrderScheduling::getModel).collect(Collectors.toList()); if (CollUtil.isNotEmpty(collect)){ String s = collect.get(0); //鏌ユ壘娆℃満鍨嬬殑瀹屾暣宸ュ簭 - List<BsTechnologyRouteChildInfo> bsTechnologyRouteChildInfos = bsTechnologyRouteChildInfoService.selectAllTechnologyRouteByProductCode(s); + bsTechnologyRouteChildInfos = bsTechnologyRouteChildInfoService.selectAllTechnologyRouteByProductCode(s); if (CollUtil.isNotEmpty(bsTechnologyRouteChildInfos)){ allProcessCoed = bsTechnologyRouteChildInfos.stream().map(BsTechnologyRouteChildInfo::getProcessesCode).collect(Collectors.toList()); } } - RmRepairRecord rmRepairRecord = new RmRepairRecord(); - rmRepairRecord.setBoxCode(SNCode); +// RmRepairRecord rmRepairRecord = new RmRepairRecord(); +// rmRepairRecord.setBoxCode(SNCode); List<ReadWriteEntity> writeList = new ArrayList<>(); - List<RmRepairRecord> rmRepairRecords = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord); +// List<RmRepairRecord> rmRepairRecords = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord); //杩囩珯璁板綍 - DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection(); - PassingStationCollection.setSfcCode(SNCode); +// DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection(); +// PassingStationCollection.setSfcCode(SNCode); //杩囩珯璁板綍 - List<DaPassingStationCollection> daPassingStationCollections = passingStationCollectionServiceImpl.selectDaPassingStationCollectionList(PassingStationCollection); +// List<DaPassingStationCollection> daPassingStationCollections = passingStationCollectionServiceImpl.selectDaPassingStationCollectionList(PassingStationCollection); - //鎵�鏈夊弽宸ュ伐浣� + //鎵�鏈夎繑宸ュ伐浣� List<String> collect1 = rmRepairRecords.stream().map(RmRepairRecord::getProcessesCode).collect(Collectors.toList()); - //鏌ヨ鍑烘墍鏈夐渶瑕佽繑淇伐浣嶇殑鏈�灏弌p鍧� - Integer minOP = 0; if (CollUtil.isNotEmpty(collect1)){ + //鏌ヨ鍑烘墍鏈夐渶瑕佽繑淇伐浣嶇殑鏈�灏弌p鍧� + Integer minOP = 0; + if (CollUtil.isNotEmpty(collect1)){ - List<Integer> sortList = new ArrayList<>(); - collect1.stream().forEach(x ->{ - String op = x.replace("OP", ""); - if (StrUtil.isNotBlank(op)){ - int i = Integer.parseInt(op); - sortList.add(i); - } - }); - if (CollUtil.isNotEmpty(sortList)){ - List<Integer> collect2 = sortList.stream().sorted().collect(Collectors.toList()); - minOP = collect2.get(0); - } - } - - //鎵�鏈夋斁琛屽伐浣� - //杩囩珯璁板綍闄ゅ幓杩斾慨璁板綍灏辨槸浼�2锛岃繑淇暟鎹強鍚庨潰鍗犱綅鏁版嵁浼�1 - List<String> collect3 = daPassingStationCollections.stream().map(DaPassingStationCollection::getLocationCode).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(collect1)){ - collect3 = collect3.stream().filter(x -> !collect1.contains(x)).collect(Collectors.toList()); - } - if (CollUtil.isNotEmpty(collect3)){ - collect3.forEach(x -> { - ReadWriteEntity readWriteEntity = new ReadWriteEntity(); - readWriteEntity.setIdentifier(x); - readWriteEntity.setValue(2); - writeList.add(readWriteEntity); - }); - } - //闇�鐢熶骇宸ヤ綅 - List<String> collect4 = allProcessCoed; - if (CollUtil.isNotEmpty(collect3)){ - List<String> finalCollect = collect3; - collect4 = allProcessCoed.stream().filter(x -> !finalCollect.contains(x)).collect(Collectors.toList()); - } - if (CollUtil.isNotEmpty(collect4)){ - //鏁版嵁搴撴煡璇㈠嚭鐨勫伐浣� - collect4.forEach(x -> { - ReadWriteEntity readWriteEntity = new ReadWriteEntity(); - readWriteEntity.setIdentifier(x); - readWriteEntity.setValue(1); - writeList.add(readWriteEntity); - }); - } -// List<String> collect2 = allProcessCoed; -// if (CollUtil.isNotEmpty(rmRepairRecords)){ -// //鏁版嵁搴撴煡璇㈠嚭鐨勫伐浣� -// rmRepairRecords.forEach(x -> { -// ReadWriteEntity readWriteEntity = new ReadWriteEntity(); -// readWriteEntity.setIdentifier(x.getProcessesCode()); -// readWriteEntity.setValue(1); -// writeList.add(readWriteEntity); -// }); -// collect2 = allProcessCoed.stream().filter(x -> !collect1.contains(x)).collect(Collectors.toList()); -// } -// if (CollUtil.isNotEmpty(collect2)){ -// collect2.forEach(x -> { -// ReadWriteEntity readWriteEntity = new ReadWriteEntity(); -// readWriteEntity.setIdentifier(x); -// readWriteEntity.setValue(2); -// writeList.add(readWriteEntity); -// }); -// } - String[] parts = Node.split("[.]"); - String a=passingStationCollectionServiceImpl.SelectSN(SNCode,parts[1]); - if (StrUtil.isNotBlank(a)){ - int input = Integer.parseInt(a); - ReadWriteEntity entity = new ReadWriteEntity(parts[0]+"."+parts[1]+".CodeCheckFeed", input); - writeList.add(entity); - } - ReadWriteEntity readWriteEntity = new ReadWriteEntity(); - readWriteEntity.setIdentifier("Repair_sign"); - readWriteEntity.setValue(minOP); - writeList.add(readWriteEntity); - if (CollUtil.isNotEmpty(writeList)){ - List<ReadWriteEntity> tempList = new ArrayList<>(); - for (int i = 0; i < writeList.size(); i++) { - tempList.add(writeList.get(i)); - if (tempList.size()>10){ - miloService.writeToOpcByte(tempList); - log.info("鍐欏叆杩斾慨锛�,{}",tempList); - tempList = new ArrayList<>(); + List<Integer> sortList = new ArrayList<>(); + collect1.stream().forEach(x ->{ + String op = x.replace("OP", ""); + if (StrUtil.isNotBlank(op)){ + int i = Integer.parseInt(op); + sortList.add(i); + } + }); + if (CollUtil.isNotEmpty(sortList)){ + List<Integer> collect2 = sortList.stream().filter(Objects::nonNull).sorted().collect(Collectors.toList()); + minOP = collect2.get(0); } } - if (CollUtil.isNotEmpty(tempList)){ - miloService.writeToOpcByte(tempList); - log.info("鍐欏叆杩斾慨锛�,{}",tempList); + //鑾峰彇杩囩珯璁板綍鐨勬渶澶у伐浣� + String maxCode = null; + if (CollUtil.isNotEmpty(daPassingStationCollections)){ + List<DaPassingStationCollection> collect2 = daPassingStationCollections.stream().filter(x -> "涓嶅悎鏍�".equals(x.getOutRsSign())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect2)){ + DaPassingStationCollection lastOne = collect2.get(collect2.size() - 1); + maxCode = lastOne.getLocationCode(); + }else { + DaPassingStationCollection lastOne = daPassingStationCollections.get(daPassingStationCollections.size() - 1); + maxCode = lastOne.getLocationCode(); + } + } - - + //鎵�鏈夋斁琛屽伐浣� + List<String> passStation = new ArrayList<>(); + //鎵�鏈夌敓浜у伐浣� + List<String> productStation = new ArrayList<>(); + //鏈�澶у伐浣嶇紪鍙� + Integer maxCodeNum = 0; + if (StrUtil.isNotEmpty(maxCode)){ + String finalMaxCode = maxCode; + //鑾峰彇褰撳墠宸ヤ綅瀵瑰簲宸ユ鍙� + List<String> collect2 = bsTechnologyRouteChildInfos.stream() + .filter(x -> x.getProcessesCode().equals(finalMaxCode)) + .map(BsTechnologyRouteChildInfo::getStepNo).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect2)){ + String s = collect2.get(0); + if (StrUtil.isNotBlank(s)){ + maxCodeNum = Integer.parseInt(s); + } + } + if (CollUtil.isNotEmpty(bsTechnologyRouteChildInfos)){ + bsTechnologyRouteChildInfos.forEach(x -> { + x.setStepNoNum(Integer.parseInt(x.getStepNo())); + }); + Integer finalMaxCodeNum = maxCodeNum; + //鍕鹃�夌殑杩斾慨宸ヤ綅涓渶澶х殑宸ヤ綅涔嬪悗鐨勫伐浣�----1 + List<BsTechnologyRouteChildInfo> collect3 = bsTechnologyRouteChildInfos.stream() + .filter(x -> x.getStepNoNum() > finalMaxCodeNum).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect3)){ + //闇�瑕佺敓浜� + productStation.addAll(collect3.stream().map(BsTechnologyRouteChildInfo::getProcessesCode).collect(Collectors.toList())); + } + //浠庣涓�涓伐浣嶅埌杩斾慨鐨勬渶澶у伐浣嶄箣闂达紝 + //鍕鹃�変簡杩斾慨鏍囪鐨勯渶瑕佺敓浜�---1锛屾湭鍕鹃�夌殑涓嶇敓浜�---2 + productStation.addAll(collect1); + } + } + if (CollUtil.isNotEmpty(productStation)){ + List<String> collect2 = allProcessCoed.stream().filter(x -> !productStation.contains(x)).collect(Collectors.toList()); + passStation.addAll(collect2); + } + String[] parts = Node.split("[.]"); + String par = parts[0]+"."+parts[1]; + if (CollUtil.isNotEmpty(passStation)){ + passStation.forEach(x -> { + ReadWriteEntity readWriteEntity = new ReadWriteEntity(); + readWriteEntity.setIdentifier(par+"."+x); + readWriteEntity.setValue(2); + writeList.add(readWriteEntity); + }); + } + if (CollUtil.isNotEmpty(productStation)){ + productStation.forEach(x -> { + ReadWriteEntity readWriteEntity = new ReadWriteEntity(); + readWriteEntity.setIdentifier(par+"."+x); + readWriteEntity.setValue(1); + writeList.add(readWriteEntity); + }); + } + //瀵筄P755鍋氱壒娈婂鐞� + List<ReadWriteEntity> OP755List = new ArrayList<>(); + if (OPCElement.OP755_ZZ_CODE_CHECK.equals(Node)){ + List<String> patchList = new ArrayList<>(); + patchList.add(par+".OP740"); + patchList.add(par+".OP760"); + patchList.add(par+".OP770"); + patchList.add(par+".OP780"); + for (String s : patchList) { + ReadWriteEntity readWriteEntity = new ReadWriteEntity(); + readWriteEntity.setIdentifier(s); + readWriteEntity.setValue(0); + OP755List.add(readWriteEntity); + } + } + ReadWriteEntity readWriteEntity = new ReadWriteEntity(); + readWriteEntity.setIdentifier(parts[0]+"."+parts[1]+".Repair_sign"); + readWriteEntity.setValue(minOP); + miloService.writeToOpcShort(readWriteEntity); + miloService.writeToOpcByte(writeList); + logger.info("{}杩斾慨鍐欏叆锛�,{}",SNCode,writeList); + if (CollUtil.isNotEmpty(OP755List)){ + miloService.writeToOpcByte(OP755List); + } } - miloService.writeToOpcByte(writeList); + } @@ -325,7 +571,26 @@ allCollectParamList.put(gatherAddress,list); } } + //60鍙噰闆嗚�佽溅鍨� + if (OPCElement.OP060_SAVE_REQUEST.equals(Node) || OPCElement.OP060_SAVE_REQUEST_LAST.equals(Node)){ + String s = productNewFlag(SNCode); + if ("280".equals(s) || "380".equals(s) || "196".equals(s) || "296".equals(s)){ + list = new ArrayList<>(); + } + } + //80銆�100鍙噰闆嗘柊杞﹀瀷 + if (OPCElement.OP080_SAVE_REQUEST.equals(Node) + || OPCElement.OP080_SAVE_REQUEST_LAST.equals(Node) + || OPCElement.OP100_SAVE_REQUEST.equals(Node) + || OPCElement.OP100_SAVE_REQUEST_LAST.equals(Node)){ + String s = productNewFlag(SNCode); + if (StrUtil.isNotEmpty(s)){ + if (!"280".equals(s) && !"380".equals(s) && !"196".equals(s)){ + list = new ArrayList<>(); + } + } + } List<String> nodeIdList = list.stream().map(info -> { String nodeid = info.getGatherAddress(); return nodeid; @@ -333,27 +598,40 @@ List<ReadWriteEntity> readWriteEntityList = new ArrayList<>(); if(CollUtil.isNotEmpty(nodeIdList)){ - long time1 = new Date().getTime(); + //long time1 = new Date().getTime(); readWriteEntityList = miloService.readFromOpcUa(nodeIdList); - long time2 = new Date().getTime(); - log.info("璇诲彇鐐逛綅鑺辫垂鏃堕棿锛歿},",time2-time1); + //long time2 = new Date().getTime(); + //logger.info("璇诲彇鐐逛綅鑺辫垂鏃堕棿锛歿},",time2-time1); } //杩斿洖plc淇濆瓨鎴愬姛 if (parts.length==3){ if ("SaveRequest".equals(parts[2])){ + if (OPCElement.OP050_SAVE_REQUEST.equals(Node)){ + cleanForm050(Node); + } else if (OPCElement.OP060_SAVE_REQUEST.equals(Node)){ + cleanForm060(Node); + } ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeed", 1); miloService.writeToOpcByte(entity); }else if ("SaveRequestLast".equals(parts[2])){ + if (OPCElement.OP050_SAVE_REQUEST_LAST.equals(Node)){ + cleanForm050(Node); + } else if (OPCElement.OP060_SAVE_REQUEST_LAST.equals(Node)){ + cleanForm060(Node); + } ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeedLast", 1); miloService.writeToOpcByte(entity); } - log.info("-------璇锋眰杩斿洖,{}鐨凷aveFeedLast鐨勪俊鍙�",Node); - log.info("-------璇锋眰杩斿洖-----,{}",LocalDateTime.now()); + logger.info("{}淇濆瓨璇锋眰淇″彿杩斿洖,MES->PLC鐨凷aveFeedLast淇″彿",Node); + //logger.info("-------璇锋眰杩斿洖-----,{}",LocalDateTime.now()); } + + BsOrderScheduling bsOrderScheduling=bsOrderSchedulingService.selectBsOrderSchedulingSNCode(SNCode); + List<DaParamCollection> daParamCollectionlist = new ArrayList<>(); if (CollUtil.isNotEmpty(nodeIdList)){ for(int i=0;i<nodeIdList.size();i++){ - if(!readWriteEntityList.get(i).getValue().toString().equals("0.0")){ + if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue()) && !readWriteEntityList.get(i).getValue().toString().equals("0.0")){ DaParamCollection ParamCollection = new DaParamCollection(); ParamCollection.setParamCode(readWriteEntityList.get(i).getIdentifier().toString().split("[.]")[2]); ParamCollection.setLocationCode(parts[1]); @@ -363,23 +641,32 @@ ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString()); } ParamCollection.setSfcCode(SNCode); - ParamCollection.setParamName(list.get(i).getCollectParameterName()); + ParamCollection.setParamName(list.get(i).getParameterSetName()); ParamCollection.setParamUpper(list.get(i).getParamUpper()); ParamCollection.setParamLower(list.get(i).getParamLower()); ParamCollection.setUnit(list.get(i).getCollectParameterUnit()); ParamCollection.setState("鍚堟牸"); ParamCollection.setType(list.get(i).getCollectParameterType()); ParamCollection.setCollectionTime(new Date()); + ParamCollection.setWorkOrderNo(bsOrderScheduling.getOrderNo()); daParamCollectionlist.add(ParamCollection); } } daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist); - log.info("-------淇濆瓨鏁版嵁瀹屾垚---------"); + logger.info("{}鍙戝姩鏈猴紙{}锛夐噰闆嗘暟鎹繚瀛樺畬鎴�",SNCode,Node); } - - - + Object ProductStatus = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".ProductStatus").getValue(); + String str1="鍚堟牸" ; + if (ObjectUtil.isNotEmpty(ProductStatus)){ + logger.info("ProductStatus,{}",ProductStatus.toString()); + String productStatusString = ProductStatus.toString(); + if (productStatusString.contains("2") || productStatusString.contains("3")){ + str1="涓嶅悎鏍�"; + }else { + str1="鍚堟牸"; + } + } Long beatTime = 0L; if (ObjectUtil.isNotEmpty(object)){ String str = object.toString(); @@ -387,16 +674,176 @@ } DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection(); PassingStationCollection.setSfcCode(SNCode); + PassingStationCollection.setProductCode(bsOrderScheduling.getModel()); PassingStationCollection.setLocationCode(parts[1]); PassingStationCollection.setOutboundTime(new Date()); PassingStationCollection.setInboundTime(new Date(new Date().getTime()-beatTime*1000)); PassingStationCollection.setCollectionTime(new Date()); PassingStationCollection.setCreateTime(new Date()); PassingStationCollection.setBeatTime(beatTime.toString()); - PassingStationCollection.setOutRsSign("鍚堟牸"); + PassingStationCollection.setOutRsSign(str1); + PassingStationCollection.setWorkOrderNo(bsOrderScheduling.getOrderNo()); passingStationCollectionServiceImpl.insertDaPassingStationCollection(PassingStationCollection); - log.info("-------淇濆瓨杩囩珯璁板綍鏁版嵁瀹屾垚---------"); + logger.info("{}鍙戝姩鏈猴紙{}锛夎繃绔欐暟鎹繚瀛樺畬鎴�",SNCode,Node); + //鏇存柊宸ュ崟鐘舵�� + if ("OP790".equals(parts[1])) { + //bsOrderScheduling.setReport20("0"); + bsOrderScheduling.setProductionStatus("3"); + bsOrderScheduling.setFinalAssemblyOfflineTime(new Date()); + }else if("OP050".equals(parts[1])){ + bsOrderScheduling.setReport10("0"); + bsOrderScheduling.setProductionStatus("2"); + bsOrderScheduling.setBoxClosingOnlineTime(new Date()); + }else if("OP120".equals(parts[1])){ + bsOrderScheduling.setReport20("0"); + bsOrderScheduling.setFinalAssemblyLaunchTime(new Date()); + bsOrderScheduling.setClosingBoxOfflineTime(new Date()); + } + bsOrderScheduling.setQualityStatus(str1); + bsOrderScheduling.setCurrentWorkstation(parts[1]); + bsOrderSchedulingService.updateBsOrderScheduling(bsOrderScheduling); } } + + + public String productNewFlag(String SNCode){ + String type; + if (SNCode.startsWith("280")){ + type = "280"; + } else if (SNCode.startsWith("380")){ + type = "380"; + } else if (SNCode.startsWith("196")){ + type = "196"; + } else if (SNCode.startsWith("296")){ + type = "296"; + }else { + type = "oldType"; + } + return type; + } + + public void tile2(String Node) throws Exception { + String[] parts = Node.split("[.]"); + Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code").getValue(); + if (null != SNCodeObject) { + String SNCode = SNCodeObject.toString(); + String productNewFlag = productNewFlag(SNCode); + if ("380".equals(productNewFlag)){ + ProductNewPassStation passStation = new ProductNewPassStation(); + passStation.setSfcCode(SNCode); + List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(passStation); + if (CollUtil.isNotEmpty(productPassStationList)){ + ProductNewPassStation productNewPassStation = productPassStationList.get(0); + String boxCode = productNewPassStation.getBoxCode(); + String productType = productNewPassStation.getProductType(); + log.info("鍙戦�佸埌OP040鐨勯〉闈㈡暟鎹畃roductType,{}",productType); + log.info("鍙戦�佸埌OP040鐨勯〉闈㈡暟鎹産oxCode,{}",boxCode); + passingStationCollectionServiceImpl.sendMessage(productType+"*"+boxCode, "OP040"); + } + } else if ("280".equals(productNewFlag)){ + + } else if ("196".equals(productNewFlag)){ + ReadWriteEntity entity6 = new ReadWriteEntity("CFL4HX.OP040.CodeComplete", 1); + miloService.writeToOpcByte(entity6); +// ProductNewPassStation passStation = new ProductNewPassStation(); +// passStation.setSfcCode(SNCode); +// List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(passStation); +// if (CollUtil.isNotEmpty(productPassStationList)){ +// ProductNewPassStation productNewPassStation = productPassStationList.get(0); +// String boxCode = productNewPassStation.getBoxCode(); +// String productType = productNewPassStation.getProductType(); +// log.info("鍙戦�佸埌OP040鐨勯〉闈㈡暟鎹畃roductType,{}",productType); +// log.info("鍙戦�佸埌OP040鐨勯〉闈㈡暟鎹産oxCode,{}",boxCode); +// passingStationCollectionServiceImpl.sendMessage(productType+"*"+boxCode, "OP040"); +// } + } + } + } + + + public void cleanForm(String Node) throws Exception { + String[] parts = Node.split("[.]"); + Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code").getValue(); + if (ObjectUtils.isNotEmpty(SNCodeObject)){ + String snCode = SNCodeObject.toString(); + String s = productNewFlag(snCode); + if ("280".equals(s) || "380".equals(s)){ + log.info("鍙戦�佸埌OP030鐨勬竻闄�"); + passingStationCollectionServiceImpl.sendMessage("clean","OP030"); + } + } + + } + + public void cleanForm040(String Node) throws Exception { + String[] parts = Node.split("[.]"); + Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code").getValue(); + if (ObjectUtils.isNotEmpty(SNCodeObject)){ + String snCode = SNCodeObject.toString(); + String s = productNewFlag(snCode); + if ("280".equals(s) || "380".equals(s)){ + log.info("鍙戦�佸埌OP040鐨勯〉闈㈡竻闄�"); + passingStationCollectionServiceImpl.sendMessage("clean*clean","OP040"); + } + } + } + + public void cleanForm050(String Node) throws Exception { + String[] parts = Node.split("[.]"); + Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code").getValue(); + if (ObjectUtils.isNotEmpty(SNCodeObject)){ + String snCode = SNCodeObject.toString(); + String s = productNewFlag(snCode); + if ("280".equals(s) || "380".equals(s)){ + ProductNewPassStation passStation = new ProductNewPassStation(); + passStation.setSfcCode(snCode); + List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(passStation); + if (CollUtil.isNotEmpty(productPassStationList)){ + productNewPassStationService.updatePassStationBySfcCode(snCode); + } + passingStationCollectionServiceImpl.sendMessage("clean*clean","OP050"); + } + } + } + + public void cleanForm060(String Node) throws Exception { + String[] parts = Node.split("[.]"); + Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code").getValue(); + if (ObjectUtils.isNotEmpty(SNCodeObject)){ + String snCode = SNCodeObject.toString(); + String s = productNewFlag(snCode); + if ("280".equals(s) || "380".equals(s)){ + passingStationCollectionServiceImpl.sendMessage("clean*clean","OP060"); + } + } + } + + + public void checkBoxRod(String Node) throws Exception { + String[] parts = Node.split("[.]"); + Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code").getValue(); + if (null != SNCodeObject) { + String SNCode = SNCodeObject.toString(); + String s = productNewFlag(SNCode); + if ("280".equals(s) || "380".equals(s)){ + sendTo060(SNCode,parts); + } + } + } + + private void sendTo060(String SNCode, String[] parts) throws Exception { + String boxCode = ""; + String rodCode = ""; + ProductNewPassStation productNewPassStation = new ProductNewPassStation(); + productNewPassStation.setSfcCode(SNCode); + List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(productNewPassStation); + if (CollUtil.isNotEmpty(productPassStationList)){ + ProductNewPassStation passStation = productPassStationList.get(0); + boxCode = passStation.getBoxCode(); + rodCode = passStation.getRodCode(); + } + //閰嶇摝鏍¢獙 + passingStationCollectionServiceImpl.sendMessage(boxCode + "*" + rodCode + "*" + SNCode, parts[1]); + } } -- Gitblit v1.9.3