drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
@@ -16,47 +16,39 @@ */ package org.sxkj.gd.workorder.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import lombok.AllArgsConstructor; import javax.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springblade.core.secure.BladeUser; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.excel.util.ExcelUtil; 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.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; 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.common.redis.RedisOpsUtils; import org.sxkj.gd.common.IdParam; import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity; import org.sxkj.gd.workorder.enums.PatrolTaskStatusEnum; import org.sxkj.gd.workorder.param.GdPatrolTaskAddParam; import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam; import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam; import org.sxkj.gd.workorder.param.GdPatrolTaskUpdateParam; import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel; import org.sxkj.gd.workorder.param.*; import org.sxkj.gd.workorder.service.IGdPatrolTaskService; import org.sxkj.gd.workorder.vo.GdPatrolTaskSimpleVO; import org.sxkj.gd.workorder.vo.GdPatrolTaskVO; import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel; import org.sxkj.gd.workorder.wrapper.GdPatrolTaskWrapper; import org.sxkj.gd.workorder.service.IGdPatrolTaskService; 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 org.sxkj.system.cache.SysCache; import springfox.documentation.annotations.ApiIgnore; import java.util.*; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.*; /** * 巡查任务表 控制器 @@ -249,4 +241,16 @@ return R.data(list); } /** * 查询待验收状态的巡查任务列表(对外接口) * 支持按巡查任务名称模糊查询和时间区间查询 */ @GetMapping("/pendingAcceptanceTasks") @ApiOperationSupport(order = 18) @ApiOperation(value = "查询待验收状态的巡查任务列表", notes = "对外接口,支持任务名称和时间区间查询") public R<List<GdPatrolTaskVO>> pendingAcceptanceTasks(GdPatrolTaskPendingAcceptanceQueryParam queryParam) { List<GdPatrolTaskVO> list = gdPatrolTaskService.selectPendingAcceptanceTasks(queryParam); return R.data(list); } } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.java
@@ -19,6 +19,7 @@ import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity; import org.sxkj.gd.workorder.entity.GdWorkOrderEntity; import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam; import org.sxkj.gd.workorder.param.GdPatrolTaskPendingAcceptanceQueryParam; import org.sxkj.gd.workorder.vo.GdPatrolTaskSimpleVO; import org.sxkj.gd.workorder.vo.GdPatrolTaskVO; import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel; @@ -91,4 +92,12 @@ * @return 巡查任务列表 */ List<GdPatrolTaskSimpleVO> selectListByWorkOrderId(@Param("workOrderId") Long workOrderId); /** * 查询待验收状态的巡查任务列表(对外接口) * * @param queryParam 查询参数,包含任务名称和时间区间 * @return 待验收状态的巡查任务列表 */ List<GdPatrolTaskVO> selectPendingAcceptanceTasks(@Param("queryParam") GdPatrolTaskPendingAcceptanceQueryParam queryParam); } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.xml
@@ -160,4 +160,45 @@ ORDER BY create_time DESC </select> <!-- 查询待验收状态的巡查任务列表(对外接口) --> <select id="selectPendingAcceptanceTasks" resultMap="gdPatrolTaskResultMap"> SELECT pt.*, md.nickname as device_name, wo.work_order_name, wo.work_order_status, COALESCE(tr.result_count, 0) as result_count, COALESCE(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::VARCHAR = wo.id::VARCHAR LEFT JOIN ja_gd_manage_device md ON md.id::VARCHAR = pt.device_id::VARCHAR 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::VARCHAR = pt.id::VARCHAR <where> pt.is_deleted = 0 AND wo.is_deleted = 0 AND wo.work_order_status::VARCHAR <= '40'::VARCHAR <if test="queryParam.patrolTaskName != null and queryParam.patrolTaskName != ''"> AND pt.patrol_task_name LIKE CONCAT('%',#{queryParam.patrolTaskName},'%') </if> <if test="queryParam.startTime != null and queryParam.startTime != '' and queryParam.endTime != null and queryParam.endTime != ''"> AND pt.execute_time BETWEEN #{queryParam.startTime}::timestamp AND #{queryParam.endTime}::timestamp </if> </where> ORDER BY pt.create_time DESC, pt.execute_time ASC </select> </mapper> drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdPatrolTaskPendingAcceptanceQueryParam.java
New file @@ -0,0 +1,53 @@ /* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.sxkj.gd.workorder.param; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import springfox.documentation.annotations.ApiIgnore; import java.io.Serializable; /** * 待验收状态巡查任务查询参数类 * * @author lw * @since 2026-06-22 */ @Data @ApiIgnore public class GdPatrolTaskPendingAcceptanceQueryParam implements Serializable { private static final long serialVersionUID = 1L; /** * 巡查任务名称(模糊查询) */ @ApiModelProperty(value = "巡查任务名称(模糊查询)") private String patrolTaskName; /** * 执行时间范围-开始 */ @ApiModelProperty(value = "执行时间范围-开始") private String startTime; /** * 执行时间范围-结束 */ @ApiModelProperty(value = "执行时间范围-结束") private String endTime; } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java
@@ -24,6 +24,7 @@ import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel; import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam; import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam; import org.sxkj.gd.workorder.param.GdPatrolTaskPendingAcceptanceQueryParam; import org.sxkj.gd.workorder.vo.GdPatrolTaskSimpleVO; import org.sxkj.gd.workorder.vo.GdPatrolTaskVO; @@ -112,4 +113,12 @@ * @return 巡查任务列表 */ List<GdPatrolTaskSimpleVO> selectListByWorkOrderId(Long workOrderId); /** * 查询待验收状态的巡查任务列表(对外接口) * * @param queryParam 查询参数,包含任务名称和时间区间 * @return 待验收状态的巡查任务列表 */ List<GdPatrolTaskVO> selectPendingAcceptanceTasks(GdPatrolTaskPendingAcceptanceQueryParam queryParam); } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
@@ -51,6 +51,7 @@ import org.sxkj.gd.workorder.mapper.GdWorkOrderMapper; import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam; import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam; import org.sxkj.gd.workorder.param.GdPatrolTaskPendingAcceptanceQueryParam; import org.sxkj.gd.workorder.service.IGdManageDeviceService; import org.sxkj.gd.workorder.service.IGdPatrolTaskService; import org.sxkj.gd.workorder.service.IGdTaskResultService; @@ -793,6 +794,26 @@ } /** * 查询待验收状态的巡查任务列表(对外接口) * * @param queryParam 查询参数,包含任务名称和时间区间 * @return 待验收状态的巡查任务列表 */ @Override public List<GdPatrolTaskVO> selectPendingAcceptanceTasks(GdPatrolTaskPendingAcceptanceQueryParam queryParam) { // 1. 参数校验:防止空指针 if (queryParam == null) { queryParam = new GdPatrolTaskPendingAcceptanceQueryParam(); } // 2. 调用Mapper查询待验收状态的巡查任务 List<GdPatrolTaskVO> pendingAcceptanceTasks = baseMapper.selectPendingAcceptanceTasks(queryParam); // 3. 返回查询结果 return pendingAcceptanceTasks; } /** * 将区域编码转换为多级行政区划编码格式 * * @param areaCode 区域编码(如:360802) drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdPatrolTaskVO.java
@@ -44,6 +44,9 @@ @ApiModelProperty(value = "工单名称") private String workOrderName; @ApiModelProperty(value = "工单状态") private String workOrderStatus; /** * 关联工单任务表ID */