|
@@ -24,6 +24,7 @@ import org.springblade.common.utils.CommonUtil;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Query;
|
|
import org.springblade.core.mp.support.Query;
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
|
+import org.springblade.core.secure.utils.SecureUtil;
|
|
import org.springblade.core.sms.model.SmsResponse;
|
|
import org.springblade.core.sms.model.SmsResponse;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.jackson.JsonUtil;
|
|
import org.springblade.core.tool.jackson.JsonUtil;
|
|
@@ -34,12 +35,15 @@ import org.springblade.flow.core.entity.BladeFlow;
|
|
import org.springblade.flow.core.feign.NewFlowClient;
|
|
import org.springblade.flow.core.feign.NewFlowClient;
|
|
import org.springblade.flow.core.vo.SendPageVO;
|
|
import org.springblade.flow.core.vo.SendPageVO;
|
|
import org.springblade.manager.entity.ContractInfo;
|
|
import org.springblade.manager.entity.ContractInfo;
|
|
|
|
+import org.springblade.manager.entity.ContractRelationJlyz;
|
|
import org.springblade.manager.feign.ContractClient;
|
|
import org.springblade.manager.feign.ContractClient;
|
|
import org.springblade.resource.feign.CommonFileClient;
|
|
import org.springblade.resource.feign.CommonFileClient;
|
|
import org.springblade.resource.feign.NewISmsClient;
|
|
import org.springblade.resource.feign.NewISmsClient;
|
|
import org.springblade.system.entity.DictBiz;
|
|
import org.springblade.system.entity.DictBiz;
|
|
import org.springblade.system.feign.IDictBizClient;
|
|
import org.springblade.system.feign.IDictBizClient;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -53,6 +57,7 @@ import java.time.Duration;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
|
+import java.util.function.Function;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -67,6 +72,8 @@ import java.util.stream.Collectors;
|
|
@Api(value = "任务审核主表", tags = "任务审核主表接口")
|
|
@Api(value = "任务审核主表", tags = "任务审核主表接口")
|
|
public class TaskController extends BladeController {
|
|
public class TaskController extends BladeController {
|
|
|
|
|
|
|
|
+ private final JdbcTemplate jdbcTemplate;
|
|
|
|
+
|
|
private final ITaskService taskService;
|
|
private final ITaskService taskService;
|
|
|
|
|
|
private final ITaskParallelService taskParallelService;
|
|
private final ITaskParallelService taskParallelService;
|
|
@@ -208,14 +215,24 @@ public class TaskController extends BladeController {
|
|
@ApiOperationSupport(order = 9)
|
|
@ApiOperationSupport(order = 9)
|
|
@ApiOperation(value = "获取发起")
|
|
@ApiOperation(value = "获取发起")
|
|
public R<IPage<TaskVO>> queryUserStartFlow(TaskQueryVO queryVO) {
|
|
public R<IPage<TaskVO>> queryUserStartFlow(TaskQueryVO queryVO) {
|
|
|
|
+ //获取所有合同段信息Maps
|
|
|
|
+ Map<Long, ContractInfo> contractInfoMaps = jdbcTemplate.query("select id,contract_type from m_contract_info where is_deleted = 0 and status = 1", new BeanPropertyRowMapper<>(ContractInfo.class)).stream().collect(Collectors.toMap(ContractInfo::getId, Function.identity()));
|
|
//获取发起,只需要查询主表
|
|
//获取发起,只需要查询主表
|
|
//先查询符合条件的流程
|
|
//先查询符合条件的流程
|
|
LambdaQueryWrapper<Task> wrapper = Wrappers.<Task>lambdaQuery().eq(Task::getProjectId, queryVO.getProjectId()).eq(Task::getReportUser, AuthUtil.getUserId().toString());
|
|
LambdaQueryWrapper<Task> wrapper = Wrappers.<Task>lambdaQuery().eq(Task::getProjectId, queryVO.getProjectId()).eq(Task::getReportUser, AuthUtil.getUserId().toString());
|
|
|
|
+
|
|
//设置查询参数
|
|
//设置查询参数
|
|
- this.integrationMethod(wrapper, queryVO);
|
|
|
|
|
|
+ this.integrationMethod(wrapper, queryVO, contractInfoMaps);
|
|
|
|
+
|
|
//获取主流程
|
|
//获取主流程
|
|
List<Task> masterTaskList = this.taskService.list(wrapper);
|
|
List<Task> masterTaskList = this.taskService.list(wrapper);
|
|
if (masterTaskList != null && masterTaskList.size() > 0) {
|
|
if (masterTaskList != null && masterTaskList.size() > 0) {
|
|
|
|
+
|
|
|
|
+ //封装获取主流程下所有相关的审批人相关map
|
|
|
|
+ Map<String, List<TaskParallel>> taskParallelMaps = this.taskParallelService.list(Wrappers.<TaskParallel>lambdaQuery()
|
|
|
|
+ .select(TaskParallel::getProcessInstanceId, TaskParallel::getTaskUserName, TaskParallel::getEVisaStatus, TaskParallel::getStatus, TaskParallel::getInitiative))
|
|
|
|
+ .stream().filter(f -> ObjectUtil.isNotEmpty(f.getProcessInstanceId())).collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
|
|
|
|
+
|
|
//获取集合
|
|
//获取集合
|
|
List<String> processInstanceIds = masterTaskList.stream().map(Task::getProcessInstanceId).distinct().collect(Collectors.toList());
|
|
List<String> processInstanceIds = masterTaskList.stream().map(Task::getProcessInstanceId).distinct().collect(Collectors.toList());
|
|
//设置主表map,方便获取
|
|
//设置主表map,方便获取
|
|
@@ -250,8 +267,10 @@ public class TaskController extends BladeController {
|
|
vo.setTypeValue(new Integer("1").equals(vo.getType()) ? "普通任务" : new Integer("2").equals(vo.getType()) ? "验收任务" : "移交任务");
|
|
vo.setTypeValue(new Integer("1").equals(vo.getType()) ? "普通任务" : new Integer("2").equals(vo.getType()) ? "验收任务" : "移交任务");
|
|
vo.setTaskId(flow.getTaskId());
|
|
vo.setTaskId(flow.getTaskId());
|
|
vo.setTaskStatus(new Integer("1").equals(task.getStatus()) ? "待审批" : new Integer("2").equals(task.getStatus()) ? "已审批" : "已废除", task.getStatus());
|
|
vo.setTaskStatus(new Integer("1").equals(task.getStatus()) ? "待审批" : new Integer("2").equals(task.getStatus()) ? "已审批" : "已废除", task.getStatus());
|
|
|
|
+
|
|
//查询分支流程信息
|
|
//查询分支流程信息
|
|
- List<TaskParallel> linkList = this.taskParallelService.list(Wrappers.<TaskParallel>lambdaQuery().eq(TaskParallel::getProcessInstanceId, task.getProcessInstanceId()));
|
|
|
|
|
|
+ //List<TaskParallel> linkList = this.taskParallelService.list(Wrappers.<TaskParallel>lambdaQuery().eq(TaskParallel::getProcessInstanceId, task.getProcessInstanceId()));
|
|
|
|
+ List<TaskParallel> linkList = taskParallelMaps.get(task.getProcessInstanceId());
|
|
if (linkList != null && !linkList.isEmpty()) {
|
|
if (linkList != null && !linkList.isEmpty()) {
|
|
this.integrationMethod(vo, linkList);
|
|
this.integrationMethod(vo, linkList);
|
|
}
|
|
}
|
|
@@ -393,7 +412,7 @@ public class TaskController extends BladeController {
|
|
@ApiOperationSupport(order = 6)
|
|
@ApiOperationSupport(order = 6)
|
|
@ApiOperation(value = "获取任务类型或任务状态")
|
|
@ApiOperation(value = "获取任务类型或任务状态")
|
|
public R<List<DictBiz>> queryTaskTypeOrStatus(String typeOrStatus) {
|
|
public R<List<DictBiz>> queryTaskTypeOrStatus(String typeOrStatus) {
|
|
- return this.dictBizClient.getList(typeOrStatus, "notRoot");
|
|
|
|
|
|
+ return R.data(jdbcTemplate.query("select dict_key, dict_value from blade_dict_biz where code = '" + typeOrStatus + "' and parent_id > 0 and is_sealed = 0 and is_deleted = 0 order by sort", new BeanPropertyRowMapper<>(DictBiz.class)));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -407,14 +426,17 @@ public class TaskController extends BladeController {
|
|
Map<String, Task> masterTaskMap = new HashMap<>();
|
|
Map<String, Task> masterTaskMap = new HashMap<>();
|
|
Map<String, TaskParallel> parallelMap = new HashMap<>();
|
|
Map<String, TaskParallel> parallelMap = new HashMap<>();
|
|
List<String> parallelProcessInstanceIds = new ArrayList<>();
|
|
List<String> parallelProcessInstanceIds = new ArrayList<>();
|
|
|
|
+
|
|
//统合查询方法
|
|
//统合查询方法
|
|
this.integrationMethod(queryVO, masterTaskMap, parallelMap, parallelProcessInstanceIds, "2,3");
|
|
this.integrationMethod(queryVO, masterTaskMap, parallelMap, parallelProcessInstanceIds, "2,3");
|
|
- if (masterTaskMap.size() == 0 || parallelMap.size() == 0) {
|
|
|
|
|
|
+
|
|
|
|
+ if (masterTaskMap.size() == 0 && parallelMap.size() == 0) {
|
|
return R.data(null);
|
|
return R.data(null);
|
|
}
|
|
}
|
|
|
|
|
|
- //获取已办(基于原生已办)
|
|
|
|
|
|
+ //获取待办(基于原生待办,原生待办是指的系统上报的,不是数字化上传生成的)
|
|
R<Object> rObject = this.newFlowClient.selectDonePage(queryVO.getCurrent(), queryVO.getSize(), queryVO.getOrdType() == null ? 1 : queryVO.getOrdType(), String.join(",", parallelProcessInstanceIds));
|
|
R<Object> rObject = this.newFlowClient.selectDonePage(queryVO.getCurrent(), queryVO.getSize(), queryVO.getOrdType() == null ? 1 : queryVO.getOrdType(), String.join(",", parallelProcessInstanceIds));
|
|
|
|
+
|
|
//处理参数
|
|
//处理参数
|
|
return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap, false);
|
|
return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap, false);
|
|
}
|
|
}
|
|
@@ -450,33 +472,84 @@ public class TaskController extends BladeController {
|
|
@GetMapping("/user-to-do-task-list")
|
|
@GetMapping("/user-to-do-task-list")
|
|
@ApiOperationSupport(order = 3)
|
|
@ApiOperationSupport(order = 3)
|
|
@ApiOperation(value = "获取当前用户待办流程")
|
|
@ApiOperation(value = "获取当前用户待办流程")
|
|
- public R<IPage<TaskVO>> todoUserApprovalTask(TaskQueryVO queryVO) {
|
|
|
|
|
|
+ public R<IPage<TaskVO>> todoUserApprovalTask(TaskQueryVO queryVO) throws IOException {
|
|
//设置获取参数
|
|
//设置获取参数
|
|
Map<String, Task> masterTaskMap = new HashMap<>();
|
|
Map<String, Task> masterTaskMap = new HashMap<>();
|
|
Map<String, TaskParallel> parallelMap = new HashMap<>();
|
|
Map<String, TaskParallel> parallelMap = new HashMap<>();
|
|
List<String> parallelProcessInstanceIds = new ArrayList<>();
|
|
List<String> parallelProcessInstanceIds = new ArrayList<>();
|
|
|
|
+
|
|
//统合查询方法
|
|
//统合查询方法
|
|
this.integrationMethod(queryVO, masterTaskMap, parallelMap, parallelProcessInstanceIds, "1");
|
|
this.integrationMethod(queryVO, masterTaskMap, parallelMap, parallelProcessInstanceIds, "1");
|
|
- if (masterTaskMap.size() == 0 || parallelMap.size() == 0) {
|
|
|
|
|
|
+
|
|
|
|
+ //如果为空直接返回
|
|
|
|
+ if (masterTaskMap.size() == 0 && parallelMap.size() == 0) {
|
|
|
|
+ this.sendsWebSocketCount(null, 2, queryVO);
|
|
return R.data(null);
|
|
return R.data(null);
|
|
}
|
|
}
|
|
- //获取待办(基于原生待办)
|
|
|
|
|
|
+
|
|
|
|
+ //获取待办(基于原生待办,原生待办是指的系统上报的,不是数字化上传生成的)
|
|
R<Object> rObject = this.newFlowClient.selectTodoPage(queryVO.getCurrent(), queryVO.getSize(), queryVO.getOrdType() == null ? 1 : queryVO.getOrdType(), String.join(",", parallelProcessInstanceIds));
|
|
R<Object> rObject = this.newFlowClient.selectTodoPage(queryVO.getCurrent(), queryVO.getSize(), queryVO.getOrdType() == null ? 1 : queryVO.getOrdType(), String.join(",", parallelProcessInstanceIds));
|
|
|
|
+
|
|
//处理参数
|
|
//处理参数
|
|
- return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap, true);
|
|
|
|
|
|
+ R<IPage<TaskVO>> iPageR = this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap, true);
|
|
|
|
+
|
|
|
|
+ //推送
|
|
|
|
+ if (ObjectUtil.isNotEmpty(iPageR.getData()) && ObjectUtil.isNotEmpty(iPageR.getData().getRecords())) {
|
|
|
|
+ this.sendsWebSocketCount(iPageR, 1, queryVO);
|
|
|
|
+ } else {
|
|
|
|
+ this.sendsWebSocketCount(null, 2, queryVO);
|
|
|
|
+ }
|
|
|
|
+ return iPageR;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 推送消息
|
|
|
|
+ *
|
|
|
|
+ * @param iPageR
|
|
|
|
+ * @param type
|
|
|
|
+ * @param queryVO
|
|
|
|
+ * @throws IOException
|
|
|
|
+ */
|
|
|
|
+ @Async
|
|
|
|
+ public void sendsWebSocketCount(R<IPage<TaskVO>> iPageR, int type, TaskQueryVO queryVO) throws IOException {
|
|
|
|
+ if (type == 1) {
|
|
|
|
+ Map<String, String> stringMap = iTaskService.getTaskCount(queryVO.getProjectId(), queryVO.getCurrentContractId(), SecureUtil.getUserId().toString());
|
|
|
|
+ stringMap.put("taskCount", String.valueOf(iPageR.getData().getTotal()));
|
|
|
|
+ long messageCount = Long.parseLong(stringMap.get("messageCount"));
|
|
|
|
+ long taskCount = Long.parseLong(stringMap.get("taskCount"));
|
|
|
|
+ stringMap.put("allCount", String.valueOf(messageCount + taskCount));
|
|
|
|
+ webSocket.sendMessageByUserId(AuthUtil.getUserId().toString(), JSON.toJSONString(stringMap));
|
|
|
|
+ } else if (type == 2) {
|
|
|
|
+ Map<String, String> stringMap = iTaskService.getTaskCount(queryVO.getProjectId(), queryVO.getCurrentContractId(), SecureUtil.getUserId().toString());
|
|
|
|
+ stringMap.put("taskCount", "0");
|
|
|
|
+ long messageCount = Long.parseLong(stringMap.get("messageCount"));
|
|
|
|
+ long taskCount = Long.parseLong(stringMap.get("taskCount"));
|
|
|
|
+ stringMap.put("allCount", String.valueOf(messageCount + taskCount));
|
|
|
|
+ webSocket.sendMessageByUserId(AuthUtil.getUserId().toString(), JSON.toJSONString(stringMap));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 统合查询方法
|
|
* 统合查询方法
|
|
|
|
+ *
|
|
|
|
+ * @param queryVO 入参vo
|
|
|
|
+ * @param masterTaskMap 所有符合条件的任务Map,key=getProcessInstanceId,value=task
|
|
|
|
+ * @param parallelMap
|
|
|
|
+ * @param parallelProcessInstanceIds
|
|
|
|
+ * @param status
|
|
*/
|
|
*/
|
|
private void integrationMethod(TaskQueryVO queryVO, Map<String, Task> masterTaskMap, Map<String, TaskParallel> parallelMap, List<String> parallelProcessInstanceIds, String status) {
|
|
private void integrationMethod(TaskQueryVO queryVO, Map<String, Task> masterTaskMap, Map<String, TaskParallel> parallelMap, List<String> parallelProcessInstanceIds, String status) {
|
|
|
|
+ //获取所有合同段信息Maps
|
|
|
|
+ Map<Long, ContractInfo> contractInfoMaps = jdbcTemplate.query("select id,contract_type from m_contract_info where is_deleted = 0 and status = 1", new BeanPropertyRowMapper<>(ContractInfo.class)).stream().collect(Collectors.toMap(ContractInfo::getId, Function.identity()));
|
|
//先查询符合条件的流程
|
|
//先查询符合条件的流程
|
|
LambdaQueryWrapper<Task> wrapper = Wrappers.<Task>lambdaQuery().eq(Task::getIsDeleted, 0)
|
|
LambdaQueryWrapper<Task> wrapper = Wrappers.<Task>lambdaQuery().eq(Task::getIsDeleted, 0)
|
|
.eq(Task::getProjectId, queryVO.getProjectId()).eq(StringUtils.isNotBlank(queryVO.getBatch()), Task::getBatch, queryVO.getBatch());
|
|
.eq(Task::getProjectId, queryVO.getProjectId()).eq(StringUtils.isNotBlank(queryVO.getBatch()), Task::getBatch, queryVO.getBatch());
|
|
- this.integrationMethod(wrapper, queryVO);
|
|
|
|
|
|
+ //封装wrapper
|
|
|
|
+ this.integrationMethod(wrapper, queryVO, contractInfoMaps);
|
|
|
|
|
|
- //符合条件的集合
|
|
|
|
|
|
+ //符合条件的集合(获取当前查询的任务,还未分页)
|
|
List<Task> masterTaskList = this.taskService.list(wrapper);
|
|
List<Task> masterTaskList = this.taskService.list(wrapper);
|
|
|
|
+
|
|
//根据主表获取附表且当前用户的记录
|
|
//根据主表获取附表且当前用户的记录
|
|
List<String> processInstanceIds = new ArrayList<>();
|
|
List<String> processInstanceIds = new ArrayList<>();
|
|
masterTaskList.forEach(task -> {
|
|
masterTaskList.forEach(task -> {
|
|
@@ -485,7 +558,9 @@ public class TaskController extends BladeController {
|
|
});
|
|
});
|
|
|
|
|
|
if (processInstanceIds.size() > 0) {
|
|
if (processInstanceIds.size() > 0) {
|
|
- List<TaskParallel> parallelTaskList = this.taskParallelService.list(Wrappers.<TaskParallel>lambdaQuery().in(TaskParallel::getProcessInstanceId, processInstanceIds).eq(TaskParallel::getTaskUser, AuthUtil.getUserId().toString()).eq(TaskParallel::getIsDeleted, 0).in(TaskParallel::getStatus, Arrays.asList(status.split(","))));
|
|
|
|
|
|
+ List<TaskParallel> parallelTaskList = this.taskParallelService.list(Wrappers.<TaskParallel>lambdaQuery().in(TaskParallel::getProcessInstanceId, processInstanceIds)
|
|
|
|
+ .eq(TaskParallel::getTaskUser, AuthUtil.getUserId().toString()).eq(TaskParallel::getIsDeleted, 0)
|
|
|
|
+ .in(TaskParallel::getStatus, Arrays.asList(status.split(","))));
|
|
parallelTaskList.forEach(parallel -> {
|
|
parallelTaskList.forEach(parallel -> {
|
|
parallelMap.put(parallel.getParallelProcessInstanceId(), parallel);
|
|
parallelMap.put(parallel.getParallelProcessInstanceId(), parallel);
|
|
parallelProcessInstanceIds.add(parallel.getParallelProcessInstanceId());
|
|
parallelProcessInstanceIds.add(parallel.getParallelProcessInstanceId());
|
|
@@ -493,7 +568,7 @@ public class TaskController extends BladeController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void integrationMethod(LambdaQueryWrapper<Task> wrapper, TaskQueryVO queryVO) {
|
|
|
|
|
|
+ private void integrationMethod(LambdaQueryWrapper<Task> wrapper, TaskQueryVO queryVO, Map<Long, ContractInfo> contractInfoMaps) {
|
|
//任务类型
|
|
//任务类型
|
|
if (StringUtils.isNotEmpty(queryVO.getTaskType())) {
|
|
if (StringUtils.isNotEmpty(queryVO.getTaskType())) {
|
|
wrapper.eq(Task::getType, queryVO.getTaskType());
|
|
wrapper.eq(Task::getType, queryVO.getTaskType());
|
|
@@ -504,7 +579,8 @@ public class TaskController extends BladeController {
|
|
}
|
|
}
|
|
//合同段ID
|
|
//合同段ID
|
|
if (StringUtils.isNotEmpty(queryVO.getContractId())) {
|
|
if (StringUtils.isNotEmpty(queryVO.getContractId())) {
|
|
- ContractInfo contractInfo = contractClient.getContractById(Long.valueOf(queryVO.getContractId()));
|
|
|
|
|
|
+ //ContractInfo contractInfo = contractClient.getContractById(Long.valueOf(queryVO.getContractId()));
|
|
|
|
+ ContractInfo contractInfo = contractInfoMaps.get(Long.valueOf(queryVO.getContractId()));
|
|
if (contractInfo.getContractType() == 2) {
|
|
if (contractInfo.getContractType() == 2) {
|
|
wrapper.eq(Task::getProjectId, queryVO.getProjectId());
|
|
wrapper.eq(Task::getProjectId, queryVO.getProjectId());
|
|
} else {
|
|
} else {
|
|
@@ -539,6 +615,12 @@ public class TaskController extends BladeController {
|
|
List<BladeFlow> result = JSONArray.parseArray(JSONObject.toJSONString(flowIPage.getRecords()), BladeFlow.class);
|
|
List<BladeFlow> result = JSONArray.parseArray(JSONObject.toJSONString(flowIPage.getRecords()), BladeFlow.class);
|
|
|
|
|
|
if (result != null && result.size() > 0) {
|
|
if (result != null && result.size() > 0) {
|
|
|
|
+
|
|
|
|
+ //封装获取主流程下所有相关的审批人相关map
|
|
|
|
+ Map<String, List<TaskParallel>> taskParallelMaps = this.taskParallelService.list(Wrappers.<TaskParallel>lambdaQuery()
|
|
|
|
+ .select(TaskParallel::getProcessInstanceId, TaskParallel::getTaskUserName, TaskParallel::getEVisaStatus, TaskParallel::getStatus, TaskParallel::getInitiative))
|
|
|
|
+ .stream().filter(f -> ObjectUtil.isNotEmpty(f.getProcessInstanceId())).collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
|
|
|
|
+
|
|
//获取相关信息
|
|
//获取相关信息
|
|
result.forEach(flow -> {
|
|
result.forEach(flow -> {
|
|
TaskParallel taskParallel = parallelMap.get(flow.getProcessInstanceId());
|
|
TaskParallel taskParallel = parallelMap.get(flow.getProcessInstanceId());
|
|
@@ -555,7 +637,7 @@ public class TaskController extends BladeController {
|
|
vo.setParallelProcessInstanceId(flow.getProcessInstanceId());
|
|
vo.setParallelProcessInstanceId(flow.getProcessInstanceId());
|
|
vo.setTaskId(flow.getTaskId());
|
|
vo.setTaskId(flow.getTaskId());
|
|
vo.setTaskStatus(new Integer("1").equals(task.getStatus()) ? "待审批" : new Integer("2").equals(task.getStatus()) ? "已审批" : "已废除", task.getStatus());
|
|
vo.setTaskStatus(new Integer("1").equals(task.getStatus()) ? "待审批" : new Integer("2").equals(task.getStatus()) ? "已审批" : "已废除", task.getStatus());
|
|
-// vo.setEVisaContent(taskParallel.getEVisaContent());
|
|
|
|
|
|
+ //vo.setEVisaContent(taskParallel.getEVisaContent());
|
|
if (task.getStatus() == 3) {
|
|
if (task.getStatus() == 3) {
|
|
vo.setEVisaContent("废除成功");
|
|
vo.setEVisaContent("废除成功");
|
|
} else {
|
|
} else {
|
|
@@ -563,7 +645,8 @@ public class TaskController extends BladeController {
|
|
}
|
|
}
|
|
|
|
|
|
//获取主流程下所有相关的审批人
|
|
//获取主流程下所有相关的审批人
|
|
- List<TaskParallel> linkList = this.taskParallelService.list(Wrappers.<TaskParallel>lambdaQuery().eq(TaskParallel::getProcessInstanceId, task.getProcessInstanceId()).eq(TaskParallel::getIsDeleted, 0));
|
|
|
|
|
|
+ //List<TaskParallel> linkList = this.taskParallelService.list(Wrappers.<TaskParallel>lambdaQuery().eq(TaskParallel::getProcessInstanceId, task.getProcessInstanceId()).eq(TaskParallel::getIsDeleted, 0));
|
|
|
|
+ List<TaskParallel> linkList = taskParallelMaps.get(task.getProcessInstanceId());
|
|
if (linkList != null && linkList.size() > 0) {
|
|
if (linkList != null && linkList.size() > 0) {
|
|
this.integrationMethod(vo, linkList);
|
|
this.integrationMethod(vo, linkList);
|
|
}
|
|
}
|
|
@@ -573,24 +656,23 @@ public class TaskController extends BladeController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
-
|
|
|
|
-// //待办的原生方法并没有对数据做分页,所以需要在这里进行手动分页,而已办的原生方法已经做了分页处理
|
|
|
|
-// if(!isToDo){
|
|
|
|
-// //result是一个总的集合,需要手动进行分组分页
|
|
|
|
-// List<List<TaskVO>> groupResult = CommonUtil.getBatchSize(finalResult, query.getSize());
|
|
|
|
-// //获取当前页数据
|
|
|
|
-// List<TaskVO> finalFlowList;
|
|
|
|
-// if(groupResult.size() > 0){
|
|
|
|
-// finalFlowList = groupResult.get(query.getCurrent() - 1);
|
|
|
|
-// } else {
|
|
|
|
-// finalFlowList = new ArrayList<>();
|
|
|
|
-// }
|
|
|
|
-// //最终分页数据
|
|
|
|
-// return this.getIPageR(query, flowIPage, finalFlowList);
|
|
|
|
-// } else {
|
|
|
|
|
|
+ /*//待办的原生方法并没有对数据做分页,所以需要在这里进行手动分页,而已办的原生方法已经做了分页处理
|
|
|
|
+ if(!isToDo){
|
|
|
|
+ //result是一个总的集合,需要手动进行分组分页
|
|
|
|
+ List<List<TaskVO>> groupResult = CommonUtil.getBatchSize(finalResult, query.getSize());
|
|
|
|
+ //获取当前页数据
|
|
|
|
+ List<TaskVO> finalFlowList;
|
|
|
|
+ if(groupResult.size() > 0){
|
|
|
|
+ finalFlowList = groupResult.get(query.getCurrent() - 1);
|
|
|
|
+ } else {
|
|
|
|
+ finalFlowList = new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ //最终分页数据
|
|
|
|
+ return this.getIPageR(query, flowIPage, finalFlowList);
|
|
|
|
+ } else {*/
|
|
//最终分页数据
|
|
//最终分页数据
|
|
return this.getIPageR(query, flowIPage, finalResult);
|
|
return this.getIPageR(query, flowIPage, finalResult);
|
|
-// }
|
|
|
|
|
|
+ //}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return R.data(null);
|
|
return R.data(null);
|