From 1a320ae74056c99a439e0608a7243953cdef8ddd Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Wed, 18 Sep 2024 10:09:26 +0800 Subject: [PATCH] 1、联合处置流程优化2 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistInfoMapper.xml | 175 +++++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 71 +++- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/WebAssistCaseFlowDTO.java | 38 ++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseFeedbackWebController.java | 5 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java | 146 +++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java | 38 +- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAssistInfoBO.java | 17 + dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/consts/CaseTaskConsts.java | 6 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseAssistInfoWebController.java | 200 +++++++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java | 29 + dyh-service/dyh-mediate/src/main/java/cn/huge/module/buildcode/service/BuildCodeService.java | 4 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAssistInfo.java | 101 ++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAssistInfoMapper.java | 64 ++++ 13 files changed, 851 insertions(+), 43 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/buildcode/service/BuildCodeService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/buildcode/service/BuildCodeService.java index 79fa234..c16edbd 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/buildcode/service/BuildCodeService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/buildcode/service/BuildCodeService.java @@ -111,9 +111,9 @@ // 必须 this.buildPo(tplData); this.buildBo(tplData); -// this.buildDaoMapper(tplData); + this.buildDaoMapper(tplData); this.buildDaoMapperXml(tplData); -// this.buildService(tplData); + this.buildService(tplData); this.buildWebController(tplData); // 可选 // this.buildWechatController(tplData); diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/consts/CaseTaskConsts.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/consts/CaseTaskConsts.java index d0fa312..d57528a 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/consts/CaseTaskConsts.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/consts/CaseTaskConsts.java @@ -49,6 +49,12 @@ */ public static final int HANDLE_RESULT_1 = 1; public static final int HANDLE_RESULT_2 = 2; + + /** + * 配合状态,0:配合,1:回退 + */ + public static final int ASSIST_STATUS_0 = 0; + public static final int ASSIST_STATUS_1 = 1; } /** * -------------------_ooOoo_------------------- diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseAssistInfoWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseAssistInfoWebController.java new file mode 100644 index 0000000..10acb16 --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseAssistInfoWebController.java @@ -0,0 +1,200 @@ +package cn.huge.module.cases.controller.web; + +import cn.huge.base.common.utils.ReturnFailUtils; +import cn.huge.base.common.utils.ReturnSucUtils; +import cn.huge.module.cases.domain.po.CaseAssistInfo; +import cn.huge.module.cases.service.CaseAssistInfoService; +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-09-18 10:05:35 + * @version: 1.0.0 + */ +@Slf4j +@RestController +@RequestMapping("/api/web/caseAssistInfo") +public class CaseAssistInfoWebController { + + @Autowired(required = false) + private HttpServletRequest request; + + @Autowired + private CaseAssistInfoService 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 caseId = request.getParameter("caseId"); + if (StringUtils.isNotBlank(caseId)){ + terms.put("caseId", caseId); + } + // 办理反馈任务编号 + String caseTaskId = request.getParameter("caseTaskId"); + if (StringUtils.isNotBlank(caseTaskId)){ + terms.put("caseTaskId", caseTaskId); + } + // 联合处置申请编号 + String applyId = request.getParameter("applyId"); + if (StringUtils.isNotBlank(applyId)){ + terms.put("applyId", applyId); + } + // 配合组织编号 + String assistUnitId = request.getParameter("assistUnitId"); + if (StringUtils.isNotBlank(assistUnitId)){ + terms.put("assistUnitId", assistUnitId); + } + // 配合组织名称 + String assistUnitName = request.getParameter("assistUnitName"); + if (StringUtils.isNotBlank(assistUnitName)){ + terms.put("assistUnitName", assistUnitName); + } + // 受理时间 + String acceptTime = request.getParameter("acceptTime"); + if (StringUtils.isNotBlank(acceptTime)){ + terms.put("acceptTime", acceptTime); + } + // 配合组织经办人编号 + String assistUserId = request.getParameter("assistUserId"); + if (StringUtils.isNotBlank(assistUserId)){ + terms.put("assistUserId", assistUserId); + } + // 配合组织经办人名称 + String assistUserName = request.getParameter("assistUserName"); + if (StringUtils.isNotBlank(assistUserName)){ + terms.put("assistUserName", assistUserName); + } + // 配合状态,0:配合,1:回退 + String assistStatus = request.getParameter("assistStatus"); + if (StringUtils.isNotBlank(assistStatus)){ + terms.put("assistStatus", assistStatus); + } + // 顾客编号 + String custId = request.getParameter("custId"); + if (StringUtils.isNotBlank(custId)){ + terms.put("custId", custId); + } + // 创建时间区间 + 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/caseAssistInfo/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/caseAssistInfo/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<CaseAssistInfo> caseAssistInfoPage = service.pageQuery(pageRequest, terms); + return ReturnSucUtils.getRepInfo( "处理成功", caseAssistInfoPage); + } catch (Exception e) { + return ReturnFailUtils.getRepInfo(); + } + } + + /** + * 根据编号查询单个 + * @url {ctx}/api/web/caseAssistInfo/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/caseAssistInfo/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/caseAssistInfo/saveCaseAssistInfo + * @param caseAssistInfo 实体对象 + * @return Object + */ + @PostMapping("/saveCaseAssistInfo") + public Object saveCaseAssistInfo(@RequestBody CaseAssistInfo caseAssistInfo) { + try { + service.saveCaseAssistInfo(caseAssistInfo); + return ReturnSucUtils.getRepInfo(); + } catch (Exception e) { + return ReturnFailUtils.getRepInfo(); + } + } + +} diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseFeedbackWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseFeedbackWebController.java index c2d33d9..dbad56b 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseFeedbackWebController.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseFeedbackWebController.java @@ -188,9 +188,10 @@ * @return Object */ @GetMapping("/getFeedbackInfo") - public Object getFeedbackInfo(@RequestParam(value = "caseId") String caseId, @CurrentUser String userId) { + public Object getFeedbackInfo(@RequestParam(value = "caseId") String caseId, + @RequestParam(value = "caseTaskId") String caseTaskId, @CurrentUser String userId) { try { - return ReturnSucUtils.getRepInfo(service.getFeedbackInfo(caseId, userId)); + return ReturnSucUtils.getRepInfo(service.getFeedbackInfo(caseId, caseTaskId, userId)); } catch (Exception e) { return ReturnFailUtils.getRepInfo(); } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAssistInfoMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAssistInfoMapper.java new file mode 100644 index 0000000..b2f2479 --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAssistInfoMapper.java @@ -0,0 +1,64 @@ +package cn.huge.module.cases.dao.mapper; + +import cn.huge.module.cases.domain.po.CaseAssistInfo; +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-09-18 09:36:59 +* @version 1.0.0 +*/ +@Repository +public interface CaseAssistInfoMapper extends BaseMapper<CaseAssistInfo>{ + + /** + * 更新对象 + * @param entity 对象 + */ + void updateCaseAssistInfo(@Param("entity") CaseAssistInfo entity); + + /** + * 条件更新对象 + * @param entity 对象 + * @param terms 条件 + */ + void updateCaseAssistInfoTerms(@Param("entity") CaseAssistInfo entity, @Param("terms") Map<String, Object> terms); + + /** + * 根据编号物理删除 + * @param id 查询条件集合 + */ + void deleteCaseAssistInfo(@Param("id") String id); + + /** + * 按条件查询结果集 + * @param terms 查询条件集合 + * @return List<CaseAssistInfo> + */ + List<CaseAssistInfo> 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<CaseAssistInfo> + */ + List<CaseAssistInfo> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms); + +} diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistInfoMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistInfoMapper.xml new file mode 100644 index 0000000..df8765a --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistInfoMapper.xml @@ -0,0 +1,175 @@ +<?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-09-18 10:05:35 + * @version 1.0.0 +--> +<mapper namespace="cn.huge.module.cases.dao.mapper.CaseAssistInfoMapper"> + <!-- 结果集 --> + <resultMap id="dataResult" type="cn.huge.module.cases.domain.po.CaseAssistInfo"> + <result property="id" column="id"/> + <result property="caseId" column="case_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_case_assist_info</sql> + <!-- 字段 --> + <sql id="column-part"> + id, + case_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.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.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="updateCaseAssistInfo"> + update + <include refid="table-name"/> + <set> + <include refid="set-part"/> + </set> + <where> + id = #{entity.id} + </where> + </update> + <!-- 条件更新对象 --> + <update id="updateCaseAssistInfoTerms"> + update + <include refid="table-name"/> + <set> + <include refid="set-part"/> + </set> + <include refid="where-part"/> + </update> + <!-- 根据编号物理删除 --> + <delete id="deleteCaseAssistInfo"> + 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> \ No newline at end of file diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAssistInfoBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAssistInfoBO.java new file mode 100644 index 0000000..478fc4d --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAssistInfoBO.java @@ -0,0 +1,17 @@ +package cn.huge.module.cases.domain.bo; + +import cn.huge.module.cases.domain.po.CaseAssistInfo; + +/** + * @title: 联合处置信息表业务扩展类 + * @description: 联合处置信息表业务扩展类 + * @company: hugeinfo + * @author: liyj + * @time: 2024-09-18 09:36:59 + * @version: 1.0.0 + * @see cn.huge.module.cases.domain.po.CaseAssistInfo + */ +public class CaseAssistInfoBO extends CaseAssistInfo { + + +} diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/WebAssistCaseFlowDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/WebAssistCaseFlowDTO.java new file mode 100644 index 0000000..b470976 --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/WebAssistCaseFlowDTO.java @@ -0,0 +1,38 @@ +package cn.huge.module.cases.domain.dto; + +import cn.huge.module.cases.domain.po.CaseInfo; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @title: 配合部门纠纷流程进度传输对象 + * @description: 配合部门纠纷流程进度传输对象 + * @company: hugeinfo + * @author: liyj + * @time: 2022-03-11 11:43:25 + * @version: 1.0.0 + * @see CaseInfo + */ +@Data +public class WebAssistCaseFlowDTO { + + /** + * 配合部门编号 + */ + private String unitId; + + /** + * 配合部门名称 + */ + private String unitName; + + /** + * 配合部门流程 + */ + private List<WebCaseFlowDTO> caseFlowList; + + + +} diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAssistInfo.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAssistInfo.java new file mode 100644 index 0000000..8f3a610 --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAssistInfo.java @@ -0,0 +1,101 @@ +package cn.huge.module.cases.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-09-18 09:36:59 + * @version 1.0.0 + */ +@TableName(value = "dyh_case_assist_info") +@Data +public class CaseAssistInfo { + + /** + * 主键编号 + */ + @TableId(value = "id") + private String id; + + /** + * 纠纷编号 + */ + @TableField(value = "case_id") + private String caseId; + + /** + * 办理反馈任务编号 + */ + @TableField(value = "case_task_id") + private String caseTaskId; + + /** + * 联合处置申请编号 + */ + @TableField(value = "apply_id") + private String applyId; + + /** + * 配合组织编号 + */ + @TableField(value = "assist_unit_id") + private String assistUnitId; + + /** + * 配合组织名称 + */ + @TableField(value = "assist_unit_name") + private String assistUnitName; + + /** + * 受理时间 + */ + @TableField(value = "accept_time") + private Date acceptTime; + + /** + * 配合组织经办人编号 + */ + @TableField(value = "assist_user_id") + private String assistUserId; + + /** + * 配合组织经办人名称 + */ + @TableField(value = "assist_user_name") + private String assistUserName; + + /** + * 配合状态,0:配合,1:回退 + */ + @TableField(value = "assist_status") + private Integer assistStatus; + + /** + * 顾客编号 + */ + @TableField(value = "cust_id") + private String custId; + + /** + * 创建时间 + */ + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; + +} diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java index ff24fc4..eb5bb1d 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java @@ -5,14 +5,11 @@ import cn.huge.base.common.utils.IdUtils; import cn.huge.module.cases.consts.CaseTaskConsts; import cn.huge.module.cases.domain.dto.FrontPageListDTO; -import cn.huge.module.cases.domain.po.CaseInfo; -import cn.huge.module.cases.domain.po.CaseInfoUnfold; -import cn.huge.module.cases.domain.po.CaseTask; +import cn.huge.module.cases.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.cases.dao.mapper.CaseAssistApplyMapper; -import cn.huge.module.cases.domain.po.CaseAssistApply; import cn.huge.module.constant.BaseConsts; import cn.huge.module.cust.constant.UserBaseConsts; import cn.huge.module.cust.dto.CtUnitDTO; @@ -67,6 +64,8 @@ private CaseTaskService caseTaskService; @Autowired private CaseInfoUnfoldService caseInfoUnfoldService; + @Autowired + private CaseAssistInfoService caseAssistInfoService; /** * 更新对象 @@ -209,8 +208,11 @@ mapper.updateCaseAssistApply(caseAssistApplyPO); // 审核通过,就启动联合处置工作流 if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseAssistApplyPO.getAuditResult())) { - String[] unitIds = caseAssistApplyPO.getApplyAssistUnitId().split(BaseConsts.COMMA); - for (String unitId: unitIds) { + String[] unitIdList = caseAssistApplyPO.getApplyAssistUnitId().split(BaseConsts.COMMA); + String[] unitNameList = caseAssistApplyPO.getApplyAssistUnitName().split(BaseConsts.COMMA); + for (int i=0; i<unitIdList.length; i++){ + String unitId = unitIdList[i]; + String unitName = unitNameList[i]; // 启动联合处置工作流 FlowNode dfpFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, caseAssistApplyPO.getCaseId()); // 新建并完成配合部门待分派任务 @@ -229,8 +231,8 @@ dfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); // 通过调度的,任务候选执行者类型是上一步骤选择 dfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - dfpCaseTask.setCandeUnitId(loginUser.getUnitId()); - dfpCaseTask.setCandeUnitName(loginUser.getUnitName()); + dfpCaseTask.setCandeUnitId(unitId); + dfpCaseTask.setCandeUnitName(unitName); // 不需要签收 dfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); @@ -283,6 +285,17 @@ dslCaseTask.setCreateTime(now); dslCaseTask.setUpdateTime(now); caseTaskService.save(dslCaseTask); + // 新增联合处置信息 + CaseAssistInfo caseAssistInfoPO = new CaseAssistInfo(); + caseAssistInfoPO.setId(utilsClient.getNewTimeId()); + caseAssistInfoPO.setCaseId(dslCaseTask.getCaseId()); + caseAssistInfoPO.setAssistUnitId(unitId); + caseAssistInfoPO.setAssistUnitName(unitName); + caseAssistInfoPO.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_0); + caseAssistInfoPO.setCustId(dslCaseTask.getCustId()); + caseAssistInfoPO.setCreateTime(now); + caseAssistInfoPO.setUpdateTime(now); + caseAssistInfoService.save(caseAssistInfoPO); } // 更新纠纷扩展信息 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java new file mode 100644 index 0000000..28bd646 --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java @@ -0,0 +1,146 @@ +package cn.huge.module.cases.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.cases.dao.mapper.CaseAssistInfoMapper; +import cn.huge.module.cases.domain.po.CaseAssistInfo; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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-09-18 09:36:59 + * @version 1.0.0 + */ +@Slf4j +@Service +@Transactional(rollbackFor = Exception.class) +public class CaseAssistInfoService extends ServiceImpl<CaseAssistInfoMapper, CaseAssistInfo>{ + + @Autowired + private CaseAssistInfoMapper mapper; + + @Autowired + private UtilsClientImpl utilsClient; + + /** + * 更新对象 + * @param entity 对象 + */ + public void updateCaseAssistInfo(CaseAssistInfo entity){ + try{ + mapper.updateCaseAssistInfo(entity); + }catch (Exception e){ + log.error("[CaseAssistInfoService.updateCaseAssistInfo]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseAssistInfoService.updateCaseAssistInfo", e); + } + } + + /** + * 条件更新对象 + * @param entity 对象 + * @param terms 条件 + */ + public void updateCaseAssistInfoTerms(CaseAssistInfo entity, Map<String, Object> terms){ + try{ + mapper.updateCaseAssistInfoTerms(entity, terms); + }catch (Exception e){ + log.error("[CaseAssistInfoService.updateCaseAssistInfoTerms]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseAssistInfoService.updateCaseAssistInfoTerms", e); + } + } + + /** + * 根据编号物理删除 + * @param id 查询条件集合 + */ + public void deleteCaseAssistInfo(String id){ + try{ + mapper.deleteCaseAssistInfo(id); + }catch (Exception e){ + log.error("[CaseAssistInfoService.deleteCaseAssistInfo]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseAssistInfoService.deleteCaseAssistInfo", e); + } + } + + /** + * 按条件查询 + * @param terms 条件 + * @return List + */ + public List<CaseAssistInfo> 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<CaseAssistInfo> pageQuery(PageRequest page, Map<String, Object> terms){ + long total = mapper.countTerms(terms); + List<CaseAssistInfo> content = mapper.pageTerms(page, terms); + return new PageImpl<CaseAssistInfo>(content, page, total); + } + + /** + * 新增或更新对象 + * @param caseAssistInfo 实体对象 + */ + public void saveCaseAssistInfo(CaseAssistInfo caseAssistInfo){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 判断是否新增 + if (IdUtils.checkNewId(caseAssistInfo.getId())){ + caseAssistInfo.setId(utilsClient.getNewTimeId()); + caseAssistInfo.setCreateTime(nowDate); + } + caseAssistInfo.setUpdateTime(nowDate); + this.saveOrUpdate(caseAssistInfo); + }catch (Exception e){ + log.error("[CaseAssistInfoService.saveCaseAssistInfo]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseAssistInfoService.saveCaseAssistInfo", e); + } + } + + /** + * 根据纠纷处理任务编号查询 + * @param caseTaskId + * @return + */ + public CaseAssistInfo getByCaseTaskId(String caseTaskId){ + QueryWrapper<CaseAssistInfo> caseAssistInfoQueryWrapper = new QueryWrapper<>(); + caseAssistInfoQueryWrapper.eq("case_task_id", caseTaskId); + CaseAssistInfo caseAssistInfo = mapper.selectOne(caseAssistInfoQueryWrapper); + return caseAssistInfo; + } + +} diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java index 2584c6a..d9cb6d9 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java @@ -4,14 +4,12 @@ import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; import cn.huge.base.common.utils.ObjectUtils; -import cn.huge.module.cases.domain.po.CaseFeedbackHis; -import cn.huge.module.cases.domain.po.CaseInfoUnfold; -import cn.huge.module.cases.domain.po.CaseTask; +import cn.huge.module.cases.consts.CaseTaskConsts; +import cn.huge.module.cases.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.cases.dao.mapper.CaseFeedbackMapper; -import cn.huge.module.cases.domain.po.CaseFeedback; import cn.huge.module.cust.dto.CtUserDTO; import cn.huge.module.sys.dto.FileIdInfoBaseDTO; import cn.huge.module.sys.dto.FileInfoBaseDTO; @@ -69,6 +67,9 @@ @Autowired private CaseTaskService caseTaskService; + + @Autowired + private CaseAssistInfoService caseAssistInfoService; /** * 更新对象 @@ -166,20 +167,27 @@ * @param userId * @return */ - public Map<String, Object> getFeedbackInfo(String caseId, String userId){ - // 临时给前端联调数据 + public Map<String, Object> getFeedbackInfo(String caseId, String caseTaskId, String userId){ Map<String, Object> result = Maps.newHashMap(); -// result.put("handleUnitName", "白云区教育局"); -// result.put("handleUserName", "王一顺"); -// result.put("assistUnitName", "白云区司法局"); -// result.put("acceptTime", "2024-09-07 12:34"); + CaseTask caseTask = caseTaskService.getById(caseTaskId); CaseInfoUnfold caseInfoUnfold = unfoldService.getById(caseId); - if (ObjectUtils.isNotEmpty(caseInfoUnfold)){ - result.put("handleUserId", caseInfoUnfold.getMediatorId()); + // 承办部门查询扩展表 + if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) { + if (ObjectUtils.isNotEmpty(caseInfoUnfold)) { + result.put("handleUserId", caseInfoUnfold.getMediatorId()); + result.put("handleUnitName", caseInfoUnfold.getMediateUnitName()); + result.put("handleUserName", caseInfoUnfold.getMediator()); + result.put("assistUnitName", caseInfoUnfold.getAssistUnitName()); + result.put("acceptTime", caseInfoUnfold.getAcceptTime()); + } + }else { + // 配合部门查询联合处置信息表 + CaseAssistInfo caseAssistInfo = caseAssistInfoService.getByCaseTaskId(caseTaskId); result.put("handleUnitName", caseInfoUnfold.getMediateUnitName()); - result.put("handleUserName", caseInfoUnfold.getMediator()); - result.put("assistUnitName", caseInfoUnfold.getAssistUnitName()); - result.put("acceptTime", caseInfoUnfold.getAcceptTime()); + result.put("handleUserId", caseAssistInfo.getAssistUserId()); + result.put("handleUserName", caseAssistInfo.getAssistUserName()); + result.put("assistUnitName", caseAssistInfo.getAssistUnitName()); + result.put("acceptTime", caseAssistInfo.getAcceptTime()); } return result; } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java index f0aa4e3..8099665 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java @@ -95,6 +95,8 @@ private CaseReturnService caseReturnService; @Autowired private CaseEvaluateService caseEvaluateService; + @Autowired + private CaseAssistInfoService caseAssistInfoService; @Autowired private CaseWindupApplyMapper caseWindupApplyMapper; @@ -516,21 +518,38 @@ result.put("handleCaseFlowList", handleCaseFlowList); // 查询配合组织流程 - LinkedList<WebCaseFlowDTO> assistCaseFlowList = new LinkedList<>(); - caseTaskQueryWrapper.clear(); - caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time"); - List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); - for (CaseTask caseTask: assistCaseTaskList){ - WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); - webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); - webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); - webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); - webCaseFlowDTO.setTaskType(caseTask.getTaskType()); - webCaseFlowDTO.setStatus(caseTask.getStatus()); - assistCaseFlowList.add(webCaseFlowDTO); + CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); + if (StringUtils.isNotEmpty(caseInfoUnfold.getAssistUnitId())){ + LinkedList<WebAssistCaseFlowDTO> assistCaseFlowList = new LinkedList<>(); + String[] unitIdList = caseInfoUnfold.getAssistUnitId().split(BaseConsts.COMMA); + String[] unitNameList = caseInfoUnfold.getAssistUnitName().split(BaseConsts.COMMA); + for (int i=0; i<unitIdList.length; i++){ + String unitId = unitIdList[i]; + String unitName = unitNameList[i]; + WebAssistCaseFlowDTO webAssistCaseFlowDTO = new WebAssistCaseFlowDTO(); + webAssistCaseFlowDTO.setUnitId(unitId); + webAssistCaseFlowDTO.setUnitName(unitName); + i ++; + LinkedList<WebCaseFlowDTO> caseFlowList = new LinkedList<>(); + caseTaskQueryWrapper.clear(); + caseTaskQueryWrapper.eq("case_id", caseId).eq("cande_unit_id", unitId) + .eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time"); + List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); + for (CaseTask caseTask: assistCaseTaskList){ + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); + webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + webCaseFlowDTO.setTaskType(caseTask.getTaskType()); + webCaseFlowDTO.setStatus(caseTask.getStatus()); + caseFlowList.add(webCaseFlowDTO); + } + webAssistCaseFlowDTO.setCaseFlowList(caseFlowList); + assistCaseFlowList.add(webAssistCaseFlowDTO); + } + result.put("assistCaseFlowList", assistCaseFlowList); } - result.put("assistCaseFlowList", assistCaseFlowList); return result; }catch (Exception e){ log.error("[CaseTaskService.webGetTabButton]调用失败,异常信息:"+e, e); @@ -1241,8 +1260,8 @@ lhczdfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); // 通过调度的,任务候选执行者类型是上一步骤选择 lhczdfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - lhczdfpCaseTask.setCandeUnitId(loginUser.getUnitId()); - lhczdfpCaseTask.setCandeUnitName(loginUser.getUnitName()); + lhczdfpCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId()); + lhczdfpCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName()); // 不需要签收 lhczdfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); lhczdfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); @@ -1294,6 +1313,17 @@ lhczdslCaseTask.setCreateTime(nowDate); lhczdslCaseTask.setUpdateTime(nowDate); mapper.insert(lhczdslCaseTask); + // 新增联合处置信息 + CaseAssistInfo caseAssistInfoPO = new CaseAssistInfo(); + caseAssistInfoPO.setId(utilsClient.getNewTimeId()); + caseAssistInfoPO.setCaseId(dslCaseTask.getCaseId()); + caseAssistInfoPO.setAssistUnitId(assignAssistUnitDTO.getUitId()); + caseAssistInfoPO.setAssistUnitName(assignAssistUnitDTO.getUitName()); + caseAssistInfoPO.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_0); + caseAssistInfoPO.setCustId(dslCaseTask.getCustId()); + caseAssistInfoPO.setCreateTime(nowDate); + caseAssistInfoPO.setUpdateTime(nowDate); + caseAssistInfoService.save(caseAssistInfoPO); } // 更新纠纷扩展信息 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); @@ -1428,6 +1458,15 @@ 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){ -- Gitblit v1.8.0