fix(mes): 修正安灯迁移的配置角色显示和记录只读字段

This commit is contained in:
YunaiV
2026-05-26 00:08:46 +08:00
parent a4b485562f
commit c39865e90d
5 changed files with 100 additions and 3 deletions
@@ -11,6 +11,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.config.MesProAn
import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.config.MesProAndonConfigSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.andon.MesProAndonConfigDO;
import cn.iocoder.yudao.module.mes.service.pro.andon.MesProAndonConfigService;
import cn.iocoder.yudao.module.system.api.permission.RoleApi;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleRespDTO;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import io.swagger.v3.oas.annotations.Operation;
@@ -40,6 +42,8 @@ public class MesProAndonConfigController {
@Resource
private AdminUserApi adminUserApi;
@Resource
private RoleApi roleApi;
@PostMapping("/create")
@Operation(summary = "创建安灯呼叫配置")
@@ -102,10 +106,15 @@ public class MesProAndonConfigController {
// 1. 批量获取关联数据
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
convertSet(list, MesProAndonConfigDO::getHandlerUserId));
Map<Long, RoleRespDTO> roleMap = roleApi.getRoleMap(
convertSet(list, MesProAndonConfigDO::getHandlerRoleId));
// 2. 拼接 VO
return BeanUtils.toBean(list, MesProAndonConfigRespVO.class, vo ->
MapUtils.findAndThen(userMap, vo.getHandlerUserId(),
user -> vo.setHandlerUserNickname(user.getNickname())));
return BeanUtils.toBean(list, MesProAndonConfigRespVO.class, vo -> {
MapUtils.findAndThen(userMap, vo.getHandlerUserId(),
user -> vo.setHandlerUserNickname(user.getNickname()));
MapUtils.findAndThen(roleMap, vo.getHandlerRoleId(),
role -> vo.setHandlerRoleName(role.getName()));
});
}
}
@@ -21,6 +21,9 @@ public class MesProAndonConfigRespVO {
@Schema(description = "处置人角色编号", example = "10")
private Long handlerRoleId;
@Schema(description = "处置人角色名称", example = "生产经理")
private String handlerRoleName;
@Schema(description = "处置人编号", example = "100")
private Long handlerUserId;
@@ -1,6 +1,11 @@
package cn.iocoder.yudao.module.system.api.permission;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleRespDTO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 角色 API 接口
@@ -18,4 +23,31 @@ public interface RoleApi {
*/
void validRoleList(Collection<Long> ids);
/**
* 获得角色信息
*
* @param id 角色编号
* @return 角色信息
*/
RoleRespDTO getRole(Long id);
/**
* 获得角色信息数组
*
* @param ids 角色编号数组
* @return 角色信息数组
*/
List<RoleRespDTO> getRoleList(Collection<Long> ids);
/**
* 获得指定编号的角色 Map
*
* @param ids 角色编号数组
* @return 角色 Map
*/
default Map<Long, RoleRespDTO> getRoleMap(Collection<Long> ids) {
List<RoleRespDTO> list = getRoleList(ids);
return CollectionUtils.convertMap(list, RoleRespDTO::getId);
}
}
@@ -1,10 +1,14 @@
package cn.iocoder.yudao.module.system.api.permission;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleRespDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import java.util.Collection;
import java.util.List;
/**
* 角色 API 实现类
@@ -21,4 +25,16 @@ public class RoleApiImpl implements RoleApi {
public void validRoleList(Collection<Long> ids) {
roleService.validateRoleList(ids);
}
@Override
public RoleRespDTO getRole(Long id) {
RoleDO role = roleService.getRole(id);
return BeanUtils.toBean(role, RoleRespDTO.class);
}
@Override
public List<RoleRespDTO> getRoleList(Collection<Long> ids) {
List<RoleDO> list = roleService.getRoleList(ids);
return BeanUtils.toBean(list, RoleRespDTO.class);
}
}
@@ -0,0 +1,37 @@
package cn.iocoder.yudao.module.system.api.permission.dto;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import lombok.Data;
/**
* 角色 Response DTO
*
* @author 芋道源码
*/
@Data
public class RoleRespDTO {
/**
* 角色编号
*/
private Long id;
/**
* 角色名称
*/
private String name;
/**
* 角色编码
*/
private String code;
/**
* 显示顺序
*/
private Integer sort;
/**
* 角色状态
*
* 枚举 {@link CommonStatusEnum}
*/
private Integer status;
}