From c0bc55a9ea098a512f79a3a619e4a7d0a2dc9c3b Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 10 四月 2025 18:22:58 +0800
Subject: [PATCH] yml修改
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java | 787 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 783 insertions(+), 4 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 b25418c..162decb 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
@@ -1,13 +1,17 @@
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;
import cn.hutool.json.JSONUtil;
import com.aizuda.bpm.engine.FlowLongEngine;
+import com.aizuda.bpm.engine.TaskService;
import com.aizuda.bpm.engine.core.FlowCreator;
+import com.aizuda.bpm.engine.core.enums.InstanceState;
import com.aizuda.bpm.engine.core.enums.TaskType;
+import com.aizuda.bpm.engine.dao.FlwInstanceDao;
import com.aizuda.bpm.engine.entity.*;
import com.aizuda.bpm.engine.model.NodeModel;
import com.aizuda.bpm.mybatisplus.mapper.*;
@@ -18,19 +22,24 @@
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;
import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.domain.model.LoginUserApplet;
import com.ruoyi.common.enums.StateProcessActionEnum;
+import com.ruoyi.common.enums.TaskEventType;
import com.ruoyi.common.exception.GlobalException;
import com.ruoyi.common.exception.state.StateErrorCode;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.system.bo.*;
import com.ruoyi.system.mapper.StateProcessTemplateMapper;
+import com.ruoyi.system.mapper.TContractMapper;
import com.ruoyi.system.model.*;
import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.ProcessDetailVO;
import com.ruoyi.system.vo.ProcessTaskListVO;
import lombok.AllArgsConstructor;
import org.apache.commons.io.IOUtils;
@@ -44,6 +53,7 @@
import java.time.LocalDateTime;
import java.util.*;
import java.util.function.Function;
+import java.util.function.Supplier;
import java.util.stream.Collectors;
@Service
@@ -62,6 +72,8 @@
@Autowired
private FlwTaskMapper flwTaskMapper;
@Autowired
+ private TaskService taskService;
+ @Autowired
private StateTaskCenterService stateTaskCenterService;
@Autowired
private StateProcessModuleService stateProcessModuleService;
@@ -71,6 +83,8 @@
private FlwHisTaskActorMapper flwHisTaskActorMapper;
@Autowired
private ISysUserService sysUserService;
+ @Autowired
+ private TContractMapper contractMapper;
/**
* 流程模版分页
@@ -262,6 +276,84 @@
stateTaskCenter.setRemark(processStartBO.getRemark());
stateTaskCenter.setCreateBy(loginUser.getUser().getNickName());
stateTaskCenter.setVariable(JSONUtil.toJsonStr(processStartBO.getVariable()));
+ stateTaskCenter.setProjectId(JSONObject.parseObject(JSONUtil.toJsonStr(processStartBO.getVariable())).getString("projectId"));
+ stateTaskCenterService.save(stateTaskCenter);
+
+ // action记录
+ StateProcessInstanceAction stateProcessInstanceAction = new StateProcessInstanceAction();
+ stateProcessInstanceAction.setId(IdUtils.simpleUUID());
+ stateProcessInstanceAction.setInstanceId(instance.getId().toString());
+ stateProcessInstanceAction.setActionType(StateProcessActionEnum.START.getValue());
+ stateProcessInstanceAction.setAuditorId(creator.getCreateId());
+ stateProcessInstanceActionService.save(stateProcessInstanceAction);
+
+ // 添加拓展信息
+ StateProcessExtInstance stateProcessExtInstance = new StateProcessExtInstance();
+ stateProcessExtInstance.setId(instance.getId().toString());
+ stateProcessExtInstance.setTemplateId(lastTemplate.getId());
+ stateProcessExtInstance.setProcessId(flwProcess.getId().toString());
+
+ //保存version
+ stateProcessExtInstance.setProcessVersion(flwProcess.getProcessVersion());
+ stateProcessExtInstanceService.save(stateProcessExtInstance);
+ }
+ return true;
+ }
+
+ /**
+ * 启动流程
+ * @param processStartBO
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Boolean startApplet(ProcessStartBO processStartBO) {
+ String userId = "1";
+ String nickName = "admin";
+ FlowCreator creator = FlowCreator.of(userId, nickName);
+ //查询流程绑定
+ StateProcessModule stateProcessModule = stateProcessModuleService.getOne(Wrappers.<StateProcessModule>lambdaQuery()
+ .eq(StateProcessModule::getCategory, processStartBO.getCategory()));
+ if (ObjectUtil.isNull(stateProcessModule) || ObjectUtil.isEmpty(stateProcessModule.getTemplateId())) {
+ throw new GlobalException("请先配置流程引擎模版!");
+ }
+ //查询模版,准备启动
+ StateProcessTemplate template = this.getById(stateProcessModule.getTemplateId());
+ StateProcessTemplate lastTemplate = this.getOne(Wrappers.<StateProcessTemplate>lambdaQuery()
+ .eq(StateProcessTemplate::getTemplateKey, template.getTemplateKey())
+ .apply("(template_key, template_version) in(" +
+ "SELECT template_key, MAX(template_version) " +
+ "FROM state_process_template " +
+ "GROUP BY template_key)")
+ );
+
+ if (ObjectUtil.isNull(lastTemplate)) {
+ throw new GlobalException(StateErrorCode.PROCESS_TEMPLATE_NOT_EXISTS.getValue());
+ }
+ FlwProcess flwProcess = flowLongEngine.processService().getProcessById(lastTemplate.getWorkFlowId());
+ if (ObjectUtil.isNull(flwProcess)) {
+ throw new GlobalException(StateErrorCode.PROCESS_NOT_DEPLOY.getValue());
+ }
+ if (!Objects.equals(lastTemplate.getWorkflowVersion(), flwProcess.getProcessVersion())) {
+ throw new GlobalException(StateErrorCode.PROCESS_VERSION_ERROR.getValue());
+ }
+ //监听器参数补全
+ processStartBO.getVariable().put("category", processStartBO.getCategory());
+ // 开启流程
+ Optional<FlwInstance> flwInstanceOptional = flowLongEngine.startInstanceById(flwProcess.getId(), creator, processStartBO.getVariable());
+ if(flwInstanceOptional.isPresent()){
+ FlwInstance instance = flwInstanceOptional.get();
+ //存储任务中心信息
+ StateTaskCenter stateTaskCenter = new StateTaskCenter();
+ stateTaskCenter.setId(IdUtils.simpleUUID());
+ stateTaskCenter.setName(processStartBO.getName());
+ stateTaskCenter.setModuleName(processStartBO.getModuleName());
+ stateTaskCenter.setCategory(processStartBO.getCategory());
+ stateTaskCenter.setFlowId(instance.getId().toString());
+ stateTaskCenter.setRemark(processStartBO.getRemark());
+ stateTaskCenter.setCreateBy(nickName);
+ stateTaskCenter.setVariable(JSONUtil.toJsonStr(processStartBO.getVariable()));
+ stateTaskCenter.setProjectId(JSONObject.parseObject(JSONUtil.toJsonStr(processStartBO.getVariable())).getString("projectId"));
stateTaskCenterService.save(stateTaskCenter);
// action记录
@@ -352,6 +444,164 @@
//转换类
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);
+
+ 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;
+ }
+ /**
+ * 待办
+ * @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(Objects.isNull(processTaskListBO.getSortBy())){
+ processTaskListBO.setSortBy(2);
+ }
+ if (processTaskListBO.getSortBy() == 1) {
+ stateTaskQuery.orderByAsc(BaseModel::getCreateTime);
+ }
+ if (processTaskListBO.getSortBy() == 2) {
+ stateTaskQuery.orderByDesc(BaseModel::getCreateTime);
+ }
+ // 查询合同信息
+ List<TContract> tContracts = contractMapper.selectList(Wrappers.<TContract>lambdaQuery()
+ .in(TContract::getStatus, 2,3,4,9));
+ List<String> contractIds = tContracts.stream().map(TContract::getId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(contractIds)){
+ return new PageInfo<>();
+ }
+ stateTaskQuery.in(StateTaskCenter::getProjectId, contractIds);
+ 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 = contractMapper.selectById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
+ processTaskListVO.setContract(contract);
+ }
+
pageInfo.setRecords(processTaskListVOS);
List<String> updateUserId = processTaskListVOS.stream().map(ProcessTaskListVO::getCreateBy).collect(Collectors.toList());
@@ -417,6 +667,122 @@
new PageInfo<>();
}
+ 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);
+ processTaskListBO.setInstanceIds(instanceIds);
+ PageInfo<ProcessTaskListVO> processTaskListVOS = stateTaskCenterService.pageList(processTaskListBO);
+
+ if (ObjectUtil.isEmpty(processTaskListVOS)) {
+ return new 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.getRecords().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.getRecords()) {
+ 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 processTaskListVOS;
+ }
+ @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());
//分页查询任务中心任务
@@ -433,12 +799,39 @@
if (ObjectUtil.isEmpty(instanceId)) {
return new PageInfo<>();
}
+ if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
+ stateTaskQuery.between(StateTaskCenter::getCreateTime, startTime, endTime);
+ }
+ if(Objects.isNull(processTaskListBO.getSortBy())){
+ processTaskListBO.setSortBy(2);
+ }
+ if (processTaskListBO.getSortBy() == 1) {
+ stateTaskQuery.orderByAsc(BaseModel::getCreateTime);
+ }
+ if (processTaskListBO.getSortBy() == 2) {
+ stateTaskQuery.orderByDesc(BaseModel::getCreateTime);
+ }
+ // 查询合同信息
+ List<TContract> tContracts = contractMapper.selectList(Wrappers.<TContract>lambdaQuery()
+ .in(TContract::getStatus, 2,3,4,9));
+ List<String> contractIds = tContracts.stream().map(TContract::getId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(contractIds)){
+ return new PageInfo<>();
+ }
+ stateTaskQuery.in(StateTaskCenter::getProjectId, contractIds);
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);
if (ObjectUtil.isEmpty(processTaskListVOS)) {
@@ -603,15 +996,21 @@
if (ObjectUtil.isNull(flwTask)) {
throw new GlobalException("任务已处理或者不存在");
}
- flowLongEngine.executeTask(taskId, currentFlowCreator());
- // 动作执行记录
StateProcessInstanceAction stateProcessInstanceAction = new StateProcessInstanceAction();
+ if(Objects.nonNull(processAgreeBO.getUserId())){
+ flowLongEngine.executeTask(taskId, currentFlowCreator(processAgreeBO.getUserId()));
+ stateProcessInstanceAction.setAuditorId(String.valueOf(processAgreeBO.getUserId()));
+ }else {
+ stateProcessInstanceAction.setAuditorId(String.valueOf(SecurityUtils.getUserId()));
+ flowLongEngine.executeTask(taskId, currentFlowCreator());
+ }
+ // 动作执行记录
stateProcessInstanceAction.setId(IdUtils.simpleUUID());
stateProcessInstanceAction.setInstanceId(flwTask.getInstanceId().toString());
- stateProcessInstanceAction.setAuditorId(String.valueOf(SecurityUtils.getUserId()));
stateProcessInstanceAction.setActionType(StateProcessActionEnum.APPROVED.getValue());
stateProcessInstanceAction.setNodeId(processAgreeBO.getTaskId());
stateProcessInstanceAction.setRemark(processAgreeBO.getRemark());
+ stateProcessInstanceAction.setPictures(processAgreeBO.getPictures());
stateProcessInstanceActionService.save(stateProcessInstanceAction);
}
@@ -621,6 +1020,7 @@
FlwTask flwTask = flwTaskMapper.selectById(taskId);
// 直接拒绝当前流程
flowLongEngine.runtimeService().reject(flwTask.getInstanceId(), currentFlowCreator());
+ flwTaskMapper.deleteById(taskId);
// 动作执行记录
StateProcessInstanceAction record = new StateProcessInstanceAction();
record.setId(IdUtils.simpleUUID());
@@ -629,7 +1029,379 @@
record.setActionType(StateProcessActionEnum.REJECTED.getValue());
record.setNodeId(processRefuseBO.getTaskId());
record.setRemark(processRefuseBO.getRemark());
+ record.setPictures(processRefuseBO.getPictures());
stateProcessInstanceActionService.save(record);
+ }
+ @Override
+ public void revoke(Long instanceId) {
+ FlowCreator flowCreator = FlowCreator.of(String.valueOf(SecurityUtils.getUserId()), SecurityUtils.getLoginUser().getUser().getNickName());
+ flowLongEngine.runtimeService().revoke(instanceId, flowCreator);
+ }
+
+ @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());
+ 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());
+// }
+// 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 = flwTasks.stream().collect(Collectors.groupingBy(FlwTask::getInstanceId));
+
+ for (ProcessTaskListVO processTaskListVO : processTaskListVOS.getRecords()) {
+ 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 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;
+ Long instanceId;
+ if(Objects.nonNull(flwTask)){
+ instanceId = flwTask.getInstanceId();
+ // 查询合同信息
+ contract = contractMapper.selectById(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 = contractMapper.selectById(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.setInstanceId(String.valueOf(instanceId));
+ processDetailVO.setFlwHisTasks(flwHisTasks);
+
+ List<StateProcessInstanceAction> list = stateProcessInstanceActionService.list(Wrappers.<StateProcessInstanceAction>lambdaQuery().eq(StateProcessInstanceAction::getInstanceId, instanceId)
+ .orderByAsc(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(Objects.isNull(processTaskListBO.getSortBy())){
+ processTaskListBO.setSortBy(2);
+ }
+ if (processTaskListBO.getSortBy() == 1) {
+ stateTaskQuery.orderByAsc(FlwHisTask::getCreateTime);
+ }
+ if (processTaskListBO.getSortBy() == 2) {
+ stateTaskQuery.orderByDesc(FlwHisTask::getCreateTime);
+ }
+ List<TContract> tContracts = contractMapper.selectList(Wrappers.<TContract>lambdaQuery()
+ .in(TContract::getStatus, 2,3,4,9));
+ List<String> contractIds = tContracts.stream().map(TContract::getId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(contractIds)){
+ return new PageInfo<>();
+ }
+ List<StateTaskCenter> list = stateTaskCenterService.list(Wrappers.<StateTaskCenter>lambdaQuery().in(StateTaskCenter::getProjectId, contractIds));
+ if(!CollectionUtils.isEmpty(list)){
+ List<String> flowIds = list.stream().map(StateTaskCenter::getFlowId).collect(Collectors.toList());
+ stateTaskQuery.in(FlwHisTask::getInstanceId, flowIds);
+ }
+ 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 = contractMapper.selectById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
+ processTaskListVO.setContract(contract);
+ }
+
+ 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) {
+ processTaskListVO.setStatus(processTaskListVO.getTaskState() == 10 ? "2" : processTaskListVO.getTaskState().toString());
+ processTaskListVO.setTaskId(processTaskListVO.getId());
+ SysUser sysUser = sysUserMap.get(processTaskListVO.getCreateBy());
+ if (Objects.nonNull(sysUser)) {
+ processTaskListVO.setCreateBy(sysUser.getNickName());
+ }
+ }
+ pageInfo.setRecords(processTaskListVOS);
+ return pageInfo;
}
private FlowCreator currentFlowCreator() {
@@ -639,5 +1411,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