| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.IdUtil; |
| | | import cn.hutool.core.util.NumberUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | |
| | | } |
| | | return pageInfo; |
| | | } |
| | | /** |
| | | * 待办 |
| | | * @param processTaskListBO |
| | | * @return |
| | | */ |
| | | @Override |
| | | public PageInfo<ProcessTaskListVO> waitTaskPageApplet(ProcessTaskListBO processTaskListBO) { |
| | | |
| | | String startTime = null; |
| | | String endTime = null; |
| | | if(Objects.nonNull(processTaskListBO.getTimeType())){ |
| | | switch (processTaskListBO.getTimeType()){ |
| | | case 1: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | case 2: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -7), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | case 3: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -30), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | //获取当前登录用户信息 |
| | | Long userId = SecurityUtils.getLoginUser().getUserId(); |
| | | |
| | | //或签时查询其他审批人是否通过(不能省略),比如 同一任务需要A,B审核,A通过了,B不用在审核了,在历史表查询A的审核记录 |
| | | LambdaQueryWrapper<FlwHisInstance> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | lambdaQueryWrapper.orderByDesc(FlowEntity::getCreateTime); |
| | | //待审核 |
| | | lambdaQueryWrapper.eq(FlwHisInstance::getInstanceState, 0); |
| | | |
| | | List<Long> flwHisInstances = flwHisInstanceMapper.selectList(lambdaQueryWrapper).stream() |
| | | .map(FlwHisInstance::getId).collect(Collectors.toList()); |
| | | if (ObjectUtil.isEmpty(flwHisInstances)) { |
| | | return new PageInfo<>(); |
| | | } |
| | | |
| | | //查询任务参与者 |
| | | LambdaQueryWrapper<FlwTaskActor> query = new LambdaQueryWrapper<>(); |
| | | query.and(qy -> qy.eq(FlwTaskActor::getActorId, userId) |
| | | //0指定用户 |
| | | .eq(FlwTaskActor::getActorType, 0) |
| | | .or().in(FlwTaskActor::getActorId, userId) |
| | | //1指定角色 |
| | | .eq(FlwTaskActor::getActorType, 1)); |
| | | if (ObjectUtil.isNotNull(processTaskListBO) && ObjectUtil.isNotNull(flwHisInstances)) { |
| | | // 添加条件 |
| | | query = query.in(FlwTaskActor::getInstanceId, flwHisInstances); |
| | | } |
| | | List<FlwTaskActor> flwTaskActorPage = flwTaskActorMapper.selectList(query); |
| | | if (ObjectUtil.isEmpty(flwTaskActorPage)) { |
| | | return new PageInfo<>(); |
| | | } |
| | | //查询任务信息 |
| | | List<FlwTask> flwTasks = flwTaskMapper.selectList(Wrappers.<FlwTask>lambdaQuery() |
| | | .orderByDesc(FlwTask::getCreateTime) |
| | | .in(FlwTask::getId, flwTaskActorPage.stream() |
| | | .map(FlwTaskActor::getTaskId).collect(Collectors.toList()))); |
| | | |
| | | if (ObjectUtil.isNull(flwTasks)) { |
| | | return new PageInfo<>(); |
| | | } |
| | | List<String> instanceIds = flwTasks.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.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) { |
| | | stateTaskQuery.between(StateTaskCenter::getCreateTime, startTime, endTime); |
| | | } |
| | | if (processTaskListBO.getSortBy() == 1) { |
| | | stateTaskQuery.orderByAsc(BaseModel::getCreateTime); |
| | | } |
| | | if (processTaskListBO.getSortBy() == 2) { |
| | | stateTaskQuery.orderByDesc(BaseModel::getCreateTime); |
| | | } |
| | | stateTaskQuery.in(StateTaskCenter::getFlowId, instanceIds); |
| | | 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 = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId")); |
| | | processTaskListVO.setContract(contract); |
| | | } |
| | | |
| | | pageInfo.setRecords(processTaskListVOS); |
| | | |
| | | List<String> updateUserId = processTaskListVOS.stream().map(ProcessTaskListVO::getCreateBy).collect(Collectors.toList()); |
| | | Map<Long, SysUser> sysUserMap; |
| | | if (!CollectionUtils.isEmpty(updateUserId)) { |
| | | //根据用户id查询更新人信息 |
| | | List<SysUser> sysUsers = sysUserService.selectUserByUserNameList(updateUserId); |
| | | |
| | | if (!CollectionUtils.isEmpty(sysUsers)) { |
| | | sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity())); |
| | | } else { |
| | | sysUserMap = new HashMap<>(); |
| | | } |
| | | } else { |
| | | sysUserMap = new HashMap<>(); |
| | | } |
| | | |
| | | |
| | | Map<Long, List<FlwTask>> flwHisTaskMap = flwTasks.stream().collect(Collectors.groupingBy(FlwTask::getInstanceId)); |
| | | |
| | | for (ProcessTaskListVO processTaskListVO : processTaskListVOS) { |
| | | List<FlwTask> flwTask = flwHisTaskMap.get(NumberUtil.parseLong(processTaskListVO.getFlowId())); |
| | | if (!CollectionUtils.isEmpty(flwTask) && ObjectUtil.isNotEmpty(flwTask.get(0))) { |
| | | //待审核 |
| | | processTaskListVO.setStatus("0"); |
| | | processTaskListVO.setNodeName(flwTask.get(0).getTaskName()); |
| | | processTaskListVO.setTaskId(flwTask.get(0).getId().toString()); |
| | | processTaskListVO.setVariable(flwTask.get(0).getVariable()); |
| | | } |
| | | SysUser sysUser = sysUserMap.get(processTaskListVO.getCreateBy()); |
| | | if (Objects.nonNull(sysUser)) { |
| | | processTaskListVO.setCreateBy(sysUser.getNickName()); |
| | | } |
| | | } |
| | | return pageInfo; |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<ProcessTaskListVO> dealTaskPage(ProcessTaskListBO processTaskListBO) { |
| | |
| | | } |
| | | 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 = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId")); |
| | | processTaskListVO.setContract(contract); |
| | | } |
| | | |
| | | pageInfo.setRecords(processTaskListVOS); |
| | | |
| | | if (ObjectUtil.isEmpty(processTaskListVOS)) { |
| | | return pageInfo; |
| | | } |
| | | Map<Long, List<FlwHisTask>> flwHisTaskMap = flwHisTaskList.stream().collect(Collectors.groupingBy(FlwHisTask::getInstanceId)); |
| | | //查询原因 |
| | | List<String> taskIds = flwHisTaskList.stream().map(FlowEntity::getId).map(String::valueOf).collect(Collectors.toList()); |
| | | List<StateProcessInstanceAction> actions = stateProcessInstanceActionService.list( |
| | | 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()); |
| | | Map<Long, SysUser> sysUserMap; |
| | | if (!CollectionUtils.isEmpty(updateUserId)) { |
| | | List<SysUser> sysUsers = sysUserService.selectUserByUserNameList(updateUserId); |
| | | |
| | | if (!CollectionUtils.isEmpty(sysUsers)) { |
| | | sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity())); |
| | | } else { |
| | | sysUserMap = new HashMap<>(); |
| | | } |
| | | } else { |
| | | sysUserMap = new HashMap<>(); |
| | | } |
| | | |
| | | for (ProcessTaskListVO processTaskListVO : processTaskListVOS) { |
| | | List<FlwHisTask> flwHisTasks = flwHisTaskMap.get(NumberUtil.parseLong(processTaskListVO.getFlowId())); |
| | | if (ObjectUtil.isNotEmpty(flwHisTaskMap)) { |
| | | //当某个用户在同一个模块审批流的多个节点都存在时,多次审核后,已审核列表页报错 |
| | | for (FlwHisTask flwHisTask : flwHisTasks) { |
| | | if (flwHisTask.getInstanceId().toString().equals(processTaskListVO.getFlowId())) { |
| | | //10等于发起人与审批人一致自动审核完成 |
| | | processTaskListVO.setStatus(flwHisTask.getTaskState() == 10 ? "2" : flwHisTask.getTaskState().toString()); |
| | | processTaskListVO.setNodeName(flwHisTask.getTaskName()); |
| | | processTaskListVO.setTaskId(flwHisTask.getId().toString()); |
| | | processTaskListVO.setVariable(flwHisTask.getVariable()); |
| | | } |
| | | } |
| | | } |
| | | StateProcessInstanceAction action = actionMap.get(processTaskListVO.getTaskId()); |
| | | if (ObjectUtil.isNotEmpty(action)) { |
| | | processTaskListVO.setReason(action.getRemark()); |
| | | } |
| | | SysUser sysUser = sysUserMap.get(processTaskListVO.getCreateBy()); |
| | | if (Objects.nonNull(sysUser)) { |
| | | processTaskListVO.setCreateBy(sysUser.getNickName()); |
| | | } |
| | | } |
| | | return pageInfo; |
| | | } |
| | | @Override |
| | | public PageInfo<ProcessTaskListVO> dealTaskPageApplet(ProcessTaskListBO processTaskListBO) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | if(Objects.nonNull(processTaskListBO.getTimeType())){ |
| | | switch (processTaskListBO.getTimeType()){ |
| | | case 1: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | case 2: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -7), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | case 3: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -30), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | } |
| | | } |
| | | //获取当前登录用户信息 |
| | | Long userId = SecurityUtils.getLoginUser().getUserId(); |
| | | LambdaQueryWrapper<FlwHisTaskActor> query = Wrappers.<FlwHisTaskActor>lambdaQuery() |
| | | .and(qy -> qy.eq(FlwTaskActor::getActorId, userId) |
| | | //0指定用户 |
| | | .eq(FlwTaskActor::getActorType, 0) |
| | | //指定角色 |
| | | .or().in(FlwTaskActor::getActorId, userId) |
| | | .eq(FlwTaskActor::getActorType, 1)); |
| | | List<FlwHisTaskActor> flwHisTaskActors = flwHisTaskActorMapper.selectList(query); |
| | | |
| | | List<Long> hisTaskIds = flwHisTaskActors.stream().map(FlwTaskActor::getTaskId).collect(Collectors.toList()); |
| | | |
| | | if (hisTaskIds.isEmpty()) { |
| | | return new PageInfo<>(); |
| | | } |
| | | |
| | | List<FlwHisTask> flwHisTaskList = flwHisTaskMapper.selectList( |
| | | Wrappers.<FlwHisTask>lambdaQuery() |
| | | .notIn(FlwHisTask::getTaskType, TaskType.cc.getValue(), TaskType.major.getValue()) |
| | | .orderByDesc(FlwHisTask::getCreateTime) |
| | | .in(FlwHisTask::getId, hisTaskIds)); |
| | | if (ObjectUtil.isEmpty(flwHisTaskList)) { |
| | | new PageInfo<>(); |
| | | } |
| | | |
| | | List<String> instanceId = 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<>(); |
| | | } |
| | | if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) { |
| | | stateTaskQuery.between(StateTaskCenter::getCreateTime, startTime, endTime); |
| | | } |
| | | if (processTaskListBO.getSortBy() == 1) { |
| | | stateTaskQuery.orderByAsc(BaseModel::getCreateTime); |
| | | } |
| | | if (processTaskListBO.getSortBy() == 2) { |
| | | stateTaskQuery.orderByDesc(BaseModel::getCreateTime); |
| | | } |
| | | stateTaskQuery.in(StateTaskCenter::getFlowId, instanceId); |
| | | PageInfo pageInfo = new PageInfo<>(processTaskListBO.getPageNum(), processTaskListBO.getPageSize()); |
| | | PageInfo<StateTaskCenter> taskCenters = stateTaskCenterService.page(pageInfo,stateTaskQuery); |
| | | //转换类 |
| | |
| | | return processTaskListVOS; |
| | | } |
| | | |
| | | // @Override |
| | | // public PageInfo<ProcessTaskListVO> dealAndWaitTaskPage(ProcessTaskListBO processTaskListBO) { |
| | | // //获取当前登录用户信息 |
| | | // Long userId = SecurityUtils.getLoginUser().getUserId(); |
| | | // |
| | | // //或签时查询其他审批人是否通过(不能省略),比如 同一任务需要A,B审核,A通过了,B不用在审核了,在历史表查询A的审核记录 |
| | | // LambdaQueryWrapper<FlwHisInstance> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | // lambdaQueryWrapper.orderByDesc(FlowEntity::getCreateTime); |
| | | // //待审核,通过,拒绝 |
| | | // lambdaQueryWrapper.in(FlwHisInstance::getInstanceState, 0,1,2); |
| | | // |
| | | // List<Long> flwHisInstances = flwHisInstanceMapper.selectList(lambdaQueryWrapper).stream() |
| | | // .map(FlwHisInstance::getId).collect(Collectors.toList()); |
| | | // |
| | | // //查询任务参与者 |
| | | // LambdaQueryWrapper<FlwTaskActor> query = new LambdaQueryWrapper<>(); |
| | | // query.and(qy -> qy.eq(FlwTaskActor::getActorId, userId) |
| | | // //0指定用户 |
| | | // .eq(FlwTaskActor::getActorType, 0) |
| | | // .or().in(FlwTaskActor::getActorId, userId) |
| | | // //1指定角色 |
| | | // .eq(FlwTaskActor::getActorType, 1)); |
| | | // if (ObjectUtil.isNotNull(processTaskListBO) && ObjectUtil.isNotNull(flwHisInstances)) { |
| | | // // 添加条件 |
| | | // query = query.in(FlwTaskActor::getInstanceId, flwHisInstances); |
| | | // } |
| | | // List<FlwTaskActor> flwTaskActorPage = flwTaskActorMapper.selectList(query); |
| | | // List<String> instanceIds = new ArrayList<>(); |
| | | // List<FlwTask> flwTasks = new ArrayList<>(); |
| | | // if (ObjectUtil.isNotEmpty(flwTaskActorPage)) { |
| | | // //查询任务信息 |
| | | // flwTasks = flwTaskMapper.selectList(Wrappers.<FlwTask>lambdaQuery() |
| | | // .orderByDesc(FlwTask::getCreateTime) |
| | | // .in(FlwTask::getId, flwTaskActorPage.stream() |
| | | // .map(FlwTaskActor::getTaskId).collect(Collectors.toList()))); |
| | | // if (ObjectUtil.isNotNull(flwTasks)) { |
| | | // instanceIds = flwTasks.stream().map(FlwTask::getInstanceId) |
| | | // .map(String::valueOf).collect(Collectors.toList()); |
| | | // } |
| | | // } |
| | | // |
| | | // LambdaQueryWrapper<FlwHisTaskActor> hisQuery= Wrappers.<FlwHisTaskActor>lambdaQuery() |
| | | // .and(qy -> qy.eq(FlwTaskActor::getActorId, userId) |
| | | // //0指定用户 |
| | | // .eq(FlwTaskActor::getActorType, 0) |
| | | // //指定角色 |
| | | // .or().in(FlwTaskActor::getActorId, userId) |
| | | // .eq(FlwTaskActor::getActorType, 1)); |
| | | // List<FlwHisTaskActor> flwHisTaskActors = flwHisTaskActorMapper.selectList(hisQuery); |
| | | // List<Long> hisTaskIds = flwHisTaskActors.stream().map(FlwTaskActor::getTaskId).collect(Collectors.toList()); |
| | | // |
| | | // if (!CollectionUtils.isEmpty(hisTaskIds)) { |
| | | // List<FlwHisTask> flwHisTaskList = flwHisTaskMapper.selectList( |
| | | // Wrappers.<FlwHisTask>lambdaQuery() |
| | | // .notIn(FlwHisTask::getTaskType, TaskType.cc.getValue(), TaskType.major.getValue()) |
| | | // .orderByDesc(FlwHisTask::getCreateTime) |
| | | // .in(FlwHisTask::getId, hisTaskIds)); |
| | | // if (ObjectUtil.isNotEmpty(flwHisTaskList)) { |
| | | // instanceIds.addAll(flwHisTaskList.stream().map(FlwHisTask::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()); |
| | | //// } |
| | | //// stateTaskQuery.in(StateTaskCenter::getFlowId, instanceIds); |
| | | //// stateTaskQuery.orderByDesc(BaseModel::getCreateTime); |
| | | // processTaskListBO.setInstanceIds(instanceIds); |
| | | //// 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 = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId")); |
| | | //// processTaskListVO.setContract(contract); |
| | | //// } |
| | | //// pageInfo.setRecords(processTaskListVOS); |
| | | // |
| | | // PageInfo<ProcessTaskListVO> processTaskListVOS = stateTaskCenterService.pageList(processTaskListBO); |
| | | // |
| | | // List<String> updateUserId = processTaskListVOS.getRecords().stream().map(ProcessTaskListVO::getCreateBy).collect(Collectors.toList()); |
| | | // Map<Long, SysUser> sysUserMap; |
| | | // if (!CollectionUtils.isEmpty(updateUserId)) { |
| | | // //根据用户id查询更新人信息 |
| | | // List<SysUser> sysUsers = sysUserService.selectUserByUserNameList(updateUserId); |
| | | // |
| | | // if (!CollectionUtils.isEmpty(sysUsers)) { |
| | | // sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity())); |
| | | // } else { |
| | | // sysUserMap = new HashMap<>(); |
| | | // } |
| | | // } else { |
| | | // sysUserMap = new HashMap<>(); |
| | | // } |
| | | // |
| | | // Map<Long, List<FlwTask>> flwHisTaskMap = new HashMap<>(); |
| | | // if(!CollectionUtils.isEmpty(flwTasks)){ |
| | | // flwHisTaskMap = flwTasks.stream().collect(Collectors.groupingBy(FlwTask::getInstanceId)); |
| | | // } |
| | | // |
| | | // for (ProcessTaskListVO processTaskListVO : processTaskListVOS.getRecords()) { |
| | | // if(!CollectionUtils.isEmpty(flwHisTaskMap)){ |
| | | // List<FlwTask> flwTask = flwHisTaskMap.get(NumberUtil.parseLong(processTaskListVO.getFlowId())); |
| | | // if (!CollectionUtils.isEmpty(flwTask) && ObjectUtil.isNotEmpty(flwTask.get(0))) { |
| | | // //待审核 |
| | | // processTaskListVO.setStatus("0"); |
| | | // processTaskListVO.setNodeName(flwTask.get(0).getTaskName()); |
| | | // processTaskListVO.setTaskId(flwTask.get(0).getId().toString()); |
| | | // processTaskListVO.setVariable(flwTask.get(0).getVariable()); |
| | | // } |
| | | // } |
| | | // SysUser sysUser = sysUserMap.get(processTaskListVO.getCreateBy()); |
| | | // if (Objects.nonNull(sysUser)) { |
| | | // processTaskListVO.setCreateBy(sysUser.getNickName()); |
| | | // } |
| | | // } |
| | | // return processTaskListVOS; |
| | | // } |
| | | |
| | | @Override |
| | | public ProcessDetailVO detail(String taskId) { |
| | | ProcessDetailVO processDetailVO = new ProcessDetailVO(); |
| | | FlwTask flwTask = flwTaskMapper.selectById(Long.valueOf(taskId)); |
| | | // 查询合同信息 |
| | | TContract contract = contractService.getById(JSONObject.parseObject(flwTask.getVariable()).getString("projectId")); |
| | | TContract contract; |
| | | Long instanceId; |
| | | if(Objects.nonNull(flwTask)){ |
| | | instanceId = flwTask.getInstanceId(); |
| | | // 查询合同信息 |
| | | contract = contractService.getById(JSONObject.parseObject(flwTask.getVariable()).getString("projectId")); |
| | | }else { |
| | | FlwHisTask flwHisTask = flwHisTaskMapper.selectById(Long.valueOf(taskId)); |
| | | if(Objects.isNull(flwHisTask)){ |
| | | throw new GlobalException("流程不存在"); |
| | | } |
| | | instanceId = flwHisTask.getInstanceId(); |
| | | contract = contractService.getById(Objects.requireNonNull(JSONObject.parseObject(flwHisTask.getVariable())).getString("projectId")); |
| | | } |
| | | BeanUtil.copyProperties(contract, processDetailVO); |
| | | |
| | | // 查询历史任务 |
| | | 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, flwTask.getInstanceId()) |
| | | .orderByDesc(StateProcessInstanceAction::getCreateTime)); |
| | | for (StateProcessInstanceAction stateProcessInstanceAction : list) { |
| | | SysUser sysUser = sysUserService.selectUserById(Long.valueOf(stateProcessInstanceAction.getAuditorId())); |
| | | if(Objects.nonNull(sysUser)){ |
| | | stateProcessInstanceAction.setNickName(sysUser.getNickName()); |
| | | } |
| | | } |
| | | processDetailVO.setInstanceActions(list); |
| | | |
| | | return processDetailVO; |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<ProcessTaskListVO> initiateTaskPage(ProcessTaskListBO processTaskListBO) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | if(Objects.nonNull(processTaskListBO.getTimeType())){ |
| | | switch (processTaskListBO.getTimeType()){ |
| | | case 1: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | case 2: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -7), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | case 3: |
| | | startTime = DateUtil.format(DateUtil.offsetDay(new Date(), -30), "yyyy-MM-dd") + " 00:00:00"; |
| | | endTime = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd") + " 23:59:59"; |
| | | break; |
| | | } |
| | | } |
| | | //获取当前登录用户信息 |
| | | Long userId = SecurityUtils.getLoginUser().getUserId(); |
| | | |
| | | //分页查询任务中心任务 |
| | | LambdaQueryWrapper<FlwHisTask> stateTaskQuery = new LambdaQueryWrapper<>(); |
| | | if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) { |
| | | stateTaskQuery.between(FlwHisTask::getCreateTime, startTime, endTime); |
| | | } |
| | | if (processTaskListBO.getSortBy() == 1) { |
| | | stateTaskQuery.orderByAsc(FlwHisTask::getCreateTime); |
| | | } |
| | | if (processTaskListBO.getSortBy() == 2) { |
| | | stateTaskQuery.orderByDesc(FlwHisTask::getCreateTime); |
| | | } |
| | | stateTaskQuery.eq(FlwHisTask::getParentTaskId, 0L); |
| | | stateTaskQuery.like(FlwHisTask::getCreateId, userId); |
| | | PageInfo pageInfo = new PageInfo<>(processTaskListBO.getPageNum(), processTaskListBO.getPageSize()); |
| | | PageInfo<FlwHisTask> taskCenters = flwHisTaskMapper.selectPage(pageInfo,stateTaskQuery); |
| | | //转换类 |
| | | List<ProcessTaskListVO> processTaskListVOS = BeanUtil.copyToList(taskCenters.getRecords(), ProcessTaskListVO.class); |
| | | |
| | | // 查询合同信息 |
| | | for (ProcessTaskListVO processTaskListVO : processTaskListVOS) { |
| | | // 查询合同信息 |
| | | TContract contract = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId")); |
| | | processTaskListVO.setContract(contract); |
| | | } |
| | | |
| | | pageInfo.setRecords(processTaskListVOS); |
| | | |
| | | if (ObjectUtil.isEmpty(processTaskListVOS)) { |
| | | return pageInfo; |
| | | } |
| | | List<String> updateUserId = processTaskListVOS.stream().map(ProcessTaskListVO::getCreateBy).collect(Collectors.toList()); |
| | | Map<Long, SysUser> sysUserMap; |
| | | if (!CollectionUtils.isEmpty(updateUserId)) { |
| | | List<SysUser> sysUsers = sysUserService.selectUserByUserNameList(updateUserId); |
| | | |
| | | if (!CollectionUtils.isEmpty(sysUsers)) { |
| | | sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity())); |
| | | } else { |
| | | sysUserMap = new HashMap<>(); |
| | | } |
| | | } else { |
| | | sysUserMap = new HashMap<>(); |
| | | } |
| | | |
| | | for (ProcessTaskListVO processTaskListVO : processTaskListVOS) { |
| | | SysUser sysUser = sysUserMap.get(processTaskListVO.getCreateBy()); |
| | | if (Objects.nonNull(sysUser)) { |
| | | processTaskListVO.setCreateBy(sysUser.getNickName()); |
| | | } |
| | | } |
| | | return pageInfo; |
| | | } |
| | | |
| | | private FlowCreator currentFlowCreator() { |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (null == loginUser || null == loginUser.getUser().getUserId()) { |