zhang
2 天以前 98670de02fde18c0aedaf349c0e165c59f57685b
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
@@ -54,6 +54,7 @@
    @Scheduled(cron = "0/5 * * * * ? ")
    private synchronized void autoCharge(){
        if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
        List<Agv> agvList = agvService.list(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
        for (Agv agv : agvList) {
            AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
@@ -68,19 +69,19 @@
                if (0 < taskService.count(new LambdaQueryWrapper<Task>()
                        .eq(Task::getAgvId, agv.getId())
                        .and(i -> {
                                i.eq(Task::getTaskSts, TaskStsType.WAITING.val())
                                .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val())
                                .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val());
                            i.eq(Task::getTaskSts, TaskStsType.WAITING.val())
                                    .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val())
                                    .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val());
                        })
                )) {
                    continue;
                }
                if (0 < segmentService.count(new LambdaQueryWrapper<Segment>()
                        .eq(Segment::getAgvId, agv.getId())
                        .and( i -> {
                                .eq(Segment::getAgvId, agv.getId())
                                .and( i -> {
//                                i.eq(Segment::getState, SegmentStateType.WAITING.toString()).or()
                                i.eq(Segment::getState, SegmentStateType.RUNNING.toString());
                        })
                                    i.eq(Segment::getState, SegmentStateType.RUNNING.toString());
                                })
                )) {
                    continue;
                }
@@ -94,6 +95,7 @@
    @Scheduled(cron = "0/1 * * * * ? ")
//    @Scheduled(cron = "0 */2 * * * ? ")
    private synchronized void autoStandby(){
        if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
        if (!configService.getVal("automaticStandbyPosition", Boolean.class)) { return; }
        List<Agv> agvList = agvService.list(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
@@ -124,28 +126,28 @@
            if (0 < taskService.count(new LambdaQueryWrapper<Task>()
                    .eq(Task::getAgvId, agv.getId())
                    .and(i -> {
                            i.eq(Task::getTaskSts, TaskStsType.WAITING.val())
                            .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val())
                            .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val());
                        i.eq(Task::getTaskSts, TaskStsType.WAITING.val())
                                .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val())
                                .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val());
                    })
            )) {
                continue;
            }
            // the time between the latest task and now that be must more that @{param} seconds
//            if (!Optional.ofNullable((Boolean) redis.getObject(RedisConstant.AGV_TO_STANDBY_FLAG, agv.getUuid())).orElse(false)) {
                Integer intervalOfAutoStandby = configService.getVal("intervalOfAutoStandby", Integer.class);
                if (null != intervalOfAutoStandby && intervalOfAutoStandby > 0) {
                    Task latestTask = taskService.findLatestTask(agv.getId(), null);
                    if (null != latestTask) {
                        long seconds = DateUtils.diffToSeconds(
                                Optional.ofNullable(latestTask.getEndTime()).orElse(latestTask.getUpdateTime())
                                , new Date()
                        );
                        if (seconds < intervalOfAutoStandby) { continue; }
                    }
                } else {
                    continue;
            Integer intervalOfAutoStandby = configService.getVal("intervalOfAutoStandby", Integer.class);
            if (null != intervalOfAutoStandby && intervalOfAutoStandby > 0) {
                Task latestTask = taskService.findLatestTask(agv.getId(), null);
                if (null != latestTask) {
                    long seconds = DateUtils.diffToSeconds(
                            Optional.ofNullable(latestTask.getEndTime()).orElse(latestTask.getUpdateTime())
                            , new Date()
                    );
                    if (seconds < intervalOfAutoStandby) { continue; }
                }
            } else {
                continue;
            }
//            }
            mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null);
@@ -156,8 +158,9 @@
    private void reportTaskToUplink() {
        if (!uplinkProperties.getEnabled()) { return; }
        List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>()
                .eq(Task::getUplinkSts, TaskUplinkStateType.PENDING.toString())
                .in(Task::getUplinkSts, TaskUplinkStateType.PENDING.toString(), TaskUplinkStateType.FAILED.toString())
                .eq(Task::getTaskSts, TaskStsType.COMPLETE.val())
                .isNotNull(Task::getBusId)
        );
        if (Cools.isEmpty(taskList)) { return; }
        for (Task task : taskList) {