【代码评审】Bpm:数据报表
This commit is contained in:
parent
623a41d48c
commit
86dc3763fc
|
@ -109,24 +109,25 @@ public class BpmProcessInstanceController {
|
||||||
processDefinitionMap, categoryMap, taskMap, userMap, deptMap, processDefinitionInfoMap));
|
processDefinitionMap, categoryMap, taskMap, userMap, deptMap, processDefinitionInfoMap));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/report-page")
|
// TODO @lesan:貌似少提交了。ps:不确定和 getProcessInstanceManagerPage 接口的差异哈。
|
||||||
@Operation(summary = "获得流程实例报表的分页列表", description = "获得流程实例报表的分页列表")
|
// @GetMapping("/report-page")
|
||||||
public CommonResult<BpmProcessInstanceReportPageRespVO> getProcessInstanceReportPage(
|
// @Operation(summary = "获得流程实例报表的分页列表", description = "获得流程实例报表的分页列表")
|
||||||
@Valid BpmProcessInstanceReportPageReqVO pageReqVO) {
|
// public CommonResult<BpmProcessInstanceReportPageRespVO> getProcessInstanceReportPage(
|
||||||
PageResult<HistoricProcessInstance> pageResult = processInstanceService.getProcessInstanceReportPage(pageReqVO);
|
// @Valid BpmProcessInstanceReportPageReqVO pageReqVO) {
|
||||||
if (CollUtil.isEmpty(pageResult.getList())) {
|
// PageResult<HistoricProcessInstance> pageResult = processInstanceService.getProcessInstanceReportPage(pageReqVO);
|
||||||
return success(new BpmProcessInstanceReportPageRespVO().setPageResult(PageResult.empty(pageResult.getTotal())));
|
// if (CollUtil.isEmpty(pageResult.getList())) {
|
||||||
}
|
// return success(new BpmProcessInstanceReportPageRespVO().setPageResult(PageResult.empty(pageResult.getTotal())));
|
||||||
|
// }
|
||||||
// 拼接返回
|
//
|
||||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
// // 拼接返回
|
||||||
convertSet(pageResult.getList(), processInstance -> NumberUtils.parseLong(processInstance.getStartUserId())));
|
// Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
||||||
BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.getProcessDefinitionInfo(
|
// convertSet(pageResult.getList(), processInstance -> NumberUtils.parseLong(processInstance.getStartUserId())));
|
||||||
pageReqVO.getProcessDefinitionId()
|
// BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.getProcessDefinitionInfo(
|
||||||
);
|
// pageReqVO.getProcessDefinitionId()
|
||||||
return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceReportPage(pageResult,
|
// );
|
||||||
userMap, processDefinitionInfo));
|
// return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceReportPage(pageResult,
|
||||||
}
|
// userMap, processDefinitionInfo));
|
||||||
|
// }
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "新建流程实例")
|
@Operation(summary = "新建流程实例")
|
||||||
|
|
|
@ -26,6 +26,7 @@ import org.flowable.task.api.TaskInfo;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||||
|
|
||||||
|
@ -212,7 +213,8 @@ public class FlowableUtils {
|
||||||
|| !BpmModelFormTypeEnum.NORMAL.getType().equals(processDefinitionInfo.getFormType())) {
|
|| !BpmModelFormTypeEnum.NORMAL.getType().equals(processDefinitionInfo.getFormType())) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
List<KeyValue<String, String>> summaryList;
|
|
||||||
|
// 解析表单配置
|
||||||
Map<String, BpmFormFieldVO> formFieldsMap = new HashMap<>();
|
Map<String, BpmFormFieldVO> formFieldsMap = new HashMap<>();
|
||||||
processDefinitionInfo.getFormFields().forEach(formFieldStr -> {
|
processDefinitionInfo.getFormFields().forEach(formFieldStr -> {
|
||||||
BpmFormFieldVO formField = JsonUtils.parseObject(formFieldStr, BpmFormFieldVO.class);
|
BpmFormFieldVO formField = JsonUtils.parseObject(formFieldStr, BpmFormFieldVO.class);
|
||||||
|
@ -220,10 +222,11 @@ public class FlowableUtils {
|
||||||
formFieldsMap.put(formField.getField(), formField);
|
formFieldsMap.put(formField.getField(), formField);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 情况一:当自定义了摘要
|
||||||
if (ObjectUtil.isNotNull(processDefinitionInfo.getSummarySetting())
|
if (ObjectUtil.isNotNull(processDefinitionInfo.getSummarySetting())
|
||||||
&& Boolean.TRUE.equals(processDefinitionInfo.getSummarySetting().getEnable())) {
|
&& Boolean.TRUE.equals(processDefinitionInfo.getSummarySetting().getEnable())) {
|
||||||
// 情况一:当自定义了摘要
|
return convertList(processDefinitionInfo.getSummarySetting().getSummary(), item -> {
|
||||||
summaryList = convertList(processDefinitionInfo.getSummarySetting().getSummary(), item -> {
|
|
||||||
BpmFormFieldVO formField = formFieldsMap.get(item);
|
BpmFormFieldVO formField = formFieldsMap.get(item);
|
||||||
if (formField != null) {
|
if (formField != null) {
|
||||||
return new KeyValue<String, String>(formField.getTitle(),
|
return new KeyValue<String, String>(formField.getTitle(),
|
||||||
|
@ -231,15 +234,14 @@ public class FlowableUtils {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
// 情况二:默认摘要展示前三个表单字段
|
|
||||||
summaryList = new ArrayList<>(formFieldsMap.entrySet().stream()
|
|
||||||
.limit(3)
|
|
||||||
.map(entry -> new KeyValue<>(entry.getValue().getTitle(),
|
|
||||||
processVariables.getOrDefault(entry.getValue().getField(), "").toString()))
|
|
||||||
.toList());
|
|
||||||
}
|
}
|
||||||
return summaryList;
|
|
||||||
|
// 情况二:默认摘要展示前三个表单字段
|
||||||
|
return formFieldsMap.entrySet().stream()
|
||||||
|
.limit(3)
|
||||||
|
.map(entry -> new KeyValue<>(entry.getValue().getTitle(),
|
||||||
|
processVariables.getOrDefault(entry.getValue().getField(), "").toString()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========== Task 相关的工具方法 ==========
|
// ========== Task 相关的工具方法 ==========
|
||||||
|
|
|
@ -84,7 +84,7 @@ public interface BpmProcessInstanceService {
|
||||||
PageResult<HistoricProcessInstance> getProcessInstancePage(Long userId,
|
PageResult<HistoricProcessInstance> getProcessInstancePage(Long userId,
|
||||||
@Valid BpmProcessInstancePageReqVO pageReqVO);
|
@Valid BpmProcessInstancePageReqVO pageReqVO);
|
||||||
|
|
||||||
PageResult<HistoricProcessInstance> getProcessInstanceReportPage(@Valid BpmProcessInstanceReportPageReqVO pageReqVO);
|
// PageResult<HistoricProcessInstance> getProcessInstanceReportPage(@Valid BpmProcessInstanceReportPageReqVO pageReqVO);
|
||||||
|
|
||||||
// TODO @芋艿:重点在 review 下
|
// TODO @芋艿:重点在 review 下
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -180,43 +180,43 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||||
return new PageResult<>(processInstanceList, processInstanceCount);
|
return new PageResult<>(processInstanceList, processInstanceCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
// @Override
|
||||||
public PageResult<HistoricProcessInstance> getProcessInstanceReportPage(BpmProcessInstanceReportPageReqVO pageReqVO) {
|
// public PageResult<HistoricProcessInstance> getProcessInstanceReportPage(BpmProcessInstanceReportPageReqVO pageReqVO) {
|
||||||
// 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页
|
// // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页
|
||||||
HistoricProcessInstanceQuery processInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
// HistoricProcessInstanceQuery processInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
||||||
.includeProcessVariables()
|
// .includeProcessVariables()
|
||||||
.processInstanceTenantId(FlowableUtils.getTenantId())
|
// .processInstanceTenantId(FlowableUtils.getTenantId())
|
||||||
.orderByProcessInstanceStartTime().desc();
|
// .orderByProcessInstanceStartTime().desc();
|
||||||
if (pageReqVO.getStartUserId() != null) {
|
// if (pageReqVO.getStartUserId() != null) {
|
||||||
processInstanceQuery.startedBy(String.valueOf(pageReqVO.getStartUserId()));
|
// processInstanceQuery.startedBy(String.valueOf(pageReqVO.getStartUserId()));
|
||||||
}
|
// }
|
||||||
if (StrUtil.isNotEmpty(pageReqVO.getName())) {
|
// if (StrUtil.isNotEmpty(pageReqVO.getName())) {
|
||||||
processInstanceQuery.processInstanceNameLike("%" + pageReqVO.getName() + "%");
|
// processInstanceQuery.processInstanceNameLike("%" + pageReqVO.getName() + "%");
|
||||||
}
|
// }
|
||||||
if (StrUtil.isNotEmpty(pageReqVO.getProcessDefinitionKey())) {
|
// if (StrUtil.isNotEmpty(pageReqVO.getProcessDefinitionKey())) {
|
||||||
processInstanceQuery.processDefinitionKey(pageReqVO.getProcessDefinitionKey());
|
// processInstanceQuery.processDefinitionKey(pageReqVO.getProcessDefinitionKey());
|
||||||
}
|
// }
|
||||||
if (pageReqVO.getStatus() != null) {
|
// if (pageReqVO.getStatus() != null) {
|
||||||
processInstanceQuery.variableValueEquals(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_STATUS, pageReqVO.getStatus());
|
// processInstanceQuery.variableValueEquals(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_STATUS, pageReqVO.getStatus());
|
||||||
}
|
// }
|
||||||
if (ArrayUtil.isNotEmpty(pageReqVO.getCreateTime())) {
|
// if (ArrayUtil.isNotEmpty(pageReqVO.getCreateTime())) {
|
||||||
processInstanceQuery.startedAfter(DateUtils.of(pageReqVO.getCreateTime()[0]));
|
// processInstanceQuery.startedAfter(DateUtils.of(pageReqVO.getCreateTime()[0]));
|
||||||
processInstanceQuery.startedBefore(DateUtils.of(pageReqVO.getCreateTime()[1]));
|
// processInstanceQuery.startedBefore(DateUtils.of(pageReqVO.getCreateTime()[1]));
|
||||||
}
|
// }
|
||||||
if (ArrayUtil.isNotEmpty(pageReqVO.getEndTime())) {
|
// if (ArrayUtil.isNotEmpty(pageReqVO.getEndTime())) {
|
||||||
processInstanceQuery.finishedAfter(DateUtils.of(pageReqVO.getEndTime()[0]));
|
// processInstanceQuery.finishedAfter(DateUtils.of(pageReqVO.getEndTime()[0]));
|
||||||
processInstanceQuery.finishedBefore(DateUtils.of(pageReqVO.getEndTime()[1]));
|
// processInstanceQuery.finishedBefore(DateUtils.of(pageReqVO.getEndTime()[1]));
|
||||||
}
|
// }
|
||||||
// TODO 流程表单数据也要支持查询
|
// // TODO 流程表单数据也要支持查询
|
||||||
// 查询数量
|
// // 查询数量
|
||||||
long processInstanceCount = processInstanceQuery.count();
|
// long processInstanceCount = processInstanceQuery.count();
|
||||||
if (processInstanceCount == 0) {
|
// if (processInstanceCount == 0) {
|
||||||
return PageResult.empty(processInstanceCount);
|
// return PageResult.empty(processInstanceCount);
|
||||||
}
|
// }
|
||||||
// 查询列表
|
// // 查询列表
|
||||||
List<HistoricProcessInstance> processInstanceList = processInstanceQuery.listPage(PageUtils.getStart(pageReqVO), pageReqVO.getPageSize());
|
// List<HistoricProcessInstance> processInstanceList = processInstanceQuery.listPage(PageUtils.getStart(pageReqVO), pageReqVO.getPageSize());
|
||||||
return new PageResult<>(processInstanceList, processInstanceCount);
|
// return new PageResult<>(processInstanceList, processInstanceCount);
|
||||||
}
|
// }
|
||||||
|
|
||||||
private Map<String, String> getFormFieldsPermission(BpmnModel bpmnModel,
|
private Map<String, String> getFormFieldsPermission(BpmnModel bpmnModel,
|
||||||
String activityId, String taskId) {
|
String activityId, String taskId) {
|
||||||
|
|
Loading…
Reference in New Issue