diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/LoginAnYanServiceImpl.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/LoginAnYanServiceImpl.java index f67a5c0..d083296 100644 --- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/LoginAnYanServiceImpl.java +++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/LoginAnYanServiceImpl.java @@ -335,11 +335,12 @@ public class LoginAnYanServiceImpl implements ILoginAnYanService { depart.setStatus("1"); depart.setDelFlag("0"); depart.setOrgCategory("2"); + //新增时设置为叶子节点 + depart.setIzLeaf(CommonConstant.IS_LEAF); save = sysDepartService.save(depart); } else { save = sysDepartService.update(new LambdaUpdateWrapper() .eq(SysDepart::getId, depart.getId()) - .ne(SysDepart::getDepartName, orgName) .set(SysDepart::getDepartName, orgName) .set(SysDepart::getUpdateTime, new Date()) ); @@ -348,13 +349,23 @@ public class LoginAnYanServiceImpl implements ILoginAnYanService { SysDepart parentDepart = sysDepartService.getOne(new LambdaQueryWrapper() .eq(SysDepart::getId, parentId) ); - // 判断父级组织是否为叶子结点,0不是叶子节点,1是叶子节点,是则更新为非叶子结点 - if (parentDepart != null && parentDepart.getIzLeaf().equals(1)) { + // 判断父级组织是否为叶子节点,0不是叶子节点,1是叶子节点,是则更新为非叶子节点 + if (parentDepart != null && parentDepart.getIzLeaf().equals(CommonConstant.IS_LEAF)) { sysDepartService.update(new LambdaUpdateWrapper() .eq(SysDepart::getId, parentId) .set(SysDepart::getIzLeaf, CommonConstant.NOT_LEAF) ); } + long count = sysDepartService.count(new LambdaQueryWrapper() + .eq(SysDepart::getParentId, depart.getId()) + ); + // 判断当前节点是否存在子集,不存在则设置为叶子节点 + if (count == 0) { + sysDepartService.update(new LambdaUpdateWrapper() + .eq(SysDepart::getId, depart.getId()) + .set(SysDepart::getIzLeaf, CommonConstant.IS_LEAF) + ); + } } // 父id赋值 parentId = depart.getId();