zjj
2024-05-15 a6b762e09d8a7de57a7a76d3dfc3dd23b969ae1e
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2521,6 +2521,9 @@
                //工位一任务
                for (RgvSlave.Sta inStn :  rgvSlave.getInStn()){
                    if (rgvSlave.getId() == 1 && inStn.getSourceStaNo() == 2114){
                        continue;
                    }
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
                    StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
                    if (staProtocol == null) {
@@ -2553,6 +2556,9 @@
                        if (souSta1 == inStn.getSourceStaNo()){
                            continue;
                        }
                        if (rgvSlave.getId() == 1 && inStn.getSourceStaNo() == 1014){
                            continue;
                        }
                        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
                        StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
                        if (staProtocol == null) {
@@ -2569,7 +2575,7 @@
                                    continue;
                                }
                                workNo2 = wrkMast.getWrkNo();
                                souSta2 = inStn.getSourceStaNo().shortValue();
                                souSta2 = Utils.getRgvStaNo(rgvSlave.getId(),staProtocol.getSiteId());
                                sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
                                work2 = true;
                                devpThread.setPakMk(inStn.getSourceStaNo(),false);
@@ -2646,16 +2652,37 @@
            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) {
                try {
                    Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
                    WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                    if (Cools.isEmpty(wrkMastSta1)){
                        log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                    }else {
                        if (wrkMastSta1.getWrkType() == 8 ){
                            wrkMastSta1.setWrkSts(3);
                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                    boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3, new RgvCommand()));
                    log.info("{}号rgv工位一工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
                    if (offer){
                        //完成rgv任务
                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                        if (Cools.isEmpty(wrkMastSta1)){
                            log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                        }else {
                            if (wrkMastSta1.getWrkType() == 8 ){
                                wrkMastSta1.setWrkSts(3);
                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                            }
                        }
                        //完成工作档任务
                        if (rgvSlave.getId() != 1){
                            WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1());
                            if (Cools.isEmpty(wrkMast)){
                                log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                            }else {
                                if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){
                                    Date date = new Date();
                                    wrkMast.setWrkSts(14L);
                                    wrkMast.setModiTime(date);
                                    wrkMastService.updateById(wrkMast);
                                }
                            }
                        }
                    }
                }catch (Exception e){
                    log.error("完成{}号车工位一任务出错!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
@@ -2663,26 +2690,47 @@
                }
                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand()));
                log.info("{}号rgv工位一工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
            }
            //工位二任务完成
            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded2() == 0) {
                try {
                    Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2());
                    WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                    if (Cools.isEmpty(wrkMastSta1)){
                        log.error("完成{}号车工位二任务未找到对应工作任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                    }else {
                        if (wrkMastSta1.getWrkType() == 9 ){
                            wrkMastSta1.setWrkSts(3);
                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                        }else if (wrkMastSta1.getWrkType() == 1){
                            wrkMastSta1.setWrkSts(3);
                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                    boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4, new RgvCommand()));
                    log.info("{}号rgv工位二工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
                    if (offer){
                        //完成rgv任务
                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no2", rgvProtocol.getTaskNo2());
                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                        if (Cools.isEmpty(wrkMastSta1)){
                            log.error("完成{}号车工位二任务未找到对应工作任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                        }else {
                            if (wrkMastSta1.getWrkType() == 9 ){
                                wrkMastSta1.setWrkSts(3);
                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                            }else if (wrkMastSta1.getWrkType() == 1){
                                wrkMastSta1.setWrkSts(3);
                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                            }
                        }
                        //完成工作档任务
                        if (rgvSlave.getId() != 1){
                            WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2());
                            if (Cools.isEmpty(wrkMast)){
                                log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                            }else {
                                if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){
                                    Date date = new Date();
                                    wrkMast.setWrkSts(14L);
                                    wrkMast.setModiTime(date);
                                    wrkMastService.updateById(wrkMast);
                                }
                            }
                        }
                    }
                }catch (Exception e){
                    log.error("完成{}号车工位一任务出错!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                    continue;
@@ -2690,8 +2738,7 @@
                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
                log.info("{}号rgv工位二工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
            }
        }
    }
@@ -2712,7 +2759,7 @@
            //工位一任务完成
            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN1 && rgvProtocol.getLoaded1() == 1) {
                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1());
                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvSlave.getId(), rgvProtocol.getTaskNo1());
                WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1());
                if (Cools.isEmpty(wrkMastSta)){
                    log.error("未查询到rgv工作任务,rgv编号{},工作号{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
@@ -2731,7 +2778,12 @@
                    }
                    if (staProtocol.isAutoing() && !staProtocol.isLoading()  && staProtocol.isPakMk()){
                        staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue());
                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                        if (rgvSlave.getId() == 3 && outStn.getStaPlcId() == 6){
                            staProtocol.setStaNo((short)2401);
                        }else {
                            staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                        }
                        MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol));
                    }
                }
