吉安感知网项目-后端
linwei
2026-01-20 67961e8f4fdbcd83bf59f8c8bd3f8600618e3d61
Merge remote-tracking branch 'origin/master'
15 files modified
145 ■■■■■ changed files
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdSupplyDemandServiceImpl.java 38 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java 8 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdTaskResultController.java 19 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdClueEventEntity.java 10 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml 2 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.java 2 ●●● 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/GdTaskResultMapper.java 2 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml 16 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java 2 ●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdTaskResultService.java 2 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java 4 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdTaskResultServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdPatrolTaskVO.java 5 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdTaskResultVO.java 7 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdSupplyDemandServiceImpl.java
@@ -59,7 +59,7 @@
    private static final String STATUS_APPLY = "1";
    private static final String STATUS_APPROVED = "2";
    private static final String STATUS_REJECTED = "3";
    /**
     * 审核状态常量:0-待审核、1-审核通过、2-审核拒绝
     */
@@ -72,7 +72,7 @@
    @Override
    public IPage<GdSupplyDemandVO> selectGdSupplyDemandPage(IPage<GdSupplyDemandVO> page, GdSupplyDemandPageParam gdSupplyDemand) {
        return page.setRecords(baseMapper.selectGdSupplyDemandPage(page, gdSupplyDemand, buildDeptIdList()));
        return page.setRecords(baseMapper.selectGdSupplyDemandPage(page, gdSupplyDemand, SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()))));
    }
    @Override
@@ -85,7 +85,7 @@
        if (Func.isEmpty(gdSupplyDemand)) {
            throw new ServiceException("需求参数不能为空");
        }
        GdSupplyDemandEntity detail = baseMapper.selectGdSupplyDemandDetail(gdSupplyDemand, buildDeptIdList());
        GdSupplyDemandEntity detail = baseMapper.selectGdSupplyDemandDetail(gdSupplyDemand, SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId())));
        if (detail == null) {
            throw new ServiceException("未查询到数据");
        }
@@ -98,23 +98,23 @@
        if (Func.isEmpty(gdSupplyDemand)) {
            throw new ServiceException("需求参数不能为空");
        }
        // 获取前端传入的需求状态
        String demandStatus = gdSupplyDemand.getDemandStatus();
        if (StringUtil.isBlank(demandStatus)) {
            throw new ServiceException("需求状态不能为空");
        }
        // 校验状态值有效性
        if (!STATUS_DRAFT.equals(demandStatus) && !STATUS_APPLY.equals(demandStatus)) {
            throw new ServiceException("需求状态值无效,仅支持 0(草稿) 或 1(申请中)");
        }
        boolean isInsert = Func.isEmpty(gdSupplyDemand.getId());
        Long userId = AuthUtil.getUserId();
        Long deptId = Long.valueOf(AuthUtil.getDeptId());
        gdSupplyDemand.setUpdateUser(userId);
        boolean saved;
        if (isInsert) {
            gdSupplyDemand.setCreateUser(userId);
@@ -123,18 +123,18 @@
        } else {
            saved = baseMapper.updateGdSupplyDemand(gdSupplyDemand) > 0;
        }
        if (!saved) {
            return false;
        }
        // 仅当状态为"申请中"(1)时才创建审核记录
        if (STATUS_APPLY.equals(demandStatus)) {
            GdSupplyDemandEntity supplyDemand = loadSupplyDemandForAudit(gdSupplyDemand.getId());
            GdSupplyDemandAuditEntity auditEntity = buildAuditEntity(supplyDemand, AUDIT_PENDING, null);
            return gdSupplyDemandAuditService.saveSupplyDemandAudit(auditEntity);
        }
        // 状态为"草稿"(0)时直接返回成功
        return true;
    }
