#
1
21 小时以前 1bfa44facba36747d1caffab6bff986ccd7f36a9
#
3个文件已修改
220 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinParam.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinParam.java
@@ -36,7 +36,7 @@
                return;
            case 1:
                getAgvTaskAssignmentParam0(basAgvMast);
                indBind = "1";
                indBind = "0";
                return;
            case 2:
                getAgvTaskAssignmentParam1(basAgvMast);
@@ -44,7 +44,7 @@
                return;
            case 3:
                getAgvTaskAssignmentParam1(basAgvMast);
                indBind = "0";
                indBind = "1";
                return;
            default:
                return;
@@ -55,19 +55,28 @@
    public void getAgvTaskAssignmentParam0(BasAgvMast basAgvMast) {
        BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
        this.reqCode = basAgvMast.getTaskNo() + "-" + System.currentTimeMillis();
        BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo()));
        this.positionCode = basAgvLocNoSou.getAgvLocNo();
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo()));
        this.stgBinCode = basAgvLocNoEnd.getAgvLocNo();
        BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(
                new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo())
        );
        this.positionCode = basAgvLocNoSou != null ? basAgvLocNoSou.getAgvLocNo() : "";
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(
                new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo())
        );
        this.stgBinCode = basAgvLocNoEnd != null ? basAgvLocNoEnd.getAgvLocNo() : "";
    }
    public void getAgvTaskAssignmentParam1(BasAgvMast basAgvMast) {
        BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
        this.reqCode = basAgvMast.getTaskNo() + "-" + System.currentTimeMillis();
        BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo()));
        this.positionCode = basAgvLocNoSou.getAgvLocNo();
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo()));
        this.stgBinCode = basAgvLocNoEnd.getAgvLocNo();
