| | |
| | | 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; |
| | |
| | | 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)); |
| | | //查询原因 |
| | |
| | | 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); |
| | |
| | | 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)) { |
| | | //当某个用户在同一个模块审批流的多个节点都存在时,多次审核后,已审核列表页报错 |
| | |
| | | processTaskListVO.setCreateBy(sysUser.getNickName()); |
| | | } |
| | | } |
| | | return pageInfo; |
| | | return processTaskListVOS; |
| | | } |
| | | @Override |
| | | public PageInfo<ProcessTaskListVO> dealTaskPageApplet(ProcessTaskListBO processTaskListBO) { |
| | |
| | | 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()); |
| | |
| | | |
| | | // 查询历史任务 |
| | | 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) |
| | |
| | | } |
| | | 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()); |
| | | } |
| | | |
| | | } |