Browse Source

分管领导,分管部门

sangwenwei 1 year ago
parent
commit
ba193d6ec0

+ 6 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/domain/Office.java

@@ -87,6 +87,12 @@ public class Office extends TreeEntity <Office> {
     private String remarks;
 
     /**
+     * 分管领导
+     */
+    private String administrator;
+
+
+    /**
      * 构造函数
      */
     public Office() {

+ 18 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/domain/UserManageOffice.java

@@ -0,0 +1,18 @@
+package com.jeeplus.sys.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 用户管理部门
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("sys_user_manage_office")
+public class UserManageOffice {
+    //用户id
+    private String userId;
+    //部门id
+    private String officeId;
+}

+ 8 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/service/dto/OfficeDTO.java

@@ -111,4 +111,12 @@ public class OfficeDTO extends TreeDTO <OfficeDTO> {
      */
     private boolean typeFlag = false;
 
+    /**
+     * 分管领导
+     */
+    private String administrator;
+
+    //分管领导名称
+    private String adminName;
+
 }

+ 7 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.sys.domain.User;
+import com.jeeplus.sys.domain.UserManageOffice;
 import com.jeeplus.sys.service.dto.CertDTO;
 import com.jeeplus.sys.service.dto.OfficeDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
@@ -262,4 +263,10 @@ public interface UserMapper extends BaseMapper <User> {
     String getMobileById(String id);
 
     UserDTO getByLoginNameNoTen(@Param("loginName") String loginName);
+
+    List<UserManageOffice> getManageOffices(@Param("id") String id);
+
+    void deleteByUserId(@Param("id") String userId);
+
+    void insertUserManageOffice(@Param("userId") String userId,@Param("officeId") String officeId);
 }

+ 3 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml

@@ -67,9 +67,12 @@
                a.del_flag,
                a.useable      AS useable,
                a.tenant_id    AS "tenantDTO.id",
+               a.administrator,
+               su.name as adminName,
                p.name         AS "parent.name"
         FROM sys_office a
                  LEFT JOIN sys_office p ON p.id = a.parent_id
+                 LEFT JOIN sys_user su ON su.id = a.administrator
             ${ew.customSqlSegment}
     </select>
 

+ 15 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -604,4 +604,19 @@ select a.id, a.company_id as "companyDTO.id", a.office_id as "officeDTO.id", a.l
 		where `name` = #{loginName}
     </select>
 
+    <select id="getManageOffices" resultType="com.jeeplus.sys.domain.UserManageOffice">
+        select
+            user_id,
+            office_id
+        from sys_user_manage_office where user_id = #{id}
+    </select>
+    <delete id="deleteByUserId">
+        delete from sys_user_manage_office where user_id = #{id}
+    </delete>
+
+    <insert id="insertUserManageOffice">
+        INSERT INTO sys_user_manage_office(user_id, office_id)
+        VALUES (#{userId}, #{officeId})
+    </insert>
+
 </mapper>

+ 23 - 4
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -18,10 +18,7 @@ import com.jeeplus.common.constant.CacheNames;
 import com.jeeplus.common.constant.CommonConstants;
 import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.common.utils.RequestUtils;
-import com.jeeplus.sys.domain.Cert;
-import com.jeeplus.sys.domain.Office;
-import com.jeeplus.sys.domain.SysConfig;
-import com.jeeplus.sys.domain.User;
+import com.jeeplus.sys.domain.*;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.mapper.OfficeMapper;
 import com.jeeplus.sys.mapper.UserMapper;
@@ -389,6 +386,28 @@ public class UserService extends ServiceImpl <UserMapper, User> {
             //再次将人员信息存入到redis中
             redisUtils.set(CacheNames.USER_CACHE_USER_ALL_INFO,"user:cache:user:all:info",allUserInfo);
         }
+        /**
+         * 更新用户管理部门
+         */
+        if (StringUtils.isNotBlank(user.getManageOfficeIds())){
+            //查询该用户在sys_user_manage_office中是否有数据
+            List<UserManageOffice> userManageOffices=userMapper.getManageOffices(userDTO.getId());
+            if (CollectionUtil.isNotEmpty(userManageOffices)){
+                //将原本的数据进行删除
+                userMapper.deleteByUserId(user.getId());
+            }
+            //将用户管理部门新增进用户管理部门表中
+            if (user.getManageOfficeIds().contains(",")){
+                String[] split = user.getManageOfficeIds().split(",");
+                for (String s : split) {
+                    userMapper.insertUserManageOffice(userDTO.getId(),s);
+                }
+            }else {
+                userMapper.insertUserManageOffice(userDTO.getId(),userDTO.getManageOfficeIds());
+            }
+        }else {
+            userMapper.deleteByUserId(user.getId());
+        }
 
     }