| pom.xml | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/model/entity/WaylineJobEntity.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/model/enums/WaylineRepFreTypeEnum.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/model/param/CreateJobParam.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/dji/sample/wayline/utils/JobTimeUtils.java | ●●●●● patch | view | raw | blame | history |
pom.xml
@@ -179,6 +179,11 @@ <artifactId>spring-boot-starter-validation</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.33</version> </dependency> </dependencies> src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml
@@ -37,6 +37,7 @@ #{item} </foreach> </if> ORDER BY job.create_time DESC </select> </mapper> src/main/java/com/dji/sample/wayline/model/entity/WaylineJobEntity.java
@@ -1,12 +1,14 @@ package com.dji.sample.wayline.model.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.List; /** * @author sean @@ -17,7 +19,7 @@ @Builder @NoArgsConstructor @AllArgsConstructor @TableName("wayline_job") @TableName(value = "wayline_job",autoResultMap = true) public class WaylineJobEntity implements Serializable { @TableId(type = IdType.AUTO) @@ -82,4 +84,32 @@ @TableField("parent_id") private String parentId; /** * 电量 */ @TableField("battery_capacity") private Integer batteryCapacity; /** * 执行时间数组 */ @TableField(value = "execute_time_arr",typeHandler = FastjsonTypeHandler.class) private List<List<Long>> executeTimeArr; /** * 重复频率类型 */ @TableField("rep_fre_type") private Integer repFreType; @TableField("rep_fre_val") private Integer repFreVal; @TableField("rep_rule_type") private Integer repRuleType; @TableField(value = "rep_rule_val",typeHandler = FastjsonTypeHandler.class) private List<Integer> repRuleVal; } src/main/java/com/dji/sample/wayline/model/enums/WaylineRepFreTypeEnum.java
New file @@ -0,0 +1,19 @@ package com.dji.sample.wayline.model.enums; import lombok.Getter; /** * 任务重复频率类型 */ @Getter public enum WaylineRepFreTypeEnum { DAY(1), WEEK(2), MONTH(3); private Integer val; WaylineRepFreTypeEnum(Integer val) { this.val = val; } } src/main/java/com/dji/sample/wayline/model/param/CreateJobParam.java
@@ -48,4 +48,12 @@ private List<Long> taskDays; private List<List<Long>> taskPeriods; private Integer repFreType; private Integer repFreVal; private Integer repRuleType; private List<Integer> repRuleVal; } src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -158,6 +158,45 @@ @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()) .build(); Boolean insert = mapper.insert(waylineJobEntity)>0; return ResponseResult.success(insert); } fillImmediateTime(param); // param.getTaskDays().sort((a, b) -> (int) (a - b)); src/main/java/com/dji/sample/wayline/utils/JobTimeUtils.java
New file @@ -0,0 +1,74 @@ package com.dji.sample.wayline.utils; import com.dji.sample.wayline.model.entity.WaylineJobEntity; import com.dji.sample.wayline.model.enums.WaylineRepFreTypeEnum; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDate; import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 处理任务时间 */ public class JobTimeUtils { public static void getJobTime(WaylineJobEntity waylineJobEntity) { //获取开始时间 if (waylineJobEntity.getRepFreType() == WaylineRepFreTypeEnum.DAY.getVal()) { //日 } else if (waylineJobEntity.getRepFreType() == WaylineRepFreTypeEnum.WEEK.getVal()) { //周 } else if (waylineJobEntity.getRepFreType() == WaylineRepFreTypeEnum.MONTH.getVal()) { //月 } else { } } /** * 根据开始时间和结束时间获取日期列表 * @param beginTime * @param endTime * @return */ public static List<LocalDate> getDateBetweenTime(Long beginTime,Long endTime){ //开始日期 LocalDate beginDate = LocalDate.ofInstant(Instant.ofEpochMilli(beginTime), ZoneId.systemDefault()); //结束日期 LocalDate endDate =LocalDate.ofInstant(Instant.ofEpochMilli(endTime), ZoneId.systemDefault()); LocalDate date = beginDate; List<LocalDate> dates = new ArrayList<>(); //遍历日期 while (!date.equals(endDate.plusDays(1))) { dates.add(date); date = date.plusDays(1); } return dates; } public static void main(String[] args) { LocalTime localTime = LocalTime.ofInstant(Instant.ofEpochSecond(1696761468L), ZoneId.systemDefault()); DateFormat dateFormat = new SimpleDateFormat("HH:mm"); String format = localTime.format(DateTimeFormatter.ofPattern("HH:mm")); System.out.println(format); } }