From 62b6a7fac3f2acde70b578431147c4a01f19c182 Mon Sep 17 00:00:00 2001
From: 黎星凯 <13949086503@163.com>
Date: 星期一, 15 四月 2024 09:07:05 +0800
Subject: [PATCH] bug修改

---
 consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseManagerServiceImpl.java |   61 +++++++++++++++++++++---------
 1 files changed, 42 insertions(+), 19 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseManagerServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseManagerServiceImpl.java
index 601ff84..23c88db 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseManagerServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseManagerServiceImpl.java
@@ -1,21 +1,25 @@
 package com.consum.base.service.impl;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.compress.utils.Sets;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.consum.base.core.utils.IdUtil;
 import com.consum.base.pojo.WarehouseManagerInfo;
 import com.consum.base.pojo.request.WarehouseManagerParam;
 import com.consum.base.service.BaseWarehouseManagerService;
-import com.consum.base.service.FinSysTenantUserServiceImpl;
+import com.consum.base.service.FinSysTenantUserService;
 import com.consum.model.po.BaseWarehouseManager;
 import com.consum.model.po.FinSysTenantUser;
 import com.iplatform.model.po.S_role;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @Description 鐗╁搧鍒嗙被
@@ -26,25 +30,26 @@
 public class BaseWarehouseManagerServiceImpl extends BaseServiceImpl implements BaseWarehouseManagerService {
 
     @Autowired
-    private FinSysTenantUserServiceImpl finSysTenantUserService;
-
+    private FinSysTenantUserService finSysTenantUserService;
 
     /**
+     * @return
      * @Description 鏂板
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/26
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void add(WarehouseManagerParam list) throws Exception {
+    public Set<Long> add(WarehouseManagerParam list) throws Exception {
 
+        Set<Long> sysUserIds = Sets.newHashSet();
         Long warehouseId = list.getWarehouseId();
-
         // 瑙掕壊id
         Long roleId = null;
         List<S_role> roleAll = finSysTenantUserService.getRoleAll();
         if (!CollectionUtils.isEmpty(roleAll)) {
-            S_role sRole = roleAll.stream().filter(item -> item.getRole_name().equals("浠撳簱绠$悊鍛�")).findFirst().orElse(null);
+            S_role sRole =
+                roleAll.stream().filter(item -> "浠撳簱绠$悊鍛�".equals(item.getRole_name())).findFirst().orElse(null);
             if (sRole != null) {
                 roleId = sRole.getRole_id();
             }
@@ -57,7 +62,7 @@
         String deleteRoleSql = "DELETE FROM S_ROLE_USER WHERE USER_ID =:managerId AND role_id =:roleId";
         for (BaseWarehouseManager item : baseWarehouseManagerList) {
             Long managerId = item.getManagerId();
-            FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneById(String.valueOf(managerId));
+            FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneBySysId(String.valueOf(managerId));
             if (finSysTenantUser == null) {
                 throw new Exception("鐢ㄦ埛涓嶅瓨鍦�");
             }
@@ -65,14 +70,16 @@
             params.put("managerId", finSysTenantUser.getSysUserId());
             params.put("roleId", roleId);
             this.execute(deleteRoleSql, params);
+
+            sysUserIds.add(finSysTenantUser.getSysUserId());
         }
 
-        //鍒犻櫎搴撶璁板綍
+        // 鍒犻櫎搴撶璁板綍
         String sql = "delete from base_warehouse_manager where base_warehouse_id =:warehouseId";
         Map<String, Object> params = new HashMap<>();
         params.put("warehouseId", warehouseId);
         this.execute(sql, params);
-        //閲嶆柊淇濆瓨
+        // 閲嶆柊淇濆瓨
         List<WarehouseManagerInfo> warehouseManagerInfoList = list.getWarehouseManagerInfoList();
         if (!CollectionUtils.isEmpty(warehouseManagerInfoList)) {
             for (WarehouseManagerInfo warehouseManagerInfo : warehouseManagerInfoList) {
@@ -85,20 +92,28 @@
                 baseWarehouseManager.setManagerName(managerName);
                 this.insert(baseWarehouseManager);
 
-                FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneById(String.valueOf(managerId));
+                FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneBySysId(String.valueOf(managerId));
                 if (finSysTenantUser == null) {
                     throw new Exception("鐢ㄦ埛涓嶅瓨鍦�");
                 }
                 Long sysUserId = finSysTenantUser.getSysUserId();
+                // 鍏堝垽鏂槸鍚︽嫢鏈夎瑙掕壊
+                String isHasRole =
+                    "select * from s_role_user where org_id=0 and role_id=" + roleId + " and user_id=" + sysUserId;
+                List<Map<String, Object>> isHasRoleList = this.select(isHasRole, new HashMap<>());
+                if (!CollectionUtils.isEmpty(isHasRoleList)) {
+                    continue;
+                }
                 String saveUserRole = "insert into s_role_user(user_id, role_id, org_id) values(:managerId,:roleId,0)";
                 Map<String, Object> userRoleParam = new HashMap<>();
                 userRoleParam.put("managerId", sysUserId);
                 userRoleParam.put("roleId", roleId);
                 this.execute(saveUserRole, userRoleParam);
 
+                sysUserIds.add(finSysTenantUser.getSysUserId());
             }
         }
-
+        return sysUserIds;
     }
 
     @Override
@@ -111,8 +126,9 @@
 
     @Override
     public List<BaseWarehouseManager> selectManagerList(Long warehouseId, Long agencyId) {
-        StringBuilder sql = new StringBuilder("select * from base_warehouse_manager bwm left join base_warehouse bw on bwm.base_warehouse_id = bw.id "
-            + "where 1=1 ");
+        StringBuilder sql = new StringBuilder(
+            "select * from base_warehouse_manager bwm left join base_warehouse bw on bwm.base_warehouse_id = bw.id "
+                + "where 1=1 ");
         Map<String, Object> param = new HashMap<>();
         if (warehouseId != null) {
             param.put("warehouseId", warehouseId);
@@ -126,5 +142,12 @@
         return select;
     }
 
+    @Override
+    public void deleteMangerBySysUserId(Long sysUserId) {
+        String sql = "delete from base_warehouse_manager where MANAGER_ID =:sysUserId";
+        Map<String, Object> params = new HashMap<>();
+        params.put("sysUserId", sysUserId);
+        this.execute(sql, params);
+    }
 
 }

--
Gitblit v1.9.1