| | |
| | | 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")){ |
| | | String[] split = snCode.split(StrUtil.SPACE); |
| | | if (split.length>1){ |
| | | ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.OP020.PrintSN1", split[0]); |
| | | 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 entity2 = new ReadWriteEntity("CFL4HX.OP020.PrintSN2", split[1]); |
| | | OPCUaSubscription.miloService.writeToOpcByte(entity2);//写完成 |
| | | ReadWriteEntity entity3 = new ReadWriteEntity("CFL4HX.OP020.SendSNDone", 1); |
| | | 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"); |
| | | ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.OP030.SaveFeed", 1); |
| | | OPCUaSubscription.miloService.writeToOpcByte(entity2);//写完成 |
| | | cleanForm("CFL4HX.OP030.SaveFeed"); |
| | | |
| | | } else if (OPCElement.OP040_SAVE_REQUEST.equals(identifier)) { |
| | | cleanForm040(OPCElement.OP040_SAVE_REQUEST); |
| | | ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.OP040.SaveFeed", 1); |
| | |
| | | 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"; |
| | | } |
| | |
| | | } |
| | | 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); |
| | |
| | | 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())); |
| | |
| | | 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()); |
| | |
| | | } |
| | | 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)); |
| | |
| | | ProductNewPassStation productNewPassStation = productPassStationList.get(0); |
| | | String boxCode = productNewPassStation.getBoxCode(); |
| | | String productType = productNewPassStation.getProductType(); |
| | | log.info("发送到OP040的页面数据productType,{}",productType); |
| | | log.info("发送到OP040的页面数据boxCode,{}",boxCode); |
| | | passingStationCollectionServiceImpl.sendMessage(productType+"*"+boxCode, "OP040"); |
| | | } |
| | | } else if ("280".equals(productNewFlag)){ |
| | |
| | | String snCode = SNCodeObject.toString(); |
| | | String s = productNewFlag(snCode); |
| | | if ("280".equals(s) || "380".equals(s)){ |
| | | log.info("发送到OP030的清除"); |
| | | passingStationCollectionServiceImpl.sendMessage("clean","OP030"); |
| | | } |
| | | } |
| | |
| | | String snCode = SNCodeObject.toString(); |
| | | String s = productNewFlag(snCode); |
| | | if ("280".equals(s) || "380".equals(s)){ |
| | | log.info("发送到OP040的页面清除"); |
| | | passingStationCollectionServiceImpl.sendMessage("clean*clean","OP040"); |
| | | } |
| | | } |