广州市综治平台后端
64db03a5eb8ece65c6487f9f3370f8b6ebfe0b8b..96fdf159f9128cfa3ecfd5cd32313302373e35e5
2025-06-16 xusd
fix:办理反馈优化
96fdf1 diff | tree
2025-06-16 xusd
Merge remote-tracking branch 'origin/master'
dedc70 diff | tree
2025-06-16 xusd
feature:非警务纠纷优化
4ad498 diff | tree
2025-06-16 huangh
feat: 解纷台账添加纠纷过程统计字段
7f5c97 diff | tree
7 files modified
297 ■■■■■ changed files
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java 3 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseInfoMapper.java 15 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml 23 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java 24 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java 167 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java 2 ●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java 63 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
@@ -552,6 +552,9 @@
        CtUserDTO loginUser = ctUserService.clientGetUserAll(userId);
        // 获取当前登录用户的部门
        CtUnit loginUnit = mapper.selectById(loginUser.getUnitId());
        if(loginUnit.getUnitGrade()==4){
            loginUnit.setUnitGrade(3);
        }
        // 市级交办
        if (UserBaseConsts.UNIT_GRADE_1 == loginUnit.getUnitGrade()) {
            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseInfoMapper.java
@@ -143,6 +143,21 @@
    CaseStatisticsBaseDTO statisticsBase(@Param("terms") Map<String, Object> terms);
    /**
     * 统计分析(基础)新版
     * 这通常用于获取基础的案例统计数据,如总数、化解成功数、化解不成功数、化解中数等
     * 新版统计逻辑:
     * - 化解中包括待受理(info_process <= 2)
     * - 化解成功(info_process = 3 且 medi_result = '22_00025-1')
     * - 化解不成功(info_process = 3 且 medi_result = '22_00025-2')
     * - 不予受理(info_process = 4)
     *
     * @param terms 包含统计条件的键值对,如时间范围、地区等
     * @return 返回一个对象,包含基础的案例统计数据
     */
    CaseStatisticsBaseDTO statisticsBaseProcess(@Param("terms") Map<String, Object> terms);
    /**
     * 统计一级分类下的案例类型数据
     * 这通常用于获取最顶层的案例类型分布
     *
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
@@ -1106,6 +1106,29 @@
        LEFT JOIN dyh_ct_unit c ON b.belong_unit_id = c.id
        <include refid="where-part-all"/>
    </select>
    <!--  统计分析(基础)-统计调解过程  -->
    <select id="statisticsBaseProcess" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsBaseDTO">
        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 = 2 then 1
                when a.info_process = 1 then 1   else 0 end) as processNum,
        sum(case when a.info_process = 3 and b.medi_result = '22_00025-1' then 1 else 0 end) as finishNum,
        sum(case when a.info_process = 4 then 1 else 0 end) as rejectNum,
        sum(case when a.info_process = 3 and b.medi_result = '22_00025-2' then 1 else 0 end) as failNum
        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"/>
    </select>
    <!--  统计分析(类型)  -->
    <select id="statisticsTypeFirst" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsTypeDTO">
        SELECT
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java
@@ -10,15 +10,23 @@
@Data
public class CaseStatisticsBaseDTO {
    private Integer totalNum=0;//总记录数
    private Integer processNum=0;//办理中数量
    private Integer finishNum=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 resolveNum=0;//化解成功数量
    private String resolveRate;//化解成功率
    private Integer unResolveNum=0;//化解不成功数量
    private String unResolveRate;//化解不成功率
    private Integer resolveingNum=0;//化解中数量
    private String resolveingRate;//化解中率
    private String rejectRate;//不予受理率
    private Integer processNum=0;//化解中数量
    private String processRate;//化解中率
    private Integer finishNum=0;//化解成功数量
    private String finishRate;//化解成功率
    private Integer failNum=0;//化解不成功数量
    private String failRate;//化解不成功率
    private Integer oneLevelNum=0;//1级事件数量
    private Integer twoLevelNum=0;//2级事件数量
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java
@@ -26,6 +26,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
@@ -40,17 +41,17 @@
import java.util.Map;
/**
 * @author wangwh
 * @version 1.0.0
 * @title: 联合处置申请信息表业务逻辑处理
 * @Description 联合处置申请信息表业务逻辑处理
 * @company hugeinfo
 * @author wangwh
 * @Time 2024-09-05 17:25:04
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class CaseAssistApplyService extends ServiceImpl<CaseAssistApplyMapper, CaseAssistApply>{
public class CaseAssistApplyService extends ServiceImpl<CaseAssistApplyMapper, CaseAssistApply> {
    @Autowired
    private CaseAssistApplyMapper mapper;
@@ -75,101 +76,109 @@
    private SyHolidayService syHolidayService;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateCaseAssistApply(CaseAssistApply entity){
        try{
     * 更新对象
     *
     * @param entity 对象
     */
    public void updateCaseAssistApply(CaseAssistApply entity) {
        try {
            mapper.updateCaseAssistApply(entity);
        }catch (Exception e){
            log.error("[CaseAssistApplyService.updateCaseAssistApply]调用失败,异常信息:"+e, e);
        } catch (Exception e) {
            log.error("[CaseAssistApplyService.updateCaseAssistApply]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseAssistApplyService.updateCaseAssistApply", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateCaseAssistApplyTerms(CaseAssistApply entity, Map<String, Object> terms){
        try{
     * 条件更新对象
     *
     * @param entity 对象
     * @param terms  条件
     */
    public void updateCaseAssistApplyTerms(CaseAssistApply entity, Map<String, Object> terms) {
        try {
            mapper.updateCaseAssistApplyTerms(entity, terms);
        }catch (Exception e){
            log.error("[CaseAssistApplyService.updateCaseAssistApplyTerms]调用失败,异常信息:"+e, e);
        } catch (Exception e) {
            log.error("[CaseAssistApplyService.updateCaseAssistApplyTerms]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseAssistApplyService.updateCaseAssistApplyTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteCaseAssistApply(String id){
        try{
     * 根据编号物理删除
     *
     * @param id 查询条件集合
     */
    public void deleteCaseAssistApply(String id) {
        try {
            mapper.deleteCaseAssistApply(id);
        }catch (Exception e){
            log.error("[CaseAssistApplyService.deleteCaseAssistApply]调用失败,异常信息:"+e, e);
        } catch (Exception e) {
            log.error("[CaseAssistApplyService.deleteCaseAssistApply]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseAssistApplyService.deleteCaseAssistApply", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<CaseAssistApply> listTerms(Map<String, Object> terms){
     * 按条件查询
     *
     * @param terms 条件
     * @return List
     */
    public List<CaseAssistApply> listTerms(Map<String, Object> terms) {
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
     * 按条件统计
     *
     * @param terms 条件
     * @return long
     */
    public long countTerms(Map<String, Object> terms) {
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<CaseAssistApply> pageQuery(PageRequest page, Map<String, Object> terms){
     * 按条件分页查询
     *
     * @param page  分页对象
     * @param terms 条件
     * @return Page
     */
    public Page<CaseAssistApply> pageQuery(PageRequest page, Map<String, Object> terms) {
        long total = mapper.countTerms(terms);
        List<CaseAssistApply> content = mapper.pageTerms(page, terms);
        return new PageImpl<CaseAssistApply>(content, page, total);
    }
    /**
    * 新增或更新对象
    * @param caseAssistApply 实体对象
    */
    public void saveCaseAssistApply(CaseAssistApply caseAssistApply){
        try{
     * 新增或更新对象
     *
     * @param caseAssistApply 实体对象
     */
    public void saveCaseAssistApply(CaseAssistApply caseAssistApply) {
        try {
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(caseAssistApply.getId())){
            if (IdUtils.checkNewId(caseAssistApply.getId())) {
                caseAssistApply.setId(utilsClient.getNewTimeId());
                caseAssistApply.setCreateTime(nowDate);
            }
            caseAssistApply.setUpdateTime(nowDate);
            this.saveOrUpdate(caseAssistApply);
        }catch (Exception e){
            log.error("[CaseAssistApplyService.saveCaseAssistApply]调用失败,异常信息:"+e, e);
        } catch (Exception e) {
            log.error("[CaseAssistApplyService.saveCaseAssistApply]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseAssistApplyService.saveCaseAssistApply", e);
        }
    }
    /**
     * 添加联合处置申请
     *
     * @param caseAssistApply 实体对象
     */
    public void addCaseAssistApply(CaseAssistApply caseAssistApply, String userId){
        try{
    public void addCaseAssistApply(CaseAssistApply caseAssistApply, String userId) {
        try {
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            Date now = DateUtils.getNowDate();
@@ -183,8 +192,25 @@
            caseAssistApply.setApplyTime(now);
            caseAssistApply.setCreateTime(now);
            caseAssistApply.setUpdateTime(now);
            //如果申请联合处置的机构是区级机构,由区综治中心审核
            boolean isQu = false;
            String quUnitId = "";
            if (StringUtils.isNotEmpty(caseAssistApply.getApplyAssistUnitId())) {
                String[] unitIdList = caseAssistApply.getApplyAssistUnitId().split(BaseConsts.COMMA);
                for (String unitId : unitIdList) {
                    CtUnitDTO unitById = custClient.getUnitById(unitId);
                    if (unitById.getUnitGrade() == 2) {
                        isQu = true;
                        quUnitId = unitById.getId();
                        break;
                    }
                }
            }
            // 上级综治中心审核
            CtUnitDTO ctUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId());
            if (isQu) {
                ctUnitDTO=custClient.getParentZzzxUnit(quUnitId);
            }
            caseAssistApply.setAuditUnitId(ctUnitDTO.getId());
            caseAssistApply.setAuditUnitName(ctUnitDTO.getUnitName());
            mapper.insert(caseAssistApply);
@@ -194,18 +220,19 @@
            caseTask.setCandeUnitId(caseAssistApply.getAuditUnitId());
            caseTask.setExpireTime(sysClient.getExpireTime(caseAssistApply.getApplyTime(), SyTimeEnum.SY_TIME_2.getIndex()));
            caseTaskService.createGridToDo(caseInfo, caseTask, GridEnum.GRID_OBJECT_TYPE_4.getIndex(), GridBaseConsts.GRID_TYPE_4);
        }catch (Exception e){
            log.error("[CaseAssistApplyService.addCaseAssistApply]调用失败,异常信息:"+e, e);
        } catch (Exception e) {
            log.error("[CaseAssistApplyService.addCaseAssistApply]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseAssistApplyService.addCaseAssistApply", e);
        }
    }
    /**
     * 审核联合处置审核
     *
     * @param caseAssistApply 实体对象
     */
    public void reviewCaseAssistApply(CaseAssistApply caseAssistApply, String userId){
        try{
    public void reviewCaseAssistApply(CaseAssistApply caseAssistApply, String userId) {
        try {
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            Date now = DateUtils.getNowDate();
@@ -223,7 +250,7 @@
            if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseAssistApplyPO.getAuditResult())) {
                String[] unitIdList = caseAssistApplyPO.getApplyAssistUnitId().split(BaseConsts.COMMA);
                String[] unitNameList = caseAssistApplyPO.getApplyAssistUnitName().split(BaseConsts.COMMA);
                for (int i=0; i<unitIdList.length; i++){
                for (int i = 0; i < unitIdList.length; i++) {
                    String unitId = unitIdList[i];
                    String unitName = unitNameList[i];
                    // 启动联合处置工作流
@@ -255,7 +282,7 @@
                    dfpCaseTask.setHandleUserName(loginUser.getTrueName());
                    dfpCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
                    dfpCaseTask.setHandleContent(caseAssistApplyPO.getAuditContent());
                    dfpCaseTask.setHandleIllust("交办至:"+caseAssistApplyPO.getApplyAssistUnitName());
                    dfpCaseTask.setHandleIllust("交办至:" + caseAssistApplyPO.getApplyAssistUnitName());
                    // 任务处理时限
                    if (dfpFlowNode.getExpire() != 0) {
                        dfpCaseTask.setExpireTime(syHolidayService.getExpiryDay(now, dfpFlowNode.getExpire()));
@@ -319,29 +346,30 @@
                caseInfoUnfoldPO.setAssistUnitId(caseAssistApplyPO.getApplyAssistUnitId());
                caseInfoUnfoldPO.setAssistUnitName(caseAssistApplyPO.getApplyAssistUnitName());
                caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            }else{
            } else {
                CaseTask caseTask = new CaseTask();
                caseTask.setCaseId(caseAssistApplyPO.getCaseId());
                caseTask.setId(caseAssistApplyPO.getCaseId());
                caseTaskService.deleteGridTodo(caseTask);
            }
        }catch (Exception e){
            log.error("[CaseAssistApplyService.reviewCaseAssistApply]调用失败,异常信息:"+e, e);
        } catch (Exception e) {
            log.error("[CaseAssistApplyService.reviewCaseAssistApply]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseAssistApplyService.reviewCaseAssistApply", e);
        }
    }
    /**
     * 根据案件编号查询联合处置申请
     *
     * @param id 主键编号
     * @return long
     */
    public CaseAssistApply caseAssistApplyById(String id){
    public CaseAssistApply caseAssistApplyById(String id) {
        try {
            QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>();
            caseAssistApplyQueryWrapper.eq("id", id);
            CaseAssistApply caseAssistApply = mapper.selectOne(caseAssistApplyQueryWrapper);
            if(ObjectUtils.isNotEmpty(caseAssistApply)){
            if (ObjectUtils.isNotEmpty(caseAssistApply)) {
                Map<String, Object> terms = new HashMap<>();
                terms.put("mainId", caseAssistApply.getCaseId());
                terms.put("ownerIds", "'" + caseAssistApply.getId() + "'");
@@ -351,37 +379,40 @@
                }
            }
            return caseAssistApply;
        }catch(Exception e ){
            log.error("[CaseAssistApplyService.caseAssistApplyById]调用失败,异常信息:"+e, e);
        } catch (Exception e) {
            log.error("[CaseAssistApplyService.caseAssistApplyById]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseAssistApplyService.caseAssistApplyById", e);
        }
    }
    /**
     * 首页查询
     *
     * @param auditUnitId 审核组织编号
     * @return long
     */
    public long countAssistReview(String auditUnitId){
    public long countAssistReview(String auditUnitId) {
        return mapper.countAssistReview(auditUnitId);
    }
    /**
     * 首页-待审核条件统计
     *
     * @param terms 条件
     * @return long
     */
    public long countMyTaskAssistReview(Map<String, Object> terms){
    public long countMyTaskAssistReview(Map<String, Object> terms) {
        return mapper.countMyTaskAssistReview(terms);
    }
    /**
     * 按条件查询
     * @param page 分页对象
     *
     * @param page  分页对象
     * @param terms 条件
     * @return List
     */
    public List<FrontPageListDTO> pageMyTaskAssistReview(PageRequest page, Map<String, Object> terms){
    public List<FrontPageListDTO> pageMyTaskAssistReview(PageRequest page, Map<String, Object> terms) {
        return mapper.pageMyTaskAssistReview(page, terms);
    }
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java
@@ -327,7 +327,7 @@
            QueryWrapper<CaseInfoUnfold> caseInfoUnfoldQueryWrapper = new QueryWrapper<>();
            caseInfoUnfoldQueryWrapper.eq("id", caseFeedback.getCaseId());
            CaseInfoUnfold caseInfoUnfold = unfoldService.getOne(caseInfoUnfoldQueryWrapper);
            if (caseInfoUnfold.getMediateUnitId().equals(loginUser.getUnitId())) {
            if (caseInfoUnfold.getMediateUnitId() == null && caseInfoUnfold.getMediateUnitId().equals(loginUser.getUnitId())) {
                caseFeedback.setHandleType(CaseTaskConsts.HANDLE_TYPE_1);
            } else {
                caseFeedback.setHandleType(CaseTaskConsts.HANDLE_TYPE_2);
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -1307,6 +1307,31 @@
        return new PageImpl<CasePageDTO>(content, page, total);
    }
        /**
     * 统计调解过程
     * 计算案件的调解过程相关统计数据,包括不予受理率、化解中率、化解成功率、化解不成功率等
     *
     * @param terms 统计条件
     * @return 包含调解过程统计数据的DTO对象
     */
    public CaseStatisticsBaseDTO statisticsProcess(Map<String, Object> terms) {
        CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBaseProcess(terms);
        Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getRejectNum()) + dellNull(caseStatisticsBaseDTO.getProcessNum()) + dellNull(caseStatisticsBaseDTO.getFinishNum()) + dellNull(caseStatisticsBaseDTO.getFailNum());
        caseStatisticsBaseDTO.setRejectRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getRejectNum() * 100, baseTotalNum, 1));
        caseStatisticsBaseDTO.setProcessRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getProcessNum() * 100, baseTotalNum, 1));
        caseStatisticsBaseDTO.setFinishRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getFinishNum() * 100, baseTotalNum, 1));
        caseStatisticsBaseDTO.setFailRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getFailNum() * 100, baseTotalNum, 1));
        // 如果 baseTotalNum为0 设置 总数为0
        caseStatisticsBaseDTO.setTotalNum(baseTotalNum);
        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));
        return caseStatisticsBaseDTO;
    }
    /**
     * 纠纷态势
@@ -1391,16 +1416,8 @@
        }
        //基础数据统计
        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));
        // 调用统计调解过程的方法
        CaseStatisticsBaseDTO caseStatisticsBaseDTO = statisticsProcess(terms);
        //区域数据统计
        List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = new ArrayList<>();
        if (!isLast) {
@@ -2199,20 +2216,22 @@
        for (String key : originalTypeTerms.keySet()) {
            terms.put(key, originalTypeTerms.get(key));
        }
        // 调用统计调解过程的方法
        CaseStatisticsBaseDTO processStats = statisticsProcess(terms);
        // 将调解过程统计数据合并到统计结果中
        statistics.setTotalNum(processStats.getTotalNum());
        statistics.setRejectNum(processStats.getRejectNum());
        statistics.setProcessNum(processStats.getProcessNum());
        statistics.setFinishNum(processStats.getFinishNum());
        statistics.setFailNum(processStats.getFailNum());
        statistics.setRejectRate(processStats.getRejectRate());
        statistics.setProcessRate(processStats.getProcessRate());
        statistics.setFinishRate(processStats.getFinishRate());
        statistics.setFailRate(processStats.getFailRate());
        // 重新获取纠纷类型统计(基于完整的选择类型条件)
        List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms);
        // 如果基于选择类型的查询结果为空,则使用全量数据进行纠纷类型统计
        if (ObjectUtils.isEmpty(caseStatisticsTypeDTOS)) {
            // 临时移除所有类型筛选条件,获取全量纠纷类型统计
            terms.remove("canal");
            terms.remove("canalSecond");
            terms.remove("canalList");
            terms.remove("canalSecondNot");
            terms.remove("canalSecondAll");
            caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms);
        }
        if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) {
            sortType(caseStatisticsTypeDTOS);