kaiyu
2021-09-08 f183af46a77eb7049a15e379eece4adbb59a9738
screen-api
增加获取无人机飞行日期接口
1 files added
4 files modified
121 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/UAVController.java 24 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java 8 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryDateVO.java 47 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java 12 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java 30 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/UAVController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.HistorySecondUav;
import com.moral.api.mapper.HistorySecondUavMapper;
import com.moral.api.pojo.vo.uav.UAVQueryDateVO;
import com.moral.api.service.HistorySecondUavService;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import io.swagger.annotations.Api;
@@ -12,6 +14,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
/**
@@ -30,6 +33,8 @@
    @Autowired
    HistorySecondUavMapper historySecondUavMapper;
    @Autowired
    HistorySecondUavService historySecondUavService;
    /**
    * @Description: 根据组织id,mac以及时间查询无人机数据
            * @Param: []
@@ -42,4 +47,23 @@
        List<HistorySecondUav> historySecondUavs = historySecondUavMapper.selectList(new QueryWrapper<>());
        return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),historySecondUavs);
    }
    /**
    * @Description: 查询组织在哪天有无人机飞行,返回具体日期
            * @Param: [organizationId]
            * @return: com.moral.constant.ResultMessage
            * @Author: 陈凯裕
            * @Date: 2021/9/8
            */
    @RequestMapping("queryDate")
    public ResultMessage queryDate(Integer organizationId){
        //处理查询业务
        List<Date> dates = historySecondUavService.queryDate(organizationId);
        //封装vo层
        UAVQueryDateVO vo = UAVQueryDateVO.convert(dates);
        //返回数据
        return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),vo);
    }
}
screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java
@@ -1,5 +1,7 @@
package com.moral.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import java.io.Serializable;
@@ -23,6 +25,12 @@
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 设备mac
     */
    private String mac;
screen-api/src/main/java/com/moral/api/pojo/vo/uav/UAVQueryDateVO.java
New file
@@ -0,0 +1,47 @@
package com.moral.api.pojo.vo.uav;
import com.moral.util.DateUtils;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
/**
 * @ClassName UAVQueryDateVO
 * @Description 查询组织哪天有无人机飞行vo
 * @Author 陈凯裕
 * @Date 2021/9/8 11:03
 * @Version TODO
 **/
@Data
public class UAVQueryDateVO {
    /**
    * @Description: 使用hashset是为了去重
            * @Param:
            * @return:
            * @Author: 陈凯裕
            * @Date: 2021/9/8
            */
    public HashSet<String> datesStr;
    /**
    * @Description: 将业务层返回数据转化为vo层数据
            * @Param: [dates]
            * @return: com.moral.api.pojo.vo.uav.UAVQueryDateVO
            * @Author: 陈凯裕
            * @Date: 2021/9/8
            */
    public static UAVQueryDateVO convert(List<Date> dates){
        //日志格式转化为字符串格式
        UAVQueryDateVO uavQueryDateVO = new UAVQueryDateVO();
        HashSet<String> datesStr = new HashSet<>();
        for (Date date : dates) {
            datesStr.add(DateUtils.dateToDateString(date,"yyyy-MM-dd"));
        }
        uavQueryDateVO.setDatesStr(datesStr);
        return uavQueryDateVO;
    }
}
screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java
@@ -3,6 +3,9 @@
import com.moral.api.entity.HistorySecondUav;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
import java.util.List;
/**
 * <p>
 * 无人机秒数据表 服务类
@@ -13,4 +16,13 @@
 */
public interface HistorySecondUavService extends IService<HistorySecondUav> {
    /**
    * @Description: 根据组织id查询该组织在哪天有无人机飞行
            * @Param: [organizationId]
            * @return: java.util.List<java.util.Date>
            * @Author: 陈凯裕
            * @Date: 2021/9/8
            */
    List<Date> queryDate(Integer organizationId);
}
screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
@@ -1,10 +1,17 @@
package com.moral.api.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.HistorySecondUav;
import com.moral.api.mapper.HistorySecondUavMapper;
import com.moral.api.service.HistorySecondUavService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * <p>
@@ -17,4 +24,27 @@
@Service
public class HistorySecondUavServiceImpl extends ServiceImpl<HistorySecondUavMapper, HistorySecondUav> implements HistorySecondUavService {
    @Autowired
    HistorySecondUavMapper historySecondUavMapper;
    @Override
    public List<Date> queryDate(Integer organizationId) {
        //构造查询条件
        QueryWrapper<HistorySecondUav> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("organization_id",organizationId);
        //设置查询时间范围为180天
        Date endDate = new Date();
        Date startDate = DateUtils.addDays(endDate, -180);
        queryWrapper.between("batch",startDate,endDate);
        //设置查询字段
        queryWrapper.select("DISTINCT batch");
        //查询结果
        List<HistorySecondUav> historySecondUavs = historySecondUavMapper.selectList(queryWrapper);
        //结果转为Date集合
        List<Date> result = new ArrayList<>();
        for (HistorySecondUav historySecondUav : historySecondUavs) {
            result.add(historySecondUav.getBatch());
        }
        return result;
    }
}