*
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);//完结
                            //更新库位状态
@@ -1765,7 +1773,7 @@
        ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
        if (!allTaskProtocol.isEmpty()) {
            for (TaskProtocol taskProtocol : allTaskProtocol.values()) {
                if (taskProtocol.getTaskNo() != 0) {
                if (taskProtocol.getTaskNo() != 0 && taskProtocol.getTaskNo()!=32222L) {
                    return taskProtocol.getTaskNo().toString();
                }
            }
@@ -2477,13 +2485,40 @@
                TaskWrk taskWrk = taskWrkMapper.selectByTaskNo(taskNoNow);
                if (taskWrk != null) {
                    if (!arrayListAllP.contains(taskWrk.getWrkNo())) {
                        RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
                        TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
                        arrayListAllP.add(taskWrk.getWrkNo());
                        long startP = 0;
                        if (!itSmall){
                            startP = System.currentTimeMillis();
                        }
                        BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
                        Long[] longList = {taskWrk.getWrkNo().longValue(),startP,basDevpPositionEnd.getPlcPosition()};
                        long endP = 0;
                        long endP1 = 0;
                        long endP2 = 0;
                        ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
                        for (TaskProtocol taskProtocol : allTaskProtocol.values()){
                            if (taskProtocol.getTaskStatus() == 2){//取
                                endP1 = taskProtocol.getTargetPosition();
                            } else if (taskProtocol.getTaskStatus() == 3){//放
                                endP2 = taskProtocol.getTargetPosition();
                            }
                        }
                        if (endP1 > endP2){
                            if (itSmall){
                                endP = endP1;
                            } else {
                                endP = endP2;
                            }
                        }
                        if (endP == 0){
                            if (itSmall){
                                endP = System.currentTimeMillis();
                            }
                        }
                        Long[] longList = {taskWrk.getWrkNo().longValue(),startP,endP};
                        arrayListAll.add(longList);
                    }
                } else {
@@ -2508,7 +2543,7 @@
                        }
                        if (endP == 0){
                            if (itSmall){
                                startP = System.currentTimeMillis();
                                endP = System.currentTimeMillis();
                            }
                        }
//                        taskNoNow