From 93430938a25ab3d4e218a2198ae1b24a516f6382 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Tue, 17 Jun 2025 17:31:15 +0800
Subject: [PATCH] freat:粤政易相关代码

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/utils/StatisticsTimeUtils.java            |  274 ++++++++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java              |   39 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseReturnMapper.xml       |   54 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseWorkStatisticsBaseDTO.java |   43 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseTaskWebController.java |  107 +++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java     |   29 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java |   23 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml         |   41 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseYbCountDTO.java            |   40 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java              |  172 +++++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseSuperviseMapper.xml    |   58 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistApplyMapper.xml  |   54 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseInfoMapper.java            |    8 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java            |   48 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseDismissMapper.xml      |   25 
 dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java                          |   14 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml         |  741 ++++++++++++++++++++++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseWindupApplyMapper.xml  |   54 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseWorkStatisticsTimeDTO.java |   28 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseRegisterDTO.java           |    4 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListAllDTO.java       |   78 ++
 21 files changed, 1,913 insertions(+), 21 deletions(-)

diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java b/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java
index d148a98..f298b4c 100644
--- a/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java
@@ -988,6 +988,20 @@
 		}
 		return 0;
 	}
+
+	/**
+	 * 获取两个时间的天数差
+	 * */
+	public static Integer getDifferDay(Date time1,Date time2){
+		if(ObjectUtils.isNotEmpty(time1) && ObjectUtils.isNotEmpty(time2)){
+			long day = 1000 * 60 * 60 * 24;
+			long differ = time1.getTime() - time2.getTime();
+			long housr = differ / day;
+			Integer diffDay = Integer.valueOf(String.valueOf(housr));
+			return Math.abs(diffDay);
+		}
+		return 0;
+	}
 }
 /**
  * -------------------_ooOoo_-------------------
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
index 390befb..131ce94 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
@@ -1091,6 +1091,29 @@
     }
 
     /**
+     * 工作统计
+     *
+     * @return Object
+     * @url {ctx}/api/web/caseInfo/workStatistics
+     * @CurrentUser String userId
+     */
+    @GetMapping("/workStatistics")
+    public Object workStatistics(@CurrentUser String userId) {
+        try {
+            Map<String, Object> terms = getParameterAll();
+            //统计类型 1-个人,2-单位
+            String workType = request.getParameter("workType");
+            if (ObjectUtils.isNotEmpty(workType)) {
+                terms.put("workType", workType);
+            }
+            return ReturnSucUtils.getRepInfo("处理成功", service.workStatistics(terms, userId));
+        } catch (Exception e) {
+            log.error("Controller接口[CaseInfoWebController.workStatistics]请求异常:" + e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
      * 解纷态势
      *
      * @return Object
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseTaskWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseTaskWebController.java
index a516b28..74ebc7c 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseTaskWebController.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseTaskWebController.java
@@ -387,6 +387,107 @@
     }
 
     /**
+     * 设置请求参数
+     * */
+    private void setRequestParam(Map<String, Object> terms) {
+        String caseType = request.getParameter("caseType");
+        if (StringUtils.isNotBlank(caseType)){
+            terms.put("caseType", caseType);
+        }
+        String plaintiffs = request.getParameter("plaintiffs");
+        if (StringUtils.isNotBlank(plaintiffs)){
+            terms.put("plaintiffs", plaintiffs);
+        }
+        String defendants = request.getParameter("defendants");
+        if (StringUtils.isNotBlank(defendants)){
+            terms.put("defendants", defendants);
+        }
+        String canal = request.getParameter("canal");
+        if (StringUtils.isNotBlank(canal)){
+            terms.put("canal", canal);
+        }
+        String caseStatus = request.getParameter("caseStatus");
+        if (StringUtils.isNotBlank(caseStatus)){
+            terms.put("caseStatus", caseStatus);
+        }
+        String caseLevel = request.getParameter("caseLevel");
+        if (StringUtils.isNotBlank(caseLevel)){
+            terms.put("caseLevel", caseLevel);
+        }
+        String mediResult = request.getParameter("mediResult");
+        if (StringUtils.isNotBlank(mediResult)){
+            terms.put("mediResult", mediResult);
+        }
+        String handleTimeStart = request.getParameter("handleTimeStart");
+        String handleTimeEnd = request.getParameter("handleTimeEnd");
+        if (StringUtils.isNotBlank(handleTimeStart) && StringUtils.isNotBlank(handleTimeEnd)){
+            terms.put("handleTimeStart", handleTimeStart);
+            terms.put("handleTimeEnd", handleTimeEnd);
+        }
+    }
+
+    /**
+     * web端-工作台-查询全部待办任务
+     *
+     * @param page      页码
+     * @param size      每页数量
+     * @param status    状态,1:待分派,2:已分派
+     * @param sortType  排序方式(1:正序;2:倒序)
+     * @param sortColmn 排序字段(1:流转时间;2:分派时限/分派时间;3:事项等级;4:督办次数)
+     * @return
+     * @url {ctx}/api/web/caseTask/pageMyTaskAll
+     */
+    @GetMapping("/pageMyTaskAll")
+    public Object pageMyTaskAll(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size,
+                                @RequestParam(value = "status") int status, @CurrentUser String userId,
+                                @RequestParam(value = "sortType") int sortType, @RequestParam(value = "sortColmn") int sortColmn) {
+        try {
+            // 条件
+            Map<String, Object> terms = Maps.newHashMap();
+            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
+            terms.put("candeUnitId", loginUser.getUnitId());
+            terms.put("status", status);
+            String partyName = request.getParameter("partyName");
+            if (StringUtils.isNotBlank(partyName)){
+                terms.put("partyName", partyName);
+            }
+            setRequestParam(terms);
+            // 排序
+            Sort sort = Sort.by(Sort.Direction.DESC, "t1.create_time");;
+            PageRequest pageRequest = PageRequest.of(page - 1, size, sort);
+            return ReturnSucUtils.getRepInfo(service.pageMyTaskAll(pageRequest, terms));
+        } catch (Exception e) {
+            log.error("Controller接口[CaseTaskWebController.pageMyTaskAll]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+     * web端-工作台-已办数量统计
+     * @url {ctx}/api/web/caseTask/countYbTaskAll
+     */
+    @GetMapping("/countYbTaskAll")
+    public Object countYbTaskAll(@RequestParam(value = "status") int status,@CurrentUser String userId) {
+        try {
+            // 条件
+            Map<String, Object> terms = Maps.newHashMap();
+            String partyName = request.getParameter("partyName");
+            if (StringUtils.isNotBlank(partyName)){
+                terms.put("partyName", partyName);
+            }
+            setRequestParam(terms);
+            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
+            terms.put("candeUnitId", loginUser.getUnitId());
+            terms.put("status", status);
+            return ReturnSucUtils.getRepInfo(service.countYbTaskAll(terms));
+        } catch (Exception e) {
+            log.error("Controller接口[CaseTaskWebController.countYbTaskAll]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+
+    /**
      * web端-工作台-查询待办任务-分派任务
      *
      * @param page      页码
@@ -430,6 +531,7 @@
                 terms.put("handleUnitId", loginUser.getUnitId());
             }
             terms.put("status", status);
+            setRequestParam(terms);
             // 排序
             Sort sort = null;
             String sortName = null;
@@ -659,6 +761,7 @@
             if (StringUtils.isNotBlank(partyName)) {
                 terms.put("partyName", partyName);
             }
+            setRequestParam(terms);
             CtUserDTO loginUser = custClient.clientGetUserAll(userId);
             // 不予受理,查询case_dismiss表
             if (status == 3) {
@@ -717,7 +820,7 @@
                 terms.put("mediatorType", mediatorType);
                 terms.put("mediatorId", loginUser.getId());
             }
-
+            setRequestParam(terms);
             // 排序
             Sort sort = null;
             String sortName = null;
@@ -880,6 +983,7 @@
             if (StringUtils.isNotBlank(partyName)) {
                 terms.put("partyName", partyName);
             }
+            setRequestParam(terms);
             Sort sort = null;
             String sortName = null;
             switch (type) {
@@ -1055,6 +1159,7 @@
             }
             Sort sort = null;
             String sortName = null;
+            setRequestParam(terms);
             switch (sortColmn) {
                 case 1:
                     sortName = "t1.sup_time";
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseInfoMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseInfoMapper.java
index 8589b5e..585f3de 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseInfoMapper.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseInfoMapper.java
@@ -235,4 +235,12 @@
      */
     List<CaseStatisticsTypeDTO> countByCanalSecond(@Param("terms") Map<String, Object> terms);
 
+    /**
+     * 工作统计按时间分组
+     *
+     * @param terms 包含统计条件的键值对,如时间范围
+     * @return 返回一个对象,包含基础的案例统计数据
+     */
+    List<CaseWorkStatisticsTimeDTO> workStatisticsTime(@Param("terms") Map<String, Object> terms);
+
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java
index 37f9bac..e6d7409 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java
@@ -79,6 +79,18 @@
     FrontPageCountDTO countTaskList(@Param("terms") Map<String, Object> terms);
 
     /**
+     * 全部查询
+     * */
+    List<FrontPageListAllDTO> pageMyTaskAll(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+    /**
+     * 全部查询统计
+     * @param terms 条件
+     * @return long
+     */
+    long countMyTaskAll(@Param("terms") Map<String, Object> terms);
+
+    /**
      * 首页-待/已分派条件统计
      * @param terms 条件
      * @return long
@@ -191,4 +203,40 @@
 
     int deleteCaseTaskByCaseId(@Param("caseId") String caseId,@Param("updateTime") Date updateTime);
 
+
+    /**
+     * 已办事项-已分派
+     * @param terms 条件
+     * @return long
+     */
+    long countYbDispatch(@Param("terms") Map<String, Object> terms);
+
+    /**
+     * 已办事项-已分派
+     * @param terms 条件
+     * @return long
+     */
+    long countYbAccept(@Param("terms") Map<String, Object> terms);
+
+    /**
+     * 已办事项-已分派
+     * @param terms 条件
+     * @return long
+     */
+    long countYbClosed(@Param("terms") Map<String, Object> terms);
+
+    /**
+     * 已办事项-已审核数量
+     * @param terms 条件
+     * @return long
+     */
+    long countYbAudit(@Param("terms") Map<String, Object> terms);
+
+    /**
+     * 已办事项-督办数量
+     * @param terms 条件
+     * @return long
+     */
+    long countYbSupervise(@Param("terms") Map<String, Object> terms);
+
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistApplyMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistApplyMapper.xml
index c05420e..4abfc74 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistApplyMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistApplyMapper.xml
@@ -304,8 +304,33 @@
             and (DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
             and DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
         </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
         <if test="terms.partyName != null and terms.partyName !=''">
-            and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t2.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t2.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t2.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t2.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t2.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t3.medi_result = #{terms.mediResult}
         </if>
     </select>
     <!--  首页-待审核分页查询  -->
@@ -324,8 +349,33 @@
             and (DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
             and DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
         </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
         <if test="terms.partyName != null and terms.partyName !=''">
-            and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t2.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t2.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t2.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t2.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t2.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t3.medi_result = #{terms.mediResult}
         </if>
         <if test="page.sort != null">
             <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseDismissMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseDismissMapper.xml
index 07e9894..5035302 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseDismissMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseDismissMapper.xml
@@ -192,9 +192,34 @@
                 and (DATE_FORMAT(t1.dis_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.disTimeStart}
                 and DATE_FORMAT(t1.dis_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.disTimeEnd})
             </if>
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.dis_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.dis_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
             <if test="terms.partyName != null and terms.partyName !=''">
                 and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
             </if>
+            <if test="terms.caseType != null and terms.caseType !=''">
+                and t2.case_type = #{terms.caseType}
+            </if>
+            <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+                and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+            </if>
+            <if test="terms.defendants != null and terms.defendants !=''">
+                and t2.defendants like concat('%', #{terms.defendants}, '%')
+            </if>
+            <if test="terms.canal != null and terms.canal !=''">
+                and t2.canal = #{terms.canal}
+            </if>
+            <if test="terms.caseStatus != null and terms.caseStatus !=''">
+                and t2.status = #{terms.caseStatus}
+            </if>
+            <if test="terms.caseLevel != null and terms.caseLevel !=''">
+                and t2.case_level = #{terms.caseLevel}
+            </if>
+            <if test="terms.mediResult != null and terms.mediResult !=''">
+                and t3.medi_result = #{terms.mediResult}
+            </if>
         </if>
     </sql>
     <!--  首页-不予受理条件统计  -->
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 d6d9f03..c746303 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
@@ -1463,4 +1463,45 @@
             a.canal_second
     </select>
 
+    <!--  统计分析(基础)  -->
+    <select id="workStatisticsTime" resultType="cn.huge.module.cases.domain.dto.CaseWorkStatisticsTimeDTO">
+        SELECT
+        count(1) as totalNum,
+        sum(case when b.medi_result = '22_00025-1' and a.info_process = 3 then 1 else 0 end) as resolveNum,
+        sum(case when a.info_process <![CDATA[ < ]]> 3 then 1 else 0 end) as resolveingNum,
+        sum(case when b.medi_result = '22_00025-2' and a.info_process = 3 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,
+        <if test='terms.selectTimeType != null and terms.selectTimeType =="1"'>
+            DATE_FORMAT(a.create_time, '%Y-%m-%d') AS dayStr,
+            DATE_FORMAT(a.create_time, '%Y-%m') AS monthStr,
+            DATE_FORMAT(a.create_time, '%Y') AS year_str,
+        </if>
+        <if test='terms.selectTimeType != null and terms.selectTimeType =="2"'>
+            DATE_FORMAT(b.close_time, '%Y-%m-%d') AS dayStr,
+            DATE_FORMAT(b.close_time, '%Y-%m') AS monthStr,
+            DATE_FORMAT(b.close_time, '%Y') AS year_str,
+        </if>
+        sum(case when a.info_process = 4 then 1 else 0 end) as rejectNum
+
+
+        FROM
+        dyh_case_info a
+        inner JOIN dyh_case_info_unfold b on a.id = b.id
+        LEFT JOIN dyh_ct_unit c ON b.belong_unit_id = c.id
+        <include refid="where-part-all"/>
+        <if test='terms.timeType != null and terms.timeType =="3"'>
+            GROUP BY year_str
+        </if>
+        <if test='terms.timeType != null and terms.timeType =="2"'>
+            GROUP BY monthStr
+        </if>
+        <if test='terms.timeType != null and terms.timeType =="1"'>
+            GROUP BY dayStr
+        </if>
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseReturnMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseReturnMapper.xml
index ce31a3c..89043e4 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseReturnMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseReturnMapper.xml
@@ -304,8 +304,33 @@
             and (DATE_FORMAT(t1.return_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
             and DATE_FORMAT(t1.return_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
         </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
         <if test="terms.partyName != null and terms.partyName !=''">
-            and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t2.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t2.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t2.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t2.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t2.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t3.medi_result = #{terms.mediResult}
         </if>
     </select>
 
@@ -325,8 +350,33 @@
             and (DATE_FORMAT(t1.return_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
             and DATE_FORMAT(t1.return_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
         </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
         <if test="terms.partyName != null and terms.partyName !=''">
-            and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t2.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t2.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t2.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t2.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t2.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t3.medi_result = #{terms.mediResult}
         </if>
         <if test="page.sort != null">
             <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseSuperviseMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseSuperviseMapper.xml
index 91f5b48..52e96c8 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseSuperviseMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseSuperviseMapper.xml
@@ -318,9 +318,17 @@
         <if test="terms.type != 3">
             and t1.quilt_unit_id = #{terms.quiltUnitId}
             and t1.sup_status = #{terms.supStatus}
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.reply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.reply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
         </if>
         <if test="terms.type == 3">
             and t1.sup_unit_id = #{terms.supUnitId}
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.sup_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.sup_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
         </if>
         <if test="terms.timeStart != null and terms.timeStart !='' and terms.timeEnd != null and terms.timeEnd !=''">
             and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
@@ -328,6 +336,27 @@
         </if>
         <if test="terms.partyName != null and terms.partyName !=''">
             and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t2.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t2.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t2.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t2.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t2.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t3.medi_result = #{terms.mediResult}
         </if>
     </select>
 
@@ -346,9 +375,17 @@
         <if test="terms.type != 3">
             and t1.quilt_unit_id = #{terms.quiltUnitId}
             and t1.sup_status = #{terms.supStatus}
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.reply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.reply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
         </if>
         <if test="terms.type == 3">
             and t1.sup_unit_id = #{terms.supUnitId}
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.sup_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.sup_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
         </if>
         <if test="terms.timeStart != null and terms.timeStart !='' and terms.timeEnd != null and terms.timeEnd !=''">
             and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
@@ -357,6 +394,27 @@
         <if test="terms.partyName != null and terms.partyName !=''">
             and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
         </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t2.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t2.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t2.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t2.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t2.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t3.medi_result = #{terms.mediResult}
+        </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}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
index bf2a2ea..ae27af7 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
@@ -408,7 +408,28 @@
                 and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
             </if>
             <if test="terms.partyName != null and terms.partyName !=''">
-                and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
+                and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+            </if>
+            <if test="terms.caseType != null and terms.caseType !=''">
+                and t2.case_type = #{terms.caseType}
+            </if>
+            <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+                and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+            </if>
+            <if test="terms.defendants != null and terms.defendants !=''">
+                and t2.defendants like concat('%', #{terms.defendants}, '%')
+            </if>
+            <if test="terms.canal != null and terms.canal !=''">
+                and t2.canal = #{terms.canal}
+            </if>
+            <if test="terms.caseStatus != null and terms.caseStatus !=''">
+                and t2.status = #{terms.caseStatus}
+            </if>
+            <if test="terms.caseLevel != null and terms.caseLevel !=''">
+                and t2.case_level = #{terms.caseLevel}
+            </if>
+            <if test="terms.mediResult != null and terms.mediResult !=''">
+                and t3.medi_result = #{terms.mediResult}
             </if>
             <if test="terms.status == 2">
                 and t1.handle_result in (0, 1, 2)
@@ -548,7 +569,28 @@
                 and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
             </if>
             <if test="terms.partyName != null and terms.partyName !=''">
-                and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
+                and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+            </if>
+            <if test="terms.caseType != null and terms.caseType !=''">
+                and t2.case_type = #{terms.caseType}
+            </if>
+            <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+                and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+            </if>
+            <if test="terms.defendants != null and terms.defendants !=''">
+                and t2.defendants like concat('%', #{terms.defendants}, '%')
+            </if>
+            <if test="terms.canal != null and terms.canal !=''">
+                and t2.canal = #{terms.canal}
+            </if>
+            <if test="terms.caseStatus != null and terms.caseStatus !=''">
+                and t2.status = #{terms.caseStatus}
+            </if>
+            <if test="terms.caseLevel != null and terms.caseLevel !=''">
+                and t2.case_level = #{terms.caseLevel}
+            </if>
+            <if test="terms.mediResult != null and terms.mediResult !=''">
+                and t3.medi_result = #{terms.mediResult}
             </if>
         </if>
     </sql>
@@ -606,6 +648,10 @@
                 and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createTimeStart}
                 and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createTimeEnd})
             </if>
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
             <if test="terms.partyName != null and terms.partyName !=''">
                 and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
             </if>
@@ -614,6 +660,27 @@
             </if>
             <if test='terms.mediatorType != null and terms.mediatorType =="2"'>
                 and t3.mediator_id is null
+            </if>
+            <if test="terms.caseType != null and terms.caseType !=''">
+                and t2.case_type = #{terms.caseType}
+            </if>
+            <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+                and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+            </if>
+            <if test="terms.defendants != null and terms.defendants !=''">
+                and t2.defendants like concat('%', #{terms.defendants}, '%')
+            </if>
+            <if test="terms.canal != null and terms.canal !=''">
+                and t2.canal = #{terms.canal}
+            </if>
+            <if test="terms.caseStatus != null and terms.caseStatus !=''">
+                and t2.status = #{terms.caseStatus}
+            </if>
+            <if test="terms.caseLevel != null and terms.caseLevel !=''">
+                and t2.case_level = #{terms.caseLevel}
+            </if>
+            <if test="terms.mediResult != null and terms.mediResult !=''">
+                and t3.medi_result = #{terms.mediResult}
             </if>
         </if>
     </sql>
@@ -882,4 +949,674 @@
     <update id="deleteCaseTaskByCaseId">
         update dyh_case_task set delete_status = 1,update_time = #{updateTime} where case_id = #{caseId}
     </update>
+
+    <sql id="where-select-task-all">
+        <if test="terms != null">
+            <if test="terms.caseType != null and terms.caseType !=''">
+                and t2.case_type = #{terms.caseType}
+            </if>
+            <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+                and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+            </if>
+            <if test="terms.defendants != null and terms.defendants !=''">
+                and t2.defendants like concat('%', #{terms.defendants}, '%')
+            </if>
+            <if test="terms.canal != null and terms.canal !=''">
+                and t2.canal = #{terms.canal}
+            </if>
+            <if test="terms.caseStatus != null and terms.caseStatus !=''">
+                and t2.status = #{terms.caseStatus}
+            </if>
+            <if test="terms.caseLevel != null and terms.caseLevel !=''">
+                and t2.case_level = #{terms.caseLevel}
+            </if>
+            <if test="terms.mediResult != null and terms.mediResult !=''">
+                and t3.medi_result = #{terms.mediResult}
+            </if>
+        </if>
+    </sql>
+
+    <sql id="select-task-all">
+        SELECT
+        t1.id as ownerId, t1.case_id as caseId, t3.is_risk as isRisk,
+        <if test="terms.status != null and terms.status ==1">
+            t1.create_time as turnaroundTime,
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            t1.handle_time as turnaroundTime,
+        </if>
+        t1.expire_time as timeLimit,
+        t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+        concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs,
+        concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+        (select count(1) from dyh_case_supervise where case_id = t1.case_id and sup_status = 0) as superviseCount,
+        '' as taskType,
+        <if test="terms.status != null and terms.status ==1">
+            '待分派' as taskTypeName
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            '已分派' as taskTypeName
+        </if>
+        FROM
+        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        (t1.node_id = 'ZJ_DFP' or  t1.node_id = 'QJ_DFP' or  t1.node_id = 'SJ_DFP' or  t1.node_id = 'DFP')
+        and t1.case_task_type = 1
+        and t2.delete_status = 0
+        and t1.status = #{terms.status}
+        <if test="terms.status != null and terms.status ==1">
+            and t1.cande_unit_id = #{terms.candeUnitId}
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            and t1.handle_unit_id = #{terms.candeUnitId}
+        </if>
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT
+        t1.id as ownerId, t1.case_id as caseId, t3.is_risk as isRisk,
+        <if test="terms.status != null and terms.status ==1">
+            t1.create_time as turnaroundTime,
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            t1.handle_time as turnaroundTime,
+        </if>
+        t1.expire_time as timeLimit,
+        t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+        concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs,
+        concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+        (select count(1) from dyh_case_supervise where case_id = t1.case_id and sup_status = 0) as superviseCount,
+        '' as taskType,
+        <if test="terms.status != null and terms.status ==1">
+            '待受理' as taskTypeName
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            '已受理' as taskTypeName
+        </if>
+        FROM
+        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        (t1.node_id = 'ZJ_DSL' or t1.node_id = 'QJ_DSL' or t1.node_id = 'SJ_DSL' or t1.node_id = 'DSL')
+        and t2.delete_status = 0
+        and t1.status = 1
+        <if test="terms.status != null and terms.status ==1">
+            and t1.cande_unit_id = #{terms.candeUnitId}
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            and t1.handle_unit_id = #{terms.candeUnitId}
+        </if>
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        <if test="terms.status != null and terms.status ==2">
+            UNION ALL
+            SELECT
+            t1.case_task_id as ownerId, t1.case_id as caseId, t3.is_risk as isRisk,
+            t1.dis_time as turnaroundTime,
+            null as timeLimit,
+            t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+            concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs,
+            concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+            (select count(1) from dyh_case_supervise where case_id = t1.case_id and sup_status = 0) as superviseCount,
+            '' as taskType,
+            '不已受理' as taskTypeName
+            FROM
+            dyh_case_dismiss t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+            where t2.delete_status = 0
+            and t1.dis_unit_id = #{terms.candeUnitId}
+            <if test="terms.partyName != null and terms.partyName !=''">
+                and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+            </if>
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.dis_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.dis_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
+            <include refid="where-select-task-all"/>
+        </if>
+
+        <if test="terms.status != null and terms.status ==1">
+            UNION ALL
+            SELECT
+            t1.id as ownerId, t1.case_id as caseId, t3.is_risk as isRisk,
+            t1.create_time as turnaroundTime,
+            t1.expire_time as timeLimit,
+            t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+            concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs,
+            concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+            (select count(1) from dyh_case_supervise where case_id = t1.case_id and sup_status = 0) as superviseCount,
+            'sxbl' as taskType,
+            '办理中' as taskTypeName
+            FROM
+            dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
+            left join dyh_case_info_unfold t3 on t1.case_id = t3.id
+            where
+            t1.node_id = 'BLFK'
+            and t1.status = 1
+            and t2.delete_status = 0
+            and t1.cande_unit_id = #{terms.candeUnitId}
+            <if test="terms.partyName != null and terms.partyName !=''">
+                and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+            </if>
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
+            <include refid="where-select-task-all"/>
+            UNION ALL
+            SELECT
+            t1.case_task_id as ownerId, t1.case_id as caseId, t3.is_risk as isRisk,
+            t1.apply_time as turnaroundTime,
+            null as timeLimit,
+            t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+            concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs,
+            concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+            (select count(1) from dyh_case_supervise where case_id = t2.id and sup_status = 0) as superviseCount,
+            'sxbl' as taskType,
+            '结案申请' as taskTypeName
+            FROM dyh_case_windup_apply t1 left join dyh_case_info t2 on t1.case_id = t2.id
+            left join dyh_case_info_unfold t3 on t3.id = t2.id
+            where
+            t1.apply_status = 0
+            and t2.delete_status = 0
+            and (t1.apply_unit_id = #{terms.candeUnitId} or t3.assist_unit_id like concat('%', #{terms.candeUnitId}, '%'))
+            <if test="terms.partyName != null and terms.partyName !=''">
+                and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+            </if>
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
+            <include refid="where-select-task-all"/>
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            UNION ALL
+            SELECT
+            t3.case_task_id as ownerId, t1.id as caseId, t2.is_risk as isRisk,
+            t2.close_time as turnaroundTime,
+            null as timeLimit,
+            t1.case_level as caseGrade, t1.canal_name as caseSource, concat_ws('', ifnull(t1.case_type_first_name, ''), '/' , ifnull(t1.case_type_name, '')) as caseType,
+            concat_ws('', ifnull(t1.plaintiffs, ''), ifnull(t1.pagents, '')) as plaintiffs,
+            concat_ws('', ifnull(t1.defendants, ''), ifnull(t1.dagents, '')) as defendants,
+            (select count(1) from dyh_case_supervise where case_id = t1.id and sup_status = 0) as superviseCount,
+            'sxbl' as taskType,
+            '已结案' as taskTypeName
+            from dyh_case_info t1
+            left join dyh_case_info_unfold t2 on t1.id = t2.id
+            left join dyh_case_windup_apply t3 on t1.id = t3.case_id
+            where t1.process in (5, 6)
+            and t1.delete_status = 0
+            and (t2.mediate_unit_id = #{terms.candeUnitId} or t2.assist_unit_id like concat('%', #{terms.candeUnitId}, '%'))
+            <if test="terms.partyName != null and terms.partyName !=''">
+                and (concat_ws('', ifnull(t1.plaintiffs, ''), ifnull(t1.pagents, ''), ifnull(t1.defendants, ''), ifnull(t1.dagents, '')) like concat('%', #{terms.partyName}, '%') or t1.case_ref like concat('%', #{terms.partyName}, '%'))
+            </if>
+            <if test="terms.caseType != null and terms.caseType !=''">
+                and t1.case_type = #{terms.caseType}
+            </if>
+            <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+                and t1.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+            </if>
+            <if test="terms.defendants != null and terms.defendants !=''">
+                and t1.defendants like concat('%', #{terms.defendants}, '%')
+            </if>
+            <if test="terms.canal != null and terms.canal !=''">
+                and t1.canal = #{terms.canal}
+            </if>
+            <if test="terms.caseStatus != null and terms.caseStatus !=''">
+                and t1.status = #{terms.caseStatus}
+            </if>
+            <if test="terms.caseLevel != null and terms.caseLevel !=''">
+                and t1.case_level = #{terms.caseLevel}
+            </if>
+            <if test="terms.mediResult != null and terms.mediResult !=''">
+                and t2.medi_result = #{terms.mediResult}
+            </if>
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t2.close_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t2.close_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
+        </if>
+        UNION ALL
+        SELECT
+        t1.case_task_id as ownerId, t1.case_id as caseId,t3.is_risk as isRisk,
+        <if test="terms.status != null and terms.status ==1">
+            t1.return_time as turnaroundTime,
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            t1.audit_time as turnaroundTime,
+        </if>
+        null as timeLimit,
+        t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+        concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs, concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+        (select count(1) from dyh_case_supervise where case_id = t1.case_id and sup_status = 0) as superviseCount,
+        'htsh' as taskType,
+        <if test="terms.status != null and terms.status ==1">
+            '待审核' as taskTypeName
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            '已审核' as taskTypeName
+        </if>
+        FROM
+        dyh_case_return t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        <if test="terms.status != null and terms.status ==1">
+            and t1.return_status = 0
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            and t1.return_status = 1
+        </if>
+        and t1.audit_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT t1.case_task_id as ownerId, t1.case_id as caseId,t3.is_risk as isRisk,
+        <if test="terms.status != null and terms.status ==1">
+            t1.appear_time as turnaroundTime,
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            t1.audit_time as turnaroundTime,
+        </if>
+        null as timeLimit,
+        t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+        concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs, concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+        (select count(1) from dyh_case_supervise where case_id = t1.case_id and sup_status = 0) as superviseCount,
+        'sbsh' as taskType,
+        <if test="terms.status != null and terms.status ==1">
+            '待审核' as taskTypeName
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            '已审核' as taskTypeName
+        </if>
+        FROM
+        dyh_case_appear t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        <if test="terms.status != null and terms.status ==1">
+            and t1.apply_status = 0
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            and t1.apply_status = 1
+        </if>
+        and t1.audit_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT t1.case_task_id as ownerId, t1.case_id as caseId,t3.is_risk as isRisk,
+        <if test="terms.status != null and terms.status ==1">
+            t1.apply_time as turnaroundTime,
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            t1.audit_time as turnaroundTime,
+        </if>
+        null as timeLimit,
+        t2.case_level as caseGrade, t2.canal_name as caseSource,
+        concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType, concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs,
+        concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+        (select count(1) from dyh_case_supervise where case_id = t1.case_id and sup_status = 0) as superviseCount,
+        'jash' as taskType,
+        <if test="terms.status != null and terms.status ==1">
+            '待审核' as taskTypeName
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            '已审核' as taskTypeName
+        </if>
+        FROM
+        dyh_case_windup_apply t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        <if test="terms.status != null and terms.status ==1">
+            and t1.apply_status = 0
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            and t1.apply_status = 1
+        </if>
+        and t1.audit_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT t1.id as ownerId, t1.case_id as CaseId, t3.is_risk as isRisk,
+        <if test="terms.status != null and terms.status ==1">
+            t1.apply_time as turnaroundTime,
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            t1.audit_time as turnaroundTime,
+        </if>
+        null as timeLimit,
+        t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+        concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs, concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+        (select count(1) from dyh_case_supervise where case_id = t1.case_id and sup_status = 0) as superviseCount,
+        'lhczsh' as taskType,
+        <if test="terms.status != null and terms.status ==1">
+            '待审核' as taskTypeName
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            '已审核' as taskTypeName
+        </if>
+        FROM
+        dyh_case_assist_apply t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        <if test="terms.status != null and terms.status ==1">
+            and t1.apply_status = 0
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            and t1.apply_status = 1
+        </if>
+        and t1.audit_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT t1.id as ownerId, t1.case_id as caseId,t3.is_risk as isRisk,
+        <if test="terms.status != null and terms.status ==1">
+            t1.sup_time as turnaroundTime,
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            t1.reply_time as turnaroundTime,
+        </if>
+        DATEADD(hour, t1.reply_term, t1.sup_time) as timeLimit,
+        t2.case_level as caseGrade, t2.canal_name as caseSource,
+        concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType, concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs,
+        concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+        0 as superviseCount,
+        '' as taskType,
+        '督办' as taskTypeName
+        FROM
+        dyh_case_supervise t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        <if test="terms.status != null and terms.status ==1">
+            and t1.sup_status = 0
+        </if>
+        <if test="terms.status != null and terms.status ==2">
+            and t1.sup_status = 1
+        </if>
+        and t1.quilt_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.reply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.reply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        <if test="terms.status != null and terms.status ==2">
+            UNION ALL
+            SELECT t1.id as ownerId, t1.case_id as caseId,t3.is_risk as isRisk,
+            t1.sup_time as turnaroundTime,
+            DATEADD(hour, t1.reply_term, t1.sup_time) as timeLimit,
+            t2.case_level as caseGrade, t2.canal_name as caseSource,
+            concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType, concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs,
+            concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
+            0 as superviseCount,
+            '' as taskType,
+            '督办' as taskTypeName
+            FROM
+            dyh_case_supervise t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+            where
+            t1.delete_status = 0
+            and t1.sup_unit_id = #{terms.candeUnitId}
+            <if test="terms.partyName != null and terms.partyName !=''">
+                and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+            </if>
+            <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+                and (DATE_FORMAT(t1.sup_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+                and DATE_FORMAT(t1.sup_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+            </if>
+            <include refid="where-select-task-all"/>
+        </if>
+    </sql>
+
+    <select id="pageMyTaskAll" resultType="cn.huge.module.cases.domain.dto.FrontPageListAllDTO">
+        select * from
+        (<include refid="select-task-all"/>) t where 1=1
+        order by isnull(t.turnaroundTime), t.turnaroundTime desc
+        limit #{page.offset}, #{page.size}
+    </select>
+
+    <select id="countMyTaskAll" resultType="java.lang.Long">
+        select count(1) from
+        (<include refid="select-task-all"/>) t
+    </select>
+
+    <select id="countYbDispatch" resultType="java.lang.Long">
+        select count(1) from
+        (SELECT
+        t1.id as ownerId, t1.case_id as caseId
+        FROM
+        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        (t1.node_id = 'ZJ_DFP' or  t1.node_id = 'QJ_DFP' or  t1.node_id = 'SJ_DFP' or  t1.node_id = 'DFP')
+        and t1.case_task_type = 1
+        and t2.delete_status = 0
+        and t1.status = #{terms.status}
+        and t1.handle_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        ) t
+    </select>
+
+    <select id="countYbAccept" resultType="java.lang.Long">
+        select count(1) from
+        (SELECT
+        t1.id as ownerId, t1.case_id as caseId
+        FROM
+        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        (t1.node_id = 'ZJ_DSL' or t1.node_id = 'QJ_DSL' or t1.node_id = 'SJ_DSL' or t1.node_id = 'DSL')
+        and t2.delete_status = 0
+        and t1.status = 1
+        and t1.handle_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT
+        t1.case_task_id as ownerId, t1.case_id as caseId
+        FROM
+        dyh_case_dismiss t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where t2.delete_status = 0
+        and t1.dis_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.dis_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.dis_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        ) t
+    </select>
+
+    <select id="countYbClosed" resultType="java.lang.Long">
+        select count(1) from
+        (SELECT
+        t3.case_task_id as ownerId, t1.id as caseId
+        from dyh_case_info t1
+        left join dyh_case_info_unfold t2 on t1.id = t2.id
+        left join dyh_case_windup_apply t3 on t1.id = t3.case_id
+        where t1.process in (5, 6)
+        and t1.delete_status = 0
+        and (t2.mediate_unit_id = #{terms.candeUnitId} or t2.assist_unit_id like concat('%', #{terms.candeUnitId}, '%'))
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t1.plaintiffs, ''), ifnull(t1.pagents, ''), ifnull(t1.defendants, ''), ifnull(t1.dagents, '')) like concat('%', #{terms.partyName}, '%') or t1.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t2.close_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t2.close_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t1.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t1.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t1.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t1.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t1.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t1.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t2.medi_result = #{terms.mediResult}
+        </if>
+        ) t
+    </select>
+
+    <select id="countYbAudit" resultType="java.lang.Long">
+        select count(1) from
+        (
+        SELECT
+        t1.case_task_id as ownerId, t1.case_id as caseId
+        FROM
+        dyh_case_return t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        and t1.return_status = 1
+        and t1.audit_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT t1.case_task_id as ownerId, t1.case_id as caseId
+        FROM
+        dyh_case_appear t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        and t1.apply_status = 1
+        and t1.audit_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT t1.case_task_id as ownerId, t1.case_id as caseId
+        FROM
+        dyh_case_windup_apply t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        and t1.apply_status = 1
+        and t1.audit_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT t1.id as ownerId, t1.case_id as CaseId
+        FROM
+        dyh_case_assist_apply t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        and t1.apply_status = 1
+        and t1.audit_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        ) t
+    </select>
+    <select id="countYbSupervise" resultType="java.lang.Long">
+        select count(1) from
+        (
+        SELECT t1.id as ownerId, t1.case_id as caseId
+        FROM
+        dyh_case_supervise t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        and t1.sup_status = 1
+        and t1.quilt_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.reply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.reply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        UNION ALL
+        SELECT t1.id as ownerId, t1.case_id as caseId
+        FROM
+        dyh_case_supervise t1 left join dyh_case_info t2 on t1.case_id = t2.id left join dyh_case_info_unfold t3 on t2.id = t3.id
+        where
+        t1.delete_status = 0
+        and t1.sup_unit_id = #{terms.candeUnitId}
+        <if test="terms.partyName != null and terms.partyName !=''">
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.sup_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.sup_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
+        <include refid="where-select-task-all"/>
+        ) t
+    </select>
+
 </mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseWindupApplyMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseWindupApplyMapper.xml
index 95f251c..673b05c 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseWindupApplyMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseWindupApplyMapper.xml
@@ -336,8 +336,33 @@
             and (DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
             and DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
         </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
         <if test="terms.partyName != null and terms.partyName !=''">
-            and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t2.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t2.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t2.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t2.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t2.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t3.medi_result = #{terms.mediResult}
         </if>
     </select>
     <!--  首页-待审核分页查询  -->
@@ -357,8 +382,33 @@
             and (DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
             and DATE_FORMAT(t1.apply_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
         </if>
+        <if test="terms.handleTimeStart != null and terms.handleTimeStart !='' and terms.handleTimeEnd != null and terms.handleTimeEnd !=''">
+            and (DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.handleTimeStart}
+            and DATE_FORMAT(t1.audit_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.handleTimeEnd})
+        </if>
         <if test="terms.partyName != null and terms.partyName !=''">
-            and concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%')
+            and (concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, ''), ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) like concat('%', #{terms.partyName}, '%') or t2.case_ref like concat('%', #{terms.partyName}, '%'))
+        </if>
+        <if test="terms.caseType != null and terms.caseType !=''">
+            and t2.case_type = #{terms.caseType}
+        </if>
+        <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
+            and t2.plaintiffs like concat('%', #{terms.plaintiffs}, '%')
+        </if>
+        <if test="terms.defendants != null and terms.defendants !=''">
+            and t2.defendants like concat('%', #{terms.defendants}, '%')
+        </if>
+        <if test="terms.canal != null and terms.canal !=''">
+            and t2.canal = #{terms.canal}
+        </if>
+        <if test="terms.caseStatus != null and terms.caseStatus !=''">
+            and t2.status = #{terms.caseStatus}
+        </if>
+        <if test="terms.caseLevel != null and terms.caseLevel !=''">
+            and t2.case_level = #{terms.caseLevel}
+        </if>
+        <if test="terms.mediResult != null and terms.mediResult !=''">
+            and t3.medi_result = #{terms.mediResult}
         </if>
         <if test="page.sort != null">
             <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseRegisterDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseRegisterDTO.java
index 970823c..9215569 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseRegisterDTO.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseRegisterDTO.java
@@ -58,5 +58,9 @@
      * 纠纷任务编号
      * */
     private String caseTaskId;
+    /**
+     * 承办部门
+     * */
+    private String mediateUnitName;
 
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java
index b560082..419b3f0 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java
@@ -10,24 +10,29 @@
 @Data
 public class CaseStatisticsBaseDTO {
     private Integer totalNum=0;//总记录数
-    // private Integer processNum=0;//办理中数量
-    // private Integer finishNum=0;//已结案数量
-    // private Integer rejectNum=0;//不予受理数量
-    // private Integer resolveNum=0;//化解成功数量
-    // private String resolveRate;//化解成功率
-    // private Integer unResolveNum=0;//化解不成功数量
-    // private String unResolveRate;//化解不成功率
-    // private Integer resolveingNum=0;//化解中数量
-    // private String resolveingRate;//化解中率
-    private Integer rejectNum=0;//不予受理数量
+     private Integer processNum=0;//办理中数量
+     private Integer finishNum=0;//已结案数量
+     private Integer rejectNum=0;//不予受理数量
+     private Integer resolveNum=0;//化解成功数量
+     private String resolveRate;//化解成功率
+     private Integer unResolveNum=0;//化解不成功数量
+     private String unResolveRate;//化解不成功率
+     private Integer resolveingNum=0;//化解中数量
+     private String resolveingRate;//化解中率
+//    private Integer rejectNum=0;//不予受理数量
     private String rejectRate;//不予受理率
-    private Integer processNum=0;//化解中数量
+//    private Integer processNum=0;//化解中数量
     private String processRate;//化解中率
-    private Integer finishNum=0;//化解成功数量
+//    private Integer finishNum=0;//化解成功数量
     private String finishRate;//化解成功率
     private Integer failNum=0;//化解不成功数量
     private String failRate;//化解不成功率
 
+    private Integer toDayTotalNum=0;//今日新增总记录数
+    private Integer toDayProcessNum=0;//今日新增化解中数
+    private Integer toDayRejectNum=0;//今日新增不予受理数量
+    private Integer toDayFinishNum=0;//今日新增已结案数量
+
     private Integer oneLevelNum=0;//1级事件数量
     private Integer twoLevelNum=0;//2级事件数量
     private Integer threeLevelNum=0;//3级事件数量
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseWorkStatisticsBaseDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseWorkStatisticsBaseDTO.java
new file mode 100644
index 0000000..f6dc148
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseWorkStatisticsBaseDTO.java
@@ -0,0 +1,43 @@
+package cn.huge.module.cases.domain.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhouxiantao
+ * @create 2025-04-22 15:11
+ */
+@Data
+public class CaseWorkStatisticsBaseDTO {
+    private Integer totalNum=0;//总记录数
+    private Integer processNum=0;//办理中数量
+    private Integer finishNum=0;//已结案数量
+    private Integer rejectNum=0;//不予受理数量
+    private Integer resolveNum=0;//化解成功数量
+    private String resolveRate;//化解成功率
+    private Integer unResolveNum=0;//化解不成功数量
+    private String unResolveRate;//化解不成功率
+    private Integer resolveingNum=0;//化解中数量
+    private String resolveingRate;//化解中率
+
+    private Integer toDayTotalNum=0;//今日新增总记录数
+    private Integer toDayProcessNum=0;//今日新增化解中数
+    private Integer toDayRejectNum=0;//今日新增不予受理数量
+    private Integer toDayFinishNum=0;//今日新增已结案数量
+
+    private String momType;//0-不显示,1-月环比,2-年环比
+    private String momTotalRate;//总记录数(月环比)
+    private String yoyTotalRate;//总记录数(月同比)
+    private String momProcessRate;//化解中数量(月环比)
+    private String yoyProcessRate;//化解中数量(月同比)
+    private String momRejectRate;//不予受理数量(月环比)
+    private String yoyRejectRate;//不予受理数量(月同比)
+    private String momFinishNumRate;//已结案数量(月环比)
+    private String yoyFinishNumRate;//已结案数量(月同比)
+    private String momResolveRate;//化解成功率(月环比)
+    private String yoyResolveRate;//化解成功率(月环比)
+
+    private List<CaseStatisticsTypeDTO> typeList;//纠纷类型集合
+    private List<CaseWorkStatisticsTimeDTO> timeList;//时间集合
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseWorkStatisticsTimeDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseWorkStatisticsTimeDTO.java
new file mode 100644
index 0000000..1811391
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseWorkStatisticsTimeDTO.java
@@ -0,0 +1,28 @@
+package cn.huge.module.cases.domain.dto;
+
+import lombok.Data;
+
+/**
+ * @author zhouxiantao
+ * @create 2025-04-23 11:03
+ */
+@Data
+public class CaseWorkStatisticsTimeDTO {
+    private Integer totalNum=0;//总记录数
+    private Integer processNum=0;//办理中数量
+    private Integer finishNum=0;//已结案数量
+    private Integer rejectNum=0;//不予受理数量
+    private Integer resolveNum=0;//化解成功数量
+    private String resolveRate;//化解成功率
+    private Integer unResolveNum=0;//化解不成功数量
+    private String unResolveRate;//化解不成功率
+    private Integer resolveingNum=0;//化解中数量
+    private String resolveingRate;//化解中率
+    private String dayStr;//天字符串(yyyy-mm-dd)
+    private String monthStr;//月字符串(yyyy-mm)
+    private String yearStr;//年字符串(yyyy)
+    private String timeStr;//前端展示使用
+    private String timeAllStr;//前端展示使用(全部展示)
+    private Integer sort;//排序
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseYbCountDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseYbCountDTO.java
new file mode 100644
index 0000000..e804982
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseYbCountDTO.java
@@ -0,0 +1,40 @@
+package cn.huge.module.cases.domain.dto;
+
+import lombok.Data;
+
+/**
+ * @author zhouxiantao
+ * @create 2025-05-21 15:12
+ */
+@Data
+public class CaseYbCountDTO {
+    /**
+     * 全部已办数量
+     * */
+    private Long allYbTask;
+    /**
+     * 已合并数量
+     * */
+    private Long ybMerge;
+    /**
+     * 已分派数量
+     * */
+    private Long ybDispatch;
+    /**
+     * 受理数量
+     * */
+    private Long ybAccept;
+    /**
+     * 已结案数量
+     * */
+    private Long ybClosed;
+    /**
+     * 已审核数量
+     * */
+    private Long ybAudit;
+    /**
+     * 督办数量
+     * */
+    private Long ybSupervise;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListAllDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListAllDTO.java
new file mode 100644
index 0000000..f45d6c3
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListAllDTO.java
@@ -0,0 +1,78 @@
+package cn.huge.module.cases.domain.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhouxiantao
+ * @create 2025-04-15 15:55
+ */
+@Data
+public class FrontPageListAllDTO {
+    /**
+     * 所属业务表编号
+     */
+    private String ownerId;
+
+    /**
+     * 纠纷信息ID
+     */
+    private String caseId;
+
+    /**
+     * 风险案件标签,0:非风险案件,1:风险案件
+     */
+    private String isRisk;
+
+    /**
+     * 流转时间
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm", timezone="GMT+8")
+    private Date turnaroundTime;
+
+    /**
+     * 分派时限
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm", timezone="GMT+8")
+    private Date timeLimit;
+
+    /**
+     * 事项等级
+     */
+    private Integer caseGrade;
+
+    /**
+     * 事项来源
+     */
+    private String caseSource;
+    /**
+     * 纠纷类型
+     */
+    private String caseType;
+
+    /**
+     * 申请方
+     */
+    private String plaintiffs;
+
+    /**
+     * 被申请方
+     */
+    private String defendants;
+
+    /**
+     * 督办次数
+     */
+    private int superviseCount;
+    /**
+     * 类型编码
+     * */
+    private String taskType;
+    /**
+     * 类型名称
+     * */
+    private String taskTypeName;
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
index fe1e6ae..bd84d87 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -16,6 +16,7 @@
 import cn.huge.module.cases.domain.po.*;
 import cn.huge.module.cases.domain.vo.CaseVo;
 import cn.huge.module.cases.domain.vo.GenerateQrCodeRequestVo;
+import cn.huge.module.cases.utils.StatisticsTimeUtils;
 import cn.huge.module.client.api.impl.CustClientImpl;
 import cn.huge.module.client.api.impl.SysClientImpl;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
@@ -1418,6 +1419,19 @@
         terms.put("areaType", areaType);
         // 调用统计调解过程的方法
         CaseStatisticsBaseDTO caseStatisticsBaseDTO = statisticsProcess(terms);
+
+        //当日新增
+        Map<String, Object> toDayTerms = new HashMap<>();
+        toDayTerms.putAll(terms);
+        String toDayStr = DateUtils.DateToString(DateUtils.getNowDate(), DateUtils.YYYY_MM_DD);
+        toDayTerms.put("createStart", toDayStr + " 00:00:00");
+        toDayTerms.put("createEnd", toDayStr + " 23:59:59");
+        CaseStatisticsBaseDTO toDayBaseDTO = mapper.statisticsBase(toDayTerms);
+        caseStatisticsBaseDTO.setToDayTotalNum(toDayBaseDTO.getTotalNum());
+        caseStatisticsBaseDTO.setToDayProcessNum(toDayBaseDTO.getProcessNum());
+        caseStatisticsBaseDTO.setToDayRejectNum(toDayBaseDTO.getRejectNum());
+        caseStatisticsBaseDTO.setToDayFinishNum(toDayBaseDTO.getFinishNum());
+
         //区域数据统计
         List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = new ArrayList<>();
         if (!isLast) {
@@ -1692,6 +1706,164 @@
         return caseStatisticsTypeDTOS;
     }
 
+    /**
+     * 工作统计
+     */
+    public CaseWorkStatisticsBaseDTO workStatistics(Map<String, Object> terms, String userId) throws IOException {
+        CaseWorkStatisticsBaseDTO caseWorkStatisticsBaseDTO = new CaseWorkStatisticsBaseDTO();
+        terms.put("statistics", "1");
+        //根据用户筛选区域范围
+        CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
+        //目前没有村居数据,所以单位等级是4的也归集到3里面
+        if (ctUnitDTO.getUnitGrade().equals(1)) {
+            terms.put("queCity", ctUnitDTO.getCity());
+        } else if (ctUnitDTO.getUnitGrade().equals(2)) {
+            terms.put("queArea", ctUnitDTO.getArea());
+        } else if (ctUnitDTO.getUnitGrade().equals(3)) {
+            terms.put("queRoad", ctUnitDTO.getRoad());
+        } else if (ctUnitDTO.getUnitGrade().equals(4)) {
+            terms.put("queVillage", ctUnitDTO.getRoad());
+        }
+        terms.put("workUserId", userId);
+        String areaType = "1";
+        if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) {
+            terms.remove("queArea");
+            terms.remove("queCity");
+            terms.remove("queRoad");
+            areaType = "4";
+        } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) {
+            terms.remove("queArea");
+            terms.remove("queCity");
+            areaType = "3";
+        } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) {
+            terms.remove("queCity");
+            areaType = "2";
+        }
+        terms.put("areaType", areaType);
+        CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms);
+        Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum()) + dellNull(caseStatisticsBaseDTO.getResolveingNum());
+        Integer resolveTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum());
+        caseStatisticsBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveNum() * 100, resolveTotalNum, 1));
+        caseStatisticsBaseDTO.setUnResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getUnResolveNum() * 100, resolveTotalNum, 1));
+        caseStatisticsBaseDTO.setResolveingRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveingNum() * 100, baseTotalNum, 1));
+        Integer levelTotalNum = caseStatisticsBaseDTO.getOneLevelNum() + caseStatisticsBaseDTO.getTwoLevelNum() + caseStatisticsBaseDTO.getThreeLevelNum();
+        caseStatisticsBaseDTO.setOneLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getOneLevelNum() * 100, levelTotalNum, 1));
+        caseStatisticsBaseDTO.setTwoLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getTwoLevelNum() * 100, levelTotalNum, 1));
+        caseStatisticsBaseDTO.setThreeLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getThreeLevelNum() * 100, levelTotalNum, 1));
+        //当日新增
+        Map<String, Object> toDayTerms = new HashMap<>();
+        toDayTerms.putAll(terms);
+        String toDayStr = DateUtils.DateToString(DateUtils.getNowDate(), DateUtils.YYYY_MM_DD);
+        toDayTerms.put("createStart", toDayStr + " 00:00:00");
+        toDayTerms.put("createEnd", toDayStr + " 23:59:59");
+        CaseStatisticsBaseDTO toDayBaseDTO = mapper.statisticsBase(toDayTerms);
+        caseStatisticsBaseDTO.setToDayTotalNum(toDayBaseDTO.getTotalNum());
+        caseStatisticsBaseDTO.setToDayProcessNum(toDayBaseDTO.getProcessNum());
+        caseStatisticsBaseDTO.setToDayRejectNum(toDayBaseDTO.getRejectNum());
+        caseStatisticsBaseDTO.setToDayFinishNum(toDayBaseDTO.getFinishNum());
+        BeanUtils.copyProperties(caseStatisticsBaseDTO, caseWorkStatisticsBaseDTO);
+
+        //按时间统计
+        Date startDate = null;
+        Date endDate = null;
+        if(ObjectUtils.isNotEmpty(terms.get("createStart"))){
+            String startTime = terms.get("createStart").toString();
+            String endTime = terms.get("createEnd").toString();
+            startDate = DateUtils.StringToDate(startTime, "yyyy-MM-dd HH:mm:ss");
+            endDate = DateUtils.StringToDate(endTime, "yyyy-MM-dd HH:mm:ss");
+            terms.put("selectTimeType","1");
+        }else if(ObjectUtils.isNotEmpty(terms.get("closeStart"))){
+            String startTime = terms.get("closeStart").toString();
+            String endTime = terms.get("closeEnd").toString();
+            startDate = DateUtils.StringToDate(startTime, "yyyy-MM-dd HH:mm:ss");
+            endDate = DateUtils.StringToDate(endTime, "yyyy-MM-dd HH:mm:ss");
+            terms.put("selectTimeType","2");
+        }
+        List<CaseWorkStatisticsTimeDTO> resultTimeDTOs = new ArrayList<>();
+        if(ObjectUtils.isNotEmpty(startDate)){
+            String spanType = StatisticsTimeUtils.spanTime(startDate, endDate);
+            terms.put("timeType", spanType);
+            List<CaseWorkStatisticsTimeDTO> caseWorkStatisticsTimeDTOs = mapper.workStatisticsTime(terms);
+            resultTimeDTOs = StatisticsTimeUtils.dellStatisticsTime(caseWorkStatisticsTimeDTOs, startDate, endDate, spanType);
+        }
+        caseWorkStatisticsBaseDTO.setTimeList(resultTimeDTOs);
+
+        //环比和同比
+        if(StatisticsTimeUtils.isStartAndEndOfMonth(startDate, endDate)){
+            caseWorkStatisticsBaseDTO.setMomType("1");
+            Map<String, Object> momthTerms = new HashMap<>();
+            momthTerms.putAll(terms);
+            momthTerms.put("createStart", StatisticsTimeUtils.getMomStartDate(startDate) + " 00:00:00");
+            momthTerms.put("createEnd", StatisticsTimeUtils.getMomEndDate(startDate) + " 23:59:59");
+            CaseStatisticsBaseDTO momBaseDTO = mapper.statisticsBase(momthTerms);
+            caseWorkStatisticsBaseDTO.setMomTotalRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getTotalNum(),momBaseDTO.getTotalNum()));
+            caseWorkStatisticsBaseDTO.setMomProcessRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getProcessNum(),momBaseDTO.getProcessNum()));
+            caseWorkStatisticsBaseDTO.setMomRejectRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getRejectNum(),momBaseDTO.getRejectNum()));
+            caseWorkStatisticsBaseDTO.setMomFinishNumRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getFinishNum(),momBaseDTO.getFinishNum()));
+            Integer momResolveTotalNum = dellNull(momBaseDTO.getResolveNum()) + dellNull(momBaseDTO.getUnResolveNum());
+            momBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(momBaseDTO.getResolveNum() * 100, momResolveTotalNum, 1));
+            caseWorkStatisticsBaseDTO.setMomResolveRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getResolveRate(),momBaseDTO.getResolveRate()));
+            momthTerms.put("createStart", StatisticsTimeUtils.getYoyDate(startDate) + " 00:00:00");
+            momthTerms.put("createEnd", StatisticsTimeUtils.getYoyDate(endDate) + " 23:59:59");
+            CaseStatisticsBaseDTO yoyBaseDTO = mapper.statisticsBase(momthTerms);
+            caseWorkStatisticsBaseDTO.setYoyTotalRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getTotalNum(),yoyBaseDTO.getTotalNum()));
+            caseWorkStatisticsBaseDTO.setYoyProcessRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getProcessNum(),yoyBaseDTO.getProcessNum()));
+            caseWorkStatisticsBaseDTO.setYoyRejectRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getRejectNum(),yoyBaseDTO.getRejectNum()));
+            caseWorkStatisticsBaseDTO.setYoyFinishNumRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getFinishNum(),yoyBaseDTO.getFinishNum()));
+            Integer yoyResolveTotalNum = dellNull(yoyBaseDTO.getResolveNum()) + dellNull(yoyBaseDTO.getUnResolveNum());
+            yoyBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(yoyBaseDTO.getResolveNum() * 100, yoyResolveTotalNum, 1));
+            caseWorkStatisticsBaseDTO.setYoyResolveRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getResolveRate(),yoyBaseDTO.getResolveRate()));
+
+        }else if(StatisticsTimeUtils.isStartAndEndOfYear(startDate, endDate)){
+            caseWorkStatisticsBaseDTO.setMomType("2");
+            Map<String, Object> momthTerms = new HashMap<>();
+            momthTerms.putAll(terms);
+            momthTerms.put("createStart", StatisticsTimeUtils.getYoyDate(startDate) + " 00:00:00");
+            momthTerms.put("createEnd", StatisticsTimeUtils.getYoyDate(endDate) + " 23:59:59");
+            CaseStatisticsBaseDTO yoyBaseDTO = mapper.statisticsBase(momthTerms);
+            caseWorkStatisticsBaseDTO.setYoyTotalRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getTotalNum(),yoyBaseDTO.getTotalNum()));
+            caseWorkStatisticsBaseDTO.setYoyProcessRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getProcessNum(),yoyBaseDTO.getProcessNum()));
+            caseWorkStatisticsBaseDTO.setYoyRejectRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getRejectNum(),yoyBaseDTO.getRejectNum()));
+            caseWorkStatisticsBaseDTO.setYoyFinishNumRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getFinishNum(),yoyBaseDTO.getFinishNum()));
+            Integer yoyResolveTotalNum = dellNull(yoyBaseDTO.getResolveNum()) + dellNull(yoyBaseDTO.getUnResolveNum());
+            yoyBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(yoyBaseDTO.getResolveNum() * 100, yoyResolveTotalNum, 1));
+            caseWorkStatisticsBaseDTO.setYoyResolveRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getResolveRate(),yoyBaseDTO.getResolveRate()));
+        }else{
+            caseWorkStatisticsBaseDTO.setMomType("0");
+        }
+
+        //纠纷类型统计
+        List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms);
+        if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) {
+            sortType(caseStatisticsTypeDTOS);
+        }
+        Integer typeTotalNum = 0;
+        Integer otherCaseNum = 0;
+        int i = 1;
+        List<CaseStatisticsTypeDTO> typeList = new ArrayList<>();
+        for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) {
+            typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+            if(i<6 && !"其他".equals(caseStatisticsTypeDTO.getCaseTypeName())){
+                typeList.add(caseStatisticsTypeDTO);
+                i++;
+            }else{
+                otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+            }
+        }
+        for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) {
+            caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1));
+        }
+        if(otherCaseNum > 0){
+            CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO();
+            caseStatisticsTypeDTO.setCaseTypeName("其他");
+            caseStatisticsTypeDTO.setCaseNum(otherCaseNum);
+            caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1));
+            typeList.add(caseStatisticsTypeDTO);
+        }
+        caseWorkStatisticsBaseDTO.setTypeList(typeList);
+        return caseWorkStatisticsBaseDTO;
+    }
+
     public Map<String, String> getArea() {
         Map<String, String> map = new HashMap<>();
         map.put("越秀区", "2");
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
index 39208a2..fbd1ff1 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
@@ -1135,6 +1135,45 @@
             throw new ServiceException("CaseTaskService.getCountList", e);
         }
     }