@@ -222,27 +222,11 @@
        }
        GdSupplyDemandDTO query = new GdSupplyDemandDTO();
        query.setId(demandId);
        GdSupplyDemandEntity detail = baseMapper.selectGdSupplyDemandDetail(query, buildDeptIdList());
        GdSupplyDemandEntity detail = baseMapper.selectGdSupplyDemandDetail(query, SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId())));
        if (detail == null) {
            throw new ServiceException("需求数据不存在");
        }
        return detail;
    }
    private List<Long> buildDeptIdList() {
        if (AuthUtil.isAdministrator()) {
            return null;
        }
        Long deptId = Long.valueOf(AuthUtil.getDeptId());
        List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
        List<Long> result = new ArrayList<>();
        if (Func.isNotEmpty(deptIdList)) {
            result.addAll(deptIdList);
        }
        if (!result.contains(deptId)) {
            result.add(deptId);
        }
        return result;
    }
    @Override
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
@@ -26,6 +26,7 @@
import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
@@ -44,6 +45,7 @@
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import org.sxkj.system.cache.SysCache;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
@@ -94,7 +96,11 @@
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入gdPatrolTask")
    public R<IPage<GdPatrolTaskVO>> page(GdPatrolTaskPageParam gdPatrolTask, Query query) {
        IPage<GdPatrolTaskVO> pages = gdPatrolTaskService.selectGdPatrolTaskPage(Condition.getPage(query), gdPatrolTask);
        IPage<GdPatrolTaskVO> pages = gdPatrolTaskService.selectGdPatrolTaskPage(
            Condition.getPage(query),
            gdPatrolTask,
            SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()))
        );
        return R.data(pages);
    }
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdTaskResultController.java
@@ -70,15 +70,24 @@
        return R.data(GdTaskResultWrapper.build().entityVO(detail));
    }
    /**
     * 成果表 分页
     * 成果表 列表
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入gdTaskResult")
    public R<IPage<GdTaskResultVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdTaskResult, Query query) {
        IPage<GdTaskResultEntity> pages = gdTaskResultService.page(Condition.getPage(query), Condition.getQueryWrapper(gdTaskResult, GdTaskResultEntity.class));
        return R.data(GdTaskResultWrapper.build().pageVO(pages));
    @ApiOperation(value = "列表", notes = "传入patrolTaskId")
    public R<List<GdTaskResultVO>> list(@ApiParam(value = "巡查任务ID", required = true) @RequestParam Long patrolTaskId) {
        return R.data(gdTaskResultService.listByPatrolTaskId(patrolTaskId));
    }
//    /**
//     * 成果表 分页
//     */
//    @GetMapping("/list")
//    @ApiOperationSupport(order = 2)
//    @ApiOperation(value = "分页", notes = "传入gdTaskResult")
//    public R<IPage<GdTaskResultVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdTaskResult, Query query) {
//        IPage<GdTaskResultEntity> pages = gdTaskResultService.page(Condition.getPage(query), Condition.getQueryWrapper(gdTaskResult, GdTaskResultEntity.class));
//        return R.data(GdTaskResultWrapper.build().pageVO(pages));
//    }
    /**
     * 成果表 自定义分页
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdClueEventEntity.java
@@ -58,16 +58,6 @@
    @ApiModelProperty(value = "处置部门")
    private String disposeDept;
    /**
     * 分发人员
     */
    @ApiModelProperty(value = "分发人员")
    private String distributeUser;
    /**
     * 分发部门
     */
    @ApiModelProperty(value = "分发部门")
    private String distributeDept;
    /**
     * 分发时间
     */
    @ApiModelProperty(value = "分发时间")
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml
@@ -9,8 +9,6 @@
        <result column="work_order_id" property="workOrderId"/>
        <result column="dispose_user" property="disposeUser"/>
        <result column="dispose_dept" property="disposeDept"/>
        <result column="distribute_user" property="distributeUser"/>
        <result column="distribute_dept" property="distributeDept"/>
        <result column="distribute_time" property="distributeTime"/>
        <result column="work_order_location" property="workOrderLocation"/>
        <result column="event_status" property="eventStatus"/>
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.java
@@ -41,7 +41,7 @@
     * @param gdPatrolTask
     * @return
     */
    List<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage page, GdPatrolTaskPageParam gdPatrolTask);
    List<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage page, GdPatrolTaskPageParam gdPatrolTask, List<Long> deptIdList);
    /**
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="org.sxkj.gd.workorder.mapper.GdPatrolTaskMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="gdPatrolTaskResultMap" type="org.sxkj.gd.workorder.entity.GdPatrolTaskEntity">
    <resultMap id="gdPatrolTaskResultMap" type="org.sxkj.gd.workorder.vo.GdPatrolTaskVO">
        <result column="id" property="id"/>
        <result column="work_order_id" property="workOrderId"/>
        <result column="patrol_task_name" property="patrolTaskName"/>
@@ -22,13 +22,26 @@
        <result column="update_time" property="updateTime"/>
        <result column="status" property="status"/>
        <result column="is_deleted" property="isDeleted"/>
        <result column="result_count" property="resultCount"/>
        <result column="issue_event_count" property="issueEventCount"/>
    </resultMap>
    <select id="selectGdPatrolTaskPage" resultMap="gdPatrolTaskResultMap">
        select pt.*, wo.work_order_name
        select pt.*,
               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
        ) tr on tr.patrol_task_id = pt.id
        <where>
            <if test="param2.workOrderId != null and param2.workOrderId != ''">
                and pt.work_order_id = #{param2.workOrderId}
@@ -42,6 +55,12 @@
            <if test="param2.taskStatus != null and param2.taskStatus != ''">
                and pt.task_status = #{param2.taskStatus}
            </if>
            <if test="param3 != null and param3.size > 0">
                and pt.create_dept in
                <foreach collection="param3" item="deptId" open="(" separator="," close=")">
                    #{deptId}
                </foreach>
            </if>
            <if test="param2.startTime != null and param2.startTime != '' and param2.endTime != null and param2.endTime != '' ">
                and pt.execute_time BETWEEN #{param2.startTime} AND #{param2.endTime}
            </if>
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.java
@@ -42,6 +42,8 @@
     */
    List<GdTaskResultVO> selectGdTaskResultPage(IPage page, GdTaskResultVO gdTaskResult);
    List<GdTaskResultVO> selectGdTaskResultListByPatrolTaskId(@Param("patrolTaskId") Long patrolTaskId);
    /**
     * 获取导出数据
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="org.sxkj.gd.workorder.mapper.GdTaskResultMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="gdTaskResultResultMap" type="org.sxkj.gd.workorder.entity.GdTaskResultEntity">
    <resultMap id="gdTaskResultResultMap" type="org.sxkj.gd.workorder.vo.GdTaskResultVO">
        <result column="id" property="id"/>
        <result column="patrol_task_id" property="patrolTaskId"/>
        <result column="result_code" property="resultCode"/>
@@ -20,6 +20,8 @@
        <result column="update_time" property="updateTime"/>
        <result column="status" property="status"/>
        <result column="is_deleted" property="isDeleted"/>
        <result column="distribute_user_name" property="distributeUserName"/>
        <result column="distribute_dept_name" property="distributeDeptName"/>
    </resultMap>
@@ -27,6 +29,18 @@
        select * from ja_gd_task_result where is_deleted = 0
    </select>
    <select id="selectGdTaskResultListByPatrolTaskId" resultMap="gdTaskResultResultMap">
        select tr.*,
               IFNULL(bu.real_name, bu.name) as distribute_user_name,
               bd.dept_name as distribute_dept_name
        from ja_gd_task_result tr
                 left join ja_gd_clue_event ce on ce.result_id = tr.id and ce.is_deleted = 0
                 left join blade_user bu on bu.id = ce.create_user and bu.is_deleted = 0
                 left join blade_dept bd on bd.id = ce.create_dept and bd.is_deleted = 0
        where tr.is_deleted = 0
          and tr.patrol_task_id = #{patrolTaskId}
    </select>
    <select id="exportGdTaskResult" resultType="org.sxkj.gd.workorder.excel.GdTaskResultExcel">
        SELECT * FROM ja_gd_task_result ${ew.customSqlSegment}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java
@@ -40,7 +40,7 @@
     * @param gdPatrolTask
     * @return
     */
    IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskPageParam gdPatrolTask);
    IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskPageParam gdPatrolTask, List<Long> deptIdList);
    /**
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdTaskResultService.java
@@ -40,6 +40,8 @@
     */
    IPage<GdTaskResultVO> selectGdTaskResultPage(IPage<GdTaskResultVO> page, GdTaskResultVO gdTaskResult);
    List<GdTaskResultVO> listByPatrolTaskId(Long patrolTaskId);
    /**
     * 导出数据
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
@@ -55,8 +55,8 @@
    private IGdWorkOrderFlowService gdWorkOrderFlowService;
    @Override
    public IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskPageParam gdPatrolTask) {
        return page.setRecords(baseMapper.selectGdPatrolTaskPage(page, gdPatrolTask));
    public IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskPageParam gdPatrolTask, List<Long> deptIdList) {
        return page.setRecords(baseMapper.selectGdPatrolTaskPage(page, gdPatrolTask, deptIdList));
    }
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdTaskResultServiceImpl.java
@@ -41,6 +41,11 @@
        return page.setRecords(baseMapper.selectGdTaskResultPage(page, gdTaskResult));
    }
    @Override
    public List<GdTaskResultVO> listByPatrolTaskId(Long patrolTaskId) {
        return baseMapper.selectGdTaskResultListByPatrolTaskId(patrolTaskId);
    }
    @Override
    public List<GdTaskResultExcel> exportGdTaskResult(Wrapper<GdTaskResultEntity> queryWrapper) {
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdPatrolTaskVO.java
@@ -32,5 +32,10 @@
public class GdPatrolTaskVO extends GdPatrolTaskEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "成果数量")
    private Long resultCount;
    @ApiModelProperty(value = "问题事件数量")
    private Long issueEventCount;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdTaskResultVO.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.gd.workorder.vo;
import io.swagger.annotations.ApiModelProperty;
import org.sxkj.gd.workorder.entity.GdTaskResultEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -31,4 +32,10 @@
public class GdTaskResultVO extends GdTaskResultEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "分发人员")
    private String distributeUserName;
    @ApiModelProperty(value = "分发部门")
    private String distributeDeptName;
}