Эх сурвалжийг харах

同步出入人员到 人员历史库

zhulu 1 долоо хоног өмнө
parent
commit
7078799446

+ 1 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/letter/domain/CoreIntroduceLetterOutInHistoryUser.java

@@ -38,7 +38,7 @@ public class CoreIntroduceLetterOutInHistoryUser extends BaseEntity {
     private String companyName;
 
     @ApiModelProperty(value = "证件类型")
-    private Long idType;
+    private Integer idType;
 
     @ApiModelProperty(value = "证件号码")
     private String idCard;

+ 7 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/ICoreIntroduceLetterOutInHistoryUserService.java

@@ -3,6 +3,7 @@ package com.xunmei.core.letter.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetterOutInHistoryUser;
 import com.xunmei.common.core.domain.letter.dto.CoreIntroduceLetterOutInHistoryUserDto;
+import com.xunmei.common.core.domain.letter.dto.CoreIntroduceLetterUserAddDto;
 import com.xunmei.common.core.web.page.TableDataInfo;
 
 import java.util.List;
@@ -77,4 +78,10 @@ public interface ICoreIntroduceLetterOutInHistoryUserService extends IService<Co
      */
 
     int inboundOutInHistory (CoreIntroduceLetterOutInHistoryUser coreIntroduceLetterOutInHistoryUser);
+
+    /**
+     * 核验登记提交后批量入库
+     */
+
+    void batchInboundOutInHistory (List<CoreIntroduceLetterUserAddDto> coreIntroduceLetterOutInHistoryUser,Long orgId,Long outInRequestId);
 }

+ 67 - 11
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterOutInHistoryUserServiceImpl.java

@@ -4,11 +4,14 @@ import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetterOutInHistoryUser;
 import com.xunmei.common.core.domain.letter.dto.CoreIntroduceLetterOutInHistoryUserDto;
+import com.xunmei.common.core.domain.letter.dto.CoreIntroduceLetterUserAddDto;
 import com.xunmei.common.core.utils.DateUtils;
+import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.letter.mapper.CoreIntroduceLetterOutInHistoryUserMapper;
@@ -18,8 +21,11 @@ import com.xunmei.system.api.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 机构出入过的历史人员Service业务层处理
@@ -46,20 +52,18 @@ public class CoreIntroduceLetterOutInHistoryUserServiceImpl extends ServiceImpl<
         }
 
         LambdaQueryWrapper<CoreIntroduceLetterOutInHistoryUser> lqw = new LambdaQueryWrapper<>();
-        lqw.eq(CoreIntroduceLetterOutInHistoryUser::getOrgId, request.getOrgId())
-                .and(qw -> {
-                    qw.like(ObjectUtil.isNotEmpty(request.getKeyWords()), CoreIntroduceLetterOutInHistoryUser::getIdCard, request.getKeyWords())
-                            .or()
-                            .like(ObjectUtil.isNotEmpty(request.getKeyWords()), CoreIntroduceLetterOutInHistoryUser::getUserName, request.getKeyWords());
-                });
-
+        lqw.eq(CoreIntroduceLetterOutInHistoryUser::getOrgId, request.getOrgId());
+
+        if(StringUtils.isNotEmpty(request.getKeyWords())) {
+            lqw.and(qw -> {
+                qw.like(ObjectUtil.isNotEmpty(request.getKeyWords()), CoreIntroduceLetterOutInHistoryUser::getIdCard, request.getKeyWords())
+                .or()
+                .like(ObjectUtil.isNotEmpty(request.getKeyWords()), CoreIntroduceLetterOutInHistoryUser::getUserName, request.getKeyWords());
+            });
+        }
         page = coreIntroduceLetterOutInHistoryUserMapper.selectPage(page, lqw);
-
-
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(page);
-
-
     }
 
 
@@ -148,6 +152,7 @@ public class CoreIntroduceLetterOutInHistoryUserServiceImpl extends ServiceImpl<
      *
      * @param outInRequestUser
      */
