广州市综治平台后端
文锦钊
6 days ago f3dd5883d6a8c26f65154b16056bb020c2c00499
feature:能效分析添加办理超时数据展示,同时修复统计图数据缺失的问题
4 files modified
150 ■■■■■ changed files
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java 3 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/AnalysisMapper.java 20 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/xml/AnalysisMapper.xml 102 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/service/AnalysisService.java 25 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java
@@ -488,6 +488,9 @@
                timeoutTaskInfoDTOPage = service.pageDBQuantity(pageRequest, terms);
            }else if(4 == queryType){
                timeoutTaskInfoDTOPage = service.pageAllQuantity(pageRequest, terms);
            }else if(5 == queryType){
                //  办理超时
                timeoutTaskInfoDTOPage = service.pageBLQuantity(pageRequest, terms);
            }
            return ReturnSucUtils.getRepInfo(timeoutTaskInfoDTOPage);
        } catch (Exception e) {
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/AnalysisMapper.java
@@ -125,6 +125,19 @@
    List<TimeoutTaskInfoDTO> listDBQuantity(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
    /**
     * 查询办理超时案件统计
     * @param terms 条件
     * @return long
     */
    long countBLQuantity(@Param("terms") Map<String, Object> terms);
    /**
     * 查询办理超时案件
     * @param terms 查询条件集合
     */
    List<TimeoutTaskInfoDTO> listBLQuantity(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
    /**
     * 查询所有类型超时案件统计
     * @param terms 条件
     * @return long
@@ -214,6 +227,13 @@
    List<TimeOutTaskGroupDTO> countDBQuantityGroup(@Param("terms") Map<String, Object> terms);
    /**
     * 分组查询办理超时案件统计
     * @param terms 条件
     * @return long
     */
    List<TimeOutTaskGroupDTO> countBLQuantityGroup(@Param("terms") Map<String, Object> terms);
    /**
     * 分组查询所有类型超时案件统计
     * @param terms 条件
     * @return long
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/xml/AnalysisMapper.xml
@@ -162,9 +162,9 @@
            fpcs,
            count(case when (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL')
            and ((t2.overtime_status = 1 and t2.status = 2)) then t2.id end) as
            slcs
            slcs,
            count(case when (t2.node_id = 'BLFK')
            and ((t2.overtime_status = 1 and t2.status = 2) or (sysdate > expire_time and t2.status = 1)) then t2.id end) as
            and ((t2.overtime_status = 1 and t2.status = 2)) then t2.id end) as
            blcs
        </if>
        <if test="terms.taskStatus != null and terms.taskStatus == 0">
@@ -173,9 +173,9 @@
            fpcs,
            count(case when (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL')
            and ((sysdate > expire_time and t2.status = 1)) then t2.id end) as
            slcs
            slcs,
            count(case when (t2.node_id = 'BLFK')
            and ((t2.overtime_status = 1 and t2.status = 2) or (sysdate > expire_time and t2.status = 1)) then t2.id end) as
            and ((sysdate > expire_time and t2.status = 1)) then t2.id end) as
            blcs
        </if>
        <if test="terms.taskStatus == null or terms.taskStatus ==''">
@@ -184,7 +184,7 @@
            fpcs,
            count(case when (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL')
            and ((t2.overtime_status = 1 and t2.status = 2) or (sysdate > expire_time and t2.status = 1)) then t2.id end) as
            slcs
            slcs,
            count(case when (t2.node_id = 'BLFK')
            and ((t2.overtime_status = 1 and t2.status = 2) or (sysdate > expire_time and t2.status = 1)) then t2.id end) as
            blcs
@@ -755,6 +755,69 @@
        limit #{page.offset}, #{page.size}
    </select>
    <!--  查询办理超时案件统计  -->
    <select id="countBLQuantity" resultType="java.lang.Long">
        select
        COUNT(1)
        from dyh_ct_unit t1 left join dyh_case_task t2 on t1.id = t2.cande_unit_id
        left join dyh_case_info t3 on t2.case_id = t3.id left join dyh_case_info_unfold t4 on t3.id = t4.id
        where
        t1.delete_status = 0
        and t2.delete_status = 0
        and t3.delete_status = 0
        <include refid="statisticsAVG-wherePart"/>
        and
        (t2.node_id = 'BLFK')
        <if test="terms.taskStatus != null and terms.taskStatus == 1 ">
            and (t2.overtime_status = 1 and t2.status = 2)
        </if>
        <if test="terms.taskStatus != null and terms.taskStatus == 0">
            and (sysdate > expire_time and t2.status = 1)
        </if>
        <if test="terms.taskStatus == null or terms.taskStatus ==''">
        and ((t2.overtime_status = 1 and t2.status = 2) or (sysdate > expire_time and t2.status = 1))
        </if>
    </select>
    <!--  查询办理超时案件  -->
    <select id="listBLQuantity" resultType="cn.huge.module.analysis.domain.dto.TimeoutTaskInfoDTO">
        select t2.case_id as caseId, t2.id as caseTaskId,t2.create_time as turnaroundTime, t2.node_name as nodeName,
        (case t2.status when 1 then 0 when 2 then 1 end) as taskStatus,
        (case t2.status when 2 then t2.overtime_hour when 1 then DATEDIFF(hh, t2.expire_time, sysdate) end) as
        timeLimit,
        t3.case_level as caseGrade, t3.canal_name as caseSource, t4.mediator as mediator, t3.status_name as statusName,
        concat_ws('', ifnull(t3.case_type_first_name, ''), '/' , ifnull(t3.case_type_name, '')) as caseType,
        concat(t3.que_area_name, t3.que_road_name) as queAddress, t2.cande_unit_name as candeUnitName,
        (select count(1) from dyh_case_supervise where case_id = t2.case_id) as superviseCount
        from dyh_ct_unit t1 left join dyh_case_task t2 on t1.id = t2.cande_unit_id
        left join dyh_case_info t3 on t2.case_id = t3.id left join dyh_case_info_unfold t4 on t3.id = t4.id
        where
        t1.delete_status = 0
        and t2.delete_status = 0
        and t3.delete_status = 0
        <include refid="statisticsAVG-wherePart"/>
        and
        (t2.node_id = 'BLFK')
        <if test="terms.taskStatus != null and terms.taskStatus == 1 ">
            and (t2.overtime_status = 1 and t2.status = 2)
        </if>
        <if test="terms.taskStatus != null and terms.taskStatus == 0">
            and (sysdate > expire_time and t2.status = 1)
        </if>
        <if test="terms.taskStatus == null or terms.taskStatus ==''">
            and ((t2.overtime_status = 1 and t2.status = 2) or (sysdate > expire_time and t2.status = 1))
        </if>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(t2.create_time), t2.create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!--  查询督办超时案件统计  -->
    <select id="countAllQuantity" resultType="java.lang.Long">
        select sum(zs)
@@ -769,7 +832,8 @@
        and t3.delete_status = 0
        <include refid="statisticsAVG-wherePart"/>
        and((t2.node_id = 'ZJ_DFP' or t2.node_id = 'QJ_DFP' or t2.node_id = 'SJ_DFP' or t2.node_id = 'DFP')
        or (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL'))
        or (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL')
        or (t2.node_id = 'BLFK'))
        <if test="terms.taskStatus != null and terms.taskStatus == 1 ">
            and (t2.overtime_status = 1 and t2.status = 2)
        </if>
@@ -817,7 +881,8 @@
        and t3.delete_status = 0
        <include refid="statisticsAVG-wherePart"/>
        and ((t2.node_id = 'ZJ_DFP' or t2.node_id = 'QJ_DFP' or t2.node_id = 'SJ_DFP' or t2.node_id = 'DFP')
        or (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL'))
        or (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL')
        or (t2.node_id = 'BLFK'))
        <if test="terms.taskStatus != null and terms.taskStatus == 1 ">
            and (t2.overtime_status = 1 and t2.status = 2)
        </if>
@@ -1340,6 +1405,26 @@
        order by quantity asc
    </select>
    <!--  分组查询办理超时案件统计  -->
    <select id="countBLQuantityGroup" resultType="cn.huge.module.analysis.domain.dto.TimeOutTaskGroupDTO">
        select
        <include refid="selectPart"/>
        COUNT(1) as quantity
        from dyh_ct_unit t1 left join dyh_case_task t2 on t1.id = t2.cande_unit_id
        left join dyh_case_info t3 on t2.case_id = t3.id left join dyh_case_info_unfold t4 on t3.id = t4.id
        where
        t1.delete_status = 0
        and t2.delete_status = 0
        and t3.delete_status = 0
        <include refid="statisticsAVG-wherePart"/>
        and
        (t2.node_id = 'BLFK') and
        ((t2.overtime_status = 1 and t2.status = 2) or (sysdate > expire_time and t2.status = 1) )
        group by
        <include refid="groupPart"/>
        order by quantity asc
    </select>
    <!--  分组查询全部类型案件超时统计  -->
    <select id="countAllQuantityGroup" resultType="cn.huge.module.analysis.domain.dto.TimeOutTaskGroupDTO">
        select
@@ -1358,7 +1443,8 @@
        and t3.delete_status = 0
        <include refid="statisticsAVG-wherePart"/>
        and((t2.node_id = 'ZJ_DFP' or t2.node_id = 'QJ_DFP' or t2.node_id = 'SJ_DFP' or t2.node_id = 'DFP')
        or (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL'))
        or (t2.node_id = 'ZJ_DSL' or t2.node_id = 'QJ_DSL' or t2.node_id = 'SJ_DSL' or t2.node_id = 'DSL')
        or (t2.node_id = 'BLFK'))
        and ((t2.overtime_status = 1 and t2.status = 2) or (sysdate > expire_time and t2.status = 1))
        group by
        <include refid="groupPart"/>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/service/AnalysisService.java
@@ -731,6 +731,9 @@
                timeOutTaskGroupDTOList = mapper.countDBQuantityGroup(terms);
            } else if (4 == queryType) {
                timeOutTaskGroupDTOList = mapper.countAllQuantityGroup(terms);
            }else if (5 == queryType) {
                //  办理超时
                timeOutTaskGroupDTOList = mapper.countBLQuantityGroup(terms);
            }
            List<String> regionList = mapper.listRegion(terms);
@@ -739,7 +742,9 @@
            for (String region : regionList) {
                TimeOutTaskGroupDTO timeOutTaskGroupDTO1 = new TimeOutTaskGroupDTO();
                for (TimeOutTaskGroupDTO timeOutTaskGroupDTO : timeOutTaskGroupDTOList) {
                    if (region.equals(timeOutTaskGroupDTO.getGroupName())) {
                    //  添加包含判断,因为region和timeOutTaskGroupDTO.getGroupName()可能相差一个道字,例如dto为三元里街,而region为三元里街道
                    if (region.equals(timeOutTaskGroupDTO.getGroupName())
                            || region.contains(timeOutTaskGroupDTO.getGroupName())) {
                        timeOutTaskGroupDTO1.setQuantity(timeOutTaskGroupDTO.getQuantity());
                    }
                }
@@ -881,6 +886,24 @@
    }
    /**
     * 分页查询办理超时案件
     *
     * @param page  分页对象
     * @param terms 条件
     * @return Page
     */
    public Page<TimeoutTaskInfoDTO> pageBLQuantity(PageRequest page, Map<String, Object> terms) {
        try {
            long total = mapper.countBLQuantity(terms);
            List<TimeoutTaskInfoDTO> timeoutTaskInfoDTOList = mapper.listBLQuantity(page, terms);
            return new PageImpl<TimeoutTaskInfoDTO>(timeoutTaskInfoDTOList, page, total);
        } catch (Exception e) {
            log.error("[AnalysisService.pageDBQuantity]调用失败,异常信息:" + e, e);
            throw new ServiceException("AnalysisService.pageDBQuantity", e);
        }
    }
    /**
     * 分页查询全部超时案件
     *
     * @param page  分页对象