| | |
| | | public void onSubscribe(String identifier, Object value) { |
| | | String ecpStr = "";//异常记录标记 |
| | | try { |
| | | if(null != value && "1".equals(value.toString())) { |
| | | if(null != value && "1".equals(value.toString())) { |
| | | //1、检索SN号 |
| | | //2、过站参数采集 |
| | | //3、扫码枪数据回传 |
| | |
| | | Object SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP020.Code").getValue(); |
| | | if (ObjectUtil.isNotEmpty(SNCodeObject)){ |
| | | String snCode = SNCodeObject.toString(); |
| | | 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); |
| | | 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 { |
| | | ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP020.PrintSN1", snCode); |
| | | OPCUaSubscription.miloService.writeToOpcByte(entity);//写完成 |
| | | ReadWriteEntity entity3 = new ReadWriteEntity("CFL4HX.OP020.SendSNDone", 1); |
| | | OPCUaSubscription.miloService.writeToOpcByte(entity3);//写完成 |
| | | 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"); |
| | |
| | | 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)){ |
| | | 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"; |
| | | } |
| | |
| | | Integer finalMaxCodeNum = maxCodeNum; |
| | | //勾选的返修工位中最大的工位之后的工位----1 |
| | | List<BsTechnologyRouteChildInfo> collect3 = bsTechnologyRouteChildInfos.stream() |
| | | .filter(x -> x.getStepNoNum() >= finalMaxCodeNum).collect(Collectors.toList()); |
| | | .filter(x -> x.getStepNoNum() > finalMaxCodeNum).collect(Collectors.toList()); |
| | | if (CollUtil.isNotEmpty(collect3)){ |
| | | //需要生产 |
| | | productStation.addAll(collect3.stream().map(BsTechnologyRouteChildInfo::getProcessesCode).collect(Collectors.toList())); |