+    @Override
     public int inboundOutInHistory(CoreIntroduceLetterOutInHistoryUser outInRequestUser) {
 //        LoginUser loginUser = SecurityUtils.getLoginUser();
 //        if (NumberUtil.equals(outInRequestUser.getOrgId(), loginUser.getOrgId())) {
@@ -178,4 +183,55 @@ public class CoreIntroduceLetterOutInHistoryUserServiceImpl extends ServiceImpl<
         return coreIntroduceLetterOutInHistoryUserMapper.insert(outInRequestUser);
 
     }
+
+    @Override
+    public void batchInboundOutInHistory(List<CoreIntroduceLetterUserAddDto> userDtoLister , Long orgId,Long outInRequestId) {
+        List<String> userNameList =new ArrayList<>();
+        List<String> idCardList =new ArrayList<>();
+        userDtoLister.stream().forEach(x -> {
+            userNameList.add(x.getUserName());
+            idCardList.add(x.getIdCard());
+        });
+
+        LambdaQueryWrapper<CoreIntroduceLetterOutInHistoryUser> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(CoreIntroduceLetterOutInHistoryUser::getOrgId, orgId)
+                .in(CoreIntroduceLetterOutInHistoryUser::getUserName, userNameList)
+                .or()
+                .in(CoreIntroduceLetterOutInHistoryUser::getIdCard, idCardList);
+        List<CoreIntroduceLetterOutInHistoryUser> historyUsers = coreIntroduceLetterOutInHistoryUserMapper.selectList(lqw);
+
+        List<CoreIntroduceLetterOutInHistoryUser> users = new ArrayList<>();
+
+        userDtoLister.forEach(x -> {
+            List<CoreIntroduceLetterOutInHistoryUser> collect = historyUsers.stream().filter(y -> y.getUserName().equals(x.getUserName()) && y.getIdCard().equals(x.getIdCard()) && y.getIdType().equals(x.getIdType())).collect(Collectors.toList());
+            if(collect.size()>0) {
+                CoreIntroduceLetterOutInHistoryUser orgHistoryUser = collect.get(0);
+                orgHistoryUser.setUserName(x.getUserName());
+                orgHistoryUser.setIdType(x.getIdType());
+                orgHistoryUser.setIdCard(x.getIdCard());
+                orgHistoryUser.setCompanyName(x.getCompanyName());
+                orgHistoryUser.setImgFile(x.getImgFile());
+                orgHistoryUser.setUpdateTime(new Date());
+                orgHistoryUser.setUpdateBy(SecurityUtils.getUsername());
+                orgHistoryUser.setOutInRequestId(outInRequestId);
+                users.add(orgHistoryUser);
+            }
+            else
+            {
+                CoreIntroduceLetterOutInHistoryUser newHistoryUser = new CoreIntroduceLetterOutInHistoryUser();
+                newHistoryUser.setId(IdWorker.getId());
+                newHistoryUser.setOrgId(orgId);
+                newHistoryUser.setUserName(x.getUserName());
+                newHistoryUser.setIdType(x.getIdType());
+                newHistoryUser.setIdCard(x.getIdCard());
+                newHistoryUser.setCompanyName(x.getCompanyName());
+                newHistoryUser.setImgFile(x.getImgFile());
+                newHistoryUser.setCreateTime(new Date());
+                newHistoryUser.setCreateBy(SecurityUtils.getUsername());
+                users.add(newHistoryUser);
+            }
+        });
+        this.saveOrUpdateBatch(users);
+
+    }
 }

+ 36 - 20
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java

@@ -30,6 +30,7 @@ import com.xunmei.core.letter.mapper.CoreIntroduceLetterOutInRequestMapper;
 import com.xunmei.core.letter.mapper.CoreIntroduceLetterMapper;
 import com.xunmei.core.letter.mapper.CoreIntroduceLetterOutInRequestUserMapper;
 import com.xunmei.core.letter.mapper.CoreOutInRecordMapper;
+import com.xunmei.core.letter.service.ICoreIntroduceLetterOutInHistoryUserService;
 import com.xunmei.core.letter.service.ICoreIntroduceLetterOutInRequestUserService;
 import com.xunmei.core.letter.service.ICoreIntroduceLetterService;
 import com.xunmei.system.api.RemoteOrgService;
@@ -39,7 +40,9 @@ import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import io.netty.util.internal.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -53,6 +56,7 @@ import java.util.stream.Collectors;
  * @author xunmei
  * @date 2023-10-12
  */