+    /**
+     * 首页-查询全部待办任务
+     *
+     * @param page  分页对象
+     * @param terms 条件
+     * @return Page
+     */
+    public Page<FrontPageListAllDTO> pageMyTaskAll(PageRequest page, Map<String, Object> terms) {
+        try {
+            long total = mapper.countMyTaskAll(terms);
+            List<FrontPageListAllDTO> frontPageListFPDTOList = mapper.pageMyTaskAll(page, terms);
+            return new PageImpl<FrontPageListAllDTO>(frontPageListFPDTOList, page, total);
+        } catch (Exception e) {
+            log.error("[CaseTaskService.pageMyTaskAll]调用失败,异常信息:" + e, e);
+            throw new ServiceException("pageMyTaskAll.pageMyTaskFp", e);
+        }
+
+    }
+
+    /**
+     * 已办事项-数量
+     * @param terms 条件
+     */
+    public CaseYbCountDTO countYbTaskAll(Map<String, Object> terms) {
+        CaseYbCountDTO caseYbCountDTO = new CaseYbCountDTO();
+        long ybDispatch = mapper.countYbDispatch(terms);
+        long ybAccept = mapper.countYbAccept(terms);
+        long ybClosed = mapper.countYbClosed(terms);
+        long ybAudit = mapper.countYbAudit(terms);
+        long ybSupervise = mapper.countYbSupervise(terms);
+        caseYbCountDTO.setYbDispatch(ybDispatch);
+        caseYbCountDTO.setYbAccept(ybAccept);
+        caseYbCountDTO.setYbClosed(ybClosed);
+        caseYbCountDTO.setYbAudit(ybAudit);
+        caseYbCountDTO.setYbSupervise(ybSupervise);
+        caseYbCountDTO.setYbMerge(0L);
+        caseYbCountDTO.setAllYbTask(ybDispatch+ybAccept+ybClosed+ybAudit+ybSupervise);
+        return caseYbCountDTO;
+    }
 
     /**
      * 首页-查询待办任务-待/已分派
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/utils/StatisticsTimeUtils.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/utils/StatisticsTimeUtils.java
new file mode 100644
index 0000000..5ab941f
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/utils/StatisticsTimeUtils.java
@@ -0,0 +1,274 @@
+package cn.huge.module.cases.utils;
+
+import cn.huge.base.common.utils.DateUtils;
+import cn.huge.base.common.utils.ObjectUtils;
+import cn.huge.module.cases.domain.dto.CaseWorkStatisticsTimeDTO;
+import com.alibaba.fastjson.JSON;
+
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.TemporalAdjusters;
+import java.util.*;
+
+/**
+ * 工作统计-时间计算类
+ * @author zhouxiantao
+ * @create 2025-04-23 11:48
+ */
+public class StatisticsTimeUtils {
+    /**
+     * 判断两个时间 1-按日统计,2-按月统计,3-按年统计
+     * */
+    public static String spanTime(Date startDate, Date endDate){
+        Integer differDay = DateUtils.getDifferDay(startDate, endDate);
+        if(differDay <= 31){
+            return "1";
+        }else if(differDay > 31 && differDay <= 365){
+            return "2";
+        }else if(differDay > 365){
+            return "3";
+        }
+        return null;
+    }
+
+
+    /**
+     * 填补缺少的时间
+     * */
+    public static List<CaseWorkStatisticsTimeDTO> dellStatisticsTime(List<CaseWorkStatisticsTimeDTO> caseWorkStatisticsTimeDTOS, Date startDate, Date endDate,String type) {
+        List<CaseWorkStatisticsTimeDTO> resultList = new ArrayList<>();
+        if("1".equals(type)){
+            Integer differDay = DateUtils.getDifferDay(startDate, endDate);
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+            LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+            LocalDate endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+            // 生成所有在 startDate 和 endDate 范围内的日期
+            Set<LocalDate> allDatesInRange = new HashSet<>();
+            LocalDate currentDate = startLocalDate;
+            while (!currentDate.isAfter(endLocalDate)) {
+                allDatesInRange.add(currentDate);
+                currentDate = currentDate.plusDays(1);
+            }
+            // 将 caseWorkStatisticsTimeDTOs 中的日期转换为 LocalDate 并存储在 map 中
+            Map<LocalDate, CaseWorkStatisticsTimeDTO> existingDatesMap = new HashMap<>();
+            for (CaseWorkStatisticsTimeDTO dto : caseWorkStatisticsTimeDTOS) {
+                LocalDate date = LocalDate.parse(dto.getDayStr(), formatter);
+                existingDatesMap.put(date, dto);
+            }
+            // 确保每个日期都在范围内
+            for (LocalDate date : allDatesInRange) {
+                if (existingDatesMap.containsKey(date)) {
+                    CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO = existingDatesMap.get(date);
+                    String[] split = caseWorkStatisticsTimeDTO.getDayStr().split("-");
+                    caseWorkStatisticsTimeDTO.setTimeStr(split[2]+"日");
+                    caseWorkStatisticsTimeDTO.setTimeAllStr(split[0]+"年"+split[1]+"月"+split[2]+"日");
+                    int i = Integer.valueOf(split[1]) * 100 + Integer.valueOf(split[2]);
+                    caseWorkStatisticsTimeDTO.setSort(i);
+                    resultList.add(caseWorkStatisticsTimeDTO);
+                } else {
+                    String format = date.format(formatter);
+                    String[] split = format.split("-");
+                    CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO = new CaseWorkStatisticsTimeDTO();
+                    caseWorkStatisticsTimeDTO.setTimeStr(split[2]+"日");
+                    caseWorkStatisticsTimeDTO.setTimeAllStr(split[0]+"年"+split[1]+"月"+split[2]+"日");
+                    int i = Integer.valueOf(split[1]) * 100 + Integer.valueOf(split[2]);
+                    caseWorkStatisticsTimeDTO.setSort(i);
+                    resultList.add(caseWorkStatisticsTimeDTO);
+                }
+            }
+            if(differDay <=7){
+                Collections.sort(resultList, (o1, o2) -> Integer.compare(o1.getSort(), o2.getSort()));
+               return resultList;
+            }else{
+                List<CaseWorkStatisticsTimeDTO> result1List = new ArrayList<>();
+                Map<String, List<CaseWorkStatisticsTimeDTO>> stringListMap = groupByWeek(caseWorkStatisticsTimeDTOS);
+                for (String week : stringListMap.keySet()) {
+                    String[] split = week.split("=");
+                    String[] startTime = split[0].split("-");
+                    String[] endTime = split[1].split("-");
+                    CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO = new CaseWorkStatisticsTimeDTO();
+                    List<CaseWorkStatisticsTimeDTO> caseWorkStatisticsTimeDTOS1 = stringListMap.get(week);
+                    for (CaseWorkStatisticsTimeDTO workStatisticsTimeDTO : caseWorkStatisticsTimeDTOS1) {
+                        caseWorkStatisticsTimeDTO.setTotalNum(caseWorkStatisticsTimeDTO.getTotalNum()+workStatisticsTimeDTO.getTotalNum());
+                        caseWorkStatisticsTimeDTO.setProcessNum(caseWorkStatisticsTimeDTO.getProcessNum()+workStatisticsTimeDTO.getProcessNum());
+                        caseWorkStatisticsTimeDTO.setFinishNum(caseWorkStatisticsTimeDTO.getFinishNum()+workStatisticsTimeDTO.getFinishNum());
+                        caseWorkStatisticsTimeDTO.setRejectNum(caseWorkStatisticsTimeDTO.getRejectNum()+workStatisticsTimeDTO.getRejectNum());
+                        caseWorkStatisticsTimeDTO.setResolveNum(caseWorkStatisticsTimeDTO.getResolveNum()+workStatisticsTimeDTO.getResolveNum());
+                        caseWorkStatisticsTimeDTO.setUnResolveNum(caseWorkStatisticsTimeDTO.getUnResolveNum()+workStatisticsTimeDTO.getUnResolveNum());
+                        caseWorkStatisticsTimeDTO.setResolveingNum(caseWorkStatisticsTimeDTO.getResolveingNum()+workStatisticsTimeDTO.getResolveingNum());
+                    }
+                    caseWorkStatisticsTimeDTO.setTimeStr(startTime[2]+"-"+endTime[2]+"日");
+                    caseWorkStatisticsTimeDTO.setTimeAllStr(startTime[0]+"年"+startTime[1]+"月"+startTime[2]+"-"+endTime[2]+"日");
+                    int i = Integer.valueOf(startTime[1]) * 100 + Integer.valueOf(startTime[2]);
+                    caseWorkStatisticsTimeDTO.setSort(i);
+                    result1List.add(caseWorkStatisticsTimeDTO);
+                }
+                Collections.sort(result1List, (o1, o2) -> Integer.compare(o1.getSort(), o2.getSort()));
+                return result1List;
+            }
+        }else if("2".equals(type)){
+            int startYear = DateUtils.getYear(startDate);
+            int endYear = DateUtils.getYear(endDate);
+            int startMonth = DateUtils.getMonth(startDate);
+            int endMonth = DateUtils.getMonth(endDate);
+            Integer minMonth = startYear * 100 + startMonth;
+            Integer maxMonth = endYear * 100 + endMonth;
+            List<String> monthList = new ArrayList<>();
+            Map<String, CaseWorkStatisticsTimeDTO> existingDatesMap = new HashMap<>();
+            for (CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO : caseWorkStatisticsTimeDTOS) {
+                existingDatesMap.put(caseWorkStatisticsTimeDTO.getMonthStr(), caseWorkStatisticsTimeDTO);
+                monthList.add(caseWorkStatisticsTimeDTO.getMonthStr());
+            }
+            for (int i = minMonth; i <= maxMonth; i++){
+                Integer year = i / 100;
+                Integer month = i % 100;
+                if(month == 0 || month > 12){
+                    continue;
+                }
+                String timeStr = year+"-"+month;
+                if(!monthList.contains(timeStr)){
+                    CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO = new CaseWorkStatisticsTimeDTO();
+                    caseWorkStatisticsTimeDTO.setTimeStr(month+"月");
+                    caseWorkStatisticsTimeDTO.setTimeAllStr(year+"年"+month+"月");
+                    caseWorkStatisticsTimeDTO.setSort(i);
+                    resultList.add(caseWorkStatisticsTimeDTO);
+                }else{
+                    CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO = existingDatesMap.get(timeStr);
+                    caseWorkStatisticsTimeDTO.setTimeStr(month+"月");
+                    caseWorkStatisticsTimeDTO.setTimeAllStr(year+"年"+month+"月");
+                    caseWorkStatisticsTimeDTO.setSort(i);
+                    resultList.add(caseWorkStatisticsTimeDTO);
+                }
+            }
+        }else {
+            int minYear = DateUtils.getYear(startDate);
+            int maxYear = DateUtils.getYear(endDate);
+            List<String> yearList = new ArrayList<>();
+            Map<String, CaseWorkStatisticsTimeDTO> existingDatesMap = new HashMap<>();
+            for (CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO : caseWorkStatisticsTimeDTOS) {
+                caseWorkStatisticsTimeDTO.setTimeStr(caseWorkStatisticsTimeDTO.getYearStr());
+                existingDatesMap.put(caseWorkStatisticsTimeDTO.getYearStr(), caseWorkStatisticsTimeDTO);
+                yearList.add(caseWorkStatisticsTimeDTO.getYearStr());
+            }
+            for (int i = minYear; i <= maxYear; i++){
+                String timeStr = String.valueOf(i);
+                if(!yearList.contains(timeStr)){
+                    CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO = new CaseWorkStatisticsTimeDTO();
+                    caseWorkStatisticsTimeDTO.setTimeStr(timeStr+"年");
+                    caseWorkStatisticsTimeDTO.setTimeAllStr(timeStr+"年");
+                    caseWorkStatisticsTimeDTO.setSort(i);
+                    resultList.add(caseWorkStatisticsTimeDTO);
+                }else{
+                    CaseWorkStatisticsTimeDTO caseWorkStatisticsTimeDTO = existingDatesMap.get(timeStr);
+                    caseWorkStatisticsTimeDTO.setTimeStr(timeStr+"年");
+                    caseWorkStatisticsTimeDTO.setTimeAllStr(timeStr+"年");
+                    caseWorkStatisticsTimeDTO.setSort(i);
+                    resultList.add(caseWorkStatisticsTimeDTO);
+                }
+            }
+        }
+        Collections.sort(resultList, (o1, o2) -> Integer.compare(o1.getSort(), o2.getSort()));
+        return resultList;
+    }
+
+    /**
+     * 按周进行分组
+     * */
+    public static Map<String, List<CaseWorkStatisticsTimeDTO>> groupByWeek(List<CaseWorkStatisticsTimeDTO> caseWorkStatisticsTimeDTOs) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        Map<String, List<CaseWorkStatisticsTimeDTO>> weeklyGroups = new HashMap<>();
+        for (CaseWorkStatisticsTimeDTO dto : caseWorkStatisticsTimeDTOs) {
+            LocalDate date = LocalDate.parse(dto.getDayStr(), formatter);
+            LocalDate startOfWeek = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
+            LocalDate endOfWeek = date.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
+            String weekKey = startOfWeek.format(formatter) + "=" + endOfWeek.format(formatter);
+            weeklyGroups.computeIfAbsent(weekKey, k -> new ArrayList<>()).add(dto);
+        }
+        // 对每个周组内的记录按时间从小到大排序
+        for (List<CaseWorkStatisticsTimeDTO> group : weeklyGroups.values()) {
+            group.sort(Comparator.comparing(CaseWorkStatisticsTimeDTO::getDayStr));
+        }
+        System.out.println(JSON.toJSONString(weeklyGroups));
+        return weeklyGroups;
+    }
+
+    public static boolean isStartAndEndOfYear(Date startDate, Date endDate) {
+        LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        LocalDate endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        // 判断 startDate 是否是某一年的第一天
+        boolean isStartDateFirstDay = startLocalDate.equals(startLocalDate.with(TemporalAdjusters.firstDayOfYear()));
+        // 判断 endDate 是否是某一年的最后一天
+        boolean isEndDateLastDay = endLocalDate.equals(endLocalDate.with(TemporalAdjusters.lastDayOfYear()));
+        return isStartDateFirstDay && isEndDateLastDay && startLocalDate.getYear() == endLocalDate.getYear();
+    }
+
+    public static boolean isStartAndEndOfMonth(Date startDate, Date endDate) {
+        LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        LocalDate endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        // 判断 startDate 是否是某个月的第一天
+        boolean isStartDateFirstDay = startLocalDate.equals(startLocalDate.with(TemporalAdjusters.firstDayOfMonth()));
+        // 判断 endDate 是否是某个月的最后一天
+        boolean isEndDateLastDay = endLocalDate.equals(endLocalDate.with(TemporalAdjusters.lastDayOfMonth()));
+        return isStartDateFirstDay && isEndDateLastDay && startLocalDate.getMonthValue() == endLocalDate.getMonthValue() && startLocalDate.getYear() == endLocalDate.getYear();
+    }
+
+    /**
+     * 获取时间的上个月开始时间
+     * */
+    public static String getMomStartDate(Date startDate) {
+        LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        YearMonth lastMonth = YearMonth.from(startLocalDate).minusMonths(1);
+        LocalDate firstDayOfLastMonth = lastMonth.atDay(1);
+        Date from = Date.from(firstDayOfLastMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
+        String time = DateUtils.DateToString(from, DateUtils.YYYY_MM_DD);
+        return time;
+    }
+
+    /**
+     * 获取时间的上个月结束时间
+     * */
+    public static String getMomEndDate(Date startDate) {
+        LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        YearMonth lastMonth = YearMonth.from(startLocalDate).minusMonths(1);
+        LocalDate lastDayOfLastMonth = lastMonth.atEndOfMonth();
+        Date from = Date.from(lastDayOfLastMonth.atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant());
+        String time = DateUtils.DateToString(from, DateUtils.YYYY_MM_DD);
+        return time;
+    }
+
+    /**
+     * 获取时间的去年的时间
+     * */
+    public static String getYoyDate(Date startDate) {
+        LocalDateTime startDateTime = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+        LocalDateTime lastYearSameDateTime = startDateTime.minusYears(1);
+        Date from = Date.from(lastYearSameDateTime.atZone(ZoneId.systemDefault()).toInstant());
+        String time = DateUtils.DateToString(from, DateUtils.YYYY_MM_DD);
+        return time;
+    }
+
+    public static String calculateMomGrowthRate(int currentMonthValue, int previousMonthValue) {
+        if (previousMonthValue == 0) {
+            return "0";
+        }
+        double rate = ((double) (currentMonthValue - previousMonthValue) / previousMonthValue) * 100;
+        return String.format("%.1f", rate);
+    }
+
+    public static String calculateMomGrowthRate(String currentStr, String previousStr) {
+        if(ObjectUtils.isEmpty(currentStr)){
+            return "0";
+        }
+        double previousMonthValue = 0;
+        if(ObjectUtils.isNotEmpty(previousStr) && !"null".equals(previousStr)){
+            previousMonthValue = Double.valueOf(previousStr);
+        }
+        double currentMonthValue = Double.valueOf(currentStr);
+        if(currentMonthValue == 0){
+            return "0";
+        }
+        double rate = ((double) (currentMonthValue - previousMonthValue) / previousMonthValue) * 100;
+        return String.format("%.1f", rate);
+    }
+
+}

--
Gitblit v1.8.0