Java根据组织表中的id parent_id生成org_path的实现流程
1. 整体流程
为了实现根据组织表中的id和parent_id生成org_path,我们可以按照以下步骤进行操作:
步骤 | 操作 |
---|---|
1 | 获取组织表中的所有数据 |
2 | 创建一个HashMap用于存储每个组织id对应的结果 |
3 | 遍历组织表中的每个组织记录 |
4 | 对于每个组织记录,检查它是否有父组织 |
5 | 如果有父组织,将父组织的org_path与当前组织的id拼接 |
6 | 如果没有父组织,当前组织的org_path即为自身id |
7 | 将当前组织的org_path存入HashMap |
8 | 遍历完成后,HashMap中存储了每个组织id对应的org_path |
2. 代码实现
下面是按照上述流程实现的Java代码,包含了每一步需要做的操作和相应的注释:
import java.util.HashMap;
import java.util.List;
public class OrgPathGenerator {
// 定义一个方法生成org_path
public void generateOrgPath(List<Org> orgList) {
// 步骤1:获取组织表中的所有数据
// orgList 是组织表中的数据,每个Org对象包含id和parent_id等字段
// 步骤2:创建一个HashMap用于存储每个组织id对应的结果
HashMap<Integer, String> orgPathMap = new HashMap<>();
// 步骤3:遍历组织表中的每个组织记录
for (Org org : orgList) {
// 步骤4:检查当前组织是否有父组织
if (org.getParentId() != null) {
// 步骤5:将父组织的org_path与当前组织的id拼接
String parentOrgPath = orgPathMap.get(org.getParentId());
String orgPath = parentOrgPath + "/" + org.getId();
orgPathMap.put(org.getId(), orgPath);
} else {
// 步骤6:没有父组织,当前组织的org_path即为自身id
orgPathMap.put(org.getId(), String.valueOf(org.getId()));
}
}
// 步骤8:遍历完成后,HashMap中存储了每个组织id对应的org_path
for (Integer orgId : orgPathMap.keySet()) {
System.out.println("组织id:" + orgId + ",org_path:" + orgPathMap.get(orgId));
}
}
// 测试代码
public static void main(String[] args) {
// 假设组织表中有以下数据
List<Org> orgList = getOrgListFromDatabase();
OrgPathGenerator generator = new OrgPathGenerator();
generator.generateOrgPath(orgList);
}
// 模拟从数据库中获取组织表数据
private static List<Org> getOrgListFromDatabase() {
// 省略数据库操作,直接返回模拟数据
// 假设组织表中有以下数据
Org org1 = new Org(1, null);
Org org2 = new Org(2, 1);
Org org3 = new Org(3, 1);
Org org4 = new Org(4, 2);
Org org5 = new Org(5, 2);
return List.of(org1, org2, org3, org4, org5);
}
}
class Org {
private Integer id;
private Integer parentId;
public Org(Integer id, Integer parentId) {
this.id = id;
this.parentId = parentId;
}
public Integer getId() {
return id;
}
public Integer getParentId() {
return parentId;
}
}
通过上述代码实现,可以根据组织表中的id和parent_id生成对应的org_path。请根据具体的业务需求和数据结构进行适当的调整和扩展。
标签:java,parent,组织,表中,Org,org,path,id From: https://blog.51cto.com/u_16175478/6719719