+@Slf4j
 @Service
 public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLetterMapper, CoreIntroduceLetter> implements ICoreIntroduceLetterService {
     @Autowired
@@ -70,6 +74,9 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
     @Resource
     ICoreIntroduceLetterOutInRequestUserService outInRequestUserService;
 
+    @Resource
+    ICoreIntroduceLetterOutInHistoryUserService outInHistoryUserService;
+
     @Autowired
     private RemoteRoleService roleService;
     @Autowired
@@ -717,31 +724,40 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
             });
         });
         outInRequestUserService.updateBatchById(users);
-        // TODO 回写介绍信人员,回写历史人员库
-        if(outInRequestDto.getType()==2) {
-            //回写介绍信人员
-            List<CoreIntroduceLetterUserAddDto> fromLetterUserList = outInRequestDto.getUserInfos().stream().filter(x -> x.getLetterUserId() != null).collect(Collectors.toList());
-            CoreIntroduceLetterInfoVo coreIntroduceLetterVo = coreIntroduceLetterMapper.selectOneById(outInRequestDto.getLetterId());
-            List<CoreIntroduceLetterInfoVo> list = new ArrayList<>();
-            list.add(coreIntroduceLetterVo);
-            List<CoreIntroduceLetterUserAddDto> letterUserList = coreIntroduceLetterMapper.findUserList(list);
-
-            letterUserList.stream().forEach(l -> {
-                fromLetterUserList.stream().filter(x -> ObjectUtil.equal(x.getId(), l.getId())).findFirst().ifPresent(x -> {
-                    l.setUserName(x.getUserName());
-                    l.setCompanyName(x.getCompanyName());
-                    l.setIdType(x.getIdType());
-                    l.setIdCard(x.getIdCard());
-                });
-            });
-            coreIntroduceLetterMapper.batchUpdateLetterUserList(letterUserList);
-            //回写历史人员库
-
+        // 人员信息回写介绍信人员,历史人员库
+        syncUserInfoToHistoryUserAndLetterUser(outInRequestDto,outInRequest);
+    }
 
+    public void syncUserInfoToHistoryUserAndLetterUser (CoreIntroduceLetterUpdateOutInRequestDto outInRequestDto,CoreIntroduceLetterOutInRequest outInRequest) {
+        try {
+            // TODO 回写介绍信人员,回写历史人员库
+            if(outInRequestDto.getType()==2) {
+                //回写介绍信人员
+                List<CoreIntroduceLetterUserAddDto> fromLetterUserList = outInRequestDto.getUserInfos().stream().filter(x -> x.getLetterUserId() != null).collect(Collectors.toList());
+                CoreIntroduceLetterInfoVo coreIntroduceLetterVo = coreIntroduceLetterMapper.selectOneById(outInRequestDto.getLetterId());
+                List<CoreIntroduceLetterInfoVo> list = new ArrayList<>();
+                list.add(coreIntroduceLetterVo);
+                List<CoreIntroduceLetterUserAddDto> letterUserList = coreIntroduceLetterMapper.findUserList(list);
+
+                letterUserList.stream().forEach(l -> {
+                    fromLetterUserList.stream().filter(x -> ObjectUtil.equal(x.getId(), l.getId())).findFirst().ifPresent(x -> {
+                        l.setUserName(x.getUserName());
+                        l.setCompanyName(x.getCompanyName());
+                        l.setIdType(x.getIdType());
+                        l.setIdCard(x.getIdCard());
+                    });
+                });
+                coreIntroduceLetterMapper.batchUpdateLetterUserList(letterUserList);
+                //回写历史人员库
+                outInHistoryUserService.batchInboundOutInHistory(outInRequestDto.getUserInfos(),outInRequest.getOrgId(),outInRequest.getId());
 
+            }
+        } catch (Exception e) {
+            log.error("同步人员信息到人员历史表、介绍信人员信息 失败{0},{1}",e.getMessage(),e.getStackTrace());
         }
     }
 
+
     @Override
     public CoreIntroduceLetterOutInRequestVo selectOutInRequestInfoById(Long id) {
         //获取介绍信信息