指标数据解析:将 AssessmentIndicator 转换为 IndicatorsVO 列表
指标数据解析:将 AssessmentIndicator 转换为 IndicatorsVO 列表
本文档介绍如何将 AssessmentIndicator 对象列表解析为 IndicatorsVO 对象列表,以用于前端展示指标数据。
示例数据
{id='402880c288ae5f700188b3564a9a00a0', firstName='一级指标1', score=30, lockout=0, parentId='null'}
{id='402880c288ae5f700188b3564a9a20a0', firstName='一级指标1', score=30, lockout=0, parentId='402880c288ae5f700188b3564a9a00a0'}
{id='402880c288ae5f700188b3564a9a0010', firstName='一级指标1', score=30, lockout=0, parentId='null'}
parentId 是父级的 id。
IndicatorsVO 实体类
public class IndicatorsVO {
/**
* 指标名称
*/
@ApiModelProperty(value = "指标名称", dataType = "String")
private String title;
/**
* 指标id
*/
@ApiModelProperty(value = "指标id")
private String dataIndex;
/**
* 指标key
*/
@ApiModelProperty(value = "指标key -id ", dataType = "String")
private String key;
/**
* 指标分值
*/
@ApiModelProperty(value = "指标分值")
private Integer score;
/**
* 指标插入
*/
@ApiModelProperty(value = "指标插入")
private CustomRender customRender;
/**
* 指标子集
*/
@ApiModelProperty(value = "指标子集")
private List<IndicatorsVO> children;
/**
* 指标子集
*/
@ApiModelProperty(value = "居中")
private String align;
@Data
@ApiModel(value = "考核指标插入")
public static class CustomRender{
/**
* 指标插入
*/
@ApiModelProperty(value = "指标插入")
private String customRender;
}
}
解析生成方法
public static List<IndicatorsVO> parseIndicators(List<AssessmentIndicator> indicators) {
List<IndicatorsVO> result = new ArrayList<>();
for (AssessmentIndicator indicator : indicators) {
IndicatorsVO vo = new IndicatorsVO();
vo.setTitle(indicator.getFirstName());
vo.setDataIndex(indicator.getId());
vo.setKey(indicator.getId());
vo.setScore(indicator.getScore());
vo.setCustomRender(new IndicatorsVO.CustomRender());
vo.getCustomRender().setCustomRender(indicator.getFirstName());
List<AssessmentIndicator> children = getChildren(indicators, indicator.getId());
if (!CollectionUtils.isEmpty(children)) {
vo.setChildren(parseIndicators(children));
}
result.add(vo);
}
return result;
}
private static List<AssessmentIndicator> getChildren(List<AssessmentIndicator> indicators, String parentId) {
List<AssessmentIndicator> children = new ArrayList<>();
for (AssessmentIndicator indicator : indicators) {
if (parentId.equals(indicator.getParentId())) {
children.add(indicator);
}
}
return children;
}
方法说明
parseIndicators方法递归遍历 AssessmentIndicator 列表,将每个 AssessmentIndicator 对象转换为 IndicatorsVO 对象,并将其添加到 result 列表中。getChildren方法获取指定父级 id 的所有子节点。
注意
AssessmentIndicator类应包含id,firstName,score,lockout,parentId属性。CollectionUtils类来自 Spring 框架,用于判断集合是否为空。parseIndicators方法使用递归调用,确保所有指标都被解析。
代码示例
// 假设 indicators 是 AssessmentIndicator 对象列表
List<IndicatorsVO> indicatorsVOList = parseIndicators(indicators);
// indicatorsVOList 现在包含所有指标的 IndicatorsVO 对象列表
使用场景
该方法可用于将 AssessmentIndicator 对象列表转换为 IndicatorsVO 对象列表,以便在前端展示指标数据。
其他
您可以根据实际需求修改 IndicatorsVO 类和解析方法。
原文地址: https://www.cveoy.top/t/topic/oDIx 著作权归作者所有。请勿转载和采集!