guoshilong
2024-02-06 13b6d196199d6b73e5908db69d007606afaebe8b
任务状态数量接口优化
6 files modified
1 files added
184 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java 17 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java 11 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml 82 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java 41 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/TaskStatus.java 18 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/TaskStatusCount.java 6 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
@@ -316,7 +316,20 @@
    @GetMapping("getTaskStatusCount")
    public R getTaskStatusCount(PatrolTaskVO patrolTaskVO){
        List<TaskStatusCount> list = patrolTaskService.getTaskStatusCount(patrolTaskVO);
//        List<TaskStatusCount> list = patrolTaskService.getTaskStatusCount(patrolTaskVO);
        List<TaskStatusCount> list = patrolTaskService.getTaskStatusCountOptimize(patrolTaskVO);
        return R.data(list);
    }
    @GetMapping("getTaskStatus")
    public R getTaskStatus(PatrolTaskVO patrolTaskVO){
        TaskStatus taskStatus = patrolTaskService.getTaskStatus(patrolTaskVO);
        return R.data(taskStatus);
    }
    @GetMapping("getTaskStatusCountOptimize")
    public R getTaskStatusCountOptimize(PatrolTaskVO patrolTaskVO){
        List<TaskStatusCount> list = patrolTaskService.getTaskStatusCountOptimize(patrolTaskVO);
        return R.data(list);
    }
@@ -327,4 +340,6 @@
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java
@@ -1,10 +1,7 @@
package cn.gistack.sm.patrol.mapper;
import cn.gistack.sm.patrol.entity.PatrolTask;
import cn.gistack.sm.patrol.vo.PatrolTaskReport;
import cn.gistack.sm.patrol.vo.PatrolTaskStatisticsVO;
import cn.gistack.sm.patrol.vo.PatrolTaskVO;
import cn.gistack.sm.patrol.vo.TaskStatusCount;
import cn.gistack.sm.patrol.vo.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
@@ -99,4 +96,10 @@
    List<PatrolTaskReport> getRegionReportPage(IPage<PatrolTaskReport> page, @Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
    List<PatrolTaskReport> getRegionReportList(@Param("patrolTaskReport")PatrolTaskReport patrolTaskReport);
    TaskStatusCount getTaskStatusCountByType(@Param("vo") PatrolTaskVO patrolTaskVO, @Param("type") String type);
    TaskStatusCount getTaskStatusCountAll(@Param("vo") PatrolTaskVO patrolTaskVO);
    TaskStatus getTaskStatus(@Param("vo") PatrolTaskVO patrolTaskVO);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
@@ -574,6 +574,62 @@
            </if>
    </select>
    <select id="getTaskStatusCountByType" resultType="cn.gistack.sm.patrol.vo.TaskStatusCount">
        SELECT
            case when T.state = '1' then '未完成'
                        when t.state = '2' then '进行中'
                        when t.state = '3' then '已完成'
                         else null end as name,
             T.STATE AS VALUE ,
             count(*) as taskCount
        FROM YWXT.SM_PATROL_TASK T
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T.project_id
        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
        LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
        LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
        LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
        WHERE   T.IS_DELETED = '0'
        <if test="type != null and type !=''">
            and t.state = #{type}
        </if>
        <if test="vo.adCode != null and vo.adCode != '' ">
            and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
        </if>
        <if test="vo.startTime !=null and vo.startTime !=''">
            AND T.start_time &gt;= #{vo.startTime}
        </if>
        <if test="vo.endTime !=null and vo.endTime !=''">
            AND T.end_time &lt;= #{vo.endTime}
        </if>
        <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
            AND T.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
        </if>
        GROUP BY T.STATE
    </select>
    <select id="getTaskStatusCountAll" resultType="cn.gistack.sm.patrol.vo.TaskStatusCount">
        SELECT '全部' AS name,'' AS value , count(*) as taskCount
        FROM SM_PATROL_TASK T1
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T1.project_id
        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
        LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
        LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
        LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
        WHERE T1.IS_DELETED = 0
        <if test="vo.adCode != null and vo.adCode != '' ">
            and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
        </if>
        <if test="vo.startTime !=null and vo.startTime !=''">
            AND T1.start_time &gt;= #{vo.startTime}
        </if>
        <if test="vo.endTime !=null and vo.endTime !=''">
            AND T1.end_time &lt;= #{vo.endTime}
        </if>
        <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
            AND T1.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
        </if>
    </select>
    <select id="getTaskTypeCount" resultType="cn.gistack.sm.patrol.vo.TaskStatusCount">
@@ -604,6 +660,32 @@
        ) A ON A.task_type = spt.id
        WHERE SPT.IS_DELETED = 0
    </select>
    <select id="getTaskStatus" resultType="cn.gistack.sm.patrol.vo.TaskStatus">
        SELECT
            count(*) as total,
            sum(case when t.state = '1' then 1 else 0 end) unfinished,
            sum(case when t.state = '2' then 1 else 0 end) processing,
            sum(case when t.state = '3' then 1 else 0 end) finished
        FROM YWXT.SM_PATROL_TASK T
                 LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T.project_id
                 LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
                 LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
                 LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
                 LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
        WHERE  T.IS_DELETED = 0
        <if test="vo.adCode != null and vo.adCode != '' ">
            and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
        </if>
        <if test="vo.startTime !=null and vo.startTime !=''">
            AND T.start_time &gt;= #{vo.startTime}
        </if>
        <if test="vo.endTime !=null and vo.endTime !=''">
            AND T.end_time &lt;= #{vo.endTime}
        </if>
        <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
            AND T.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java
