#
lsh
2024-06-08 0613172a33ffc4eb4f21c36bd05a39b176999bbd
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -109,7 +109,8 @@
    @Value("${wms.url}")
    private String wmsUrl;
    private WrkMastSplitTwinServiceImpl wrkMastSplitTwinService;
    @Autowired
    private WrkMastSplitTwinService wrkMastSplitTwinService;
    /**
     * 组托
@@ -1407,8 +1408,8 @@
                            && crnProtocol.forkPosType == CrnForkPosType.HOME
                            && crnProtocol.getLoaded()==0) {
                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
                        if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
                            log.error("堆垛机放货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",wrkMast.getCrnNo(),"存在多笔可执行作业,请删除无效作业!!!",conStation,2,3);
                        if (wrkMastSplitTwinList.size()!=1){
                            log.error("堆垛机放货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",wrkMast.getCrnNo(),"不存在或者存在多笔可执行作业,请删除无效作业!!!",conStation,2,3);
                        }
                        for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                            if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -1452,8 +1453,8 @@
                            && crnProtocol.forkPosTypeTwo == CrnForkPosType.HOME
                            && crnProtocol.getLoadedTwo()==0) {
                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
                        if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
                            log.error("堆垛机放货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",wrkMast.getCrnNo(),"存在多笔可执行作业,请删除无效作业!!!",conStation,2,3);
                        if (wrkMastSplitTwinList.size()!=1){
                            log.error("堆垛机放货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",wrkMast.getCrnNo(),"不存在或者存在多笔可执行作业,请删除无效作业!!!",conStation,2,3);
                        }
                        for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                            if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -1464,7 +1465,7 @@
                            // 下发站点信息
                            staProtocol.setWorkNo(wrkMast.getWrkNo());
                            staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
                            if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(5, staProtocol))) {
                            if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
                                return false;
                            }
                            // 更新工作档状态为14失败
@@ -3453,8 +3454,8 @@
                    wrkMast.setModiTime(now);
                    // 堆垛机复位
                    List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 2, 3);
                    if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
                        log.error("堆垛机放货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crn.getId(),"存在多笔可执行作业,请删除无效作业!!!",1,2,3);
                    if (wrkMastSplitTwinList.size()!=1){
                        log.error("堆垛机放货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crn.getId(),"不存在或者存在多笔可执行作业,请删除无效作业!!!",1,2,3);
                    }
                    for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                        if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -3486,8 +3487,8 @@
                    return true;
                } else {
                    List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 1, 1);
                    if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
                        log.error("堆垛机放货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crn.getId(),"存在多笔可执行作业,请删除无效作业!!!",1,1,1);
                    if (wrkMastSplitTwinList.size()!=1){
                        log.error("堆垛机放货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crn.getId(),"不存在或者存在多笔可执行作业,请删除无效作业!!!",1,1,1);
                    }
                    for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                        Date now = new Date();
@@ -3606,8 +3607,8 @@
                    wrkMast.setModiTime(now);
                    // 堆垛机复位
                    List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 2, 3);
                    if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
                        log.error("堆垛机取货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crn.getId(),"存在多笔可执行作业,请删除无效作业!!!",2,2,3);
                    if (wrkMastSplitTwinList.size()!=1){
                        log.error("堆垛机取货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crn.getId(),"不存在或者存在多笔可执行作业,请删除无效作业!!!",2,2,3);
                    }
                    for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                        if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -3638,8 +3639,8 @@
                    crnThread.setResetFlagTwo(true);
                } else {
                    List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 1, 1);
                    if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
                        log.error("堆垛机取货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crn.getId(),"存在多笔可执行作业,请删除无效作业!!!",2,1,1);
                    if (wrkMastSplitTwinList.size()!=1){
                        log.error("堆垛机取货完成等待确认异常,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crn.getId(),"不存在或者存在多笔可执行作业,请删除无效作业!!!",2,1,1);
                    }
                    for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                        Date now = new Date();
@@ -6279,18 +6280,18 @@
                        && crnProtocol.getForkPos() == 0) {
                    sign[0] = 1;
                    sign[1] = 1;
                } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
                        && crnProtocol.getTaskNoTwo() == 0
                        && crnProtocol.getLoadedTwo() == 0
                        && crnProtocol.getForkPosTwo() == 0){
                    sign[0] = 1;
                    sign[1] = 2;
                } else if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
                        && crnProtocol.getTaskNo() == 0
                        && crnProtocol.getLoaded() == 1
                        && crnProtocol.getForkPos() == 0) {
                    sign[0] = 2;
                    sign[1] = 1;
                } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
                        && crnProtocol.getTaskNoTwo() == 0
                        && crnProtocol.getLoadedTwo() == 0
                        && crnProtocol.getForkPosTwo() == 0){
                    sign[0] = 1;
                    sign[1] = 2;
                } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
                        && crnProtocol.getTaskNoTwo() == 0
                        && crnProtocol.getLoadedTwo() == 1
@@ -6302,11 +6303,18 @@
            if (sign[0]!=0){
                List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),sign[1],null,sign[0],0);
                if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
                if (wrkMastSplitTwinList.size()>1){
                    log.error("堆垛机出入库下发异常,堆垛机号={},异常信息={},工位号={},工作类型={}",crn.getId(),"存在多笔可执行作业,请删除无效作业!!!",sign[1],sign[0]);
                    return false;
                }
                for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                    return sign[0] == 1? crnExecuteTakeFull(crn.getId(), wrkMastSplitTwin, sign[1]) : crnExecutePutFull(crn.getId(), wrkMastSplitTwin, sign[1]);
                    boolean ack = sign[0] == 1 ? crnExecuteTakeFull(crn.getId(), wrkMastSplitTwin, sign[1]) : crnExecutePutFull(crn.getId(), wrkMastSplitTwin, sign[1]);
                    if (ack){
                        wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkType()==1? 1:3);
                        wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
                    }else {
                        log.error("堆垛机出入库下发报错,堆垛机号={},异常信息={}",crn.getId(),"下发任务返回值为:"+ack);
                    }
                }
            }
        }catch (Exception e){