From c474556f44163526700fd7c99a88e37e4297e23f Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 27 二月 2025 19:14:23 +0800 Subject: [PATCH] 审批流定时任务 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java | 72 ++++++++++++++++++----------------- 1 files changed, 37 insertions(+), 35 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java index afbd802..7c3da74 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.ImmutableMap; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.entity.SysUser; @@ -580,40 +581,29 @@ new PageInfo<>(); } - List<String> instanceId = flwHisTaskList.stream().map(FlwTask::getInstanceId) + List<String> instanceIds = flwHisTaskList.stream().map(FlwTask::getInstanceId) .map(String::valueOf).collect(Collectors.toList()); //分页查询任务中心任务 - LambdaQueryWrapper<StateTaskCenter> stateTaskQuery = new LambdaQueryWrapper<>(); - if (ObjectUtil.isNotEmpty(processTaskListBO.getName())) { - stateTaskQuery.like(StateTaskCenter::getName, processTaskListBO.getName()); - } - if (ObjectUtil.isNotEmpty(processTaskListBO.getModuleName())) { - stateTaskQuery.like(StateTaskCenter::getModuleName, processTaskListBO.getModuleName()); - } - if (ObjectUtil.isNotEmpty(processTaskListBO.getCreateBy())) { - stateTaskQuery.like(StateTaskCenter::getCreateBy, processTaskListBO.getCreateBy()); - } - if (ObjectUtil.isEmpty(instanceId)) { - return new PageInfo<>(); - } - stateTaskQuery.in(StateTaskCenter::getFlowId, instanceId); - stateTaskQuery.orderByDesc(BaseModel::getCreateTime); - PageInfo pageInfo = new PageInfo<>(processTaskListBO.getPageNum(), processTaskListBO.getPageSize()); - PageInfo<StateTaskCenter> taskCenters = stateTaskCenterService.page(pageInfo,stateTaskQuery); - //转换类 - List<ProcessTaskListVO> processTaskListVOS = BeanUtil.copyToList(taskCenters.getRecords(), ProcessTaskListVO.class); - - // 查询合同信息 - for (ProcessTaskListVO processTaskListVO : processTaskListVOS) { - // 查询合同信息 - TContract contract = contractMapper.selectById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId")); - processTaskListVO.setContract(contract); - } - - pageInfo.setRecords(processTaskListVOS); +// LambdaQueryWrapper<StateTaskCenter> stateTaskQuery = new LambdaQueryWrapper<>(); +// if (ObjectUtil.isNotEmpty(processTaskListBO.getName())) { +// stateTaskQuery.like(StateTaskCenter::getName, processTaskListBO.getName()); +// } +// if (ObjectUtil.isNotEmpty(processTaskListBO.getModuleName())) { +// stateTaskQuery.like(StateTaskCenter::getModuleName, processTaskListBO.getModuleName()); +// } +// if (ObjectUtil.isNotEmpty(processTaskListBO.getCreateBy())) { +// stateTaskQuery.like(StateTaskCenter::getCreateBy, processTaskListBO.getCreateBy()); +// } +// if (ObjectUtil.isEmpty(instanceId)) { +// return new PageInfo<>(); +// } +// stateTaskQuery.in(StateTaskCenter::getFlowId, instanceId); +// stateTaskQuery.orderByDesc(BaseModel::getCreateTime); + processTaskListBO.setInstanceIds(instanceIds); + PageInfo<ProcessTaskListVO> processTaskListVOS = stateTaskCenterService.pageList(processTaskListBO); if (ObjectUtil.isEmpty(processTaskListVOS)) { - return pageInfo; + return new PageInfo<>(); } Map<Long, List<FlwHisTask>> flwHisTaskMap = flwHisTaskList.stream().collect(Collectors.groupingBy(FlwHisTask::getInstanceId)); //查询原因 @@ -622,7 +612,7 @@ Wrappers.<StateProcessInstanceAction>lambdaQuery().in(StateProcessInstanceAction::getNodeId, taskIds)); Map<String, StateProcessInstanceAction> actionMap = actions.stream().collect(Collectors.toMap(StateProcessInstanceAction::getNodeId, Function.identity())); - List<String> updateUserId = processTaskListVOS.stream().map(ProcessTaskListVO::getCreateBy).collect(Collectors.toList()); + List<String> updateUserId = processTaskListVOS.getRecords().stream().map(ProcessTaskListVO::getCreateBy).collect(Collectors.toList()); Map<Long, SysUser> sysUserMap; if (!CollectionUtils.isEmpty(updateUserId)) { List<SysUser> sysUsers = sysUserService.selectUserByUserNameList(updateUserId); @@ -636,7 +626,7 @@ sysUserMap = new HashMap<>(); } - for (ProcessTaskListVO processTaskListVO : processTaskListVOS) { + for (ProcessTaskListVO processTaskListVO : processTaskListVOS.getRecords()) { List<FlwHisTask> flwHisTasks = flwHisTaskMap.get(NumberUtil.parseLong(processTaskListVO.getFlowId())); if (ObjectUtil.isNotEmpty(flwHisTaskMap)) { //当某个用户在同一个模块审批流的多个节点都存在时,多次审核后,已审核列表页报错 @@ -659,7 +649,7 @@ processTaskListVO.setCreateBy(sysUser.getNickName()); } } - return pageInfo; + return processTaskListVOS; } @Override public PageInfo<ProcessTaskListVO> dealTaskPageApplet(ProcessTaskListBO processTaskListBO) { @@ -912,12 +902,16 @@ if (ObjectUtil.isNull(flwTask)) { throw new GlobalException("任务已处理或者不存在"); } - flowLongEngine.executeTask(taskId, currentFlowCreator()); + if(Objects.nonNull(processAgreeBO.getUserId())){ + flowLongEngine.executeTask(taskId, currentFlowCreator(processAgreeBO.getUserId())); + }else { + flowLongEngine.executeTask(taskId, currentFlowCreator()); + } // 动作执行记录 StateProcessInstanceAction stateProcessInstanceAction = new StateProcessInstanceAction(); stateProcessInstanceAction.setId(IdUtils.simpleUUID()); stateProcessInstanceAction.setInstanceId(flwTask.getInstanceId().toString()); - stateProcessInstanceAction.setAuditorId(String.valueOf(SecurityUtils.getUserId())); + stateProcessInstanceAction.setAuditorId(String.valueOf(processAgreeBO.getUserId())); stateProcessInstanceAction.setActionType(StateProcessActionEnum.APPROVED.getValue()); stateProcessInstanceAction.setNodeId(processAgreeBO.getTaskId()); stateProcessInstanceAction.setRemark(processAgreeBO.getRemark()); @@ -1208,6 +1202,7 @@ // 查询历史任务 List<FlwHisTask> flwHisTasks = flwHisTaskMapper.selectList(Wrappers.<FlwHisTask>lambdaQuery().eq(FlwHisTask::getInstanceId, instanceId)); + processDetailVO.setFlwHisTasks(flwHisTasks); List<StateProcessInstanceAction> list = stateProcessInstanceActionService.list(Wrappers.<StateProcessInstanceAction>lambdaQuery().eq(StateProcessInstanceAction::getInstanceId, instanceId) @@ -1309,5 +1304,12 @@ } return FlowCreator.of(String.valueOf(loginUser.getUserId()), loginUser.getUser().getNickName()); } + private FlowCreator currentFlowCreator(Long userId) { + if (null == userId) { + throw new GlobalException("非法用户"); + } + SysUser sysUser = sysUserService.selectUserById(userId); + return FlowCreator.of(String.valueOf(sysUser.getUserId()), sysUser.getNickName()); + } } -- Gitblit v1.7.1