Przeglądaj źródła

员工信息同步调整

sangwenwei 7 miesięcy temu
rodzic
commit
4d59f1fe86

+ 5 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/StaffUserInfoApiFallbackFactory.java

@@ -21,6 +21,11 @@ public class StaffUserInfoApiFallbackFactory implements FallbackFactory<IStaffUs
             public void updateUser(UserInfo userDTO) {
 
             }
+
+            @Override
+            public void deleteUser(UserInfo userDTO) {
+
+            }
         };
     }
 }

+ 5 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/UserApiFallbackFactory.java

@@ -188,6 +188,11 @@ public class UserApiFallbackFactory implements FallbackFactory <IUserApi> {
                 return null;
             }
 
+            @Override
+            public void removeById(String id) {
+
+            }
+
         };
     }
 }

+ 8 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IStaffUserInfoApi.java

@@ -7,6 +7,7 @@ import com.jeeplus.sys.factory.UserApiFallbackFactory;
 import com.jeeplus.sys.service.dto.StaffUserInfoDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -22,5 +23,12 @@ public interface IStaffUserInfoApi {
     void updateUser(@RequestBody UserInfo userDTO);
 
 
+    /**
+     * 删除用户
+     */
+    @GetMapping(value ="/employeeEntry/deleteUser")
+    void deleteUser(@RequestBody UserInfo userDTO);
+
+
 
 }

+ 7 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IUserApi.java

@@ -276,6 +276,13 @@ public interface IUserApi {
      */
     @PostMapping(value = BASE_URL + "/getMangeLeaderByUserId")
     List<UserDTO> getMangeLeaderByUserId(@RequestParam(value = "id")String id);
+
+    /**
+     * 删除用户信息
+     * @param userId
+     */
+    @GetMapping(value = BASE_URL + "/removeById")
+    void removeById(@RequestParam(value = "id")String id);
 }
 
 

+ 8 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/controller/StaffUserInfoController.java

@@ -300,7 +300,14 @@ public class StaffUserInfoController {
         staffUserInfoService.updateUser(userInfoDTO);
     }
 
-
+    /**
+     * 删除用户信息
+     */
+    @ApiOperation(value = "删除用户信息")
+    @PostMapping(value = "/deleteUser")
+    public void deleteUser(@RequestBody StaffUserInfoDTO userInfoDTO) {
+        staffUserInfoService.deleteUser(userInfoDTO);
+    }
 
 
 

+ 6 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffUserInfoMapper.java

@@ -42,4 +42,10 @@ public interface StaffUserInfoMapper extends BaseMapper<StaffUserInfo> {
     //根据用户id查询用户信息
     @InterceptorIgnore(tenantLine = "true")
     StaffUserInfoDTO getByUserId(@Param("userId") String userId);
+    @InterceptorIgnore(tenantLine = "true")
+    void deleteByUserId(@Param("userId")String userId);
+    @InterceptorIgnore(tenantLine = "true")
+    void updateInfoById(StaffUserInfo staffUserInfo);
+    @InterceptorIgnore(tenantLine = "true")
+    void insertInfo(StaffUserInfo staffUserInfo);
 }

+ 63 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffUserInfoMapper.xml

@@ -267,6 +267,69 @@
             id
         from staff_user_info where user_id = #{userId} and del_flag = '0'
     </select>
+    <delete id="deleteByUserId">
+        update staff_user_info set del_flag = '1' where user_id = #{userId}
+    </delete>
+    <update id="updateInfoById">
+        update staff_user_info set
+            create_by_id = #{createById},
+            create_time = #{createTime},
+            update_by_id = #{updateById},
+            update_time = #{updateTime},
+            del_flag = '0',
+            name = #{name},
+            mobile_phone = #{mobilePhone},
+            department = #{department},
+            post_id = #{postId},
+            manager_office = #{managerOffice},
+            role_id = #{roleId},
+            email = #{email},
+            tenant_id = #{tenantId},
+            on_job_status = #{onJobStatus},
+            type = #{type},
+            user_id = #{userId}
+        where id =#{id}
+    </update>
+
+    <insert id="insertInfo">
+        insert into staff_user_info (
+            create_by_id,
+            create_time,
+            update_by_id,
+            update_time,
+            del_flag,
+            name,
+            mobile_phone,
+            department,
+            post_id,
+            manager_office,
+            role_id,
+            email,
+            tenant_id,
+            on_job_status,
+            id,
+            type,
+            user_id
+        ) values (
+            #{createById},
+            #{createTime},
+            #{updateById},
+            #{updateTime},
+            '0',
+            #{name},
+            #{mobilePhone},
+            #{department},
+            #{postId},
+            #{managerOffice},
+            #{roleId},
+            #{email},
+            #{tenantId},
+            #{onJobStatus},
+            #{id},
+            #{type},
+            #{userId}
+        )
+    </insert>
 
 
 </mapper>

+ 0 - 14
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffDimissionService.java

@@ -365,19 +365,5 @@ public class StaffDimissionService {
         UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getById(id);
 
         UserUtils.deleteCache ( userDTO );
-
-        if (redisUtils.hasKey("user:cache:user:all:info")){
-            //先清除redis中的数据
-            redisUtils.delete(CacheNames.USER_CACHE_USER_ALL_INFO,"user:cache:user:all:info");
-            //获取全部的人员信息
-            List<UserDTO> allUserInfo = SpringUtil.getBean(IUserApi.class).getAllUserInfo();
-            //再次将人员信息存入到redis中
-            redisUtils.set(CacheNames.USER_CACHE_USER_ALL_INFO,"user:cache:user:all:info",allUserInfo);
-        }else {
-            //获取全部的人员信息
-            List<UserDTO> allUserInfo = SpringUtil.getBean(IUserApi.class).getAllUserInfo();
-            //再次将人员信息存入到redis中
-            redisUtils.set(CacheNames.USER_CACHE_USER_ALL_INFO,"user:cache:user:all:info",allUserInfo);
-        }
     }
 }

