考核指标VO及数据解析方法
考核指标VO及数据解析方法
本文介绍了考核指标VO (TaskProgrammeMetricsVO) 的结构和使用递归方法解析生成数据的方法,并提供了代码示例。
考核指标VO
@Data
@ApiModel(value = '考核指标VO')
public class TaskProgrammeMetricsVO {
private String id;
/**
* 一级指标名称
*/
private String firstName;
/**
* 分数
*/
private Integer score;
/**
* 指标父id
*/
private String parentId;
}
parentId 是父级的id,用于构建指标树结构。
数据解析方法
可以使用递归方法来解析生成数据。具体实现步骤如下:
- 创建一个方法,传入指标列表和父级指标id,返回一个IndicatorsVO类型的列表。
- 在方法内部先创建一个空的IndicatorsVO列表,并遍历指标列表,找到父级id等于传入的id的指标。
- 对于找到的指标,创建一个IndicatorsVO对象,并将指标的各个属性赋值给IndicatorsVO对象。
- 如果该指标有子指标,递归调用方法,传入子指标列表和该指标的id,将返回的子指标列表设置为IndicatorsVO对象的children属性。
- 将IndicatorsVO对象加入到IndicatorsVO列表中,最后返回该列表。
- 在调用方法时,传入指标列表和父级id为空字符串,即可生成完整的IndicatorsVO列表。
示例代码如下:
public List<IndicatorsVO> generateIndicatorsList(List<TaskProgrammeMetricsVO> metricsList, String parentId) {
List<IndicatorsVO> indicatorsList = new ArrayList<>();
for (TaskProgrammeMetricsVO metrics : metricsList) {
if (metrics.getParentId().equals(parentId)) {
IndicatorsVO indicatorsVO = new IndicatorsVO();
// 设置各个属性值
indicatorsVO.setTitle(metrics.getFirstName());
indicatorsVO.setDataIndex(metrics.getId());
indicatorsVO.setKey(metrics.getId());
indicatorsVO.setScore(metrics.getScore());
indicatorsVO.setAlign('center');
if (hasChildren(metricsList, metrics.getId())) {
List<IndicatorsVO> children = generateIndicatorsList(metricsList, metrics.getId());
indicatorsVO.setChildren(children);
}
indicatorsList.add(indicatorsVO);
}
}
return indicatorsList;
}
private boolean hasChildren(List<TaskProgrammeMetricsVO> metricsList, String parentId) {
for (TaskProgrammeMetricsVO metrics : metricsList) {
if (metrics.getParentId().equals(parentId)) {
return true;
}
}
return false;
}
// 调用方法生成完整的IndicatorsVO列表
List<IndicatorsVO> indicatorsList = generateIndicatorsList(metricsList, '');
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;
}
}
总结
本文介绍了考核指标VO的结构和使用递归方法解析生成数据的方法,并提供了代码示例。希望本文能帮助你更好地理解和使用考核指标VO。
原文地址: https://www.cveoy.top/t/topic/oDGV 著作权归作者所有。请勿转载和采集!