From fca638bd85eb9e5c04a766e7d5c3f469fe2388ca Mon Sep 17 00:00:00 2001 From: zhouxiantao <1026371446@qq.com> Date: Fri, 20 Sep 2024 17:30:15 +0800 Subject: [PATCH] 态势分析 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml | 224 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 187 insertions(+), 37 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml index c168b50..350543c 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml @@ -70,7 +70,7 @@ <result property="statusName" column="status_name"/> <result property="process" column="process"/> <result property="processName" column="process_name"/> - <result property="infoProcess" column="infoProcess"/> + <result property="infoProcess" column="info_process"/> <result property="infoProcessName" column="info_process_name"/> <result property="wantUnitId" column="want_unit_id"/> <result property="wantUnitName" column="want_unit_name"/> @@ -82,7 +82,27 @@ <result property="updateTime" column="update_time"/> </resultMap> <resultMap id="dataResult-all" type="cn.huge.module.cases.domain.dto.CasePageDTO"> - + <result property="id" column="id"/> + <result property="status" column="status"/> + <result property="statusName" column="status_name"/> + <result property="canal" column="canal"/> + <result property="canalName" column="canal_name"/> + <result property="caseLevel" column="case_level"/> + <result property="caseType" column="case_type"/> + <result property="caseTypeName" column="case_type_name"/> + <result property="inputUnitId" column="input_unit_id"/> + <result property="inputUnitName" column="input_unit_name"/> + <result property="mediResult" column="medi_result"/> + <result property="mediResultName" column="medi_result_name"/> + <result property="mediateUnitId" column="mediate_unit_id"/> + <result property="mediateUnitName" column="mediate_unit_name"/> + <result property="assistUnitId" column="assist_unit_id"/> + <result property="assistUnitName" column="assist_unit_name"/> + <result property="closeTime" column="close_time"/> + <result property="agreeType" column="agree_type"/> + <result property="agreeTypeName" column="agree_type_name"/> + <result property="agreeContent" column="agree_content"/> + <result property="createTime" column="create_time"/> </resultMap> <!-- 表 --> <sql id='table-name'>dyh_case_info</sql> @@ -97,9 +117,17 @@ a.case_type_name, a.input_unit_id, a.input_unit_name, + a.create_time, + b.medi_result, b.medi_result_name, - b.mediate_dept_id, - b.mediate_dept_name + b.mediate_unit_id, + b.mediate_unit_name, + b.assist_unit_id, + b.assist_unit_name, + b.close_time, + b.agree_type, + b.agree_type_name, + b.agree_content </sql> <!-- 字段 --> <sql id="column-part"> @@ -247,33 +275,67 @@ <!-- 条件 --> <sql id="where-part-all"> <if test="terms != null"> - <if test="terms.status != null and terms.status !=''"> - and a.status = #{terms.status} - </if> - <if test="terms.statusName != null and terms.statusName !=''"> - and a.status_name = #{terms.statusName} - </if> - <if test="terms.canal != null and terms.canal !=''"> - and a.canal = #{terms.canal} - </if> - <if test="terms.canalName != null and terms.canalName !=''"> - and a.canal_name = #{terms.canalName} - </if> - <if test="terms.caseLevel != null and terms.caseLevel !=''"> - and a.case_level = #{terms.caseLevel} - </if> - <if test="terms.caseType != null and terms.caseType !=''"> - and a.case_type = #{terms.caseType} - </if> - <if test="terms.caseTypeName != null and terms.caseTypeName !=''"> - and a.case_type_name = #{terms.caseTypeName} - </if> - <if test="terms.inputUnitId != null and terms.inputUnitId !=''"> - and a.input_unit_id = #{terms.inputUnitId} - </if> - <if test="terms.inputUnitName != null and terms.inputUnitName !=''"> - and a.input_unit_name = #{terms.inputUnitName} - </if> + <where> + and delete_status = 0 + <if test="terms.status != null and terms.status !=''"> + and a.status = #{terms.status} + </if> + <if test="terms.statusName != null and terms.statusName !=''"> + and a.status_name = #{terms.statusName} + </if> + <if test="terms.canal != null and terms.canal !=''"> + and a.canal = #{terms.canal} + </if> + <if test="terms.canalName != null and terms.canalName !=''"> + and a.canal_name = #{terms.canalName} + </if> + <if test="terms.caseLevel != null and terms.caseLevel !=''"> + and a.case_level = #{terms.caseLevel} + </if> + <if test="terms.caseType != null and terms.caseType !=''"> + and a.case_type = #{terms.caseType} + </if> + <if test="terms.caseTypeName != null and terms.caseTypeName !=''"> + and a.case_type_name = #{terms.caseTypeName} + </if> + <if test="terms.inputUnitId != null and terms.inputUnitId !=''"> + and a.input_unit_id = #{terms.inputUnitId} + </if> + <if test="terms.inputUnitName != null and terms.inputUnitName !=''"> + and a.input_unit_name = #{terms.inputUnitName} + </if> + <if test="terms.visitTimeStart != null and terms.visitTimeStart !='' and terms.visitTimeEnd != null and terms.visitTimeEnd !=''"> + and (DATE_FORMAT(a.visit_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.visitTimeStart} + and DATE_FORMAT(a.visit_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.visitTimeEnd}) + </if> + <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''"> + and (DATE_FORMAT(a.create_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.createStart} + and DATE_FORMAT(a.create_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.createEnd}) + </if> + <if test="terms.closeStart != null and terms.closeStart !='' and terms.closeEnd != null and terms.closeEnd !=''"> + and (DATE_FORMAT(b.close_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.closeStart} + and DATE_FORMAT(b.close_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.closeEnd}) + </if> + <if test="terms.fileStart != null and terms.fileStart !='' and terms.fileEnd != null and terms.fileEnd !=''"> + and (DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.fileStart} + and DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.fileEnd}) + </if> + <if test="terms.queProv != null and terms.queProv !=''"> + and a.que_prov = #{terms.queProv} + </if> + <if test="terms.queCity != null and terms.queCity !=''"> + and a.que_city = #{terms.queCity} + </if> + <if test="terms.queArea != null and terms.queArea !=''"> + and a.que_area = #{terms.queArea} + </if> + <if test="terms.queRoad != null and terms.queRoad !=''"> + and a.que_road = #{terms.queRoad} + </if> + <if test="terms.isArea != null and terms.isArea !=''"> + and a.que_city is not null + </if> + </where> </if> </sql> <!-- 条件 --> @@ -282,8 +344,8 @@ <where> <if test="terms.ids != null and terms.ids.size > 0"> and id in - <foreach collection="terms.id" item="terms.ids" index="index" open="(" separator="," close=")"> - #{terms.id} + <foreach collection="terms.ids" item="id" index="index" open="(" separator="," close=")"> + #{id} </foreach> </if> <if test="terms.id != null and terms.id !=''"> @@ -459,8 +521,8 @@ </if> <if test="terms.processList != null and terms.processList.size > 0"> and process in - <foreach collection="terms.process" item="terms.processList" index="index" open="(" separator="," close=")"> - #{terms.process} + <foreach collection="terms.processList" item="process" index="index" open="(" separator="," close=")"> + #{process} </foreach> </if> <if test="terms.process != null and terms.process !=''"> @@ -514,6 +576,21 @@ </if> </sql> <!-- 更新对象 --> + <update id="updateCaseInfoList"> + update + <include refid="table-name"/> + <set> + <include refid="set-part"/> + </set> + <where> + id IN + <foreach item="id" collection="caseIdList" open="(" separator="," close=")"> + #{id} + </foreach> + </where> + </update> + + <!-- 批量更新对象 --> <update id="updateCaseInfo"> update <include refid="table-name"/> @@ -524,6 +601,7 @@ id = #{entity.id} </where> </update> + <!-- 条件更新对象 --> <update id="updateCaseInfoTerms"> update @@ -579,7 +657,7 @@ select COUNT(1) from - dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.case_id + dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.id <include refid="where-part-all"/> </select> <!-- 根据条件分页查询 --> @@ -587,7 +665,7 @@ SELECT <include refid="column-part-all"/> FROM - dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.case_id + dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.id <include refid="where-part-all"/> <if test="page.sort != null"> <foreach collection="page.sort" item="s" index="index" separator="," open="order by "> @@ -600,4 +678,76 @@ limit #{page.offset}, #{page.size} </select> + <!-- 统计分析(区域) --> + <select id="statisticsArea" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsAreaDTO"> + SELECT + <if test="terms.areaType == null or terms.areaType ==''"> + a.que_area as areaCode,a.que_area_name as areaName, + </if> + <if test='terms.areaType != null and terms.areaType =="1"'> + a.que_area as areaCode,a.que_area_name as areaName, + </if> + <if test='terms.areaType != null and terms.areaType =="2"'> + a.que_road as areaCode,a.que_road_name as areaName, + </if> + count(1) as caseNum, + sum(case when b.medi_result = '22_00025-1' then 1 else 0 end) as resolveNum, + sum(case when b.medi_result is null and a.info_process <![CDATA[ < ]]> 4 then 1 else 0 end) as resolveingNum, + sum(case when b.medi_result = '22_00025-2' then 1 else 0 end) as unResolveNum + FROM + dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.id + <include refid="where-part-all"/> + <if test="terms.areaType == null or terms.areaType ==''"> + group by a.que_area + </if> + <if test='terms.areaType != null and terms.areaType =="1"'> + group by a.que_area + </if> + <if test='terms.areaType != null and terms.areaType =="2"'> + group by a.que_road + </if> + + </select> + <!-- 统计分析(基础) --> + <select id="statisticsBase" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsBaseDTO"> + SELECT + count(1) as totalNum, + sum(case when b.medi_result = '22_00025-1' then 1 else 0 end) as resolveNum, + sum(case when b.medi_result is null and a.info_process <![CDATA[ < ]]> 4 then 1 else 0 end) as resolveingNum, + sum(case when b.medi_result = '22_00025-2' then 1 else 0 end) as unResolveNum, + sum(case when a.case_level = 1 then 1 else 0 end) as oneLevelNum, + sum(case when a.case_level = 2 then 1 else 0 end) as twoLevelNum, + sum(case when a.case_level = 3 then 1 else 0 end) as threeLevelNum, + sum(case when a.info_process <![CDATA[ < ]]> 3 then 1 else 0 end) as processNum, + sum(case when a.info_process = 3 then 1 else 0 end) as finishNum, + sum(case when a.info_process = 4 then 1 else 0 end) as rejectNum + FROM + dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.id + <include refid="where-part-all"/> + </select> + <!-- 统计分析(类型) --> + <select id="statisticsType" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsTypeDTO"> + SELECT + a.case_type as caseType,a.case_type_name as caseTypeName,count(1) as caseNum + FROM + dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.id + <include refid="where-part-all"/> + group by a.case_type + </select> + + <!-- 统计分析(来源) --> + <select id="statisticsSource" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsSourceDTO"> + SELECT + a.canal,a.canal_name as canalName,count(1) as caseNum, + sum(case when b.medi_result = '22_00025-1' then 1 else 0 end) as resolveNum, + sum(case when b.medi_result is null and a.info_process <![CDATA[ < ]]> 4 then 1 else 0 end) as resolveingNum, + sum(case when b.medi_result = '22_00025-2' then 1 else 0 end) as unResolveNum, + sum(case when a.info_process = 4 then 1 else 0 end) as rejectNum + FROM + dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.id + <include refid="where-part-all"/> + group by a.canal + </select> + + </mapper> \ No newline at end of file -- Gitblit v1.8.0