吉安感知网项目-后端
linwei
2026-01-21 9978fe196d10fc7b32980c1dd2a03de5f84dc80d
数据异议申请
16 files modified
2 files added
383 ■■■■ changed files
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/controller/GdDataObjectionController.java 32 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/dto/GdDataEvaluationDTO.java 8 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/dto/GdDataObjectionAttachmentDTO.java 16 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/dto/GdDataObjectionDTO.java 70 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/entity/GdDataObjectionAttachmentEntity.java 5 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/entity/GdDataObjectionEntity.java 6 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionAttachmentMapper.xml 1 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.xml 16 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/param/GdDataObjectionAttachmentParam.java 21 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/param/GdDataObjectionPageParam.java 19 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/IGdDataObjectionService.java 12 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdDataObjectionServiceImpl.java 28 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/wrapper/GdDataObjectionWrapper.java 5 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/wrapper/GdSupplyDemandAuditAttachmentWrapper.java 14 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.xml 23 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdWorkOrderMapper.xml 2 ●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdPatrolTaskVO.java 102 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/controller/GdDataObjectionController.java
@@ -23,27 +23,19 @@
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.sxkj.gd.orderdata.dto.GdDataObjectionDTO;
import org.sxkj.gd.orderdata.entity.GdDataObjectionEntity;
import org.sxkj.gd.orderdata.param.GdDataObjectionPageParam;
import org.sxkj.gd.orderdata.vo.GdDataObjectionVO;
import org.sxkj.gd.orderdata.excel.GdDataObjectionExcel;
import org.sxkj.gd.orderdata.wrapper.GdDataObjectionWrapper;
import org.sxkj.gd.orderdata.service.IGdDataObjectionService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
/**
 * 数据异议申请表 控制器
@@ -72,13 +64,13 @@
    /**
     * 数据异议申请表 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入gdDataObjection")
    public R<IPage<GdDataObjectionVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdDataObjection, Query query) {
        IPage<GdDataObjectionEntity> pages = gdDataObjectionService.page(Condition.getPage(query), Condition.getQueryWrapper(gdDataObjection, GdDataObjectionEntity.class));
        return R.data(GdDataObjectionWrapper.build().pageVO(pages));
    }
    // @GetMapping("/list")
    // @ApiOperationSupport(order = 2)
    // @ApiOperation(value = "分页", notes = "传入gdDataObjection")
    // public R<IPage<GdDataObjectionVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdDataObjection, Query query) {
    //     IPage<GdDataObjectionEntity> pages = gdDataObjectionService.page(Condition.getPage(query), Condition.getQueryWrapper(gdDataObjection, GdDataObjectionEntity.class));
    //     return R.data(GdDataObjectionWrapper.build().pageVO(pages));
    // }
    /**
     * 数据异议申请表 自定义分页
@@ -86,7 +78,7 @@
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入gdDataObjection")
    public R<IPage<GdDataObjectionVO>> page(GdDataObjectionVO gdDataObjection, Query query) {
    public R<IPage<GdDataObjectionVO>> page(GdDataObjectionPageParam gdDataObjection, Query query) {
        IPage<GdDataObjectionVO> pages = gdDataObjectionService.selectGdDataObjectionPage(Condition.getPage(query), gdDataObjection);
        return R.data(pages);
    }
@@ -117,8 +109,8 @@
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入gdDataObjection")
    public R submit(@Valid @RequestBody GdDataObjectionEntity gdDataObjection) {
        return R.status(gdDataObjectionService.saveOrUpdate(gdDataObjection));
    public R submit(@Valid @RequestBody GdDataObjectionDTO gdDataObjectionDTO) {
        return R.status(gdDataObjectionService.saveOrUpdateDataObjection(gdDataObjectionDTO));
    }
    /**
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/dto/GdDataEvaluationDTO.java
@@ -16,9 +16,13 @@
 */
