From c1a463b9f1c0a7160dbd0ac1c7490eef13861a5e Mon Sep 17 00:00:00 2001
From: huangh <hshgjzd5@163.com>
Date: Tue, 29 Oct 2024 15:02:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/gzdyh_test' into gzdyh_test

---
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java |   82 +++++++++++++++++++++++++++++++----------
 1 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java
index f58e0f7..dcda728 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtDeptService.java
@@ -3,10 +3,13 @@
 import cn.huge.base.common.exception.ServiceException;
 import cn.huge.base.common.utils.DateUtils;
 import cn.huge.base.common.utils.IdUtils;
+import cn.huge.base.common.utils.ReturnFailUtils;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
 import cn.huge.module.constant.BaseConsts;
 import cn.huge.module.ctuser.dao.mapper.CtDeptMapper;
 import cn.huge.module.ctuser.domain.po.CtDept;
+import cn.huge.module.ctuser.domain.po.CtUser;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -41,6 +44,9 @@
 
     @Autowired
     private UtilsClientImpl utilsClient;
+
+    @Autowired
+    private CtUserService ctUserService;
 
     /**
     * 更新对象
@@ -113,26 +119,6 @@
     }
 
     /**
-    * 新增或更新对象
-    * @param ctDept 实体对象
-    */
-    public void saveCtDept(CtDept ctDept){
-        try{
-            Date nowDate = DateUtils.getNowDate();
-            // 判断是否新增
-            if (IdUtils.checkNewId(ctDept.getId())){
-                ctDept.setId(utilsClient.getNewTimeId());
-                ctDept.setCreateTime(nowDate);
-            }
-            ctDept.setUpdateTime(nowDate);
-            this.saveOrUpdate(ctDept);
-        }catch (Exception e){
-            log.error("[CtDeptService.saveCtDept]调用失败,异常信息:"+e, e);
-            throw new ServiceException("CtDeptService.saveCtDept", e);
-        }
-    }
-
-    /**
      * 创建某一级部门下树形结构
      * @param ctDeptList 所有部门集合
      * @param firstId 某一级组织编号
@@ -179,4 +165,60 @@
         }
         childList.add(currentUnit);
     }
+
+    /**
+     * 新增或更新对象部门
+     * @param ctDept 实体对象
+     */
+    public void saveCtDept(CtDept ctDept, String userId){
+        try{
+            // 获取当前登录用户
+            CtUser loginCtUser = ctUserService.getById(userId);
+
+            // 保存新增更新组织
+            ctDept.setCustId(loginCtUser.getCustId());
+
+            Date nowDate = DateUtils.getNowDate();
+            // 判断是否新增
+            if (IdUtils.checkNewId(ctDept.getId())){
+                ctDept.setId(utilsClient.getNewTimeId());
+                ctDept.setCreateTime(nowDate);
+                // 新增上级部门
+                if (StringUtils.isNotEmpty(ctDept.getDeptId())){
+                    // 更新子级部门的父级编号为当前新增部门的编号
+                    CtDept childCtDept = mapper.selectById(ctDept.getDeptId());
+                    childCtDept.setParentId(ctDept.getId());
+                    mapper.updateById(childCtDept);
+                }else{
+                    // 新增下级部门,如果没有指定上级编号,则默认为根级
+                    if (StringUtils.isBlank(ctDept.getParentId())) {
+                        ctDept.setParentId(BaseConsts.ROOT);
+                    }
+                }
+            }
+            ctDept.setUpdateTime(nowDate);
+            ctDept.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+            // 部门下成员
+            QueryWrapper<CtUser> ctUserQueryWrapper = new QueryWrapper<>();
+            ctUserQueryWrapper.eq("dept_id", ctDept.getId());
+            List<CtUser> matchUsers = ctUserService.list(ctUserQueryWrapper);
+            for (CtUser ctUser : matchUsers){
+                ctUser.setDeptId(null);
+                ctUser.setDeptName(null);
+                ctUserService.saveOrUpdate(ctUser);
+            }
+            List<CtUser> ctUsers = ctDept.getMatchUsers();
+            for (CtUser ctUser : ctUsers){
+                CtUser ctUser1 = ctUserService.getById(ctUser.getId());
+                ctUser1.setDeptId(ctDept.getId());
+                ctUser1.setDeptName(ctDept.getName());
+                ctUserService.saveOrUpdate(ctUser1);
+            }
+            this.saveOrUpdate(ctDept);
+        }catch (Exception e){
+            log.error("service方法[CtDeptService.saveCtDept]调用异常:"+e, e);
+            throw new ServiceException("CtDeptService.saveCtDept", e);
+        }
+    }
+
 }

--
Gitblit v1.8.0