春风项目四线(合箱线、总装线)
wujian
2024-08-25 a5383f185d9ea618cfed8e887dfc020f1b23b64b
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -88,7 +88,7 @@
    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、扫码枪数据回传
@@ -169,23 +169,48 @@
                            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");
@@ -238,6 +263,27 @@
                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";
                }
@@ -419,7 +465,7 @@
                    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()));