//        BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(
//                new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getLocNo())
//        );
//        this.positionCode = basAgvLocNoSou != null ? basAgvLocNoSou.getAgvLocNo() : "";
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(
                new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getSourceStaNo())
        );
        this.stgBinCode = basAgvLocNoEnd != null ? basAgvLocNoEnd.getAgvLocNo() : "";
    }
}
src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
@@ -35,17 +35,30 @@
        switch (basAgvMast.getIoType()){
            case 0:
                getAgvTaskAssignmentParam0(basAgvMast);
                taskTyp = "1FQ3";
                if(basAgvMast.getFloorNo() == 1){
                    taskTyp = "1FQ3";
                }else if(basAgvMast.getFloorNo() == 2){
                    taskTyp = "2FRK";
                }else{
                    taskTyp = "4FRK";
                }
                ctnrTyp = "1";
                return;
            case 1:
                getAgvTaskAssignmentParam1(basAgvMast);
//                taskTyp = "1FQ2";
                taskTyp = basAgvMast.getDevpId()==1?"1FYK":"";
                ctnrTyp = "1";
                return;
            case 2:
                getAgvTaskAssignmentParam2(basAgvMast);
                taskTyp = "1FQ1";
                if(basAgvMast.getFloorNo() == 1){
                    taskTyp = "1FQ1";
                }else if(basAgvMast.getFloorNo() == 2){
                    taskTyp = "2FCK";
                }else{
                    taskTyp = "4FCK";
                }
                ctnrTyp = "1";
                return;
            case 3:
@@ -61,67 +74,82 @@
    public void getAgvTaskAssignmentParam0(BasAgvMast basAgvMast) {
        BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
        this.reqCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
        SnowflakeIdWorker snowflakeIdWorker = SpringUtils.getBean(SnowflakeIdWorker.class);
        long nextId = snowflakeIdWorker.nextId();
        this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
        PositionCodePathClass positionCodePathClassEnd = new PositionCodePathClass();
        BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo()));
        positionCodePathClassEnd.setPositionCode(basAgvLocNoSou.getAgvLocNo());
        this.positionCodePath.add(positionCodePathClassEnd);
        PositionCodePathClass positionCodePathClassSou = new PositionCodePathClass();
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo()));
        positionCodePathClassSou.setPositionCode(basAgvLocNoEnd.getAgvLocNo());
        this.positionCodePath.add(positionCodePathClassSou);
        this.reqCode = basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp();
        this.taskCode = basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp();
        String sourceAgvLoc = getAgvLocNoOrDefault(basAgvLocNoService, "loc_no", basAgvMast.getSourceLocNo());
        PositionCodePathClass sou = new PositionCodePathClass();
        sou.setPositionCode(sourceAgvLoc);
        sou.setType(basAgvMast.getFloorNo()!=1?"00":"05");
        this.positionCodePath.add(sou);
        String endAgvLoc = getAgvLocNoOrDefault(basAgvLocNoService, "sta_no", basAgvMast.getStaNo());
        PositionCodePathClass end = new PositionCodePathClass();
        end.setType(basAgvMast.getFloorNo()!=1?"00":"05");
        end.setPositionCode(endAgvLoc);
        this.positionCodePath.add(end);
    }
    public void getAgvTaskAssignmentParam1(BasAgvMast basAgvMast) {
        BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
        this.reqCode = basAgvMast.getTaskNo().toString();
        this.reqCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
        this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
        PositionCodePathClass positionCodePathClassSou = new PositionCodePathClass();
        BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo()));
        positionCodePathClassSou.setPositionCode(basAgvLocNoSou.getAgvLocNo());
        this.positionCodePath.add(positionCodePathClassSou);
        PositionCodePathClass positionCodePathClassEnd = new PositionCodePathClass();
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getLocNo()));
        positionCodePathClassEnd.setPositionCode(basAgvLocNoEnd.getAgvLocNo());
        this.positionCodePath.add(positionCodePathClassEnd);
        String agvLocSou = getAgvLocNoOrDefault(basAgvLocNoService, "loc_no", basAgvMast.getSourceLocNo());
        PositionCodePathClass sou = new PositionCodePathClass();
        sou.setPositionCode(agvLocSou);
        sou.setType(basAgvMast.getFloorNo()!=1?"00":"05");
        this.positionCodePath.add(sou);
        String agvLocEnd = getAgvLocNoOrDefault(basAgvLocNoService, "loc_no", basAgvMast.getLocNo());
        PositionCodePathClass end = new PositionCodePathClass();
        end.setType(basAgvMast.getFloorNo()!=1?"00":"05");
        end.setPositionCode(agvLocEnd);
        this.positionCodePath.add(end);
    }
    public void getAgvTaskAssignmentParam2(BasAgvMast basAgvMast) {
        BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
        this.reqCode = basAgvMast.getTaskNo().toString();
        this.reqCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
        this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
        PositionCodePathClass positionCodePathClassSou = new PositionCodePathClass();
        BasAgvLocNo basAgvLocNoSou= basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getSourceStaNo()));
        positionCodePathClassSou.setPositionCode(basAgvLocNoSou.getAgvLocNo());
        this.positionCodePath.add(positionCodePathClassSou);
        PositionCodePathClass positionCodePathClassEnd = new PositionCodePathClass();
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getLocNo()));
        positionCodePathClassEnd.setPositionCode(basAgvLocNoEnd.getAgvLocNo());
        this.positionCodePath.add(positionCodePathClassEnd);
        String agvLocSou = getAgvLocNoOrDefault(basAgvLocNoService, "sta_no", basAgvMast.getSourceStaNo());
        PositionCodePathClass sou = new PositionCodePathClass();
        sou.setPositionCode(agvLocSou);
        sou.setType(basAgvMast.getFloorNo()!=1?"00":"05");
        this.positionCodePath.add(sou);
        String agvLocEnd = getAgvLocNoOrDefault(basAgvLocNoService, "loc_no", basAgvMast.getLocNo());
        PositionCodePathClass end = new PositionCodePathClass();
        end.setType(basAgvMast.getFloorNo()!=1?"00":"05");
        end.setPositionCode(agvLocEnd);
        this.positionCodePath.add(end);
    }
    public void getAgvTaskAssignmentParam3(BasAgvMast basAgvMast) {
        BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
        this.reqCode = basAgvMast.getTaskNo().toString();
        this.reqCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
        this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
        PositionCodePathClass positionCodePathClassSou = new PositionCodePathClass();
        BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getSourceStaNo()));
        positionCodePathClassSou.setPositionCode(basAgvLocNoSou.getAgvLocNo());
        this.positionCodePath.add(positionCodePathClassSou);
        PositionCodePathClass positionCodePathClassEnd = new PositionCodePathClass();
        BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo()));
        positionCodePathClassEnd.setPositionCode(basAgvLocNoEnd.getAgvLocNo());
        this.positionCodePath.add(positionCodePathClassEnd);
        String agvLocSou = getAgvLocNoOrDefault(basAgvLocNoService, "sta_no", basAgvMast.getSourceStaNo());
        PositionCodePathClass sou = new PositionCodePathClass();
        sou.setPositionCode(agvLocSou);
        sou.setType(basAgvMast.getFloorNo()!=1?"00":"05");
        this.positionCodePath.add(sou);
        String agvLocEnd = getAgvLocNoOrDefault(basAgvLocNoService, "sta_no", basAgvMast.getStaNo());
        PositionCodePathClass end = new PositionCodePathClass();
        end.setType(basAgvMast.getFloorNo()!=1?"00":"05");
        end.setPositionCode(agvLocEnd);
        this.positionCodePath.add(end);
    }
    private String getAgvLocNoOrDefault(BasAgvLocNoService service, String column, Object value) {
        if (value == null) {
            return null;
        }
        BasAgvLocNo record = service.selectOne(new EntityWrapper<BasAgvLocNo>().eq(column, value));
        if (record != null && record.getAgvLocNo() != null) {
            return record.getAgvLocNo();
        }
        // 查询不到就返回原值,但必须转换成 String
        return String.valueOf(value);
    }
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3569,9 +3569,9 @@
            if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
                rgvThread.setPaking(true);
            }
            if(rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 && rgvProtocol.getStatusType1() == RgvStatusType.IDLE){
                rgvThread.setPaking(true);
            }
