dept_full_name

This commit is contained in:
sxu 2025-03-31 13:44:08 +08:00
parent ff815314ca
commit 2e1dba94ed
1 changed files with 27 additions and 11 deletions

View File

@ -351,11 +351,8 @@ public class SysDeptServiceImpl implements ISysDeptService
String oldAncestors = oldDept.getAncestors(); String oldAncestors = oldDept.getAncestors();
dept.setAncestors(newAncestors); dept.setAncestors(newAncestors);
updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors);
String newDeptFullNames = newParentDept.getDeptFullName() + "/" + dept.getDeptName();
String oldDeptFullNames = oldDept.getDeptFullName();
dept.setDeptFullName(newDeptFullNames);
updateDeptChildrenFullName(dept.getDeptId(), newDeptFullNames, oldDeptFullNames);
} }
updateDeptChildrenFullName(dept, newParentDept);
int result = deptMapper.updateDept(dept); int result = deptMapper.updateDept(dept);
if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
&& !StringUtils.equals("0", dept.getAncestors())) && !StringUtils.equals("0", dept.getAncestors()))
@ -409,15 +406,34 @@ public class SysDeptServiceImpl implements ISysDeptService
} }
} }
public void updateDeptChildrenFullName(Long deptId, String newFullNames, String oldFullNames) public void updateDeptChildrenFullName(SysDept dept, SysDept newParentDept)
{ {
List<SysDept> children = deptMapper.selectChildrenDeptById(deptId); if (Objects.isNull(newParentDept)) {
for (SysDept child : children) dept.setDeptFullName(dept.getDeptName());
{ } else {
child.setDeptFullName(child.getDeptFullName().replaceFirst(oldFullNames, newFullNames)); dept.setDeptFullName(newParentDept.getDeptFullName() + "/" + dept.getDeptName());
} }
if (children.size() > 0) List<SysDept> children = deptMapper.selectChildrenDeptById(dept.getDeptId());
{ List<SysDept> fullDeptList = deptMapper.selectDeptList(new SysDept());
for (SysDept innerDept : fullDeptList) {
if (innerDept.getDeptId().equals(dept.getDeptId())) {
innerDept.setDeptName(dept.getDeptName());
}
}
for (SysDept child : children) {
if (child.getDeptId().equals(dept.getDeptId())) {
child.setDeptName(dept.getDeptName());
}
}
for (SysDept child : children) {
String deptAncestors = child.getAncestors();
deptAncestors = deptAncestors.replaceFirst("0,", "").replaceAll(",", "/");
for (SysDept innerDept : fullDeptList) {
deptAncestors = deptAncestors.replace(String.valueOf(innerDept.getDeptId()), innerDept.getDeptName());
}
child.setDeptFullName(deptAncestors + "/" + child.getDeptName());
}
if (children.size() > 0) {
deptMapper.updateDeptChildrenFullName(children); deptMapper.updateDeptChildrenFullName(children);
} }
} }