1. 升级 3.0.38
补全业务附件表缺失的 api 支持 api 获取附件二进制数据 新增业务附件表状态信息 补全部分存在嵌套结构的 bpm api 缺失数据
This commit is contained in:
@@ -75,12 +75,14 @@ public class BpmTaskApiImpl implements BpmTaskApi {
|
||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
||||
Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap(convertSet(pageResult.getList(), Task::getProcessDefinitionId));
|
||||
|
||||
// 使用转换器构建结果并转换为 DTO
|
||||
// 使用转换器构建完整的 VO 结果,然后转换为 DTO
|
||||
var voPageResult = BpmTaskConvert.INSTANCE.buildTodoTaskPage(pageResult, processInstanceMap, userMap, processDefinitionInfoMap);
|
||||
return success(BeanUtils.toBean(voPageResult.getList(), BpmTaskRespDTO.class));
|
||||
List<BpmTaskRespDTO> result = BpmTaskConvert.INSTANCE.buildTaskRespDTOList(voPageResult.getList());
|
||||
|
||||
return success(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public CommonResult<List<BpmTaskRespDTO>> getTaskDonePage(@Valid BpmTaskPageReqDTO pageReqDTO) {
|
||||
// 转换请求参数
|
||||
BpmTaskPageReqVO pageReqVO = BeanUtils.toBean(pageReqDTO, BpmTaskPageReqVO.class);
|
||||
@@ -96,9 +98,11 @@ public class BpmTaskApiImpl implements BpmTaskApi {
|
||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
||||
Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap(convertSet(pageResult.getList(), HistoricTaskInstance::getProcessDefinitionId));
|
||||
|
||||
// 使用转换器构建结果并转换为 DTO
|
||||
// 使用转换器构建完整的 VO 结果,然后转换为 DTO
|
||||
var voPageResult = BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, null, processDefinitionInfoMap);
|
||||
return success(BeanUtils.toBean(voPageResult.getList(), BpmTaskRespDTO.class));
|
||||
List<BpmTaskRespDTO> result = BpmTaskConvert.INSTANCE.buildTaskRespDTOList(voPageResult.getList());
|
||||
|
||||
return success(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -121,9 +125,11 @@ public class BpmTaskApiImpl implements BpmTaskApi {
|
||||
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(userMap.values(), DeptUtil::getDeptId));
|
||||
Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap(convertSet(pageResult.getList(), HistoricTaskInstance::getProcessDefinitionId));
|
||||
|
||||
// 使用转换器构建结果并转换为 DTO
|
||||
// 使用转换器构建完整的 VO 结果,然后转换为 DTO
|
||||
var voPageResult = BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, deptMap, processDefinitionInfoMap);
|
||||
return success(BeanUtils.toBean(voPageResult.getList(), BpmTaskRespDTO.class));
|
||||
List<BpmTaskRespDTO> result = BpmTaskConvert.INSTANCE.buildTaskRespDTOList(voPageResult.getList());
|
||||
|
||||
return success(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -152,9 +158,9 @@ public class BpmTaskApiImpl implements BpmTaskApi {
|
||||
}
|
||||
}));
|
||||
|
||||
// 使用转换器构建结果并转换为 DTO
|
||||
// 使用转换器构建完整的 VO 结果,然后转换为 DTO
|
||||
var voList = BpmTaskConvert.INSTANCE.buildTaskListByProcessInstanceId(taskList, formMap, userMap, deptMap);
|
||||
List<BpmTaskRespDTO> result = BeanUtils.toBean(voList, BpmTaskRespDTO.class);
|
||||
List<BpmTaskRespDTO> result = BpmTaskConvert.INSTANCE.buildTaskRespDTOList(voList);
|
||||
|
||||
return success(result);
|
||||
}
|
||||
@@ -187,9 +193,9 @@ public class BpmTaskApiImpl implements BpmTaskApi {
|
||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSetByFlatMap(taskList, user -> Stream.of(NumberUtils.parseLong(user.getAssignee()), NumberUtils.parseLong(user.getOwner()))));
|
||||
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(userMap.values(), DeptUtil::getDeptId));
|
||||
|
||||
// 使用转换器构建结果并转换为 DTO
|
||||
// 使用转换器构建完整的 VO 结果,然后转换为 DTO
|
||||
var voList = BpmTaskConvert.INSTANCE.buildTaskListByParentTaskId(taskList, userMap, deptMap);
|
||||
List<BpmTaskRespDTO> result = BeanUtils.toBean(voList, BpmTaskRespDTO.class);
|
||||
List<BpmTaskRespDTO> result = BpmTaskConvert.INSTANCE.buildTaskRespDTOList(voList);
|
||||
|
||||
return success(result);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.zt.plat.framework.common.util.collection.CollectionUtils;
|
||||
import com.zt.plat.framework.common.util.date.DateUtils;
|
||||
import com.zt.plat.framework.common.util.number.NumberUtils;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO;
|
||||
import com.zt.plat.module.bpm.api.task.dto.UserSimpleDTO;
|
||||
import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
|
||||
import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
|
||||
import com.zt.plat.module.bpm.dal.dataobject.definition.BpmFormDO;
|
||||
@@ -230,4 +232,85 @@ public interface BpmTaskConvert {
|
||||
childTask.setTenantId(parentTask.getTenantId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 BpmTaskRespVO 转换为 BpmTaskRespDTO,保持完整的嵌套结构
|
||||
*/
|
||||
default List<BpmTaskRespDTO> buildTaskRespDTOList(List<BpmTaskRespVO> voList) {
|
||||
return CollectionUtils.convertList(voList, this::buildTaskRespDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 BpmTaskRespVO 转换为 BpmTaskRespDTO,保持完整的嵌套结构
|
||||
*/
|
||||
default BpmTaskRespDTO buildTaskRespDTO(BpmTaskRespVO vo) {
|
||||
if (vo == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
BpmTaskRespDTO dto = BeanUtils.toBean(vo, BpmTaskRespDTO.class);
|
||||
|
||||
// 转换用户信息
|
||||
if (vo.getAssigneeUser() != null) {
|
||||
dto.setAssigneeUser(convertToUserSimpleDTO(vo.getAssigneeUser()));
|
||||
}
|
||||
if (vo.getOwnerUser() != null) {
|
||||
dto.setOwnerUser(convertToUserSimpleDTO(vo.getOwnerUser()));
|
||||
}
|
||||
|
||||
// 转换流程实例信息
|
||||
if (vo.getProcessInstance() != null) {
|
||||
BpmTaskRespDTO.ProcessInstanceDTO processInstanceDTO = new BpmTaskRespDTO.ProcessInstanceDTO();
|
||||
processInstanceDTO.setId(vo.getProcessInstance().getId());
|
||||
processInstanceDTO.setName(vo.getProcessInstance().getName());
|
||||
processInstanceDTO.setCreateTime(vo.getProcessInstance().getCreateTime());
|
||||
processInstanceDTO.setProcessDefinitionId(vo.getProcessInstance().getProcessDefinitionId());
|
||||
processInstanceDTO.setSummary(vo.getProcessInstance().getSummary());
|
||||
|
||||
if (vo.getProcessInstance().getStartUser() != null) {
|
||||
processInstanceDTO.setStartUser(convertToUserSimpleDTO(vo.getProcessInstance().getStartUser()));
|
||||
}
|
||||
dto.setProcessInstance(processInstanceDTO);
|
||||
}
|
||||
|
||||
// 转换操作按钮设置
|
||||
if (vo.getButtonsSetting() != null) {
|
||||
Map<Integer, BpmTaskRespDTO.OperationButtonSettingDTO> buttonsSettingDTO = vo.getButtonsSetting().entrySet()
|
||||
.stream()
|
||||
.collect(java.util.stream.Collectors.toMap(
|
||||
Map.Entry::getKey,
|
||||
entry -> {
|
||||
BpmTaskRespDTO.OperationButtonSettingDTO settingDTO = new BpmTaskRespDTO.OperationButtonSettingDTO();
|
||||
settingDTO.setDisplayName(entry.getValue().getDisplayName());
|
||||
settingDTO.setEnable(entry.getValue().getEnable());
|
||||
return settingDTO;
|
||||
}
|
||||
));
|
||||
dto.setButtonsSetting(buttonsSettingDTO);
|
||||
}
|
||||
|
||||
// 递归转换子任务
|
||||
if (vo.getChildren() != null) {
|
||||
dto.setChildren(buildTaskRespDTOList(vo.getChildren()));
|
||||
}
|
||||
|
||||
return dto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 UserSimpleBaseVO 转换为 UserSimpleDTO,确保所有字段都被正确赋值
|
||||
*/
|
||||
default UserSimpleDTO convertToUserSimpleDTO(UserSimpleBaseVO vo) {
|
||||
if (vo == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
UserSimpleDTO dto = new UserSimpleDTO();
|
||||
dto.setId(vo.getId());
|
||||
dto.setNickname(vo.getNickname());
|
||||
dto.setAvatar(vo.getAvatar());
|
||||
dto.setDeptId(vo.getDeptId());
|
||||
dto.setDeptName(vo.getDeptName()); // 确保 deptName 被正确赋值
|
||||
return dto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user