package org.sxkj.resource.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.beans.BeanUtils; import org.sxkj.common.enums.DateEnum; import org.sxkj.common.model.TimeRange; import org.sxkj.common.utils.HeaderUtils; import org.sxkj.common.utils.TimeRangeUtils; import java.time.temporal.ChronoUnit; import java.util.List; import java.util.Objects; @Data public class WaylineJobInfoQueryParam extends WaylineJobInfoQueryDto { @ApiModelProperty("开始时间") private Long startTime; @ApiModelProperty("结束时间") private Long endTime; @ApiModelProperty("日期格式化字符串") private String formatTime; @ApiModelProperty("设备sn") private String deviceSn; @ApiModelProperty("设备sn") private List deviceSns; @ApiModelProperty("关键字设备sn") private List keyWordSns; @ApiModelProperty("业务id") private List jobInfoIds; @ApiModelProperty("范围查询最小id") private Integer minId; @ApiModelProperty("批处理号") private Integer batchNo; @ApiModelProperty("是否周期任务 1=true 0=非周期任务") private Integer isCircleJob; @ApiModelProperty("是否ai 类型") private List resultTypes; public WaylineJobInfoQueryParam(TimeStatisticsDto dto) { BeanUtils.copyProperties(dto, this); settingParam(dto.getAreaCode()); } public WaylineJobInfoQueryParam() { } /** * 设置参数 */ public void settingParam(String areaCode) { DateEnum nativeDateEnum = this.getDateEnum(); //未设置固定日期 //有日期传递 if (Objects.nonNull(this.getStartDate()) && Objects.nonNull(this.getEndDate())) { // 计算查询开始时间和结束时间天数 long betweenDay = ChronoUnit.DAYS.between(this.getStartDate(), this.getEndDate()); if (betweenDay < 0) { throw new RuntimeException("参数异常"); } // ValidUtil.assertIf(betweenDay>31,"时间选择范围不能超过31天!"); DateEnum dateEnum = DateEnum.INTERVAL_TIME; if (betweenDay <= 31) { dateEnum = DateEnum.DAYS; } else if (betweenDay > 31 && betweenDay <= 365) { dateEnum = DateEnum.MONTHS; } else if (betweenDay > 365){ dateEnum = DateEnum.YEARS; } dateEnum.setStartDate(this.getStartDate()); dateEnum.setEndDate(this.getEndDate()); this.setDateEnum(dateEnum); this.setStartTime(TimeRangeUtils.getEpochMilli(this.getStartDate())); this.setEndTime(TimeRangeUtils.getEpochMilli(this.getEndDate())); this.setStartDate(this.getStartDate()); this.setEndDate(this.getEndDate()); } //年月日 if (Objects.nonNull(nativeDateEnum)) { TimeRange timeRange = TimeRangeUtils.getTimeRange(nativeDateEnum); this.setStartTime(TimeRangeUtils.getEpochMilli(timeRange.getStartTime())); this.setStartDate(timeRange.getStartTime()); this.setEndTime(TimeRangeUtils.getEpochMilli(timeRange.getEndTime())); this.setEndDate(timeRange.getEndTime()); nativeDateEnum.setEndDate(timeRange.getEndTime()); nativeDateEnum.setStartDate(timeRange.getStartTime()); } String areaCodes = HeaderUtils.getAreaCode(areaCode); this.setAreaCode(areaCodes); } }