guoshilong
2023-09-19 8e10cec76285192d30abecd7d09001a75f2755a3
计划查询
5 files modified
2 files added
134 ■■■■■ changed files
pom.xml 13 ●●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml 42 ●●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/model/param/WaylineJobQueryParam.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java 3 ●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java 23 ●●●● patch | view | raw | blame | history
pom.xml
@@ -197,5 +197,18 @@
                </configuration>
            </plugin>
        </plugins>
        <!--配置后才可以扫描到xml文件-->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
</project>
src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
@@ -6,6 +6,7 @@
import com.dji.sample.wayline.model.dto.WaylineJobDTO;
import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.param.UpdateJobParam;
import com.dji.sample.wayline.model.param.WaylineJobQueryParam;
import com.dji.sample.wayline.service.IWaylineJobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -56,8 +57,8 @@
    @GetMapping("/{workspace_id}/jobs")
    public ResponseResult<PaginationData<WaylineJobDTO>> getJobs(@RequestParam(defaultValue = "1") Long page,
                     @RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
                     @PathVariable(name = "workspace_id") String workspaceId) {
        PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize);
                                                                 @PathVariable(name = "workspace_id") String workspaceId, WaylineJobQueryParam waylineJobQueryParam){
        PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize,waylineJobQueryParam);
        return ResponseResult.success(data);
    }
src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java
@@ -1,7 +1,10 @@
package com.dji.sample.wayline.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dji.sample.wayline.model.entity.WaylineJobEntity;
import com.dji.sample.wayline.model.param.WaylineJobQueryParam;
import org.apache.ibatis.annotations.Param;
/**
 * @author sean
@@ -9,4 +12,6 @@
 * @date 2022/6/1
 */
public interface IWaylineJobMapper extends BaseMapper<WaylineJobEntity> {
    Page<WaylineJobEntity> getPage(Page<WaylineJobEntity> waylineJobEntityPage, @Param("queryParam") WaylineJobQueryParam param, @Param("workspaceId") String workspaceId);
}
src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml
New file
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dji.sample.wayline.dao.IWaylineJobMapper">
    <select id="getPage" resultType="com.dji.sample.wayline.model.entity.WaylineJobEntity">
        SELECT job.* FROM wayline_job job
            LEFT JOIN wayline_file file ON job.file_id = file.wayline_id
        WHERE job.workspace_id = #{workspaceId}
            <if test="queryParam.taskType != null and queryParam.taskType!= '' or  queryParam.taskType==0 ">
                AND job.task_type = #{queryParam.taskType}
            </if>
            <if test="queryParam.name != null and queryParam.name != '' ">
                AND (  (job.name LIKE CONCAT('%',#{queryParam.name},'%'))or(file.name LIKE CONCAT('%',#{queryParam.name},'%'))  )
            </if>
            <if test="queryParam.status != null and queryParam.status !='' ">
                AND job.status in
                <foreach collection="queryParam.status.split(',')" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
            <if test="queryParam.startTime !=null and queryParam.endTime !=null">
                AND DATE_FORMAT(FROM_UNIXTIME(job.begin_time/1000,'%Y-%m-%d'),'%Y-%m-%d')  &gt;=  DATE_FORMAT(#{queryParam.startTime},'%Y-%m-%d')
            </if>
            <if test="queryParam.endTime !=null and queryParam.endTime !=null">
                AND DATE_FORMAT(FROM_UNIXTIME(job.end_time/1000,'%Y-%m-%d'),'%Y-%m-%d')   &lt;= DATE_FORMAT(#{queryParam.endTime},'%Y-%m-%d')
            </if>
            <if test="queryParam.dockSn != null and queryParam.dockSn != '' ">
                AND job.dock_sn in
                <foreach collection="queryParam.dockSn.split(',')" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
    </select>
</mapper>
src/main/java/com/dji/sample/wayline/model/param/WaylineJobQueryParam.java
New file
@@ -0,0 +1,43 @@
package com.dji.sample.wayline.model.param;
import com.dji.sample.wayline.model.enums.WaylineTaskTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
 * 航线计划查询参数
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class WaylineJobQueryParam {
    /**
     * 状态(逗号分隔字符串)
     */
    private String status;
    /**
     * 航线名或计划名
     */
    private String name;
    /**
     * 航线计划类型
     */
    private Integer taskType;
    //开始时间
    private String startTime;
    //结束时间
    private String endTime;
    /**
     * 设备编码
     */
    private String dockSn;
}
src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
@@ -8,6 +8,7 @@
import com.dji.sample.wayline.model.enums.WaylineJobStatusEnum;
import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.param.UpdateJobParam;
import com.dji.sample.wayline.model.param.WaylineJobQueryParam;
import org.springframework.messaging.MessageHeaders;
import java.sql.SQLException;
@@ -112,7 +113,7 @@
     * @param pageSize
     * @return
     */
    PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize);
    PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize, WaylineJobQueryParam waylineJobQueryParam);
    /**
     * Process to get interface data of flight mission resources.
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -30,6 +30,7 @@
import com.dji.sample.wayline.model.enums.*;
import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.param.UpdateJobParam;
import com.dji.sample.wayline.model.param.WaylineJobQueryParam;
import com.dji.sample.wayline.service.IWaylineFileService;
import com.dji.sample.wayline.service.IWaylineJobService;
import com.dji.sample.wayline.service.IWaylineRedisService;
@@ -394,12 +395,22 @@
    }
    @Override
    public PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize) {
        Page<WaylineJobEntity> pageData = mapper.selectPage(
                new Page<WaylineJobEntity>(page, pageSize),
                new LambdaQueryWrapper<WaylineJobEntity>()
                        .eq(WaylineJobEntity::getWorkspaceId, workspaceId)
                        .orderByDesc(WaylineJobEntity::getId));
    public PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize, WaylineJobQueryParam waylineJobQueryParam) {
//        Page<WaylineJobEntity> pageData = mapper.selectPage(
//                new Page<WaylineJobEntity>(page, pageSize),
//                new LambdaQueryWrapper<WaylineJobEntity>()
//                        .eq(WaylineJobEntity::getWorkspaceId, workspaceId)
//                        .eq(waylineJobDTO.getTaskType() !=null, WaylineJobEntity::getTaskType, waylineJobDTO.getTaskType())
//                        .eq(waylineJobDTO.getStatus()!=null, WaylineJobEntity::getStatus, waylineJobDTO.getStatus())
//                        .like(StringUtils.hasText(waylineJobDTO.getJobName()),WaylineJobEntity::getName,waylineJobDTO.getJobName())
//
//
//                        .orderByDesc(WaylineJobEntity::getId));
        Page<WaylineJobEntity> pageData = mapper.getPage(new Page<WaylineJobEntity>(page, pageSize),waylineJobQueryParam,workspaceId);
        List<WaylineJobDTO> records = pageData.getRecords()
                .stream()
                .map(this::entity2Dto)