From 56dfe0d4bf81262622a1919cceb2b039fd356209 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 03 九月 2024 16:52:49 +0800 Subject: [PATCH] 代码提交 bug解决 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 154 +++++++++------------------------------------------ 1 files changed, 27 insertions(+), 127 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 53c564d..27a225b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -5,10 +5,12 @@ import java.util.List; import java.util.stream.Collectors; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.domain.vo.TreeSelect; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.service.ISysDeptService; +import com.ruoyi.system.service.ISysRoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.core.constant.UserConstants; @@ -28,7 +30,7 @@ * @author ruoyi */ @Service -public class SysDeptServiceImpl implements ISysDeptService +public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> implements ISysDeptService { @Autowired private SysDeptMapper deptMapper; @@ -62,32 +64,23 @@ return buildDeptTreeSelect(depts); } + @Override + public List<SysDept> buildDeptTree(List<SysDept> depts) { + return null; + } + + @Override + public List<TreeSelect> buildDeptTreeSelect(List<SysDept> depts) { + return null; + } + /** * 构建前端所需要树结构 * * @param depts 部门列表 * @return 树结构列表 */ - @Override - public List<SysDept> buildDeptTree(List<SysDept> depts) - { - List<SysDept> returnList = new ArrayList<SysDept>(); - List<Long> tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList()); - for (SysDept dept : depts) - { - // 如果是顶级节点, 遍历该父节点的所有子节点 - if (!tempList.contains(dept.getParentId())) - { - recursionFn(depts, dept); - returnList.add(dept); - } - } - if (returnList.isEmpty()) - { - returnList = depts; - } - return returnList; - } + /** * 构建前端所需要下拉树结构 @@ -95,12 +88,6 @@ * @param depts 部门列表 * @return 下拉树结构列表 */ - @Override - public List<TreeSelect> buildDeptTreeSelect(List<SysDept> depts) - { - List<SysDept> deptTrees = buildDeptTree(depts); - return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); - } /** * 根据角色ID查询部门树信息 @@ -175,7 +162,7 @@ public boolean checkDeptNameUnique(SysDept dept) { Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); - SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); + SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName()); if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) { return UserConstants.NOT_UNIQUE; @@ -203,24 +190,19 @@ } } + @Override + public int insertDept(SysDept dept) { + int i = deptMapper.insertDept(dept); + return i; + } + /** * 新增保存部门信息 * * @param dept 部门信息 * @return 结果 */ - @Override - public int insertDept(SysDept dept) - { - SysDept info = deptMapper.selectDeptById(dept.getParentId()); - // 如果父节点不为正常状态,则不允许新增子节点 - if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) - { - throw new ServiceException("部门停用,不允许新增"); - } - dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); - return deptMapper.insertDept(dept); - } + /** * 修改保存部门信息 @@ -231,56 +213,14 @@ @Override public int updateDept(SysDept dept) { - SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId()); - SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId()); - if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) - { - String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId(); - String oldAncestors = oldDept.getAncestors(); - dept.setAncestors(newAncestors); - updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); - } - int result = deptMapper.updateDept(dept); - if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) - && !StringUtils.equals("0", dept.getAncestors())) - { - // 如果该部门是启用状态,则启用该部门的所有上级部门 - updateParentDeptStatusNormal(dept); - } - return result; + + // 果该部门是启用状态,则启用该部门的所有上级部门 + int i = deptMapper.updateDept(dept); + + return i; } - /** - * 修改该部门的父级部门状态 - * - * @param dept 当前部门 - */ - private void updateParentDeptStatusNormal(SysDept dept) - { - String ancestors = dept.getAncestors(); - Long[] deptIds = Convert.toLongArray(ancestors); - deptMapper.updateDeptStatusNormal(deptIds); - } - /** - * 修改子元素关系 - * - * @param deptId 被修改的部门ID - * @param newAncestors 新的父ID集合 - * @param oldAncestors 旧的父ID集合 - */ - public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) - { - List<SysDept> children = deptMapper.selectChildrenDeptById(deptId); - for (SysDept child : children) - { - child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); - } - if (children.size() > 0) - { - deptMapper.updateDeptChildren(children); - } - } /** * 删除部门管理信息 @@ -294,46 +234,6 @@ return deptMapper.deleteDeptById(deptId); } - /** - * 递归列表 - */ - private void recursionFn(List<SysDept> list, SysDept t) - { - // 得到子节点列表 - List<SysDept> childList = getChildList(list, t); - t.setChildren(childList); - for (SysDept tChild : childList) - { - if (hasChild(list, tChild)) - { - recursionFn(list, tChild); - } - } - } - /** - * 得到子节点列表 - */ - private List<SysDept> getChildList(List<SysDept> list, SysDept t) - { - List<SysDept> tlist = new ArrayList<SysDept>(); - Iterator<SysDept> it = list.iterator(); - while (it.hasNext()) - { - SysDept n = (SysDept) it.next(); - if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) - { - tlist.add(n); - } - } - return tlist; - } - /** - * 判断是否有子节点 - */ - private boolean hasChild(List<SysDept> list, SysDept t) - { - return getChildList(list, t).size() > 0 ? true : false; - } } -- Gitblit v1.7.1