package org.sxkj.gd.orderdata.dto;
import io.swagger.annotations.ApiModelProperty;
import org.sxkj.gd.orderdata.entity.GdDataEvaluationEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.sxkj.gd.orderdata.param.GdDataObjectionAttachmentParam;
import java.util.List;
/**
 * 数据评价管理表 数据传输对象实体类
@@ -27,8 +31,8 @@
 * @since 2026-01-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class GdDataEvaluationDTO extends GdDataEvaluationEntity {
public class GdDataEvaluationDTO {
    private static final long serialVersionUID = 1L;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/dto/GdDataObjectionAttachmentDTO.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.gd.orderdata.dto;
import io.swagger.annotations.ApiModelProperty;
import org.sxkj.gd.orderdata.entity.GdDataObjectionAttachmentEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -27,8 +28,19 @@
 * @since 2026-01-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class GdDataObjectionAttachmentDTO extends GdDataObjectionAttachmentEntity {
public class GdDataObjectionAttachmentDTO {
    private static final long serialVersionUID = 1L;
    /**
     * 关联数据异议表ID
     */
    @ApiModelProperty(value = "关联数据异议表ID")
    private Integer objectionId;
    /**
     * 附件表id
     */
    @ApiModelProperty(value = "附件表id")
    private Long attachId;
    @ApiModelProperty(value = "附件名称")
    private String attachName;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/dto/GdDataObjectionDTO.java
@@ -16,9 +16,13 @@
 */
package org.sxkj.gd.orderdata.dto;
import io.swagger.annotations.ApiModelProperty;
import org.sxkj.gd.orderdata.entity.GdDataObjectionEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.sxkj.gd.orderdata.param.GdDataObjectionAttachmentParam;
import java.util.List;
/**
 * 数据异议申请表 数据传输对象实体类
@@ -27,8 +31,70 @@
 * @since 2026-01-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class GdDataObjectionDTO extends GdDataObjectionEntity {
public class GdDataObjectionDTO {
    private static final long serialVersionUID = 1L;
    /**
     * 异议标题
     */
    @ApiModelProperty(value = "异议标题")
    private String title;
    /**
     * 异议类别(如“材料佐证&quot;)
     */
    @ApiModelProperty(value = "异议类别(如“材料佐证&quot;)")
    private String objectionType;
    /**
     * 异议状态(草稿/待处理/已反馈)
     */
    @ApiModelProperty(value = "异议状态(草稿/待处理/已反馈)")
    private String objectionStatus;
    /**
     * 目录/申请资源名称
     */
    @ApiModelProperty(value = "目录/申请资源名称")
    private String catalogResourceName;
    /**
     * 问题提交人
     */
    @ApiModelProperty(value = "问题提交人")
    private String submitter;
    /**
     * 提交人联系方式
     */
    @ApiModelProperty(value = "提交人联系方式")
    private String submitterContact;
    /**
     * 处理单位(如“应急部门&quot;)
     */
    @ApiModelProperty(value = "处理单位(如“应急部门&quot;)")
    private String handleUnit;
    /**
     * 异议描述
     */
    @ApiModelProperty(value = "异议描述")
    private String objectionDesc;
    /**
     * 异议依据
     */
    @ApiModelProperty(value = "异议依据")
    private String objectionBasis;
    /**
     * 其他异议详情
     */
    @ApiModelProperty(value = "其他异议详情")
    private String otherObjectionDetail;
    /**
     * 审核意见
     */
    @ApiModelProperty(value = "审核意见")
    private String reviewOpinion;
    /**
     * 区域编码
     */
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
    @ApiModelProperty(value = "附件")
    private List<GdDataObjectionAttachmentDTO> attachmentList;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/entity/GdDataObjectionAttachmentEntity.java
@@ -41,11 +41,14 @@
     * 关联数据异议表ID
     */
    @ApiModelProperty(value = "关联数据异议表ID")
    private Integer objectionId;
    private Long objectionId;
    /**
     * 附件表id
     */
    @ApiModelProperty(value = "附件表id")
    private Long attachId;
    @ApiModelProperty(value = "附件名称")
    private String attachName;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/entity/GdDataObjectionEntity.java
