feat: 标准通用导入体系支持路径模式匹配体系和部门
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user