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()); } } } }