@@ -98,4 +98,10 @@
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
    /**
     * 附件名称列表(逗号分隔)
     */
    @ApiModelProperty(value = "附件名称列表(逗号分隔)")
    private String attachNames;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionAttachmentMapper.xml
@@ -7,6 +7,7 @@
        <result column="id" property="id"/>
        <result column="objection_id" property="objectionId"/>
        <result column="attach_id" property="attachId"/>
        <result column="attach_name" property="attachName"/>
        <result column="create_user" property="createUser"/>
        <result column="create_dept" property="createDept"/>
        <result column="create_time" property="createTime"/>
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.java
@@ -17,6 +17,7 @@
package org.sxkj.gd.orderdata.mapper;
import org.sxkj.gd.orderdata.entity.GdDataObjectionEntity;
import org.sxkj.gd.orderdata.param.GdDataObjectionPageParam;
import org.sxkj.gd.orderdata.vo.GdDataObjectionVO;
import org.sxkj.gd.orderdata.excel.GdDataObjectionExcel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -40,7 +41,7 @@
     * @param gdDataObjection
     * @return
     */
    List<GdDataObjectionVO> selectGdDataObjectionPage(IPage page, GdDataObjectionVO gdDataObjection);
    List<GdDataObjectionVO> selectGdDataObjectionPage(IPage page, GdDataObjectionPageParam gdDataObjection);
    /**
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="org.sxkj.gd.orderdata.mapper.GdDataObjectionMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="gdDataObjectionResultMap" type="org.sxkj.gd.orderdata.entity.GdDataObjectionEntity">
    <resultMap id="gdDataObjectionResultMap" type="org.sxkj.gd.orderdata.vo.GdDataObjectionVO">
        <result column="id" property="id"/>
        <result column="title" property="title"/>
        <result column="objection_type" property="objectionType"/>
@@ -17,6 +17,7 @@
        <result column="other_objection_detail" property="otherObjectionDetail"/>
        <result column="review_opinion" property="reviewOpinion"/>
        <result column="area_code" property="areaCode"/>
        <result column="attach_names" property="attachNames"/>
        <result column="create_user" property="createUser"/>
        <result column="create_dept" property="createDept"/>
        <result column="create_time" property="createTime"/>
@@ -28,7 +29,18 @@
    <select id="selectGdDataObjectionPage" resultMap="gdDataObjectionResultMap">
        select * from ja_gd_data_objection where is_deleted = 0
        select do.*, GROUP_CONCAT(da.attach_name SEPARATOR ',') as attach_names
        from ja_gd_data_objection do
        left join ja_gd_data_objection_attachment da on do.id = da.objection_id
        <where>
            <if test="param2.title != null and param2.title != ''">
                and do.title like concat('%',#{param2.title},'%')
            </if>
            <if test="param2.objectionStatus != null and param2.objectionStatus != ''">
                and do.objection_status = #{param2.objectionStatus}
            </if>
        </where>
        group by do.id
    </select>
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/param/GdDataObjectionAttachmentParam.java
New file
@@ -0,0 +1,21 @@
package org.sxkj.gd.orderdata.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class GdDataObjectionAttachmentParam {
    /**
     * 关联数据异议表ID
     */
    @ApiModelProperty(value = "关联数据异议表ID")
    private Integer objectionId;
    /**
     * 附件表id
     */
    @ApiModelProperty(value = "附件表id")
    private Long attachId;
    @ApiModelProperty(value = "附件名称")
    private String attachName;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/param/GdDataObjectionPageParam.java
