feat: 标准通用导入体系支持路径模式匹配体系和部门

This commit is contained in:
2024-07-03 10:34:38 +08:00
parent c4d6872394
commit 2e5bf23510
5 changed files with 330 additions and 234 deletions
@@ -10,8 +10,7 @@ import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
import java.util.*;
/**
* <p>
@@ -164,4 +163,35 @@ public class SysDepart implements Serializable {
delFlag, createBy, createTime, updateBy, updateTime,
company, headOfDepartment, leadersInCharge, deputyLeader);
}
public static Map<String, String> buildPaths(List<SysDepart> departments) {
Map<String, String> paths = new HashMap<>();
Map<String, SysDepart> departmentMap = new HashMap<>();
// Store departments in a map by ID for quick lookup
for (SysDepart dept : departments) {
departmentMap.put(dept.getId(), dept);
}
// Build path for each department
for (SysDepart dept : departments) {
String path = buildPath(dept, departmentMap);
paths.put(path, dept.getId());
}
return paths;
}
private static String buildPath(SysDepart dept, Map<String, SysDepart> departmentMap) {
if (dept.getParentId() == null || dept.getParentId().isEmpty()) {
return dept.getDepartName(); // Return just this department's name if no parent
} else {
SysDepart parent = departmentMap.get(dept.getParentId());
if (parent == null) {
return dept.getDepartName(); // Parent does not exist in the map
} else {
return buildPath(parent, departmentMap) + "/" + dept.getDepartName();
}
}
}
}