From a903065d0a865deec05f1e53f9c096c5e931f786 Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Sun, 29 Sep 2024 17:47:51 +0800 Subject: [PATCH] 自动评价定时任务 小程序是否可见接口 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/timer/scheduledTask.java | 52 +++++++++++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseEvaluateMapper.xml | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java | 77 +++++++++++++++++++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java | 28 ++++++++- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml | 3 + dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 8 ++ 6 files changed, 165 insertions(+), 5 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java index 4a29820..8490553 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java +++ b/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(); + } + } } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseEvaluateMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseEvaluateMapper.xml index d1edcf1..e8b0388 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseEvaluateMapper.xml +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseEvaluateMapper.xml @@ -163,4 +163,4 @@ limit #{page.offset}, #{page.size} </select> -</mapper> \ No newline at end of file +</mapper> \ No newline at end of file diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml index 8e27d9f..0508102 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml +++ b/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> diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java index 6a4667f..06fcb06 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java +++ b/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); + } + } } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java index 0c2908c..0584249 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java +++ b/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); } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/timer/scheduledTask.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/timer/scheduledTask.java new file mode 100644 index 0000000..4c17503 --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/timer/scheduledTask.java @@ -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); + } +} -- Gitblit v1.8.0