考核指标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,用于构建指标树结构。

数据解析方法

可以使用递归方法来解析生成数据。具体实现步骤如下:

  1. 创建一个方法,传入指标列表和父级指标id,返回一个IndicatorsVO类型的列表。
  2. 在方法内部先创建一个空的IndicatorsVO列表,并遍历指标列表,找到父级id等于传入的id的指标。
  3. 对于找到的指标,创建一个IndicatorsVO对象,并将指标的各个属性赋值给IndicatorsVO对象。
  4. 如果该指标有子指标,递归调用方法,传入子指标列表和该指标的id,将返回的子指标列表设置为IndicatorsVO对象的children属性。
  5. 将IndicatorsVO对象加入到IndicatorsVO列表中,最后返回该列表。
  6. 在调用方法时,传入指标列表和父级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。

考核指标VO及数据解析方法

原文地址: https://www.cveoy.top/t/topic/oDGV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录