guoshilong
2023-10-12 f61c1902e30b0ab54e833960df7d2d79c8b62120
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -158,6 +158,46 @@
    @Override
    public ResponseResult publishFlightTask(CreateJobParam param, CustomClaim customClaim) throws SQLException {
        //当重复定时和连续执行时走这个逻辑
        if (param.getTaskType().getVal() == WaylineTaskTypeEnum.CONDITION.getVal()){
            //保存数据
            WaylineJobEntity waylineJobEntity = WaylineJobEntity.builder()
                    .jobId(UUID.randomUUID().toString())
                    .name(param.getName())
                    .dockSn(param.getDockSn())
                    .fileId(param.getFileId())
                    .username(customClaim.getUsername())
                    .workspaceId(customClaim.getWorkspaceId())
                    .beginTime(param.getTaskDays().get(0)*1000)
                    .endTime(param.getTaskDays().get(1)*1000)
                    .status(WaylineJobStatusEnum.PENDING.getVal())
                    .taskType(param.getTaskType().getVal())
                    .waylineType(param.getWaylineType().getVal())
                    .outOfControlAction(param.getOutOfControlAction())
                    .batteryCapacity(param.getMinBatteryCapacity())
                    .rthAltitude(param.getRthAltitude())
                    .mediaCount(0)
                    .repFreVal(param.getRepFreVal())
                    .repFreType(param.getRepFreType())
                    .repRuleType(param.getRepRuleType())
                    .repRuleVal(param.getRepRuleVal())
                    .executeTimeArr(param.getTaskPeriods())
                    .executeStartTimeArr(param.getExecuteStartTimeArr())
                    .build();
            Boolean insert = mapper.insert(waylineJobEntity)>0;
            return ResponseResult.success(insert);
        }
        fillImmediateTime(param);
//        param.getTaskDays().sort((a, b) -> (int) (a - b));
@@ -195,8 +235,7 @@
        if (WaylineTaskTypeEnum.CONDITION == param.getTaskType()) {
            waylineJob.setConditions(
                    WaylineTaskConditionDTO.builder()
                            .executableConditions(Objects.nonNull(param.getMinStorageCapacity()) ?
                                    WaylineTaskExecutableConditionDTO.builder().storageCapacity(param.getMinStorageCapacity()).build() : null)
                            .executableConditions(Objects.nonNull(param.getMinStorageCapacity()) ? WaylineTaskExecutableConditionDTO.builder().storageCapacity(param.getMinStorageCapacity()).build() : null)
                            .readyConditions(WaylineTaskReadyConditionDTO.builder()
                                    .batteryCapacity(param.getMinBatteryCapacity())
                                    .beginTime(beginTime)
@@ -232,6 +271,30 @@
        return ResponseResult.success();
    }
    @Override
    public Boolean publishFlightTask(WaylineJobEntity waylineJobEntity) {
        WaylineJobDTO waylineJob = new WaylineJobDTO();
        waylineJob.setConditions(
                WaylineTaskConditionDTO.builder()
                        .executableConditions(null)
                        .readyConditions(WaylineTaskReadyConditionDTO.builder()
                                .batteryCapacity(waylineJobEntity.getBatteryCapacity())
                                .build())
                        .build());
        return null;
    }
    private Boolean prepareFlightTask(WaylineJobDTO waylineJob) throws SQLException {
        boolean isOnline = deviceRedisService.checkDeviceOnline(waylineJob.getDockSn());