New file
@@ -0,0 +1,19 @@
package org.sxkj.gd.orderdata.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class GdDataObjectionPageParam {
    /**
     * 异议标题
     */
    @ApiModelProperty(value = "异议标题")
    private String title;
    /**
     * 异议状态(草稿/待处理/已反馈)
     */
    @ApiModelProperty(value = "异议状态(草稿/待处理/已反馈)")
    private String objectionStatus;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/IGdDataObjectionService.java
@@ -17,11 +17,15 @@
package org.sxkj.gd.orderdata.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.gd.orderdata.dto.GdDataObjectionDTO;
import org.sxkj.gd.orderdata.entity.GdDataObjectionEntity;
import org.sxkj.gd.orderdata.param.GdDataObjectionPageParam;
import org.sxkj.gd.orderdata.vo.GdDataObjectionVO;
import org.sxkj.gd.orderdata.excel.GdDataObjectionExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import javax.validation.Valid;
import java.util.List;
/**
@@ -38,7 +42,7 @@
     * @param gdDataObjection
     * @return
     */
    IPage<GdDataObjectionVO> selectGdDataObjectionPage(IPage<GdDataObjectionVO> page, GdDataObjectionVO gdDataObjection);
    IPage<GdDataObjectionVO> selectGdDataObjectionPage(IPage<GdDataObjectionVO> page, GdDataObjectionPageParam gdDataObjection);
    /**
@@ -49,4 +53,10 @@
     */
    List<GdDataObjectionExcel> exportGdDataObjection(Wrapper<GdDataObjectionEntity> queryWrapper);
    /**
     *
     * @param gdDataObjectionDTO
     * @return
     */
    boolean saveOrUpdateDataObjection(@Valid GdDataObjectionDTO gdDataObjectionDTO);
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdDataObjectionServiceImpl.java
@@ -16,7 +16,12 @@
 */
package org.sxkj.gd.orderdata.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.sxkj.gd.orderdata.dto.GdDataObjectionDTO;
import org.sxkj.gd.orderdata.entity.GdDataObjectionAttachmentEntity;
import org.sxkj.gd.orderdata.entity.GdDataObjectionEntity;
import org.sxkj.gd.orderdata.param.GdDataObjectionPageParam;
import org.sxkj.gd.orderdata.service.IGdDataObjectionAttachmentService;
import org.sxkj.gd.orderdata.vo.GdDataObjectionVO;
import org.sxkj.gd.orderdata.excel.GdDataObjectionExcel;
import org.sxkj.gd.orderdata.mapper.GdDataObjectionMapper;
@@ -25,6 +30,9 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.sxkj.gd.orderdata.wrapper.GdDataObjectionWrapper;
import org.sxkj.gd.orderdata.wrapper.GdSupplyDemandAuditAttachmentWrapper;
import java.util.List;
/**
@@ -36,8 +44,11 @@
@Service
public class GdDataObjectionServiceImpl extends BaseServiceImpl<GdDataObjectionMapper, GdDataObjectionEntity> implements IGdDataObjectionService {
    @Autowired
    private IGdDataObjectionAttachmentService gdDataObjectionAttachmentService;
    @Override
    public IPage<GdDataObjectionVO> selectGdDataObjectionPage(IPage<GdDataObjectionVO> page, GdDataObjectionVO gdDataObjection) {
    public IPage<GdDataObjectionVO> selectGdDataObjectionPage(IPage<GdDataObjectionVO> page, GdDataObjectionPageParam gdDataObjection) {
        return page.setRecords(baseMapper.selectGdDataObjectionPage(page, gdDataObjection));
    }
@@ -45,10 +56,23 @@
    @Override
    public List<GdDataObjectionExcel> exportGdDataObjection(Wrapper<GdDataObjectionEntity> queryWrapper) {
        List<GdDataObjectionExcel> gdDataObjectionList = baseMapper.exportGdDataObjection(queryWrapper);
        //gdDataObjectionList.forEach(gdDataObjection -> {
        // gdDataObjectionList.forEach(gdDataObjection -> {
        //    gdDataObjection.setTypeName(DictCache.getValue(DictEnum.YES_NO, GdDataObjection.getType()));
        //});
        return gdDataObjectionList;
    }
    @Override
    public boolean saveOrUpdateDataObjection(GdDataObjectionDTO gdDataEvaluationDTO) {
        GdDataObjectionEntity gdDataObjectionEntity = GdDataObjectionWrapper.build().entityDTO(gdDataEvaluationDTO);
        List<GdDataObjectionAttachmentEntity> gdDataObjectionAttachmentEntities = GdSupplyDemandAuditAttachmentWrapper.build().entityDTO(gdDataEvaluationDTO.getAttachmentList());
        boolean result = saveOrUpdate(gdDataObjectionEntity);
        if (result) {
            gdDataObjectionAttachmentEntities.forEach(gdDataObjectionAttachmentEntity -> {
                gdDataObjectionAttachmentEntity.setObjectionId(gdDataObjectionEntity.getId());
            });
            return gdDataObjectionAttachmentService.saveOrUpdateBatch(gdDataObjectionAttachmentEntities);
        }
        return false;
    }
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/wrapper/GdDataObjectionWrapper.java
@@ -18,6 +18,7 @@
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.sxkj.gd.orderdata.dto.GdDataObjectionDTO;
import org.sxkj.gd.orderdata.entity.GdDataObjectionEntity;
import org.sxkj.gd.orderdata.vo.GdDataObjectionVO;
import java.util.Objects;
@@ -46,5 +47,9 @@
        return gdDataObjectionVO;
    }
    public GdDataObjectionEntity entityDTO(GdDataObjectionDTO gdDataObjectionDTO) {
        return Objects.requireNonNull(BeanUtil.copy(gdDataObjectionDTO, GdDataObjectionEntity.class));
    }
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/wrapper/GdSupplyDemandAuditAttachmentWrapper.java
@@ -18,9 +18,14 @@
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.sxkj.gd.orderdata.dto.GdDataObjectionAttachmentDTO;
import org.sxkj.gd.orderdata.entity.GdDataObjectionAttachmentEntity;
import org.sxkj.gd.orderdata.entity.GdSupplyDemandAuditAttachmentEntity;
import org.sxkj.gd.orderdata.vo.GdSupplyDemandAuditAttachmentVO;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 供需需求审核附件表 包装类,返回视图层所需的字段
@@ -45,6 +50,15 @@
        return gdSupplyDemandAuditAttachmentVO;
    }
    public GdDataObjectionAttachmentEntity entityDTO(GdDataObjectionAttachmentDTO gdDataObjectionAttachmentDTO) {
        return Objects.requireNonNull(BeanUtil.copy(gdDataObjectionAttachmentDTO, GdDataObjectionAttachmentEntity.class));
    }
    public List<GdDataObjectionAttachmentEntity> entityDTO(List<GdDataObjectionAttachmentDTO> dtoList) {
        return dtoList.stream()
            .map(item -> Objects.requireNonNull(BeanUtil.copy(item, GdDataObjectionAttachmentEntity.class)))
            .collect(Collectors.toList());
    }
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.xml
@@ -6,6 +6,7 @@
    <resultMap id="gdPatrolTaskResultMap" type="org.sxkj.gd.workorder.vo.GdPatrolTaskVO">
        <result column="id" property="id"/>
        <result column="work_order_id" property="workOrderId"/>
        <result column="work_order_name" property="workOrderName"/>
        <result column="patrol_task_name" property="patrolTaskName"/>
        <result column="patrol_task_type" property="patrolTaskType"/>
        <result column="execute_time" property="executeTime"/>
@@ -29,18 +30,18 @@
    <select id="selectGdPatrolTaskPage" resultMap="gdPatrolTaskResultMap">
        select pt.*,
               wo.work_order_name,
               IFNULL(tr.result_count, 0) as result_count,
               IFNULL(tr.issue_event_count, 0) as issue_event_count
        wo.work_order_name,
        IFNULL(tr.result_count, 0) as result_count,
        IFNULL(tr.issue_event_count, 0) as issue_event_count
        from ja_gd_patrol_task pt
                 left join ja_gd_work_order wo on pt.work_order_id = wo.id
                 left join (
            select patrol_task_id,
                   count(*) as result_count,
                   sum(case when distribute_status in (1,2) then 1 else 0 end) as issue_event_count
            from ja_gd_task_result
            where is_deleted = 0
            group by patrol_task_id
        left join ja_gd_work_order wo on pt.work_order_id = wo.id
        left join (
        select patrol_task_id,
        count(*) as result_count,
        sum(case when distribute_status in (1,2) then 1 else 0 end) as issue_event_count
        from ja_gd_task_result
        where is_deleted = 0
        group by patrol_task_id
        ) tr on tr.patrol_task_id = pt.id
        <where>
            <if test="param2.workOrderId != null and param2.workOrderId != ''">
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdWorkOrderMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="org.sxkj.gd.workorder.mapper.GdWorkOrderMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="gdWorkOrderResultMap" type="org.sxkj.gd.workorder.entity.GdWorkOrderEntity">
    <resultMap id="gdWorkOrderResultMap" type="org.sxkj.gd.workorder.vo.GdWorkOrderVO">
        <result column="id" property="id"/>
        <result column="work_order_name" property="workOrderName"/>
        <result column="work_order_code" property="workOrderCode"/>
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdPatrolTaskVO.java
@@ -16,10 +16,14 @@
 */
package org.sxkj.gd.workorder.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * 巡查任务表 视图实体类
@@ -28,8 +32,7 @@
 * @since 2026-01-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class GdPatrolTaskVO extends GdPatrolTaskEntity {
public class GdPatrolTaskVO {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "成果数量")
@@ -38,4 +41,95 @@
    @ApiModelProperty(value = "问题事件数量")
    private Long issueEventCount;
    @ApiModelProperty(value = "工单名称")
    private String workOrderName;
    /**
     * 关联工单任务表ID
     */
    @ApiModelProperty(value = "关联工单任务表ID")
    private Long workOrderId;
    /**
     * 巡查任务编号
     */
    @ApiModelProperty(value = "巡查任务编号")
    private String taskNo;
    /**
     * 巡查任务名称
     */
    @ApiModelProperty(value = "巡查任务名称")
    private String patrolTaskName;
    /**
     * 巡查任务类型(巡查类/安检类等)
     */
    @ApiModelProperty(value = "巡查任务类型 1.巡查类 2.巡检类 3.安保类 4.文旅类 5.采集数据类 ")
    private String patrolTaskType;
    /**
     * 执行时间
     */
    @ApiModelProperty(value = "执行时间")
    private Date executeTime;
    /**
     * 巡查任务航线URL
     */
    @ApiModelProperty(value = "巡查任务航线URL")
    private String patrolRouteUrl;
    /**
     * 推荐飞手名称
     */
    @ApiModelProperty(value = "推荐飞手名称")
    private String recommendFlyerName;
    /**
     * 关联设备ID
     */
    @ApiModelProperty(value = "关联设备ID")
    private Long deviceId;
    /**
     * 任务描述
     */
    @ApiModelProperty(value = "任务描述")
    private String taskDesc;
    /**
     * 状态:0待签收、1拒绝签收、2已撤回、3待审核、4审核驳回、5审核通过、6待验收、7拒绝验收、8验收通过
     */
    @ApiModelProperty(value = "状态:0待签收、1拒绝签收、2已撤回、3待审核、4审核驳回、5审核通过、6待验收、7拒绝验收、8验收通过")
    private String taskStatus;
    /**
     * 区域编码
     */
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
    @ApiModelProperty("主键id")
    private Long id;
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("创建人")
    private Long createUser;
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("创建部门")
    private Long createDept;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("更新人")
    private Long updateUser;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;
    @ApiModelProperty("业务状态")
    private Integer status;
    @ApiModelProperty("是否已删除")
    private Integer isDeleted;
}