Przeglądaj źródła

新建部门时自动获取设置顶级部门 不可再修改部门结构

Reiskuchen 5 lat temu
rodzic
commit
d8cd35dee7

+ 3 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DepartmentController.java

@@ -53,15 +53,13 @@ public class DepartmentController {
     }
 
     /**
-     * 修改部门
+     * 修改部门名称
      * id 部门id
      * name 部门名称
-     * parentId 父级部门id
      */
     @RequestMapping("/edit")
-    public HttpRespMsg updateDepartment(@RequestParam Integer id, @RequestParam String name, Integer parentId,
-                                        HttpServletRequest request) {
-        return departmentService.updateDepartment(id, name, parentId, request);
+    public HttpRespMsg updateDepartment(@RequestParam Integer id, @RequestParam String name, HttpServletRequest request) {
+        return departmentService.updateDepartment(id, name, request);
     }
 
     /**

+ 1 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/DepartmentService.java

@@ -17,8 +17,7 @@ import javax.servlet.http.HttpServletRequest;
 public interface DepartmentService extends IService<Department> {
     HttpRespMsg insertDepartment(String departmentName, Integer superiorId, HttpServletRequest request);
 
-    HttpRespMsg updateDepartment(Integer departmentId, String departmentName, Integer superiorId,
-                                 HttpServletRequest request);
+    HttpRespMsg updateDepartment(Integer departmentId, String departmentName, HttpServletRequest request);
 
     HttpRespMsg deleteDepartment(Integer departmentId, HttpServletRequest request);
 

+ 9 - 25
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -43,14 +43,18 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             if (superiorId == null || departmentMapper.selectCount(new QueryWrapper<Department>()
                     .eq("department_id", superiorId)
                     .eq("company_id", companyId)) == 1) {
-//                String
                 Department department = new Department()
                         .setDepartmentName(departmentName)
                         .setSuperiorId(superiorId)
                         .setCompanyId(companyId);
-                if (departmentMapper.insert(department) == 0) {
-                    httpRespMsg.setError("新增失败");
+                departmentMapper.insert(department);
+                //更新最顶级部门
+                Integer masterId = department.getDepartmentId();
+                while (superiorId != null) {
+                    masterId = superiorId;
+                    superiorId = departmentMapper.selectById(masterId).getSuperiorId();
                 }
+                departmentMapper.updateById(department.setMasterId(masterId));
             } else {
                 httpRespMsg.setError("无所选父级部门");
             }
@@ -61,37 +65,17 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
         return httpRespMsg;
     }
 
-    //对比部门上级id是否被修改过了
-    private boolean compareSuperiorId(Integer id1, Integer id2) {
-        if (id1 == null) {
-            return id2 == null;
-        } else if (id2 == null) {
-            return false;
-        } else {
-            return id1.equals(id2);
-        }
-    }
-
     //更新部门
     @Override
-    public HttpRespMsg updateDepartment(Integer departmentId, String departmentName, Integer superiorId,
-                                        HttpServletRequest request) {
+    public HttpRespMsg updateDepartment(Integer departmentId, String departmentName, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
             Department department = departmentMapper.selectById(departmentId);
             if (!department.getCompanyId().equals(companyId)) {
                 httpRespMsg.setError("不能修改其他公司的部门");
-            } else if (!compareSuperiorId(department.getSuperiorId(), superiorId) && checkBranch(departmentId)) {
-                httpRespMsg.setError("不能在有子级部门时修改父级部门");
-            } else if (superiorId != null && departmentMapper.selectCount(new QueryWrapper<Department>()
-                    .eq("department_id", superiorId)
-                    .eq("company_id", companyId)) == 0) {
-                httpRespMsg.setError("无所选父级部门");
             } else {
-                if (departmentMapper.updateById(department
-                        .setDepartmentName(departmentName)
-                        .setSuperiorId(superiorId)) == 0) {
+                if (departmentMapper.updateById(department.setDepartmentName(departmentName)) == 0) {
                     httpRespMsg.setError("修改失败");
                 }
             }