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); 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_------------------- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseAssistInfoWebController.java
New file @@ -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(); } } } 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(); } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAssistInfoMapper.java
New file @@ -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); } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAssistInfoMapper.xml
New file @@ -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> dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAssistInfoBO.java
New file @@ -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 { } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/WebAssistCaseFlowDTO.java
New file @@ -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; } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAssistInfo.java
New file @@ -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; } 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(); dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java
New file @@ -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; } } 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; } 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){