//            if(rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 && rgvProtocol.getStatusType1() == RgvStatusType.IDLE){
//                rgvThread.setPaking(true);
//            }
            if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){
                basRgv.setPakAll("1");
                basRgvService.updateById(basRgv);
@@ -4719,7 +4719,13 @@
                        JSONObject jsonObject = JSON.parseObject(response);
                        if (jsonObject.getInteger("code").equals(200)) {
                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                            if(wrkMast.getStaNo()<2000){
                                basAgvMast.setFloorNo(1);
                            }else if(wrkMast.getStaNo()<4000){
                                basAgvMast.setFloorNo(2);
                            }else{
                                basAgvMast.setFloorNo(3);
                            }
                            basAgvMast.setTaskNo(wrkMast.getWrkNo());
                            basAgvMast.setSourceStaNo(outStaAgv.getStaNo());
                            basAgvMast.setLocNo(dto.getLocNo());
@@ -4814,12 +4820,12 @@
                        JSONObject jsonObject = JSON.parseObject(response);
                        if (jsonObject.getInteger("code").equals(200)) {
                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                            basAgvMast.setTaskNo(outStaAgv.getStaNo());
                            basAgvMast.setSourceStaNo(outStaAgv.getStaNo());
                            basAgvMast.setLocNo(dto.getLocNo());
                            basAgvMast.setDevpId(devp.getId());
                            basAgvMast.setIoType(2);
                            basAgvMast.setFloorNo(2);
                            basAgvMastService.insert(basAgvMast);
                        } else {
@@ -4951,7 +4957,7 @@
                }
                try{
                    // 获取站点信息
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basAgvMast.getDevpId());
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basAgvMast.getFloorNo() !=1?2:1);
                    StaProtocol staProtocol = devpThread.getStation().get(basAgvMast.getStaNo());
                    if (staProtocol == null) {
                        continue;
@@ -5025,7 +5031,7 @@
                }
                try{
                    // 获取站点信息
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basAgvMast.getDevpId());
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp,  basAgvMast.getFloorNo() !=1?2:1);
                    StaProtocol staProtocol = devpThread.getStation().get(basAgvMast.getSourceStaNo());
                    if (staProtocol == null || !staProtocol.isLoading()) {
                        continue;
@@ -5038,11 +5044,25 @@
                            (basAgvMast.getSourceStaNo().equals(2033))){
                        AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
                        AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast);
                        WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
                        agvBindCtnrAndBinParam.setCtnrCode(wrkMast.getBarcode());
                        ReturnT<String> resultBind = new PostMesDataUtils().postMesDataAgv("AGV容器绑定解绑", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvBindCtnrAndBinParam);
                        if (resultBind.getCode()==200){
                        if(basAgvMast.getFloorNo()==1) {
                            WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
                            AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast);
                            agvBindCtnrAndBinParam.setCtnrCode(wrkMast.getBarcode());
                            agvBindCtnrAndBinParam.setCtnrTyp("1");
                            ReturnT<String> resultBind = new PostMesDataUtils().postMesDataAgv("AGV容器绑定解绑", AgvConstant.AGV_URL, AgvConstant.AGV_CTNRANDBING, agvBindCtnrAndBinParam);
                            if (resultBind.getCode()==200){
                                //任务下发
                                ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV任务下发", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
                                if (result.getCode()==200){
                                    basAgvMast.setStatus(1);
                                    basAgvMastService.updateById(basAgvMast);
                                } else {
                                    agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV任务下发失败", "任务号:"+basAgvMast.getTaskNo()+"任务信息下发失败!!!", false);
                                }
                            } else {
                                agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV容器绑定解绑", "任务号:"+basAgvMast.getTaskNo()+"任务信息下发失败!!!", false);
                            }
                        }else{
                            //任务下发
                            ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV任务下发", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
                            if (result.getCode()==200){
@@ -5051,17 +5071,8 @@
                            } else {
                                agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV任务下发失败", "任务号:"+basAgvMast.getTaskNo()+"任务信息下发失败!!!", false);
                            }
                        } else {
                            agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV容器绑定解绑", "任务号:"+basAgvMast.getTaskNo()+"任务信息下发失败!!!", false);
                        }
//                        //任务下发
//                        ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV任务下发", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
//                        if (result.getCode()==200){
//                            basAgvMast.setStatus(1);
//                            basAgvMastService.updateById(basAgvMast);
//                        } else {
//                            agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV任务下发失败", "任务号:"+basAgvMast.getTaskNo()+"任务信息下发失败!!!", false);
//                        }
//
                    }
                }  catch (Exception e){
                    log.error("任务号:"+basAgvMast.getTaskNo()+"====》AGV任务下发失败"+e.getMessage());
@@ -5084,7 +5095,7 @@
                }
                try{
                    // 获取站点信息
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basAgvMast.getDevpId());
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basAgvMast.getFloorNo() !=1?2:1);
                    StaProtocol staProtocol = devpThread.getStation().get(basAgvMast.getSourceStaNo());
                    if (staProtocol == null || !staProtocol.isLoading()) {
                        continue;