forked from gzzfw/backEnd/gz-dyh

督办信息兼容新需求
查询待办任务-督办
首页-督办-我发起的 功能兼容
添加督办逻辑修改
新增全部签收接口
首页-待审核-我申请的 新增接口
办理反馈新增承办/配合部门判断
新增查询督办详情接口
查询时限接口bug修复
2 files added
13 files modified
707 ■■■■ changed files
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseSuperviseWebController.java 18 ●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseTaskWebController.java 159 ●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseSuperviseMapper.java 9 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java 9 ●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseSuperviseMapper.xml 25 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml 100 ●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FileRelateDTO.java 94 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListWSQDDTO.java 86 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java 13 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseSuperviseService.java 61 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java 31 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java 19 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java 43 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/client/FileRelateClientController.java 38 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-sys/src/main/java/cn/huge/module/sy/controller/client/SyTimeLimitClientController.java 2 ●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseSuperviseWebController.java
@@ -177,7 +177,7 @@
    }
    /**
    * 根据编号查询单个
    * 根据督办编号查询督办信息
    * @url {ctx}/api/web/caseSupervise/getById
    * @param id 主键编号
    * @return Object
@@ -256,19 +256,27 @@
    }
    /**
     * 督办信息查询
     * 督办信息分页查询
     * @url {ctx}/api/web/caseSupervise/pageCaseSupervise
     * @param page 页码
     * @param size 每页数量
     * @param caseId 主键编号
     * @param type 查询类型 0:与案件相关信息 ,1:与案件和组织相关信息
     * @return Object
     */
    @GetMapping("/pageCaseSupervise")
    public Object pageCaseSupervise(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size,
                                    @RequestParam(value = "caseId") String caseId, @RequestParam(value = "supStatus") int supStatus,
                                    @CurrentUser String userId) {
                                    @RequestParam(value = "caseId") String caseId,
                                    @RequestParam(value = "type") int type, @CurrentUser String userId) {
        try {
            // 督办状态,0:未回复,1:已回复
            Integer supStatus = 0;
            if(StringUtils.isNotBlank(request.getParameter("supStatus"))){
                supStatus = Integer.valueOf(request.getParameter("supStatus"));
            }
            Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
            return ReturnSucUtils.getRepInfo(service.pageCaseSupervise(caseId, pageRequest, supStatus, userId));
            return ReturnSucUtils.getRepInfo(service.pageCaseSupervise(caseId, pageRequest, supStatus, userId, type));
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseTaskWebController.java
@@ -22,6 +22,7 @@
import org.apache.commons.lang3.StringUtils;
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.data.domain.Sort;
import org.springframework.web.bind.annotation.*;
@@ -122,6 +123,42 @@
    @PostMapping("/sign")
    public Object sign(@RequestBody List<SignTaskDTO> signTaskDTOList, @CurrentUser String userId) {
        try {
            service.webSign(signTaskDTOList, userId);
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * web端-全部签收
     * @url {ctx}/api/web/caseTask/allSign
     * @param
     * @return Object
     */
    @PostMapping("/allSign")
    public Object allSign(@CurrentUser String userId) {
        try {
            // 条件
            Map<String, Object> terms = Maps.newHashMap();
            // 流程/签收时间区间
            String timeStart = request.getParameter("timeStart");
            String timeEnd = request.getParameter("timeEnd");
            if(StringUtils.isNotBlank(timeStart) && StringUtils.isNotBlank(timeEnd)) {
                // 待签收,查询流转时间
                terms.put("createTimeStart", timeStart);
                terms.put("createTimeEnd", timeEnd);
            }
            // 查询申请方/被申请方关键词
            String partyName = request.getParameter("partyName");
            if (StringUtils.isNotBlank(partyName)){
                terms.put("partyName", partyName);
            }
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            terms.put("candeUnitId",loginUser.getUnitId());
            terms.put("signStatus", 1);
            List<SignTaskDTO>signTaskDTOList = service.listIdByTerms(terms);
            service.webSign(signTaskDTOList, userId);
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
@@ -770,53 +807,82 @@
        }
    }
//    /**
//     * web端-工作台-查询待办任务-审核任务
//     * @url {ctx}/api/web/caseTask/pageMyTaskShWSQD
//     * @param page 页码
//     * @param size 每页数量
//     * @param status 状态,0:待审核,1:已审核
//     * @param sortType 排序方式(1:正序;2:倒序)
//     * @param sortColmn 排序字段(1:结案申请时间;2:事项等级)
//     * @return
//     */
//    @GetMapping("/pageMyTaskShWSQD")
//    public Object pageMyTaskShWSQD(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size,
//                               @RequestParam(value = "status") int status, @CurrentUser String userId,
//                                   @RequestParam(value = "sortType") int sortType, @RequestParam(value = "sortColmn") int sortColmn) {
//        try {
//            Map<String, Object> terms = Maps.newHashMap();
//            // 回退/上报/结案申请/联合处置申请/审核时间区间
//            String timeStart = request.getParameter("timeStart");
//            String timeEnd = request.getParameter("timeEnd");
//            if(StringUtils.isNotBlank(timeStart) && StringUtils.isNotBlank(timeEnd)) {
//                terms.put("timeStart", timeStart);
//                terms.put("timeEnd", timeEnd);
//            }
//            // 查询申请方/被申请方关键词
//            String partyName = request.getParameter("partyName");
//            if (StringUtils.isNotBlank(partyName)){
//                terms.put("partyName", partyName);
//            }
//            if(ObjectUtils.isEmpty(sort)){
//                sort = Sort.by(Sort.Direction.DESC, "t1.create_time");
//            }
//            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
//            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
//            terms.put("auditUnitId",loginUser.getUnitId());
//            terms.put("applyStatus", status);
//            return ReturnSucUtils.getRepInfo(service.pageMyTaskShWSQD(pageRequest, type, terms));
//        } catch (Exception e) {
//            return ReturnFailUtils.getRepInfo();
//        }
//    }
    /**
     * web端-工作台-查询待办任务-审核任务-我申请的
     * @url {ctx}/api/web/caseTask/pageMyTaskShWSQD
     * @param page 页码
     * @param size 每页数量
     * @param sortType 排序方式(1:正序;2:倒序)
     * @param sortColmn 排序字段(1:申请时间;2:审核时间;3:事项等级)
     * @return
     */
    @GetMapping("/pageMyTaskShWSQD")
    public Object pageMyTaskShWSQD(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size,
                               @CurrentUser String userId,@RequestParam(value = "sortType") int sortType,
                               @RequestParam(value = "sortColmn") int sortColmn) {
        try {
            Map<String, Object> terms = Maps.newHashMap();
            // 时间区间
            String timeStart = request.getParameter("timeStart");
            String timeEnd = request.getParameter("timeEnd");
            if(StringUtils.isNotBlank(timeStart) && StringUtils.isNotBlank(timeEnd)) {
                terms.put("timeStart", timeStart);
                terms.put("timeEnd", timeEnd);
            }
            // 查询申请方/被申请方关键词
            String partyName = request.getParameter("partyName");
            if (StringUtils.isNotBlank(partyName)){
                terms.put("partyName", partyName);
            }
            // 申请类型
            String applyType = request.getParameter("applyType");
            if (StringUtils.isNotBlank(applyType)){
                terms.put("applyType", applyType);
            }
            // 审核结果
            String auditResult = request.getParameter("auditResult");
            if (StringUtils.isNotBlank(auditResult)){
                terms.put("auditResult", auditResult);
            }
            Sort sort = null;
            String sortName = null;
            switch (sortColmn){
                case 1:
                    sortName = "t1.turnaroundTime";
                    break;
                case 2:
                    sortName = "t1.auditTime";
                    break;
                case 3:
                    sortName = "t2.caseGrade";
                    break;
            }
            switch (sortType){
                case 1:
                    sort = Sort.by(Sort.Direction.ASC, sortName);
                    break;
                case 2:
                    sort = Sort.by(Sort.Direction.DESC, sortName);
                    break;
            }
            if(ObjectUtils.isEmpty(sort)){
                sort = Sort.by(Sort.Direction.DESC, "t1.create_time");
            }
            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            terms.put("applyUnitId",loginUser.getUnitId());
            return ReturnSucUtils.getRepInfo(service.pageMyTaskShWSQD(pageRequest, terms));
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * web端-工作台-查询待办任务-督办
     * @url {ctx}/api/web/caseTask/pageMyTaskDb
     * @param page 页码
     * @param size 每页数量
     * @param status 状态,0:未回复,1:已回复
     * @param status 状态,0:未回复,1:已回复, 3:我发起的
     * @param sortType 排序方式(1:正序;2:倒序)
     * @param sortColmn 排序字段(1:督办时间/回复时限;2:事项等级)
     * @return
@@ -862,10 +928,17 @@
            }
            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            Page<CaseSupervise> caseSupervisePage = null;
            if(StringUtils.isNotBlank(loginUser.getUnitId())){
                if(3 != status){
            terms.put("quiltUnitId",loginUser.getUnitId());
            terms.put("supStatus", status);
            return ReturnSucUtils.getRepInfo(superviseService.pageMyTaskDb(pageRequest, terms));
                }else{
                    terms.put("supUnitId",loginUser.getUnitId());
                }
                caseSupervisePage = superviseService.pageMyTaskDb(pageRequest, terms);
            }
            return ReturnSucUtils.getRepInfo(caseSupervisePage);
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseSuperviseMapper.java
@@ -63,18 +63,17 @@
    /**
     * 按条件查询实体总数
     * @param caseId 查询条件集合
     *  @param caseId 事项ID
     * @param terms 条件
     */
    long countCaseSupervise(@Param("caseId") String caseId, @Param("supStatus") int supStatus, @Param("quiltUnitId") String quiltUnitId);
    long countCaseSupervise(@Param("terms") Map<String, Object> terms);
    /**
     * 根据事项ID分页查询
     * @param page 分页对象
     * @param caseId 事项ID
     * @param terms 条件
     * @return List<CaseSupervise>
     */
    List<CaseSupervise> pageCaseSupervise(@Param("caseId") String caseId, @Param("page") PageRequest page, @Param("supStatus") int supStatus, @Param("quiltUnitId") String quiltUnitId);
    List<CaseSupervise> pageCaseSupervise(@Param("terms") Map<String, Object> terms, @Param("page") PageRequest page);
    /**
     * 首页督办条件统计
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseTaskMapper.java
@@ -107,6 +107,13 @@
    List<FrontPageListQSDTO> pageMyTaskQs(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
    /**
     * 全部签收-查询未签收所有Id
     * @param terms 条件
     * @return List<String>
     */
    List<SignTaskDTO> listIdByTerms(@Param("terms") Map<String, Object> terms);
    /**
     * 首页-待/已受理条件统计
     * @param terms 条件
     * @return long
@@ -134,7 +141,7 @@
     * @param terms 条件
     * @return List<FrontPageListDTO>
     */
    List<FrontPageListDTO> pageMyTaskShWSQD(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
    List<FrontPageListWSQDDTO> pageMyTaskShWSQD(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
    /**
     * 首页-办理中条件统计
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseSuperviseMapper.xml
@@ -226,10 +226,12 @@
        COUNT(1)
        from
        <include refid="table-name" />
        where case_id = #{caseId}
        where case_id = #{terms.caseId}
        and delete_status = 0
        and sup_status = #{supStatus}
        and quilt_unit_id = #{quiltUnitId}
        <if test="terms.quiltUnitId == 1">
            and sup_status = #{terms.supStatus}
            and quilt_unit_id = #{terms.quiltUnitId}
        </if>
    </select>
    <!--  根据条件分页查询  -->
@@ -238,10 +240,12 @@
        <include refid="column-part"/>
        FROM
        <include refid="table-name" />
        where case_id = #{caseId}
        where case_id = #{terms.caseId}
        and delete_status = 0
        and sup_status = #{supStatus}
        and quilt_unit_id = #{quiltUnitId}
        <if test="terms.quiltUnitId == 1">
            and sup_status = #{terms.supStatus}
            and quilt_unit_id = #{terms.quiltUnitId}
        </if>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
@@ -297,7 +301,7 @@
    <!--  首页督办分页查询  -->
    <select id="pageMyTaskDb" resultMap="MyTaskApplyReviewResult">
        SELECT
        SELECT t1.id as ownerId, t1.case_id as caseId,
        t1.sup_time as turnaroundTime, DATEADD(hour, t1.reply_term, t1.sup_time) as timeLimit, t1.sup_unit_name as organizingUnit,
        t1.sup_content as opinion, t2.case_level as caseGrade, t2.canal_name as caseSource,
        t2.case_type_name as caseType, concat(t2.plaintiffs, t2.pagents) as plaintiffs,
@@ -306,8 +310,13 @@
        dyh_case_supervise t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        t1.delete_status = 0
        and t1.sup_status = #{terms.supStatus}
        <if test="terms.quiltUnitId != null and terms.quiltUnitId !=''">
        and t1.quilt_unit_id = #{terms.quiltUnitId}
            and t1.sup_status = #{terms.supStatus}
        </if>
        <if test="terms.supUnitId != null and terms.supUnitId !=''">
            and t1.sup_unit_id = #{terms.supUnitId}
        </if>
        <if test="terms.timeStart != null and terms.timeStart !='' and terms.timeEnd != null and terms.timeEnd !=''">
            and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
            and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
@@ -429,7 +429,7 @@
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        (t1.node_id = 'ZJ_DFP' or  t1.node_id = 'QJ_DFP' or  t1.node_id = 'SJ_DFP' or  t1.node_id = 'DFP')
        and sign_status != 1
        and t1.sign_status != 1
        and t2.delete_status = 0
        <include refid="myTaskFp-where-part"/>
    </select>
@@ -445,7 +445,7 @@
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        (t1.node_id = 'ZJ_DFP' or  t1.node_id = 'QJ_DFP' or  t1.node_id = 'SJ_DFP' or  t1.node_id = 'DFP')
        and sign_status != 1
        and t1.sign_status != 1
        and t2.delete_status = 0
        <include refid="myTaskFp-where-part"/>
        <if test="page.sort != null">
@@ -515,6 +515,17 @@
            order by isnull(t1.create_time), t1.create_time desc
        </if>
        limit #{page.offset}, #{page.size}
    </select>
    <!--  全部签收-查询未签收所有Id  -->
    <select id="listIdByTerms" resultType="cn.huge.module.cases.domain.dto.SignTaskDTO">
        SELECT t1.id as caseTaskId, t1.case_id as caseId
        FROM
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        t2.delete_status = 0
        and t1.status = '1'
        <include refid="myTaskQs-where-part"/>
    </select>
@@ -643,37 +654,86 @@
    <!--  首页-待审核-我申请的条件统计  -->
    <select id="countMyTaskShWSQD" resultType="java.lang.Long">
        select
        COUNT(t1.id)
        select sum(t1.count)
        from
        dyh_case_task t1 left join dyh_case_info t2 on t1.case_id = t2.id
        where
        t1.cande_unit_id = #{terms.candeUnitId}
        and (t1.node_id = 'ZJ_DSL' or t1.node_id = 'QJ_DSL' or t1.node_id = 'SJ_DSL' or t1.node_id = 'DSL')
        and t2.delete_status = 0
        and t1.sign_status != 1
        and t1.status = #{terms.status}
        (
        SELECT count(1) as count, case_id as caseId
        FROM dyh_case_return
        WHERE return_unit_id = #{terms.applyUnitId}
        union all
        SELECT count(1) as count, case_id as caseId
        FROM dyh_case_windup_apply
        WHERE apply_unit_id = #{terms.applyUnitId}
        union all
        SELECT count(1) as count, case_id as caseId
        FROM dyh_case_appear
        WHERE appear_unit_id = #{terms.applyUnitId}
        union all
        SELECT count(1) as count, case_id as caseId
        FROM dyh_case_assist_apply
        WHERE apply_unit_id = #{terms.applyUnitId}
        )t1 left join dyh_case_info t2 on t1.caseId = t2.id
        <where>
            <if test="terms.applyType != null and terms.applyType !=''">
                and t1.applyType = #{terms.applyType}
            </if>
            <if test="terms.auditStatus != null and terms.auditStatus !=''">
                and t1.audit_result = #{terms.auditResult}
            </if>
        <if test="terms.timeStart != null and terms.timeStart !='' and terms.timeEnd != null and terms.timeEnd !=''">
            and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
            and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
                and (DATE_FORMAT(t1.turnaroundTime,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
                and DATE_FORMAT(t1.turnaroundTime,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
        </if>
        <if test="terms.partyName != null and terms.partyName !=''">
            and concat(t2.plaintiffs, t2.pagents, t2.defendants, t2.dagents) like concat('%', #{terms.partyName}, '%')
        </if>
        </where>
    </select>
    <!--  首页-待审核-我申请的分页查询  -->
    <select id="pageMyTaskShWSQD" resultMap="MyTaskApplyReviewResult">
        select caseId as caseId, return_time as turnaroundTime, '回退' as applyType, audit_unit_name as auditDept,
          return_status as applyStatus, audit_result_name as 'mediResult'
    <select id="pageMyTaskShWSQD" resultType="cn.huge.module.cases.domain.dto.FrontPageListWSQDDTO">
        select t1.*,t2.case_level as caseGrade, t2.canal_name as caseSource, t2.case_type_name as caseType,
        concat(t2.plaintiffs, t2.pagents) as plaintiffs, concat(t2.defendants, t2.dagents) as defendants
            from
            (
            SELECT case_id as caseId, id as ownerId, return_time as turnaroundTime, '回退' as applyType,
            audit_unit_name as auditUnit, return_status as auditStatus, audit_result_name as auditResult,
            audit_time as auditTime, create_time, audit_result
            FROM dyh_case_return
            WHERE return_unit_id = #{terms.applyUnitId}
            union all
            SELECT case_id as caseId, id as ownerId, apply_time as turnaroundTime, '结案' as applyType,
            audit_unit_name as auditUnit, apply_status as auditStatus, audit_result_name as auditResult,
            audit_time as auditTime, create_time, audit_result
            FROM dyh_case_windup_apply
            WHERE apply_unit_id = #{terms.applyUnitId}
            union all
            SELECT case_id as caseId, id as ownerId, appear_time as turnaroundTime, '上报' as applyType,
            audit_unit_name as auditUnit, apply_status as auditStatus, audit_result_name as auditResult,
            audit_time as auditTime, create_time, audit_result
            FROM dyh_case_appear
            WHERE appear_unit_id = #{terms.applyUnitId}
            union all
            SELECT case_id as caseId, id as ownerId, apply_time as turnaroundTime, '联合处置' as applyType,
            audit_unit_name as auditUnit, apply_status as auditStatus, audit_result_name as auditStatus,
            audit_time as auditTime, create_time, audit_result
            FROM dyh_case_assist_apply
            WHERE apply_unit_id = #{terms.applyUnitId}
            )t1 left join dyh_case_info t2 on t1.caseId = t2.id
        <where>
        <if test="terms.applyType != null and terms.applyType !=''">
            and t1.applyType = #{terms.applyType}
        </if>
        <if test="terms.auditStatus != null and terms.auditStatus !=''">
            and t1.audit_result = #{terms.auditResult}
        </if>
        <if test="terms.timeStart != null and terms.timeStart !='' and terms.timeEnd != null and terms.timeEnd !=''">
            and (DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
            and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
            and (DATE_FORMAT(t1.turnaroundTime,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.timeStart}
            and DATE_FORMAT(t1.turnaroundTime,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.timeEnd})
        </if>
        <if test="terms.partyName != null and terms.partyName !=''">
            and concat(t2.plaintiffs, t2.pagents, t2.defendants, t2.dagents) like concat('%', #{terms.partyName}, '%')
        </if>
        </where>
        <if test="page.sort != null">
            <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
                isnull(${s.property}), ${s.property} ${s.direction}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FileRelateDTO.java
New file
@@ -0,0 +1,94 @@
package cn.huge.module.cases.domain.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @title: 附件关系表数据库对应关系类
 * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
 * @company:hugeinfo
 * @author: liyj
 * @time: 2024-08-28 20:06:19
 * @version 1.0.0
 */
@TableName(value = "dyh_file_relate")
@Data
public class FileRelateDTO {
    /**
    * 附件关系编号
    */
    @TableId(value = "id")
    private String id;
    /**
    * 附件编号
    */
    @TableField(value = "file_id")
    private String fileId;
    /**
    * 所属业务主体编号,如纠纷信息编号
    */
    @TableField(value = "main_id")
    private String mainId;
    /**
    * 所属业务编号
    */
    @TableField(value = "owner_id")
    private String ownerId;
    /**
    * 所属业务大类
    */
    @TableField(value = "owner_cat")
    private String ownerCat;
    /**
    * 所属业务类型
    */
    @TableField(value = "owner_type")
    private String ownerType;
    /**
    * 上传人编号
    */
    @TableField(value = "uploader_id")
    private String uploaderId;
    /**
    * 上传人姓名
    */
    @TableField(value = "uploader_name")
    private String uploaderName;
    /**
    * 上传人类型,1:工作人员,2:当事人
    */
    @TableField(value = "uploader_type")
    private Integer uploaderType;
    /**
    * 顾客编号
    */
    @TableField(value = "cust_id")
    private String custId;
    /**
    * 创建时间
    */
    @TableField(value = "create_time")
    private Date createTime;
    /**
    * 状态时间
    */
    @TableField(value = "update_time")
    private Date updateTime;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListWSQDDTO.java
New file
@@ -0,0 +1,86 @@
package cn.huge.module.cases.domain.dto;
import cn.huge.module.cases.domain.po.CaseInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
 * @title: 工作台-待办列表-传输对象-结案
 * @description: 作台-待办列表-传输对象-结案
 * @company: hugeinfo
 * @author: liyj
 * @time: 2024-09-21 09:36:25
 * @version: 1.0.0
 * @see CaseInfo
 */
@Data
public class FrontPageListWSQDDTO {
    /**
     * 事项Id
     */
    private String caseId;
    /**
     * 所属编号
     */
    private String ownerId;
    /**
     * 申请时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm", timezone="GMT+8")
    private Date turnaroundTime;
    /**
     * 申请类型
     */
    private String applyType;
    /**
     * 审核部门
     */
    private String auditUnit;
    /**
     * 审核进度
     */
    private String auditStatus;
    /**
     * 审核结果
     */
    private String auditResult;
    /**
     * 审核时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm", timezone="GMT+8")
    private Date auditTime;
    /**
     * 事项等级
     */
    private Integer caseGrade;
    /**
     * 事项来源
     */
    private String caseSource;
    /**
     * 事项类型
     */
    private String caseType;
    /**
     * 申请方
     */
    private String plaintiffs;
    /**
     * 被申请方
     */
    private String defendants;
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java
@@ -245,8 +245,14 @@
            Date nowDate = DateUtils.getNowDate();
            caseFeedback.setUpdateTime(nowDate);
            caseFeedback.setCreateTime(nowDate);
            //todo 承办、配合--查询task
            QueryWrapper<CaseInfoUnfold> caseInfoUnfoldQueryWrapper = new QueryWrapper<>();
            caseInfoUnfoldQueryWrapper.eq("id", caseFeedback.getCaseId());
            CaseInfoUnfold caseInfoUnfold = unfoldService.getOne(caseInfoUnfoldQueryWrapper);
            if(caseInfoUnfold.getMediateUnitId().equals(loginUser.getUnitId())){
                caseFeedback.setHandleType(1);
            }else{
                caseFeedback.setHandleType(2);
            }
            this.save(caseFeedback);
        }catch (Exception e){
            log.error("[caseFeedbackService.savecaseFeedback]调用失败,异常信息:"+e, e);
@@ -277,9 +283,8 @@
            caseFeedback.setHandleUserId(loginUser.getId());
            caseFeedback.setHandleUserName(loginUser.getTrueName());
            caseFeedback.setId(utilsClient.getNewTimeId());
            caseFeedback.setHandleType(caseFeedback1.getHandleType());
            caseFeedback.setUpdateTime(nowDate);
            //todo 承办、配合--查询task
            mapper.updateById(caseFeedback);
        }catch (Exception e){
            log.error("[caseFeedbackService.updateFeedback]调用失败,异常信息:"+e, e);
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseSuperviseService.java
@@ -3,6 +3,7 @@
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.cases.domain.dto.FileRelateDTO;
import cn.huge.module.cases.domain.dto.QuiltUnitDTO;
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.client.api.impl.SysClientImpl;
@@ -12,10 +13,12 @@
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.sys.constant.FileOwnerTypeBaseEnum;
import cn.huge.module.sys.constant.SyTimeEnum;
import cn.huge.module.sys.dto.FileIdInfoBaseDTO;
import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO;
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.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -141,6 +144,9 @@
            List<QuiltUnitDTO> quiltUnitDTOList = caseSupervise.getQuiltUnitDTOList();
            Integer timeTerm = sysClient.getTimeLimit("dyh_case_supervise", SyTimeEnum.SY_TIME_5.getIndex());
            List<CaseSupervise> caseSuperviseList = new ArrayList<>();
            List<FileRelateDTO> fileRelateDTOList = sysClient.listFileRelateByOwnerId(caseSupervise.getId());
            int count = 0;
            List<FileRelateDTO> fileRelateDTOListNew = new ArrayList<>();
            for(QuiltUnitDTO quiltUnitDTO: quiltUnitDTOList){
                CaseSupervise caseSuperviseNew = new CaseSupervise();
                BeanUtils.copyProperties(caseSupervise, caseSuperviseNew);
@@ -158,9 +164,26 @@
                caseSuperviseNew.setCreateTime(nowDate);
                caseSuperviseNew.setUpdateTime(nowDate);
                caseSuperviseNew.setReplyTerm(timeTerm);
                //给每条督办添加附件信息
                if(0 != count){
                    String caseSupId = utilsClient.getNewTimeId();
                    caseSuperviseNew.setId(caseSupId);
                    for(FileRelateDTO fileRelateDTO: fileRelateDTOList){
                        String fileRealateId = utilsClient.getNewTimeSysId();
                        FileRelateDTO fileRelateDTONew = new FileRelateDTO();
                        BeanUtils.copyProperties(fileRelateDTO, fileRelateDTONew);
                        fileRelateDTONew.setOwnerId(caseSuperviseNew.getId());
                        fileRelateDTONew.setId(fileRealateId);
                        fileRelateDTOListNew.add(fileRelateDTONew);
                    }
                }
                caseSuperviseList.add(caseSuperviseNew);
                count++;
            }
            this.saveBatch(caseSuperviseList);
            if(CollectionUtils.isNotEmpty(fileRelateDTOListNew)){
                sysClient.saveFileRelateList(fileRelateDTOListNew);
            }
        }catch (Exception e){
            log.error("[CaseSuperviseService.saveCaseSupervise]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseSuperviseService.saveCaseSupervise", e);
@@ -192,17 +215,24 @@
     * 流转办理-督办列表
     * @param caseId 事项Id
     */
    public Page<CaseSupervise> pageCaseSupervise(String caseId, PageRequest page, int supStatus, String userId){
    public Page<CaseSupervise> pageCaseSupervise(String caseId, PageRequest page, int supStatus, String userId, int type){
        try{
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            String quiltUnitId = loginUser.getUnitId();
            long countSuperviseList = mapper.countCaseSupervise(caseId, supStatus, quiltUnitId);
            List<CaseSupervise> caseSuperviseList = mapper.pageCaseSupervise(caseId, page, supStatus, quiltUnitId);
            Map<String, Object> terms = new HashMap<>();
            terms.put("caseId", caseId);
            terms.put("type", type);
            if(1 == type){
                terms.put("supStatus", supStatus);
                terms.put("quiltUnitId", quiltUnitId);
            }
            long countSuperviseList = mapper.countCaseSupervise(terms);
            List<CaseSupervise> caseSuperviseList = mapper.pageCaseSupervise(terms, page);
            Map<String, Object>map = new HashMap<>();
            map.put("mainId", caseId);
            map.put("ownerIds", "'" + caseSuperviseList.stream().map(CaseSupervise::getId).collect(Collectors.joining("','"))+ "'");
            map.put("types", "'"+ FileOwnerTypeBaseEnum.OWNER_TYPE_506.getIndex()+ "'");
            map.put("types", "'"+ FileOwnerTypeBaseEnum.OWNER_TYPE_506.getIndex()+ "','" +FileOwnerTypeBaseEnum.OWNER_TYPE_507.getIndex()+"'");
            List<FileIdTypeInfoBaseDTO> fileIdTypeInfoBaseDTOList = sysClient.listIdTypeInfoByOwnerIdList(map);
            for(CaseSupervise caseSupervise: caseSuperviseList){
                for(FileIdTypeInfoBaseDTO fileIdTypeInfoBaseDTO: fileIdTypeInfoBaseDTOList){
@@ -243,4 +273,27 @@
    public long countCaseSuperviseList(Integer supStatus, String quiltUnitId){
        return mapper.countCaseSuperviseList(supStatus, quiltUnitId);
    }
    /**
     * 根据督办编号查询督办信息
     * @param id 督办编号
     * @return List
     */
    public CaseSupervise getById(String id){
        try {
            CaseSupervise caseSupervise = mapper.selectById(id);
            Map<String, Object> terms = new HashMap<>();
            terms.put("mainId", "'" + caseSupervise.getCaseId() + "'");
            terms.put("ownerIds", "'" + id + "'");
            List<FileIdTypeInfoBaseDTO> fileIdTypeInfoBaseDTOList = sysClient.listIdTypeInfoByOwnerIdList(terms);
            if(CollectionUtils.isNotEmpty(fileIdTypeInfoBaseDTOList)){
                caseSupervise.setFileInfoList(fileIdTypeInfoBaseDTOList.get(0).getFileList());
            }
            return caseSupervise;
        }catch (Exception e){
            log.error("[CaseSuperviseService.getById]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseSuperviseService.getById", e);
        }
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
@@ -897,14 +897,11 @@
     * @param terms 条件
     * @return Page
     */
    public Page<FrontPageListDTO> pageMyTaskShWSQD(PageRequest page, int type, Map<String, Object> terms){
    public Page<FrontPageListWSQDDTO> pageMyTaskShWSQD(PageRequest page, Map<String, Object> terms){
        try {
            long total = 0;
            List<FrontPageListDTO> frontPageListDTOList = new ArrayList<>();
            total = mapper.countMyTaskShWSQD(terms);
            frontPageListDTOList = mapper.pageMyTaskShWSQD(page,terms);
            return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total);
            long total = mapper.countMyTaskShWSQD(terms);
            List<FrontPageListWSQDDTO> frontPageListWSQDDTOList = mapper.pageMyTaskShWSQD(page,terms);
            return new PageImpl<FrontPageListWSQDDTO>(frontPageListWSQDDTOList, page, total);
        }catch (Exception e) {
            log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseTaskService.pageMyTaskQs", e);
@@ -935,16 +932,18 @@
            List<CaseAssistApply>caseAssistApplyList = caseAssistApplyService.list(caseAssistApplyQueryWrapper);
            List<SortUtilDTO> sortUtilDTOList = new ArrayList<>();
            List<String> idList = new ArrayList<>();
            String ids = new String();
            ids += caseReturnList.stream().map(CaseReturn:: getId).collect(Collectors.joining(","));
            ids += caseAppearList.stream().map(CaseAppear:: getId).collect(Collectors.joining(","));
            ids += caseWindupApplyList.stream().map(CaseWindupApply:: getId).collect(Collectors.joining(","));
            ids += caseAssistApplyList.stream().map(CaseAssistApply:: getId).collect(Collectors.joining(","));
            idList.addAll(caseReturnList.stream().map(CaseReturn:: getId).collect(Collectors.toList()));
            idList.addAll(caseAppearList.stream().map(CaseAppear:: getId).collect(Collectors.toList()));
            idList.addAll(caseWindupApplyList.stream().map(CaseWindupApply:: getId).collect(Collectors.toList()));
            idList.addAll(caseAssistApplyList.stream().map(CaseAssistApply:: getId).collect(Collectors.toList()));
            ids = idList.stream().map(String::valueOf).collect(Collectors.joining("','"));
            List<FileIdTypeInfoBaseDTO> fileIdTypeInfoBaseDTOList = new ArrayList<>();
            if(StringUtils.isNotBlank(ids)){
                Map terms = new HashMap();
                terms.put("mainId", caseId);
                terms.put("ownerIds", "," + ids + ",");
                terms.put("ownerIds", "'" + ids + "'");
                fileIdTypeInfoBaseDTOList = sysClient.listIdTypeInfoByOwnerIdList(terms);
            }
@@ -2602,4 +2601,12 @@
        }
    }
    /**
     * 按条件查询
     * @param terms 条件
     * @return List
     */
    public List<SignTaskDTO> listIdByTerms(Map<String, Object> terms){
        return mapper.listIdByTerms(terms);
    }
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java
@@ -1,6 +1,7 @@
package cn.huge.module.client.api;
import cn.huge.base.common.bo.ReturnBO;
import cn.huge.module.cases.domain.dto.FileRelateDTO;
import cn.huge.module.sys.dto.FileTypeTermsDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
@@ -75,4 +76,22 @@
     */
    @GetMapping("/api/client/syRegion/getQueAddrByBaiduiLngLat")
    ReturnBO getQueAddrByBaiduiLngLat(@RequestParam(value = "lng") String lng, @RequestParam(value = "lat") String lat);
    /**
     * 根据关系编号查询附件关系信息
     * @url {ctx}/api/v1/fileRelate/listFileRelateByOwnerId
     * @param ownerId 条件
     * @return Object
     */
    @GetMapping("/api/client/fileRelate/listFileRelateByOwnerId")
    ReturnBO listFileRelateByOwnerId(@RequestParam(value = "ownerId") String ownerId);
    /**
     * 插入多条附件关系记录
     * @url {ctx}/api/v1/fileRelate/saveFileRelateList
     * @param fileRelateList 关系记录
     * @return Object
     */
    @PostMapping("/api/client/fileRelate/saveFileRelateList")
    ReturnBO saveFileRelateList(@RequestBody List<FileRelateDTO> fileRelateList);
}
dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java
@@ -4,6 +4,7 @@
import cn.huge.base.common.constant.ReturnConsts;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.module.cases.domain.dto.FileRelateDTO;
import cn.huge.module.client.api.SysClient;
import cn.huge.module.sys.constant.TimeUnitConsts;
import cn.huge.module.sys.dto.*;
@@ -88,7 +89,7 @@
    }
    /**
     * 附件中心-根据业务编号查询固定格式所有附件
     * 获取时限
     * @param limitTable 表名
     * @param limitType  时限类型
     * @return List
@@ -186,4 +187,44 @@
        }
        return queAddrBaseDTO;
    }
    /**
     * 根据关系编号查询附件关系信息
     * @param ownerId 附件关系编号
     * @return List
     */
    public List<FileRelateDTO> listFileRelateByOwnerId(String ownerId){
        List<FileRelateDTO> fileRelateDTOList = new ArrayList<>();
        try{
            ReturnBO returnBo = sysClient.listFileRelateByOwnerId(ownerId);
            if (ReturnConsts.OK == returnBo.getCode()){
                if (ObjectUtils.isNotEmpty(returnBo.getData())){
                    List<LinkedHashMap> list = (List<LinkedHashMap>) returnBo.getData();
                    for (LinkedHashMap map : list) {
                        FileRelateDTO fileRelateDTO = JSON.parseObject(JSON.toJSONString(map), FileRelateDTO.class);
                        fileRelateDTOList.add(fileRelateDTO);
                    }
                }
            }
        }catch (Exception e){
            log.error("service方法[SysClientImpl.listFileRelateByOwnerId]调用异常:"+e, e);
        }
        return fileRelateDTOList;
    }
    /**
     * 插入多条附件关系记录
     * @param fileRelateList 附件关系
     * @return Object
     */
    public void saveFileRelateList(List<FileRelateDTO> fileRelateList) {
        try {
            ReturnBO returnBo = sysClient.saveFileRelateList(fileRelateList);
            if (ReturnConsts.OK != returnBo.getCode()){
                log.error("Client外服务接口[SysClientImpl.saveFileRelateList]请求异常:" + returnBo.getMsg(), returnBo.getMsg());
            }
        } catch (Exception e) {
            log.error("service方法[SysClientImpl.saveFileRelateList]请求异常:"+e, e);
        }
    }
}
dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/client/FileRelateClientController.java
@@ -2,15 +2,19 @@
import cn.huge.base.common.utils.ReturnFailUtils;
import cn.huge.base.common.utils.ReturnSucUtils;
import cn.huge.module.file.domain.po.FileRelate;
import cn.huge.module.file.service.FileRelateService;
import cn.huge.module.sys.dto.FileTypeTermsDTO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
@@ -116,4 +120,38 @@
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * 根据关系编号查询附件关系信息
     * @url {ctx}/api/client/fileRelate/listFileRelateByOwnerId
     * @return Object
     */
    @GetMapping("/listFileRelateByOwnerId")
    public Object listFileRelateByOwnerId(@RequestParam(value = "ownerId") String ownerId) {
        try {
            QueryWrapper<FileRelate> fileRelateQueryWrapper = new QueryWrapper<>();
            fileRelateQueryWrapper.eq("owner_id", ownerId);
            List<FileRelate> fileRelateList = service.list(fileRelateQueryWrapper);
            return ReturnSucUtils.getRepInfo(fileRelateList);
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * 插入多条附件关系记录
     * @url {ctx}/api/client/fileRelate/saveFileRelateList
     * @return Object
     */
    @PostMapping("/saveFileRelateList")
    public Object saveFileRelateList(@RequestBody List<FileRelate> fileRelateList) {
        try {
            if(CollectionUtils.isNotEmpty(fileRelateList)){
                service.saveBatch(fileRelateList);
            }
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
}
dyh-service/dyh-sys/src/main/java/cn/huge/module/sy/controller/client/SyTimeLimitClientController.java
@@ -198,7 +198,7 @@
     * @return Object
     */
    @GetMapping("/getTimeLimit")
    public Object getTimeLimit(@RequestParam(value = "limitTable") int limitTable, @RequestParam(value = "limitType") String limitType) {
    public Object getTimeLimit(@RequestParam(value = "limitTable") String limitTable, @RequestParam(value = "limitType") String limitType) {
        try {
            QueryWrapper<SyTimeLimit> syTimeLimitQueryWrapper = new QueryWrapper<>();
            syTimeLimitQueryWrapper.eq("limit_table", limitTable).eq("limit_type", limitType);