*
L
18 小时以前 03c29682dd413657ac2c5ec5a585eac166ae617c
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -728,7 +728,11 @@
                            if (offer) {
                                log.info("下发输送线任务成功:taskWrk:" + JSON.toJSONString(taskWrk));
                                Date now = new Date();
                                taskWrk.setStatus(TaskStatusType.OVER3.id);
                                if (taskWrk.getTargetPoint().equals(staProtocol.getSiteId().toString())){
                                    taskWrk.setStatus(TaskStatusType.OVER.id);
                                } else {
                                    taskWrk.setStatus(TaskStatusType.OVER3.id);
                                }
                                taskWrk.setWrkSts(14);
                                taskWrk.setModiTime(now);
                                taskWrk.setCompleteTime(now);
@@ -1378,8 +1382,12 @@
                    //获取入库待确认工作档
                    TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crnProtocol.getLaneNo(), crnProtocol.getTaskNo().intValue());
                    if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) {
                        log.error("堆垛机处于等待确认且任务完成状态,但未找到工作档。堆垛机号={},巷道号={},工作号={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo());
                        continue;
                        log.error("堆垛机处于等待确认且任务完成状态,但未找到符合状态的工作档,准备查询准备状态工作档。堆垛机号={},巷道号={},工作号={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo());
                        taskWrk = taskWrkMapper.selectCrnNoInWorkingBuDing(crnProtocol.getLaneNo(), crnProtocol.getTaskNo().intValue());
                        if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) {
                            log.error("堆垛机处于等待确认且任务完成状态,但未找到工作档。堆垛机号={},巷道号={},工作号={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo());
                            continue;
                        }
                    }
//                Thread.sleep(300);
                    //确认完成信号
@@ -1392,7 +1400,7 @@
                    crnThread.setResetFlag(true);
                    if (!Cools.isEmpty(taskWrk)) {
                        if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
                        if (taskWrk.getIoType() == 1 && (taskWrk.getWrkSts() == 3 || taskWrk.getWrkSts() == 2)) {
                            taskWrk.setWrkSts(4);//入库完成
                            taskWrk.setStatus(TaskStatusType.OVER.id);//完结
                            //更新库位状态
@@ -1402,7 +1410,7 @@
                            locMast.setModiTime(now);
                            locMast.setModiUser(9999L);
                            locMastService.updateById(locMast);
                        } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
                        } else if (taskWrk.getIoType() == 2 && (taskWrk.getWrkSts() == 12 || taskWrk.getWrkSts() == 11)) {
                            taskWrk.setWrkSts(13);//出库完成
                            taskWrk.setStatus(TaskStatusType.OVER.id);//完结
                            //更新库位状态
@@ -1412,7 +1420,7 @@
                            locMast.setModiTime(now);
                            locMast.setModiUser(9999L);
                            locMastService.updateById(locMast);
                        } else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) {
                        } else if (taskWrk.getIoType() == 3 && (taskWrk.getWrkSts() == 12 || taskWrk.getWrkSts() == 11)) {
                            taskWrk.setWrkSts(4);//入库完成
                            taskWrk.setStatus(TaskStatusType.OVER.id);//完结
                            //更新库位状态
@@ -2488,14 +2496,21 @@
                        }
                        long endP = 0;
                        long endP1 = 0;
                        long endP2 = 0;
                        ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
                        boolean sign = true;
                        for (TaskProtocol taskProtocol : allTaskProtocol.values()){
                            if (taskProtocol.getTaskStatus() == 2){//取
                                endP = taskProtocol.getTargetPosition();
                                sign = false;
                            } else if (taskProtocol.getTaskStatus() == 3 && sign){//放
                                endP = taskProtocol.getTargetPosition();
                                endP1 = taskProtocol.getTargetPosition();
                            } else if (taskProtocol.getTaskStatus() == 3){//放
                                endP2 = taskProtocol.getTargetPosition();
                            }
                        }
                        if (endP1 > endP2){
                            if (itSmall){
                                endP = endP1;
                            } else {
                                endP = endP2;
                            }
                        }
                        if (endP == 0){