feat: 抄送添加摘要

This commit is contained in:
LesanOuO 2025-01-25 10:41:27 +08:00
parent 0ef8467546
commit f409a67d2f
4 changed files with 26 additions and 2 deletions

View File

@ -9,7 +9,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.cc.BpmProcessInstanceCopyRespVO;
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageReqVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceCopyDO;
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils;
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceCopyService;
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
@ -42,6 +45,8 @@ public class BpmProcessInstanceCopyController {
private BpmProcessInstanceCopyService processInstanceCopyService;
@Resource
private BpmProcessInstanceService processInstanceService;
@Resource
private BpmProcessDefinitionService processDefinitionService;
@Resource
private AdminUserApi adminUserApi;
@ -62,6 +67,8 @@ public class BpmProcessInstanceCopyController {
convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessInstanceId));
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertListByFlatMap(pageResult.getList(),
copy -> Stream.of(copy.getStartUserId(), Long.parseLong(copy.getCreator()))));
Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap(
convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessDefinitionId));
return success(convertPage(pageResult, copy -> {
BpmProcessInstanceCopyRespVO copyVO = BeanUtils.toBean(copy, BpmProcessInstanceCopyRespVO.class);
MapUtils.findAndThen(userMap, Long.valueOf(copy.getCreator()),
@ -69,7 +76,12 @@ public class BpmProcessInstanceCopyController {
MapUtils.findAndThen(userMap, copy.getStartUserId(),
user -> copyVO.setCreateUser(BeanUtils.toBean(user, UserSimpleBaseVO.class)));
MapUtils.findAndThen(processInstanceMap, copyVO.getProcessInstanceId(),
processInstance -> copyVO.setProcessInstanceStartTime(DateUtils.of(processInstance.getStartTime())));
processInstance -> {
copyVO.setSummary(FlowableUtils.getSummary(
processDefinitionInfoMap.get(processInstance.getProcessDefinitionId()),
processInstance.getProcessVariables()));
copyVO.setProcessInstanceStartTime(DateUtils.of(processInstance.getStartTime()));
});
return copyVO;
}));
}

View File

@ -1,10 +1,12 @@
package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.cc;
import cn.iocoder.yudao.framework.common.core.KeyValue;
import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - 流程实例抄送的分页 Item Response VO")
@Data
@ -40,4 +42,7 @@ public class BpmProcessInstanceCopyRespVO {
@Schema(description = "抄送时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
@Schema(description = "流程摘要", example = "[]")
private List<KeyValue<String, String>> summary;
}

View File

@ -49,6 +49,12 @@ public class BpmProcessInstanceCopyDO extends BaseDO {
* 关联 ProcessInstance id 属性
*/
private String processInstanceId;
/**
* 流程实例的流程定义编号
*
* 关联 ProcessInstance processDefinitionId 属性
*/
private String processDefinitionId;
/**
* 流程分类
*

View File

@ -77,7 +77,8 @@ public class BpmProcessInstanceCopyServiceImpl implements BpmProcessInstanceCopy
.setUserId(userId).setReason(reason).setStartUserId(Long.valueOf(processInstance.getStartUserId()))
.setProcessInstanceId(processInstanceId).setProcessInstanceName(processInstance.getName())
.setCategory(processDefinition.getCategory()).setTaskId(taskId)
.setActivityId(activityId).setActivityName(activityName));
.setActivityId(activityId).setActivityName(activityName)
.setProcessDefinitionId(processInstance.getProcessDefinitionId()));
processInstanceCopyMapper.insertBatch(copyList);
}