+ 13 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffUserInfoService.java

@@ -359,6 +359,9 @@ public class StaffUserInfoService {
      * @return
      */
     public String deleteById(String id) {
+        //删除用户信息
+        StaffUserInfoDTO staffUserInfoMapperById = staffUserInfoMapper.findById(id);
+        SpringUtil.getBean(IUserApi.class).removeById(staffUserInfoMapperById.getUserId());
         staffUserInfoMapper.deleteById(id);
         return "操作成功";
     }
@@ -629,12 +632,12 @@ public class StaffUserInfoService {
             if (ObjectUtils.isNotEmpty(infoDTO)){
                 userInfoDTO.setId(infoDTO.getId());
                 BeanUtils.copyProperties(userInfoDTO,staffUserInfo);
-                staffUserInfoMapper.updateById(staffUserInfo);
+                staffUserInfoMapper.updateInfoById(staffUserInfo);
             }else {
                 String id = UUID.randomUUID().toString().replace("-", "");
                 staffUserInfo.setId(id);
                 BeanUtils.copyProperties(userInfoDTO,staffUserInfo);
-                staffUserInfoMapper.insert(staffUserInfo);
+                staffUserInfoMapper.insertInfo(staffUserInfo);
             }
         }
 
@@ -657,4 +660,12 @@ public class StaffUserInfoService {
         }
 
     }
+
+    /**
+     * 删除用户信息
+     * @param userInfoDTO
+     */
+    public void deleteUser(StaffUserInfoDTO userInfoDTO) {
+        staffUserInfoMapper.deleteByUserId(userInfoDTO.getUserId());
+    }
 }

+ 5 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/UserApiImpl.java

@@ -216,4 +216,9 @@ public class UserApiImpl implements IUserApi {
         return userService.getMangeLeaderByUserId(id);
     }
 
+    @Override
+    public void removeById(String id) {
+        userService.removeById(id);
+    }
+
 }

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

@@ -260,4 +260,11 @@ public interface UserMapper extends BaseMapper <User> {
     void insertUserManageOffice(@Param("officeId") String officeId,@Param("userId") String userId);
 
     List<UserDTO> getMangeLeaderByUserId(@Param("id") String id);
+
+    /**
+     * 从入职中删除用户信息
+     * @param id
+     */
+    @InterceptorIgnore(tenantLine = "true")
+    void removeById(@Param("id")String id);
 }

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

@@ -613,4 +613,8 @@ select DISTINCT a.id, a.company_id as "companyDTO.id", a.office_id as "officeDTO
             office_id = ( SELECT office_id FROM sys_user WHERE id = #{id} ))
     </select>
 
+    <delete id="removeById">
+        update sys_user set del_flag = '1' where id =#{id}
+    </delete>
+
 </mapper>

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

@@ -399,10 +399,10 @@ public class UserService extends ServiceImpl <UserMapper, User> {
             redisUtils.set(CacheNames.USER_CACHE_USER_ALL_INFO,"user:cache:user:all:info",allUserInfo);
         }
 
-        if (StringUtils.isNotBlank(userDTO.getId()) && !userDTO.getIsStaff().equals("staff")){
+        if (!userDTO.getIsStaff().equals("staff")){
             //将用户信息更新到入职表中
             UserInfo staffUserInfoDTO = new UserInfo();
-            staffUserInfoDTO.setUserId(userDTO.getId());//用户id
+            staffUserInfoDTO.setUserId(user.getId());//用户id
             staffUserInfoDTO.setName(userDTO.getName());
             staffUserInfoDTO.setMobilePhone(userDTO.getMobile());
             staffUserInfoDTO.setDepartment(userDTO.getOfficeDTO().getId());//所属部门
@@ -412,8 +412,8 @@ public class UserService extends ServiceImpl <UserMapper, User> {
             staffUserInfoDTO.setManagerOffice(userDTO.getManageOfficeIds()); //管理部门
             staffUserInfoDTO.setRoleId(roleIds); //角色
             staffUserInfoDTO.setEmail(userDTO.getEmail());
-            staffUserInfoDTO.setCreateById(userDTO.getId());
-            staffUserInfoDTO.setUpdateById(userDTO.getId());
+            staffUserInfoDTO.setCreateById(user.getId());
+            staffUserInfoDTO.setUpdateById(user.getId());
             staffUserInfoDTO.setTenantId(userDTO.getTenantDTO().getId());
             staffUserInfoDTO.setOnJobStatus("2");
             SpringUtil.getBean(IStaffUserInfoApi.class).updateUser(staffUserInfoDTO);
@@ -438,6 +438,10 @@ public class UserService extends ServiceImpl <UserMapper, User> {
         baseMapper.deleteUserPost ( userDTO.getId ( ) );
         super.removeById ( userDTO.getId ( ) );
         UserUtils.deleteCache ( userDTO );
+        //将该用户从入职表中进行删除
+        UserInfo userInfo = new UserInfo();
+        userInfo.setUserId(userDTO.getId());
+        SpringUtil.getBean(IStaffUserInfoApi.class).deleteUser(userInfo);
     }
 
     /**
@@ -673,4 +677,11 @@ public class UserService extends ServiceImpl <UserMapper, User> {
     public List<UserDTO> getMangeLeaderByUserId(String id) {
         return userMapper.getMangeLeaderByUserId(id);
     }
+
+    //删除用户信息
+    public void removeById(String id) {
+        baseMapper.deleteUserRole ( id);
+        baseMapper.deleteUserPost ( id);
+        userMapper.removeById ( id );
+    }
 }