@@ -2739,16 +2791,16 @@
            //工位二任务完成
            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded2() == 1) {
                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
                WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2());
                if (Cools.isEmpty(wrkMastSta)){
                    log.error("未查询到rgv工作任务,rgv编号{},工作号{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                    continue;
                }
                for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
                    if (wrkMastSta.getStaEnd() != outStn.getStaNo()){
                    if (!Objects.equals(Utils.getStaNo(rgvSlave.getId(), wrkMastSta.getStaEnd()), outStn.getStaNo())){
                        continue;
                    }
                    }//判断是否为工作档站点
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId());
                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo());
                    if (staProtocol == null) {
@@ -2868,16 +2920,37 @@
            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) {
                try {
                    Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
                    WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                    if (Cools.isEmpty(wrkMastSta1)){
                        log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                    }else {
                        if (wrkMastSta1.getWrkType() == 8 ){
                            wrkMastSta1.setWrkSts(3);
                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                    boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3, new RgvCommand()));
                    log.info("{}号rgv工位一工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
                    if (offer){
                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                        if (Cools.isEmpty(wrkMastSta1)){
                            log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                        }else {
                            if (wrkMastSta1.getWrkType() == 8 ){
                                wrkMastSta1.setWrkSts(3);
                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                            }
                        }
                        //完成工作档任务
                        WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1());
                        if (Cools.isEmpty(wrkMast)){
                            log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                        }else {
                            if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){
                                Date date = new Date();
                                wrkMast.setWrkSts(14L);
                                wrkMast.setModiTime(date);
                                wrkMastService.updateById(wrkMast);
                            }
                        }
                    }
                }catch (Exception e){
                    log.error("完成{}号车工位一任务出错!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
@@ -2885,26 +2958,44 @@
                }
                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand()));
                log.info("{}号rgv工位一工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
            }
            //工位二任务完成
            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded2() == 0) {
                try {
                    Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2());
                    WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                    if (Cools.isEmpty(wrkMastSta1)){
                        log.error("完成{}号车工位二任务未找到对应工作任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                    }else {
                        if (wrkMastSta1.getWrkType() == 9 ){
                            wrkMastSta1.setWrkSts(3);
                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                        }else if (wrkMastSta1.getWrkType() == 1){
                            wrkMastSta1.setWrkSts(3);
                            wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                    boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4, new RgvCommand()));
                    log.info("{}号rgv工位二工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
                    if (offer){
                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2());
                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                        if (Cools.isEmpty(wrkMastSta1)){
                            log.error("完成{}号车工位二任务未找到对应工作任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                        }else {
                            if (wrkMastSta1.getWrkType() == 9 ){
                                wrkMastSta1.setWrkSts(3);
                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                            }else if (wrkMastSta1.getWrkType() == 1){
                                wrkMastSta1.setWrkSts(3);
                                wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
                            }
                        }
                        //完成工作档任务
                        WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2());
                        if (Cools.isEmpty(wrkMast)){
                            log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
                        }else {
                            if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){
                                Date date = new Date();
                                wrkMast.setWrkSts(14L);
                                wrkMast.setModiTime(date);
                                wrkMastService.updateById(wrkMast);
                            }
                        }
                    }
                }catch (Exception e){
                    log.error("完成{}号车工位一任务出错!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
@@ -2913,17 +3004,16 @@
                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
                log.info("{}号rgv工位二工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
            }
        }
    }
    public boolean rgvTaskSave(RgvCommand command){
        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1());
        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
//        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1());
        List<WrkMastSta> wrkMastSta1 = wrkMastStaService.selectBywrkNoHistoricalTasks(command.getRgvNo(),command.getTaskNo1(),command.getTaskNo2());
        if (!Cools.isEmpty(wrkMastSta1)){
            wrkMastStaService.delete(wrkMastStaWrapper);
            wrkMastStaService.deleteBatchIds(wrkMastSta1);
        }
        WrkMastSta wrkMastSta = new WrkMastSta();
        wrkMastSta.setWrkNo(Long.valueOf(command.getTaskNo1()));