@@ -3,10 +3,7 @@
import cn.gistack.flow.core.entity.BladeFlow;
import cn.gistack.sm.patrol.entity.PatrolReport;
import cn.gistack.sm.patrol.entity.PatrolTask;
import cn.gistack.sm.patrol.vo.BladeFlowTask;
import cn.gistack.sm.patrol.vo.PatrolTaskReport;
import cn.gistack.sm.patrol.vo.PatrolTaskVO;
import cn.gistack.sm.patrol.vo.TaskStatusCount;
import cn.gistack.sm.patrol.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
@@ -81,4 +78,8 @@
    List<TaskStatusCount> getTaskStatusCount(PatrolTaskVO patrolTaskVO);
    List<TaskStatusCount> getTaskTypeCount(PatrolTaskVO patrolTaskVO);
    List<TaskStatusCount> getTaskStatusCountOptimize(PatrolTaskVO patrolTaskVO);
    TaskStatus getTaskStatus(PatrolTaskVO patrolTaskVO);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
@@ -15,10 +15,7 @@
import cn.gistack.sm.patrol.service.IPatrolTaskService;
import cn.gistack.sm.patrol.util.EnhancementServicesTool;
import cn.gistack.sm.patrol.util.IdWorker;
import cn.gistack.sm.patrol.vo.BladeFlowTask;
import cn.gistack.sm.patrol.vo.PatrolTaskReport;
import cn.gistack.sm.patrol.vo.PatrolTaskVO;
import cn.gistack.sm.patrol.vo.TaskStatusCount;
import cn.gistack.sm.patrol.vo.*;
import cn.gistack.sm.sjztmd.service.IYwTermitesTaskService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
@@ -256,6 +253,42 @@
    }
    @Override
    public List<TaskStatusCount> getTaskStatusCountOptimize(PatrolTaskVO patrolTaskVO) {
        List<TaskStatusCount> list = new ArrayList<>();
//        TaskStatusCount all = baseMapper.getTaskStatusCountAll(patrolTaskVO);
//
//        TaskStatusCount unfinished = baseMapper.getTaskStatusCountByType(patrolTaskVO,"1");
//        TaskStatusCount processing = baseMapper.getTaskStatusCountByType(patrolTaskVO,"2");
//        TaskStatusCount finished = baseMapper.getTaskStatusCountByType(patrolTaskVO,"3");
//
//        list.add(unfinished);
//        list.add(processing);
//        list.add(finished);
//        list.add(all);
        TaskStatus taskStatus = baseMapper.getTaskStatus(patrolTaskVO);
        TaskStatusCount unfinished = new TaskStatusCount("未完成","1",taskStatus.getUnfinished());
        TaskStatusCount processing = new TaskStatusCount("进行中","2",taskStatus.getProcessing());
        TaskStatusCount finished = new TaskStatusCount("已完成","3",taskStatus.getFinished());
        TaskStatusCount all = new TaskStatusCount("全部","",taskStatus.getTotal());
        list.add(unfinished);
        list.add(processing);
        list.add(finished);
        list.add(all);
        return list;
    }
    @Override
    public TaskStatus getTaskStatus(PatrolTaskVO patrolTaskVO) {
        TaskStatus taskStatus = baseMapper.getTaskStatus(patrolTaskVO);
        return taskStatus;
    }
    @Override
    public List<TaskStatusCount> getTaskTypeCount(PatrolTaskVO patrolTaskVO) {
        return baseMapper.getTaskTypeCount(patrolTaskVO);
    }
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/TaskStatus.java
New file
@@ -0,0 +1,18 @@
package cn.gistack.sm.patrol.vo;
import lombok.Data;
@Data
public class TaskStatus {
    private Integer total;
    private Integer unfinished;
    private Integer processing;
    private Integer finished;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/TaskStatusCount.java
@@ -19,4 +19,10 @@
     * 任务数量
     */
    private Integer taskCount;
    public TaskStatusCount(String name, String value, Integer taskCount) {
        this.name = name;
        this.value=value;
        this.taskCount = taskCount;
    }
}