Commit 86dc3763fc92637a4e1d31e42d16abbeaee507db

Authored by YunaiV
1 parent 623a41d4

【代码评审】Bpm:数据报表

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
... ... @@ -109,24 +109,25 @@ public class BpmProcessInstanceController {
109 109 processDefinitionMap, categoryMap, taskMap, userMap, deptMap, processDefinitionInfoMap));
110 110 }
111 111  
112   - @GetMapping("/report-page")
113   - @Operation(summary = "获得流程实例报表的分页列表", description = "获得流程实例报表的分页列表")
114   - public CommonResult<BpmProcessInstanceReportPageRespVO> getProcessInstanceReportPage(
115   - @Valid BpmProcessInstanceReportPageReqVO pageReqVO) {
116   - PageResult<HistoricProcessInstance> pageResult = processInstanceService.getProcessInstanceReportPage(pageReqVO);
117   - if (CollUtil.isEmpty(pageResult.getList())) {
118   - return success(new BpmProcessInstanceReportPageRespVO().setPageResult(PageResult.empty(pageResult.getTotal())));
119   - }
120   -
121   - // 拼接返回
122   - Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
123   - convertSet(pageResult.getList(), processInstance -> NumberUtils.parseLong(processInstance.getStartUserId())));
124   - BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.getProcessDefinitionInfo(
125   - pageReqVO.getProcessDefinitionId()
126   - );
127   - return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceReportPage(pageResult,
128   - userMap, processDefinitionInfo));
129   - }
  112 + // TODO @lesan:貌似少提交了。ps:不确定和 getProcessInstanceManagerPage 接口的差异哈。
  113 +// @GetMapping("/report-page")
  114 +// @Operation(summary = "获得流程实例报表的分页列表", description = "获得流程实例报表的分页列表")
  115 +// public CommonResult<BpmProcessInstanceReportPageRespVO> getProcessInstanceReportPage(
  116 +// @Valid BpmProcessInstanceReportPageReqVO pageReqVO) {
  117 +// PageResult<HistoricProcessInstance> pageResult = processInstanceService.getProcessInstanceReportPage(pageReqVO);
  118 +// if (CollUtil.isEmpty(pageResult.getList())) {
  119 +// return success(new BpmProcessInstanceReportPageRespVO().setPageResult(PageResult.empty(pageResult.getTotal())));
  120 +// }
  121 +//
  122 +// // 拼接返回
  123 +// Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
  124 +// convertSet(pageResult.getList(), processInstance -> NumberUtils.parseLong(processInstance.getStartUserId())));
  125 +// BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.getProcessDefinitionInfo(
  126 +// pageReqVO.getProcessDefinitionId()
  127 +// );
  128 +// return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceReportPage(pageResult,
  129 +// userMap, processDefinitionInfo));
  130 +// }
130 131  
131 132 @PostMapping("/create")
132 133 @Operation(summary = "新建流程实例")
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/FlowableUtils.java
... ... @@ -26,6 +26,7 @@ import org.flowable.task.api.TaskInfo;
26 26  
27 27 import java.util.*;
28 28 import java.util.concurrent.Callable;
  29 +import java.util.stream.Collectors;
29 30  
30 31 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
31 32  
... ... @@ -212,7 +213,8 @@ public class FlowableUtils {
212 213 || !BpmModelFormTypeEnum.NORMAL.getType().equals(processDefinitionInfo.getFormType())) {
213 214 return null;
214 215 }
215   - List<KeyValue<String, String>> summaryList;
  216 +
  217 + // 解析表单配置
216 218 Map<String, BpmFormFieldVO> formFieldsMap = new HashMap<>();
217 219 processDefinitionInfo.getFormFields().forEach(formFieldStr -> {
218 220 BpmFormFieldVO formField = JsonUtils.parseObject(formFieldStr, BpmFormFieldVO.class);
... ... @@ -220,10 +222,11 @@ public class FlowableUtils {
220 222 formFieldsMap.put(formField.getField(), formField);
221 223 }
222 224 });
  225 +
  226 + // 情况一:当自定义了摘要
