forked from gzzfw/backEnd/gz-dyh

wangwh
2024-10-28 e79d8c8f9679839bf983341fe2cf3212e1bb3001
Merge remote-tracking branch 'origin/gzdyh_test' into gzdyh_test
45 files added
20 files modified
10278 ■■■■■ changed files
dyh-service/dyh-disp/src/main/java/cn/huge/module/casedisp/service/SysDispService.java 6 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-disp/src/main/java/cn/huge/module/client/api/CustClient.java 9 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-disp/src/main/java/cn/huge/module/client/api/impl/CustClientImpl.java 23 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/controller/web/CaseBookWebController.java 311 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookAgentMapper.java 64 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookAssistInfoMapper.java 64 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookFileMapper.java 64 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookInfoMapper.java 102 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookInfoUnfoldMapper.java 64 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookPersonMapper.java 64 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookAgentMapper.xml 430 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookAssistInfoMapper.xml 181 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookFileMapper.xml 145 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookInfoMapper.xml 678 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookInfoUnfoldMapper.xml 391 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookPersonMapper.xml 436 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookAgentBO.java 17 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookAssistInfoBO.java 17 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookFileBO.java 17 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookInfoBO.java 17 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookInfoUnfoldBO.java 17 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookPersonBO.java 17 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/dto/CaseBookPageDTO.java 81 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookAgent.java 354 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookAssistInfo.java 107 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookFile.java 71 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookInfo.java 450 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookInfoUnfold.java 317 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookPerson.java 360 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookAgentService.java 133 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookAssistInfoService.java 133 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookFileService.java 133 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookInfoService.java 303 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookInfoUnfoldService.java 133 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookPersonService.java 133 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java 6 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml 71 ●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml 7 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java 68 ●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java 13 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java 9 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java 22 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/client/api/SyncBydyhClient.java 18 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/client/api/impl/SyncBydyhClientImpl.java 53 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/controller/SyncBydyhController.java 45 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/controller/web/SyCauseWebController.java 175 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/dao/mapper/SyCauseMapper.java 64 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/dao/mapper/ThirdCauseMapper.java 64 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/dao/mapper/xml/SyCauseMapper.xml 145 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/dao/mapper/xml/ThirdCauseMapper.xml 157 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/bo/SyCauseBO.java 17 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/bo/ThirdCauseBO.java 17 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/dto/ByCaseTaskDTO.java 317 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/dto/GZCaseDTO.java 2 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/po/SyCause.java 71 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/po/ThirdCause.java 83 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/service/ByToGzCaseTaskService.java 2199 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/service/ByToGzService.java 215 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/service/SyCauseService.java 133 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/service/ThirdCauseService.java 113 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-sync-bydyh/src/main/java/cn/huge/module/bycase/controller/SyncCaseController.java 37 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-sync-bydyh/src/main/java/cn/huge/module/bycase/dao/mapper/xml/CaseInfoMapper.xml 5 ●●●● patch | view | raw | blame | history
dyh-service/dyh-sync-bydyh/src/main/java/cn/huge/module/bycase/domain/dto/GZCaseDTO.java 3 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-sync-bydyh/src/main/java/cn/huge/module/bycase/service/CaseInfoService.java 284 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/client/FileInfoClientController.java 23 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-disp/src/main/java/cn/huge/module/casedisp/service/SysDispService.java
@@ -11,6 +11,7 @@
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.constant.BaseConsts;
import cn.huge.module.cust.constant.UserBaseConsts;
import cn.huge.module.cust.dto.CtUnitDTO;
import cn.huge.module.disp.constant.DispBaseConsts;
import cn.huge.module.disp.constant.DispBaseConstsEnum;
import cn.huge.module.disp.dto.CaseDispBaseDTO;
@@ -50,6 +51,8 @@
    @Autowired
    private UtilsClientImpl utilsClient;
    @Autowired
    private CustClientImpl custClient;
    /**
     * 系统自动调度
@@ -109,6 +112,9 @@
                caseDisp.setTargetTypeName(DispBaseConstsEnum.TARGET_TYPE_1.getDes());
                caseDisp.setTargetId(dispCaseBaseDTO.getWantUnitId());
                caseDisp.setTargetName(dispCaseBaseDTO.getWantUnitName());
                CtUnitDTO ctUnitDTO = custClient.getUnitById(dispCaseBaseDTO.getWantUnitId());
                caseDisp.setTargetUnitGrade(ctUnitDTO.getUnitGrade());
                caseDisp.setTargetUnitType(ctUnitDTO.getUnitType());
            }
            caseDispService.save(caseDisp);
            return caseDisp;
dyh-service/dyh-disp/src/main/java/cn/huge/module/client/api/CustClient.java
@@ -43,4 +43,13 @@
    @GetMapping("/api/client/paUser/clientGetUserAll")
    ReturnBO paclientGetUser(@RequestParam("userId") String userId);
    /**
     * 根据id查询组织信息
     * @url {ctx}/api/client/ctUnit/getUnitById
     * @param unitId 组织编号
     * @return Object
     */
    @GetMapping("/api/client/ctUnit/getUnitById")
    ReturnBO getUnitById(@RequestParam("unitId") String unitId);
}
dyh-service/dyh-disp/src/main/java/cn/huge/module/client/api/impl/CustClientImpl.java
@@ -5,6 +5,7 @@
import cn.huge.base.common.exception.ClientException;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.module.client.api.CustClient;
import cn.huge.module.cust.dto.CtUnitDTO;
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.cust.dto.PaUserDTO;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -99,4 +100,26 @@
        }
    }
    /**
     * 根据id查询组织信息
     * @url {ctx}/api/client/ctUnit/getUnitById
     * @param unitId 组织编号
     * @return Object
     */
    public CtUnitDTO getUnitById(String unitId){
        try{
            ReturnBO returnBo = custClient.getUnitById(unitId);
            if (ReturnConsts.OK == returnBo.getCode()){
                CtUnitDTO ctUnitDTO = objectMapper.convertValue(returnBo.getData(), CtUnitDTO.class);
                return ctUnitDTO;
            }else{
                log.error("Client外服务接口[CustClientImpl.getUnitById]请求异常:" + returnBo.getMsg(), returnBo.getMsg());
                throw new ClientException("CustClientImpl.getUnitById", returnBo.getMsg());
            }
        }catch (Exception e){
            log.error("service方法[CustClientImpl.getUnitById]调用异常:"+e, e);
            throw new ServiceException("CustClientImpl.getUnitById", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/controller/web/CaseBookWebController.java
New file
@@ -0,0 +1,311 @@
package cn.huge.module.casebook.controller.web;
import cn.huge.base.common.utils.ReturnFailUtils;
import cn.huge.base.common.utils.ReturnSucUtils;
import cn.huge.base.config.CurrentUser;
import cn.huge.module.casebook.domain.dto.CaseBookPageDTO;
import cn.huge.module.casebook.domain.po.CasebookInfo;
import cn.huge.module.casebook.service.CasebookInfoService;
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.cust.dto.CtUserDTO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @title: dyh_casebook_info接口api-web端
 * @description: dyh_casebook_info接口api-web端
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version: 1.0.0
 */
@Slf4j
@RestController
@RequestMapping("/api/web/caseBook")
public class CaseBookWebController {
    @Autowired(required = false)
    private HttpServletRequest request;
    @Autowired
    private CasebookInfoService casebookInfoService;
    @Autowired
    private CustClientImpl custClient;
    /**
     * 案件导入-导入草稿
     * @url {ctx}/api/web/caseBook/pageImportDraft
     * @param page 页码
     * @param size 每页数量
     * @param sortType 排序方式(1:正序;2:倒序)
     * @return Object
     */
    @GetMapping("/pageImportDraft")
    public Object pageImportDraft(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size
            , @RequestParam(value = "sortType") int sortType, @CurrentUser String userId) {
        try {
            // 查询条件
            Map<String, Object> terms = Maps.newHashMap();
            // 导入时间区间
            String importStart = request.getParameter("importStart");
            String importEnd = request.getParameter("importEnd");
            if(StringUtils.isNotBlank(importStart) && StringUtils.isNotBlank(importEnd)) {
                terms.put("importStart", importStart);
                terms.put("importEnd", importEnd);
            }
            // 纠纷发生时间区间
            String occurStart = request.getParameter("occurStart");
            String occurEnd = request.getParameter("occurEnd");
            if(StringUtils.isNotBlank(occurStart) && StringUtils.isNotBlank(occurEnd)) {
                terms.put("occurStart", occurStart);
                terms.put("occurEnd", occurEnd);
            }
            // 申请方
            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 mediator = request.getParameter("mediator");
            if (StringUtils.isNotBlank(mediator)){
                terms.put("mediator", mediator);
            }
            // 化解结果
            String mediResult = request.getParameter("mediResult");
            if (StringUtils.isNotBlank(mediResult)){
                terms.put("mediResult", mediResult);
            }
            // 纠纷类型
            String caseType = request.getParameter("caseType");
            if (StringUtils.isNotBlank(caseType)){
                terms.put("caseType", caseType);
            }
            // 协助调解员
            String assistMediator = request.getParameter("assistMediator");
            if (StringUtils.isNotBlank(assistMediator)){
                terms.put("assistMediator", assistMediator);
            }
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            terms.put("inputUnitId", loginUser.getUnitId());
            // 排序
            Sort sort = null;
            if(sortType == 1) {
                sort = Sort.by(Sort.Direction.DESC, "t1.create_time");
            }
            if (sortType == 1){
                sort = Sort.by(Sort.Direction.ASC, "t1.create_time");
            }
            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
            Page<CaseBookPageDTO> caseBookPageDTOPage = casebookInfoService.pageImportSuc(pageRequest, terms);
            return ReturnSucUtils.getRepInfo(caseBookPageDTOPage);
        } catch (Exception e) {
            log.error("[CaseBookWebController.pageImportDraft]请求失败,异常信息:"+e, e);
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
    * 案件导入-导入成功
    * @url {ctx}/api/web/caseBook/pageImportSuc
    * @param page 页码
    * @param size 每页数量
    * @param sortType 排序方式(1:正序;2:倒序)
    * @return Object
    */
    @GetMapping("/pageImportSuc")
    public Object pageImportSuc(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size
            , @RequestParam(value = "sortType") int sortType, @CurrentUser String userId) {
        try {
            // 查询条件
            Map<String, Object> terms = Maps.newHashMap();
            // 转入时间区间
            String importStart = request.getParameter("importStart");
            String importEnd = request.getParameter("importEnd");
            if(StringUtils.isNotBlank(importStart) && StringUtils.isNotBlank(importEnd)) {
                terms.put("importStart", importStart);
                terms.put("importEnd", importEnd);
            }
            // 纠纷发生时间区间
            String occurStart = request.getParameter("occurStart");
            String occurEnd = request.getParameter("occurEnd");
            if(StringUtils.isNotBlank(occurStart) && StringUtils.isNotBlank(occurEnd)) {
                terms.put("occurStart", occurStart);
                terms.put("occurEnd", occurEnd);
            }
            // 申请方
            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 mediator = request.getParameter("mediator");
            if (StringUtils.isNotBlank(mediator)){
                terms.put("mediator", mediator);
            }
            // 化解结果
            String mediResult = request.getParameter("mediResult");
            if (StringUtils.isNotBlank(mediResult)){
                terms.put("mediResult", mediResult);
            }
            // 纠纷类型
            String caseType = request.getParameter("caseType");
            if (StringUtils.isNotBlank(caseType)){
                terms.put("caseType", caseType);
            }
            // 协助调解员
            String assistMediator = request.getParameter("assistMediator");
            if (StringUtils.isNotBlank(assistMediator)){
                terms.put("assistMediator", assistMediator);
            }
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            terms.put("inputUnitId", loginUser.getUnitId());
            // 排序
            Sort sort = null;
            if(sortType == 1) {
                sort = Sort.by(Sort.Direction.DESC, "t1.create_time");
            }
            if (sortType == 1){
                sort = Sort.by(Sort.Direction.ASC, "t1.create_time");
            }
            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
            Page<CaseBookPageDTO> caseBookPageDTOPage = casebookInfoService.pageImportSuc(pageRequest, terms);
            return ReturnSucUtils.getRepInfo(caseBookPageDTOPage);
        } catch (Exception e) {
            log.error("[CaseBookWebController.pageImportSuc]请求失败,异常信息:"+e, e);
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
    * 案件导入-导入操作
    * @url {ctx}/api/web/caseBook/inputCaseByExcel
    * @return Object
    */
    @GetMapping("/inputCaseByExcel")
    public Object inputCaseByExcel(@RequestParam(value = "fileId") String fileId, @CurrentUser String userId) {
        try {
            return casebookInfoService.inputCaseByExcel(fileId, userId, request);
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
    * 案件导入-删除草稿
    * @url {ctx}/api/web/caseBook/deleteDraft
    * @return Object
    */
    @PostMapping("/deleteDraft")
    public Object deleteDraft(@RequestBody List<String> idList, @CurrentUser String userId) {
        try {
            casebookInfoService.deleteDraft(idList);
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
    * 案件导入-草稿转入正式案件
    * @url {ctx}/api/web/caseBook/importToCase
    * @return Object
    */
    @PostMapping("/importToCase")
    public Object importToCase(@RequestBody List<String> idList, @CurrentUser String userId) {
        try {
            casebookInfoService.importToCase(idList, userId);
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * 案件导入-全部草稿转入正式案件
     * @url {ctx}/api/web/caseBook/importToCaseAll
     * @return Object
     */
    @GetMapping("/importToCaseAll")
    public Object importToCaseAll(@CurrentUser String userId) {
        try {
            // 查询条件
            Map<String, Object> terms = Maps.newHashMap();
            // 导入时间区间
            String importStart = request.getParameter("importStart");
            String importEnd = request.getParameter("importEnd");
            if(StringUtils.isNotBlank(importStart) && StringUtils.isNotBlank(importEnd)) {
                terms.put("importStart", importStart);
                terms.put("importEnd", importEnd);
            }
            // 纠纷发生时间区间
            String occurStart = request.getParameter("occurStart");
            String occurEnd = request.getParameter("occurEnd");
            if(StringUtils.isNotBlank(occurStart) && StringUtils.isNotBlank(occurEnd)) {
                terms.put("occurStart", occurStart);
                terms.put("occurEnd", occurEnd);
            }
            // 申请方
            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 mediator = request.getParameter("mediator");
            if (StringUtils.isNotBlank(mediator)){
                terms.put("mediator", mediator);
            }
            // 化解结果
            String mediResult = request.getParameter("mediResult");
            if (StringUtils.isNotBlank(mediResult)){
                terms.put("mediResult", mediResult);
            }
            // 纠纷类型
            String caseType = request.getParameter("caseType");
            if (StringUtils.isNotBlank(caseType)){
                terms.put("caseType", caseType);
            }
            // 协助调解员
            String assistMediator = request.getParameter("assistMediator");
            if (StringUtils.isNotBlank(assistMediator)){
                terms.put("assistMediator", assistMediator);
            }
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            terms.put("inputUnitId", loginUser.getUnitId());
            // 查询
            casebookInfoService.importToCaseAll(terms);
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            log.error("[CaseBookWebController.importToCaseAll]请求失败,异常信息:"+e, e);
            return ReturnFailUtils.getRepInfo();
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookAgentMapper.java
New file
@@ -0,0 +1,64 @@
package cn.huge.module.casebook.dao.mapper;
import cn.huge.module.casebook.domain.po.CasebookAgent;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @title: dyh_casebook_agent持久层业务处理
* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
* @company: hugeinfo
* @author: liyj
* @time: 2024-10-26 12:31:21
* @version 1.0.0
*/
@Repository
public interface CasebookAgentMapper extends BaseMapper<CasebookAgent>{
    /**
    * 更新对象
    * @param entity 对象
    */
    void updateCasebookAgent(@Param("entity") CasebookAgent entity);
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    void updateCasebookAgentTerms(@Param("entity") CasebookAgent entity, @Param("terms") Map<String, Object> terms);
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    void deleteCasebookAgent(@Param("id") String id);
    /**
    * 按条件查询结果集
    * @param terms 查询条件集合
    * @return List<CasebookAgent>
    */
    List<CasebookAgent> listTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体总数
    * @param terms 查询条件集合
    * @return long
    */
    long countTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体分页结果集
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<CasebookAgent>
    */
    List<CasebookAgent> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookAssistInfoMapper.java
New file
@@ -0,0 +1,64 @@
package cn.huge.module.casebook.dao.mapper;
import cn.huge.module.casebook.domain.po.CasebookAssistInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @title: dyh_casebook_assist_info持久层业务处理
* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
* @company: hugeinfo
* @author: liyj
* @time: 2024-10-26 12:31:22
* @version 1.0.0
*/
@Repository
public interface CasebookAssistInfoMapper extends BaseMapper<CasebookAssistInfo>{
    /**
    * 更新对象
    * @param entity 对象
    */
    void updateCasebookAssistInfo(@Param("entity") CasebookAssistInfo entity);
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    void updateCasebookAssistInfoTerms(@Param("entity") CasebookAssistInfo entity, @Param("terms") Map<String, Object> terms);
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    void deleteCasebookAssistInfo(@Param("id") String id);
    /**
    * 按条件查询结果集
    * @param terms 查询条件集合
    * @return List<CasebookAssistInfo>
    */
    List<CasebookAssistInfo> listTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体总数
    * @param terms 查询条件集合
    * @return long
    */
    long countTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体分页结果集
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<CasebookAssistInfo>
    */
    List<CasebookAssistInfo> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookFileMapper.java
New file
@@ -0,0 +1,64 @@
package cn.huge.module.casebook.dao.mapper;
import cn.huge.module.casebook.domain.po.CasebookFile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @title: 一本账导入文件记录表持久层业务处理
* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
* @company: hugeinfo
* @author: liyj
* @time: 2024-10-27 16:16:40
* @version 1.0.0
*/
@Repository
public interface CasebookFileMapper extends BaseMapper<CasebookFile>{
    /**
    * 更新对象
    * @param entity 对象
    */
    void updateCasebookFile(@Param("entity") CasebookFile entity);
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    void updateCasebookFileTerms(@Param("entity") CasebookFile entity, @Param("terms") Map<String, Object> terms);
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    void deleteCasebookFile(@Param("id") String id);
    /**
    * 按条件查询结果集
    * @param terms 查询条件集合
    * @return List<CasebookFile>
    */
    List<CasebookFile> listTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体总数
    * @param terms 查询条件集合
    * @return long
    */
    long countTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体分页结果集
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<CasebookFile>
    */
    List<CasebookFile> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookInfoMapper.java
New file
@@ -0,0 +1,102 @@
package cn.huge.module.casebook.dao.mapper;
import cn.huge.module.casebook.domain.dto.CaseBookPageDTO;
import cn.huge.module.casebook.domain.po.CasebookInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @title: dyh_casebook_info持久层业务处理
* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
* @company: hugeinfo
* @author: liyj
* @time: 2024-10-26 12:31:22
* @version 1.0.0
*/
@Repository
public interface CasebookInfoMapper extends BaseMapper<CasebookInfo>{
    /**
    * 更新对象
    * @param entity 对象
    */
    void updateCasebookInfo(@Param("entity") CasebookInfo entity);
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    void updateCasebookInfoTerms(@Param("entity") CasebookInfo entity, @Param("terms") Map<String, Object> terms);
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    void deleteCasebookInfo(@Param("id") String id);
    /**
    * 按条件查询结果集
    * @param terms 查询条件集合
    * @return List<CasebookInfo>
    */
    List<CasebookInfo> listTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体总数
    * @param terms 查询条件集合
    * @return long
    */
    long countTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体分页结果集
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<CasebookInfo>
    */
    List<CasebookInfo> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
    /**
    * 统计-导入草稿
    * @param terms 查询条件集合
    * @return long
    */
    long countImportDraft(@Param("terms") Map<String, Object> terms);
    /**
    * 条件分页查询-导入草稿
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<CasebookInfo>
    */
    List<CaseBookPageDTO> pageImportDraft(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
    /**
    * 条件查询-导入草稿
    * @param terms 查询条件集合
    * @return List<CasebookInfo>
    */
    List<CaseBookPageDTO> listImportDraft(@Param("terms") Map<String, Object> terms);
    /**
    * 统计-导入成功
    * @param terms 查询条件集合
    * @return long
    */
    long countImportSuc(@Param("terms") Map<String, Object> terms);
    /**
    * 条件分页查询-导入成功
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<CasebookInfo>
    */
    List<CaseBookPageDTO> pageImportSuc(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookInfoUnfoldMapper.java
New file
@@ -0,0 +1,64 @@
package cn.huge.module.casebook.dao.mapper;
import cn.huge.module.casebook.domain.po.CasebookInfoUnfold;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @title: dyh_casebook_info_unfold持久层业务处理
* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
* @company: hugeinfo
* @author: liyj
* @time: 2024-10-26 12:31:22
* @version 1.0.0
*/
@Repository
public interface CasebookInfoUnfoldMapper extends BaseMapper<CasebookInfoUnfold>{
    /**
    * 更新对象
    * @param entity 对象
    */
    void updateCasebookInfoUnfold(@Param("entity") CasebookInfoUnfold entity);
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    void updateCasebookInfoUnfoldTerms(@Param("entity") CasebookInfoUnfold entity, @Param("terms") Map<String, Object> terms);
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    void deleteCasebookInfoUnfold(@Param("id") String id);
    /**
    * 按条件查询结果集
    * @param terms 查询条件集合
    * @return List<CasebookInfoUnfold>
    */
    List<CasebookInfoUnfold> listTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体总数
    * @param terms 查询条件集合
    * @return long
    */
    long countTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体分页结果集
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<CasebookInfoUnfold>
    */
    List<CasebookInfoUnfold> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/CasebookPersonMapper.java
New file
@@ -0,0 +1,64 @@
package cn.huge.module.casebook.dao.mapper;
import cn.huge.module.casebook.domain.po.CasebookPerson;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @title: dyh_casebook_person持久层业务处理
* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
* @company: hugeinfo
* @author: liyj
* @time: 2024-10-26 12:31:22
* @version 1.0.0
*/
@Repository
public interface CasebookPersonMapper extends BaseMapper<CasebookPerson>{
    /**
    * 更新对象
    * @param entity 对象
    */
    void updateCasebookPerson(@Param("entity") CasebookPerson entity);
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    void updateCasebookPersonTerms(@Param("entity") CasebookPerson entity, @Param("terms") Map<String, Object> terms);
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    void deleteCasebookPerson(@Param("id") String id);
    /**
    * 按条件查询结果集
    * @param terms 查询条件集合
    * @return List<CasebookPerson>
    */
    List<CasebookPerson> listTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体总数
    * @param terms 查询条件集合
    * @return long
    */
    long countTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体分页结果集
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<CasebookPerson>
    */
    List<CasebookPerson> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookAgentMapper.xml
New file
@@ -0,0 +1,430 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @title: dyh_casebook_agent
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-10-26 12:31:21
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.casebook.dao.mapper.CasebookAgentMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.casebook.domain.po.CasebookAgent">
            <result property="id" column="id"/>
            <result property="caseId" column="case_id"/>
            <result property="partyUserId" column="party_user_id"/>
            <result property="perType" column="per_type"/>
            <result property="perTypeName" column="per_type_name"/>
            <result property="perClass" column="per_class"/>
            <result property="perClassName" column="per_class_name"/>
            <result property="trueName" column="true_name"/>
            <result property="mobile" column="mobile"/>
            <result property="certiType" column="certi_type"/>
            <result property="certiTypeName" column="certi_type_name"/>
            <result property="certiNo" column="certi_no"/>
            <result property="prov" column="prov"/>
            <result property="provName" column="prov_name"/>
            <result property="city" column="city"/>
            <result property="cityName" column="city_name"/>
            <result property="area" column="area"/>
            <result property="areaName" column="area_name"/>
            <result property="road" column="road"/>
            <result property="roadName" column="road_name"/>
            <result property="village" column="village"/>
            <result property="villageName" column="village_name"/>
            <result property="addr" column="addr"/>
            <result property="placeProv" column="place_prov"/>
            <result property="placeProvName" column="place_prov_name"/>
            <result property="placeCity" column="place_city"/>
            <result property="placeCityName" column="place_city_name"/>
            <result property="placeArea" column="place_area"/>
            <result property="placeAreaName" column="place_area_name"/>
            <result property="placeRoad" column="place_road"/>
            <result property="placeRoadName" column="place_road_name"/>
            <result property="placeVillage" column="place_village"/>
            <result property="placeVillageName" column="place_village_name"/>
            <result property="placeAddr" column="place_addr"/>
            <result property="workUnit" column="work_unit"/>
            <result property="nation" column="nation"/>
            <result property="nationName" column="nation_name"/>
            <result property="sex" column="sex"/>
            <result property="sexName" column="sex_name"/>
            <result property="extreme" column="extreme"/>
            <result property="agentRelate" column="agent_relate"/>
            <result property="agentRelateName" column="agent_relate_name"/>
            <result property="agentType" column="agent_type"/>
            <result property="agentTypeName" column="agent_type_name"/>
            <result property="personId" column="person_id"/>
            <result property="avatar" column="avatar"/>
            <result property="job" column="job"/>
            <result property="jobName" column="job_name"/>
            <result property="birthday" column="birthday"/>
            <result property="age" column="age"/>
            <result property="agentStatus" column="agent_status"/>
            <result property="custId" column="cust_id"/>
            <result property="deleteStatus" column="delete_status"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
    </resultMap>
    <!-- 表 -->
    <sql id='table-name'>dyh_casebook_agent</sql>
    <!-- 字段 -->
    <sql id="column-part">
        id,
        case_id,
        party_user_id,
        per_type,
        per_type_name,
        per_class,
        per_class_name,
        true_name,
        mobile,
        certi_type,
        certi_type_name,
        certi_no,
        prov,
        prov_name,
        city,
        city_name,
        area,
        area_name,
        road,
        road_name,
        village,
        village_name,
        addr,
        place_prov,
        place_prov_name,
        place_city,
        place_city_name,
        place_area,
        place_area_name,
        place_road,
        place_road_name,
        place_village,
        place_village_name,
        place_addr,
        work_unit,
        nation,
        nation_name,
        sex,
        sex_name,
        extreme,
        agent_relate,
        agent_relate_name,
        agent_type,
        agent_type_name,
        person_id,
        avatar,
        job,
        job_name,
        birthday,
        age,
        agent_status,
        cust_id,
        delete_status,
        create_time,
        update_time
    </sql>
    <!-- 更新实体字段 -->
    <sql id="set-part">
            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
            <if test="entity.partyUserId != null">party_user_id = #{entity.partyUserId},</if>
            <if test="entity.perType != null">per_type = #{entity.perType},</if>
            <if test="entity.perTypeName != null">per_type_name = #{entity.perTypeName},</if>
            <if test="entity.perClass != null">per_class = #{entity.perClass},</if>
            <if test="entity.perClassName != null">per_class_name = #{entity.perClassName},</if>
            <if test="entity.trueName != null">true_name = #{entity.trueName},</if>
            <if test="entity.mobile != null">mobile = #{entity.mobile},</if>
            <if test="entity.certiType != null">certi_type = #{entity.certiType},</if>
            <if test="entity.certiTypeName != null">certi_type_name = #{entity.certiTypeName},</if>
            <if test="entity.certiNo != null">certi_no = #{entity.certiNo},</if>
            <if test="entity.prov != null">prov = #{entity.prov},</if>
            <if test="entity.provName != null">prov_name = #{entity.provName},</if>
            <if test="entity.city != null">city = #{entity.city},</if>
            <if test="entity.cityName != null">city_name = #{entity.cityName},</if>
            <if test="entity.area != null">area = #{entity.area},</if>
            <if test="entity.areaName != null">area_name = #{entity.areaName},</if>
            <if test="entity.road != null">road = #{entity.road},</if>
            <if test="entity.roadName != null">road_name = #{entity.roadName},</if>
            <if test="entity.village != null">village = #{entity.village},</if>
            <if test="entity.villageName != null">village_name = #{entity.villageName},</if>
            <if test="entity.addr != null">addr = #{entity.addr},</if>
            <if test="entity.placeProv != null">place_prov = #{entity.placeProv},</if>
            <if test="entity.placeProvName != null">place_prov_name = #{entity.placeProvName},</if>
            <if test="entity.placeCity != null">place_city = #{entity.placeCity},</if>
            <if test="entity.placeCityName != null">place_city_name = #{entity.placeCityName},</if>
            <if test="entity.placeArea != null">place_area = #{entity.placeArea},</if>
            <if test="entity.placeAreaName != null">place_area_name = #{entity.placeAreaName},</if>
            <if test="entity.placeRoad != null">place_road = #{entity.placeRoad},</if>
            <if test="entity.placeRoadName != null">place_road_name = #{entity.placeRoadName},</if>
            <if test="entity.placeVillage != null">place_village = #{entity.placeVillage},</if>
            <if test="entity.placeVillageName != null">place_village_name = #{entity.placeVillageName},</if>
            <if test="entity.placeAddr != null">place_addr = #{entity.placeAddr},</if>
            <if test="entity.workUnit != null">work_unit = #{entity.workUnit},</if>
            <if test="entity.nation != null">nation = #{entity.nation},</if>
            <if test="entity.nationName != null">nation_name = #{entity.nationName},</if>
            <if test="entity.sex != null">sex = #{entity.sex},</if>
            <if test="entity.sexName != null">sex_name = #{entity.sexName},</if>
            <if test="entity.extreme != null">extreme = #{entity.extreme},</if>
            <if test="entity.agentRelate != null">agent_relate = #{entity.agentRelate},</if>
            <if test="entity.agentRelateName != null">agent_relate_name = #{entity.agentRelateName},</if>
            <if test="entity.agentType != null">agent_type = #{entity.agentType},</if>
            <if test="entity.agentTypeName != null">agent_type_name = #{entity.agentTypeName},</if>
            <if test="entity.personId != null">person_id = #{entity.personId},</if>
            <if test="entity.avatar != null">avatar = #{entity.avatar},</if>
            <if test="entity.job != null">job = #{entity.job},</if>
            <if test="entity.jobName != null">job_name = #{entity.jobName},</if>
            <if test="entity.birthday != null">birthday = #{entity.birthday},</if>
            <if test="entity.age != null">age = #{entity.age},</if>
            <if test="entity.agentStatus != null">agent_status = #{entity.agentStatus},</if>
            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
    </sql>
    <!-- 条件 -->
    <sql id="where-part">
        <if test="terms != null">
            <where>
                <if test="terms.id != null and terms.id !=''">
                    and id = #{terms.id}
                </if>
                <if test="terms.caseId != null and terms.caseId !=''">
                    and case_id = #{terms.caseId}
                </if>
                <if test="terms.partyUserId != null and terms.partyUserId !=''">
                    and party_user_id = #{terms.partyUserId}
                </if>
                <if test="terms.perType != null and terms.perType !=''">
                    and per_type = #{terms.perType}
                </if>
                <if test="terms.perTypeName != null and terms.perTypeName !=''">
                    and per_type_name = #{terms.perTypeName}
                </if>
                <if test="terms.perClass != null and terms.perClass !=''">
                    and per_class = #{terms.perClass}
                </if>
                <if test="terms.perClassName != null and terms.perClassName !=''">
                    and per_class_name = #{terms.perClassName}
                </if>
                <if test="terms.trueName != null and terms.trueName !=''">
                    and true_name = #{terms.trueName}
                </if>
                <if test="terms.mobile != null and terms.mobile !=''">
                    and mobile = #{terms.mobile}
                </if>
                <if test="terms.certiType != null and terms.certiType !=''">
                    and certi_type = #{terms.certiType}
                </if>
                <if test="terms.certiTypeName != null and terms.certiTypeName !=''">
                    and certi_type_name = #{terms.certiTypeName}
                </if>
                <if test="terms.certiNo != null and terms.certiNo !=''">
                    and certi_no = #{terms.certiNo}
                </if>
                <if test="terms.prov != null and terms.prov !=''">
                    and prov = #{terms.prov}
                </if>
                <if test="terms.provName != null and terms.provName !=''">
                    and prov_name = #{terms.provName}
                </if>
                <if test="terms.city != null and terms.city !=''">
                    and city = #{terms.city}
                </if>
                <if test="terms.cityName != null and terms.cityName !=''">
                    and city_name = #{terms.cityName}
                </if>
                <if test="terms.area != null and terms.area !=''">
                    and area = #{terms.area}
                </if>
                <if test="terms.areaName != null and terms.areaName !=''">
                    and area_name = #{terms.areaName}
                </if>
                <if test="terms.road != null and terms.road !=''">
                    and road = #{terms.road}
                </if>
                <if test="terms.roadName != null and terms.roadName !=''">
                    and road_name = #{terms.roadName}
                </if>
                <if test="terms.village != null and terms.village !=''">
                    and village = #{terms.village}
                </if>
                <if test="terms.villageName != null and terms.villageName !=''">
                    and village_name = #{terms.villageName}
                </if>
                <if test="terms.addr != null and terms.addr !=''">
                    and addr = #{terms.addr}
                </if>
                <if test="terms.placeProv != null and terms.placeProv !=''">
                    and place_prov = #{terms.placeProv}
                </if>
                <if test="terms.placeProvName != null and terms.placeProvName !=''">
                    and place_prov_name = #{terms.placeProvName}
                </if>
                <if test="terms.placeCity != null and terms.placeCity !=''">
                    and place_city = #{terms.placeCity}
                </if>
                <if test="terms.placeCityName != null and terms.placeCityName !=''">
                    and place_city_name = #{terms.placeCityName}
                </if>
                <if test="terms.placeArea != null and terms.placeArea !=''">
                    and place_area = #{terms.placeArea}
                </if>
                <if test="terms.placeAreaName != null and terms.placeAreaName !=''">
                    and place_area_name = #{terms.placeAreaName}
                </if>
                <if test="terms.placeRoad != null and terms.placeRoad !=''">
                    and place_road = #{terms.placeRoad}
                </if>
                <if test="terms.placeRoadName != null and terms.placeRoadName !=''">
                    and place_road_name = #{terms.placeRoadName}
                </if>
                <if test="terms.placeVillage != null and terms.placeVillage !=''">
                    and place_village = #{terms.placeVillage}
                </if>
                <if test="terms.placeVillageName != null and terms.placeVillageName !=''">
                    and place_village_name = #{terms.placeVillageName}
                </if>
                <if test="terms.placeAddr != null and terms.placeAddr !=''">
                    and place_addr = #{terms.placeAddr}
                </if>
                <if test="terms.workUnit != null and terms.workUnit !=''">
                    and work_unit = #{terms.workUnit}
                </if>
                <if test="terms.nation != null and terms.nation !=''">
                    and nation = #{terms.nation}
                </if>
                <if test="terms.nationName != null and terms.nationName !=''">
                    and nation_name = #{terms.nationName}
                </if>
                <if test="terms.sex != null and terms.sex !=''">
                    and sex = #{terms.sex}
                </if>
                <if test="terms.sexName != null and terms.sexName !=''">
                    and sex_name = #{terms.sexName}
                </if>
                <if test="terms.extreme != null and terms.extreme !=''">
                    and extreme = #{terms.extreme}
                </if>
                <if test="terms.agentRelate != null and terms.agentRelate !=''">
                    and agent_relate = #{terms.agentRelate}
                </if>
                <if test="terms.agentRelateName != null and terms.agentRelateName !=''">
                    and agent_relate_name = #{terms.agentRelateName}
                </if>
                <if test="terms.agentType != null and terms.agentType !=''">
                    and agent_type = #{terms.agentType}
                </if>
                <if test="terms.agentTypeName != null and terms.agentTypeName !=''">
                    and agent_type_name = #{terms.agentTypeName}
                </if>
                <if test="terms.personId != null and terms.personId !=''">
                    and person_id = #{terms.personId}
                </if>
                <if test="terms.avatar != null and terms.avatar !=''">
                    and avatar = #{terms.avatar}
                </if>
                <if test="terms.job != null and terms.job !=''">
                    and job = #{terms.job}
                </if>
                <if test="terms.jobName != null and terms.jobName !=''">
                    and job_name = #{terms.jobName}
                </if>
                <if test="terms.birthday != null and terms.birthday !=''">
                    and birthday = #{terms.birthday}
                </if>
                <if test="terms.age != null and terms.age !=''">
                    and age = #{terms.age}
                </if>
                <if test="terms.agentStatus != null and terms.agentStatus !=''">
                    and agent_status = #{terms.agentStatus}
                </if>
                <if test="terms.custId != null and terms.custId !=''">
                    and cust_id = #{terms.custId}
                </if>
                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
                    and delete_status = 0
                </if>
                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
                    and delete_status = #{terms.deleteStatus}
                </if>
                <if test="terms.createTime != null and terms.createTime !=''">
                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
                </if>
                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
                </if>
                <if test="terms.updateTime != null and terms.updateTime !=''">
                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
                </if>
                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
            </where>
        </if>
    </sql>
    <!-- 更新对象 -->
    <update id="updateCasebookAgent">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id = #{entity.id}
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateCasebookAgentTerms">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <include refid="where-part"/>
    </update>
    <!--  根据编号物理删除  -->
    <delete id="deleteCasebookAgent">
        delete from
        <include refid="table-name" />
        where id = #{id}
    </delete>
    <!--  根据条件查询  -->
    <select id="listTerms" resultMap="dataResult">
        select
        <include refid="column-part"/>
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件统计  -->
    <select id="countTerms" resultType="java.lang.Long">
        select
        COUNT(1)
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件分页查询  -->
    <select id="pageTerms" resultMap="dataResult">
        SELECT
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        <include refid="where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookAssistInfoMapper.xml
New file
@@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @title: dyh_casebook_assist_info
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-10-26 12:31:22
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.casebook.dao.mapper.CasebookAssistInfoMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.casebook.domain.po.CasebookAssistInfo">
            <result property="id" column="id"/>
            <result property="caseId" column="case_id"/>
            <result property="processInstanceId" column="process_instance_id"/>
            <result property="caseTaskId" column="case_task_id"/>
            <result property="applyId" column="apply_id"/>
            <result property="assistUnitId" column="assist_unit_id"/>
            <result property="assistUnitName" column="assist_unit_name"/>
            <result property="acceptTime" column="accept_time"/>
            <result property="assistUserId" column="assist_user_id"/>
            <result property="assistUserName" column="assist_user_name"/>
            <result property="assistStatus" column="assist_status"/>
            <result property="custId" column="cust_id"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
    </resultMap>
    <!-- 表 -->
    <sql id='table-name'>dyh_casebook_assist_info</sql>
    <!-- 字段 -->
    <sql id="column-part">
        id,
        case_id,
        process_instance_id,
        case_task_id,
        apply_id,
        assist_unit_id,
        assist_unit_name,
        accept_time,
        assist_user_id,
        assist_user_name,
        assist_status,
        cust_id,
        create_time,
        update_time
    </sql>
    <!-- 更新实体字段 -->
    <sql id="set-part">
            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
            <if test="entity.processInstanceId != null">process_instance_id = #{entity.processInstanceId},</if>
            <if test="entity.caseTaskId != null">case_task_id = #{entity.caseTaskId},</if>
            <if test="entity.applyId != null">apply_id = #{entity.applyId},</if>
            <if test="entity.assistUnitId != null">assist_unit_id = #{entity.assistUnitId},</if>
            <if test="entity.assistUnitName != null">assist_unit_name = #{entity.assistUnitName},</if>
            <if test="entity.acceptTime != null">accept_time = #{entity.acceptTime},</if>
            <if test="entity.assistUserId != null">assist_user_id = #{entity.assistUserId},</if>
            <if test="entity.assistUserName != null">assist_user_name = #{entity.assistUserName},</if>
            <if test="entity.assistStatus != null">assist_status = #{entity.assistStatus},</if>
            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
    </sql>
    <!-- 条件 -->
    <sql id="where-part">
        <if test="terms != null">
            <where>
                <if test="terms.id != null and terms.id !=''">
                    and id = #{terms.id}
                </if>
                <if test="terms.caseId != null and terms.caseId !=''">
                    and case_id = #{terms.caseId}
                </if>
                <if test="terms.processInstanceId != null and terms.processInstanceId !=''">
                    and process_instance_id = #{terms.processInstanceId}
                </if>
                <if test="terms.caseTaskId != null and terms.caseTaskId !=''">
                    and case_task_id = #{terms.caseTaskId}
                </if>
                <if test="terms.applyId != null and terms.applyId !=''">
                    and apply_id = #{terms.applyId}
                </if>
                <if test="terms.assistUnitId != null and terms.assistUnitId !=''">
                    and assist_unit_id = #{terms.assistUnitId}
                </if>
                <if test="terms.assistUnitName != null and terms.assistUnitName !=''">
                    and assist_unit_name = #{terms.assistUnitName}
                </if>
                <if test="terms.acceptTime != null and terms.acceptTime !=''">
                    and accept_time = #{terms.acceptTime}
                </if>
                <if test="terms.assistUserId != null and terms.assistUserId !=''">
                    and assist_user_id = #{terms.assistUserId}
                </if>
                <if test="terms.assistUserName != null and terms.assistUserName !=''">
                    and assist_user_name = #{terms.assistUserName}
                </if>
                <if test="terms.assistStatus != null and terms.assistStatus !=''">
                    and assist_status = #{terms.assistStatus}
                </if>
                <if test="terms.custId != null and terms.custId !=''">
                    and cust_id = #{terms.custId}
                </if>
                <if test="terms.createTime != null and terms.createTime !=''">
                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
                </if>
                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
                </if>
                <if test="terms.updateTime != null and terms.updateTime !=''">
                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
                </if>
                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
            </where>
        </if>
    </sql>
    <!-- 更新对象 -->
    <update id="updateCasebookAssistInfo">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id = #{entity.id}
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateCasebookAssistInfoTerms">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <include refid="where-part"/>
    </update>
    <!--  根据编号物理删除  -->
    <delete id="deleteCasebookAssistInfo">
        delete from
        <include refid="table-name" />
        where id = #{id}
    </delete>
    <!--  根据条件查询  -->
    <select id="listTerms" resultMap="dataResult">
        select
        <include refid="column-part"/>
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件统计  -->
    <select id="countTerms" resultType="java.lang.Long">
        select
        COUNT(1)
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件分页查询  -->
    <select id="pageTerms" resultMap="dataResult">
        SELECT
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        <include refid="where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookFileMapper.xml
New file
@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @title: 一本账导入文件记录表
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-10-27 16:16:40
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.casebook.dao.mapper.CasebookFileMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.casebook.domain.po.CasebookFile">
            <result property="id" column="id"/>
            <result property="fileName" column="file_name"/>
            <result property="fileSize" column="file_size"/>
            <result property="userId" column="user_id"/>
            <result property="userName" column="user_name"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
            <result property="custId" column="cust_id"/>
    </resultMap>
    <!-- 表 -->
    <sql id='table-name'>dyh_casebook_file</sql>
    <!-- 字段 -->
    <sql id="column-part">
        id,
        file_name,
        file_size,
        user_id,
        user_name,
        create_time,
        update_time,
        cust_id
    </sql>
    <!-- 更新实体字段 -->
    <sql id="set-part">
            <if test="entity.fileName != null">file_name = #{entity.fileName},</if>
            <if test="entity.fileSize != null">file_size = #{entity.fileSize},</if>
            <if test="entity.userId != null">user_id = #{entity.userId},</if>
            <if test="entity.userName != null">user_name = #{entity.userName},</if>
            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
            <if test="entity.updateTime != null">update_time = #{entity.updateTime},</if>
            <if test="entity.custId != null">cust_id = #{entity.custId}</if>
    </sql>
    <!-- 条件 -->
    <sql id="where-part">
        <if test="terms != null">
            <where>
                <if test="terms.id != null and terms.id !=''">
                    and id = #{terms.id}
                </if>
                <if test="terms.fileName != null and terms.fileName !=''">
                    and file_name = #{terms.fileName}
                </if>
                <if test="terms.fileSize != null and terms.fileSize !=''">
                    and file_size = #{terms.fileSize}
                </if>
                <if test="terms.userId != null and terms.userId !=''">
                    and user_id = #{terms.userId}
                </if>
                <if test="terms.userName != null and terms.userName !=''">
                    and user_name = #{terms.userName}
                </if>
                <if test="terms.createTime != null and terms.createTime !=''">
                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
                </if>
                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
                </if>
                <if test="terms.updateTime != null and terms.updateTime !=''">
                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
                </if>
                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
                <if test="terms.custId != null and terms.custId !=''">
                    and cust_id = #{terms.custId}
                </if>
            </where>
        </if>
    </sql>
    <!-- 更新对象 -->
    <update id="updateCasebookFile">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id = #{entity.id}
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateCasebookFileTerms">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <include refid="where-part"/>
    </update>
    <!--  根据编号物理删除  -->
    <delete id="deleteCasebookFile">
        delete from
        <include refid="table-name" />
        where id = #{id}
    </delete>
    <!--  根据条件查询  -->
    <select id="listTerms" resultMap="dataResult">
        select
        <include refid="column-part"/>
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件统计  -->
    <select id="countTerms" resultType="java.lang.Long">
        select
        COUNT(1)
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件分页查询  -->
    <select id="pageTerms" resultMap="dataResult">
        SELECT
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        <include refid="where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookInfoMapper.xml
New file
@@ -0,0 +1,678 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @title: dyh_casebook_info
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-10-26 12:31:22
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.casebook.dao.mapper.CasebookInfoMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.casebook.domain.po.CasebookInfo">
            <result property="id" column="id"/>
            <result property="caseTitle" column="case_title"/>
            <result property="caseRef" column="case_ref"/>
            <result property="caseLevel" column="case_level"/>
            <result property="visitTime" column="visit_time"/>
            <result property="visitPeopleNum" column="visit_people_num"/>
            <result property="mediType" column="medi_type"/>
            <result property="mediTypeName" column="medi_type_name"/>
            <result property="caseTypeFirst" column="case_type_first"/>
            <result property="caseTypeFirstName" column="case_type_first_name"/>
            <result property="caseType" column="case_type"/>
            <result property="caseTypeName" column="case_type_name"/>
            <result property="occurTime" column="occur_time"/>
            <result property="addr" column="addr"/>
            <result property="lng" column="lng"/>
            <result property="lat" column="lat"/>
            <result property="wgAddr" column="wg_addr"/>
            <result property="wgLng" column="wg_lng"/>
            <result property="wgLat" column="wg_lat"/>
            <result property="queProv" column="que_prov"/>
            <result property="queProvName" column="que_prov_name"/>
            <result property="queCity" column="que_city"/>
            <result property="queCityName" column="que_city_name"/>
            <result property="queArea" column="que_area"/>
            <result property="queAreaName" column="que_area_name"/>
            <result property="queRoad" column="que_road"/>
            <result property="queRoadName" column="que_road_name"/>
            <result property="queVillage" column="que_village"/>
            <result property="queVillageName" column="que_village_name"/>
            <result property="peopleNum" column="people_num"/>
            <result property="amount" column="amount"/>
            <result property="crowd" column="crowd"/>
            <result property="crowdName" column="crowd_name"/>
            <result property="canal" column="canal"/>
            <result property="canalName" column="canal_name"/>
            <result property="visitWay" column="visit_way"/>
            <result property="visitWayName" column="visit_way_name"/>
            <result property="zxslStatus" column="zxsl_status"/>
            <result property="caseDes" column="case_des"/>
            <result property="caseClaim" column="case_claim"/>
            <result property="majorStatus" column="major_status"/>
            <result property="source" column="source"/>
            <result property="sourceName" column="source_name"/>
            <result property="caseNo" column="case_no"/>
            <result property="mediateNo" column="mediate_no"/>
            <result property="mediateBookNo" column="mediate_book_no"/>
            <result property="civilNo" column="civil_no"/>
            <result property="plaintiffs" column="plaintiffs"/>
            <result property="pagents" column="pagents"/>
            <result property="defendants" column="defendants"/>
            <result property="dagents" column="dagents"/>
            <result property="partyShow" column="party_show"/>
            <result property="wantUnitId" column="want_unit_id"/>
            <result property="wantUnitName" column="want_unit_name"/>
            <result property="wantUserId" column="want_user_id"/>
            <result property="wantUserName" column="want_user_name"/>
            <result property="inputUnitId" column="input_unit_id"/>
            <result property="inputUnitName" column="input_unit_name"/>
            <result property="inputUserId" column="input_user_id"/>
            <result property="inputUserName" column="input_user_name"/>
            <result property="inputWay" column="input_way"/>
            <result property="status" column="status"/>
            <result property="statusName" column="status_name"/>
            <result property="process" column="process"/>
            <result property="processName" column="process_name"/>
            <result property="infoProcess" column="info_process"/>
            <result property="infoProcessName" column="info_process_name"/>
            <result property="deleteStatus" column="delete_status"/>
            <result property="custId" column="cust_id"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
    </resultMap>
    <!-- 表 -->
    <sql id='table-name'>dyh_casebook_info</sql>
    <!-- 字段 -->
    <sql id="column-part">
        id,
        case_title,
        case_ref,
        case_level,
        visit_time,
        visit_people_num,
        medi_type,
        medi_type_name,
        case_type_first,
        case_type_first_name,
        case_type,
        case_type_name,
        occur_time,
        addr,
        lng,
        lat,
        wg_addr,
        wg_lng,
        wg_lat,
        que_prov,
        que_prov_name,
        que_city,
        que_city_name,
        que_area,
        que_area_name,
        que_road,
        que_road_name,
        que_village,
        que_village_name,
        people_num,
        amount,
        crowd,
        crowd_name,
        canal,
        canal_name,
        visit_way,
        visit_way_name,
        zxsl_status,
        case_des,
        case_claim,
        major_status,
        source,
        source_name,
        case_no,
        mediate_no,
        mediate_book_no,
        civil_no,
        plaintiffs,
        pagents,
        defendants,
        dagents,
        party_show,
        want_unit_id,
        want_unit_name,
        want_user_id,
        want_user_name,
        input_unit_id,
        input_unit_name,
        input_user_id,
        input_user_name,
        input_way,
        status,
        status_name,
        process,
        process_name,
        info_process,
        info_process_name,
        delete_status,
        cust_id,
        create_time,
        update_time
    </sql>
    <!-- 更新实体字段 -->
    <sql id="set-part">
            <if test="entity.caseTitle != null">case_title = #{entity.caseTitle},</if>
            <if test="entity.caseRef != null">case_ref = #{entity.caseRef},</if>
            <if test="entity.caseLevel != null">case_level = #{entity.caseLevel},</if>
            <if test="entity.visitTime != null">visit_time = #{entity.visitTime},</if>
            <if test="entity.visitPeopleNum != null">visit_people_num = #{entity.visitPeopleNum},</if>
            <if test="entity.mediType != null">medi_type = #{entity.mediType},</if>
            <if test="entity.mediTypeName != null">medi_type_name = #{entity.mediTypeName},</if>
            <if test="entity.caseTypeFirst != null">case_type_first = #{entity.caseTypeFirst},</if>
            <if test="entity.caseTypeFirstName != null">case_type_first_name = #{entity.caseTypeFirstName},</if>
            <if test="entity.caseType != null">case_type = #{entity.caseType},</if>
            <if test="entity.caseTypeName != null">case_type_name = #{entity.caseTypeName},</if>
            <if test="entity.occurTime != null">occur_time = #{entity.occurTime},</if>
            <if test="entity.addr != null">addr = #{entity.addr},</if>
            <if test="entity.lng != null">lng = #{entity.lng},</if>
            <if test="entity.lat != null">lat = #{entity.lat},</if>
            <if test="entity.wgAddr != null">wg_addr = #{entity.wgAddr},</if>
            <if test="entity.wgLng != null">wg_lng = #{entity.wgLng},</if>
            <if test="entity.wgLat != null">wg_lat = #{entity.wgLat},</if>
            <if test="entity.queProv != null">que_prov = #{entity.queProv},</if>
            <if test="entity.queProvName != null">que_prov_name = #{entity.queProvName},</if>
            <if test="entity.queCity != null">que_city = #{entity.queCity},</if>
            <if test="entity.queCityName != null">que_city_name = #{entity.queCityName},</if>
            <if test="entity.queArea != null">que_area = #{entity.queArea},</if>
            <if test="entity.queAreaName != null">que_area_name = #{entity.queAreaName},</if>
            <if test="entity.queRoad != null">que_road = #{entity.queRoad},</if>
            <if test="entity.queRoadName != null">que_road_name = #{entity.queRoadName},</if>
            <if test="entity.queVillage != null">que_village = #{entity.queVillage},</if>
            <if test="entity.queVillageName != null">que_village_name = #{entity.queVillageName},</if>
            <if test="entity.peopleNum != null">people_num = #{entity.peopleNum},</if>
            <if test="entity.amount != null">amount = #{entity.amount},</if>
            <if test="entity.crowd != null">crowd = #{entity.crowd},</if>
            <if test="entity.crowdName != null">crowd_name = #{entity.crowdName},</if>
            <if test="entity.canal != null">canal = #{entity.canal},</if>
            <if test="entity.canalName != null">canal_name = #{entity.canalName},</if>
            <if test="entity.visitWay != null">visit_way = #{entity.visitWay},</if>
            <if test="entity.visitWayName != null">visit_way_name = #{entity.visitWayName},</if>
            <if test="entity.zxslStatus != null">zxsl_status = #{entity.zxslStatus},</if>
            <if test="entity.caseDes != null">case_des = #{entity.caseDes},</if>
            <if test="entity.caseClaim != null">case_claim = #{entity.caseClaim},</if>
            <if test="entity.majorStatus != null">major_status = #{entity.majorStatus},</if>
            <if test="entity.source != null">source = #{entity.source},</if>
            <if test="entity.sourceName != null">source_name = #{entity.sourceName},</if>
            <if test="entity.caseNo != null">case_no = #{entity.caseNo},</if>
            <if test="entity.mediateNo != null">mediate_no = #{entity.mediateNo},</if>
            <if test="entity.mediateBookNo != null">mediate_book_no = #{entity.mediateBookNo},</if>
            <if test="entity.civilNo != null">civil_no = #{entity.civilNo},</if>
            <if test="entity.plaintiffs != null">plaintiffs = #{entity.plaintiffs},</if>
            <if test="entity.pagents != null">pagents = #{entity.pagents},</if>
            <if test="entity.defendants != null">defendants = #{entity.defendants},</if>
            <if test="entity.dagents != null">dagents = #{entity.dagents},</if>
            <if test="entity.partyShow != null">party_show = #{entity.partyShow},</if>
            <if test="entity.wantUnitId != null">want_unit_id = #{entity.wantUnitId},</if>
            <if test="entity.wantUnitName != null">want_unit_name = #{entity.wantUnitName},</if>
            <if test="entity.wantUserId != null">want_user_id = #{entity.wantUserId},</if>
            <if test="entity.wantUserName != null">want_user_name = #{entity.wantUserName},</if>
            <if test="entity.inputUnitId != null">input_unit_id = #{entity.inputUnitId},</if>
            <if test="entity.inputUnitName != null">input_unit_name = #{entity.inputUnitName},</if>
            <if test="entity.inputUserId != null">input_user_id = #{entity.inputUserId},</if>
            <if test="entity.inputUserName != null">input_user_name = #{entity.inputUserName},</if>
            <if test="entity.inputWay != null">input_way = #{entity.inputWay},</if>
            <if test="entity.status != null">status = #{entity.status},</if>
            <if test="entity.statusName != null">status_name = #{entity.statusName},</if>
            <if test="entity.process != null">process = #{entity.process},</if>
            <if test="entity.processName != null">process_name = #{entity.processName},</if>
            <if test="entity.infoProcess != null">info_process = #{entity.infoProcess},</if>
            <if test="entity.infoProcessName != null">info_process_name = #{entity.infoProcessName},</if>
            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
    </sql>
    <!-- 条件 -->
    <sql id="where-part">
        <if test="terms != null">
            <where>
                <if test="terms.id != null and terms.id !=''">
                    and id = #{terms.id}
                </if>
                <if test="terms.caseTitle != null and terms.caseTitle !=''">
                    and case_title = #{terms.caseTitle}
                </if>
                <if test="terms.caseRef != null and terms.caseRef !=''">
                    and case_ref = #{terms.caseRef}
                </if>
                <if test="terms.caseLevel != null and terms.caseLevel !=''">
                    and case_level = #{terms.caseLevel}
                </if>
                <if test="terms.visitTime != null and terms.visitTime !=''">
                    and visit_time = #{terms.visitTime}
                </if>
                <if test="terms.visitPeopleNum != null and terms.visitPeopleNum !=''">
                    and visit_people_num = #{terms.visitPeopleNum}
                </if>
                <if test="terms.mediType != null and terms.mediType !=''">
                    and medi_type = #{terms.mediType}
                </if>
                <if test="terms.mediTypeName != null and terms.mediTypeName !=''">
                    and medi_type_name = #{terms.mediTypeName}
                </if>
                <if test="terms.caseTypeFirst != null and terms.caseTypeFirst !=''">
                    and case_type_first = #{terms.caseTypeFirst}
                </if>
                <if test="terms.caseTypeFirstName != null and terms.caseTypeFirstName !=''">
                    and case_type_first_name = #{terms.caseTypeFirstName}
                </if>
                <if test="terms.caseType != null and terms.caseType !=''">
                    and case_type = #{terms.caseType}
                </if>
                <if test="terms.caseTypeName != null and terms.caseTypeName !=''">
                    and case_type_name = #{terms.caseTypeName}
                </if>
                <if test="terms.occurTime != null and terms.occurTime !=''">
                    and occur_time = #{terms.occurTime}
                </if>
                <if test="terms.addr != null and terms.addr !=''">
                    and addr = #{terms.addr}
                </if>
                <if test="terms.lng != null and terms.lng !=''">
                    and lng = #{terms.lng}
                </if>
                <if test="terms.lat != null and terms.lat !=''">
                    and lat = #{terms.lat}
                </if>
                <if test="terms.wgAddr != null and terms.wgAddr !=''">
                    and wg_addr = #{terms.wgAddr}
                </if>
                <if test="terms.wgLng != null and terms.wgLng !=''">
                    and wg_lng = #{terms.wgLng}
                </if>
                <if test="terms.wgLat != null and terms.wgLat !=''">
                    and wg_lat = #{terms.wgLat}
                </if>
                <if test="terms.queProv != null and terms.queProv !=''">
                    and que_prov = #{terms.queProv}
                </if>
                <if test="terms.queProvName != null and terms.queProvName !=''">
                    and que_prov_name = #{terms.queProvName}
                </if>
                <if test="terms.queCity != null and terms.queCity !=''">
                    and que_city = #{terms.queCity}
                </if>
                <if test="terms.queCityName != null and terms.queCityName !=''">
                    and que_city_name = #{terms.queCityName}
                </if>
                <if test="terms.queArea != null and terms.queArea !=''">
                    and que_area = #{terms.queArea}
                </if>
                <if test="terms.queAreaName != null and terms.queAreaName !=''">
                    and que_area_name = #{terms.queAreaName}
                </if>
                <if test="terms.queRoad != null and terms.queRoad !=''">
                    and que_road = #{terms.queRoad}
                </if>
                <if test="terms.queRoadName != null and terms.queRoadName !=''">
                    and que_road_name = #{terms.queRoadName}
                </if>
                <if test="terms.queVillage != null and terms.queVillage !=''">
                    and que_village = #{terms.queVillage}
                </if>
                <if test="terms.queVillageName != null and terms.queVillageName !=''">
                    and que_village_name = #{terms.queVillageName}
                </if>
                <if test="terms.peopleNum != null and terms.peopleNum !=''">
                    and people_num = #{terms.peopleNum}
                </if>
                <if test="terms.amount != null and terms.amount !=''">
                    and amount = #{terms.amount}
                </if>
                <if test="terms.crowd != null and terms.crowd !=''">
                    and crowd = #{terms.crowd}
                </if>
                <if test="terms.crowdName != null and terms.crowdName !=''">
                    and crowd_name = #{terms.crowdName}
                </if>
                <if test="terms.canal != null and terms.canal !=''">
                    and canal = #{terms.canal}
                </if>
                <if test="terms.canalName != null and terms.canalName !=''">
                    and canal_name = #{terms.canalName}
                </if>
                <if test="terms.visitWay != null and terms.visitWay !=''">
                    and visit_way = #{terms.visitWay}
                </if>
                <if test="terms.visitWayName != null and terms.visitWayName !=''">
                    and visit_way_name = #{terms.visitWayName}
                </if>
                <if test="terms.zxslStatus != null and terms.zxslStatus !=''">
                    and zxsl_status = #{terms.zxslStatus}
                </if>
                <if test="terms.caseDes != null and terms.caseDes !=''">
                    and case_des = #{terms.caseDes}
                </if>
                <if test="terms.caseClaim != null and terms.caseClaim !=''">
                    and case_claim = #{terms.caseClaim}
                </if>
                <if test="terms.majorStatus != null and terms.majorStatus !=''">
                    and major_status = #{terms.majorStatus}
                </if>
                <if test="terms.source != null and terms.source !=''">
                    and source = #{terms.source}
                </if>
                <if test="terms.sourceName != null and terms.sourceName !=''">
                    and source_name = #{terms.sourceName}
                </if>
                <if test="terms.caseNo != null and terms.caseNo !=''">
                    and case_no = #{terms.caseNo}
                </if>
                <if test="terms.mediateNo != null and terms.mediateNo !=''">
                    and mediate_no = #{terms.mediateNo}
                </if>
                <if test="terms.mediateBookNo != null and terms.mediateBookNo !=''">
                    and mediate_book_no = #{terms.mediateBookNo}
                </if>
                <if test="terms.civilNo != null and terms.civilNo !=''">
                    and civil_no = #{terms.civilNo}
                </if>
                <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
                    and plaintiffs = #{terms.plaintiffs}
                </if>
                <if test="terms.pagents != null and terms.pagents !=''">
                    and pagents = #{terms.pagents}
                </if>
                <if test="terms.defendants != null and terms.defendants !=''">
                    and defendants = #{terms.defendants}
                </if>
                <if test="terms.dagents != null and terms.dagents !=''">
                    and dagents = #{terms.dagents}
                </if>
                <if test="terms.partyShow != null and terms.partyShow !=''">
                    and party_show = #{terms.partyShow}
                </if>
                <if test="terms.wantUnitId != null and terms.wantUnitId !=''">
                    and want_unit_id = #{terms.wantUnitId}
                </if>
                <if test="terms.wantUnitName != null and terms.wantUnitName !=''">
                    and want_unit_name = #{terms.wantUnitName}
                </if>
                <if test="terms.wantUserId != null and terms.wantUserId !=''">
                    and want_user_id = #{terms.wantUserId}
                </if>
                <if test="terms.wantUserName != null and terms.wantUserName !=''">
                    and want_user_name = #{terms.wantUserName}
                </if>
                <if test="terms.inputUnitId != null and terms.inputUnitId !=''">
                    and input_unit_id = #{terms.inputUnitId}
                </if>
                <if test="terms.inputUnitName != null and terms.inputUnitName !=''">
                    and input_unit_name = #{terms.inputUnitName}
                </if>
                <if test="terms.inputUserId != null and terms.inputUserId !=''">
                    and input_user_id = #{terms.inputUserId}
                </if>
                <if test="terms.inputUserName != null and terms.inputUserName !=''">
                    and input_user_name = #{terms.inputUserName}
                </if>
                <if test="terms.inputWay != null and terms.inputWay !=''">
                    and input_way = #{terms.inputWay}
                </if>
                <if test="terms.status != null and terms.status !=''">
                    and status = #{terms.status}
                </if>
                <if test="terms.statusName != null and terms.statusName !=''">
                    and status_name = #{terms.statusName}
                </if>
                <if test="terms.process != null and terms.process !=''">
                    and process = #{terms.process}
                </if>
                <if test="terms.processName != null and terms.processName !=''">
                    and process_name = #{terms.processName}
                </if>
                <if test="terms.infoProcess != null and terms.infoProcess !=''">
                    and info_process = #{terms.infoProcess}
                </if>
                <if test="terms.infoProcessName != null and terms.infoProcessName !=''">
                    and info_process_name = #{terms.infoProcessName}
                </if>
                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
                    and delete_status = 0
                </if>
                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
                    and delete_status = #{terms.deleteStatus}
                </if>
                <if test="terms.custId != null and terms.custId !=''">
                    and cust_id = #{terms.custId}
                </if>
                <if test="terms.createTime != null and terms.createTime !=''">
                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
                </if>
                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
                </if>
                <if test="terms.updateTime != null and terms.updateTime !=''">
                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
                </if>
                <if test="terms.occurStart != null and terms.occurStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.occurStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
            </where>
        </if>
    </sql>
    <!-- 更新对象 -->
    <update id="updateCasebookInfo">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id = #{entity.id}
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateCasebookInfoTerms">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <include refid="where-part"/>
    </update>
    <!--  根据编号物理删除  -->
    <delete id="deleteCasebookInfo">
        delete from
        <include refid="table-name" />
        where id = #{id}
    </delete>
    <!--  根据条件查询  -->
    <select id="listTerms" resultMap="dataResult">
        select
        <include refid="column-part"/>
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件统计  -->
    <select id="countTerms" resultType="java.lang.Long">
        select
        COUNT(1)
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件分页查询  -->
    <select id="pageTerms" resultMap="dataResult">
        SELECT
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        <include refid="where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!-- 条件-导入草稿 -->
    <sql id="importDraft-where-part">
        <if test="terms != null">
            <if test="terms.importStart != null and terms.importStart !='' and terms.importEnd != null and terms.importEnd !=''">
                and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.importStart}
                and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.importEnd})
            </if>
            <if test="terms.occurStart != null and terms.occurStart !='' and terms.occurEnd != null and terms.occurEnd !=''">
                and (DATE_FORMAT(t1.occur_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                and DATE_FORMAT(t1.occur_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.occurEnd})
            </if>
            <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
                and concat_ws('', ifnull(t1.plaintiffs, ''), ifnull(t1.pagents, '')) like concat('%', #{terms.plaintiffs}, '%')
            </if>
            <if test="terms.defendants != null and terms.defendants !=''">
                and concat_ws('', ifnull(t1.defendants, ''), ifnull(t1.dagents, '')) like concat('%', #{terms.defendants}, '%')
            </if>
            <if test="terms.mediator != null and terms.mediator !=''">
                and t2.mediator like concat('%', #{terms.mediator}, '%')
            </if>
            <if test="terms.mediResult != null and terms.mediResult !=''">
                and t1.medi_result = #{terms.mediResult}
            </if>
            <if test="terms.caseType != null and terms.caseType !=''">
                and t1.case_type = #{terms.caseType}
            </if>
            <if test="terms.assistMediator != null and terms.assistMediator !=''">
                and t3.assist_user_name like concat('%', #{terms.assistMediator}, '%')
            </if>
        </if>
    </sql>
    <!--  统计-导入草稿  -->
    <select id="countImportDraft" resultType="java.lang.Long">
        select count(DISTINCT t1.id)
        from dyh_casebook_info t1
        left join dyh_casebook_info_unfold t2 on t1.id = t2.id
        left join dyh_casebook_assist_info t3 on t1.id = t3.case_id
        where t1.delete_status = 0
        and t1.input_way = 2
        and t1.input_unit_id = #{terms.inputUnitId}
        <include refid="importDraft-where-part"/>
    </select>
    <!--  条件分页查询-导入草稿  -->
    <select id="pageImportDraft" resultType="cn.huge.module.casebook.domain.dto.CaseBookPageDTO">
        select t1.id, t1.occur_time as occurTime, t1.addr, concat_ws('', ifnull(t1.plaintiffs, ''), ifnull(t1.pagents, '')) as plaintiffs,
        concat_ws('', ifnull(t1.defendants, ''), ifnull(t1.dagents, '')) as defendants,
        concat_ws('', ifnull(t1.case_type_first_name, ''), '/' , ifnull(t1.case_type_name, '')) as caseType,
        t2.mediate_unit_name as mediateUnitName, t2.mediator, t3.assist_user_name as assistUserName,
        t2.medi_result as mediResult, t2.medi_result_name as mediResultName, t1.create_time as createTime
        from dyh_casebook_info t1
        left join dyh_casebook_info_unfold t2 on t1.id = t2.id
        left join dyh_casebook_assist_info t3 on t1.id = t3.case_id
        where t1.delete_status = 0
        and t1.input_way = 2
        and t1.input_unit_id = #{terms.inputUnitId}
        <include refid="importDraft-where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!--  条件分页查询-导入草稿  -->
    <select id="listImportDraft" resultType="cn.huge.module.casebook.domain.dto.CaseBookPageDTO">
        select t1.id, t1.occur_time as occurTime, t1.addr, concat_ws('', ifnull(t1.plaintiffs, ''), ifnull(t1.pagents, '')) as plaintiffs,
        concat_ws('', ifnull(t1.defendants, ''), ifnull(t1.dagents, '')) as defendants,
        concat_ws('', ifnull(t1.case_type_first_name, ''), '/' , ifnull(t1.case_type_name, '')) as caseType,
        t2.mediate_unit_name as mediateUnitName, t2.mediator, t3.assist_user_name as assistUserName,
        t2.medi_result as mediResult, t2.medi_result_name as mediResultName, t1.create_time as createTime
        from dyh_casebook_info t1
        left join dyh_casebook_info_unfold t2 on t1.id = t2.id
        left join dyh_casebook_assist_info t3 on t1.id = t3.case_id
        where t1.delete_status = 0
        and t1.input_way = 2
        and t1.input_unit_id = #{terms.inputUnitId}
        <include refid="importDraft-where-part"/>
        order by t1.create_time
    </select>
    <!-- 条件-导入成功 -->
    <sql id="importSuc-where-part">
        <if test="terms != null">
            <if test="terms.importStart != null and terms.importStart !='' and terms.importEnd != null and terms.importEnd !=''">
                and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.importStart}
                and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.importEnd})
            </if>
            <if test="terms.occurStart != null and terms.occurStart !='' and terms.occurEnd != null and terms.occurEnd !=''">
                and (DATE_FORMAT(t1.occur_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                and DATE_FORMAT(t1.occur_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.occurEnd})
            </if>
            <if test="terms.plaintiffs != null and terms.plaintiffs !=''">
                and concat_ws('', ifnull(t1.plaintiffs, ''), ifnull(t1.pagents, '')) like concat('%', #{terms.plaintiffs}, '%')
            </if>
            <if test="terms.defendants != null and terms.defendants !=''">
                and concat_ws('', ifnull(t1.defendants, ''), ifnull(t1.dagents, '')) like concat('%', #{terms.defendants}, '%')
            </if>
            <if test="terms.mediator != null and terms.mediator !=''">
                and t2.mediator like concat('%', #{terms.mediator}, '%')
            </if>
            <if test="terms.mediResult != null and terms.mediResult !=''">
                and t1.medi_result = #{terms.mediResult}
            </if>
            <if test="terms.caseType != null and terms.caseType !=''">
                and t1.case_type = #{terms.caseType}
            </if>
            <if test="terms.assistMediator != null and terms.assistMediator !=''">
                and t3.assist_user_name like concat('%', #{terms.assistMediator}, '%')
            </if>
        </if>
    </sql>
    <!--  统计-导入成功  -->
    <select id="countImportSuc" resultType="java.lang.Long">
        select count(DISTINCT t1.id)
        from dyh_case_info t1
        left join dyh_case_info_unfold t2 on t1.id = t2.id
        left join dyh_case_assist_info t3 on t1.id = t3.case_id
        where t1.delete_status = 0
        and t1.input_way = 2
        and t1.input_unit_id = #{terms.inputUnitId}
        <include refid="importSuc-where-part"/>
    </select>
    <!--  条件分页查询-导入成功  -->
    <select id="pageImportSuc" resultType="cn.huge.module.casebook.domain.dto.CaseBookPageDTO">
        select t1.id, t1.occur_time as occurTime, t1.addr, concat_ws('', ifnull(t1.plaintiffs, ''), ifnull(t1.pagents, '')) as plaintiffs,
        concat_ws('', ifnull(t1.defendants, ''), ifnull(t1.dagents, '')) as defendants,
        concat_ws('', ifnull(t1.case_type_first_name, ''), '/' , ifnull(t1.case_type_name, '')) as caseType,
        t2.mediate_unit_name as mediateUnitName, t2.mediator, t3.assist_user_name as assistUserName,
        t2.medi_result as mediResult, t2.medi_result_name as mediResultName, t1.create_time as createTime
        from dyh_case_info t1
        left join dyh_case_info_unfold t2 on t1.id = t2.id
        left join dyh_case_assist_info t3 on t1.id = t3.case_id
        where t1.delete_status = 0
        and t1.input_way = 2
        and t1.input_unit_id = #{terms.inputUnitId}
        <include refid="importSuc-where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookInfoUnfoldMapper.xml
New file
@@ -0,0 +1,391 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @title: dyh_casebook_info_unfold
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-10-26 12:31:22
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.casebook.dao.mapper.CasebookInfoUnfoldMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.casebook.domain.po.CasebookInfoUnfold">
            <result property="id" column="id"/>
            <result property="acceptTime" column="accept_time"/>
            <result property="mediateUnitId" column="mediate_unit_id"/>
            <result property="mediateUnitName" column="mediate_unit_name"/>
            <result property="mediateDeptId" column="mediate_dept_id"/>
            <result property="mediateDeptName" column="mediate_dept_name"/>
            <result property="mediatorId" column="mediator_id"/>
            <result property="mediator" column="mediator"/>
            <result property="mediatorMobile" column="mediator_mobile"/>
            <result property="assistUnitId" column="assist_unit_id"/>
            <result property="assistUnitName" column="assist_unit_name"/>
            <result property="mediStartTime" column="medi_start_time"/>
            <result property="mediEndTime" column="medi_end_time"/>
            <result property="mediResult" column="medi_result"/>
            <result property="mediResultName" column="medi_result_name"/>
            <result property="agreeType" column="agree_type"/>
            <result property="agreeTypeName" column="agree_type_name"/>
            <result property="agreeContent" column="agree_content"/>
            <result property="windupContent" column="windup_content"/>
            <result property="mediFalse" column="medi_false"/>
            <result property="mediFalseName" column="medi_false_name"/>
            <result property="civilStatus" column="civil_status"/>
            <result property="courtId" column="court_id"/>
            <result property="courtName" column="court_name"/>
            <result property="closeTime" column="close_time"/>
            <result property="judicApply" column="judic_apply"/>
            <result property="judicResult" column="judic_result"/>
            <result property="judicResultName" column="judic_result_name"/>
            <result property="fileStatus" column="file_status"/>
            <result property="fileUserId" column="file_user_id"/>
            <result property="fileUserName" column="file_user_name"/>
            <result property="fileTime" column="file_time"/>
            <result property="fileYear" column="file_year"/>
            <result property="fileBookName" column="file_book_name"/>
            <result property="fileBookNo" column="file_book_no"/>
            <result property="fileNo" column="file_no"/>
            <result property="fileLimitYear" column="file_limit_year"/>
            <result property="fileAddr" column="file_addr"/>
            <result property="fileContent" column="file_content"/>
            <result property="fulfilSitu" column="fulfil_situ"/>
            <result property="fulfilSituName" column="fulfil_situ_name"/>
            <result property="visitUpStatus" column="visit_up_status"/>
            <result property="visitUpContent" column="visit_up_content"/>
            <result property="partyJoy" column="party_joy"/>
            <result property="custId" column="cust_id"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
            <result property="belongUnitId" column="belong_unit_id"/>
            <result property="belongUnitName" column="belong_unit_name"/>
    </resultMap>
    <!-- 表 -->
    <sql id='table-name'>dyh_casebook_info_unfold</sql>
    <!-- 字段 -->
    <sql id="column-part">
        id,
        accept_time,
        mediate_unit_id,
        mediate_unit_name,
        mediate_dept_id,
        mediate_dept_name,
        mediator_id,
        mediator,
        mediator_mobile,
        assist_unit_id,
        assist_unit_name,
        medi_start_time,
        medi_end_time,
        medi_result,
        medi_result_name,
        agree_type,
        agree_type_name,
        agree_content,
        windup_content,
        medi_false,
        medi_false_name,
        civil_status,
        court_id,
        court_name,
        close_time,
        judic_apply,
        judic_result,
        judic_result_name,
        file_status,
        file_user_id,
        file_user_name,
        file_time,
        file_year,
        file_book_name,
        file_book_no,
        file_no,
        file_limit_year,
        file_addr,
        file_content,
        fulfil_situ,
        fulfil_situ_name,
        visit_up_status,
        visit_up_content,
        party_joy,
        cust_id,
        create_time,
        update_time,
        belong_unit_id,
        belong_unit_name
    </sql>
    <!-- 更新实体字段 -->
    <sql id="set-part">
            <if test="entity.acceptTime != null">accept_time = #{entity.acceptTime},</if>
            <if test="entity.mediateUnitId != null">mediate_unit_id = #{entity.mediateUnitId},</if>
            <if test="entity.mediateUnitName != null">mediate_unit_name = #{entity.mediateUnitName},</if>
            <if test="entity.mediateDeptId != null">mediate_dept_id = #{entity.mediateDeptId},</if>
            <if test="entity.mediateDeptName != null">mediate_dept_name = #{entity.mediateDeptName},</if>
            <if test="entity.mediatorId != null">mediator_id = #{entity.mediatorId},</if>
            <if test="entity.mediator != null">mediator = #{entity.mediator},</if>
            <if test="entity.mediatorMobile != null">mediator_mobile = #{entity.mediatorMobile},</if>
            <if test="entity.assistUnitId != null">assist_unit_id = #{entity.assistUnitId},</if>
            <if test="entity.assistUnitName != null">assist_unit_name = #{entity.assistUnitName},</if>
            <if test="entity.mediStartTime != null">medi_start_time = #{entity.mediStartTime},</if>
            <if test="entity.mediEndTime != null">medi_end_time = #{entity.mediEndTime},</if>
            <if test="entity.mediResult != null">medi_result = #{entity.mediResult},</if>
            <if test="entity.mediResultName != null">medi_result_name = #{entity.mediResultName},</if>
            <if test="entity.agreeType != null">agree_type = #{entity.agreeType},</if>
            <if test="entity.agreeTypeName != null">agree_type_name = #{entity.agreeTypeName},</if>
            <if test="entity.agreeContent != null">agree_content = #{entity.agreeContent},</if>
            <if test="entity.windupContent != null">windup_content = #{entity.windupContent},</if>
            <if test="entity.mediFalse != null">medi_false = #{entity.mediFalse},</if>
            <if test="entity.mediFalseName != null">medi_false_name = #{entity.mediFalseName},</if>
            <if test="entity.civilStatus != null">civil_status = #{entity.civilStatus},</if>
            <if test="entity.courtId != null">court_id = #{entity.courtId},</if>
            <if test="entity.courtName != null">court_name = #{entity.courtName},</if>
            <if test="entity.closeTime != null">close_time = #{entity.closeTime},</if>
            <if test="entity.judicApply != null">judic_apply = #{entity.judicApply},</if>
            <if test="entity.judicResult != null">judic_result = #{entity.judicResult},</if>
            <if test="entity.judicResultName != null">judic_result_name = #{entity.judicResultName},</if>
            <if test="entity.fileStatus != null">file_status = #{entity.fileStatus},</if>
            <if test="entity.fileUserId != null">file_user_id = #{entity.fileUserId},</if>
            <if test="entity.fileUserName != null">file_user_name = #{entity.fileUserName},</if>
            <if test="entity.fileTime != null">file_time = #{entity.fileTime},</if>
            <if test="entity.fileYear != null">file_year = #{entity.fileYear},</if>
            <if test="entity.fileBookName != null">file_book_name = #{entity.fileBookName},</if>
            <if test="entity.fileBookNo != null">file_book_no = #{entity.fileBookNo},</if>
            <if test="entity.fileNo != null">file_no = #{entity.fileNo},</if>
            <if test="entity.fileLimitYear != null">file_limit_year = #{entity.fileLimitYear},</if>
            <if test="entity.fileAddr != null">file_addr = #{entity.fileAddr},</if>
            <if test="entity.fileContent != null">file_content = #{entity.fileContent},</if>
            <if test="entity.fulfilSitu != null">fulfil_situ = #{entity.fulfilSitu},</if>
            <if test="entity.fulfilSituName != null">fulfil_situ_name = #{entity.fulfilSituName},</if>
            <if test="entity.visitUpStatus != null">visit_up_status = #{entity.visitUpStatus},</if>
            <if test="entity.visitUpContent != null">visit_up_content = #{entity.visitUpContent},</if>
            <if test="entity.partyJoy != null">party_joy = #{entity.partyJoy},</if>
            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
            <if test="entity.updateTime != null">update_time = #{entity.updateTime},</if>
            <if test="entity.belongUnitId != null">belong_unit_id = #{entity.belongUnitId},</if>
            <if test="entity.belongUnitName != null">belong_unit_name = #{entity.belongUnitName}</if>
    </sql>
    <!-- 条件 -->
    <sql id="where-part">
        <if test="terms != null">
            <where>
                <if test="terms.id != null and terms.id !=''">
                    and id = #{terms.id}
                </if>
                <if test="terms.acceptTime != null and terms.acceptTime !=''">
                    and accept_time = #{terms.acceptTime}
                </if>
                <if test="terms.mediateUnitId != null and terms.mediateUnitId !=''">
                    and mediate_unit_id = #{terms.mediateUnitId}
                </if>
                <if test="terms.mediateUnitName != null and terms.mediateUnitName !=''">
                    and mediate_unit_name = #{terms.mediateUnitName}
                </if>
                <if test="terms.mediateDeptId != null and terms.mediateDeptId !=''">
                    and mediate_dept_id = #{terms.mediateDeptId}
                </if>
                <if test="terms.mediateDeptName != null and terms.mediateDeptName !=''">
                    and mediate_dept_name = #{terms.mediateDeptName}
                </if>
                <if test="terms.mediatorId != null and terms.mediatorId !=''">
                    and mediator_id = #{terms.mediatorId}
                </if>
                <if test="terms.mediator != null and terms.mediator !=''">
                    and mediator = #{terms.mediator}
                </if>
                <if test="terms.mediatorMobile != null and terms.mediatorMobile !=''">
                    and mediator_mobile = #{terms.mediatorMobile}
                </if>
                <if test="terms.assistUnitId != null and terms.assistUnitId !=''">
                    and assist_unit_id = #{terms.assistUnitId}
                </if>
                <if test="terms.assistUnitName != null and terms.assistUnitName !=''">
                    and assist_unit_name = #{terms.assistUnitName}
                </if>
                <if test="terms.mediStartTime != null and terms.mediStartTime !=''">
                    and medi_start_time = #{terms.mediStartTime}
                </if>
                <if test="terms.mediEndTime != null and terms.mediEndTime !=''">
                    and medi_end_time = #{terms.mediEndTime}
                </if>
                <if test="terms.mediResult != null and terms.mediResult !=''">
                    and medi_result = #{terms.mediResult}
                </if>
                <if test="terms.mediResultName != null and terms.mediResultName !=''">
                    and medi_result_name = #{terms.mediResultName}
                </if>
                <if test="terms.agreeType != null and terms.agreeType !=''">
                    and agree_type = #{terms.agreeType}
                </if>
                <if test="terms.agreeTypeName != null and terms.agreeTypeName !=''">
                    and agree_type_name = #{terms.agreeTypeName}
                </if>
                <if test="terms.agreeContent != null and terms.agreeContent !=''">
                    and agree_content = #{terms.agreeContent}
                </if>
                <if test="terms.windupContent != null and terms.windupContent !=''">
                    and windup_content = #{terms.windupContent}
                </if>
                <if test="terms.mediFalse != null and terms.mediFalse !=''">
                    and medi_false = #{terms.mediFalse}
                </if>
                <if test="terms.mediFalseName != null and terms.mediFalseName !=''">
                    and medi_false_name = #{terms.mediFalseName}
                </if>
                <if test="terms.civilStatus != null and terms.civilStatus !=''">
                    and civil_status = #{terms.civilStatus}
                </if>
                <if test="terms.courtId != null and terms.courtId !=''">
                    and court_id = #{terms.courtId}
                </if>
                <if test="terms.courtName != null and terms.courtName !=''">
                    and court_name = #{terms.courtName}
                </if>
                <if test="terms.closeTime != null and terms.closeTime !=''">
                    and close_time = #{terms.closeTime}
                </if>
                <if test="terms.judicApply != null and terms.judicApply !=''">
                    and judic_apply = #{terms.judicApply}
                </if>
                <if test="terms.judicResult != null and terms.judicResult !=''">
                    and judic_result = #{terms.judicResult}
                </if>
                <if test="terms.judicResultName != null and terms.judicResultName !=''">
                    and judic_result_name = #{terms.judicResultName}
                </if>
                <if test="terms.fileStatus != null and terms.fileStatus !=''">
                    and file_status = #{terms.fileStatus}
                </if>
                <if test="terms.fileUserId != null and terms.fileUserId !=''">
                    and file_user_id = #{terms.fileUserId}
                </if>
                <if test="terms.fileUserName != null and terms.fileUserName !=''">
                    and file_user_name = #{terms.fileUserName}
                </if>
                <if test="terms.fileTime != null and terms.fileTime !=''">
                    and file_time = #{terms.fileTime}
                </if>
                <if test="terms.fileYear != null and terms.fileYear !=''">
                    and file_year = #{terms.fileYear}
                </if>
                <if test="terms.fileBookName != null and terms.fileBookName !=''">
                    and file_book_name = #{terms.fileBookName}
                </if>
                <if test="terms.fileBookNo != null and terms.fileBookNo !=''">
                    and file_book_no = #{terms.fileBookNo}
                </if>
                <if test="terms.fileNo != null and terms.fileNo !=''">
                    and file_no = #{terms.fileNo}
                </if>
                <if test="terms.fileLimitYear != null and terms.fileLimitYear !=''">
                    and file_limit_year = #{terms.fileLimitYear}
                </if>
                <if test="terms.fileAddr != null and terms.fileAddr !=''">
                    and file_addr = #{terms.fileAddr}
                </if>
                <if test="terms.fileContent != null and terms.fileContent !=''">
                    and file_content = #{terms.fileContent}
                </if>
                <if test="terms.fulfilSitu != null and terms.fulfilSitu !=''">
                    and fulfil_situ = #{terms.fulfilSitu}
                </if>
                <if test="terms.fulfilSituName != null and terms.fulfilSituName !=''">
                    and fulfil_situ_name = #{terms.fulfilSituName}
                </if>
                <if test="terms.visitUpStatus != null and terms.visitUpStatus !=''">
                    and visit_up_status = #{terms.visitUpStatus}
                </if>
                <if test="terms.visitUpContent != null and terms.visitUpContent !=''">
                    and visit_up_content = #{terms.visitUpContent}
                </if>
                <if test="terms.partyJoy != null and terms.partyJoy !=''">
                    and party_joy = #{terms.partyJoy}
                </if>
                <if test="terms.custId != null and terms.custId !=''">
                    and cust_id = #{terms.custId}
                </if>
                <if test="terms.createTime != null and terms.createTime !=''">
                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
                </if>
                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
                </if>
                <if test="terms.updateTime != null and terms.updateTime !=''">
                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
                </if>
                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
                <if test="terms.belongUnitId != null and terms.belongUnitId !=''">
                    and belong_unit_id = #{terms.belongUnitId}
                </if>
                <if test="terms.belongUnitName != null and terms.belongUnitName !=''">
                    and belong_unit_name = #{terms.belongUnitName}
                </if>
            </where>
        </if>
    </sql>
    <!-- 更新对象 -->
    <update id="updateCasebookInfoUnfold">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id = #{entity.id}
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateCasebookInfoUnfoldTerms">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <include refid="where-part"/>
    </update>
    <!--  根据编号物理删除  -->
    <delete id="deleteCasebookInfoUnfold">
        delete from
        <include refid="table-name" />
        where id = #{id}
    </delete>
    <!--  根据条件查询  -->
    <select id="listTerms" resultMap="dataResult">
        select
        <include refid="column-part"/>
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件统计  -->
    <select id="countTerms" resultType="java.lang.Long">
        select
        COUNT(1)
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件分页查询  -->
    <select id="pageTerms" resultMap="dataResult">
        SELECT
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        <include refid="where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/dao/mapper/xml/CasebookPersonMapper.xml
New file
@@ -0,0 +1,436 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @title: dyh_casebook_person
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-10-26 12:31:22
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.casebook.dao.mapper.CasebookPersonMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.casebook.domain.po.CasebookPerson">
            <result property="id" column="id"/>
            <result property="caseId" column="case_id"/>
            <result property="partyUserId" column="party_user_id"/>
            <result property="perType" column="per_type"/>
            <result property="perTypeName" column="per_type_name"/>
            <result property="perClass" column="per_class"/>
            <result property="perClassName" column="per_class_name"/>
            <result property="trueName" column="true_name"/>
            <result property="mobile" column="mobile"/>
            <result property="orgaCode" column="orga_code"/>
            <result property="deputy" column="deputy"/>
            <result property="orgaType" column="orga_type"/>
            <result property="orgaTypeName" column="orga_type_name"/>
            <result property="certiType" column="certi_type"/>
            <result property="certiTypeName" column="certi_type_name"/>
            <result property="certiNo" column="certi_no"/>
            <result property="prov" column="prov"/>
            <result property="provName" column="prov_name"/>
            <result property="city" column="city"/>
            <result property="cityName" column="city_name"/>
            <result property="area" column="area"/>
            <result property="areaName" column="area_name"/>
            <result property="road" column="road"/>
            <result property="roadName" column="road_name"/>
            <result property="village" column="village"/>
            <result property="villageName" column="village_name"/>
            <result property="addr" column="addr"/>
            <result property="placeProv" column="place_prov"/>
            <result property="placeProvName" column="place_prov_name"/>
            <result property="placeCity" column="place_city"/>
            <result property="placeCityName" column="place_city_name"/>
            <result property="placeArea" column="place_area"/>
            <result property="placeAreaName" column="place_area_name"/>
            <result property="placeRoad" column="place_road"/>
            <result property="placeRoadName" column="place_road_name"/>
            <result property="placeVillage" column="place_village"/>
            <result property="placeVillageName" column="place_village_name"/>
            <result property="placeAddr" column="place_addr"/>
            <result property="workUnit" column="work_unit"/>
            <result property="nation" column="nation"/>
            <result property="nationName" column="nation_name"/>
            <result property="sex" column="sex"/>
            <result property="sexName" column="sex_name"/>
            <result property="extreme" column="extreme"/>
            <result property="avatar" column="avatar"/>
            <result property="job" column="job"/>
            <result property="jobName" column="job_name"/>
            <result property="birthday" column="birthday"/>
            <result property="age" column="age"/>
            <result property="agentStatus" column="agent_status"/>
            <result property="custId" column="cust_id"/>
            <result property="deleteStatus" column="delete_status"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
            <result property="companyId" column="company_id"/>
            <result property="workUnitId" column="work_unit_id"/>
    </resultMap>
    <!-- 表 -->
    <sql id='table-name'>dyh_casebook_person</sql>
    <!-- 字段 -->
    <sql id="column-part">
        id,
        case_id,
        party_user_id,
        per_type,
        per_type_name,
        per_class,
        per_class_name,
        true_name,
        mobile,
        orga_code,
        deputy,
        orga_type,
        orga_type_name,
        certi_type,
        certi_type_name,
        certi_no,
        prov,
        prov_name,
        city,
        city_name,
        area,
        area_name,
        road,
        road_name,
        village,
        village_name,
        addr,
        place_prov,
        place_prov_name,
        place_city,
        place_city_name,
        place_area,
        place_area_name,
        place_road,
        place_road_name,
        place_village,
        place_village_name,
        place_addr,
        work_unit,
        nation,
        nation_name,
        sex,
        sex_name,
        extreme,
        avatar,
        job,
        job_name,
        birthday,
        age,
        agent_status,
        cust_id,
        delete_status,
        create_time,
        update_time,
        company_id,
        work_unit_id
    </sql>
    <!-- 更新实体字段 -->
    <sql id="set-part">
            <if test="entity.caseId != null">case_id = #{entity.caseId},</if>
            <if test="entity.partyUserId != null">party_user_id = #{entity.partyUserId},</if>
            <if test="entity.perType != null">per_type = #{entity.perType},</if>
            <if test="entity.perTypeName != null">per_type_name = #{entity.perTypeName},</if>
            <if test="entity.perClass != null">per_class = #{entity.perClass},</if>
            <if test="entity.perClassName != null">per_class_name = #{entity.perClassName},</if>
            <if test="entity.trueName != null">true_name = #{entity.trueName},</if>
            <if test="entity.mobile != null">mobile = #{entity.mobile},</if>
            <if test="entity.orgaCode != null">orga_code = #{entity.orgaCode},</if>
            <if test="entity.deputy != null">deputy = #{entity.deputy},</if>
            <if test="entity.orgaType != null">orga_type = #{entity.orgaType},</if>
            <if test="entity.orgaTypeName != null">orga_type_name = #{entity.orgaTypeName},</if>
            <if test="entity.certiType != null">certi_type = #{entity.certiType},</if>
            <if test="entity.certiTypeName != null">certi_type_name = #{entity.certiTypeName},</if>
            <if test="entity.certiNo != null">certi_no = #{entity.certiNo},</if>
            <if test="entity.prov != null">prov = #{entity.prov},</if>
            <if test="entity.provName != null">prov_name = #{entity.provName},</if>
            <if test="entity.city != null">city = #{entity.city},</if>
            <if test="entity.cityName != null">city_name = #{entity.cityName},</if>
            <if test="entity.area != null">area = #{entity.area},</if>
            <if test="entity.areaName != null">area_name = #{entity.areaName},</if>
            <if test="entity.road != null">road = #{entity.road},</if>
            <if test="entity.roadName != null">road_name = #{entity.roadName},</if>
            <if test="entity.village != null">village = #{entity.village},</if>
            <if test="entity.villageName != null">village_name = #{entity.villageName},</if>
            <if test="entity.addr != null">addr = #{entity.addr},</if>
            <if test="entity.placeProv != null">place_prov = #{entity.placeProv},</if>
            <if test="entity.placeProvName != null">place_prov_name = #{entity.placeProvName},</if>
            <if test="entity.placeCity != null">place_city = #{entity.placeCity},</if>
            <if test="entity.placeCityName != null">place_city_name = #{entity.placeCityName},</if>
            <if test="entity.placeArea != null">place_area = #{entity.placeArea},</if>
            <if test="entity.placeAreaName != null">place_area_name = #{entity.placeAreaName},</if>
            <if test="entity.placeRoad != null">place_road = #{entity.placeRoad},</if>
            <if test="entity.placeRoadName != null">place_road_name = #{entity.placeRoadName},</if>
            <if test="entity.placeVillage != null">place_village = #{entity.placeVillage},</if>
            <if test="entity.placeVillageName != null">place_village_name = #{entity.placeVillageName},</if>
            <if test="entity.placeAddr != null">place_addr = #{entity.placeAddr},</if>
            <if test="entity.workUnit != null">work_unit = #{entity.workUnit},</if>
            <if test="entity.nation != null">nation = #{entity.nation},</if>
            <if test="entity.nationName != null">nation_name = #{entity.nationName},</if>
            <if test="entity.sex != null">sex = #{entity.sex},</if>
            <if test="entity.sexName != null">sex_name = #{entity.sexName},</if>
            <if test="entity.extreme != null">extreme = #{entity.extreme},</if>
            <if test="entity.avatar != null">avatar = #{entity.avatar},</if>
            <if test="entity.job != null">job = #{entity.job},</if>
            <if test="entity.jobName != null">job_name = #{entity.jobName},</if>
            <if test="entity.birthday != null">birthday = #{entity.birthday},</if>
            <if test="entity.age != null">age = #{entity.age},</if>
            <if test="entity.agentStatus != null">agent_status = #{entity.agentStatus},</if>
            <if test="entity.custId != null">cust_id = #{entity.custId},</if>
            <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
            <if test="entity.updateTime != null">update_time = #{entity.updateTime},</if>
            <if test="entity.companyId != null">company_id = #{entity.companyId},</if>
            <if test="entity.workUnitId != null">work_unit_id = #{entity.workUnitId}</if>
    </sql>
    <!-- 条件 -->
    <sql id="where-part">
        <if test="terms != null">
            <where>
                <if test="terms.id != null and terms.id !=''">
                    and id = #{terms.id}
                </if>
                <if test="terms.caseId != null and terms.caseId !=''">
                    and case_id = #{terms.caseId}
                </if>
                <if test="terms.partyUserId != null and terms.partyUserId !=''">
                    and party_user_id = #{terms.partyUserId}
                </if>
                <if test="terms.perType != null and terms.perType !=''">
                    and per_type = #{terms.perType}
                </if>
                <if test="terms.perTypeName != null and terms.perTypeName !=''">
                    and per_type_name = #{terms.perTypeName}
                </if>
                <if test="terms.perClass != null and terms.perClass !=''">
                    and per_class = #{terms.perClass}
                </if>
                <if test="terms.perClassName != null and terms.perClassName !=''">
                    and per_class_name = #{terms.perClassName}
                </if>
                <if test="terms.trueName != null and terms.trueName !=''">
                    and true_name = #{terms.trueName}
                </if>
                <if test="terms.mobile != null and terms.mobile !=''">
                    and mobile = #{terms.mobile}
                </if>
                <if test="terms.orgaCode != null and terms.orgaCode !=''">
                    and orga_code = #{terms.orgaCode}
                </if>
                <if test="terms.deputy != null and terms.deputy !=''">
                    and deputy = #{terms.deputy}
                </if>
                <if test="terms.orgaType != null and terms.orgaType !=''">
                    and orga_type = #{terms.orgaType}
                </if>
                <if test="terms.orgaTypeName != null and terms.orgaTypeName !=''">
                    and orga_type_name = #{terms.orgaTypeName}
                </if>
                <if test="terms.certiType != null and terms.certiType !=''">
                    and certi_type = #{terms.certiType}
                </if>
                <if test="terms.certiTypeName != null and terms.certiTypeName !=''">
                    and certi_type_name = #{terms.certiTypeName}
                </if>
                <if test="terms.certiNo != null and terms.certiNo !=''">
                    and certi_no = #{terms.certiNo}
                </if>
                <if test="terms.prov != null and terms.prov !=''">
                    and prov = #{terms.prov}
                </if>
                <if test="terms.provName != null and terms.provName !=''">
                    and prov_name = #{terms.provName}
                </if>
                <if test="terms.city != null and terms.city !=''">
                    and city = #{terms.city}
                </if>
                <if test="terms.cityName != null and terms.cityName !=''">
                    and city_name = #{terms.cityName}
                </if>
                <if test="terms.area != null and terms.area !=''">
                    and area = #{terms.area}
                </if>
                <if test="terms.areaName != null and terms.areaName !=''">
                    and area_name = #{terms.areaName}
                </if>
                <if test="terms.road != null and terms.road !=''">
                    and road = #{terms.road}
                </if>
                <if test="terms.roadName != null and terms.roadName !=''">
                    and road_name = #{terms.roadName}
                </if>
                <if test="terms.village != null and terms.village !=''">
                    and village = #{terms.village}
                </if>
                <if test="terms.villageName != null and terms.villageName !=''">
                    and village_name = #{terms.villageName}
                </if>
                <if test="terms.addr != null and terms.addr !=''">
                    and addr = #{terms.addr}
                </if>
                <if test="terms.placeProv != null and terms.placeProv !=''">
                    and place_prov = #{terms.placeProv}
                </if>
                <if test="terms.placeProvName != null and terms.placeProvName !=''">
                    and place_prov_name = #{terms.placeProvName}
                </if>
                <if test="terms.placeCity != null and terms.placeCity !=''">
                    and place_city = #{terms.placeCity}
                </if>
                <if test="terms.placeCityName != null and terms.placeCityName !=''">
                    and place_city_name = #{terms.placeCityName}
                </if>
                <if test="terms.placeArea != null and terms.placeArea !=''">
                    and place_area = #{terms.placeArea}
                </if>
                <if test="terms.placeAreaName != null and terms.placeAreaName !=''">
                    and place_area_name = #{terms.placeAreaName}
                </if>
                <if test="terms.placeRoad != null and terms.placeRoad !=''">
                    and place_road = #{terms.placeRoad}
                </if>
                <if test="terms.placeRoadName != null and terms.placeRoadName !=''">
                    and place_road_name = #{terms.placeRoadName}
                </if>
                <if test="terms.placeVillage != null and terms.placeVillage !=''">
                    and place_village = #{terms.placeVillage}
                </if>
                <if test="terms.placeVillageName != null and terms.placeVillageName !=''">
                    and place_village_name = #{terms.placeVillageName}
                </if>
                <if test="terms.placeAddr != null and terms.placeAddr !=''">
                    and place_addr = #{terms.placeAddr}
                </if>
                <if test="terms.workUnit != null and terms.workUnit !=''">
                    and work_unit = #{terms.workUnit}
                </if>
                <if test="terms.nation != null and terms.nation !=''">
                    and nation = #{terms.nation}
                </if>
                <if test="terms.nationName != null and terms.nationName !=''">
                    and nation_name = #{terms.nationName}
                </if>
                <if test="terms.sex != null and terms.sex !=''">
                    and sex = #{terms.sex}
                </if>
                <if test="terms.sexName != null and terms.sexName !=''">
                    and sex_name = #{terms.sexName}
                </if>
                <if test="terms.extreme != null and terms.extreme !=''">
                    and extreme = #{terms.extreme}
                </if>
                <if test="terms.avatar != null and terms.avatar !=''">
                    and avatar = #{terms.avatar}
                </if>
                <if test="terms.job != null and terms.job !=''">
                    and job = #{terms.job}
                </if>
                <if test="terms.jobName != null and terms.jobName !=''">
                    and job_name = #{terms.jobName}
                </if>
                <if test="terms.birthday != null and terms.birthday !=''">
                    and birthday = #{terms.birthday}
                </if>
                <if test="terms.age != null and terms.age !=''">
                    and age = #{terms.age}
                </if>
                <if test="terms.agentStatus != null and terms.agentStatus !=''">
                    and agent_status = #{terms.agentStatus}
                </if>
                <if test="terms.custId != null and terms.custId !=''">
                    and cust_id = #{terms.custId}
                </if>
                <if test="terms.deleteStatus = null and terms.deleteStatus =''">
                    and delete_status = 0
                </if>
                <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
                    and delete_status = #{terms.deleteStatus}
                </if>
                <if test="terms.createTime != null and terms.createTime !=''">
                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
                </if>
                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
                </if>
                <if test="terms.updateTime != null and terms.updateTime !=''">
                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
                </if>
                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
                <if test="terms.companyId != null and terms.companyId !=''">
                    and company_id = #{terms.companyId}
                </if>
                <if test="terms.workUnitId != null and terms.workUnitId !=''">
                    and work_unit_id = #{terms.workUnitId}
                </if>
            </where>
        </if>
    </sql>
    <!-- 更新对象 -->
    <update id="updateCasebookPerson">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id = #{entity.id}
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateCasebookPersonTerms">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <include refid="where-part"/>
    </update>
    <!--  根据编号物理删除  -->
    <delete id="deleteCasebookPerson">
        delete from
        <include refid="table-name" />
        where id = #{id}
    </delete>
    <!--  根据条件查询  -->
    <select id="listTerms" resultMap="dataResult">
        select
        <include refid="column-part"/>
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件统计  -->
    <select id="countTerms" resultType="java.lang.Long">
        select
        COUNT(1)
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件分页查询  -->
    <select id="pageTerms" resultMap="dataResult">
        SELECT
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        <include refid="where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookAgentBO.java
New file
@@ -0,0 +1,17 @@
package cn.huge.module.casebook.domain.bo;
import cn.huge.module.casebook.domain.po.CasebookAgent;
/**
 * @title: dyh_casebook_agent业务扩展类
 * @description: dyh_casebook_agent业务扩展类
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:21
 * @version: 1.0.0
 * @see cn.huge.module.casebook.domain.po.CasebookAgent
 */
public class CasebookAgentBO extends CasebookAgent {
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookAssistInfoBO.java
New file
@@ -0,0 +1,17 @@
package cn.huge.module.casebook.domain.bo;
import cn.huge.module.casebook.domain.po.CasebookAssistInfo;
/**
 * @title: dyh_casebook_assist_info业务扩展类
 * @description: dyh_casebook_assist_info业务扩展类
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version: 1.0.0
 * @see cn.huge.module.casebook.domain.po.CasebookAssistInfo
 */
public class CasebookAssistInfoBO extends CasebookAssistInfo {
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookFileBO.java
New file
@@ -0,0 +1,17 @@
package cn.huge.module.casebook.domain.bo;
import cn.huge.module.casebook.domain.po.CasebookFile;
/**
 * @title: 一本账导入文件记录表业务扩展类
 * @description: 一本账导入文件记录表业务扩展类
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-27 16:16:40
 * @version: 1.0.0
 * @see cn.huge.module.casebook.domain.po.CasebookFile
 */
public class CasebookFileBO extends CasebookFile {
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookInfoBO.java
New file
@@ -0,0 +1,17 @@
package cn.huge.module.casebook.domain.bo;
import cn.huge.module.casebook.domain.po.CasebookInfo;
/**
 * @title: dyh_casebook_info业务扩展类
 * @description: dyh_casebook_info业务扩展类
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version: 1.0.0
 * @see cn.huge.module.casebook.domain.po.CasebookInfo
 */
public class CasebookInfoBO extends CasebookInfo {
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookInfoUnfoldBO.java
New file
@@ -0,0 +1,17 @@
package cn.huge.module.casebook.domain.bo;
import cn.huge.module.casebook.domain.po.CasebookInfoUnfold;
/**
 * @title: dyh_casebook_info_unfold业务扩展类
 * @description: dyh_casebook_info_unfold业务扩展类
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version: 1.0.0
 * @see cn.huge.module.casebook.domain.po.CasebookInfoUnfold
 */
public class CasebookInfoUnfoldBO extends CasebookInfoUnfold {
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/bo/CasebookPersonBO.java
New file
@@ -0,0 +1,17 @@
package cn.huge.module.casebook.domain.bo;
import cn.huge.module.casebook.domain.po.CasebookPerson;
/**
 * @title: dyh_casebook_person业务扩展类
 * @description: dyh_casebook_person业务扩展类
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version: 1.0.0
 * @see cn.huge.module.casebook.domain.po.CasebookPerson
 */
public class CasebookPersonBO extends CasebookPerson {
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/dto/CaseBookPageDTO.java
New file
@@ -0,0 +1,81 @@
package cn.huge.module.casebook.domain.dto;
import cn.huge.module.cases.domain.po.CaseInfo;
import lombok.Data;
import java.util.Date;
/**
 * @title: 受理任务传输对象
 * @description: 受理任务传输对象
 * @company: hugeinfo
 * @author: liyj
 * @time: 2022-03-11 11:43:25
 * @version: 1.0.0
 * @see CaseInfo
 */
@Data
public class CaseBookPageDTO {
    /**
     * 案件编号
     */
    private String id;
    /**
     * 纠纷发生时间
     */
    private Date occurTime;
    /**
     * 纠纷发生地
     */
    private String addr;
    /**
     * 申请方
     */
    private String plaintiffs;
    /**
     * 被申请方
     */
    private String defendants;
    /**
     * 纠纷类型
     */
    private String caseType;
    /**
     * 调解员
     */
    private String mediator;
    /**
     * 调解组织
     */
    private String mediateUnitName;
    /**
     * 调解员
     */
    private String assistUserName;
    /**
     * 化解结果编码
     */
    private String mediResult;
    /**
     * 化解结果名称
     */
    private String mediResultName;
    /**
     * 转入时间
     */
    private Date createTime;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookAgent.java
New file
@@ -0,0 +1,354 @@
package cn.huge.module.casebook.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: dyh_casebook_agent数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:21
 * @version 1.0.0
 */
@TableName(value = "dyh_casebook_agent")
@Data
public class CasebookAgent {
    /**
    * id
    */
    @TableId(value = "id")
    private String id;
    /**
    * case_id
    */
    @TableField(value = "case_id")
    private String caseId;
    /**
    * party_user_id
    */
    @TableField(value = "party_user_id")
    private String partyUserId;
    /**
    * per_type
    */
    @TableField(value = "per_type")
    private String perType;
    /**
    * per_type_name
    */
    @TableField(value = "per_type_name")
    private String perTypeName;
    /**
    * per_class
    */
    @TableField(value = "per_class")
    private String perClass;
    /**
    * per_class_name
    */
    @TableField(value = "per_class_name")
    private String perClassName;
    /**
    * true_name
    */
    @TableField(value = "true_name")
    private String trueName;
    /**
    * mobile
    */
    @TableField(value = "mobile")
    private String mobile;
    /**
    * certi_type
    */
    @TableField(value = "certi_type")
    private String certiType;
    /**
    * certi_type_name
    */
    @TableField(value = "certi_type_name")
    private String certiTypeName;
    /**
    * certi_no
    */
    @TableField(value = "certi_no")
    private String certiNo;
    /**
    * prov
    */
    @TableField(value = "prov")
    private String prov;
    /**
    * prov_name
    */
    @TableField(value = "prov_name")
    private String provName;
    /**
    * city
    */
    @TableField(value = "city")
    private String city;
    /**
    * city_name
    */
    @TableField(value = "city_name")
    private String cityName;
    /**
    * area
    */
    @TableField(value = "area")
    private String area;
    /**
    * area_name
    */
    @TableField(value = "area_name")
    private String areaName;
    /**
    * road
    */
    @TableField(value = "road")
    private String road;
    /**
    * road_name
    */
    @TableField(value = "road_name")
    private String roadName;
    /**
    * village
    */
    @TableField(value = "village")
    private String village;
    /**
    * village_name
    */
    @TableField(value = "village_name")
    private String villageName;
    /**
    * addr
    */
    @TableField(value = "addr")
    private String addr;
    /**
    * place_prov
    */
    @TableField(value = "place_prov")
    private String placeProv;
    /**
    * place_prov_name
    */
    @TableField(value = "place_prov_name")
    private String placeProvName;
    /**
    * place_city
    */
    @TableField(value = "place_city")
    private String placeCity;
    /**
    * place_city_name
    */
    @TableField(value = "place_city_name")
    private String placeCityName;
    /**
    * place_area
    */
    @TableField(value = "place_area")
    private String placeArea;
    /**
    * place_area_name
    */
    @TableField(value = "place_area_name")
    private String placeAreaName;
    /**
    * place_road
    */
    @TableField(value = "place_road")
    private String placeRoad;
    /**
    * place_road_name
    */
    @TableField(value = "place_road_name")
    private String placeRoadName;
    /**
    * place_village
    */
    @TableField(value = "place_village")
    private String placeVillage;
    /**
    * place_village_name
    */
    @TableField(value = "place_village_name")
    private String placeVillageName;
    /**
    * place_addr
    */
    @TableField(value = "place_addr")
    private String placeAddr;
    /**
    * work_unit
    */
    @TableField(value = "work_unit")
    private String workUnit;
    /**
    * nation
    */
    @TableField(value = "nation")
    private String nation;
    /**
    * nation_name
    */
    @TableField(value = "nation_name")
    private String nationName;
    /**
    * sex
    */
    @TableField(value = "sex")
    private String sex;
    /**
    * sex_name
    */
    @TableField(value = "sex_name")
    private String sexName;
    /**
    * extreme
    */
    @TableField(value = "extreme")
    private Integer extreme;
    /**
    * agent_relate
    */
    @TableField(value = "agent_relate")
    private String agentRelate;
    /**
    * agent_relate_name
    */
    @TableField(value = "agent_relate_name")
    private String agentRelateName;
    /**
    * agent_type
    */
    @TableField(value = "agent_type")
    private String agentType;
    /**
    * agent_type_name
    */
    @TableField(value = "agent_type_name")
    private String agentTypeName;
    /**
    * person_id
    */
    @TableField(value = "person_id")
    private String personId;
    /**
    * avatar
    */
    @TableField(value = "avatar")
    private String avatar;
    /**
    * job
    */
    @TableField(value = "job")
    private String job;
    /**
    * job_name
    */
    @TableField(value = "job_name")
    private String jobName;
    /**
    * birthday
    */
    @TableField(value = "birthday")
    private String birthday;
    /**
    * age
    */
    @TableField(value = "age")
    private Integer age;
    /**
    * agent_status
    */
    @TableField(value = "agent_status")
    private Integer agentStatus;
    /**
    * cust_id
    */
    @TableField(value = "cust_id")
    private String custId;
    /**
    * delete_status
    */
    @TableLogic
    @TableField(value = "delete_status")
    private Integer deleteStatus;
    /**
    * create_time
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * update_time
    */
    @TableField(value = "update_time")
    private Date updateTime;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookAssistInfo.java
New file
@@ -0,0 +1,107 @@
package cn.huge.module.casebook.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: dyh_casebook_assist_info数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version 1.0.0
 */
@TableName(value = "dyh_casebook_assist_info")
@Data
public class CasebookAssistInfo {
    /**
    * id
    */
    @TableId(value = "id")
    private String id;
    /**
    * case_id
    */
    @TableField(value = "case_id")
    private String caseId;
    /**
    * process_instance_id
    */
    @TableField(value = "process_instance_id")
    private String processInstanceId;
    /**
    * case_task_id
    */
    @TableField(value = "case_task_id")
    private String caseTaskId;
    /**
    * apply_id
    */
    @TableField(value = "apply_id")
    private String applyId;
    /**
    * assist_unit_id
    */
    @TableField(value = "assist_unit_id")
    private String assistUnitId;
    /**
    * assist_unit_name
    */
    @TableField(value = "assist_unit_name")
    private String assistUnitName;
    /**
    * accept_time
    */
    @TableField(value = "accept_time")
    private Date acceptTime;
    /**
    * assist_user_id
    */
    @TableField(value = "assist_user_id")
    private String assistUserId;
    /**
    * assist_user_name
    */
    @TableField(value = "assist_user_name")
    private String assistUserName;
    /**
    * assist_status
    */
    @TableField(value = "assist_status")
    private Integer assistStatus;
    /**
    * cust_id
    */
    @TableField(value = "cust_id")
    private String custId;
    /**
    * create_time
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * update_time
    */
    @TableField(value = "update_time")
    private Date updateTime;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookFile.java
New file
@@ -0,0 +1,71 @@
package cn.huge.module.casebook.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: 一本账导入文件记录表数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-27 16:16:40
 * @version 1.0.0
 */
@TableName(value = "dyh_casebook_file")
@Data
public class CasebookFile {
    /**
    * 记录编号
    */
    @TableId(value = "id")
    private String id;
    /**
    * 导入文件名
    */
    @TableField(value = "file_name")
    private String fileName;
    /**
    * 导入文件大小
    */
    @TableField(value = "file_size")
    private String fileSize;
    /**
    * 导入人编号
    */
    @TableField(value = "user_id")
    private String userId;
    /**
    * 导入人名称
    */
    @TableField(value = "user_name")
    private String userName;
    /**
    * 导入时间
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * 更新时间
    */
    @TableField(value = "update_time")
    private Date updateTime;
    /**
    * 顾客编号
    */
    @TableField(value = "cust_id")
    private String custId;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookInfo.java
New file
@@ -0,0 +1,450 @@
package cn.huge.module.casebook.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: dyh_casebook_info数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version 1.0.0
 */
@TableName(value = "dyh_casebook_info")
@Data
public class CasebookInfo {
    /**
    * id
    */
    @TableId(value = "id")
    private String id;
    /**
    * case_title
    */
    @TableField(value = "case_title")
    private String caseTitle;
    /**
    * case_ref
    */
    @TableField(value = "case_ref")
    private String caseRef;
    /**
    * case_level
    */
    @TableField(value = "case_level")
    private Integer caseLevel;
    /**
    * visit_time
    */
    @TableField(value = "visit_time")
    private Date visitTime;
    /**
    * visit_people_num
    */
    @TableField(value = "visit_people_num")
    private Integer visitPeopleNum;
    /**
    * medi_type
    */
    @TableField(value = "medi_type")
    private String mediType;
    /**
    * medi_type_name
    */
    @TableField(value = "medi_type_name")
    private String mediTypeName;
    /**
    * case_type_first
    */
    @TableField(value = "case_type_first")
    private String caseTypeFirst;
    /**
    * case_type_first_name
    */
    @TableField(value = "case_type_first_name")
    private String caseTypeFirstName;
    /**
    * case_type
    */
    @TableField(value = "case_type")
    private String caseType;
    /**
    * case_type_name
    */
    @TableField(value = "case_type_name")
    private String caseTypeName;
    /**
    * occur_time
    */
    @TableField(value = "occur_time")
    private Date occurTime;
    /**
    * addr
    */
    @TableField(value = "addr")
    private String addr;
    /**
    * lng
    */
    @TableField(value = "lng")
    private String lng;
    /**
    * lat
    */
    @TableField(value = "lat")
    private String lat;
    /**
    * wg_addr
    */
    @TableField(value = "wg_addr")
    private String wgAddr;
    /**
    * wg_lng
    */
    @TableField(value = "wg_lng")
    private String wgLng;
    /**
    * wg_lat
    */
    @TableField(value = "wg_lat")
    private String wgLat;
    /**
    * que_prov
    */
    @TableField(value = "que_prov")
    private String queProv;
    /**
    * que_prov_name
    */
    @TableField(value = "que_prov_name")
    private String queProvName;
    /**
    * que_city
    */
    @TableField(value = "que_city")
    private String queCity;
    /**
    * que_city_name
    */
    @TableField(value = "que_city_name")
    private String queCityName;
    /**
    * que_area
    */
    @TableField(value = "que_area")
    private String queArea;
    /**
    * que_area_name
    */
    @TableField(value = "que_area_name")
    private String queAreaName;
    /**
    * que_road
    */
    @TableField(value = "que_road")
    private String queRoad;
    /**
    * que_road_name
    */
    @TableField(value = "que_road_name")
    private String queRoadName;
    /**
    * que_village
    */
    @TableField(value = "que_village")
    private String queVillage;
    /**
    * que_village_name
    */
    @TableField(value = "que_village_name")
    private String queVillageName;
    /**
    * people_num
    */
    @TableField(value = "people_num")
    private Integer peopleNum;
    /**
    * amount
    */
    @TableField(value = "amount")
    private Double amount;
    /**
    * crowd
    */
    @TableField(value = "crowd")
    private String crowd;
    /**
    * crowd_name
    */
    @TableField(value = "crowd_name")
    private String crowdName;
    /**
    * canal
    */
    @TableField(value = "canal")
    private String canal;
    /**
    * canal_name
    */
    @TableField(value = "canal_name")
    private String canalName;
    /**
    * visit_way
    */
    @TableField(value = "visit_way")
    private String visitWay;
    /**
    * visit_way_name
    */
    @TableField(value = "visit_way_name")
    private String visitWayName;
    /**
    * zxsl_status
    */
    @TableField(value = "zxsl_status")
    private Integer zxslStatus;
    /**
    * case_des
    */
    @TableField(value = "case_des")
    private String caseDes;
    /**
    * case_claim
    */
    @TableField(value = "case_claim")
    private String caseClaim;
    /**
    * major_status
    */
    @TableField(value = "major_status")
    private Integer majorStatus;
    /**
    * source
    */
    @TableField(value = "source")
    private String source;
    /**
    * source_name
    */
    @TableField(value = "source_name")
    private String sourceName;
    /**
    * case_no
    */
    @TableField(value = "case_no")
    private String caseNo;
    /**
    * mediate_no
    */
    @TableField(value = "mediate_no")
    private String mediateNo;
    /**
    * mediate_book_no
    */
    @TableField(value = "mediate_book_no")
    private String mediateBookNo;
    /**
    * civil_no
    */
    @TableField(value = "civil_no")
    private String civilNo;
    /**
    * plaintiffs
    */
    @TableField(value = "plaintiffs")
    private String plaintiffs;
    /**
    * pagents
    */
    @TableField(value = "pagents")
    private String pagents;
    /**
    * defendants
    */
    @TableField(value = "defendants")
    private String defendants;
    /**
    * dagents
    */
    @TableField(value = "dagents")
    private String dagents;
    /**
    * party_show
    */
    @TableField(value = "party_show")
    private Integer partyShow;
    /**
    * want_unit_id
    */
    @TableField(value = "want_unit_id")
    private String wantUnitId;
    /**
    * want_unit_name
    */
    @TableField(value = "want_unit_name")
    private String wantUnitName;
    /**
    * want_user_id
    */
    @TableField(value = "want_user_id")
    private String wantUserId;
    /**
    * want_user_name
    */
    @TableField(value = "want_user_name")
    private String wantUserName;
    /**
    * input_unit_id
    */
    @TableField(value = "input_unit_id")
    private String inputUnitId;
    /**
    * input_unit_name
    */
    @TableField(value = "input_unit_name")
    private String inputUnitName;
    /**
    * input_user_id
    */
    @TableField(value = "input_user_id")
    private String inputUserId;
    /**
    * input_user_name
    */
    @TableField(value = "input_user_name")
    private String inputUserName;
    /**
    * input_way
    */
    @TableField(value = "input_way")
    private Integer inputWay;
    /**
    * status
    */
    @TableField(value = "status")
    private Integer status;
    /**
    * status_name
    */
    @TableField(value = "status_name")
    private String statusName;
    /**
    * process
    */
    @TableField(value = "process")
    private Integer process;
    /**
    * process_name
    */
    @TableField(value = "process_name")
    private String processName;
    /**
    * info_process
    */
    @TableField(value = "info_process")
    private Integer infoProcess;
    /**
    * info_process_name
    */
    @TableField(value = "info_process_name")
    private String infoProcessName;
    /**
    * delete_status
    */
    @TableLogic
    @TableField(value = "delete_status")
    private Integer deleteStatus;
    /**
    * cust_id
    */
    @TableField(value = "cust_id")
    private String custId;
    /**
    * create_time
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * update_time
    */
    @TableField(value = "update_time")
    private Date updateTime;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookInfoUnfold.java
New file
@@ -0,0 +1,317 @@
package cn.huge.module.casebook.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: dyh_casebook_info_unfold数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version 1.0.0
 */
@TableName(value = "dyh_casebook_info_unfold")
@Data
public class CasebookInfoUnfold {
    /**
    * id
    */
    @TableId(value = "id")
    private String id;
    /**
    * accept_time
    */
    @TableField(value = "accept_time")
    private Date acceptTime;
    /**
    * mediate_unit_id
    */
    @TableField(value = "mediate_unit_id")
    private String mediateUnitId;
    /**
    * mediate_unit_name
    */
    @TableField(value = "mediate_unit_name")
    private String mediateUnitName;
    /**
    * mediate_dept_id
    */
    @TableField(value = "mediate_dept_id")
    private String mediateDeptId;
    /**
    * mediate_dept_name
    */
    @TableField(value = "mediate_dept_name")
    private String mediateDeptName;
    /**
    * mediator_id
    */
    @TableField(value = "mediator_id")
    private String mediatorId;
    /**
    * mediator
    */
    @TableField(value = "mediator")
    private String mediator;
    /**
    * mediator_mobile
    */
    @TableField(value = "mediator_mobile")
    private String mediatorMobile;
    /**
    * assist_unit_id
    */
    @TableField(value = "assist_unit_id")
    private String assistUnitId;
    /**
    * assist_unit_name
    */
    @TableField(value = "assist_unit_name")
    private String assistUnitName;
    /**
    * medi_start_time
    */
    @TableField(value = "medi_start_time")
    private Date mediStartTime;
    /**
    * medi_end_time
    */
    @TableField(value = "medi_end_time")
    private Date mediEndTime;
    /**
    * medi_result
    */
    @TableField(value = "medi_result")
    private String mediResult;
    /**
    * medi_result_name
    */
    @TableField(value = "medi_result_name")
    private String mediResultName;
    /**
    * agree_type
    */
    @TableField(value = "agree_type")
    private String agreeType;
    /**
    * agree_type_name
    */
    @TableField(value = "agree_type_name")
    private String agreeTypeName;
    /**
    * agree_content
    */
    @TableField(value = "agree_content")
    private String agreeContent;
    /**
    * windup_content
    */
    @TableField(value = "windup_content")
    private String windupContent;
    /**
    * medi_false
    */
    @TableField(value = "medi_false")
    private String mediFalse;
    /**
    * medi_false_name
    */
    @TableField(value = "medi_false_name")
    private String mediFalseName;
    /**
    * civil_status
    */
    @TableField(value = "civil_status")
    private Integer civilStatus;
    /**
    * court_id
    */
    @TableField(value = "court_id")
    private String courtId;
    /**
    * court_name
    */
    @TableField(value = "court_name")
    private String courtName;
    /**
    * close_time
    */
    @TableField(value = "close_time")
    private Date closeTime;
    /**
    * judic_apply
    */
    @TableField(value = "judic_apply")
    private Integer judicApply;
    /**
    * judic_result
    */
    @TableField(value = "judic_result")
    private String judicResult;
    /**
    * judic_result_name
    */
    @TableField(value = "judic_result_name")
    private String judicResultName;
    /**
    * file_status
    */
    @TableField(value = "file_status")
    private Integer fileStatus;
    /**
    * file_user_id
    */
    @TableField(value = "file_user_id")
    private String fileUserId;
    /**
    * file_user_name
    */
    @TableField(value = "file_user_name")
    private String fileUserName;
    /**
    * file_time
    */
    @TableField(value = "file_time")
    private Date fileTime;
    /**
    * file_year
    */
    @TableField(value = "file_year")
    private String fileYear;
    /**
    * file_book_name
    */
    @TableField(value = "file_book_name")
    private String fileBookName;
    /**
    * file_book_no
    */
    @TableField(value = "file_book_no")
    private String fileBookNo;
    /**
    * file_no
    */
    @TableField(value = "file_no")
    private String fileNo;
    /**
    * file_limit_year
    */
    @TableField(value = "file_limit_year")
    private Integer fileLimitYear;
    /**
    * file_addr
    */
    @TableField(value = "file_addr")
    private String fileAddr;
    /**
    * file_content
    */
    @TableField(value = "file_content")
    private String fileContent;
    /**
    * fulfil_situ
    */
    @TableField(value = "fulfil_situ")
    private String fulfilSitu;
    /**
    * fulfil_situ_name
    */
    @TableField(value = "fulfil_situ_name")
    private String fulfilSituName;
    /**
    * visit_up_status
    */
    @TableField(value = "visit_up_status")
    private Integer visitUpStatus;
    /**
    * visit_up_content
    */
    @TableField(value = "visit_up_content")
    private String visitUpContent;
    /**
    * party_joy
    */
    @TableField(value = "party_joy")
    private Integer partyJoy;
    /**
    * cust_id
    */
    @TableField(value = "cust_id")
    private String custId;
    /**
    * create_time
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * update_time
    */
    @TableField(value = "update_time")
    private Date updateTime;
    /**
    * belong_unit_id
    */
    @TableField(value = "belong_unit_id")
    private String belongUnitId;
    /**
    * belong_unit_name
    */
    @TableField(value = "belong_unit_name")
    private String belongUnitName;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/domain/po/CasebookPerson.java
New file
@@ -0,0 +1,360 @@
package cn.huge.module.casebook.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: dyh_casebook_person数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-26 12:31:22
 * @version 1.0.0
 */
@TableName(value = "dyh_casebook_person")
@Data
public class CasebookPerson {
    /**
    * id
    */
    @TableId(value = "id")
    private String id;
    /**
    * case_id
    */
    @TableField(value = "case_id")
    private String caseId;
    /**
    * party_user_id
    */
    @TableField(value = "party_user_id")
    private String partyUserId;
    /**
    * per_type
    */
    @TableField(value = "per_type")
    private String perType;
    /**
    * per_type_name
    */
    @TableField(value = "per_type_name")
    private String perTypeName;
    /**
    * per_class
    */
    @TableField(value = "per_class")
    private String perClass;
    /**
    * per_class_name
    */
    @TableField(value = "per_class_name")
    private String perClassName;
    /**
    * true_name
    */
    @TableField(value = "true_name")
    private String trueName;
    /**
    * mobile
    */
    @TableField(value = "mobile")
    private String mobile;
    /**
    * orga_code
    */
    @TableField(value = "orga_code")
    private String orgaCode;
    /**
    * deputy
    */
    @TableField(value = "deputy")
    private String deputy;
    /**
    * orga_type
    */
    @TableField(value = "orga_type")
    private String orgaType;
    /**
    * orga_type_name
    */
    @TableField(value = "orga_type_name")
    private String orgaTypeName;
    /**
    * certi_type
    */
    @TableField(value = "certi_type")
    private String certiType;
    /**
    * certi_type_name
    */
    @TableField(value = "certi_type_name")
    private String certiTypeName;
    /**
    * certi_no
    */
    @TableField(value = "certi_no")
    private String certiNo;
    /**
    * prov
    */
    @TableField(value = "prov")
    private String prov;
    /**
    * prov_name
    */
    @TableField(value = "prov_name")
    private String provName;
    /**
    * city
    */
    @TableField(value = "city")
    private String city;
    /**
    * city_name
    */
    @TableField(value = "city_name")
    private String cityName;
    /**
    * area
    */
    @TableField(value = "area")
    private String area;
    /**
    * area_name
    */
    @TableField(value = "area_name")
    private String areaName;
    /**
    * road
    */
    @TableField(value = "road")
    private String road;
    /**
    * road_name
    */
    @TableField(value = "road_name")
    private String roadName;
    /**
    * village
    */
    @TableField(value = "village")
    private String village;
    /**
    * village_name
    */
    @TableField(value = "village_name")
    private String villageName;
    /**
    * addr
    */
    @TableField(value = "addr")
    private String addr;
    /**
    * place_prov
    */
    @TableField(value = "place_prov")
    private String placeProv;
    /**
    * place_prov_name
    */
    @TableField(value = "place_prov_name")
    private String placeProvName;
    /**
    * place_city
    */
    @TableField(value = "place_city")
    private String placeCity;
    /**
    * place_city_name
    */
    @TableField(value = "place_city_name")
    private String placeCityName;
    /**
    * place_area
    */
    @TableField(value = "place_area")
    private String placeArea;
    /**
    * place_area_name
    */
    @TableField(value = "place_area_name")
    private String placeAreaName;
    /**
    * place_road
    */
    @TableField(value = "place_road")
    private String placeRoad;
    /**
    * place_road_name
    */
    @TableField(value = "place_road_name")
    private String placeRoadName;
    /**
    * place_village
    */
    @TableField(value = "place_village")
    private String placeVillage;
    /**
    * place_village_name
    */
    @TableField(value = "place_village_name")
    private String placeVillageName;
    /**
    * place_addr
    */
    @TableField(value = "place_addr")
    private String placeAddr;
    /**
    * work_unit
    */
    @TableField(value = "work_unit")
    private String workUnit;
    /**
    * nation
    */
    @TableField(value = "nation")
    private String nation;
    /**
    * nation_name
    */
    @TableField(value = "nation_name")
    private String nationName;
    /**
    * sex
    */
    @TableField(value = "sex")
    private String sex;
    /**
    * sex_name
    */
    @TableField(value = "sex_name")
    private String sexName;
    /**
    * extreme
    */
    @TableField(value = "extreme")
    private Integer extreme;
    /**
    * avatar
    */
    @TableField(value = "avatar")
    private String avatar;
    /**
    * job
    */
    @TableField(value = "job")
    private String job;
    /**
    * job_name
    */
    @TableField(value = "job_name")
    private String jobName;
    /**
    * birthday
    */
    @TableField(value = "birthday")
    private String birthday;
    /**
    * age
    */
    @TableField(value = "age")
    private Integer age;
    /**
    * agent_status
    */
    @TableField(value = "agent_status")
    private Integer agentStatus;
    /**
    * cust_id
    */
    @TableField(value = "cust_id")
    private String custId;
    /**
    * delete_status
    */
    @TableLogic
    @TableField(value = "delete_status")
    private Integer deleteStatus;
    /**
    * create_time
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * update_time
    */
    @TableField(value = "update_time")
    private Date updateTime;
    /**
    * company_id
    */
    @TableField(value = "company_id")
    private String companyId;
    /**
    * work_unit_id
    */
    @TableField(value = "work_unit_id")
    private String workUnitId;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookAgentService.java
New file
@@ -0,0 +1,133 @@
package cn.huge.module.casebook.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.casebook.dao.mapper.CasebookAgentMapper;
import cn.huge.module.casebook.domain.po.CasebookAgent;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @title: dyh_casebook_agent业务逻辑处理
 * @Description dyh_casebook_agent业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-10-26 12:31:21
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class CasebookAgentService extends ServiceImpl<CasebookAgentMapper, CasebookAgent>{
    @Autowired
    private CasebookAgentMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateCasebookAgent(CasebookAgent entity){
        try{
            mapper.updateCasebookAgent(entity);
        }catch (Exception e){
            log.error("[CasebookAgentService.updateCasebookAgent]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookAgentService.updateCasebookAgent", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateCasebookAgentTerms(CasebookAgent entity, Map<String, Object> terms){
        try{
            mapper.updateCasebookAgentTerms(entity, terms);
        }catch (Exception e){
            log.error("[CasebookAgentService.updateCasebookAgentTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookAgentService.updateCasebookAgentTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteCasebookAgent(String id){
        try{
            mapper.deleteCasebookAgent(id);
        }catch (Exception e){
            log.error("[CasebookAgentService.deleteCasebookAgent]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookAgentService.deleteCasebookAgent", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<CasebookAgent> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<CasebookAgent> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<CasebookAgent> content = mapper.pageTerms(page, terms);
        return new PageImpl<CasebookAgent>(content, page, total);
    }
    /**
    * 新增或更新对象
    * @param casebookAgent 实体对象
    */
    public void saveCasebookAgent(CasebookAgent casebookAgent){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(casebookAgent.getId())){
                casebookAgent.setId(utilsClient.getNewTimeId());
                casebookAgent.setCreateTime(nowDate);
            }
            casebookAgent.setUpdateTime(nowDate);
            this.saveOrUpdate(casebookAgent);
        }catch (Exception e){
            log.error("[CasebookAgentService.saveCasebookAgent]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookAgentService.saveCasebookAgent", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookAssistInfoService.java
New file
@@ -0,0 +1,133 @@
package cn.huge.module.casebook.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.casebook.dao.mapper.CasebookAssistInfoMapper;
import cn.huge.module.casebook.domain.po.CasebookAssistInfo;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @title: dyh_casebook_assist_info业务逻辑处理
 * @Description dyh_casebook_assist_info业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-10-26 12:31:22
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class CasebookAssistInfoService extends ServiceImpl<CasebookAssistInfoMapper, CasebookAssistInfo>{
    @Autowired
    private CasebookAssistInfoMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateCasebookAssistInfo(CasebookAssistInfo entity){
        try{
            mapper.updateCasebookAssistInfo(entity);
        }catch (Exception e){
            log.error("[CasebookAssistInfoService.updateCasebookAssistInfo]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookAssistInfoService.updateCasebookAssistInfo", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateCasebookAssistInfoTerms(CasebookAssistInfo entity, Map<String, Object> terms){
        try{
            mapper.updateCasebookAssistInfoTerms(entity, terms);
        }catch (Exception e){
            log.error("[CasebookAssistInfoService.updateCasebookAssistInfoTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookAssistInfoService.updateCasebookAssistInfoTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteCasebookAssistInfo(String id){
        try{
            mapper.deleteCasebookAssistInfo(id);
        }catch (Exception e){
            log.error("[CasebookAssistInfoService.deleteCasebookAssistInfo]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookAssistInfoService.deleteCasebookAssistInfo", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<CasebookAssistInfo> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<CasebookAssistInfo> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<CasebookAssistInfo> content = mapper.pageTerms(page, terms);
        return new PageImpl<CasebookAssistInfo>(content, page, total);
    }
    /**
    * 新增或更新对象
    * @param casebookAssistInfo 实体对象
    */
    public void saveCasebookAssistInfo(CasebookAssistInfo casebookAssistInfo){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(casebookAssistInfo.getId())){
                casebookAssistInfo.setId(utilsClient.getNewTimeId());
                casebookAssistInfo.setCreateTime(nowDate);
            }
            casebookAssistInfo.setUpdateTime(nowDate);
            this.saveOrUpdate(casebookAssistInfo);
        }catch (Exception e){
            log.error("[CasebookAssistInfoService.saveCasebookAssistInfo]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookAssistInfoService.saveCasebookAssistInfo", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookFileService.java
New file
@@ -0,0 +1,133 @@
package cn.huge.module.casebook.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.casebook.dao.mapper.CasebookFileMapper;
import cn.huge.module.casebook.domain.po.CasebookFile;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @title: 一本账导入文件记录表业务逻辑处理
 * @Description 一本账导入文件记录表业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-10-27 16:16:40
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class CasebookFileService extends ServiceImpl<CasebookFileMapper, CasebookFile>{
    @Autowired
    private CasebookFileMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateCasebookFile(CasebookFile entity){
        try{
            mapper.updateCasebookFile(entity);
        }catch (Exception e){
            log.error("[CasebookFileService.updateCasebookFile]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookFileService.updateCasebookFile", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateCasebookFileTerms(CasebookFile entity, Map<String, Object> terms){
        try{
            mapper.updateCasebookFileTerms(entity, terms);
        }catch (Exception e){
            log.error("[CasebookFileService.updateCasebookFileTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookFileService.updateCasebookFileTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteCasebookFile(String id){
        try{
            mapper.deleteCasebookFile(id);
        }catch (Exception e){
            log.error("[CasebookFileService.deleteCasebookFile]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookFileService.deleteCasebookFile", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<CasebookFile> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<CasebookFile> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<CasebookFile> content = mapper.pageTerms(page, terms);
        return new PageImpl<CasebookFile>(content, page, total);
    }
    /**
    * 新增或更新对象
    * @param casebookFile 实体对象
    */
    public void saveCasebookFile(CasebookFile casebookFile){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(casebookFile.getId())){
                casebookFile.setId(utilsClient.getNewTimeId());
                casebookFile.setCreateTime(nowDate);
            }
            casebookFile.setUpdateTime(nowDate);
            this.saveOrUpdate(casebookFile);
        }catch (Exception e){
            log.error("[CasebookFileService.saveCasebookFile]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookFileService.saveCasebookFile", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookInfoService.java
New file
@@ -0,0 +1,303 @@
package cn.huge.module.casebook.service;
import cn.huge.base.common.constant.ReturnConsts;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.*;
import cn.huge.module.casebook.domain.dto.CaseBookPageDTO;
import cn.huge.module.casebook.domain.po.*;
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.client.api.impl.SysClientImpl;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.casebook.dao.mapper.CasebookInfoMapper;
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.sys.dto.FileInfoBaseDTO;
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;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * @title: dyh_casebook_info业务逻辑处理
 * @Description dyh_casebook_info业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-10-26 12:31:22
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class CasebookInfoService extends ServiceImpl<CasebookInfoMapper, CasebookInfo>{
    @Autowired
    private CasebookInfoMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    @Autowired
    private CustClientImpl custClient;
    @Autowired
    private SysClientImpl sysClient;
    @Autowired
    private CasebookPersonService casebookPersonService;
    @Autowired
    private CasebookAgentService casebookAgentService;
    @Autowired
    private CasebookAssistInfoService casebookAssistInfoService;
    @Autowired
    private CasebookFileService casebookFileService;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateCasebookInfo(CasebookInfo entity){
        try{
            mapper.updateCasebookInfo(entity);
        }catch (Exception e){
            log.error("[CasebookInfoService.updateCasebookInfo]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoService.updateCasebookInfo", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateCasebookInfoTerms(CasebookInfo entity, Map<String, Object> terms){
        try{
            mapper.updateCasebookInfoTerms(entity, terms);
        }catch (Exception e){
            log.error("[CasebookInfoService.updateCasebookInfoTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoService.updateCasebookInfoTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteCasebookInfo(String id){
        try{
            mapper.deleteCasebookInfo(id);
        }catch (Exception e){
            log.error("[CasebookInfoService.deleteCasebookInfo]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoService.deleteCasebookInfo", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<CasebookInfo> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<CasebookInfo> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<CasebookInfo> content = mapper.pageTerms(page, terms);
        return new PageImpl<CasebookInfo>(content, page, total);
    }
    /**
    * 新增或更新对象
    * @param casebookInfo 实体对象
    */
    public void saveCasebookInfo(CasebookInfo casebookInfo){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(casebookInfo.getId())){
                casebookInfo.setId(utilsClient.getNewTimeId());
                casebookInfo.setCreateTime(nowDate);
            }
            casebookInfo.setUpdateTime(nowDate);
            this.saveOrUpdate(casebookInfo);
        }catch (Exception e){
            log.error("[CasebookInfoService.saveCasebookInfo]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoService.saveCasebookInfo", e);
        }
    }
    /**
     * 条件分页查询-导入草稿
     * @param page 分页对象
     * @param terms 条件
     * @return Page
     */
    public Page<CaseBookPageDTO> pageImportDraft(PageRequest page, Map<String, Object> terms){
        long total = mapper.countImportDraft(terms);
        List<CaseBookPageDTO> content = mapper.pageImportDraft(page, terms);
        return new PageImpl<CaseBookPageDTO>(content, page, total);
    }
    /**
     * 条件分页查询-导入成功
     * @param page 分页对象
     * @param terms 条件
     * @return Page
     */
    public Page<CaseBookPageDTO> pageImportSuc(PageRequest page, Map<String, Object> terms){
        long total = mapper.countImportSuc(terms);
        List<CaseBookPageDTO> content = mapper.pageImportSuc(page, terms);
        return new PageImpl<CaseBookPageDTO>(content, page, total);
    }
    /**
     * 案件导入-导入操作-通过Excel导入
     * @param fileId
     * @param userId
     * @param request
     * @return
     */
    public Object inputCaseByExcel(String fileId, String userId, HttpServletRequest request){
        int row = 0;
        int cll = 0;
        int countFalse = 1;
        int countSuccess = 3;
        int all = 0;
        try{
            CtUserDTO loginUser = custClient.clientGetUser(userId);
            Date nowDate = DateUtils.getNowDate();
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
            SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy/MM/dd");
            SimpleDateFormat sdf5 = new SimpleDateFormat("yyyy.MM.dd");
            SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy年");
            //当重复导入判断是否继续
            String adopt = request.getParameter("adopt");
            FileInfoBaseDTO fileInfo = sysClient.getFileInfoById(fileId);
            //判断是否近期内是否有重复导入
            if(StringUtils.isBlank(adopt) && ObjectUtils.isNotEmpty(fileInfo)){
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String dateStart = sdf.format(DateUtils.addDay(nowDate, -1));
                Map<String, Object> caseBookFileTerms = new HashMap<>();
                caseBookFileTerms.put("fileName", fileInfo.getTrueName());
                caseBookFileTerms.put("fileSize", fileInfo.getSize());
                caseBookFileTerms.put("userId", loginUser.getId());
                caseBookFileTerms.put("createTimeStart", dateStart);
                List<CasebookFile> caseBookFileList = casebookFileService.listTerms(caseBookFileTerms);
                if(CollectionUtils.isNotEmpty(caseBookFileList)){
                    return ReturnFailUtils.getAesInfo(ReturnConsts.ERROR_5, "", null);
                }
            }
            if (countFalse != all) {
                CasebookFile casebookFile = new CasebookFile();
                casebookFile.setFileName(fileInfo.getTrueName());
                casebookFile.setFileSize(String.valueOf(fileInfo.getSize()));
                casebookFile.setUserId(loginUser.getId());
                casebookFile.setUserName(loginUser.getTrueName());
                casebookFile.setCreateTime(nowDate);
                casebookFile.setUpdateTime(nowDate);
                casebookFile.setId(utilsClient.getNewTimeId());
                casebookFile.setCustId(loginUser.getCustId());
                casebookFileService.save(casebookFile);
            }
            List<String> reasonList = new ArrayList<>();
            String reason = "(1)序号14:纠纷受理时间数据格式错误";
            reasonList.add(reason);
            Map<String, Object> result = new HashMap<>();
            result.put("countSuccess", countSuccess);
            result.put("countFalse", countFalse);
            result.put("countFalseContent", reasonList);
            return ReturnSucUtils.getRepInfo(result);
        }catch (Exception e){
            log.error("[CasebookInfoService.inputCaseByExcel]调用失败,异常信息:"+e, e);
            return ReturnFailUtils.getAesInfo("您导入Excel的内容不正确");
        }
    }
    /**
     * 案件导入-删除草稿
     * @param idList
     * @return
     */
    public void deleteDraft(List<String> idList){
        try{
            QueryWrapper<CasebookInfo> caseBookQueryWrapper = new QueryWrapper<>();
            caseBookQueryWrapper.in("id", idList);
            this.remove(caseBookQueryWrapper);
            QueryWrapper<CasebookAgent> casebookAgentQueryWrapper = new QueryWrapper<>();
            casebookAgentQueryWrapper.in("case_id", idList);
            casebookAgentService.remove(casebookAgentQueryWrapper);
            QueryWrapper<CasebookPerson> casebookPersonQueryWrapper = new QueryWrapper<>();
            casebookPersonQueryWrapper.in("case_id", idList);
            casebookPersonService.remove(casebookPersonQueryWrapper);
            QueryWrapper<CasebookAssistInfo> casebookAssistInfoQueryWrapper = new QueryWrapper<>();
            casebookAssistInfoQueryWrapper.in("case_id", idList);
            casebookAssistInfoService.remove(casebookAssistInfoQueryWrapper);
        }catch (Exception e){
            log.error("[CasebookInfoService.deleteDraft]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoService.deleteDraft", e);
        }
    }
    /**
     * 案件导入-草稿转入正式案件
     * @param idList
     * @return
     */
    public void importToCase(List<String> idList, String userId){
        try{
        }catch (Exception e){
            log.error("[CasebookInfoService.importToCase]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoService.importToCase", e);
        }
    }
    /**
     * 案件导入-全部草稿转入正式案件
     * @param terms 条件
     * @return Page
     */
    public void importToCaseAll(Map<String, Object> terms){
        try{
            List<CaseBookPageDTO> caseBookPageDTOList = mapper.listImportDraft(terms);
            for (CaseBookPageDTO caseBookPageDTO: caseBookPageDTOList){
            }
        }catch (Exception e){
            log.error("[CasebookInfoService.importToCase]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoService.importToCase", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookInfoUnfoldService.java
New file
@@ -0,0 +1,133 @@
package cn.huge.module.casebook.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.casebook.dao.mapper.CasebookInfoUnfoldMapper;
import cn.huge.module.casebook.domain.po.CasebookInfoUnfold;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @title: dyh_casebook_info_unfold业务逻辑处理
 * @Description dyh_casebook_info_unfold业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-10-26 12:31:22
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class CasebookInfoUnfoldService extends ServiceImpl<CasebookInfoUnfoldMapper, CasebookInfoUnfold>{
    @Autowired
    private CasebookInfoUnfoldMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateCasebookInfoUnfold(CasebookInfoUnfold entity){
        try{
            mapper.updateCasebookInfoUnfold(entity);
        }catch (Exception e){
            log.error("[CasebookInfoUnfoldService.updateCasebookInfoUnfold]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoUnfoldService.updateCasebookInfoUnfold", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateCasebookInfoUnfoldTerms(CasebookInfoUnfold entity, Map<String, Object> terms){
        try{
            mapper.updateCasebookInfoUnfoldTerms(entity, terms);
        }catch (Exception e){
            log.error("[CasebookInfoUnfoldService.updateCasebookInfoUnfoldTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoUnfoldService.updateCasebookInfoUnfoldTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteCasebookInfoUnfold(String id){
        try{
            mapper.deleteCasebookInfoUnfold(id);
        }catch (Exception e){
            log.error("[CasebookInfoUnfoldService.deleteCasebookInfoUnfold]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoUnfoldService.deleteCasebookInfoUnfold", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<CasebookInfoUnfold> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<CasebookInfoUnfold> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<CasebookInfoUnfold> content = mapper.pageTerms(page, terms);
        return new PageImpl<CasebookInfoUnfold>(content, page, total);
    }
    /**
    * 新增或更新对象
    * @param casebookInfoUnfold 实体对象
    */
    public void saveCasebookInfoUnfold(CasebookInfoUnfold casebookInfoUnfold){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(casebookInfoUnfold.getId())){
                casebookInfoUnfold.setId(utilsClient.getNewTimeId());
                casebookInfoUnfold.setCreateTime(nowDate);
            }
            casebookInfoUnfold.setUpdateTime(nowDate);
            this.saveOrUpdate(casebookInfoUnfold);
        }catch (Exception e){
            log.error("[CasebookInfoUnfoldService.saveCasebookInfoUnfold]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookInfoUnfoldService.saveCasebookInfoUnfold", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/casebook/service/CasebookPersonService.java
New file
@@ -0,0 +1,133 @@
package cn.huge.module.casebook.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.casebook.dao.mapper.CasebookPersonMapper;
import cn.huge.module.casebook.domain.po.CasebookPerson;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @title: dyh_casebook_person业务逻辑处理
 * @Description dyh_casebook_person业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-10-26 12:31:22
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class CasebookPersonService extends ServiceImpl<CasebookPersonMapper, CasebookPerson>{
    @Autowired
    private CasebookPersonMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateCasebookPerson(CasebookPerson entity){
        try{
            mapper.updateCasebookPerson(entity);
        }catch (Exception e){
            log.error("[CasebookPersonService.updateCasebookPerson]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookPersonService.updateCasebookPerson", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateCasebookPersonTerms(CasebookPerson entity, Map<String, Object> terms){
        try{
            mapper.updateCasebookPersonTerms(entity, terms);
        }catch (Exception e){
            log.error("[CasebookPersonService.updateCasebookPersonTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookPersonService.updateCasebookPersonTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteCasebookPerson(String id){
        try{
            mapper.deleteCasebookPerson(id);
        }catch (Exception e){
            log.error("[CasebookPersonService.deleteCasebookPerson]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookPersonService.deleteCasebookPerson", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<CasebookPerson> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<CasebookPerson> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<CasebookPerson> content = mapper.pageTerms(page, terms);
        return new PageImpl<CasebookPerson>(content, page, total);
    }
    /**
    * 新增或更新对象
    * @param casebookPerson 实体对象
    */
    public void saveCasebookPerson(CasebookPerson casebookPerson){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(casebookPerson.getId())){
                casebookPerson.setId(utilsClient.getNewTimeId());
                casebookPerson.setCreateTime(nowDate);
            }
            casebookPerson.setUpdateTime(nowDate);
            this.saveOrUpdate(casebookPerson);
        }catch (Exception e){
            log.error("[CasebookPersonService.saveCasebookPerson]调用失败,异常信息:"+e, e);
            throw new ServiceException("CasebookPersonService.saveCasebookPerson", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java
@@ -173,4 +173,10 @@
     */
    List<FrontPageListYBDTO> pageMyTaskYb(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
    /**
     * 根据编号物理删除
     * @param caseId
     */
    void deleteByCaseId(@Param("caseId") String caseId);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
@@ -358,16 +358,59 @@
                    and (DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.fileStart}
                    and DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.fileEnd})
                </if>
                <if test="terms.queCity != null and terms.queCity !='' and terms.statistics != null">
                    and ((b.mediate_unit_id is not null and c.city = #{terms.queCity})
                    or (b.mediate_unit_id is null and a.que_city = #{terms.queCity}))
                <if test='terms.queCity != null and terms.queCity !="" and terms.statistics != null and terms.areaType == "1"'>
                    and (b.mediate_unit_id is not null and c.city = #{terms.queCity}
                    <if test="terms.unitGrades != null and terms.unitGrades.size > 0">
                        and c.unit_grade in
                        <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")">
                            #{unitGrade}
                        </foreach>
                    </if>
                    )
                </if>
                <if test="terms.queArea != null and terms.queArea !='' and terms.statistics != null">
                    and ((b.mediate_unit_id is not null and c.area = #{terms.queArea})
                    or (b.mediate_unit_id is null and a.que_area = #{terms.queArea}))
                <if test='terms.queCity != null and terms.queCity !="" and terms.statistics != null and terms.areaType != "1"'>
                    and ((b.mediate_unit_id is not null and c.city = #{terms.queCity}
                    <if test="terms.unitGrades != null and terms.unitGrades.size > 0">
                        and c.unit_grade in
                        <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator=","
                                 close=")">
                            #{unitGrade}
                        </foreach>
                    </if>)
                    or (b.mediate_unit_id is null and a.que_city = #{terms.queCity})
                    )
                </if>
                <if test='terms.queArea != null and terms.queArea !="" and terms.statistics != null and terms.areaType == "2"'>
                    and (b.mediate_unit_id is not null and c.area = #{terms.queArea}
                    <if test="terms.unitGrades != null and terms.unitGrades.size > 0">
                        and c.unit_grade in
                        <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")">
                            #{unitGrade}
                        </foreach>
                    </if>
                    )
                </if>
                <if test='terms.queArea != null and terms.queArea !="" and terms.statistics != null and terms.areaType != "2"'>
                    and ((b.mediate_unit_id is not null and c.area = #{terms.queArea}
                    <if test="terms.unitGrades != null and terms.unitGrades.size > 0">
                        and c.unit_grade in
                        <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")">
                            #{unitGrade}
                        </foreach>
                    </if>
                    )
                    or (b.mediate_unit_id is null and a.que_area = #{terms.queArea})
                    )
                </if>
                <if test="terms.queRoad != null and terms.queRoad !='' and terms.statistics != null">
                    and ((b.mediate_unit_id is not null and c.road = #{terms.queRoad})
                    and ((b.mediate_unit_id is not null and c.road = #{terms.queRoad}
                    <if test="terms.unitGrades != null and terms.unitGrades.size > 0">
                        and c.unit_grade in
                        <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")">
                            #{unitGrade}
                        </foreach>
                    </if>
                    )
                    or (b.mediate_unit_id is null and a.que_road = #{terms.queRoad}))
                </if>
                <if test="terms.isArea != null and terms.isArea !=''">
@@ -850,13 +893,16 @@
    <!--  统计分析(区域)  -->
    <select id="statisticsArea" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsAreaDTO">
        SELECT
        <if test="terms.areaType == null or terms.areaType ==''">
            IF(c.area is null,a.que_area,c.area) as areaCode,IF(c.area_name is null,a.que_area_name,c.area_name) as areaName,
        </if>
        <if test='terms.areaType != null and terms.areaType =="1"'>
            IF(c.area is null,a.que_area,c.area) as areaCode,IF(c.area_name is null,a.que_area_name,c.area_name) as areaName,
        <if test='terms.areaType == null or terms.areaType =="1"'>
            IF(c.area is null,a.que_city,c.city) as areaCode,IF(c.city_name is null,a.que_city_name,c.city_name) as areaName,
        </if>
        <if test='terms.areaType != null and terms.areaType =="2"'>
            IF(c.area is null,a.que_area,c.area) as areaCode,IF(c.area_name is null,a.que_area_name,c.area_name) as areaName,
        </if>
        <if test='terms.areaType != null and terms.areaType =="3"'>
            IF(c.road is null,a.que_road,c.road) as areaCode,IF(c.road_name is null,a.que_road_name,c.road_name) as areaName,
        </if>
        <if test='terms.areaType != null and terms.areaType =="4"'>
            IF(c.road is null,a.que_road,c.road) as areaCode,IF(c.road_name is null,a.que_road_name,c.road_name) as areaName,
        </if>
        c.unit_grade as unitGrade,
@@ -871,7 +917,6 @@
        LEFT JOIN dyh_ct_unit c ON b.mediate_unit_id = c.id
        <include refid="where-part-all"/>
        group by areaCode
    </select>
    <!--  统计分析(基础)  -->
    <select id="statisticsBase" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsBaseDTO">
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
@@ -817,4 +817,11 @@
        limit #{page.offset}, #{page.size}
    </select>
    <!--  根据编号物理删除  -->
    <delete id="deleteByCaseId">
        delete from
        <include refid="table-name" />
        where case_id = #{caseId}
    </delete>
</mapper> 
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -1017,22 +1017,37 @@
        }
        //目前没有村居,所以区和街道进来都是按街道展示
        String areaType = null;//兼容白云数据
        String areaType = null;
        String childAreaType = null;
        List<Integer> unitGrades = new ArrayList<>();
        List<Integer> childUnitGrades = new ArrayList<>();
        Boolean isLast = false;
        if(ObjectUtils.isNotEmpty(terms.get("queRoad"))){
            terms.put("areaType","2");
            areaType = "2";
            terms.remove("queArea");
            terms.remove("queCity");
            areaType = "3";
            childAreaType = "4";
            areaCode = terms.get("queRoad")+"";
            unitGrades.add(3);
            unitGrades.add(4);
            childUnitGrades.add(3);
            childUnitGrades.add(4);
            isLast = true;
        }else if(ObjectUtils.isNotEmpty(terms.get("queArea"))){
            terms.put("areaType","2");
            terms.remove("queCity");
            areaType = "2";
            childAreaType = "3";
            areaCode = terms.get("queArea")+"";
            unitGrades.add(2);
            childUnitGrades.add(3);
            childUnitGrades.add(4);
        }else{
            areaType = "1";
            childAreaType = "2";
            unitGrades.add(1);
            childUnitGrades.add(2);
            childUnitGrades.add(3);
            childUnitGrades.add(4);
            areaCode = ctUnitDTO.getCity();
        }
        //基础数据统计
@@ -1047,28 +1062,47 @@
        caseStatisticsBaseDTO.setTwoLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getTwoLevelNum() * 100, levelTotalNum, 1));
        caseStatisticsBaseDTO.setThreeLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getThreeLevelNum() * 100, levelTotalNum, 1));
        //区域数据统计
        List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = mapper.statisticsArea(terms);
        if (ObjectUtils.isEmpty(caseStatisticsAreaDTOS)) {
            caseStatisticsAreaDTOS = new ArrayList<>();
        List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = new ArrayList<>();
        if(!isLast){
            terms.put("areaType",childAreaType);
            terms.put("unitGrades",childUnitGrades);
            caseStatisticsAreaDTOS = mapper.statisticsArea(terms);
            if (ObjectUtils.isEmpty(caseStatisticsAreaDTOS)) {
                caseStatisticsAreaDTOS = new ArrayList<>();
            }
        }
        //本级区数据
        terms.put("areaType",areaType);
        terms.put("unitGrades",unitGrades);
        List<CaseStatisticsAreaDTO> allAreas = mapper.statisticsArea(terms);
        CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO();
        if (ObjectUtils.isNotEmpty(allAreas)) {
            allArea = allAreas.get(0);
        }
        terms.remove("unitGrades");
        allArea.setAreaName("本级");
        allArea.setAreaCode("1");
        allArea.setAreaCode("0");
        List<String> areaCodeList = new ArrayList<>();
        List<CaseStatisticsAreaDTO> areaList = new ArrayList<>();
        List<String> areaNames = new ArrayList<>();//为兼容白云区数据
        Integer areaTotal = allArea.getCaseNum();
        for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) {
            areaNames.add(caseStatisticsAreaDTO.getAreaName());
            areaList.add(caseStatisticsAreaDTO);
            areaCodeList.add(caseStatisticsAreaDTO.getAreaCode());
            areaTotal = areaTotal + caseStatisticsAreaDTO.getCaseNum();
            //本及:承办单位是本及和没有承办单位并且没有下级区域编码
            if(ObjectUtils.isEmpty(caseStatisticsAreaDTO.getAreaCode()) || unitGrades.contains(caseStatisticsAreaDTO.getUnitGrade())){
                allArea.setCaseNum(dellNull(caseStatisticsAreaDTO.getCaseNum()) + dellNull(allArea.getCaseNum()));
                allArea.setResolveNum(dellNull(caseStatisticsAreaDTO.getResolveNum()) + dellNull(allArea.getResolveNum()));
                allArea.setUnResolveNum(dellNull(caseStatisticsAreaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum()));
                allArea.setResolveingNum(dellNull(caseStatisticsAreaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum()));
            }else{
                areaList.add(caseStatisticsAreaDTO);
                areaCodeList.add(caseStatisticsAreaDTO.getAreaCode());
            }
//            if(ObjectUtils.isEmpty(caseStatisticsAreaDTO.getAreaCode()) || unitGrades.contains(caseStatisticsAreaDTO.getUnitGrade())){
//                allArea.setCaseNum(dellNull(caseStatisticsAreaDTO.getCaseNum()) + dellNull(allArea.getCaseNum()));
//                allArea.setResolveNum(dellNull(caseStatisticsAreaDTO.getResolveNum()) + dellNull(allArea.getResolveNum()));
//                allArea.setUnResolveNum(dellNull(caseStatisticsAreaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum()));
//                allArea.setResolveingNum(dellNull(caseStatisticsAreaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum()));
//            }else{
//                areaList.add(caseStatisticsAreaDTO);
//                areaCodeList.add(caseStatisticsAreaDTO.getAreaCode());
//            }
        }
        areaList.add(allArea);
        if("1".equals(areaType)){
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
@@ -3247,4 +3247,17 @@
        }
    }
    /**
     * 根据编号物理删除
     * @param caseId
     */
    public void deleteByCaseId(String caseId){
        try{
            mapper.deleteByCaseId(caseId);
        }catch (Exception e){
            log.error("[CaseTaskService.deleteByCaseId]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.deleteByCaseId", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java
@@ -92,4 +92,13 @@
     */
    @GetMapping("/api/web/syRegion/listByParentId")
    ReturnBO listByParentId(@RequestParam(value = "parentId") String parentId);
    /**
     * 根据id查询附件信息
     * @url {ctx}/api/client/fileInfo/getFileInfoById
     * @param id 条件
     * @return Object
     */
    @GetMapping("/api/client/fileInfo/getFileInfoById")
    ReturnBO getFileInfoById(@RequestParam(value = "id") String id);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java
@@ -265,4 +265,26 @@
        return queAreaDTOList;
    }
    /**
     * 根据id查询附件信息
     * @url {ctx}/api/client/fileInfo/getFileInfoById
     * @param id 条件
     * @return
     */
    public FileInfoBaseDTO getFileInfoById(String id){
        FileInfoBaseDTO fileInfoBaseDTO = null;
        try{
            ReturnBO returnBo = sysClient.getFileInfoById(id);
            if (ReturnConsts.OK == returnBo.getCode()){
                if (ObjectUtils.isNotEmpty(returnBo.getData())){
                    fileInfoBaseDTO = new FileInfoBaseDTO();
                    fileInfoBaseDTO = objectMapper.convertValue(returnBo.getData(), FileInfoBaseDTO.class);
                }
            }
        }catch (Exception e){
            log.error("service方法[SysClientImpl.getFileInfoById]调用异常:"+e, e);
        }
        return fileInfoBaseDTO;
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/client/api/SyncBydyhClient.java
@@ -34,4 +34,22 @@
    @GetMapping("/api/client/syncCase/countEndCase")
    ReturnBO countEndCase();
    /**
     * 数据割接-进行中的纠纷案件信息
     * @url {ctx}/api/client/syncCase/byToGzTodoCase
     * @param page
     * @param size
     * @return
     */
    @GetMapping("/api/client/syncCase/byToGzTodoCase")
    ReturnBO byToGzTodoCase(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size);
    /**
     * 数据割接-统计进行中的纠纷案件信息
     * @url {ctx}/api/client/syncCase/countTodoCase
     * @return
     */
    @GetMapping("/api/client/syncCase/countTodoCase")
    ReturnBO countTodoCase();
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/client/api/impl/SyncBydyhClientImpl.java
@@ -44,7 +44,7 @@
    /**
     * 数据割接-已结束的纠纷案件信息
     * @url {ctx}/api/client/syncCust/byToGzCtUnit
     * @url {ctx}/api/client/syncCust/byToGzEndCase
     * @return Object
     */
    public List<GZCaseDTO> byToGzEndCase(int page, int size){
@@ -93,4 +93,55 @@
        return 0;
    }
    /**
     * 数据割接-进行中的纠纷案件信息
     * @url {ctx}/api/client/syncCust/byToGzTodoCase
     * @return Object
     */
    public List<GZCaseDTO> byToGzTodoCase(int page, int size){
        List<GZCaseDTO> resultList = new ArrayList<>();
        try{
            ReturnBO returnBo = syncBydyhClient.byToGzTodoCase(page, size);
            if (ReturnConsts.OK == returnBo.getCode()){
                if (ObjectUtils.isNotEmpty(returnBo.getData())){
                    List<LinkedHashMap> list = (List<LinkedHashMap>) returnBo.getData();
                    for (LinkedHashMap map : list) {
                        GZCaseDTO result = JSON.parseObject(JSON.toJSONString(map), GZCaseDTO.class);
                        resultList.add(result);
                    }
                }
            }else{
                log.error("Client外服务接口[SyncBydyhClient.byToGzTodoCase]请求异常:" + returnBo.getMsg(), returnBo.getMsg());
                throw new ClientException("SyncBydyhClient.byToGzTodoCase", returnBo.getMsg());
            }
        }catch (Exception e){
            log.error("service方法[SyncBydyhClient.byToGzTodoCase]调用异常:"+e, e);
        }
        return resultList;
    }
    /**
     * 数据割接-统计进行中的纠纷案件信息
     * @url {ctx}/api/client/syncCust/countTodoCase
     * @return Object
     */
    public int countTodoCase(){
        try{
            ReturnBO returnBo = syncBydyhClient.countTodoCase();
            if (ReturnConsts.OK == returnBo.getCode()) {
                if (ObjectUtils.isNotEmpty(returnBo.getData())){
                    return (Integer) returnBo.getData();
                }else {
                    return 0;
                }
            } else {
                log.error("Client外服务接口[SyncBydyhClient.countTodoCase]请求异常:" + returnBo.getMsg(), returnBo.getMsg());
                throw new ClientException("SyncBydyhClient.countTodoCase", returnBo.getMsg());
            }
        }catch (Exception e){
            log.error("service方法[SyncBydyhClient.countTodoCase]调用异常:"+e, e);
        }
        return 0;
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/controller/SyncBydyhController.java
@@ -44,4 +44,49 @@
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * 白云区矛盾纠纷多元化解平台数据割接-进行中的纠纷案件信息
     * @url {ctx}/api/syncBydyh/byToGzTodoCase
     * @return Object
     */
    @GetMapping("/byToGzTodoCase")
    public Object byToGzTodoCase() {
        try {
            service.byToGzTodoCase();
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * 白云区矛盾纠纷多元化解平台数据割接-更新纠纷类型
     * @url {ctx}/api/syncBydyh/upThirdCause
     * @return Object
     */
    @GetMapping("/upThirdCause")
    public Object upThirdCause() {
        try {
            service.upThirdCause();
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * 白云区矛盾纠纷多元化解平台数据割接-更新问题属地的村级社区
     * @url {ctx}/api/syncBydyh/upThirdCause
     * @return Object
     */
    @GetMapping("/upQueAddr")
    public Object upQueAddr() {
        try {
            service.upQueAddr();
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/controller/web/SyCauseWebController.java
New file
@@ -0,0 +1,175 @@
package cn.huge.module.syncbydyh.controller.web;
import cn.huge.base.common.utils.ReturnFailUtils;
import cn.huge.base.common.utils.ReturnSucUtils;
import cn.huge.module.syncbydyh.domain.po.SyCause;
import cn.huge.module.syncbydyh.service.SyCauseService;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @title: 纠纷类型信息表接口api-web端
 * @description: 纠纷类型信息表接口api-web端
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-21 22:18:51
 * @version: 1.0.0
 */
@Slf4j
@RestController
@RequestMapping("/api/web/syCause")
public class SyCauseWebController {
    @Autowired(required = false)
    private HttpServletRequest request;
    @Autowired
    private SyCauseService service;
    /**
    * 获取请求URL参数
    * @return Map<String, Object>
    */
    private Map<String, Object> getParameter(){
        Map<String, Object> terms = Maps.newHashMap();
        // 编码
        String id = request.getParameter("id");
        if (StringUtils.isNotBlank(id)){
            terms.put("id", id);
        }
        // 名称
        String name = request.getParameter("name");
        if (StringUtils.isNotBlank(name)){
            terms.put("name", name);
        }
        // 层级
        String level = request.getParameter("level");
        if (StringUtils.isNotBlank(level)){
            terms.put("level", level);
        }
        // 父级编码
        String parentId = request.getParameter("parentId");
        if (StringUtils.isNotBlank(parentId)){
            terms.put("parentId", parentId);
        }
        // 调解类型
        String issueId = request.getParameter("issueId");
        if (StringUtils.isNotBlank(issueId)){
            terms.put("issueId", issueId);
        }
        // 展示图标
        String icon = request.getParameter("icon");
        if (StringUtils.isNotBlank(icon)){
            terms.put("icon", icon);
        }
        // 创建时间区间
        String createStart = request.getParameter("createStart");
        String createEnd = request.getParameter("createEnd");
        if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
            terms.put("createStart", createStart);
            terms.put("createEnd", createEnd);
        }
        // 更新时间区间
        String updateStart = request.getParameter("updateStart");
        String updateEnd = request.getParameter("updateEnd");
        if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
            terms.put("updateStart", updateStart);
            terms.put("updateEnd", updateEnd);
        }
        return terms;
    }
    /**
    * 条件查询多个
    * @url {ctx}/api/web/syCause/listQuery
    * @return Object
    */
    @GetMapping("/listQuery")
    public Object listQuery() {
        try {
            Map<String, Object> terms = getParameter();
            return ReturnSucUtils.getRepInfo(service.listTerms(terms));
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
    * 条件分页查询
    * @url {ctx}/api/web/syCause/pageQuery
    * @param page 页码
    * @param size 每页数量
    * @return Object
    */
    @GetMapping("/pageQuery")
    public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
        try {
            Map<String, Object> terms = getParameter();
            Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
            Page<SyCause> syCausePage = service.pageQuery(pageRequest, terms);
            return ReturnSucUtils.getRepInfo( "处理成功", syCausePage);
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
    * 根据编号查询单个
    * @url {ctx}/api/web/syCause/getById
    * @param id 主键编号
    * @return Object
    */
    @GetMapping("/getById")
    public Object getById(@RequestParam(value = "id") String id) {
        try {
            return ReturnSucUtils.getRepInfo(service.getById(id));
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
    * 根据主键单个
    * @url {ctx}/api/web/syCause/deleteById
    * @param id 主键编号
    * @return Object
    */
    @GetMapping("/deleteById")
    public Object deleteById(@RequestParam(value = "id") String id) {
        try {
            service.removeById(id);
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
    * 新增或更新对象
    * @url {ctx}/api/web/syCause/saveSyCause
    * @param syCause 实体对象
    * @return Object
    */
    @PostMapping("/saveSyCause")
    public Object saveSyCause(@RequestBody SyCause syCause) {
        try {
            service.saveSyCause(syCause);
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/dao/mapper/SyCauseMapper.java
New file
@@ -0,0 +1,64 @@
package cn.huge.module.syncbydyh.dao.mapper;
import cn.huge.module.syncbydyh.domain.po.SyCause;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @title: 纠纷类型信息表持久层业务处理
* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
* @company: hugeinfo
* @author: liyj
* @time: 2024-10-21 22:18:51
* @version 1.0.0
*/
@Repository
public interface SyCauseMapper extends BaseMapper<SyCause>{
    /**
    * 更新对象
    * @param entity 对象
    */
    void updateSyCause(@Param("entity") SyCause entity);
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    void updateSyCauseTerms(@Param("entity") SyCause entity, @Param("terms") Map<String, Object> terms);
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    void deleteSyCause(@Param("id") String id);
    /**
    * 按条件查询结果集
    * @param terms 查询条件集合
    * @return List<SyCause>
    */
    List<SyCause> listTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体总数
    * @param terms 查询条件集合
    * @return long
    */
    long countTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体分页结果集
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<SyCause>
    */
    List<SyCause> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/dao/mapper/ThirdCauseMapper.java
New file
@@ -0,0 +1,64 @@
package cn.huge.module.syncbydyh.dao.mapper;
import cn.huge.module.syncbydyh.domain.po.ThirdCause;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @title: 第三方纠纷类型映射表持久层业务处理
* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
* @company: hugeinfo
* @author: liyj
* @time: 2024-10-21 22:04:49
* @version 1.0.0
*/
@Repository
public interface ThirdCauseMapper extends BaseMapper<ThirdCause>{
    /**
    * 更新对象
    * @param entity 对象
    */
    void updateThirdCause(@Param("entity") ThirdCause entity);
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    void updateThirdCauseTerms(@Param("entity") ThirdCause entity, @Param("terms") Map<String, Object> terms);
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    void deleteThirdCause(@Param("id") String id);
    /**
    * 按条件查询结果集
    * @param terms 查询条件集合
    * @return List<ThirdCause>
    */
    List<ThirdCause> listTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体总数
    * @param terms 查询条件集合
    * @return long
    */
    long countTerms(@Param("terms") Map<String, Object> terms);
    /**
    * 按条件查询实体分页结果集
    * @param page 分页对象
    * @param terms 查询条件集合
    * @return List<ThirdCause>
    */
    List<ThirdCause> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/dao/mapper/xml/SyCauseMapper.xml
New file
@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @title: 纠纷类型信息表
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-10-21 22:18:51
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.syncbydyh.dao.mapper.SyCauseMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.syncbydyh.domain.po.SyCause">
            <result property="id" column="id"/>
            <result property="name" column="name"/>
            <result property="level" column="level"/>
            <result property="parentId" column="parent_id"/>
            <result property="issueId" column="issue_id"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
            <result property="icon" column="icon"/>
    </resultMap>
    <!-- 表 -->
    <sql id='table-name'>dyh_sy_cause</sql>
    <!-- 字段 -->
    <sql id="column-part">
        id,
        name,
        level,
        parent_id,
        issue_id,
        create_time,
        update_time,
        icon
    </sql>
    <!-- 更新实体字段 -->
    <sql id="set-part">
            <if test="entity.name != null">name = #{entity.name},</if>
            <if test="entity.level != null">level = #{entity.level},</if>
            <if test="entity.parentId != null">parent_id = #{entity.parentId},</if>
            <if test="entity.issueId != null">issue_id = #{entity.issueId},</if>
            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
            <if test="entity.updateTime != null">update_time = #{entity.updateTime},</if>
            <if test="entity.icon != null">icon = #{entity.icon}</if>
    </sql>
    <!-- 条件 -->
    <sql id="where-part">
        <if test="terms != null">
            <where>
                <if test="terms.id != null and terms.id !=''">
                    and id = #{terms.id}
                </if>
                <if test="terms.name != null and terms.name !=''">
                    and name = #{terms.name}
                </if>
                <if test="terms.level != null and terms.level !=''">
                    and level = #{terms.level}
                </if>
                <if test="terms.parentId != null and terms.parentId !=''">
                    and parent_id = #{terms.parentId}
                </if>
                <if test="terms.issueId != null and terms.issueId !=''">
                    and issue_id = #{terms.issueId}
                </if>
                <if test="terms.createTime != null and terms.createTime !=''">
                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
                </if>
                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
                </if>
                <if test="terms.updateTime != null and terms.updateTime !=''">
                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
                </if>
                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
                <if test="terms.icon != null and terms.icon !=''">
                    and icon = #{terms.icon}
                </if>
            </where>
        </if>
    </sql>
    <!-- 更新对象 -->
    <update id="updateSyCause">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id = #{entity.id}
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateSyCauseTerms">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <include refid="where-part"/>
    </update>
    <!--  根据编号物理删除  -->
    <delete id="deleteSyCause">
        delete from
        <include refid="table-name" />
        where id = #{id}
    </delete>
    <!--  根据条件查询  -->
    <select id="listTerms" resultMap="dataResult">
        select
        <include refid="column-part"/>
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件统计  -->
    <select id="countTerms" resultType="java.lang.Long">
        select
        COUNT(1)
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件分页查询  -->
    <select id="pageTerms" resultMap="dataResult">
        SELECT
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        <include refid="where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/dao/mapper/xml/ThirdCauseMapper.xml
New file
@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
 * @title: 第三方纠纷类型映射表
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: liyj
 * @time:2024-10-21 22:04:49
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.syncbydyh.dao.mapper.ThirdCauseMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.syncbydyh.domain.po.ThirdCause">
            <result property="id" column="id"/>
            <result property="thirdSysId" column="third_sys_id"/>
            <result property="thirdSysName" column="third_sys_name"/>
            <result property="thirdCode" column="third_code"/>
            <result property="thirdName" column="third_name"/>
            <result property="thirdParentCode" column="third_parent_code"/>
            <result property="causeCode" column="cause_code"/>
            <result property="level" column="level"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
    </resultMap>
    <!-- 表 -->
    <sql id='table-name'>dyh_th_third_cause</sql>
    <!-- 字段 -->
    <sql id="column-part">
        id,
        third_sys_id,
        third_sys_name,
        third_code,
        third_name,
        third_parent_code,
        cause_code,
        level,
        create_time,
        update_time
    </sql>
    <!-- 更新实体字段 -->
    <sql id="set-part">
            <if test="entity.thirdSysId != null">third_sys_id = #{entity.thirdSysId},</if>
            <if test="entity.thirdSysName != null">third_sys_name = #{entity.thirdSysName},</if>
            <if test="entity.thirdCode != null">third_code = #{entity.thirdCode},</if>
            <if test="entity.thirdName != null">third_name = #{entity.thirdName},</if>
            <if test="entity.thirdParentCode != null">third_parent_code = #{entity.thirdParentCode},</if>
            <if test="entity.causeCode != null">cause_code = #{entity.causeCode},</if>
            <if test="entity.level != null">level = #{entity.level},</if>
            <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
            <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
    </sql>
    <!-- 条件 -->
    <sql id="where-part">
        <if test="terms != null">
            <where>
                <if test="terms.id != null and terms.id !=''">
                    and id = #{terms.id}
                </if>
                <if test="terms.thirdSysId != null and terms.thirdSysId !=''">
                    and third_sys_id = #{terms.thirdSysId}
                </if>
                <if test="terms.thirdSysName != null and terms.thirdSysName !=''">
                    and third_sys_name = #{terms.thirdSysName}
                </if>
                <if test="terms.thirdCode != null and terms.thirdCode !=''">
                    and third_code = #{terms.thirdCode}
                </if>
                <if test="terms.thirdName != null and terms.thirdName !=''">
                    and third_name = #{terms.thirdName}
                </if>
                <if test="terms.thirdParentCode != null and terms.thirdParentCode !=''">
                    and third_parent_code = #{terms.thirdParentCode}
                </if>
                <if test="terms.causeCode != null and terms.causeCode !=''">
                    and cause_code = #{terms.causeCode}
                </if>
                <if test="terms.level != null and terms.level !=''">
                    and level = #{terms.level}
                </if>
                <if test="terms.createTime != null and terms.createTime !=''">
                    and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
                </if>
                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
                    and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
                        and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
                </if>
                <if test="terms.updateTime != null and terms.updateTime !=''">
                    and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
                </if>
                <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
            </where>
        </if>
    </sql>
    <!-- 更新对象 -->
    <update id="updateThirdCause">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <where>
            id = #{entity.id}
        </where>
    </update>
    <!-- 条件更新对象 -->
    <update id="updateThirdCauseTerms">
        update
        <include refid="table-name"/>
        <set>
            <include refid="set-part"/>
        </set>
        <include refid="where-part"/>
    </update>
    <!--  根据编号物理删除  -->
    <delete id="deleteThirdCause">
        delete from
        <include refid="table-name" />
        where id = #{id}
    </delete>
    <!--  根据条件查询  -->
    <select id="listTerms" resultMap="dataResult">
        select
        <include refid="column-part"/>
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件统计  -->
    <select id="countTerms" resultType="java.lang.Long">
        select
        COUNT(1)
        from
        <include refid="table-name" />
        <include refid="where-part"/>
    </select>
    <!--  根据条件分页查询  -->
    <select id="pageTerms" resultMap="dataResult">
        SELECT
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        <include refid="where-part"/>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
            </foreach>
        </if>
        <if test="page.sort == null">
            order by isnull(create_time), create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
</mapper>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/bo/SyCauseBO.java
New file
@@ -0,0 +1,17 @@
package cn.huge.module.syncbydyh.domain.bo;
import cn.huge.module.syncbydyh.domain.po.SyCause;
/**
 * @title: 纠纷类型信息表业务扩展类
 * @description: 纠纷类型信息表业务扩展类
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-21 22:18:51
 * @version: 1.0.0
 * @see cn.huge.module.syncbydyh.domain.po.SyCause
 */
public class SyCauseBO extends SyCause {
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/bo/ThirdCauseBO.java
New file
@@ -0,0 +1,17 @@
package cn.huge.module.syncbydyh.domain.bo;
import cn.huge.module.syncbydyh.domain.po.ThirdCause;
/**
 * @title: 第三方纠纷类型映射表业务扩展类
 * @description: 第三方纠纷类型映射表业务扩展类
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-10-21 22:04:49
 * @version: 1.0.0
 * @see cn.huge.module.syncbydyh.domain.po.ThirdCause
 */
public class ThirdCauseBO extends ThirdCause {
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/dto/ByCaseTaskDTO.java
New file
@@ -0,0 +1,317 @@
package cn.huge.module.syncbydyh.domain.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: 白云区矛盾纠纷多元化解平台-纠纷任务
 * @description: 白云区矛盾纠纷多元化解平台-纠纷任务
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-21 08:46:40
 * @version 1.0.0
 */
@Data
public class ByCaseTaskDTO {
    /**
    * 纠纷任务编号
    */
    private String id;
    /**
    * 纠纷编号
    */
    private String caseId;
    /**
    * 系列案状态,1:正常案件,2:系列案
    */
    private String serieStatus;
    /**
    * 流程编号
    */
    private String flowId;
    /**
    * 流程实例编号
    */
    private String processInstanceId;
    /**
    * 当前流程任务编号
    */
    private String processTaskId;
    /**
    * 任务节点
    */
    private String taskNode;
    /**
    * 任务节点名称
    */
    private String taskNodeName;
    /**
    * 任务节点类型,1:首节点,2:普通节点,3:结束节点
    */
    private String taskNodeType;
    /**
    * 任务类型,1:正常任务,2:退回任务
    */
    private String taskType;
    /**
    * 经办人组织编号
    */
    private String handlerUnitId;
    /**
    * 经办人组织名称
    */
    private String handlerUnitName;
    /**
    * 经办人部门编号
    */
    private String handlerDeptId;
    /**
    * 经办人部门名称
    */
    private String handlerDeptName;
    /**
    * 经办人角色代码编号
    */
    private String handlerRoleCode;
    /**
    * 经办人角色名称
    */
    private String handlerRoleName;
    /**
    * 经办人编号
    */
    private String handlerUserId;
    /**
    * 经办人名称
    */
    private String handlerUserName;
    /**
    * 到期时间
    */
    private Date expireTime;
    /**
    * 任务进度,1:进行中,2:已完成
    */
    private String status;
    /**
    * 处理结果,1:通过,2:退回,3:终止流程
    */
    private String handleResult;
    /**
    * 异常原因(退回、终止流程是异常)
    */
    private String errorCause;
    /**
    * 异常原因名称
    */
    private String errorCauseName;
    /**
    * 处理说明
    */
    private String handleContent;
    /**
    * 任务完成时间,进度为已完成才有
    */
    private Date finishTime;
    /**
    * 调解结果
    */
    private String mediResult;
    /**
    * 调解结果名称
    */
    private String mediResultName;
    /**
    * 履行情况,22_00008-1:未履行,22_00008-2:当场履行,22_00008-3:分期履行
    */
    private String fulfilSitu;
    /**
    * 履行情况名称
    */
    private String fulfilSituName;
    /**
    * 已达成协议
    */
    private String agreeContent;
    /**
    * 调解不成功原因,22_00019-1:当事人未能就调解协议达成一致,22_00019-2:当事人拒绝调解,22_00019-3:提前终止调解,22_00019-4:当事人撤销调解请求
    */
    private String mediFalse;
    /**
    * 调解不成功原因名称
    */
    private String mediFalseName;
    /**
    * 是否转诉讼案件(调解不成功才有),1:不转诉讼,2:转诉讼
    */
    private String civilStatus;
    /**
    * 诉讼案号
    */
    private String civilNo;
    /**
    * 诉讼法院编号
    */
    private String courtId;
    /**
    * 诉讼法院名称
    */
    private String courtName;
    /**
    * 民诉前调号
    */
    private String mediateNo;
    /**
    * 民诉前调书号
    */
    private String mediateBookNo;
    /**
    * 档案年度
    */
    private String fileYear;
    /**
    * 档案卷名
    */
    private String fileBookName;
    /**
    * 档案卷号
    */
    private String fileBookNo;
    /**
    * 档案编号
    */
    private String fileNo;
    /**
    * 档案保管年限,单位:年
    */
    private Integer fileLimitYear;
    /**
    * 档案存档位置
    */
    private String fileAddr;
    /**
    * 卷宗情况说明
    */
    private String fileContent;
    /**
    * 删除状态,1:未删除(默认值),99:已删除
    */
    private String deleteStatus;
    /**
    * 顾客编号
    */
    private String custId;
    /**
    * 创建时间
    */
    private Date createTime;
    /**
    * 更新时间
    */
    private Date updateTime;
    /**
    * 下一级处理人编号,已完成才有,冗余显示
    */
    private String nextUserId;
    /**
    * 下一级处理人名称,已完成才有,冗余显示
    */
    private String nextUserName;
    /**
    * 上一任务编号,冗余显示
    */
    private String lastTaskId;
    /**
    * 上一任务经办单位编号,冗余显示
    */
    private String lastUnitId;
    /**
    * 上一任务经办单位名称,冗余显示
    */
    private String lastUnitName;
    /**
    * 上一任务经办部门编号,冗余显示
    */
    private String lastDeptId;
    /**
    * 上一任务经办部门名称,冗余显示
    */
    private String lastDeptName;
    /**
    * 上一任务经办人编号,冗余显示
    */
    private String lastUserId;
    /**
    * 上一任务经办人名称,冗余显示
    */
    private String lastUserName;
    /**
    * 上一任务处理说明,冗余显示
    */
    private String lastContent;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/dto/GZCaseDTO.java
@@ -26,4 +26,6 @@
    private List<CaseTask> gzCaseTaskDTOList;
    private List<ByCaseTaskDTO> byCaseTaskDTOList;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/po/SyCause.java
New file
@@ -0,0 +1,71 @@
package cn.huge.module.syncbydyh.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: 纠纷类型信息表数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-21 22:18:51
 * @version 1.0.0
 */
@TableName(value = "dyh_sy_cause")
@Data
public class SyCause {
    /**
    * 编码
    */
    @TableId(value = "id")
    private String id;
    /**
    * 名称
    */
    @TableField(value = "name")
    private String name;
    /**
    * 层级
    */
    @TableField(value = "level")
    private Integer level;
    /**
    * 父级编码
    */
    @TableField(value = "parent_id")
    private String parentId;
    /**
    * 调解类型
    */
    @TableField(value = "issue_id")
    private String issueId;
    /**
    * 创建时间
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * 更新时间
    */
    @TableField(value = "update_time")
    private Date updateTime;
    /**
    * 展示图标
    */
    @TableField(value = "icon")
    private String icon;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/domain/po/ThirdCause.java
New file
@@ -0,0 +1,83 @@
package cn.huge.module.syncbydyh.domain.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: 第三方纠纷类型映射表数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-10-21 22:04:49
 * @version 1.0.0
 */
@TableName(value = "dyh_th_third_cause")
@Data
public class ThirdCause {
    /**
    * 主键编号
    */
    @TableId(value = "id")
    private Integer id;
    /**
    * 第三方平台编号
    */
    @TableField(value = "third_sys_id")
    private String thirdSysId;
    /**
    * 第三方平台名称
    */
    @TableField(value = "third_sys_name")
    private String thirdSysName;
    /**
    * 第三方纠纷类型代码
    */
    @TableField(value = "third_code")
    private String thirdCode;
    /**
    * 第三方纠纷类型名称
    */
    @TableField(value = "third_name")
    private String thirdName;
    /**
    * 第三方纠纷类型父级代码
    */
    @TableField(value = "third_parent_code")
    private String thirdParentCode;
    /**
    * 本平台纠纷类型代码
    */
    @TableField(value = "cause_code")
    private String causeCode;
    /**
    * 层级
    */
    @TableField(value = "level")
    private Integer level;
    /**
    * 创建时间
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * 状态时间
    */
    @TableField(value = "update_time")
    private Date updateTime;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/service/ByToGzCaseTaskService.java
New file
@@ -0,0 +1,2199 @@
package cn.huge.module.syncbydyh.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.module.cases.consts.CaseTaskConsts;
import cn.huge.module.cases.dao.mapper.CaseTaskMapper;
import cn.huge.module.cases.domain.dto.*;
import cn.huge.module.cases.domain.po.*;
import cn.huge.module.cases.service.*;
import cn.huge.module.cases.utils.TaskUsetimeUtils;
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.client.api.impl.DispClientImpl;
import cn.huge.module.client.api.impl.SysClientImpl;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.constant.BaseConsts;
import cn.huge.module.cust.constant.UserBaseConsts;
import cn.huge.module.cust.dto.CtUnitDTO;
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.disp.constant.DispBaseConstsEnum;
import cn.huge.module.disp.dto.CaseDispBaseDTO;
import cn.huge.module.disp.dto.DispCaseBaseDTO;
import cn.huge.module.flow.consts.FlowNodeEnum;
import cn.huge.module.flow.consts.FlowableConsts;
import cn.huge.module.flow.domain.po.FlowNode;
import cn.huge.module.flow.service.FlowInfoService;
import cn.huge.module.mediate.constant.*;
import cn.huge.module.sys.constant.SyTimeEnum;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @title: 纠纷任务表业务逻辑处理
 * @Description 纠纷任务表业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-09-06 15:50:06
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class ByToGzCaseTaskService {
    @Autowired
    private CaseTaskMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    @Autowired
    private CustClientImpl custClient;
    @Autowired
    private DispClientImpl dispClient;
    @Autowired
    private FlowInfoService flowInfoService;
    @Autowired
    private CaseInfoService caseInfoService;
    @Autowired
    private SysClientImpl sysClient;
    @Autowired
    private CaseInfoUnfoldService caseInfoUnfoldService;
    @Autowired
    private CaseWindupApplyService caseWindupApplyService;
    @Autowired
    private CaseAssistApplyService caseAssistApplyService;
    @Autowired
    private CaseAppearService caseAppearService;
    @Autowired
    private CaseReturnService caseReturnService;
    @Autowired
    private CaseAssistInfoService caseAssistInfoService;
    @Autowired
    private CaseDismissService caseDismissService;
    @Autowired
    private CasePersonService casePersonService;
    /**
     * 根据纠纷编号查询进行中的配合组织任务
     * @param caseId
     * @return
     */
    public List<CaseTask> listAssistTasking(String caseId){
        // 查询配合组织的任务
        QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>();
        caseTaskQueryWrapper.eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).eq("case_id", caseId)
                .eq("status", CaseTaskConsts.TASK_STATUS_1);
        List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper);
        return assistCaseTaskList;
    }
    /**
     * web端大厅来访登记-提交纠纷事件-通过自动调度启动工作流
     * @param caseInfo
     */
    public String webStartFlowLFDJ(CaseInfo caseInfo, DispCaseBaseDTO dispCaseBaseDTO){
        try{
            String caseTaskId = null;
            CaseDispBaseDTO caseDispBaseDTO = dispClient.sysDisp(dispCaseBaseDTO);
            log.info(JSON.toJSONString(caseDispBaseDTO));
            // 目前平台只能调度给组织
            if (DispBaseConstsEnum.TARGET_TYPE_1.getIndex().equals(caseDispBaseDTO.getTargetType())) {
                // 目前平台只做镇街、村居级别的调度,
                // 启动来访登记工作流
                FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.getJbFlow(caseInfo.getCanal()), caseInfo.getId());
                if (UserBaseConsts.UNIT_TYPE_101 == caseDispBaseDTO.getTargetUnitType()){
                    // 调度给镇街综治中心,进入第1个任务节点-镇街综治中心待分派
                    CaseTask dfpCaseTask = new CaseTask();
                    dfpCaseTask.setId(utilsClient.getNewTimeId());
                    dfpCaseTask.setCaseId(caseInfo.getId());
                    dfpCaseTask.setFlowableId(firstFlowNode.getFlowableId());
                    dfpCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId());
                    dfpCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId());
                    dfpCaseTask.setNodeType(firstFlowNode.getNodeType());
                    dfpCaseTask.setNodeId(firstFlowNode.getNodeId());
                    dfpCaseTask.setNodeName(firstFlowNode.getNodeName());
                    dfpCaseTask.setFlowId(firstFlowNode.getFlowId());
                    dfpCaseTask.setNodeShowName(firstFlowNode.getNodeShowName());
                    dfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属组织:调度目标
                    dfpCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId());
                    dfpCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName());
                    // 系统调度给镇街综治中心,不需要签收
                    dfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (firstFlowNode.getExpire() != 0) {
                        dfpCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
                    }
                    dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    dfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    dfpCaseTask.setCustId(caseInfo.getCustId());
                    dfpCaseTask.setCreateTime(caseInfo.getCreateTime());
                    dfpCaseTask.setUpdateTime(caseInfo.getUpdateTime());
                    mapper.insert(dfpCaseTask);
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(caseInfo.getId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoService.updateCaseInfo(caseInfoPO);
                    caseTaskId = dfpCaseTask.getId();
                }else {
                    // 调度给调解组织,默认通过第1个任务节点-镇街综治中心待分派
                    CaseTask dfpCaseTask = new CaseTask();
                    dfpCaseTask.setId(utilsClient.getNewTimeId());
                    dfpCaseTask.setCaseId(caseInfo.getId());
                    dfpCaseTask.setFlowableId(firstFlowNode.getFlowableId());
                    dfpCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId());
                    dfpCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId());
                    dfpCaseTask.setNodeType(firstFlowNode.getNodeType());
                    dfpCaseTask.setNodeId(firstFlowNode.getNodeId());
                    dfpCaseTask.setNodeName(firstFlowNode.getNodeName());
                    dfpCaseTask.setFlowId(firstFlowNode.getFlowId());
                    dfpCaseTask.setNodeShowName(firstFlowNode.getNodeShowName());
                    dfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属组织:系统
                    dfpCaseTask.setCandeUnitName("系统派单");
                    // 调度给调解组织,不需要签收
                    dfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (firstFlowNode.getExpire() != 0) {
                        dfpCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
                    }
                    dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                    dfpCaseTask.setHandleUnitName("系统派单");
                    dfpCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
                    dfpCaseTask.setHandleIllust("派单至:"+caseDispBaseDTO.getTargetName());
                    dfpCaseTask.setHandleTime(caseInfo.getCreateTime());
                    dfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    dfpCaseTask.setCustId(caseInfo.getCustId());
                    dfpCaseTask.setCreateTime(caseInfo.getCreateTime());
                    dfpCaseTask.setUpdateTime(caseInfo.getCreateTime());
                    // 计算任务耗时、是否超时、超时多少
                    dfpCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(dfpCaseTask.getHandleTime(), dfpCaseTask.getCreateTime()));
                    dfpCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(dfpCaseTask.getHandleTime(), dfpCaseTask.getExpireTime()));
                    dfpCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(dfpCaseTask.getHandleTime(), dfpCaseTask.getExpireTime()));
                    mapper.insert(dfpCaseTask);
                    // 完成第1个工作流节点任务,进入第2个节点任务
                    FlowNode secondFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_jb_zszz, "系统派单");
                    // 创建第2个节点任务-调解组织待受理
                    CaseTask dslCaseTask = new CaseTask();
                    dslCaseTask.setId(utilsClient.getNewTimeId());
                    dslCaseTask.setCaseId(caseInfo.getId());
                    dslCaseTask.setFlowableId(secondFlowNode.getFlowableId());
                    dslCaseTask.setProcessInstanceId(secondFlowNode.getProcessInstanceId());
                    dslCaseTask.setProcessTaskId(secondFlowNode.getProcessTaskId());
                    dslCaseTask.setNodeType(secondFlowNode.getNodeType());
                    dslCaseTask.setNodeId(secondFlowNode.getNodeId());
                    dslCaseTask.setNodeName(secondFlowNode.getNodeName());
                    dslCaseTask.setFlowId(secondFlowNode.getFlowId());
                    dslCaseTask.setNodeShowName(secondFlowNode.getNodeShowName());
                    dslCaseTask.setCaseTaskType(dfpCaseTask.getCaseTaskType());
                    // 任务所属组织:调度目标
                    dslCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId());
                    dslCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName());
                    // 系统调度给调解组织,需要签收
                    dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
                    dslCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex()));
                    // 任务处理时限
                    if (firstFlowNode.getExpire() != 0) {
                        dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
                    }
                    dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    dslCaseTask.setCustId(caseInfo.getCustId());
                    dslCaseTask.setCreateTime(caseInfo.getCreateTime());
                    dslCaseTask.setUpdateTime(caseInfo.getUpdateTime());
                    mapper.insert(dslCaseTask);
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(caseInfo.getId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_2.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_2.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoService.updateCaseInfo(caseInfoPO);
                    caseTaskId = dslCaseTask.getId();
                }
            }
            return caseTaskId;
        }catch (Exception e){
            log.error("[CaseTaskService.webStartFlowLFDJ]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webStartFlowLFDJ", e);
        }
    }
    /**
     * web端大厅来访登记-自行受理-启动自行受理流程
     * @param caseInfo
     * @param loginUser
     */
    public String webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){
        try{
            // 启动自行受理工作流,进入待受理任务节点
            FlowNode dslFlowNode = flowInfoService.startFlow(FlowableConsts.getZxslFlow(caseInfo.getCanal()), caseInfo.getId());
            // 创建并完成待受理节点任务
            CaseTask dslCaseTask = new CaseTask();
            dslCaseTask.setId(utilsClient.getNewTimeId());
            dslCaseTask.setCaseId(caseInfo.getId());
            dslCaseTask.setFlowableId(dslFlowNode.getFlowableId());
            dslCaseTask.setProcessInstanceId(dslFlowNode.getProcessInstanceId());
            dslCaseTask.setProcessTaskId(dslFlowNode.getProcessTaskId());
            dslCaseTask.setNodeType(dslFlowNode.getNodeType());
            dslCaseTask.setNodeId(dslFlowNode.getNodeId());
            dslCaseTask.setNodeName(dslFlowNode.getNodeName());
            dslCaseTask.setFlowId(dslFlowNode.getFlowId());
            dslCaseTask.setNodeShowName(dslFlowNode.getNodeShowName());
            dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
            // 任务所属组织:当前登记组织
            dslCaseTask.setCandeUnitId(loginUser.getUnitId());
            dslCaseTask.setCandeUnitName(loginUser.getUnitName());
            // 自行受理,不需要签收
            dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
            // 任务处理时限
            if (dslFlowNode.getExpire() != 0) {
                dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), dslFlowNode.getExpire()));
            }
            dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
            dslCaseTask.setHandleUnitId(loginUser.getUnitId());
            dslCaseTask.setHandleUnitName(loginUser.getUnitName());
            dslCaseTask.setHandleDeptId(loginUser.getDeptId());
            dslCaseTask.setHandleDeptName(loginUser.getDeptName());
            dslCaseTask.setHandleUserId(loginUser.getId());
            dslCaseTask.setHandleUserName(loginUser.getTrueName());
            dslCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
            dslCaseTask.setHandleIllust("自行受理");
            dslCaseTask.setHandleTime(caseInfo.getCreateTime());
            dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            dslCaseTask.setCustId(caseInfo.getCustId());
            dslCaseTask.setCreateTime(caseInfo.getCreateTime());
            dslCaseTask.setUpdateTime(caseInfo.getCreateTime());
            // 计算任务耗时、是否超时、超时多少
            dslCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(dslCaseTask.getHandleTime(), dslCaseTask.getCreateTime()));
            dslCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(dslCaseTask.getHandleTime(), dslCaseTask.getExpireTime()));
            dslCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(dslCaseTask.getHandleTime(), dslCaseTask.getExpireTime()));
            mapper.insert(dslCaseTask);
            // 完成待受理工作流节点任务,进入办理反馈任务节点
            FlowNode blfkFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(),
                    FlowableConsts.OPERATION_forward, loginUser.getId());
            // 创建办理反馈节点任务
            CaseTask blfkCaseTask = new CaseTask();
            blfkCaseTask.setId(utilsClient.getNewTimeId());
            blfkCaseTask.setCaseId(caseInfo.getId());
            blfkCaseTask.setFlowableId(blfkFlowNode.getFlowableId());
            blfkCaseTask.setProcessInstanceId(blfkFlowNode.getProcessInstanceId());
            blfkCaseTask.setProcessTaskId(blfkFlowNode.getProcessTaskId());
            blfkCaseTask.setNodeType(blfkFlowNode.getNodeType());
            blfkCaseTask.setNodeId(blfkFlowNode.getNodeId());
            blfkCaseTask.setNodeName(blfkFlowNode.getNodeName());
            blfkCaseTask.setFlowId(blfkFlowNode.getFlowId());
            blfkCaseTask.setNodeShowName(blfkFlowNode.getNodeShowName());
            blfkCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
            // 任务所属组织:当前登记组织
            blfkCaseTask.setCandeUnitId(loginUser.getUnitId());
            blfkCaseTask.setCandeUnitName(loginUser.getUnitName());
            // 受理后的节点任务节点,不需要签收
            blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
            // 任务处理时限
            if (blfkFlowNode.getExpire() != 0) {
                blfkCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), blfkFlowNode.getExpire()));
            }
            blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
            blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            blfkCaseTask.setCustId(caseInfo.getCustId());
            blfkCaseTask.setCreateTime(caseInfo.getCreateTime());
            blfkCaseTask.setUpdateTime(caseInfo.getUpdateTime());
            mapper.insert(blfkCaseTask);
            // 更新纠纷信息
            CaseInfo caseInfoPO = new CaseInfo();
            caseInfoPO.setId(caseInfo.getId());
            caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_4.getIndex());
            caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_4.getDes());
            caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
            caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
            caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
            caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
            caseInfoService.updateCaseInfo(caseInfoPO);
            // 更新纠纷扩展信息
            CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
            caseInfoUnfoldPO.setId(blfkCaseTask.getCaseId());
            caseInfoUnfoldPO.setAcceptTime(blfkCaseTask.getCreateTime());
            caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId());
            caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName());
            caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            return blfkCaseTask.getId();
        }catch (Exception e){
            log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webStartFlowZXSL", e);
        }
    }
    /**
     * web端任务处理-不予受理
     * @param caseDismiss 不予受理表单
     * @param userId 当前登录用户
     */
    public void webDismiss(CaseDismiss caseDismiss, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 查询当前节点任务
            CaseTask caseTask = mapper.selectById(caseDismiss.getCaseTaskId());
            // 结束当前节点任务
            CaseTask caseTaskPO = new CaseTask();
            caseTaskPO.setId(caseDismiss.getCaseTaskId());
            caseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
            caseTaskPO.setHandleUnitId(loginUser.getUnitId());
            caseTaskPO.setHandleUnitName(loginUser.getUnitName());
            caseTaskPO.setHandleUserId(loginUser.getId());
            caseTaskPO.setHandleDeptId(loginUser.getDeptId());
            caseTaskPO.setHandleDeptName(loginUser.getDeptName());
            caseTaskPO.setHandleUserName(loginUser.getTrueName());
            caseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_3);
            caseTaskPO.setHandleContent(caseDismiss.getDisContent());
            caseTaskPO.setHandleTime(nowDate);
            caseTaskPO.setUpdateTime(nowDate);
            // 计算任务耗时、是否超时、超时多少
            caseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(caseTaskPO.getHandleTime(), caseTask.getCreateTime()));
            caseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(caseTaskPO.getHandleTime(), caseTask.getExpireTime()));
            caseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(caseTaskPO.getHandleTime(), caseTask.getExpireTime()));
            mapper.updateCaseTask(caseTaskPO);
            // 结束当前工作流
            flowInfoService.endFlow(caseTask.getProcessInstanceId());
            // 更新纠纷信息
            CaseInfo caseInfoPO = new CaseInfo();
            caseInfoPO.setId(caseTask.getCaseId());
            caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_8.getIndex());
            caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_8.getDes());
            caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
            caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
            caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
            caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
            caseInfoPO.setUpdateTime(nowDate);
            caseInfoService.updateCaseInfo(caseInfoPO);
            // 有配合组织,也结束配合组织工作流
            List<CaseTask> assistCaseTaskList = this.listAssistTasking(caseDismiss.getCaseId());
            for (CaseTask assistCaseTask: assistCaseTaskList){
                // 完成配合组织当前节点任务
                assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                assistCaseTask.setHandleUnitId(loginUser.getUnitId());
                assistCaseTask.setHandleUnitName(loginUser.getUnitName()+"(承办部门)");
                assistCaseTask.setHandleDeptId(loginUser.getDeptId());
                assistCaseTask.setHandleDeptName(loginUser.getDeptName()+"(承办部门)");
                assistCaseTask.setHandleUserId(loginUser.getId());
                assistCaseTask.setHandleUserName(loginUser.getTrueName()+"(承办部门)");
                assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_3);
                assistCaseTask.setHandleTime(nowDate);
                assistCaseTask.setUpdateTime(nowDate);
                // 计算任务耗时、是否超时、超时多少
                assistCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getCreateTime()));
                assistCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime()));
                assistCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime()));
                mapper.updateCaseTask(assistCaseTask);
                // 结束配合组织当前工作流
                flowInfoService.endFlow(assistCaseTask.getProcessInstanceId());
            }
            // 新增不予受理信息
            caseDismiss.setCaseTaskTime(caseTask.getCreateTime());
            caseDismiss.setDisUnitId(loginUser.getUnitId());
            caseDismiss.setDisUnitName(loginUser.getUnitName());
            caseDismiss.setDisUserId(loginUser.getId());
            caseDismiss.setDisUserName(loginUser.getTrueName());
            caseDismiss.setDisTime(nowDate);
            caseDismiss.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            caseDismiss.setCustId(caseTask.getCustId());
            caseDismiss.setCreateTime(nowDate);
            caseDismiss.setUpdateTime(nowDate);
            caseDismissService.save(caseDismiss);
        }catch (Exception e){
            log.error("[CaseTaskService.webAssign]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAssign", e);
        }
    }
    /**
     * web端任务处理-交办
     * @param assignTaskDTO 交办任务表单
     * @param userId 当前登录用户
     */
    public void webAssign(AssignTaskDTO assignTaskDTO, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 查询交办的组织信息
            CtUnitDTO dslUnitDTO = custClient.getUnitById(assignTaskDTO.getHandleUnitId());
            // 查询当前待分派节点任务
            CaseTask dfpCaseTask = mapper.selectById(assignTaskDTO.getCaseTaskId());
            // 完成当前待分派节点任务
            CaseTask dfpCaseTaskPO = new CaseTask();
            dfpCaseTaskPO.setId(assignTaskDTO.getCaseTaskId());
            dfpCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
            dfpCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
            dfpCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
            dfpCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
            dfpCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
            dfpCaseTaskPO.setHandleUserId(loginUser.getId());
            dfpCaseTaskPO.setHandleUserName(loginUser.getTrueName());
            dfpCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
            dfpCaseTaskPO.setHandleContent(assignTaskDTO.getAssignContent());
            dfpCaseTaskPO.setHandleIllust("派单至:"+assignTaskDTO.getHandleUnitName());
            dfpCaseTaskPO.setHandleTime(nowDate);
            dfpCaseTaskPO.setUpdateTime(nowDate);
            // 计算任务耗时、是否超时、超时多少
            dfpCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(dfpCaseTaskPO.getHandleTime(), dfpCaseTask.getCreateTime()));
            dfpCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(dfpCaseTaskPO.getHandleTime(), dfpCaseTask.getExpireTime()));
            dfpCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(dfpCaseTaskPO.getHandleTime(), dfpCaseTask.getExpireTime()));
            mapper.updateCaseTask(dfpCaseTaskPO);
            String flowOperation = null;
            // 镇街综治中心待分派节点
            if (FlowNodeEnum.FLOW_NODE_ZJ_DFP.getIndex().equals(dfpCaseTask.getNodeId())){
                flowOperation = FlowableConsts.OPERATION_jb_zszz;
            }
            // 区综治中心待分派节点
            if (FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex().equals(dfpCaseTask.getNodeId())){
                // 查询承办组织信息
                if (UserBaseConsts.UNIT_GRADE_2 == dslUnitDTO.getUnitGrade()) {
                    flowOperation = FlowableConsts.OPERATION_jb_zszz;
                }else {
                    flowOperation = FlowableConsts.OPERATION_jb_zzzx;
                }
            }
            // 市综治中心待分派节点
            if (FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(dfpCaseTask.getNodeId())){
                if (UserBaseConsts.UNIT_GRADE_1 == dslUnitDTO.getUnitGrade()) {
                    flowOperation = FlowableConsts.OPERATION_jb_zszz;
                }else {
                    flowOperation = FlowableConsts.OPERATION_jb_zzzx;
                }
            }
            // 完成当前待分派工作流节点任务,进入待受理任务节点
            FlowNode newFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(),
                    flowOperation, userId);
            // 新建待受理节点任务
            CaseTask dslCaseTask = new CaseTask();
            dslCaseTask.setId(utilsClient.getNewTimeId());
            dslCaseTask.setCaseId(dfpCaseTask.getCaseId());
            dslCaseTask.setFlowableId(newFlowNode.getFlowableId());
            dslCaseTask.setProcessInstanceId(newFlowNode.getProcessInstanceId());
            dslCaseTask.setProcessTaskId(newFlowNode.getProcessTaskId());
            dslCaseTask.setNodeType(newFlowNode.getNodeType());
            dslCaseTask.setNodeId(newFlowNode.getNodeId());
            dslCaseTask.setNodeName(newFlowNode.getNodeName());
            dslCaseTask.setFlowId(newFlowNode.getFlowId());
            dslCaseTask.setNodeShowName(newFlowNode.getNodeShowName());
            dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
            // 任务所属组织:交办的组织
            dslCaseTask.setCandeUnitId(dslUnitDTO.getId());
            dslCaseTask.setCandeUnitName(dslUnitDTO.getUnitName());
            // 交办的待受理节点任务,需要签收
            dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
            dslCaseTask.setSignExpireTime(sysClient.getExpireTime(nowDate, SyTimeEnum.SY_TIME_2.getIndex()));
            // 任务处理时限
            if (newFlowNode.getExpire() != 0) {
                dslCaseTask.setExpireTime(DateUtils.addDay(nowDate, newFlowNode.getExpire()));
            }
            dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
            dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            dslCaseTask.setCustId(dfpCaseTask.getCustId());
            dslCaseTask.setCreateTime(nowDate);
            dslCaseTask.setUpdateTime(nowDate);
            mapper.insert(dslCaseTask);
            // 更新纠纷信息
            CaseInfo caseInfoPO = new CaseInfo();
            caseInfoPO.setId(dslCaseTask.getCaseId());
            caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex());
            caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes());
            caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
            caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
            caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
            caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
            caseInfoPO.setUpdateTime(nowDate);
            caseInfoService.updateCaseInfo(caseInfoPO);
            // 交办配合组织
            if (CollectionUtils.isNotEmpty(assignTaskDTO.getAssistUnitList())){
                // 拼接配合组织编号和名称
                String assistUnitId = assignTaskDTO.getAssistUnitList().stream().map(AssignAssistUnitDTO::getUitId).
                        collect(Collectors.joining(BaseConsts.COMMA));
                String assistUnitName = assignTaskDTO.getAssistUnitList().stream().map(AssignAssistUnitDTO::getUitName).
                        collect(Collectors.joining(BaseConsts.COMMA));
                for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){
                    // 启动联合处置工作流
                    FlowNode lhczdfpFlowNode = flowInfoService.startFlow(FlowableConsts.GZDYH_LHCZ_V1, dfpCaseTask.getCaseId());
                    // 新建并完成待分派节点任务
                    CaseTask lhczdfpCaseTask = new CaseTask();
                    lhczdfpCaseTask.setId(utilsClient.getNewTimeId());
                    lhczdfpCaseTask.setCaseId(dfpCaseTask.getCaseId());
                    lhczdfpCaseTask.setFlowableId(lhczdfpFlowNode.getFlowableId());
                    lhczdfpCaseTask.setProcessInstanceId(lhczdfpFlowNode.getProcessInstanceId());
                    lhczdfpCaseTask.setProcessTaskId(lhczdfpFlowNode.getProcessTaskId());
                    lhczdfpCaseTask.setNodeType(lhczdfpFlowNode.getNodeType());
                    lhczdfpCaseTask.setNodeId(lhczdfpFlowNode.getNodeId());
                    lhczdfpCaseTask.setNodeName(lhczdfpFlowNode.getNodeName());
                    lhczdfpCaseTask.setFlowId(lhczdfpFlowNode.getFlowId());
                    lhczdfpCaseTask.setNodeShowName(lhczdfpFlowNode.getNodeShowName());
                    lhczdfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    // 任务所属单位:当前操作组织
                    lhczdfpCaseTask.setCandeUnitId(loginUser.getUnitId());
                    lhczdfpCaseTask.setCandeUnitName(loginUser.getUnitName());
                    // 待分派节点任务,不需要签收
                    lhczdfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    lhczdfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                    lhczdfpCaseTask.setHandleUnitId(loginUser.getUnitId());
                    lhczdfpCaseTask.setHandleUnitName(loginUser.getUnitName());
                    lhczdfpCaseTask.setHandleDeptId(loginUser.getDeptId());
                    lhczdfpCaseTask.setHandleDeptName(loginUser.getDeptName());
                    lhczdfpCaseTask.setHandleUserId(loginUser.getId());
                    lhczdfpCaseTask.setHandleUserName(loginUser.getTrueName());
                    lhczdfpCaseTask.setHandleContent(assignTaskDTO.getAssignContent());
                    lhczdfpCaseTask.setHandleIllust("交办至:"+assistUnitName);
                    // 任务处理时限
                    if (lhczdfpFlowNode.getExpire() != 0) {
                        lhczdfpCaseTask.setExpireTime(DateUtils.addDay(nowDate, lhczdfpFlowNode.getExpire()));
                    }
                    lhczdfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    lhczdfpCaseTask.setCustId(dfpCaseTask.getCustId());
                    lhczdfpCaseTask.setCreateTime(nowDate);
                    lhczdfpCaseTask.setUpdateTime(nowDate);
                    mapper.insert(lhczdfpCaseTask);
                    // 完成待分派节点任务,进去待受理节点
                    FlowNode lhczdslFlowNode = flowInfoService.completeTask(lhczdfpCaseTask.getFlowableId(), lhczdfpCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_forward, loginUser.getId());
                    // 创建待受理节点任务
                    CaseTask lhczdslCaseTask = new CaseTask();
                    lhczdslCaseTask.setId(utilsClient.getNewTimeId());
                    lhczdslCaseTask.setCaseId(lhczdfpCaseTask.getCaseId());
                    lhczdslCaseTask.setFlowableId(lhczdslFlowNode.getFlowableId());
                    lhczdslCaseTask.setProcessInstanceId(lhczdslFlowNode.getProcessInstanceId());
                    lhczdslCaseTask.setProcessTaskId(lhczdslFlowNode.getProcessTaskId());
                    lhczdslCaseTask.setNodeType(lhczdslFlowNode.getNodeType());
                    lhczdslCaseTask.setNodeId(lhczdslFlowNode.getNodeId());
                    lhczdslCaseTask.setNodeName(lhczdslFlowNode.getNodeName());
                    lhczdslCaseTask.setFlowId(lhczdslFlowNode.getFlowId());
                    lhczdslCaseTask.setNodeShowName(lhczdslFlowNode.getNodeShowName());
                    lhczdslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    // 任务所属单位:交办的配合组织
                    lhczdslCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId());
                    lhczdslCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName());
                    // 交办的待受理节点任务,需要签收
                    lhczdslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
                    lhczdslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    // 任务处理时限
                    if (lhczdslFlowNode.getExpire() != 0) {
                        lhczdslCaseTask.setExpireTime(DateUtils.addDay(nowDate, lhczdslFlowNode.getExpire()));
                    }
                    lhczdslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    lhczdslCaseTask.setCustId(lhczdfpCaseTask.getCustId());
                    lhczdslCaseTask.setCreateTime(nowDate);
                    lhczdslCaseTask.setUpdateTime(nowDate);
                    mapper.insert(lhczdslCaseTask);
                    // 新增联合处置信息
                    CaseAssistInfo caseAssistInfoPO = new CaseAssistInfo();
                    caseAssistInfoPO.setId(utilsClient.getNewTimeId());
                    caseAssistInfoPO.setCaseId(lhczdslCaseTask.getCaseId());
                    caseAssistInfoPO.setProcessInstanceId(lhczdslCaseTask.getProcessInstanceId());
                    caseAssistInfoPO.setAssistUnitId(assignAssistUnitDTO.getUitId());
                    caseAssistInfoPO.setAssistUnitName(assignAssistUnitDTO.getUitName());
                    caseAssistInfoPO.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_0);
                    caseAssistInfoPO.setCustId(lhczdslCaseTask.getCustId());
                    caseAssistInfoPO.setCreateTime(nowDate);
                    caseAssistInfoPO.setUpdateTime(nowDate);
                    caseAssistInfoService.save(caseAssistInfoPO);
                }
                // 更新纠纷扩展信息
                CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
                caseInfoUnfoldPO.setId(dslCaseTask.getCaseId());
                caseInfoUnfoldPO.setAssistUnitId(assistUnitId);
                caseInfoUnfoldPO.setAssistUnitName(assistUnitName);
                caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webAssign]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAssign", e);
        }
    }
    /**
     * web端任务处理-签收
     * @param signTaskDTOList 签收任务表单
     * @param userId 当前登录用户
     */
    public void webSign(List<SignTaskDTO> signTaskDTOList, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            for (SignTaskDTO signTaskDTO: signTaskDTOList){
                CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseTaskId());
                // 更新纠纷任务信息
                CaseTask caseTaskPO = new CaseTask();
                caseTaskPO.setId(qsCaseTask.getId());
                caseTaskPO.setSignStatus(CaseTaskConsts.SIGN_STATUS_2);
                caseTaskPO.setSignTime(nowDate);
                caseTaskPO.setSignUserId(loginUser.getId());
                caseTaskPO.setSignUserName(loginUser.getTrueName());
                caseTaskPO.setHandleIllust("已签收");
                caseTaskPO.setUpdateTime(nowDate);
                mapper.updateCaseTask(caseTaskPO);
                // 承办组织签收才更新纠纷信息
                if (CaseTaskConsts.CASE_TASK_TYPE_1 ==  qsCaseTask.getCaseTaskType()) {
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(qsCaseTask.getCaseId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoPO.setUpdateTime(nowDate);
                    caseInfoService.updateCaseInfo(caseInfoPO);
                }
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webSign]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webSign", e);
        }
    }
    /**
     * web端任务处理-受理
     * @param acceptTaskDTO 受理任务表单
     * @param userId 当前登录用户
     */
    public String webAccept(AcceptTaskDTO acceptTaskDTO, String userId, Date nowDate){
        try{
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 查询当前待受理节点任务
            CaseTask dslCaseTask = mapper.selectById(acceptTaskDTO.getCaseTaskId());
            // 完成当前待受理节点任务
            CaseTask dslCaseTaskPO = new CaseTask();
            dslCaseTaskPO.setId(acceptTaskDTO.getCaseTaskId());
            dslCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
            dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
            dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
            dslCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
            dslCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
            dslCaseTaskPO.setHandleUserId(loginUser.getId());;
            dslCaseTaskPO.setHandleUserName(loginUser.getTrueName());
            dslCaseTaskPO.setHandleIllust("已受理");
            dslCaseTaskPO.setHandleUserName(loginUser.getTrueName());
            dslCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
            dslCaseTaskPO.setHandleTime(nowDate);
            dslCaseTaskPO.setUpdateTime(nowDate);
            // 计算任务耗时、是否超时、超时多少
            dslCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(dslCaseTaskPO.getHandleTime(), dslCaseTask.getCreateTime()));
            dslCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(dslCaseTaskPO.getHandleTime(), dslCaseTask.getExpireTime()));
            dslCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(dslCaseTaskPO.getHandleTime(), dslCaseTask.getExpireTime()));
            mapper.updateCaseTask(dslCaseTaskPO);
            // 完成当前待受理工作流节点任务,机内办理反馈节点
            String operation = FlowableConsts.OPERATION_sl;
            if (CaseTaskConsts.CASE_TASK_TYPE_2 ==  dslCaseTask.getCaseTaskType()) {
                // 配合组织受理条件改为通过
                operation = FlowableConsts.OPERATION_forward;
            }
            FlowNode newFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(),
                    operation, userId);
            // 新建办理反馈节点任务
            CaseTask blfkCaseTask = new CaseTask();
            blfkCaseTask.setId(utilsClient.getNewTimeId());
            blfkCaseTask.setCaseId(dslCaseTask.getCaseId());
            blfkCaseTask.setFlowableId(newFlowNode.getFlowableId());
            blfkCaseTask.setProcessInstanceId(newFlowNode.getProcessInstanceId());
            blfkCaseTask.setProcessTaskId(newFlowNode.getProcessTaskId());
            blfkCaseTask.setNodeType(newFlowNode.getNodeType());
            blfkCaseTask.setNodeId(newFlowNode.getNodeId());
            blfkCaseTask.setNodeName(newFlowNode.getNodeName());
            blfkCaseTask.setFlowId(newFlowNode.getFlowId());
            blfkCaseTask.setNodeShowName(newFlowNode.getNodeShowName());
            blfkCaseTask.setCaseTaskType(dslCaseTask.getCaseTaskType());
            // 任务所属单位:当前受理单位
            blfkCaseTask.setCandeUnitId(loginUser.getUnitId());
            blfkCaseTask.setCandeUnitName(loginUser.getUnitName());
            // 受理后的节点任务,不需要签收
            blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
            blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
            // 任务处理时限
            if (newFlowNode.getExpire() != 0) {
                blfkCaseTask.setExpireTime(DateUtils.addDay(nowDate, newFlowNode.getExpire()));
            }
            blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            blfkCaseTask.setCustId(dslCaseTask.getCustId());
            blfkCaseTask.setCreateTime(nowDate);
            blfkCaseTask.setUpdateTime(nowDate);
            mapper.insert(blfkCaseTask);
            // 承办组织受理才更新纠纷信息
            if (CaseTaskConsts.CASE_TASK_TYPE_1 ==  dslCaseTask.getCaseTaskType()) {
                // 更新纠纷信息
                CaseInfo caseInfoPO = new CaseInfo();
                caseInfoPO.setId(blfkCaseTask.getCaseId());
                caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_4.getIndex());
                caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_4.getDes());
                caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                caseInfoPO.setUpdateTime(nowDate);
                caseInfoService.updateCaseInfo(caseInfoPO);
                // 更新纠纷扩展信息
                CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
                caseInfoUnfoldPO.setId(blfkCaseTask.getCaseId());
                caseInfoUnfoldPO.setAcceptTime(nowDate);
                caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId());
                caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName());
                caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            }else {
                // 更新配合组织联合处置信息
                QueryWrapper<CaseAssistInfo> caseAssistInfoQueryWrapper = new QueryWrapper<>();
                caseAssistInfoQueryWrapper.eq("case_id", blfkCaseTask.getCaseId())
                        .eq("assist_unit_id", loginUser.getUnitId()).eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0);
                CaseAssistInfo caseAssistInfoPO = caseAssistInfoService.getOne(caseAssistInfoQueryWrapper);
                caseAssistInfoPO.setCaseTaskId(blfkCaseTask.getId());
                caseAssistInfoPO.setAcceptTime(nowDate);
                caseAssistInfoService.updateCaseAssistInfo(caseAssistInfoPO);
            }
            return blfkCaseTask.getId();
        }catch (Exception e){
            log.error("[CaseTaskService.webAccept]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAccept", e);
        }
    }
    /**
     * web端任务处理-结案申请
     * @param caseWindupApply 结案申请表单
     * @param userId 当前登录用户
     */
    public void webWindupApply(CaseWindupApply caseWindupApply, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 新增结案申请信息
            caseWindupApply.setApplyUnitId(loginUser.getUnitId());
            caseWindupApply.setApplyUnitName(loginUser.getUnitName());
            caseWindupApply.setApplyUserId(loginUser.getId());
            caseWindupApply.setApplyUserName(loginUser.getTrueName());
            caseWindupApply.setApplyTime(nowDate);
            caseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            caseWindupApply.setCreateTime(nowDate);
            caseWindupApply.setUpdateTime(nowDate);
            // 查询办理反馈节点任务
            CaseTask blfkCaseTask = mapper.selectById(caseWindupApply.getCaseTaskId());
            // 完成当前办理反馈节点任务
            CaseTask blfkCaseTaskPO = new CaseTask();
            blfkCaseTaskPO.setId(caseWindupApply.getCaseTaskId());
            blfkCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
            blfkCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
            blfkCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
            blfkCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
            blfkCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
            blfkCaseTaskPO.setHandleUserId(loginUser.getId());
            blfkCaseTaskPO.setHandleUserName(loginUser.getTrueName());
            blfkCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
            blfkCaseTaskPO.setHandleTime(nowDate);
            blfkCaseTaskPO.setUpdateTime(nowDate);
            // 计算任务耗时、是否超时、超时多少
            blfkCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(blfkCaseTaskPO.getHandleTime(), blfkCaseTask.getCreateTime()));
            blfkCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(blfkCaseTaskPO.getHandleTime(), blfkCaseTask.getExpireTime()));
            blfkCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(blfkCaseTaskPO.getHandleTime(), blfkCaseTask.getExpireTime()));
            mapper.updateCaseTask(blfkCaseTaskPO);
            // 完成当前待受理工作流节点任务,进入结案申请节点
            FlowNode jasqFlowNode = flowInfoService.completeTask(blfkCaseTask.getFlowableId(), blfkCaseTask.getProcessTaskId(),
                    FlowableConsts.OPERATION_forward, userId);
            // 新建并自动完成结案申请节点任务
            CaseTask jasqCaseTask = new CaseTask();
            jasqCaseTask.setId(utilsClient.getNewTimeId());
            jasqCaseTask.setCaseId(blfkCaseTask.getCaseId());
            jasqCaseTask.setFlowableId(jasqFlowNode.getFlowableId());
            jasqCaseTask.setProcessInstanceId(jasqFlowNode.getProcessInstanceId());
            jasqCaseTask.setProcessTaskId(jasqFlowNode.getProcessTaskId());
            jasqCaseTask.setNodeType(jasqFlowNode.getNodeType());
            jasqCaseTask.setNodeId(jasqFlowNode.getNodeId());
            jasqCaseTask.setNodeName(jasqFlowNode.getNodeName());
            jasqCaseTask.setFlowId(jasqFlowNode.getFlowId());
            jasqCaseTask.setNodeShowName(jasqFlowNode.getNodeShowName());
            jasqCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
            // 任务所属单位:当前结案申请组织
            jasqCaseTask.setCandeUnitId(loginUser.getUnitId());
            jasqCaseTask.setCandeUnitName(loginUser.getUnitName());
            // 受理后的节点任务,不需要签收
            jasqCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
            // 任务处理时限
            if (jasqFlowNode.getExpire() != 0) {
                jasqCaseTask.setExpireTime(DateUtils.addDay(nowDate, jasqFlowNode.getExpire()));
            }
            jasqCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
            jasqCaseTask.setHandleUnitId(loginUser.getUnitId());
            jasqCaseTask.setHandleUnitName(loginUser.getUnitName());
            jasqCaseTask.setHandleDeptId(loginUser.getDeptId());
            jasqCaseTask.setHandleDeptName(loginUser.getDeptName());
            jasqCaseTask.setHandleUserId(loginUser.getId());
            jasqCaseTask.setHandleUserName(loginUser.getTrueName());
            jasqCaseTask.setHandleContent(caseWindupApply.getWindupContent());
            jasqCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
            jasqCaseTask.setHandleTime(nowDate);
            jasqCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            jasqCaseTask.setCustId(blfkCaseTask.getCustId());
            jasqCaseTask.setCreateTime(nowDate);
            jasqCaseTask.setUpdateTime(nowDate);
            // 计算任务耗时、是否超时、超时多少
            jasqCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jasqCaseTask.getHandleTime(), jasqCaseTask.getCreateTime()));
            jasqCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jasqCaseTask.getHandleTime(), jasqCaseTask.getExpireTime()));
            jasqCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jasqCaseTask.getHandleTime(), jasqCaseTask.getExpireTime()));
            mapper.insert(jasqCaseTask);
            // 化解成功,自动结案审核通过
            if (MediResultBaseConstsEnum.MEDI_RESULT_1.getIndex().equals(caseWindupApply.getMediResult())){
                // 完成当前结案申请工作流节点任务,走结案审核任务
                FlowNode jashFlowNode = flowInfoService.completeTask(jasqCaseTask.getFlowableId(), jasqCaseTask.getProcessTaskId(),
                        FlowableConsts.OPERATION_forward, userId);
                // 新建并自动完成结案审核任务
                CaseTask jashCaseTask = new CaseTask();
                jashCaseTask.setId(utilsClient.getNewTimeId());
                jashCaseTask.setCaseId(jasqCaseTask.getCaseId());
                jashCaseTask.setFlowableId(jashFlowNode.getFlowableId());
                jashCaseTask.setProcessInstanceId(jashFlowNode.getProcessInstanceId());
                jashCaseTask.setProcessTaskId(jashFlowNode.getProcessTaskId());
                jashCaseTask.setNodeType(jashFlowNode.getNodeType());
                jashCaseTask.setNodeId(jashFlowNode.getNodeId());
                jashCaseTask.setNodeName(jashFlowNode.getNodeName());
                jashCaseTask.setFlowId(jashFlowNode.getFlowId());
                jashCaseTask.setNodeShowName(jashFlowNode.getNodeShowName());
                jashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                // 任务所属单位:结案申请操作组织
                jashCaseTask.setCandeUnitId(loginUser.getUnitId());
                jashCaseTask.setCandeUnitName(loginUser.getUnitName());
                // 受理后的节点任务,不需要签收
                jashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                // 任务处理时限
                if (jashFlowNode.getExpire() != 0) {
                    jashCaseTask.setExpireTime(DateUtils.addDay(nowDate, jashFlowNode.getExpire()));
                }
                jashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                jashCaseTask.setHandleUnitId(loginUser.getUnitId());
                jashCaseTask.setHandleUnitName(loginUser.getUnitName());
                jashCaseTask.setHandleDeptId(loginUser.getDeptId());
                jashCaseTask.setHandleDeptName(loginUser.getDeptName());
                jashCaseTask.setHandleUserId(loginUser.getId());
                jashCaseTask.setHandleUserName(loginUser.getTrueName());
                jashCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
                jashCaseTask.setHandleTime(DateUtils.addMinute(nowDate, 1));
                jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                jashCaseTask.setCustId(jasqCaseTask.getCustId());
                jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1));
                jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1));
                // 计算任务耗时、是否超时、超时多少
                jashCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jashCaseTask.getHandleTime(), jashCaseTask.getCreateTime()));
                jashCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jashCaseTask.getHandleTime(), jashCaseTask.getExpireTime()));
                jashCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jashCaseTask.getHandleTime(), jashCaseTask.getExpireTime()));
                mapper.insert(jashCaseTask);
                // 完成当前结案审核工作流任务,走下一个节点
                FlowNode nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                        FlowableConsts.OPERATION_jash_ty, userId);
                // 下一个节点是当事人评价节点,进入当事人评价节点任务
                if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(nextFlowNode.getNodeId())){
                    // 新建当事人评价节点任务
                    CaseTask dsrpjCaseTask = new CaseTask();
                    dsrpjCaseTask.setId(utilsClient.getNewTimeId());
                    dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId());
                    dsrpjCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                    dsrpjCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                    dsrpjCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                    dsrpjCaseTask.setNodeType(nextFlowNode.getNodeType());
                    dsrpjCaseTask.setNodeId(nextFlowNode.getNodeId());
                    dsrpjCaseTask.setNodeName(nextFlowNode.getNodeName());
                    dsrpjCaseTask.setFlowId(nextFlowNode.getFlowId());
                    dsrpjCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                    dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属人:当事人
                    EvaluatePersonDTO evaluatePersonDTO = casePersonService.getEvaluatePerson(jashCaseTask.getCaseId());
                    dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getId());
                    dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getName());
                    // 受理后的节点任务,不需要签收
                    dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (nextFlowNode.getExpire() != 0) {
                        dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                    }
                    dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    dsrpjCaseTask.setCustId(jashCaseTask.getCustId());
                    dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2));
                    dsrpjCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 2));
                    mapper.insert(dsrpjCaseTask);
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(jashCaseTask.getCaseId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_6.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_6.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoPO.setUpdateTime(nowDate);
                    caseInfoService.updateCaseInfo(caseInfoPO);
                }
                // 下一个节点是结案归档节点,进入结案归档节点任务
                if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(nextFlowNode.getNodeId())){
                    // 创建并完成结案归档节点任务
                    CaseTask jagdCaseTask = new CaseTask();
                    jagdCaseTask.setId(utilsClient.getNewTimeId());
                    jagdCaseTask.setCaseId(jashCaseTask.getCaseId());
                    jagdCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                    jagdCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                    jagdCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                    jagdCaseTask.setNodeType(nextFlowNode.getNodeType());
                    jagdCaseTask.setNodeId(nextFlowNode.getNodeId());
                    jagdCaseTask.setNodeName(nextFlowNode.getNodeName());
                    jagdCaseTask.setFlowId(nextFlowNode.getFlowId());
                    jagdCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                    jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属单位:结案申请操作组织
                    jagdCaseTask.setCandeUnitId(loginUser.getUnitId());
                    jagdCaseTask.setCandeUnitName(loginUser.getUnitName());
                    // 受理后的节点任务,不需要签收
                    jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (nextFlowNode.getExpire() != 0) {
                        jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                    }
                    jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                    jashCaseTask.setHandleUnitId(loginUser.getUnitId());
                    jashCaseTask.setHandleUnitName(loginUser.getUnitName());
                    jashCaseTask.setHandleDeptId(loginUser.getDeptId());
                    jashCaseTask.setHandleDeptName(loginUser.getDeptName());
                    jashCaseTask.setHandleUserId(loginUser.getId());
                    jashCaseTask.setHandleUserName(loginUser.getTrueName());
                    jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
                    jagdCaseTask.setHandleTime(nowDate);
                    jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    jagdCaseTask.setCustId(jashCaseTask.getCustId());
                    jagdCaseTask.setCreateTime(nowDate);
                    jagdCaseTask.setUpdateTime(nowDate);
                    // 计算任务耗时、是否超时、超时多少
                    jagdCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getCreateTime()));
                    jagdCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime()));
                    jagdCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime()));
                    mapper.insert(jagdCaseTask);
                    // 完成结案归档工作流节点任务,结束流程
                    flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_jb_zszz, loginUser.getId());
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(jashCaseTask.getCaseId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoPO.setUpdateTime(nowDate);
                    caseInfoService.updateCaseInfo(caseInfoPO);
                }
                // 更新结案申请信息
                caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1);
                caseWindupApply.setCaseTaskId(jashCaseTask.getId());
                caseWindupApply.setAuditUnitId(jashCaseTask.getHandleUnitId());
                caseWindupApply.setAuditUnitName(jashCaseTask.getHandleUnitName());
                caseWindupApply.setAuditUserId(jashCaseTask.getHandleUserId());
                caseWindupApply.setAuditUserName(jashCaseTask.getHandleUserName());
                caseWindupApply.setAuditTime(nowDate);
                caseWindupApply.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex());
                caseWindupApply.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes());
                caseWindupApply.setCustId(jashCaseTask.getCustId());
                caseWindupApplyService.save(caseWindupApply);
                // 更新纠纷扩展信息
                CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
                caseInfoUnfoldPO.setId(jashCaseTask.getCaseId());
                caseInfoUnfoldPO.setMediResult(caseWindupApply.getMediResult());
                caseInfoUnfoldPO.setMediResultName(caseWindupApply.getMediResultName());
                caseInfoUnfoldPO.setAgreeType(caseWindupApply.getAgreeType());
                caseInfoUnfoldPO.setAgreeTypeName(caseWindupApply.getAgreeTypeName());
                caseInfoUnfoldPO.setAgreeContent(caseWindupApply.getAgreeContent());
                caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent());
                caseInfoUnfoldPO.setCloseTime(nowDate);
                caseInfoUnfoldPO.setUpdateTime(nowDate);
                caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            }else {// 化解不成功
                // 完成当前结案申请工作流节点任务
                FlowNode jashFlowNode = flowInfoService.completeTask(jasqCaseTask.getFlowableId(), jasqCaseTask.getProcessTaskId(),
                        FlowableConsts.OPERATION_forward, userId);
                // 判断是否自行受理
                CaseInfo caseInfo = caseInfoService.getById(jasqCaseTask.getCaseId());
                if (CaseBaseConsts.ZXSL_STATUS_1 == caseInfo.getZxslStatus()){
                    // 自行受理,自行完成结案审核节点,直接进入下一个节点
                    // 新建并自动完成结案审核任务
                    CaseTask jashCaseTask = new CaseTask();
                    jashCaseTask.setId(utilsClient.getNewTimeId());
                    jashCaseTask.setCaseId(jasqCaseTask.getCaseId());
                    jashCaseTask.setFlowableId(jashFlowNode.getFlowableId());
                    jashCaseTask.setProcessInstanceId(jashFlowNode.getProcessInstanceId());
                    jashCaseTask.setProcessTaskId(jashFlowNode.getProcessTaskId());
                    jashCaseTask.setNodeType(jashFlowNode.getNodeType());
                    jashCaseTask.setNodeId(jashFlowNode.getNodeId());
                    jashCaseTask.setNodeName(jashFlowNode.getNodeName());
                    jashCaseTask.setFlowId(jashFlowNode.getFlowId());
                    jashCaseTask.setNodeShowName(jashFlowNode.getNodeShowName());
                    jashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属单位:结案申请操作组织
                    jashCaseTask.setCandeUnitId(loginUser.getUnitId());
                    jashCaseTask.setCandeUnitName(loginUser.getUnitName());
                    // 受理后的节点任务,不需要签收
                    jashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (jashFlowNode.getExpire() != 0) {
                        jashCaseTask.setExpireTime(DateUtils.addDay(nowDate, jashFlowNode.getExpire()));
                    }
                    jashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                    jashCaseTask.setHandleUnitId(loginUser.getUnitId());
                    jashCaseTask.setHandleUnitName(loginUser.getUnitName());
                    jashCaseTask.setHandleDeptId(loginUser.getDeptId());
                    jashCaseTask.setHandleDeptName(loginUser.getDeptName());
                    jashCaseTask.setHandleUserId(loginUser.getId());
                    jashCaseTask.setHandleUserName(loginUser.getTrueName());
                    jashCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
                    jashCaseTask.setHandleTime(DateUtils.addMinute(nowDate, 1));
                    jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    jashCaseTask.setCustId(jasqCaseTask.getCustId());
                    jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1));
                    jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1));
                    // 计算任务耗时、是否超时、超时多少
                    jashCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jashCaseTask.getHandleTime(), jashCaseTask.getCreateTime()));
                    jashCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jashCaseTask.getHandleTime(), jashCaseTask.getExpireTime()));
                    jashCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jashCaseTask.getHandleTime(), jashCaseTask.getExpireTime()));
                    mapper.insert(jashCaseTask);
                    // 完成当前结案审核工作流任务,走下一个节点
                    FlowNode nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_jash_ty, userId);
                    // 下一个节点是当事人评价节点,进入当事人评价节点任务
                    if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(nextFlowNode.getNodeId())){
                        // 新建当事人评价节点任务
                        CaseTask dsrpjCaseTask = new CaseTask();
                        dsrpjCaseTask.setId(utilsClient.getNewTimeId());
                        dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId());
                        dsrpjCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                        dsrpjCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                        dsrpjCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                        dsrpjCaseTask.setNodeType(nextFlowNode.getNodeType());
                        dsrpjCaseTask.setNodeId(nextFlowNode.getNodeId());
                        dsrpjCaseTask.setNodeName(nextFlowNode.getNodeName());
                        dsrpjCaseTask.setFlowId(nextFlowNode.getFlowId());
                        dsrpjCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                        dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                        // 任务所属人:当事人
                        EvaluatePersonDTO evaluatePersonDTO = casePersonService.getEvaluatePerson(jashCaseTask.getCaseId());
                        dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getId());
                        dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getName());
                        // 受理后的节点任务,不需要签收
                        dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                        // 任务处理时限
                        if (nextFlowNode.getExpire() != 0) {
                            dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                        }
                        dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                        dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                        dsrpjCaseTask.setCustId(jashCaseTask.getCustId());
                        dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2));
                        dsrpjCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 2));
                        mapper.insert(dsrpjCaseTask);
                        // 更新纠纷信息
                        CaseInfo caseInfoPO = new CaseInfo();
                        caseInfoPO.setId(jashCaseTask.getCaseId());
                        caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_6.getIndex());
                        caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_6.getDes());
                        caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                        caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                        caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                        caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                        caseInfoPO.setUpdateTime(nowDate);
                        caseInfoService.updateCaseInfo(caseInfoPO);
                    }
                    // 下一个节点是结案归档节点,进入结案归档节点任务
                    if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(nextFlowNode.getNodeId())){
                        // 创建并完成结案归档节点任务
                        CaseTask jagdCaseTask = new CaseTask();
                        jagdCaseTask.setId(utilsClient.getNewTimeId());
                        jagdCaseTask.setCaseId(jashCaseTask.getCaseId());
                        jagdCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                        jagdCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                        jagdCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                        jagdCaseTask.setNodeType(nextFlowNode.getNodeType());
                        jagdCaseTask.setNodeId(nextFlowNode.getNodeId());
                        jagdCaseTask.setNodeName(nextFlowNode.getNodeName());
                        jagdCaseTask.setFlowId(nextFlowNode.getFlowId());
                        jagdCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                        jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                        // 任务所属单位:结案申请操作组织
                        jagdCaseTask.setCandeUnitId(loginUser.getUnitId());
                        jagdCaseTask.setCandeUnitName(loginUser.getUnitName());
                        // 受理后的节点任务,不需要签收
                        jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                        // 任务处理时限
                        if (nextFlowNode.getExpire() != 0) {
                            jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                        }
                        jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                        jagdCaseTask.setHandleUnitId(loginUser.getUnitId());
                        jagdCaseTask.setHandleUnitName(loginUser.getUnitName());
                        jagdCaseTask.setHandleDeptId(loginUser.getDeptId());
                        jagdCaseTask.setHandleDeptName(loginUser.getDeptName());
                        jagdCaseTask.setHandleUserId(loginUser.getId());
                        jagdCaseTask.setHandleUserName(loginUser.getTrueName());
                        jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
                        jagdCaseTask.setHandleTime(nowDate);
                        jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                        jagdCaseTask.setCustId(jashCaseTask.getCustId());
                        jagdCaseTask.setCreateTime(nowDate);
                        jagdCaseTask.setUpdateTime(nowDate);
                        // 计算任务耗时、是否超时、超时多少
                        jagdCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getCreateTime()));
                        jagdCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime()));
                        jagdCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime()));
                        mapper.insert(jagdCaseTask);
                        // 完成结案归档工作流节点任务,结束流程
                        flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(),
                                FlowableConsts.OPERATION_jb_zszz, loginUser.getId());
                        // 更新纠纷信息
                        CaseInfo caseInfoPO = new CaseInfo();
                        caseInfoPO.setId(jashCaseTask.getCaseId());
                        caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex());
                        caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.getDes());
                        caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                        caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                        caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                        caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                        caseInfoPO.setUpdateTime(nowDate);
                        caseInfoService.updateCaseInfo(caseInfoPO);
                    }
                    // 更新结案申请信息
                    caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1);
                    caseWindupApply.setCaseTaskId(jashCaseTask.getId());
                    caseWindupApply.setAuditUnitId(jashCaseTask.getHandleUnitId());
                    caseWindupApply.setAuditUnitName(jashCaseTask.getHandleUnitName());
                    caseWindupApply.setAuditUserId(jashCaseTask.getHandleUserId());
                    caseWindupApply.setAuditUserName(jashCaseTask.getHandleUserName());
                    caseWindupApply.setAuditTime(nowDate);
                    caseWindupApply.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex());
                    caseWindupApply.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes());
                    caseWindupApply.setCustId(jashCaseTask.getCustId());
                    caseWindupApplyService.save(caseWindupApply);
                    // 更新纠纷扩展信息
                    CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
                    caseInfoUnfoldPO.setId(jashCaseTask.getCaseId());
                    caseInfoUnfoldPO.setMediResult(caseWindupApply.getMediResult());
                    caseInfoUnfoldPO.setMediResultName(caseWindupApply.getMediResultName());
                    caseInfoUnfoldPO.setAgreeType(caseWindupApply.getAgreeType());
                    caseInfoUnfoldPO.setAgreeTypeName(caseWindupApply.getAgreeTypeName());
                    caseInfoUnfoldPO.setAgreeContent(caseWindupApply.getAgreeContent());
                    caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent());
                    caseInfoUnfoldPO.setCloseTime(nowDate);
                    caseInfoUnfoldPO.setUpdateTime(nowDate);
                    caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
                }else {
                    // 正常流程,进入结案审核节点
                    // 新建结案审核任务
                    CaseTask jashCaseTask = new CaseTask();
                    jashCaseTask.setId(utilsClient.getNewTimeId());
                    jashCaseTask.setCaseId(jasqCaseTask.getCaseId());
                    jashCaseTask.setFlowableId(jashFlowNode.getFlowableId());
                    jashCaseTask.setProcessInstanceId(jashFlowNode.getProcessInstanceId());
                    jashCaseTask.setProcessTaskId(jashFlowNode.getProcessTaskId());
                    jashCaseTask.setNodeType(jashFlowNode.getNodeType());
                    jashCaseTask.setNodeId(jashFlowNode.getNodeId());
                    jashCaseTask.setNodeName(jashFlowNode.getNodeName());
                    jashCaseTask.setFlowId(jashFlowNode.getFlowId());
                    jashCaseTask.setNodeShowName(jashFlowNode.getNodeShowName());
                    jashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属单位:本级综治中心审核
                    CtUnitDTO zzzxCtUnitDTO = custClient.getBjZzzx(loginUser.getUnitId());
                    jashCaseTask.setCandeUnitId(zzzxCtUnitDTO.getId());
                    jashCaseTask.setCandeUnitName(zzzxCtUnitDTO.getUnitName());
                    // 受理后的节点任务,不需要签收
                    jashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (jashFlowNode.getExpire() != 0) {
                        jashCaseTask.setExpireTime(DateUtils.addDay(nowDate, jashFlowNode.getExpire()));
                    }
                    jashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    jashCaseTask.setCustId(jasqCaseTask.getCustId());
                    jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1));
                    jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1));
                    mapper.insert(jashCaseTask);
                    // 更新结案申请信息
                    caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0);
                    caseWindupApply.setCaseTaskId(jashCaseTask.getId());
                    caseWindupApply.setAuditUnitId(jashCaseTask.getCandeUnitId());
                    caseWindupApply.setAuditUnitName(jashCaseTask.getCandeUnitName());
                    caseWindupApply.setCustId(jashCaseTask.getCustId());
                    caseWindupApplyService.save(caseWindupApply);
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(jashCaseTask.getCaseId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_5.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_5.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoPO.setUpdateTime(nowDate);
                    caseInfoService.updateCaseInfo(caseInfoPO);
                    // 更新纠纷扩展信息
                    CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
                    caseInfoUnfoldPO.setId(jashCaseTask.getCaseId());
                    caseInfoUnfoldPO.setMediResult(caseWindupApply.getMediResult());
                    caseInfoUnfoldPO.setMediResultName(caseWindupApply.getMediResultName());
                    caseInfoUnfoldPO.setAgreeType(caseWindupApply.getAgreeType());
                    caseInfoUnfoldPO.setAgreeTypeName(caseWindupApply.getAgreeTypeName());
                    caseInfoUnfoldPO.setAgreeContent(caseWindupApply.getAgreeContent());
                    caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent());
                    caseInfoUnfoldPO.setUpdateTime(nowDate);
                    caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
                }
            }
            // 查询联合处置申请单,全部结束申请单
            QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>();
            caseAssistApplyQueryWrapper.eq("case_id", jasqCaseTask.getCaseId()).eq("apply_status", AuditBaseConsts.AUDIT_STATUS_0);
            List<CaseAssistApply> caseAssistApplyList = caseAssistApplyService.list(caseAssistApplyQueryWrapper);
            for (CaseAssistApply caseAssistApply: caseAssistApplyList){
                caseAssistApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_2);
                caseAssistApply.setUpdateTime(nowDate);
                caseAssistApplyService.updateCaseAssistApply(caseAssistApply);
            }
            // 查询配合组织的任务,全部结束流程
            List<CaseTask> assistCaseTaskList = this.listAssistTasking(jasqCaseTask.getCaseId());
            for (CaseTask assistCaseTask: assistCaseTaskList){
                // 完成配合组织当前任务
                assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                assistCaseTask.setHandleUnitId(loginUser.getUnitId());
                assistCaseTask.setHandleUnitName(loginUser.getUnitName());
                assistCaseTask.setHandleDeptId(loginUser.getDeptId());
                assistCaseTask.setHandleDeptName(loginUser.getDeptName());
                assistCaseTask.setHandleUserId(loginUser.getId());
                assistCaseTask.setHandleUserName(loginUser.getTrueName());
                assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
                assistCaseTask.setHandleTime(nowDate);
                assistCaseTask.setUpdateTime(nowDate);
                // 计算任务耗时、是否超时、超时多少
                assistCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getCreateTime()));
                assistCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime()));
                assistCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime()));
                mapper.updateCaseTask(assistCaseTask);
                // 结束配合组织当前工作流任务
                flowInfoService.endFlow(assistCaseTask.getProcessInstanceId());
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webWindupApply", e);
        }
    }
    /**
     * web端任务处理-结案审核
     * @param caseWindupApply 结案审核表单
     * @param userId 当前登录用户
     */
    public void webWindupAudit(CaseWindupApply caseWindupApply, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 查询结案申请信息
            CaseWindupApply oldCaseWindupApply = caseWindupApplyService.getById(caseWindupApply.getId());
            // 更新结案申请信息
            caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1);
            caseWindupApply.setAuditUserId(loginUser.getId());
            caseWindupApply.setAuditUserName(loginUser.getTrueName());
            caseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            caseWindupApply.setCustId(loginUser.getCustId());
            caseWindupApply.setAuditTime(nowDate);
            caseWindupApply.setUpdateTime(nowDate);
            caseWindupApplyService.updateCaseWindupApply(caseWindupApply);
            // 查询结案审核任务
            CaseTask jashCaseTask = mapper.selectById(caseWindupApply.getCaseTaskId());
            // 审核通过,
            if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseWindupApply.getAuditResult())){
                // 完成当前结案审核节点任务
                CaseTask jashCaseTaskPO = new CaseTask();
                jashCaseTaskPO.setId(caseWindupApply.getCaseTaskId());
                jashCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
                jashCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
                jashCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
                jashCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
                jashCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
                jashCaseTaskPO.setHandleUserId(loginUser.getId());
                jashCaseTaskPO.setHandleUserName(loginUser.getTrueName());
                jashCaseTaskPO.setHandleContent(caseWindupApply.getAuditContent());
                jashCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
                jashCaseTaskPO.setHandleTime(nowDate);
                jashCaseTaskPO.setUpdateTime(nowDate);
                // 计算任务耗时、是否超时、超时多少
                jashCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jashCaseTaskPO.getHandleTime(), jashCaseTask.getCreateTime()));
                jashCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jashCaseTaskPO.getHandleTime(), jashCaseTask.getExpireTime()));
                jashCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jashCaseTaskPO.getHandleTime(), jashCaseTask.getExpireTime()));
                mapper.updateCaseTask(jashCaseTaskPO);
                // 根据事项等级,判断是否要上级综治中心审核
                FlowNode nextFlowNode = null;
                CaseInfo caseInfo = caseInfoService.getById(jashCaseTask.getCaseId());
                if (CaseBaseConsts.CASE_LEVEL_1 == caseInfo.getCaseLevel()){
                    // 一级事件,本级+上级+上上级审核
                    if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(jashCaseTask.getNodeId())){
                        // 完成本级综治中心审核,进入上级综治中心审核节点
                        nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                                FlowableConsts.OPERATION_jash_ty_sq, userId);
                    }else if (FlowNodeEnum.FLOW_NODE_JASH_YJ.getIndex().equals(jashCaseTask.getNodeId())){
                        // 完成上级综治中心审核,进入上上级综治中心审核节点
                        nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                                FlowableConsts.OPERATION_jash_ty_sq, userId);
                    }else {
                        // 完成上上级综治中心审核,审核流程结束,进入下一节点
                        nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                                FlowableConsts.OPERATION_jash_ty, userId);
                    }
                }else if (CaseBaseConsts.CASE_LEVEL_2 == caseInfo.getCaseLevel()){
                    // 二级事件,本级+上级审核
                    String operation = FlowableConsts.OPERATION_jash_ty;
                    if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(jashCaseTask.getNodeId())){
                        // 完成本级综治中心审核,进入上级综治中心审核节点
                        nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                                FlowableConsts.OPERATION_jash_ty_sq, userId);
                    }else {
                        // 完成上级综治中心审核,审核流程结束,进入下一节点
                        nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                                FlowableConsts.OPERATION_jash_ty, userId);
                    }
                }else {
                    // 三级事件,自办自结,即本级综治中心审核就行,完成本级综治中心审核,审核流程结束,进入下一节点
                    nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_jash_ty, userId);
                }
                // 下一个节点是一级结案审核节点,进入一级结案审核节点任务
                if (FlowNodeEnum.FLOW_NODE_JASH_YJ.getIndex().equals(nextFlowNode.getNodeId())){
                    // 新建结案审核节点任务
                    CaseTask yjJashCaseTask = new CaseTask();
                    yjJashCaseTask.setId(utilsClient.getNewTimeId());
                    yjJashCaseTask.setCaseId(jashCaseTask.getCaseId());
                    yjJashCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                    yjJashCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                    yjJashCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                    yjJashCaseTask.setNodeType(nextFlowNode.getNodeType());
                    yjJashCaseTask.setNodeId(nextFlowNode.getNodeId());
                    yjJashCaseTask.setNodeName(nextFlowNode.getNodeName());
                    yjJashCaseTask.setFlowId(nextFlowNode.getFlowId());
                    yjJashCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                    yjJashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属单位:上级级综治中心审核
                    CtUnitDTO zzzxCtUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId());
                    yjJashCaseTask.setCandeUnitId(zzzxCtUnitDTO.getId());
                    yjJashCaseTask.setCandeUnitName(zzzxCtUnitDTO.getUnitName());
                    // 受理后的节点任务,不需要签收
                    yjJashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (nextFlowNode.getExpire() != 0) {
                        yjJashCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                    }
                    yjJashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    yjJashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    yjJashCaseTask.setCustId(jashCaseTask.getCustId());
                    yjJashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1));
                    yjJashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1));
                    mapper.insert(yjJashCaseTask);
                    // 创建新的结案申请记录
                    CaseWindupApply newCaseWindupApply = new CaseWindupApply();
                    BeanUtils.copyProperties(oldCaseWindupApply, newCaseWindupApply);
                    newCaseWindupApply.setId(utilsClient.getNewTimeId());
                    newCaseWindupApply.setApplyTime(nowDate);
                    newCaseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0);
                    newCaseWindupApply.setCaseTaskId(yjJashCaseTask.getId());
                    newCaseWindupApply.setAuditUnitId(yjJashCaseTask.getCandeUnitId());
                    newCaseWindupApply.setAuditUnitName(yjJashCaseTask.getCandeUnitName());
                    newCaseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    newCaseWindupApply.setCreateTime(nowDate);
                    newCaseWindupApply.setUpdateTime(nowDate);
                    newCaseWindupApply.setCustId(yjJashCaseTask.getCustId());
                    caseWindupApplyService.save(newCaseWindupApply);
                }
                // 下一个节点是二级结案审核节点,进入二级结案审核节点任务
                if (FlowNodeEnum.FLOW_NODE_JASH_EJ.getIndex().equals(nextFlowNode.getNodeId())){
                    // 新建结案审核节点任务
                    CaseTask ejJashCaseTask = new CaseTask();
                    ejJashCaseTask.setId(utilsClient.getNewTimeId());
                    ejJashCaseTask.setCaseId(jashCaseTask.getCaseId());
                    ejJashCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                    ejJashCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                    ejJashCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                    ejJashCaseTask.setNodeType(nextFlowNode.getNodeType());
                    ejJashCaseTask.setNodeId(nextFlowNode.getNodeId());
                    ejJashCaseTask.setNodeName(nextFlowNode.getNodeName());
                    ejJashCaseTask.setFlowId(nextFlowNode.getFlowId());
                    ejJashCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                    ejJashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属单位:上级级综治中心审核
                    CtUnitDTO zzzxCtUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId());
                    ejJashCaseTask.setCandeUnitId(zzzxCtUnitDTO.getId());
                    ejJashCaseTask.setCandeUnitName(zzzxCtUnitDTO.getUnitName());
                    // 受理后的节点任务,不需要签收
                    ejJashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (nextFlowNode.getExpire() != 0) {
                        ejJashCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                    }
                    ejJashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    ejJashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    ejJashCaseTask.setCustId(jashCaseTask.getCustId());
                    ejJashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1));
                    ejJashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1));
                    mapper.insert(ejJashCaseTask);
                    // 创建新的结案申请记录
                    CaseWindupApply newCaseWindupApply = new CaseWindupApply();
                    BeanUtils.copyProperties(oldCaseWindupApply, newCaseWindupApply);
                    newCaseWindupApply.setId(utilsClient.getNewTimeId());
                    newCaseWindupApply.setApplyTime(nowDate);
                    newCaseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0);
                    newCaseWindupApply.setCaseTaskId(ejJashCaseTask.getId());
                    newCaseWindupApply.setAuditUnitId(ejJashCaseTask.getCandeUnitId());
                    newCaseWindupApply.setAuditUnitName(ejJashCaseTask.getCandeUnitName());
                    newCaseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    newCaseWindupApply.setCreateTime(nowDate);
                    newCaseWindupApply.setUpdateTime(nowDate);
                    newCaseWindupApply.setCustId(ejJashCaseTask.getCustId());
                    caseWindupApplyService.save(newCaseWindupApply);
                }
                // 下一个节点是当事人评价节点,进入当事人评价节点任务
                if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(nextFlowNode.getNodeId())){
                    // 新建当事人评价节点任务
                    CaseTask dsrpjCaseTask = new CaseTask();
                    dsrpjCaseTask.setId(utilsClient.getNewTimeId());
                    dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId());
                    dsrpjCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                    dsrpjCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                    dsrpjCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                    dsrpjCaseTask.setNodeType(nextFlowNode.getNodeType());
                    dsrpjCaseTask.setNodeId(nextFlowNode.getNodeId());
                    dsrpjCaseTask.setNodeName(nextFlowNode.getNodeName());
                    dsrpjCaseTask.setFlowId(nextFlowNode.getFlowId());
                    dsrpjCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                    dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属人:当事人
                    EvaluatePersonDTO evaluatePersonDTO = casePersonService.getEvaluatePerson(jashCaseTask.getCaseId());
                    dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getId());
                    dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getName());
                    // 受理后的节点任务,不需要签收
                    dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (nextFlowNode.getExpire() != 0) {
                        dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                    }
                    dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    dsrpjCaseTask.setCustId(jashCaseTask.getCustId());
                    dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2));
                    dsrpjCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 2));
                    mapper.insert(dsrpjCaseTask);
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(jashCaseTask.getCaseId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_6.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_6.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoPO.setUpdateTime(nowDate);
                    caseInfoService.updateCaseInfo(caseInfoPO);
                }
                // 下一个节点是结案归档节点,进入结案归档节点任务
                if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(nextFlowNode.getNodeId())){
                    // 创建并完成结案归档节点任务
                    CaseTask jagdCaseTask = new CaseTask();
                    jagdCaseTask.setId(utilsClient.getNewTimeId());
                    jagdCaseTask.setCaseId(jashCaseTask.getCaseId());
                    jagdCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                    jagdCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                    jagdCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                    jagdCaseTask.setNodeType(nextFlowNode.getNodeType());
                    jagdCaseTask.setNodeId(nextFlowNode.getNodeId());
                    jagdCaseTask.setNodeName(nextFlowNode.getNodeName());
                    jagdCaseTask.setFlowId(nextFlowNode.getFlowId());
                    jagdCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                    jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    // 任务所属单位:结案申请操作组织
                    jagdCaseTask.setCandeUnitId(oldCaseWindupApply.getApplyUnitId());
                    jagdCaseTask.setCandeUnitName(oldCaseWindupApply.getApplyUnitName());
                    // 受理后的节点任务,不需要签收
                    jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (nextFlowNode.getExpire() != 0) {
                        jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                    }
                    jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                    jashCaseTask.setHandleUnitId(loginUser.getUnitId());
                    jashCaseTask.setHandleUnitName(loginUser.getUnitName());
                    jashCaseTask.setHandleDeptId(loginUser.getDeptId());
                    jashCaseTask.setHandleDeptName(loginUser.getDeptName());
                    jashCaseTask.setHandleUserId(loginUser.getId());
                    jashCaseTask.setHandleUserName(loginUser.getTrueName());
                    jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
                    jagdCaseTask.setHandleTime(nowDate);
                    jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    jagdCaseTask.setCustId(jashCaseTask.getCustId());
                    jagdCaseTask.setCreateTime(nowDate);
                    jagdCaseTask.setUpdateTime(nowDate);
                    // 计算任务耗时、是否超时、超时多少
                    jagdCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getCreateTime()));
                    jagdCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime()));
                    jagdCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime()));
                    mapper.insert(jagdCaseTask);
                    // 完成结案归档工作流节点任务,结束流程
                    flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_jb_zszz, loginUser.getId());
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(jashCaseTask.getCaseId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoPO.setUpdateTime(nowDate);
                    caseInfoService.updateCaseInfo(caseInfoPO);
                }
                // 更新纠纷扩展信息
                CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
                caseInfoUnfoldPO.setId(jashCaseTask.getCaseId());
                caseInfoUnfoldPO.setCloseTime(nowDate);
                caseInfoUnfoldPO.setUpdateTime(nowDate);
                caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            }else {
                // 审核不通过,回退办理反馈节点任务
                // 完成当前结案审核节点任务
                CaseTask jashCaseTaskPO = new CaseTask();
                jashCaseTaskPO.setId(caseWindupApply.getCaseTaskId());
                jashCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
                jashCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
                jashCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
                jashCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
                jashCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
                jashCaseTaskPO.setHandleUserId(loginUser.getId());
                jashCaseTaskPO.setHandleUserName(loginUser.getTrueName());
                jashCaseTaskPO.setHandleContent(caseWindupApply.getAuditContent());
                jashCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2);
                jashCaseTaskPO.setHandleTime(nowDate);
                jashCaseTaskPO.setUpdateTime(nowDate);
                // 计算任务耗时、是否超时、超时多少
                jashCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jashCaseTaskPO.getHandleTime(), jashCaseTask.getCreateTime()));
                jashCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jashCaseTaskPO.getHandleTime(), jashCaseTask.getExpireTime()));
                jashCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jashCaseTaskPO.getHandleTime(), jashCaseTask.getExpireTime()));
                mapper.updateCaseTask(jashCaseTaskPO);
                // 完成当前结案审核工作流节点任务,走办理反馈节点任务
                FlowNode blfkFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                        FlowableConsts.OPERATION_jash_bty, userId);
                // 新建办理反馈节点任务
                CaseTask blfkCaseTask = new CaseTask();
                blfkCaseTask.setId(utilsClient.getNewTimeId());
                blfkCaseTask.setCaseId(jashCaseTask.getCaseId());
                blfkCaseTask.setFlowableId(blfkFlowNode.getFlowableId());
                blfkCaseTask.setProcessInstanceId(blfkFlowNode.getProcessInstanceId());
                blfkCaseTask.setProcessTaskId(blfkFlowNode.getProcessTaskId());
                blfkCaseTask.setNodeType(blfkFlowNode.getNodeType());
                blfkCaseTask.setNodeId(blfkFlowNode.getNodeId());
                blfkCaseTask.setNodeName(blfkFlowNode.getNodeName());
                blfkCaseTask.setFlowId(blfkFlowNode.getFlowId());
                blfkCaseTask.setNodeShowName(blfkFlowNode.getNodeShowName());
                blfkCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                // 任务所属单位:结案申请操作组织
                blfkCaseTask.setCandeUnitId(oldCaseWindupApply.getApplyUnitId());
                blfkCaseTask.setCandeUnitName(oldCaseWindupApply.getApplyUnitName());
                // 受理后的节点任务,不需要签收
                blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                // 任务处理时限
                if (blfkFlowNode.getExpire() != 0) {
                    blfkCaseTask.setExpireTime(DateUtils.addDay(nowDate, blfkFlowNode.getExpire()));
                }
                blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                blfkCaseTask.setCustId(jashCaseTask.getCustId());
                blfkCaseTask.setCreateTime(nowDate);
                blfkCaseTask.setUpdateTime(nowDate);
                mapper.insert(blfkCaseTask);
                // 更新纠纷信息
                CaseInfo caseInfoPO = new CaseInfo();
                caseInfoPO.setId(blfkCaseTask.getCaseId());
                caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_4.getIndex());
                caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_4.getDes());
                caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                caseInfoPO.setUpdateTime(nowDate);
                caseInfoService.updateCaseInfo(caseInfoPO);
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webWindupApply", e);
        }
    }
    /**
     * web端任务处理-回退申请
     * @param caseReturn 回退申请表单
     * @param userId 当前登录用户
     */
    public void webReturnApply(CaseReturn caseReturn, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 创建回退申请信息
            caseReturn.setReturnUnitId(loginUser.getUnitId());
            caseReturn.setReturnUnitName(loginUser.getUnitName());
            caseReturn.setReturnUserId(loginUser.getId());
            caseReturn.setReturnUserName(loginUser.getTrueName());
            caseReturn.setReturnTime(nowDate);
            CtUnitDTO zzzxUnit = custClient.getParentZzzxUnit(loginUser.getUnitId());
            caseReturn.setAuditUnitId(zzzxUnit.getId());
            caseReturn.setAuditUnitName(zzzxUnit.getUnitName());
            caseReturn.setReturnStatus(AuditBaseConsts.AUDIT_STATUS_0);
            caseReturn.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            caseReturn.setCustId(loginUser.getCustId());
            caseReturn.setCreateTime(nowDate);
            caseReturn.setUpdateTime(nowDate);
            // 查询待节点任务
            CaseTask thisCaseTask = mapper.selectById(caseReturn.getCaseTaskId());
            // 完成当前节点任务
            CaseTask thisCaseTaskPO = new CaseTask();
            thisCaseTaskPO.setId(caseReturn.getCaseTaskId());
            thisCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
            thisCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
            thisCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
            thisCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
            thisCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
            thisCaseTaskPO.setHandleUserId(loginUser.getId());
            thisCaseTaskPO.setHandleUserName(loginUser.getTrueName());
            thisCaseTaskPO.setHandleContent(caseReturn.getReturnContent());
            thisCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_4);
            thisCaseTaskPO.setHandleTime(nowDate);
            thisCaseTaskPO.setUpdateTime(nowDate);
            // 计算任务耗时、是否超时、超时多少
            thisCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(thisCaseTaskPO.getHandleTime(), thisCaseTask.getCreateTime()));
            thisCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(thisCaseTaskPO.getHandleTime(), thisCaseTask.getExpireTime()));
            thisCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(thisCaseTaskPO.getHandleTime(), thisCaseTask.getExpireTime()));
            mapper.updateCaseTask(thisCaseTaskPO);
            // 完成当前节点工作流任务,走回退审核任务
            FlowNode htshFlowNode = flowInfoService.completeTask(thisCaseTask.getFlowableId(), thisCaseTask.getProcessTaskId(),
                    FlowableConsts.OPERATION_htsq, userId);
            // 新建回退审核节点任务
            CaseTask htshCaseTask = new CaseTask();
            htshCaseTask.setId(utilsClient.getNewTimeId());
            htshCaseTask.setCaseId(thisCaseTask.getCaseId());
            htshCaseTask.setFlowableId(htshFlowNode.getFlowableId());
            htshCaseTask.setProcessInstanceId(htshFlowNode.getProcessInstanceId());
            htshCaseTask.setProcessTaskId(htshFlowNode.getProcessTaskId());
            htshCaseTask.setNodeType(htshFlowNode.getNodeType());
            htshCaseTask.setNodeId(htshFlowNode.getNodeId());
            htshCaseTask.setNodeName(htshFlowNode.getNodeName());
            htshCaseTask.setFlowId(htshFlowNode.getFlowId());
            htshCaseTask.setNodeShowName(htshFlowNode.getNodeShowName());
            htshCaseTask.setCaseTaskType(thisCaseTask.getCaseTaskType());
            // 任务所属单位:上级综治中心
            htshCaseTask.setCandeUnitId(zzzxUnit.getId());
            htshCaseTask.setCandeUnitName(zzzxUnit.getUnitName());
            // 受理后的节点任务,不需要签收
            htshCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
            // 任务处理时限
            if (htshFlowNode.getExpire() != 0) {
                htshCaseTask.setExpireTime(DateUtils.addDay(nowDate, htshFlowNode.getExpire()));
            }
            htshCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
            htshCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            htshCaseTask.setCustId(htshCaseTask.getCustId());
            htshCaseTask.setCreateTime(nowDate);
            htshCaseTask.setUpdateTime(nowDate);
            mapper.insert(htshCaseTask);
            // 新增回退申请信息
            caseReturn.setCaseTaskId(htshCaseTask.getId());
            caseReturn.setCaseTaskType(htshCaseTask.getCaseTaskType());
            caseReturnService.save(caseReturn);
        }catch (Exception e){
            log.error("[CaseTaskService.webReturnApply]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webReturnApply", e);
        }
    }
    /**
     * web端任务处理-回退审核
     * @param caseReturn 回退审核表单
     * @param userId 当前登录用户
     */
    public void webReturnAudit(CaseReturn caseReturn, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 更新回退申请信息
            caseReturn.setReturnStatus(AuditBaseConsts.AUDIT_STATUS_1);
            caseReturn.setAuditUserId(loginUser.getId());
            caseReturn.setAuditUserName(loginUser.getTrueName());
            caseReturn.setAuditTime(nowDate);
            caseReturn.setUpdateTime(nowDate);
            caseReturnService.updateCaseReturn(caseReturn);
            // 查询回退审核节点任务
            CaseTask htshCaseTask = mapper.selectById(caseReturn.getCaseTaskId());
            // 审核通过
            if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseReturn.getAuditResult())){
                // 完成当前回退审核节点任务
                CaseTask htshCaseTaskPO = new CaseTask();
                htshCaseTaskPO.setId(caseReturn.getCaseTaskId());
                htshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
                htshCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
                htshCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
                htshCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
                htshCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
                htshCaseTaskPO.setHandleUserId(loginUser.getId());
                htshCaseTaskPO.setHandleContent(caseReturn.getAuditContent());
                htshCaseTaskPO.setHandleUserName(loginUser.getTrueName());
                htshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
                htshCaseTaskPO.setHandleTime(nowDate);
                htshCaseTaskPO.setUpdateTime(nowDate);
                // 计算任务耗时、是否超时、超时多少
                htshCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(htshCaseTaskPO.getHandleTime(), htshCaseTask.getCreateTime()));
                htshCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(htshCaseTaskPO.getHandleTime(), htshCaseTask.getExpireTime()));
                htshCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(htshCaseTaskPO.getHandleTime(), htshCaseTask.getExpireTime()));
                mapper.updateCaseTask(htshCaseTaskPO);
                // 完成当前回退审核工作流节点任务,承办组织走待分派节点任务,配合组织结束工作流流程
                FlowNode nextFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(),
                        FlowableConsts.OPERATION_htsh_ty, userId);
                if (CaseTaskConsts.CASE_TASK_TYPE_1 == htshCaseTask.getCaseTaskType()) {
                    // 新建下一个节点任务
                    CaseTask nextCaseTask = new CaseTask();
                    nextCaseTask.setId(utilsClient.getNewTimeId());
                    nextCaseTask.setCaseId(htshCaseTask.getCaseId());
                    nextCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                    nextCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                    nextCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                    nextCaseTask.setNodeType(nextFlowNode.getNodeType());
                    nextCaseTask.setNodeId(nextFlowNode.getNodeId());
                    nextCaseTask.setNodeName(nextFlowNode.getNodeName());
                    nextCaseTask.setFlowId(nextFlowNode.getFlowId());
                    nextCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                    nextCaseTask.setCaseTaskType(htshCaseTask.getCaseTaskType());
                    // 任务所属单位:回退审核操作组织
                    nextCaseTask.setCandeUnitId(loginUser.getUnitId());
                    nextCaseTask.setCandeUnitName(loginUser.getUnitName());
                    // 受理后的节点任务,不需要签收
                    nextCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    // 任务处理时限
                    if (nextFlowNode.getExpire() != 0) {
                        nextCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                    }
                    nextCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    nextCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    nextCaseTask.setCustId(nextCaseTask.getCustId());
                    nextCaseTask.setCreateTime(nowDate);
                    nextCaseTask.setUpdateTime(nowDate);
                    mapper.insert(nextCaseTask);
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(htshCaseTask.getCaseId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                    caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                    caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoPO.setUpdateTime(nowDate);
                    caseInfoService.updateCaseInfo(caseInfoPO);
                    // 有配合组织,结束配合组织工作流程
                    List<CaseTask> assistCaseTaskList = this.listAssistTasking(htshCaseTask.getCaseId());
                    for (CaseTask assistCaseTask: assistCaseTaskList){
                        // 完成配合组织当前任务
                        assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                        assistCaseTask.setHandleUnitId(loginUser.getUnitId());
                        assistCaseTask.setHandleUnitName(loginUser.getUnitName()+"(承办部门)");
                        assistCaseTask.setHandleDeptId(loginUser.getDeptId());
                        assistCaseTask.setHandleDeptName(loginUser.getDeptName()+"(承办部门)");
                        assistCaseTask.setHandleUserId(loginUser.getId());
                        assistCaseTask.setHandleUserName(loginUser.getTrueName()+"(承办部门)");
                        assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
                        assistCaseTask.setHandleTime(nowDate);
                        assistCaseTask.setUpdateTime(nowDate);
                        // 计算任务耗时、是否超时、超时多少
                        assistCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getCreateTime()));
                        assistCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime()));
                        assistCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime()));
                        mapper.updateCaseTask(assistCaseTask);
                        // 结束配合组织当前工作流任务
                        flowInfoService.endFlow(assistCaseTask.getProcessInstanceId());
                        // 更新联合处置信息
                        UpdateWrapper<CaseAssistInfo> caseAssistInfoUpdateWrapper = new UpdateWrapper<>();
                        caseAssistInfoUpdateWrapper.eq("case_id", htshCaseTask.getCaseId())
                                .eq("process_instance_id", assistCaseTask.getProcessInstanceId())
                                .eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0).set("assist_status", CaseTaskConsts.ASSIST_STATUS_2);
                        caseAssistInfoService.update(caseAssistInfoUpdateWrapper);
                    }
                }else {
                    // 更新联合处置信息
                    QueryWrapper<CaseAssistInfo> caseAssistInfoQueryWrapper = new QueryWrapper<>();
                    caseAssistInfoQueryWrapper.eq("case_id", htshCaseTask.getCaseId())
                            .eq("assist_unit_id", htshCaseTask.getCandeUnitId())
                            .eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0);
                    CaseAssistInfo caseAssistInfo = caseAssistInfoService.getOne(caseAssistInfoQueryWrapper);
                    if (ObjectUtils.isNotEmpty(caseAssistInfo)){
                        caseAssistInfo.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_1);
                        caseAssistInfoService.updateCaseAssistInfo(caseAssistInfo);
                    }
                }
            }else {
                // 审核不通过
                // 完成当前回退审核节点任务
                CaseTask htshCaseTaskPO = new CaseTask();
                htshCaseTaskPO.setId(caseReturn.getCaseTaskId());
                htshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
                htshCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
                htshCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
                htshCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
                htshCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
                htshCaseTaskPO.setHandleUserId(loginUser.getId());
                htshCaseTaskPO.setHandleUserName(loginUser.getTrueName());
                htshCaseTaskPO.setHandleContent(caseReturn.getAuditContent());
                htshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2);
                htshCaseTaskPO.setHandleTime(nowDate);
                htshCaseTaskPO.setUpdateTime(nowDate);
                // 计算任务耗时、是否超时、超时多少
                htshCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(htshCaseTaskPO.getHandleTime(), htshCaseTask.getCreateTime()));
                htshCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(htshCaseTaskPO.getHandleTime(), htshCaseTask.getExpireTime()));
                htshCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(htshCaseTaskPO.getHandleTime(), htshCaseTask.getExpireTime()));
                mapper.updateCaseTask(htshCaseTaskPO);
                // 查询回退申请信息
                CaseReturn btyCaseReturn = caseReturnService.getById(caseReturn.getId());
                // 查询回退申请组织信息
                CtUnitDTO returnUnit = custClient.getUnitById(btyCaseReturn.getReturnUnitId());
                FlowNode nextFlowNode = null;
                if (UserBaseConsts.UNIT_GRADE_2 == returnUnit.getUnitGrade()){
                    // 区级组织回退,完成当前回退审核节点任务,进入下一个节点
                    nextFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_htsh_bty_qj, userId);
                }else if(UserBaseConsts.UNIT_GRADE_1 == returnUnit.getUnitGrade()){
                    // 市级组织回退,完成当前回退审核节点任务,进入下一个节点
                    nextFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_htsh_bty_sj, userId);
                }else {
                    // 完成当前回退审核节点任务,进入下一个节点
                    nextFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_htsh_bty, userId);
                }
                // 新建下一个节点任务
                CaseTask nextCaseTask = new CaseTask();
                nextCaseTask.setId(utilsClient.getNewTimeId());
                nextCaseTask.setCaseId(htshCaseTask.getCaseId());
                nextCaseTask.setFlowableId(nextFlowNode.getFlowableId());
                nextCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
                nextCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
                nextCaseTask.setNodeType(nextFlowNode.getNodeType());
                nextCaseTask.setNodeId(nextFlowNode.getNodeId());
                nextCaseTask.setNodeName(nextFlowNode.getNodeName());
                nextCaseTask.setFlowId(nextFlowNode.getFlowId());
                nextCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
                nextCaseTask.setCaseTaskType(htshCaseTask.getCaseTaskType());
                // 任务所属组织:回退申请组织
                nextCaseTask.setCandeUnitId(btyCaseReturn.getReturnUnitId());
                nextCaseTask.setCandeUnitName(btyCaseReturn.getReturnUnitName());
                // 受理后的节点任务,不需要签收
                nextCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                // 任务处理时限
                if (nextFlowNode.getExpire() != 0) {
                    nextCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
                }
                nextCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                nextCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                nextCaseTask.setCustId(htshCaseTask.getCustId());
                nextCaseTask.setCreateTime(nowDate);
                nextCaseTask.setUpdateTime(nowDate);
                mapper.insert(nextCaseTask);
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webReturnAudit]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webReturnAudit", e);
        }
    }
    /**
     * web端任务处理-上报
     * @param caseAppear 上报表单
     * @param userId 当前登录用户
     */
    public void webAppearApply(CaseAppear caseAppear, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 创建上报信息
            caseAppear.setAppearUnitId(loginUser.getUnitId());
            caseAppear.setAppearUnitName(loginUser.getUnitName());
            caseAppear.setAppearUserId(loginUser.getId());
            caseAppear.setAppearUserName(loginUser.getTrueName());
            caseAppear.setAppearTime(nowDate);
            caseAppear.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0);
            caseAppear.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            caseAppear.setCustId(loginUser.getCustId());
            caseAppear.setCreateTime(nowDate);
            caseAppear.setUpdateTime(nowDate);
            // 查询当前节点任务
            CaseTask thisCaseTask = mapper.selectById(caseAppear.getCaseTaskId());
            // 完成当前当前节点任务
            CaseTask thisCaseTaskPO = new CaseTask();
            thisCaseTaskPO.setId(caseAppear.getCaseTaskId());
            thisCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
            thisCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
            thisCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
            thisCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
            thisCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
            thisCaseTaskPO.setHandleUserId(loginUser.getId());
            thisCaseTaskPO.setHandleUserName(loginUser.getTrueName());
            thisCaseTaskPO.setHandleContent(caseAppear.getAppearContent());
            thisCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_5);
            thisCaseTaskPO.setHandleTime(nowDate);
            thisCaseTaskPO.setUpdateTime(nowDate);
            // 计算任务耗时、是否超时、超时多少
            thisCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(thisCaseTaskPO.getHandleTime(), thisCaseTask.getCreateTime()));
            thisCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(thisCaseTaskPO.getHandleTime(), thisCaseTask.getExpireTime()));
            thisCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(thisCaseTaskPO.getHandleTime(), thisCaseTask.getExpireTime()));
            mapper.updateCaseTask(thisCaseTaskPO);
            // 完成当前待受理工作流节点任务,走上报审核任务
            FlowNode sbshFlowNode = flowInfoService.completeTask(thisCaseTask.getFlowableId(), thisCaseTask.getProcessTaskId(),
                    FlowableConsts.OPERATION_sb, userId);
            // 新建上报审核任务
            CaseTask sbshCaseTask = new CaseTask();
            sbshCaseTask.setId(utilsClient.getNewTimeId());
            sbshCaseTask.setCaseId(thisCaseTask.getCaseId());
            sbshCaseTask.setFlowableId(sbshFlowNode.getFlowableId());
            sbshCaseTask.setProcessInstanceId(sbshFlowNode.getProcessInstanceId());
            sbshCaseTask.setProcessTaskId(sbshFlowNode.getProcessTaskId());
            sbshCaseTask.setNodeType(sbshFlowNode.getNodeType());
            sbshCaseTask.setNodeId(sbshFlowNode.getNodeId());
            sbshCaseTask.setNodeName(sbshFlowNode.getNodeName());
            sbshCaseTask.setFlowId(sbshFlowNode.getFlowId());
            sbshCaseTask.setNodeShowName(sbshFlowNode.getNodeShowName());
            sbshCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
            // 任务所属单位,上报审核组织
            sbshCaseTask.setCandeUnitId(caseAppear.getAuditUnitId());
            sbshCaseTask.setCandeUnitName(caseAppear.getAuditUnitName());
            // 受理后的节点任务,不需要签收
            sbshCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
            // 任务处理时限
            if (sbshFlowNode.getExpire() != 0) {
                sbshCaseTask.setExpireTime(DateUtils.addDay(nowDate, sbshFlowNode.getExpire()));
            }
            sbshCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
            sbshCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            sbshCaseTask.setCustId(sbshCaseTask.getCustId());
            sbshCaseTask.setCreateTime(nowDate);
            sbshCaseTask.setUpdateTime(nowDate);
            mapper.insert(sbshCaseTask);
            // 新增上报申请信息
            caseAppear.setCaseTaskId(sbshCaseTask.getId());
            caseAppearService.save(caseAppear);
        }catch (Exception e){
            log.error("[CaseTaskService.webAppearApply]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAppearApply", e);
        }
    }
    /**
     * web端任务处理-上报审核
     * @param caseAppear 上报审核表单
     * @param userId 当前登录用户
     */
    public void webAppearAudit(CaseAppear caseAppear, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            // 更新上报信息
            caseAppear.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1);
            caseAppear.setAuditUserId(loginUser.getId());
            caseAppear.setAuditUserName(loginUser.getTrueName());
            caseAppear.setAuditTime(nowDate);
            caseAppear.setUpdateTime(nowDate);
            caseAppearService.updateCaseAppear(caseAppear);
            // 查询上报审核节点任务
            CaseTask sbshCaseTask = mapper.selectById(caseAppear.getCaseTaskId());
            // 审核通过
            if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseAppear.getAuditResult())){
                // 完成当前上报审核节点任务
                CaseTask sbshCaseTaskPO = new CaseTask();
                sbshCaseTaskPO.setId(caseAppear.getCaseTaskId());
                sbshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
                sbshCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
                sbshCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
                sbshCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
                sbshCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
                sbshCaseTaskPO.setHandleUserId(loginUser.getId());
                sbshCaseTaskPO.setHandleContent(caseAppear.getAuditContent());
                sbshCaseTaskPO.setHandleUserName(loginUser.getTrueName());
                sbshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
                sbshCaseTaskPO.setHandleTime(nowDate);
                sbshCaseTaskPO.setUpdateTime(nowDate);
                // 计算任务耗时、是否超时、超时多少
                sbshCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getCreateTime()));
                sbshCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getExpireTime()));
                sbshCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getExpireTime()));
                mapper.updateCaseTask(sbshCaseTaskPO);
                // 完成当前上报审核任务,走待分派任务
                FlowNode dfpFlowNode = flowInfoService.completeTask(sbshCaseTask.getFlowableId(), sbshCaseTask.getProcessTaskId(),
                        FlowableConsts.OPERATION_sbsh_ty, userId);
                // 新建待分派任务
                CaseTask dfphCaseTask = new CaseTask();
                dfphCaseTask.setId(utilsClient.getNewTimeId());
                dfphCaseTask.setCaseId(sbshCaseTask.getCaseId());
                dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId());
                dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId());
                dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId());
                dfphCaseTask.setNodeType(dfpFlowNode.getNodeType());
                dfphCaseTask.setNodeId(dfpFlowNode.getNodeId());
                dfphCaseTask.setNodeName(dfpFlowNode.getNodeName());
                dfphCaseTask.setFlowId(dfpFlowNode.getFlowId());
                dfphCaseTask.setNodeShowName(dfpFlowNode.getNodeShowName());
                dfphCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                // 任务所属单位:上报审核组织
                dfphCaseTask.setCandeUnitId(loginUser.getUnitId());
                dfphCaseTask.setCandeUnitName(loginUser.getUnitName());
                // 受理后的节点任务,不需要签收
                dfphCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                dfphCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                // 任务处理时限
                if (dfpFlowNode.getExpire() != 0) {
                    dfphCaseTask.setExpireTime(DateUtils.addDay(nowDate, dfpFlowNode.getExpire()));
                }
                dfphCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                dfphCaseTask.setCustId(dfphCaseTask.getCustId());
                dfphCaseTask.setCreateTime(nowDate);
                dfphCaseTask.setUpdateTime(nowDate);
                mapper.insert(dfphCaseTask);
                // 更新纠纷信息
                CaseInfo caseInfoPO = new CaseInfo();
                caseInfoPO.setId(sbshCaseTask.getCaseId());
                caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
                caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
                caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
                caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes());
                caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                caseInfoPO.setUpdateTime(nowDate);
                caseInfoService.updateCaseInfo(caseInfoPO);
            }else {
                // 审核不通过
                // 完成当前上报审核任务
                CaseTask sbshCaseTaskPO = new CaseTask();
                sbshCaseTaskPO.setId(caseAppear.getCaseTaskId());
                sbshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
                sbshCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
                sbshCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
                sbshCaseTaskPO.setHandleDeptId(loginUser.getDeptId());
                sbshCaseTaskPO.setHandleDeptName(loginUser.getDeptName());
                sbshCaseTaskPO.setHandleUserId(loginUser.getId());
                sbshCaseTaskPO.setHandleUserName(loginUser.getTrueName());
                sbshCaseTaskPO.setHandleContent(caseAppear.getAuditContent());
                sbshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2);
                sbshCaseTaskPO.setHandleTime(nowDate);
                sbshCaseTaskPO.setUpdateTime(nowDate);
                // 计算任务耗时、是否超时、超时多少
                sbshCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getCreateTime()));
                sbshCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getExpireTime()));
                sbshCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getExpireTime()));
                mapper.updateCaseTask(sbshCaseTaskPO);
                // 完成当前上报审核任务,走待分派任务
                FlowNode dfpFlowNode = flowInfoService.completeTask(sbshCaseTask.getFlowableId(), sbshCaseTask.getProcessTaskId(),
                        FlowableConsts.OPERATION_sbsh_bty, userId);
                // 新建待分派任务
                CaseTask dfphCaseTask = new CaseTask();
                dfphCaseTask.setId(utilsClient.getNewTimeId());
                dfphCaseTask.setCaseId(sbshCaseTask.getCaseId());
                dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId());
                dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId());
                dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId());
                dfphCaseTask.setNodeType(dfpFlowNode.getNodeType());
                dfphCaseTask.setNodeId(dfpFlowNode.getNodeId());
                dfphCaseTask.setNodeName(dfpFlowNode.getNodeName());
                dfphCaseTask.setFlowId(dfpFlowNode.getFlowId());
                dfphCaseTask.setNodeShowName(dfpFlowNode.getNodeShowName());
                dfphCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                // 任务所属单位:上报申请组织
                CaseAppear caseAppearBO = caseAppearService.getById(caseAppear.getId());
                dfphCaseTask.setCandeUnitId(caseAppearBO.getAppearUnitId());
                dfphCaseTask.setCandeUnitName(caseAppearBO.getAppearUnitName());
                // 受理后的节点任务,不需要签收
                dfphCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                dfphCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                // 任务处理时限
                if (dfpFlowNode.getExpire() != 0) {
                    dfphCaseTask.setExpireTime(DateUtils.addDay(nowDate, dfpFlowNode.getExpire()));
                }
                dfphCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                dfphCaseTask.setCustId(dfphCaseTask.getCustId());
                dfphCaseTask.setCreateTime(nowDate);
                dfphCaseTask.setUpdateTime(nowDate);
                mapper.insert(dfphCaseTask);
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webAppearAudit]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAppearAudit", e);
        }
    }
    /**
     * 按条件查询
     * @param terms 条件
     * @return List
     */
    public List<SignTaskDTO> listIdByTerms(Map<String, Object> terms){
        return mapper.listIdByTerms(terms);
    }
    /**
     * web端-工作台-已办事项
     * @param page 分页对象
     * @param terms 条件
     * @return Page
     */
    public Page<FrontPageListYBDTO> pageMyTaskYb(PageRequest page, Map<String, Object> terms){
        try {
            long total = mapper.countMyTaskYb(terms);
            List<FrontPageListYBDTO> frontPageListYBDTOList = mapper.pageMyTaskYb(page, terms);
            return new PageImpl<FrontPageListYBDTO>(frontPageListYBDTOList, page, total);
        }catch (Exception e) {
            log.error("[CaseTaskService.pageMyTaskYb]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseTaskService.pageMyTaskYb", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/service/ByToGzService.java
@@ -1,27 +1,36 @@
package cn.huge.module.syncbydyh.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.module.cases.domain.po.CaseAgent;
import cn.huge.module.cases.domain.po.CaseInfo;
import cn.huge.module.cases.domain.po.CasePerson;
import cn.huge.module.cases.domain.po.CaseTask;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.module.cases.domain.dto.AcceptTaskDTO;
import cn.huge.module.cases.domain.po.*;
import cn.huge.module.cases.service.*;
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.cust.constant.UserBaseConsts;
import cn.huge.module.cust.dto.CtUnitDTO;
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.disp.dto.DispCaseBaseDTO;
import cn.huge.module.syncbydyh.client.api.impl.SyncBydyhClientImpl;
import cn.huge.module.syncbydyh.domain.dto.ByCaseTaskDTO;
import cn.huge.module.syncbydyh.domain.dto.GZCaseDTO;
import cn.huge.module.syncbydyh.domain.po.SyCause;
import cn.huge.module.syncbydyh.domain.po.ThirdCause;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
 * @title: 白云数据割接为广州数据的业务逻辑处理
 * @Description 白云数据割接为广州数据的业务逻辑处理
 * @title: 白云区矛盾纠纷多元化解平台数据割接-公共逻辑处理
 * @Description 白云区矛盾纠纷多元化解平台数据割接-公共逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-08-19 20:04:19
@@ -43,49 +52,67 @@
    private CaseAgentService caseAgentService;
    @Autowired
    private CaseTaskService caseTaskService;
    @Autowired
    private ThirdCauseService thirdCauseService;
    @Autowired
    private SyCauseService syCauseService;
    @Autowired
    private CustClientImpl custClient;
    @Autowired
    private ByToGzCaseTaskService byToGzCaseTaskService;
    /**
     * 白云区矛盾纠纷多元化解平台数据割接-已结束的纠纷案件信息
     */
    public void byToGzEndCase(){
        try{
            List<CaseInfo> errorCaseList = new ArrayList<>();
            int operSize = 100;
//            int endCaseCount = 1000;
            int endCaseCount = syncBydyhClient.countEndCase();
            if (endCaseCount > 0) {
                int allPage = (endCaseCount/operSize);
//                int allPage = 1;
//                int allPage = (endCaseCount/operSize);
                int allPage = 20;
                for (int operPage=1; operPage<=allPage; operPage++) {
                    try{
                        List<GZCaseDTO> byToGzDTOList = syncBydyhClient.byToGzEndCase(operPage, operSize);
                        for (GZCaseDTO byToGzDTO: byToGzDTOList){
                            caseInfoService.saveOrUpdate(byToGzDTO.getGzCaseInfoDTO());
                    List<GZCaseDTO> byToGzDTOList = syncBydyhClient.byToGzEndCase(operPage, operSize);
                    for (GZCaseDTO byToGzDTO: byToGzDTOList){
                        // 新增案件信息
                        CaseInfo caseInfo = byToGzDTO.getGzCaseInfoDTO();
                        try {
                            if (caseInfo.getCaseClaim().length() > 200) {
                                caseInfo.setCaseClaim("详见申请材料");
                            }
                            if (caseInfo.getCaseDes().length() > 200) {
                                caseInfo.setCaseDes("详见申请材料");
                            }
                            caseInfoService.saveOrUpdate(caseInfo);
                            // 新增案件扩展信息
                            caseInfoUnfoldService.saveOrUpdate(byToGzDTO.getGzCaseInfoUnfoldDTO());
                            // 新增当事人信息
                            List<CasePerson> casePersonList = byToGzDTO.getGzCasePersonDTOList();
                            if (CollectionUtils.isNotEmpty(casePersonList)) {
                                for (CasePerson casePerson : casePersonList) {
                                    casePersonService.saveOrUpdate(casePerson);
                                }
                            }
                            // 新增当事人代理人信息
                            List<CaseAgent> caseAgentList = byToGzDTO.getGzCaseAgentDTOList();
                            if (CollectionUtils.isNotEmpty(caseAgentList)) {
                                for (CaseAgent caseAgent : caseAgentList) {
                                    caseAgentService.saveOrUpdate(caseAgent);
                                }
                            }
                            // 新增纠纷任务信息
                            List<CaseTask> caseTaskList = byToGzDTO.getGzCaseTaskDTOList();
                            if (CollectionUtils.isNotEmpty(caseTaskList)) {
                                for (CaseTask caseTask : caseTaskList) {
                                    caseTaskService.saveOrUpdate(caseTask);
                                }
                            }
                        }catch (Exception e){
                            log.error("[ByToGzService.byToGzEndCase]调用失败,异常信息:"+e, e);
                            errorCaseList.add(byToGzDTO.getGzCaseInfoDTO());
                        }
                    }catch (Exception e){
                        log.error("[ByToGzService.byToGzEndCase]调用失败,异常信息:"+e, e);
                    }
                }
            }
@@ -94,4 +121,156 @@
            throw new ServiceException("ByToGzService.byToGzEndCase", e);
        }
    }
    /**
     * 白云区矛盾纠纷多元化解平台数据割接-进行中的纠纷案件信息
     */
    public void byToGzTodoCase(){
        try{
            int operSize = 100;
            int endCaseCount = syncBydyhClient.countTodoCase();
            if (endCaseCount > 0) {
                int allPage = (endCaseCount/operSize);
                for (int operPage=1; operPage<=allPage; operPage++) {
                    List<GZCaseDTO> byToGzDTOList = syncBydyhClient.byToGzTodoCase(operPage, operSize);
                    for (GZCaseDTO byToGzDTO: byToGzDTOList){
                        try {
                            // 新增案件信息
                            CaseInfo caseInfo = byToGzDTO.getGzCaseInfoDTO();
                            if (caseInfo.getCaseClaim().length() > 200) {
                                caseInfo.setCaseClaim("详见申请材料");
                            }
                            if (caseInfo.getCaseDes().length() > 200) {
                                caseInfo.setCaseDes("详见申请材料");
                            }
                            caseInfoService.saveOrUpdate(caseInfo);
                            // 新增案件扩展信息
                            CaseInfoUnfold caseInfoUnfold = byToGzDTO.getGzCaseInfoUnfoldDTO();
                            caseInfoUnfoldService.saveOrUpdate(caseInfoUnfold);
                            // 新增当事人信息
                            List<CasePerson> casePersonList = byToGzDTO.getGzCasePersonDTOList();
                            if (CollectionUtils.isNotEmpty(casePersonList)) {
                                for (CasePerson casePerson : casePersonList) {
                                    casePersonService.saveOrUpdate(casePerson);
                                }
                            }
                            // 新增当事人代理人信息
                            List<CaseAgent> caseAgentList = byToGzDTO.getGzCaseAgentDTOList();
                            if (CollectionUtils.isNotEmpty(caseAgentList)) {
                                for (CaseAgent caseAgent : caseAgentList) {
                                    caseAgentService.saveOrUpdate(caseAgent);
                                }
                            }
                            // 启动流程
                            caseTaskService.deleteByCaseId(caseInfo.getId());
                            if (StringUtils.isNotEmpty(caseInfoUnfold.getMediateUnitId())
                                    && StringUtils.isNotEmpty(caseInfo.getWantUnitId())
                                    && caseInfo.getWantUnitId().equals(caseInfoUnfold.getMediateUnitId())) {
                                CtUserDTO ctUserDTO = custClient.clientGetUserAll(caseInfo.getInputUserId());
                                byToGzCaseTaskService.webStartFlowZXSL(caseInfo, ctUserDTO);
                            } else {
                                DispCaseBaseDTO dispCaseBaseDTO = new DispCaseBaseDTO();
                                BeanUtils.copyProperties(caseInfo, dispCaseBaseDTO);
                                dispCaseBaseDTO.setWantUserId(null);
                                dispCaseBaseDTO.setWantUserName(null);
                                if (StringUtils.isNotEmpty(caseInfoUnfold.getMediateUnitId())) {
                                    dispCaseBaseDTO.setWantUnitId(caseInfoUnfold.getMediateUnitId());
                                    dispCaseBaseDTO.setWantUnitName(caseInfoUnfold.getMediateUnitName());
                                    String dslCaseTaskId = byToGzCaseTaskService.webStartFlowLFDJ(caseInfo, dispCaseBaseDTO);
                                    List<ByCaseTaskDTO> byCaseTaskDTOList = byToGzDTO.getByCaseTaskDTOList();
                                    if (CollectionUtils.isNotEmpty(byCaseTaskDTOList)) {
                                        for (ByCaseTaskDTO byCaseTaskDTO : byCaseTaskDTOList) {
                                            if ("F22_00019-2".equals(byCaseTaskDTO.getTaskNode())) {
                                                AcceptTaskDTO acceptTaskDTO = new AcceptTaskDTO();
                                                acceptTaskDTO.setCaseTaskId(dslCaseTaskId);
                                                try {
                                                    byToGzCaseTaskService.webAccept(acceptTaskDTO, byCaseTaskDTO.getHandlerUserId(), byCaseTaskDTO.getCreateTime());
                                                } catch (Exception e) {
                                                    log.error(e.getMessage(), e);
                                                }
                                            }
                                        }
                                    }
                                } else {
                                    byToGzCaseTaskService.webStartFlowLFDJ(caseInfo, dispCaseBaseDTO);
                                }
                            }
                        }catch (Exception e){
                            log.error("[ByToGzService.byToGzEndCase]调用失败,异常信息:"+e, e);
                        }
                    }
                }
            }
        }catch (Exception e){
            log.error("[ByToGzService.byToGzEndCase]调用失败,异常信息:"+e, e);
            throw new ServiceException("ByToGzService.byToGzEndCase", e);
        }
    }
    /**
     * 白云区矛盾纠纷多元化解平台数据割接-更新纠纷类型
     */
    public void upThirdCause(){
        try{
            List<CaseInfo> caseInfoList = caseInfoService.list();
            QueryWrapper<ThirdCause> thirdCauseQueryWrapper = new QueryWrapper<>();
            for (CaseInfo caseInfo: caseInfoList){
                thirdCauseQueryWrapper.clear();
                thirdCauseQueryWrapper.eq("third_code", caseInfo.getCaseType());
                ThirdCause thirdCause = thirdCauseService.getOne(thirdCauseQueryWrapper);
                if (ObjectUtils.isNotEmpty(thirdCause)){
                    SyCause syCause = syCauseService.getById(thirdCause.getCauseCode());
                    if (ObjectUtils.isNotEmpty(syCause)){
                        // 查询父级
                        SyCause syCausePanrent = syCauseService.getById(syCause.getParentId());
                        if (ObjectUtils.isNotEmpty(syCausePanrent)){
                            try{
                                CaseInfo caseInfoPO = new CaseInfo();
                                caseInfoPO.setId(caseInfo.getId());
                                caseInfoPO.setCaseType(syCause.getId());
                                caseInfoPO.setCaseTypeName(syCause.getName());
                                caseInfoPO.setCaseTypeFirst(syCausePanrent.getId());
                                caseInfoPO.setCaseTypeFirstName(syCausePanrent.getName());
                                caseInfoService.updateCaseInfo(caseInfoPO);
                            }catch (Exception e){
                                log.error("[ByToGzService.upThirdCause]调用失败,异常信息:"+e, e);
                            }
                        }
                    }
                }
            }
        }catch (Exception e){
            log.error("[ByToGzService.byToGzEndCase]调用失败,异常信息:"+e, e);
            throw new ServiceException("ByToGzService.byToGzEndCase", e);
        }
    }
    /**
     * 白云区矛盾纠纷多元化解平台数据割接-更新问题属地的村级社区
     */
    public void upQueAddr(){
        try{
            List<CaseInfoUnfold> caseInfoUnfoldList = caseInfoUnfoldService.list();
            for (CaseInfoUnfold caseInfoUnfold: caseInfoUnfoldList){
                if (StringUtils.isNotEmpty(caseInfoUnfold.getMediateUnitId())) {
                    CtUnitDTO ctUnitDTO = custClient.getUnitById(caseInfoUnfold.getMediateUnitId());
                    if (ObjectUtils.isNotEmpty(ctUnitDTO)){
                        if (StringUtils.isNotEmpty(ctUnitDTO.getVillage())) {
                            CaseInfo caseInfo = new CaseInfo();
                            caseInfo.setId(caseInfoUnfold.getId());
                            caseInfo.setQueVillage(ctUnitDTO.getVillage());
                            caseInfo.setQueVillageName(ctUnitDTO.getVillageName());
                            caseInfoService.updateCaseInfo(caseInfo);
                        }
                    }
                }
            }
        }catch (Exception e){
            log.error("[ByToGzService.upQueAddr]调用失败,异常信息:"+e, e);
            throw new ServiceException("ByToGzService.upQueAddr", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/service/SyCauseService.java
New file
@@ -0,0 +1,133 @@
package cn.huge.module.syncbydyh.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.syncbydyh.dao.mapper.SyCauseMapper;
import cn.huge.module.syncbydyh.domain.po.SyCause;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @title: 纠纷类型信息表业务逻辑处理
 * @Description 纠纷类型信息表业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-10-21 22:18:51
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class SyCauseService extends ServiceImpl<SyCauseMapper, SyCause>{
    @Autowired
    private SyCauseMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateSyCause(SyCause entity){
        try{
            mapper.updateSyCause(entity);
        }catch (Exception e){
            log.error("[SyCauseService.updateSyCause]调用失败,异常信息:"+e, e);
            throw new ServiceException("SyCauseService.updateSyCause", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateSyCauseTerms(SyCause entity, Map<String, Object> terms){
        try{
            mapper.updateSyCauseTerms(entity, terms);
        }catch (Exception e){
            log.error("[SyCauseService.updateSyCauseTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("SyCauseService.updateSyCauseTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteSyCause(String id){
        try{
            mapper.deleteSyCause(id);
        }catch (Exception e){
            log.error("[SyCauseService.deleteSyCause]调用失败,异常信息:"+e, e);
            throw new ServiceException("SyCauseService.deleteSyCause", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<SyCause> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<SyCause> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<SyCause> content = mapper.pageTerms(page, terms);
        return new PageImpl<SyCause>(content, page, total);
    }
    /**
    * 新增或更新对象
    * @param syCause 实体对象
    */
    public void saveSyCause(SyCause syCause){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(syCause.getId())){
                syCause.setId(utilsClient.getNewTimeId());
                syCause.setCreateTime(nowDate);
            }
            syCause.setUpdateTime(nowDate);
            this.saveOrUpdate(syCause);
        }catch (Exception e){
            log.error("[SyCauseService.saveSyCause]调用失败,异常信息:"+e, e);
            throw new ServiceException("SyCauseService.saveSyCause", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/syncbydyh/service/ThirdCauseService.java
New file
@@ -0,0 +1,113 @@
package cn.huge.module.syncbydyh.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.syncbydyh.dao.mapper.ThirdCauseMapper;
import cn.huge.module.syncbydyh.domain.po.ThirdCause;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @title: 第三方纠纷类型映射表业务逻辑处理
 * @Description 第三方纠纷类型映射表业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-10-21 22:04:49
 * @version 1.0.0
 */
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class ThirdCauseService extends ServiceImpl<ThirdCauseMapper, ThirdCause>{
    @Autowired
    private ThirdCauseMapper mapper;
    @Autowired
    private UtilsClientImpl utilsClient;
    /**
    * 更新对象
    * @param entity 对象
    */
    public void updateThirdCause(ThirdCause entity){
        try{
            mapper.updateThirdCause(entity);
        }catch (Exception e){
            log.error("[ThirdCauseService.updateThirdCause]调用失败,异常信息:"+e, e);
            throw new ServiceException("ThirdCauseService.updateThirdCause", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
    */
    public void updateThirdCauseTerms(ThirdCause entity, Map<String, Object> terms){
        try{
            mapper.updateThirdCauseTerms(entity, terms);
        }catch (Exception e){
            log.error("[ThirdCauseService.updateThirdCauseTerms]调用失败,异常信息:"+e, e);
            throw new ServiceException("ThirdCauseService.updateThirdCauseTerms", e);
        }
    }
    /**
    * 根据编号物理删除
    * @param id 查询条件集合
    */
    public void deleteThirdCause(String id){
        try{
            mapper.deleteThirdCause(id);
        }catch (Exception e){
            log.error("[ThirdCauseService.deleteThirdCause]调用失败,异常信息:"+e, e);
            throw new ServiceException("ThirdCauseService.deleteThirdCause", e);
        }
    }
    /**
    * 按条件查询
    * @param terms 条件
    * @return List
    */
    public List<ThirdCause> listTerms(Map<String, Object> terms){
        return mapper.listTerms(terms);
    }
    /**
    * 按条件统计
    * @param terms 条件
    * @return long
    */
    public long countTerms(Map<String, Object> terms){
        return mapper.countTerms(terms);
    }
    /**
    * 按条件分页查询
    * @param page 分页对象
    * @param terms 条件
    * @return Page
    */
    public Page<ThirdCause> pageQuery(PageRequest page, Map<String, Object> terms){
        long total = mapper.countTerms(terms);
        List<ThirdCause> content = mapper.pageTerms(page, terms);
        return new PageImpl<ThirdCause>(content, page, total);
    }
}
dyh-service/dyh-sync-bydyh/src/main/java/cn/huge/module/bycase/controller/SyncCaseController.java
@@ -45,7 +45,7 @@
    public Object countEndCase() {
        try {
            Map<String, Object> terms = Maps.newHashMap();
            terms.put("EndProcess", "EndProcess");
            terms.put("endProcess", "endProcess");
            return ReturnSucUtils.getRepInfo(caseInfoService.countTerms(terms));
        } catch (Exception e) {
            log.error("[SyncCustController.countEndCase]请求失败,异常信息:"+e, e);
@@ -71,4 +71,39 @@
        }
    }
    /**
     * 数据割接-统计进行中的纠纷案件信息
     * @url {ctx}/api/client/syncCase/countTodoCase
     * @return
     */
    @GetMapping("/countTodoCase")
    public Object countTodoCase() {
        try {
            Map<String, Object> terms = Maps.newHashMap();
            terms.put("todoProcess", "todoProcess");
            return ReturnSucUtils.getRepInfo(caseInfoService.countTerms(terms));
        } catch (Exception e) {
            log.error("[SyncCustController.countTodoCase]请求失败,异常信息:"+e, e);
            return ReturnFailUtils.getRepInfo(e.getMessage());
        }
    }
    /**
     * 数据割接-进行中的纠纷案件信息
     * @url {ctx}/api/client/syncCase/byToGzTodoCase
     * @param page
     * @param size
     * @return
     */
    @GetMapping("/byToGzTodoCase")
    public Object byToGzTodoCase(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
        try {
            List<GZCaseDTO> gzCaseDTOList = caseInfoService.byToGzTodoCase(page, size);
            return ReturnSucUtils.getRepInfo(gzCaseDTOList);
        } catch (Exception e) {
            log.error("[SyncCustController.byToGzTodoCase]请求失败,异常信息:"+e, e);
            return ReturnFailUtils.getRepInfo(e.getMessage());
        }
    }
}
dyh-service/dyh-sync-bydyh/src/main/java/cn/huge/module/bycase/dao/mapper/xml/CaseInfoMapper.xml
@@ -670,9 +670,12 @@
                    and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
                        and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
                </if>
                <if test="terms.EndProcess != null and terms.EndProcess !=''">
                <if test="terms.endProcess != null and terms.endProcess !=''">
                    and process in ('22_00006-4', '22_00006-5', '22_00006-6', '22_00006-7')
                </if>
                <if test="terms.todoProcess != null and terms.todoProcess !=''">
                    and process in ('22_00006-1', '22_00006-2', '22_00006-3')
                </if>
            </where>
        </if>
    </sql>
dyh-service/dyh-sync-bydyh/src/main/java/cn/huge/module/bycase/domain/dto/GZCaseDTO.java
@@ -1,5 +1,6 @@
package cn.huge.module.bycase.domain.dto;
import cn.huge.module.bycase.domain.po.CaseTask;
import lombok.Data;
import java.util.List;
@@ -25,4 +26,6 @@
    private List<GZCaseTaskDTO> gzCaseTaskDTOList;
    private List<CaseTask> byCaseTaskDTOList;
}
dyh-service/dyh-sync-bydyh/src/main/java/cn/huge/module/bycase/service/CaseInfoService.java
@@ -133,7 +133,7 @@
    public List<GZCaseDTO> byToGzEndCase(int page, int size){
        List<GZCaseDTO> gzCaseDTOList = new ArrayList<>();
        Map<String, Object> terms = Maps.newHashMap();
        terms.put("EndProcess", "EndProcess");
        terms.put("endProcess", "endProcess");
        Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
        PageRequest pageRequest = PageRequest.of(page-1, size, sort);
        Page<CaseInfo> caseInfoPage = this.pageQuery(pageRequest, terms);
@@ -445,7 +445,7 @@
                    }
                    // 结案归档节点
                    if (ByFlowNodeEnum.FLOW_NODE_4.getIndex().equals(caseTask.getTaskNode())
                            || ByFlowNodeEnum.FLOW_NODE_5.getIndex().equals(caseTask.getTaskNode()) ){
                            || ByFlowNodeEnum.FLOW_NODE_5.getIndex().equals(caseTask.getTaskNode())){
                        gzCaseTaskDTO.setNodeId(GZFlowNodeEnum.FLOW_NODE_JAGD.getIndex());
                        gzCaseTaskDTO.setNodeName(GZFlowNodeEnum.FLOW_NODE_JAGD.getDes());
                        gzCaseTaskDTO.setNodeShowName("结案归档");
@@ -462,7 +462,7 @@
                    gzCaseTaskDTO.setCandeUserId(caseTask.getHandlerUserId());
                    gzCaseTaskDTO.setCandeUserName(caseTask.getHandlerUserName());
                    // 任务处理
                    if ("2".equals(caseTask.getStatus())) {
                    if ("2".equals(caseTask.getStatus())){
                        gzCaseTaskDTO.setStatus(GZCaseTaskConsts.TASK_STATUS_2);
                    }else {
                        gzCaseTaskDTO.setStatus(GZCaseTaskConsts.TASK_STATUS_1);
@@ -502,4 +502,282 @@
        return gzCaseDTOList;
    }
    /**
     * 数据割接-进行中的纠纷案件信息
     * @return
     */
    public List<GZCaseDTO> byToGzTodoCase(int page, int size){
        List<GZCaseDTO> gzCaseDTOList = new ArrayList<>();
        Map<String, Object> terms = Maps.newHashMap();
        terms.put("todoProcess", "todoProcess");
        Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
        PageRequest pageRequest = PageRequest.of(page-1, size, sort);
        Page<CaseInfo> caseInfoPage = this.pageQuery(pageRequest, terms);
        for (CaseInfo caseInfo: caseInfoPage){
            if ("2105191835025741".equals(caseInfo.getWantUnitId()) || "2105191835025741".equals(caseInfo.getMediateUnitId())){
                log.info("过滤演示案件");
            }else {
                GZCaseDTO gzCaseDTO = new GZCaseDTO();
                // 封装案件信息
                GZCaseInfoDTO gzCaseInfoDTO = new GZCaseInfoDTO();
                BeanUtils.copyProperties(caseInfo, gzCaseInfoDTO);
                // 生成事项编号
                gzCaseInfoDTO.setCaseRef(utilsClient.createCaseRef());
                // 都是3级事件
                gzCaseInfoDTO.setCaseLevel(CaseBaseConsts.CASE_LEVEL_3);
                // 映射来访时间
                gzCaseInfoDTO.setVisitTime(caseInfo.getAcceptTime());
                // 映射来访人数
                gzCaseInfoDTO.setVisitPeopleNum(caseInfo.getPeopleNum());
                // 映射纠纷类型
//            gzCaseInfoDTO.setCaseTypeFirst();
//            gzCaseInfoDTO.setCaseTypeFirstName();
//            gzCaseInfoDTO.setCaseType();
//            gzCaseInfoDTO.setCaseTypeName();
                // 映射问题属地
                gzCaseInfoDTO.setQueProv(GzRegionEnum.PROV_1.getIndex());
                gzCaseInfoDTO.setQueProvName(GzRegionEnum.PROV_1.getDes());
                gzCaseInfoDTO.setQueCity(GzRegionEnum.CITY_1.getIndex());
                gzCaseInfoDTO.setQueCityName(GzRegionEnum.CITY_1.getDes());
                gzCaseInfoDTO.setQueArea(GzRegionEnum.AREA_7.getIndex());
                gzCaseInfoDTO.setQueAreaName(GzRegionEnum.AREA_7.getDes());
                if (StringUtils.isNotEmpty(caseInfo.getRoad())) {
                    if (ByRegionEnum.getGZRegion(caseInfo.getRoad()) != null) {
                        gzCaseInfoDTO.setQueRoad(ByRegionEnum.getGZRegion(caseInfo.getRoad()).getIndex());
                        gzCaseInfoDTO.setQueRoadName(ByRegionEnum.getGZRegion(caseInfo.getRoad()).getDes());
                    }
                }
                gzCaseInfoDTO.setQueVillage(null);
                gzCaseInfoDTO.setQueVillageName(null);
                if ("2".equals(caseInfo.getInputWay())) {
                    gzCaseInfoDTO.setInputWay(2);
                } else {
                    gzCaseInfoDTO.setInputWay(1);
                }
                // 映射事项来源、来访形式
                if (ByCaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())) {
                    if (caseInfo.getMediateUnitId().equals(caseInfo.getInputUnitId())) {
                        // 事项来源
                        gzCaseInfoDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_3.getIndex());
                        gzCaseInfoDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_3.getDes());
                        // 来访形式
                        gzCaseInfoDTO.setVisitWay(CaseBaseConstsEnum.getVisitWayByCanal(gzCaseInfoDTO.getCanal()).getIndex());
                        gzCaseInfoDTO.setVisitWayName(CaseBaseConstsEnum.getVisitWayByCanal(gzCaseInfoDTO.getCanal()).getDes());
                    } else {
                        // 事项来源
                        gzCaseInfoDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_1.getIndex());
                        gzCaseInfoDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
                        // 来访形式
                        gzCaseInfoDTO.setVisitWay(CaseBaseConstsEnum.getVisitWayByCanal(gzCaseInfoDTO.getCanal()).getIndex());
                        gzCaseInfoDTO.setVisitWayName(CaseBaseConstsEnum.getVisitWayByCanal(gzCaseInfoDTO.getCanal()).getDes());
                    }
                } else if (ByCaseConstsEnum.CASE_CANAL_2.getIndex().equals(caseInfo.getCanal())) {
                    // 事项来源
                    gzCaseInfoDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_2.getIndex());
                    gzCaseInfoDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes());
                    // 来访形式
                    gzCaseInfoDTO.setVisitWay(CaseBaseConstsEnum.getVisitWayByCanal(gzCaseInfoDTO.getCanal()).getIndex());
                    gzCaseInfoDTO.setVisitWayName(CaseBaseConstsEnum.getVisitWayByCanal(gzCaseInfoDTO.getCanal()).getDes());
                }
                // 映射是否自行受理
                gzCaseInfoDTO.setZxslStatus(CaseBaseConsts.ZXSL_STATUS_0);
                // 是否重大矛盾纠纷
                gzCaseInfoDTO.setMajorStatus(CaseBaseConsts.MAJOR_STATUS_0);
                // 映射事项状态、事项进度、对外展示事项进度
                if (ByCaseConstsEnum.CASE_PROCESS_1.getIndex().equals(caseInfo.getProcess())) {
                    // 事项状态
                    gzCaseInfoDTO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex());
                    gzCaseInfoDTO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes());
                    // 事项进度
                    gzCaseInfoDTO.setProcess(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getIndex());
                    gzCaseInfoDTO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getDes());
                    // 对外展示事项进度
                    gzCaseInfoDTO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getIndex());
                    gzCaseInfoDTO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getDes());
                } else if (ByCaseConstsEnum.CASE_PROCESS_2.getIndex().equals(caseInfo.getProcess())) {
                    // 事项状态
                    gzCaseInfoDTO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex());
                    gzCaseInfoDTO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes());
                    // 事项进度
                    gzCaseInfoDTO.setProcess(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getIndex());
                    gzCaseInfoDTO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getDes());
                    // 对外展示事项进度
                    gzCaseInfoDTO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getIndex());
                    gzCaseInfoDTO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getDes());
                } else if (ByCaseConstsEnum.CASE_PROCESS_3.getIndex().equals(caseInfo.getProcess())) {
                    // 事项状态
                    gzCaseInfoDTO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_4.getIndex());
                    gzCaseInfoDTO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_4.getDes());
                    // 事项进度
                    gzCaseInfoDTO.setProcess(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getIndex());
                    gzCaseInfoDTO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getDes());
                    // 对外展示事项进度
                    gzCaseInfoDTO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getIndex());
                    gzCaseInfoDTO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getDes());
                } else if (ByCaseConstsEnum.CASE_PROCESS_4.getIndex().equals(caseInfo.getProcess())) {
                    // 事项状态
                    gzCaseInfoDTO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex());
                    gzCaseInfoDTO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.getDes());
                    // 事项进度
                    gzCaseInfoDTO.setProcess(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getIndex());
                    gzCaseInfoDTO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getDes());
                    // 对外展示事项进度
                    gzCaseInfoDTO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getIndex());
                    gzCaseInfoDTO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getDes());
                } else if (ByCaseConstsEnum.CASE_PROCESS_5.getIndex().equals(caseInfo.getProcess())) {
                    // 事项状态
                    gzCaseInfoDTO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_8.getIndex());
                    gzCaseInfoDTO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_8.getDes());
                    // 事项进度
                    gzCaseInfoDTO.setProcess(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getIndex());
                    gzCaseInfoDTO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getDes());
                    // 对外展示事项进度
                    gzCaseInfoDTO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getIndex());
                    gzCaseInfoDTO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getDes());
                } else if (ByCaseConstsEnum.CASE_PROCESS_6.getIndex().equals(caseInfo.getProcess())) {
                    // 事项状态
                    gzCaseInfoDTO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_8.getIndex());
                    gzCaseInfoDTO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_8.getDes());
                    // 事项进度
                    gzCaseInfoDTO.setProcess(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getIndex());
                    gzCaseInfoDTO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getDes());
                    // 对外展示事项进度
                    gzCaseInfoDTO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getIndex());
                    gzCaseInfoDTO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getDes());
                } else if (ByCaseConstsEnum.CASE_PROCESS_7.getIndex().equals(caseInfo.getProcess())) {
                    // 事项状态
                    gzCaseInfoDTO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_8.getIndex());
                    gzCaseInfoDTO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_8.getDes());
                    // 事项进度
                    gzCaseInfoDTO.setProcess(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getIndex());
                    gzCaseInfoDTO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(gzCaseInfoDTO.getStatus()).getDes());
                    // 对外展示事项进度
                    gzCaseInfoDTO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getIndex());
                    gzCaseInfoDTO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(gzCaseInfoDTO.getProcess()).getDes());
                }
                // 映射小程序是否可见
                gzCaseInfoDTO.setPartyShow(CaseBaseConsts.PARTY_SHOW_1);
                // 映射删除状态
                if (ByBaseConsts.DELETE_STATUS_99.equals(caseInfo.getDeleteStatus())) {
                    gzCaseInfoDTO.setDeleteStatus(BaseConsts.DELETE_STATUS_1);
                } else {
                    gzCaseInfoDTO.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                }
                gzCaseDTO.setGzCaseInfoDTO(gzCaseInfoDTO);
                // 封装案件扩展信息
                GZCaseInfoUnfoldDTO gzCaseInfoUnfoldDTO = new GZCaseInfoUnfoldDTO();
                BeanUtils.copyProperties(caseInfo, gzCaseInfoUnfoldDTO);
                // 映射调解结果名称
                gzCaseInfoUnfoldDTO.setMediResultName(MediResultBaseConstsEnum.getDes(caseInfo.getMediResult()));
                // 映射达成协议类型
                if (ByCaseConstsEnum.CASE_PROCESS_4.getIndex().equals(caseInfo.getProcess())) {
                    // 调解成功
                    if (ByCaseConstsEnum.MEDI_RESULT_1.getIndex().equals(caseInfo.getMediResult())) {
                        if (StringUtils.isNotEmpty(caseInfo.getAgreeContent())) {
                            gzCaseInfoUnfoldDTO.setAgreeType(CaseBaseConstsEnum.AGREE_TYPE_1.getIndex());
                            gzCaseInfoUnfoldDTO.setAgreeTypeName(CaseBaseConstsEnum.AGREE_TYPE_1.getDes());
                        } else {
                            gzCaseInfoUnfoldDTO.setAgreeType(CaseBaseConstsEnum.AGREE_TYPE_2.getIndex());
                            gzCaseInfoUnfoldDTO.setAgreeTypeName(CaseBaseConstsEnum.AGREE_TYPE_2.getDes());
                        }
                    }
                }
                // 映射结案意见
                gzCaseInfoUnfoldDTO.setWindupContent(caseInfo.getMediContent());
                // 映射是否转诉讼案件
                if (ByCaseConsts.CIVIL_STATUS_2 == caseInfo.getCivilStatus()) {
                    gzCaseInfoUnfoldDTO.setCivilStatus(CaseBaseConsts.CIVIL_STATUS_1);
                } else {
                    gzCaseInfoUnfoldDTO.setCivilStatus(CaseBaseConsts.CIVIL_STATUS_0);
                }
                // 映射办结时间
                if (ObjectUtils.isNotEmpty(caseInfo.getFileTime())) {
                    gzCaseInfoUnfoldDTO.setCloseTime(caseInfo.getFileTime());
                } else if (ObjectUtils.isNotEmpty(caseInfo.getMediEndTime())) {
                    gzCaseInfoUnfoldDTO.setCloseTime(caseInfo.getMediEndTime());
                } else {
                    gzCaseInfoUnfoldDTO.setCloseTime(caseInfo.getUpdateTime());
                }
                // 映射是否申请司法确认
                if (ByCaseConsts.JUDIC_APPLY_2 == caseInfo.getCivilStatus()) {
                    gzCaseInfoUnfoldDTO.setJudicApply(CaseBaseConsts.JUDIC_APPLY_1);
                } else {
                    gzCaseInfoUnfoldDTO.setJudicApply(CaseBaseConsts.JUDIC_APPLY_0);
                }
                // 映射是否已归档
                if (ByCaseConsts.FILE_STATUS_2 == caseInfo.getCivilStatus()) {
                    gzCaseInfoUnfoldDTO.setFileStatus(CaseBaseConsts.FILE_STATUS_1);
                } else {
                    gzCaseInfoUnfoldDTO.setFileStatus(CaseBaseConsts.FILE_STATUS_0);
                }
                // 映射是否已回访
                if (ByCaseConsts.VISIT_STATUS_2 == caseInfo.getCivilStatus()) {
                    gzCaseInfoUnfoldDTO.setVisitUpStatus(CaseBaseConsts.VISIT_UP_STATUS_1);
                } else {
                    gzCaseInfoUnfoldDTO.setVisitUpStatus(CaseBaseConsts.VISIT_UP_STATUS_0);
                }
                // 映射当事人是否满意
                if (ByCaseConsts.PARTY_JOY_2 == caseInfo.getCivilStatus()) {
                    gzCaseInfoUnfoldDTO.setPartyJoy(CaseBaseConsts.PARTY_JOY_1);
                } else {
                    gzCaseInfoUnfoldDTO.setPartyJoy(CaseBaseConsts.PARTY_JOY_0);
                }
                gzCaseDTO.setGzCaseInfoUnfoldDTO(gzCaseInfoUnfoldDTO);
                // 封装当事人信息
                QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>();
                casePersonQueryWrapper.eq("case_id", caseInfo.getId());
                List<CasePerson> casePersonList = casePersonService.list(casePersonQueryWrapper);
                if (CollectionUtils.isNotEmpty(casePersonList)) {
                    List<GZCasePersonDTO> gzCasePersonDTOList = new ArrayList<>();
                    for (CasePerson casePerson : casePersonList) {
                        GZCasePersonDTO gzCasePersonDTO = new GZCasePersonDTO();
                        BeanUtils.copyProperties(casePerson, gzCasePersonDTO);
                        // 映射是否有个人极端倾向
                        gzCasePersonDTO.setExtreme(CaseBaseConsts.EXTREME_0);
                        // 映射删除状态
                        if (ByBaseConsts.DELETE_STATUS_99.equals(casePerson.getDeleteStatus())) {
                            gzCasePersonDTO.setDeleteStatus(BaseConsts.DELETE_STATUS_1);
                        } else {
                            gzCasePersonDTO.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                        }
                        gzCasePersonDTOList.add(gzCasePersonDTO);
                    }
                    gzCaseDTO.setGzCasePersonDTOList(gzCasePersonDTOList);
                }
                // 封装当事人代理人信息
                QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>();
                caseAgentQueryWrapper.eq("case_id", caseInfo.getId());
                List<CaseAgent> caseAgentList = caseAgentService.list(caseAgentQueryWrapper);
                if (CollectionUtils.isNotEmpty(caseAgentList)) {
                    List<GZCaseAgentDTO> gzCaseAgentDTOList = new ArrayList<>();
                    for (CaseAgent caseAgent : caseAgentList) {
                        GZCaseAgentDTO gzCaseAgentDTO = new GZCaseAgentDTO();
                        BeanUtils.copyProperties(caseAgent, gzCaseAgentDTO);
                        // 映射是否有个人极端倾向
                        gzCaseAgentDTO.setExtreme(CaseBaseConsts.EXTREME_0);
                        // 映射删除状态
                        if (ByBaseConsts.DELETE_STATUS_99.equals(caseAgent.getDeleteStatus())) {
                            gzCaseAgentDTO.setDeleteStatus(BaseConsts.DELETE_STATUS_1);
                        } else {
                            gzCaseAgentDTO.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                        }
                        gzCaseAgentDTOList.add(gzCaseAgentDTO);
                    }
                    gzCaseDTO.setGzCaseAgentDTOList(gzCaseAgentDTOList);
                }
                // 封装案件任务信息
                QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>();
                caseTaskQueryWrapper.eq("case_id", caseInfo.getId()).orderByAsc("create_time");
                List<CaseTask> caseTaskList = caseTaskService.list(caseTaskQueryWrapper);
                gzCaseDTO.setByCaseTaskDTOList(caseTaskList);
                gzCaseDTOList.add(gzCaseDTO);
            }
        }
        return gzCaseDTOList;
    }
}
dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/client/FileInfoClientController.java
@@ -1,11 +1,15 @@
package cn.huge.module.file.controller.client;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.base.common.utils.ReturnFailUtils;
import cn.huge.base.common.utils.ReturnSucUtils;
import cn.huge.module.file.domain.po.FileInfo;
import cn.huge.module.file.service.FileInfoService;
import cn.huge.module.sys.dto.FileInfoBaseDTO;
import io.lettuce.core.dynamic.annotation.Param;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -59,4 +63,23 @@
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * 根据id查询
     * @url {ctx}/api/client/fileInfo/getFileInfoById
     * @return Object
     */
    @GetMapping("/getFileInfoById")
    public Object getFileInfoById(@RequestParam(value = "id") String id) {
        try {
            FileInfoBaseDTO fileInfoBaseDTO = new FileInfoBaseDTO();
            FileInfo fileInfo = service.getById(id);
            if (ObjectUtils.isNotEmpty(fileInfo)){
                BeanUtils.copyProperties(fileInfo, fileInfoBaseDTO);
            }
            return ReturnSucUtils.getRepInfo(fileInfoBaseDTO);
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
}