dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
@@ -5,15 +5,13 @@ import cn.huge.base.common.utils.ReturnFailUtils; import cn.huge.base.common.utils.ReturnSucUtils; import cn.huge.base.config.CurrentUser; import cn.huge.module.cases.domain.dto.CaseInfoWeExcelDTO; import cn.huge.module.cases.domain.dto.CasePageDTO; import cn.huge.module.cases.domain.dto.CasePersonWeDTO; import cn.huge.module.cases.domain.dto.RegisterSaveDTO; import cn.huge.module.cases.domain.dto.*; import cn.huge.module.cases.domain.po.CaseInfo; import cn.huge.module.cases.service.CaseInfoService; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.cust.dto.CtUserDTO; import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -457,6 +455,11 @@ if (StringUtils.isNotBlank(infoProcessName)){ terms.put("infoProcessName", infoProcessName); } // 小程序是否可见,0:不可见,1:可见 String partyShow = request.getParameter("partyShow"); if (StringUtils.isNotBlank(partyShow)){ terms.put("partyShow", partyShow); } // 意向调解组织编号 String wantUnitId = request.getParameter("wantUnitId"); if (StringUtils.isNotBlank(wantUnitId)){ @@ -735,4 +738,21 @@ return ReturnFailUtils.getRepInfo(); } } /** * 小程序是否可见修改修改 * @url {ctx}/api/web/caseInfo/updateVisibleStatus * @return Object * @CurrentUser String userId */ @PostMapping("/updateVisibleStatus") public Object updateVisibleStatus(@RequestBody CaseInfo caseInfo) { try { service.updateCaseInfo(caseInfo); return ReturnSucUtils.getRepInfo(); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.statistics]请求异常:"+e, e); return ReturnFailUtils.getRepInfo(); } } } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseEvaluateMapper.xml
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
@@ -72,6 +72,7 @@ <result property="processName" column="process_name"/> <result property="infoProcess" column="info_process"/> <result property="infoProcessName" column="info_process_name"/> <result property="partyShow" column="party_show"/> <result property="wantUnitId" column="want_unit_id"/> <result property="wantUnitName" column="want_unit_name"/> <result property="wantUserId" column="want_user_id"/> @@ -213,6 +214,7 @@ want_unit_name, want_user_id, want_user_name, party_show, delete_status, cust_id, create_time, @@ -280,6 +282,7 @@ <if test="entity.processName != null">process_name = #{entity.processName},</if> <if test="entity.infoProcess != null">info_process = #{entity.infoProcess},</if> <if test="entity.infoProcessName != null">info_process_name = #{entity.infoProcessName},</if> <if test="entity.partyShow != null">party_show = #{entity.partyShow},</if> <if test="entity.wantUnitId != null">want_unit_id = #{entity.wantUnitId},</if> <if test="entity.wantUnitName != null">want_unit_name = #{entity.wantUnitName},</if> <if test="entity.wantUserId != null">want_user_id = #{entity.wantUserId},</if> dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
@@ -245,4 +245,81 @@ } } /** * 超时跳过评价 * @param idList 超时事件编号 */ public void autoArchive(List<String>idList){ try{ Date nowDate = DateUtils.getNowDate(); // 查询当事人评价任务 QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); caseTaskQueryWrapper.in("case_id", idList).eq("node_id", FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()); List<CaseTask> dsrpjCaseTaskList = caseTaskService.list(caseTaskQueryWrapper); for(CaseTask dsrpjCaseTask: dsrpjCaseTaskList){ // 完成当前当事人评价任务 dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); // dsrpjCaseTask.setHandleUserId(loginUser.getId()); dsrpjCaseTask.setHandleUserName("系统自动"); dsrpjCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); dsrpjCaseTask.setHandleTime(nowDate); dsrpjCaseTask.setUpdateTime(nowDate); caseTaskService.updateCaseTask(dsrpjCaseTask); // 完成当前当事人评价工作流任务 FlowNode dsrpjFlowNode = flowInfoService.completeTask(dsrpjCaseTask.getFlowableId(), dsrpjCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_forward, "系统自动"); // 默认完成结案归档任务 CaseTask jagdCaseTask = new CaseTask(); jagdCaseTask.setId(utilsClient.getNewTimeId()); jagdCaseTask.setCaseId(dsrpjCaseTask.getCaseId()); jagdCaseTask.setFlowableId(dsrpjFlowNode.getFlowableId()); jagdCaseTask.setProcessInstanceId(dsrpjFlowNode.getProcessInstanceId()); jagdCaseTask.setProcessTaskId(dsrpjFlowNode.getProcessTaskId()); jagdCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); jagdCaseTask.setNodeType(dsrpjFlowNode.getNodeType()); jagdCaseTask.setNodeId(dsrpjFlowNode.getNodeId()); jagdCaseTask.setNodeName(dsrpjFlowNode.getNodeName()); jagdCaseTask.setFlowId(dsrpjFlowNode.getFlowId()); jagdCaseTask.setNodeShowName(dsrpjFlowNode.getNodeShowName()); jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); // 通过调度的,任务候选执行者类型是上一步骤选择 jagdCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); jagdCaseTask.setCandeUnitId(dsrpjCaseTask.getCandeUnitId()); jagdCaseTask.setCandeUnitName(dsrpjCaseTask.getCandeUnitName()); // 系不需要签收 jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); // 任务处理时限 if (dsrpjFlowNode.getExpire() != 0) { jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire())); } jagdCaseTask.setHandleUnitName("系统自动"); jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); jagdCaseTask.setHandleTime(nowDate); jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); jagdCaseTask.setCustId(dsrpjCaseTask.getCustId()); jagdCaseTask.setCreateTime(nowDate); jagdCaseTask.setUpdateTime(nowDate); caseTaskService.save(jagdCaseTask); // 结束工作流流程 flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_jb_zszz, "系统自动"); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); caseInfoPO.setId(dsrpjCaseTask.getCaseId()); caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex()); caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.getDes()); caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes()); caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); } }catch (Exception e){ log.error("[CaseEvaluateService.saveCaseEvaluateWechat]调用失败,异常信息:"+e, e); throw new ServiceException("CaseEvaluateService.saveCaseEvaluateWechat", e); } } } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -245,6 +245,13 @@ caseInfo.setCaseRef(utilsClient.createCaseRef()); caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_1.getIndex()); caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_1.getDes()); //默认小程序可见 if(ObjectUtils.isNotEmpty(caseInfo.getCanal())){ if(CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())){ caseInfo.setPartyShow(1); } } //todo case_title生成、经纬度转换 if (0 == registerSaveDTO.getOperateType()) { caseInfo.setInputUnitId(loginUser.getUnitId()); @@ -599,6 +606,7 @@ caseInfo.setInputUserId(loginUser.getId()); caseInfo.setInputUserName(loginUser.getTrueName()); caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1); caseInfo.setPartyShow(1); if(ObjectUtils.isEmpty(registerSaveDTO.getPeopleNum())){ caseInfo.setPeopleNum(0); } dyh-service/dyh-mediate/src/main/java/cn/huge/module/timer/scheduledTask.java
New file @@ -0,0 +1,52 @@ package cn.huge.module.timer; import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; import cn.huge.module.cases.domain.po.CaseEvaluate; import cn.huge.module.cases.domain.po.CaseTask; import cn.huge.module.cases.service.CaseEvaluateService; import cn.huge.module.cases.service.CaseTaskService; import cn.huge.module.client.api.impl.SysClientImpl; import cn.huge.module.flow.consts.FlowNodeEnum; import cn.huge.module.sys.constant.SyTimeEnum; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import dm.jdbc.internal.convert.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * @title: 定时器 * @description: 定时器方法 * @company: hugeinfo * @author: wangwh * @time: 2024-09-26 16:51:48 * @version: 1.0.0 */ @Slf4j @Component public class scheduledTask { @Autowired private CaseEvaluateService evaluateService; @Autowired private CaseTaskService caseTaskService; @Autowired private SysClientImpl sysClient; // @Scheduled(cron ="0 */1 * * * ?") public void autoArchive(){ Date now = DateUtils.getNowDate(); QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); caseTaskQueryWrapper.eq("node_id", FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()) .eq("status", 1).le("expire_time", now); List<CaseTask> caseTaskList = caseTaskService.list(caseTaskQueryWrapper); List<String> caseIdList = caseTaskList.stream().map(CaseTask::getCaseId).collect(Collectors.toList()); evaluateService.autoArchive(caseIdList); } }