Java 分级码树 改为 父节点树

举例:

 

实体代码:(这里因业务需求,树结构信息用的虚字段,实际可以改为实字段)

@Entity
@Data
@Table(name = "jsbom")
public class JsbomEntity {
    /**
     * 主键ID
     */
    @Id
    @Column(name = "id")
    private String id;

    
/** * 层级结构虚字段(分级码,层级,明细) */ @Transient private String jsbomFjm; @Transient private String jsbomJS; @Transient private String jsbomMx; /** * 树层级虚字段 */ @Transient private String jsbomPid; }

 

举例分级码树的分级码为四位分级码:例如0001,00010001,00010002

分级码树 改为 父节点树:

    /// <summary>
    /// 改成父节点树
    /// </summary>
    public void changePidTree(List<JsbomEntity> bomList){
        for (int i = 0; i < bomList.size(); i++){
            JsbomEntity dr1 =bomList.get(i);
            String fjm = dr1.getJsbomFjm();
            if(fjm.length() > 4){
                String pfjm = fjm.substring(0,fjm.length()-4);
                List<JsbomEntity> arr = bomList.stream().filter(s->s.getJsbomFjm().equals(pfjm)).collect(Collectors.toList());
                if(arr.size() > 0){
                    dr1.setJsbomPid(arr.get(0).getId());
                }
            }
        }
    }

 

posted @ 2021-11-26 11:03  土豆核  阅读(132)  评论(0编辑  收藏  举报