223 227 if (ObjectUtil.isNotNull(processDefinitionInfo.getSummarySetting())
224 228 && Boolean.TRUE.equals(processDefinitionInfo.getSummarySetting().getEnable())) {
225   - // 情况一:当自定义了摘要
226   - summaryList = convertList(processDefinitionInfo.getSummarySetting().getSummary(), item -> {
  229 + return convertList(processDefinitionInfo.getSummarySetting().getSummary(), item -> {
227 230 BpmFormFieldVO formField = formFieldsMap.get(item);
228 231 if (formField != null) {
229 232 return new KeyValue<String, String>(formField.getTitle(),
... ... @@ -231,15 +234,14 @@ public class FlowableUtils {
231 234 }
232 235 return null;
233 236 });
234   - } else {
235   - // 情况二:默认摘要展示前三个表单字段
236   - summaryList = new ArrayList<>(formFieldsMap.entrySet().stream()
237   - .limit(3)
238   - .map(entry -> new KeyValue<>(entry.getValue().getTitle(),
239   - processVariables.getOrDefault(entry.getValue().getField(), "").toString()))
240   - .toList());
241 237 }
242   - return summaryList;
  238 +
  239 + // 情况二:默认摘要展示前三个表单字段
  240 + return formFieldsMap.entrySet().stream()
  241 + .limit(3)
  242 + .map(entry -> new KeyValue<>(entry.getValue().getTitle(),
  243 + processVariables.getOrDefault(entry.getValue().getField(), "").toString()))
  244 + .collect(Collectors.toList());
243 245 }
244 246  
245 247 // ========== Task 相关的工具方法 ==========
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceService.java
... ... @@ -84,7 +84,7 @@ public interface BpmProcessInstanceService {
84 84 PageResult<HistoricProcessInstance> getProcessInstancePage(Long userId,
85 85 @Valid BpmProcessInstancePageReqVO pageReqVO);
86 86  
87   - PageResult<HistoricProcessInstance> getProcessInstanceReportPage(@Valid BpmProcessInstanceReportPageReqVO pageReqVO);
  87 +// PageResult<HistoricProcessInstance> getProcessInstanceReportPage(@Valid BpmProcessInstanceReportPageReqVO pageReqVO);
88 88  
89 89 // TODO @芋艿:重点在 review 下
90 90 /**
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
... ... @@ -180,43 +180,43 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
180 180 return new PageResult<>(processInstanceList, processInstanceCount);
181 181 }
182 182  
183   - @Override
184   - public PageResult<HistoricProcessInstance> getProcessInstanceReportPage(BpmProcessInstanceReportPageReqVO pageReqVO) {
185   - // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页
186   - HistoricProcessInstanceQuery processInstanceQuery = historyService.createHistoricProcessInstanceQuery()
187   - .includeProcessVariables()
188   - .processInstanceTenantId(FlowableUtils.getTenantId())
189   - .orderByProcessInstanceStartTime().desc();
190   - if (pageReqVO.getStartUserId() != null) {
191   - processInstanceQuery.startedBy(String.valueOf(pageReqVO.getStartUserId()));
192   - }
193   - if (StrUtil.isNotEmpty(pageReqVO.getName())) {
194   - processInstanceQuery.processInstanceNameLike("%" + pageReqVO.getName() + "%");
195   - }
196   - if (StrUtil.isNotEmpty(pageReqVO.getProcessDefinitionKey())) {
197   - processInstanceQuery.processDefinitionKey(pageReqVO.getProcessDefinitionKey());
198   - }
199   - if (pageReqVO.getStatus() != null) {
200   - processInstanceQuery.variableValueEquals(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_STATUS, pageReqVO.getStatus());
201   - }
202   - if (ArrayUtil.isNotEmpty(pageReqVO.getCreateTime())) {
203   - processInstanceQuery.startedAfter(DateUtils.of(pageReqVO.getCreateTime()[0]));
204   - processInstanceQuery.startedBefore(DateUtils.of(pageReqVO.getCreateTime()[1]));
205   - }
206   - if (ArrayUtil.isNotEmpty(pageReqVO.getEndTime())) {
207   - processInstanceQuery.finishedAfter(DateUtils.of(pageReqVO.getEndTime()[0]));
208   - processInstanceQuery.finishedBefore(DateUtils.of(pageReqVO.getEndTime()[1]));
209   - }
210   - // TODO 流程表单数据也要支持查询
211   - // 查询数量
212   - long processInstanceCount = processInstanceQuery.count();
213   - if (processInstanceCount == 0) {
214   - return PageResult.empty(processInstanceCount);
215   - }
216   - // 查询列表
217   - List<HistoricProcessInstance> processInstanceList = processInstanceQuery.listPage(PageUtils.getStart(pageReqVO), pageReqVO.getPageSize());
218   - return new PageResult<>(processInstanceList, processInstanceCount);
219   - }
  183 +// @Override
  184 +// public PageResult<HistoricProcessInstance> getProcessInstanceReportPage(BpmProcessInstanceReportPageReqVO pageReqVO) {
  185 +// // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页
  186 +// HistoricProcessInstanceQuery processInstanceQuery = historyService.createHistoricProcessInstanceQuery()
  187 +// .includeProcessVariables()
  188 +// .processInstanceTenantId(FlowableUtils.getTenantId())
  189 +// .orderByProcessInstanceStartTime().desc();
  190 +// if (pageReqVO.getStartUserId() != null) {
  191 +// processInstanceQuery.startedBy(String.valueOf(pageReqVO.getStartUserId()));
  192 +// }
  193 +// if (StrUtil.isNotEmpty(pageReqVO.getName())) {
  194 +// processInstanceQuery.processInstanceNameLike("%" + pageReqVO.getName() + "%");
  195 +// }
  196 +// if (StrUtil.isNotEmpty(pageReqVO.getProcessDefinitionKey())) {
  197 +// processInstanceQuery.processDefinitionKey(pageReqVO.getProcessDefinitionKey());
  198 +// }
  199 +// if (pageReqVO.getStatus() != null) {
  200 +// processInstanceQuery.variableValueEquals(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_STATUS, pageReqVO.getStatus());
  201 +// }
  202 +// if (ArrayUtil.isNotEmpty(pageReqVO.getCreateTime())) {
  203 +// processInstanceQuery.startedAfter(DateUtils.of(pageReqVO.getCreateTime()[0]));
  204 +// processInstanceQuery.startedBefore(DateUtils.of(pageReqVO.getCreateTime()[1]));
  205 +// }
  206 +// if (ArrayUtil.isNotEmpty(pageReqVO.getEndTime())) {
  207 +// processInstanceQuery.finishedAfter(DateUtils.of(pageReqVO.getEndTime()[0]));
  208 +// processInstanceQuery.finishedBefore(DateUtils.of(pageReqVO.getEndTime()[1]));
  209 +// }
  210 +// // TODO 流程表单数据也要支持查询
  211 +// // 查询数量
  212 +// long processInstanceCount = processInstanceQuery.count();
  213 +// if (processInstanceCount == 0) {
  214 +// return PageResult.empty(processInstanceCount);
  215 +// }
  216 +// // 查询列表
  217 +// List<HistoricProcessInstance> processInstanceList = processInstanceQuery.listPage(PageUtils.getStart(pageReqVO), pageReqVO.getPageSize());
  218 +// return new PageResult<>(processInstanceList, processInstanceCount);
  219 +// }
220 220  
221 221 private Map<String, String> getFormFieldsPermission(BpmnModel bpmnModel,
222 222 String activityId, String taskId) {
... ...