Explorar o código

修改用户信息清除缓存,用户管理修改页添加工号和身份证字段

huangguoce hai 2 semanas
pai
achega
e32726299f

+ 5 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/flowable/factory/HumanApiFallBackFactory.java

@@ -66,6 +66,11 @@ public class HumanApiFallBackFactory implements FallbackFactory<IHumanApi> {
             public void dingConfirmResign(String id,String mobilePhone) {
 
             }
+
+            @Override
+            public String findIdCardByUserId(String userId) {
+                return null;
+            }
         };
     }
 }

+ 4 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/flowable/feign/IHumanApi.java

@@ -62,4 +62,8 @@ public interface IHumanApi {
     //同步钉钉数据
     @GetMapping(value = "/departRegistration/dingConfirmResign")
     void dingConfirmResign(@RequestParam(value = "id")String id,@RequestParam(value = "mobilePhone")String mobilePhone);
+
+    //根据用户id查询入职信息
+    @GetMapping(value = "/enrollmentRegistration/findIdCardByUserId")
+    String findIdCardByUserId(@RequestParam(value = "userId")String userId);
 }

+ 6 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java

@@ -258,6 +258,12 @@ public class UserDTO extends BaseDTO implements Serializable {
     private String ddId;
 
     /**
+     * 身份证
+     */
+    @ExcelIgnore
+    private String idCard;
+
+    /**
      * 是否获取其他服务待办
      */
     private String otherServiceFlag;

+ 25 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/controller/EnrollmentRegistrationController.java

@@ -1,12 +1,15 @@
 package com.jeeplus.human.enrollment.enrollmentRegistration.controller;
 
+import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.collect.Lists;
+import com.jeeplus.common.constant.CacheNames;
 import com.jeeplus.common.excel.EasyExcelUtils;
 import com.jeeplus.common.excel.ExcelOptions;
 import com.jeeplus.common.excel.annotation.ExportMode;
+import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.human.depart.handover.domain.Handover;
 import com.jeeplus.human.depart.handover.service.HandoverService;
@@ -19,6 +22,8 @@ import com.jeeplus.human.enrollment.enrollmentRegistration.utils.DingTalkSyncUti
 import com.jeeplus.human.enrollment.enrollmentRegistration.utils.EasyPoiUtil;
 import com.jeeplus.logging.annotation.ApiLog;
 import com.jeeplus.logging.constant.enums.LogTypeEnum;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.utils.StringUtils;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
@@ -231,6 +236,13 @@ public class EnrollmentRegistrationController {
     @PostMapping("updateInfo")
     public ResponseEntity updateInfo(@Valid @RequestBody EnrollmentRegistration registration) throws Exception {
         service.updateRegistration(registration);
+        //清除用户缓存
+        List<UserDTO> onLineUserList = SpringUtil.getBean(IUserApi.class).getOnLineUserList(registration.getLoginName(), "");
+        for (UserDTO dto : onLineUserList) {
+            SpringUtil.getBean(IUserApi.class).clearCache ( dto );
+            RedisUtils.getInstance ().delete ( CacheNames.USER_CACHE_TOKEN, dto.getToken() );
+            RedisUtils.getInstance ().delete ( CacheNames.USER_CACHE_ONLINE_USERS, dto.getToken() );
+        }
         return ResponseUtil.newInstance().ok("操作成功");
     }
 
@@ -602,6 +614,19 @@ public class EnrollmentRegistrationController {
     }
 
     /**
+     * 根据用户id查询身份证号码
+     * @param userId
+     * @return
+     */
+    @ApiOperation(value = "根据用户id查询身份证号码")
+    @GetMapping("/findIdCardByUserId")
+    public ResponseEntity<String> findIdCardByUserId(@RequestParam String userId) throws Exception{
+        String idCard= service.findIdCardByUserId(userId);
+
+        return ResponseEntity.ok(idCard);
+    }
+
+    /**
      * 查询
      * @param mobilePhone
      * @return

+ 2 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/domain/EnrollmentRegistration.java

@@ -136,6 +136,8 @@ public class EnrollmentRegistration extends BaseEntity {
     private String newPassword; //新密码
 
     @TableField(exist = false)
+    private String no;      //工号
+    @TableField(exist = false)
     private List<EnrollmentEduInfo> eduInfoList; //教育经历
     @TableField(exist = false)
     private List<EnrollmentWorkInfo> workInfoList; //工作经历

+ 16 - 2
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/EnrollmentRegistrationService.java

@@ -36,6 +36,7 @@ import com.jeeplus.sys.service.dto.*;
 import com.taobao.api.ApiException;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -698,6 +699,7 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
                     }
                 }
             }
+            info.setNo(userDTO.getNo());
             info.setRoleIdList(roles);
             info.setPostIdList(posts);
 
@@ -984,6 +986,15 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
         Integer integer = mapper.selectCount(queryWrapper);
         return integer;
     }
+    public String findIdCardByUserId(String id) throws Exception {
+        // 查询基础信息表
+        EnrollmentRegistration info = mapper.getInfoByUserId(id);
+        if(info!= null && StringUtils.isNotBlank(info.getIdCard())){
+            return info.getIdCard();
+        }
+        return "";
+    }
+
 
     public Integer findMobilePhoneOnly(String mobilePhone) throws Exception {
         // 删除基础信息表
@@ -1506,7 +1517,9 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
                 if (CollectionUtil.isNotEmpty(reportData.getRoleIdList())) {
                     for (String role : reportData.getRoleIdList()) {
                         RoleDTO roleDTO = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(role);
-                        roleIdList.add(roleDTO);
+                        if(roleDTO!= null ){
+                            roleIdList.add(roleDTO);
+                        }
                     }
                 }
                 //所属租户
@@ -1522,7 +1535,8 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
                 }
                 dto1.setRoleDTOList(roleIdList);
                 dto1.setPostDTOList(postDTOList);
-                SpringUtil.getBean(IUserApi.class).saveOrUpdate(dto1);
+                dto1.setNo(reportData.getNo());
+                SpringUtil.getBean(IUserApi.class).updateUser(dto1);
             }
         }
 

+ 7 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -854,6 +854,13 @@ public class UserController {
         }
         // 保存用户信息
         userService.saveOrUpdate(userDTO);
+        //清除用户缓存
+        List<UserDTO> onLineUserList = SpringUtil.getBean(IUserApi.class).getOnLineUserList(userDTO.getLoginName(), "");
+        for (UserDTO dto : onLineUserList) {
+            SpringUtil.getBean(IUserApi.class).clearCache ( dto );
+            redisUtils.delete ( CacheNames.USER_CACHE_TOKEN, dto.getToken() );
+            redisUtils.delete ( CacheNames.USER_CACHE_ONLINE_USERS, dto.getToken() );
+        }
 //        return ResponseEntity.ok ( "保存用户'" + userDTO.getLoginName ( ) + "'成功!" );
         return ResponseUtil.newInstance().add("userId", userDTO.getId()).ok("保存用户'" + userDTO.getLoginName() + "'成功!");
     }

+ 9 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -20,6 +20,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.flowable.feign.IHumanApi;
 import com.jeeplus.sys.domain.*;
 import com.jeeplus.sys.feign.IDictApi;
 import com.jeeplus.sys.feign.IOfficeApi;
@@ -188,6 +189,11 @@ public class UserService extends ServiceImpl<UserMapper, User> {
                 List<String> officeNameList = officeService.getOfficeNameByIds(manageOfficeIdList);
                 userDTO.setManageOfficeNameList(officeNameList);
             }
+            // user表中没有身份证信息,通过入职那边查询
+            String idCard = SpringUtil.getBean(IHumanApi.class).findIdCardByUserId(userDTO.getId());
+            if(StringUtils.isNotBlank(idCard)){
+                userDTO.setIdCard(idCard);
+            }
         }
         return userDTO;
     }
@@ -443,7 +449,9 @@ public class UserService extends ServiceImpl<UserMapper, User> {
             user.setManageOfficeIds(userDTO.getManageOfficeIds());
         }
         user.setDdId(userDTO.getDdId());
-
+        if (StringUtils.isNotBlank(userDTO.getNo())) {
+            user.setNo(userDTO.getNo());
+        }
         super.saveOrUpdate(user);
         if (StrUtil.isBlank(userDTO.getId())) {
             userDTO.setId(user.getId());