Commit b5ba500b60ff32bbfe6f1f7ab32bf45721605d27
1 parent
8f4543a2
feat: BPM-更多设置-摘要设置
Showing
11 changed files
with
130 additions
and
14 deletions
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmFormFieldVO.java
0 → 100644
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelMetaInfoVO.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.core.KeyValue; | |
| 3 | 4 | import cn.iocoder.yudao.framework.common.validation.InEnum; |
| 4 | 5 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmAutoApproveTypeEnum; |
| 5 | 6 | import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum; |
| ... | ... | @@ -77,6 +78,9 @@ public class BpmModelMetaInfoVO { |
| 77 | 78 | @Schema(description = "标题设置", example = "{}") |
| 78 | 79 | private TitleSetting titleSetting; |
| 79 | 80 | |
| 81 | + @Schema(description = "摘要设置", example = "{}") | |
| 82 | + private SummarySetting summarySetting; | |
| 83 | + | |
| 80 | 84 | @Schema(description = "流程 ID 规则") |
| 81 | 85 | @Data |
| 82 | 86 | @Valid |
| ... | ... | @@ -115,4 +119,18 @@ public class BpmModelMetaInfoVO { |
| 115 | 119 | |
| 116 | 120 | } |
| 117 | 121 | |
| 122 | + @Schema(description = "摘要设置") | |
| 123 | + @Data | |
| 124 | + @Valid | |
| 125 | + public static class SummarySetting { | |
| 126 | + | |
| 127 | + @Schema(description = "是否自定义", example = "false") | |
| 128 | + @NotNull(message = "是否自定义不能为空") | |
| 129 | + private Boolean enable; | |
| 130 | + | |
| 131 | + @Schema(description = "摘要字段数组", example = "[]") | |
| 132 | + private List<String> summary; | |
| 133 | + | |
| 134 | + } | |
| 135 | + | |
| 118 | 136 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
| ... | ... | @@ -74,8 +74,10 @@ public class BpmProcessInstanceController { |
| 74 | 74 | convertSet(pageResult.getList(), HistoricProcessInstance::getProcessDefinitionId)); |
| 75 | 75 | Map<String, BpmCategoryDO> categoryMap = categoryService.getCategoryMap( |
| 76 | 76 | convertSet(processDefinitionMap.values(), ProcessDefinition::getCategory)); |
| 77 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap( | |
| 78 | + convertSet(pageResult.getList(), HistoricProcessInstance::getProcessDefinitionId)); | |
| 77 | 79 | return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePage(pageResult, |
| 78 | - processDefinitionMap, categoryMap, taskMap, null, null)); | |
| 80 | + processDefinitionMap, categoryMap, taskMap, null, null, processDefinitionInfoMap)); | |
| 79 | 81 | } |
| 80 | 82 | |
| 81 | 83 | @GetMapping("/manager-page") |
| ... | ... | @@ -101,8 +103,10 @@ public class BpmProcessInstanceController { |
| 101 | 103 | convertSet(pageResult.getList(), processInstance -> NumberUtils.parseLong(processInstance.getStartUserId()))); |
| 102 | 104 | Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap( |
| 103 | 105 | convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); |
| 106 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap( | |
| 107 | + convertSet(pageResult.getList(), HistoricProcessInstance::getProcessDefinitionId)); | |
| 104 | 108 | return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePage(pageResult, |
| 105 | - processDefinitionMap, categoryMap, taskMap, userMap, deptMap)); | |
| 109 | + processDefinitionMap, categoryMap, taskMap, userMap, deptMap, processDefinitionInfoMap)); | |
| 106 | 110 | } |
| 107 | 111 | |
| 108 | 112 | @PostMapping("/create") | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java
| ... | ... | @@ -7,7 +7,9 @@ import cn.iocoder.yudao.framework.common.util.number.NumberUtils; |
| 7 | 7 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; |
| 8 | 8 | import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert; |
| 9 | 9 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; |
| 10 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; | |
| 10 | 11 | import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; |
| 12 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; | |
| 11 | 13 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; |
| 12 | 14 | import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; |
| 13 | 15 | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| ... | ... | @@ -50,6 +52,8 @@ public class BpmTaskController { |
| 50 | 52 | private BpmProcessInstanceService processInstanceService; |
| 51 | 53 | @Resource |
| 52 | 54 | private BpmFormService formService; |
| 55 | + @Resource | |
| 56 | + private BpmProcessDefinitionService processDefinitionService; | |
| 53 | 57 | |
| 54 | 58 | @Resource |
| 55 | 59 | private AdminUserApi adminUserApi; |
| ... | ... | @@ -70,7 +74,9 @@ public class BpmTaskController { |
| 70 | 74 | convertSet(pageResult.getList(), Task::getProcessInstanceId)); |
| 71 | 75 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap( |
| 72 | 76 | convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()))); |
| 73 | - return success(BpmTaskConvert.INSTANCE.buildTodoTaskPage(pageResult, processInstanceMap, userMap)); | |
| 77 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap( | |
| 78 | + convertSet(pageResult.getList(), Task::getProcessDefinitionId)); | |
| 79 | + return success(BpmTaskConvert.INSTANCE.buildTodoTaskPage(pageResult, processInstanceMap, userMap, processDefinitionInfoMap)); | |
| 74 | 80 | } |
| 75 | 81 | |
| 76 | 82 | @GetMapping("done-page") |
| ... | ... | @@ -87,7 +93,9 @@ public class BpmTaskController { |
| 87 | 93 | convertSet(pageResult.getList(), HistoricTaskInstance::getProcessInstanceId)); |
| 88 | 94 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap( |
| 89 | 95 | convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()))); |
| 90 | - return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, null)); | |
| 96 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap( | |
| 97 | + convertSet(pageResult.getList(), HistoricTaskInstance::getProcessDefinitionId)); | |
| 98 | + return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, null, processDefinitionInfoMap)); | |
| 91 | 99 | } |
| 92 | 100 | |
| 93 | 101 | @GetMapping("manager-page") |
| ... | ... | @@ -108,7 +116,9 @@ public class BpmTaskController { |
| 108 | 116 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds); |
| 109 | 117 | Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap( |
| 110 | 118 | convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); |
| 111 | - return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, deptMap)); | |
| 119 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap( | |
| 120 | + convertSet(pageResult.getList(), HistoricTaskInstance::getProcessDefinitionId)); | |
| 121 | + return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, deptMap, processDefinitionInfoMap)); | |
| 112 | 122 | } |
| 113 | 123 | |
| 114 | 124 | @GetMapping("/list-by-process-instance-id") | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.core.KeyValue; | |
| 3 | 4 | import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO; |
| 4 | 5 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; |
| 5 | 6 | import io.swagger.v3.oas.annotations.media.Schema; |
| ... | ... | @@ -59,6 +60,8 @@ public class BpmProcessInstanceRespVO { |
| 59 | 60 | */ |
| 60 | 61 | private List<Task> tasks; // 仅在流程实例分页才返回 |
| 61 | 62 | |
| 63 | + private List<KeyValue<String, String>> summary; | |
| 64 | + | |
| 62 | 65 | @Schema(description = "流程任务") |
| 63 | 66 | @Data |
| 64 | 67 | public static class Task { | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.core.KeyValue; | |
| 3 | 4 | import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO; |
| 4 | 5 | import com.fasterxml.jackson.annotation.JsonIgnore; |
| 5 | 6 | import io.swagger.v3.oas.annotations.media.Schema; |
| ... | ... | @@ -84,6 +85,9 @@ public class BpmTaskRespVO { |
| 84 | 85 | @Schema(description = "是否填写审批意见", example = "false") |
| 85 | 86 | private Boolean reasonRequire; |
| 86 | 87 | |
| 88 | + @Schema(description = "摘要", example = "[]") | |
| 89 | + private List<KeyValue<String, String>> summary; | |
| 90 | + | |
| 87 | 91 | @Data |
| 88 | 92 | @Schema(description = "流程实例") |
| 89 | 93 | public static class ProcessInstance { | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmProcessInstanceConvert.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.convert.task; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.util.StrUtil; |
| 5 | +import cn.iocoder.yudao.framework.common.core.KeyValue; | |
| 5 | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 7 | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; |
| 7 | 8 | import cn.iocoder.yudao.framework.common.util.collection.SetUtils; |
| ... | ... | @@ -58,7 +59,8 @@ public interface BpmProcessInstanceConvert { |
| 58 | 59 | Map<String, BpmCategoryDO> categoryMap, |
| 59 | 60 | Map<String, List<Task>> taskMap, |
| 60 | 61 | Map<Long, AdminUserRespDTO> userMap, |
| 61 | - Map<Long, DeptRespDTO> deptMap) { | |
| 62 | + Map<Long, DeptRespDTO> deptMap, | |
| 63 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap) { | |
| 62 | 64 | PageResult<BpmProcessInstanceRespVO> vpPageResult = BeanUtils.toBean(pageResult, BpmProcessInstanceRespVO.class); |
| 63 | 65 | for (int i = 0; i < pageResult.getList().size(); i++) { |
| 64 | 66 | BpmProcessInstanceRespVO respVO = vpPageResult.getList().get(i); |
| ... | ... | @@ -76,6 +78,9 @@ public interface BpmProcessInstanceConvert { |
| 76 | 78 | MapUtils.findAndThen(deptMap, startUser.getDeptId(), dept -> respVO.getStartUser().setDeptName(dept.getName())); |
| 77 | 79 | } |
| 78 | 80 | } |
| 81 | + // 摘要 | |
| 82 | + respVO.setSummary(FlowableUtils.getSummary(processDefinitionInfoMap.get(respVO.getProcessDefinitionId()), | |
| 83 | + pageResult.getList().get(i).getProcessVariables())); | |
| 79 | 84 | } |
| 80 | 85 | return vpPageResult; |
| 81 | 86 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.convert.task; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.map.MapUtil; |
| 5 | +import cn.iocoder.yudao.framework.common.core.KeyValue; | |
| 5 | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 7 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 7 | 8 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; |
| ... | ... | @@ -9,6 +10,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 9 | 10 | import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO; |
| 10 | 11 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; |
| 11 | 12 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; |
| 13 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; | |
| 12 | 14 | import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; |
| 13 | 15 | import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils; |
| 14 | 16 | import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; |
| ... | ... | @@ -41,7 +43,8 @@ public interface BpmTaskConvert { |
| 41 | 43 | |
| 42 | 44 | default PageResult<BpmTaskRespVO> buildTodoTaskPage(PageResult<Task> pageResult, |
| 43 | 45 | Map<String, ProcessInstance> processInstanceMap, |
| 44 | - Map<Long, AdminUserRespDTO> userMap) { | |
| 46 | + Map<Long, AdminUserRespDTO> userMap, | |
| 47 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap) { | |
| 45 | 48 | return BeanUtils.toBean(pageResult, BpmTaskRespVO.class, taskVO -> { |
| 46 | 49 | ProcessInstance processInstance = processInstanceMap.get(taskVO.getProcessInstanceId()); |
| 47 | 50 | if (processInstance == null) { |
| ... | ... | @@ -50,13 +53,17 @@ public interface BpmTaskConvert { |
| 50 | 53 | taskVO.setProcessInstance(BeanUtils.toBean(processInstance, BpmTaskRespVO.ProcessInstance.class)); |
| 51 | 54 | AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId())); |
| 52 | 55 | taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUser, UserSimpleBaseVO.class)); |
| 56 | + // 摘要 | |
| 57 | + taskVO.setSummary(FlowableUtils.getSummary(processDefinitionInfoMap.get(processInstance.getProcessDefinitionId()), | |
| 58 | + processInstance.getProcessVariables())); | |
| 53 | 59 | }); |
| 54 | 60 | } |
| 55 | 61 | |
| 56 | 62 | default PageResult<BpmTaskRespVO> buildTaskPage(PageResult<HistoricTaskInstance> pageResult, |
| 57 | 63 | Map<String, HistoricProcessInstance> processInstanceMap, |
| 58 | 64 | Map<Long, AdminUserRespDTO> userMap, |
| 59 | - Map<Long, DeptRespDTO> deptMap) { | |
| 65 | + Map<Long, DeptRespDTO> deptMap, | |
| 66 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap) { | |
| 60 | 67 | List<BpmTaskRespVO> taskVOList = CollectionUtils.convertList(pageResult.getList(), task -> { |
| 61 | 68 | BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class); |
| 62 | 69 | taskVO.setStatus(FlowableUtils.getTaskStatus(task)).setReason(FlowableUtils.getTaskReason(task)); |
| ... | ... | @@ -72,6 +79,9 @@ public interface BpmTaskConvert { |
| 72 | 79 | AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId())); |
| 73 | 80 | taskVO.setProcessInstance(BeanUtils.toBean(processInstance, BpmTaskRespVO.ProcessInstance.class)); |
| 74 | 81 | taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUser, UserSimpleBaseVO.class)); |
| 82 | + // 摘要 | |
| 83 | + taskVO.setSummary(FlowableUtils.getSummary(processDefinitionInfoMap.get(processInstance.getProcessDefinitionId()), | |
| 84 | + processInstance.getProcessVariables())); | |
| 75 | 85 | } |
| 76 | 86 | return taskVO; |
| 77 | 87 | }); | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java
| ... | ... | @@ -176,4 +176,10 @@ public class BpmProcessDefinitionInfoDO extends BaseDO { |
| 176 | 176 | @TableField(typeHandler = JacksonTypeHandler.class) |
| 177 | 177 | private BpmModelMetaInfoVO.TitleSetting titleSetting; |
| 178 | 178 | |
| 179 | + /** | |
| 180 | + * 摘要设置 | |
| 181 | + */ | |
| 182 | + @TableField(typeHandler = JacksonTypeHandler.class) | |
| 183 | + private BpmModelMetaInfoVO.SummarySetting summarySetting; | |
| 184 | + | |
| 179 | 185 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/FlowableUtils.java
| ... | ... | @@ -2,8 +2,13 @@ package cn.iocoder.yudao.module.bpm.framework.flowable.core.util; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.util.ObjectUtil; |
| 4 | 4 | import cn.hutool.extra.spring.SpringUtil; |
| 5 | +import cn.iocoder.yudao.framework.common.core.KeyValue; | |
| 6 | +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | |
| 5 | 7 | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; |
| 6 | 8 | import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; |
| 9 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmFormFieldVO; | |
| 10 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; | |
| 11 | +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum; | |
| 7 | 12 | import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnVariableConstants; |
| 8 | 13 | import lombok.SneakyThrows; |
| 9 | 14 | import org.flowable.common.engine.api.delegate.Expression; |
| ... | ... | @@ -19,10 +24,7 @@ import org.flowable.engine.impl.util.CommandContextUtil; |
| 19 | 24 | import org.flowable.engine.runtime.ProcessInstance; |
| 20 | 25 | import org.flowable.task.api.TaskInfo; |
| 21 | 26 | |
| 22 | -import java.util.HashMap; | |
| 23 | -import java.util.List; | |
| 24 | -import java.util.Map; | |
| 25 | -import java.util.Objects; | |
| 27 | +import java.util.*; | |
| 26 | 28 | import java.util.concurrent.Callable; |
| 27 | 29 | |
| 28 | 30 | /** |
| ... | ... | @@ -277,4 +279,44 @@ public class FlowableUtils { |
| 277 | 279 | return getExpressionValue(variableContainer, expressionString); |
| 278 | 280 | } |
| 279 | 281 | |
| 282 | + public static List<KeyValue<String, String>> getSummary(BpmProcessDefinitionInfoDO processDefinitionInfo, | |
| 283 | + Map<String, Object> processVariables) { | |
| 284 | + if (ObjectUtil.isNotNull(processDefinitionInfo) | |
| 285 | + && BpmModelFormTypeEnum.NORMAL.getType().equals(processDefinitionInfo.getFormType())) { | |
| 286 | + List<KeyValue<String, String>> summaryList = new ArrayList<>(); | |
| 287 | + Map<String, BpmFormFieldVO> formFieldsMap = new HashMap<>(); | |
| 288 | + processDefinitionInfo.getFormFields().forEach(formFieldStr -> { | |
| 289 | + BpmFormFieldVO formField = JsonUtils.parseObject(formFieldStr, BpmFormFieldVO.class); | |
| 290 | + if (formField != null) { | |
| 291 | + formFieldsMap.put(formField.getField(), formField); | |
| 292 | + } | |
| 293 | + }); | |
| 294 | + if (ObjectUtil.isNotNull(processDefinitionInfo.getSummarySetting()) | |
| 295 | + && Boolean.TRUE.equals(processDefinitionInfo.getSummarySetting().getEnable())) { | |
| 296 | + for (String item : processDefinitionInfo.getSummarySetting().getSummary()) { | |
| 297 | + BpmFormFieldVO formField = formFieldsMap.get(item); | |
| 298 | + if (formField != null) { | |
| 299 | + summaryList.add(new KeyValue<>(formField.getTitle(), | |
| 300 | + processVariables.getOrDefault(item, "").toString())); | |
| 301 | + } | |
| 302 | + } | |
| 303 | + } else { | |
| 304 | + // 默认展示前三个 | |
| 305 | + int j = 0; | |
| 306 | + for (Map.Entry<String, BpmFormFieldVO> entry : formFieldsMap.entrySet()) { | |
| 307 | + BpmFormFieldVO formField = entry.getValue(); | |
| 308 | + if (j > 2) { | |
| 309 | + break; | |
| 310 | + } | |
| 311 | + summaryList.add(new KeyValue<>(formField.getTitle(), | |
| 312 | + processVariables.getOrDefault(formField.getField(), "").toString())); | |
| 313 | + j++; | |
| 314 | + } | |
| 315 | + } | |
| 316 | + Collections.reverse(summaryList); | |
| 317 | + return summaryList; | |
| 318 | + } | |
| 319 | + return null; | |
| 320 | + } | |
| 321 | + | |
| 280 | 322 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
| ... | ... | @@ -128,7 +128,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService |
| 128 | 128 | |
| 129 | 129 | @Override |
| 130 | 130 | public List<ProcessInstance> getProcessInstances(Set<String> ids) { |
| 131 | - return runtimeService.createProcessInstanceQuery().processInstanceIds(ids).list(); | |
| 131 | + return runtimeService.createProcessInstanceQuery().processInstanceIds(ids).includeProcessVariables().list(); | |
| 132 | 132 | } |
| 133 | 133 | |
| 134 | 134 | @Override |
| ... | ... | @@ -138,7 +138,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService |
| 138 | 138 | |
| 139 | 139 | @Override |
| 140 | 140 | public List<HistoricProcessInstance> getHistoricProcessInstances(Set<String> ids) { |
| 141 | - return historyService.createHistoricProcessInstanceQuery().processInstanceIds(ids).list(); | |
| 141 | + return historyService.createHistoricProcessInstanceQuery().processInstanceIds(ids).includeProcessVariables().list(); | |
| 142 | 142 | } |
| 143 | 143 | |
| 144 | 144 | @Override | ... | ... |