From 4d6bb5a87c05e7e55ee851817fdd997aed766f61 Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 10 Nov 2022 18:51:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E6=9C=BA=E6=9E=84=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/StartRunner.java | 93 ++++++++++--------- .../xboe/primary/dao/MainOrganizationDao.java | 3 + .../xboe/primary/entity/MainOrganization.java | 9 ++ .../primary/service/IMainDbSyncService.java | 8 +- .../service/impl/MainDbSyncServiceImpl.java | 16 ++++ 5 files changed, 85 insertions(+), 44 deletions(-) diff --git a/servers/org-user-sync/src/main/java/com/xboe/StartRunner.java b/servers/org-user-sync/src/main/java/com/xboe/StartRunner.java index ae5c5096..fed402a0 100644 --- a/servers/org-user-sync/src/main/java/com/xboe/StartRunner.java +++ b/servers/org-user-sync/src/main/java/com/xboe/StartRunner.java @@ -1,22 +1,20 @@ package com.xboe; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; -import com.xboe.common.utils.StringUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; -import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import com.xboe.basic.entity.OldOrganization; -import com.xboe.basic.entity.OldUser; import com.xboe.basic.service.IOldService; import com.xboe.primary.entity.MainOrganization; -import com.xboe.primary.entity.MainUser; import com.xboe.primary.service.IMainDbSyncService; import lombok.extern.slf4j.Slf4j; @@ -45,10 +43,10 @@ public class StartRunner implements ApplicationRunner { try { //同步机构 List allList =oldService.listAll(); - for(OldOrganization org :allList) { - + Set oldIds=new HashSet(); + for(OldOrganization org :allList){ + oldIds.add(org.getKid()); MainOrganization mainOrg = mainService.findByKid(org.getKid()); - if(mainOrg==null) { //添加 mainOrg=organizationToEntity(org); @@ -58,46 +56,55 @@ public class StartRunner implements ApplicationRunner { copyOrganizationToEntity(mainOrg,org); mainService.update(mainOrg); } - mainOrgMap.put(org.getKid(),mainOrg.getId());// - + } + List localList=mainService.getAllSysIdAndId(); + for(MainOrganization mainOrg : localList) { + if(!oldIds.contains(mainOrg.getSysId())) { + //把本地的设置为已删除 + if(StringUtils.isNotBlank(mainOrg.getId())) { + mainService.deletedOrg(mainOrg.getId()); + }else { + log.error("id错误【"+mainOrg.getSysId()+"】"); + } + + } } //同步用户信息,2022/11/04同步用户学习时长 //查询出本地用户 - List allUsers=mainService.findAll(); - for(MainUser mainUser : allUsers) { - - OldUser oldUser = oldService.getByUserKid(mainUser.getSysId()); - if(oldUser!=null) { - - String newId=mainOrgMap.get(oldUser.getOrgnizationId()); - - if(StringUtils.isBlank(newId)) { - log.error("本地未找到【"+oldUser.getKid()+"】对应的机构id,不更新用户"); - }else { - mainUser.setSysDepartId(oldUser.getOrgnizationId()); - mainUser.setCompanyId(oldUser.getCompanyId()); - mainUser.setDepartId(newId); - - mainUser.setLearningDuration(oldUser.getLearningDuration()); - mainUser.setStatus(oldUser.getStatus()); - if(oldUser.getIsDeleted()!=null) { - mainUser.setDeleted(oldUser.getIsDeleted()==0? false:true); - } - if(mainUser.getDeleted()) { - if(StringUtils.isNotBlank(oldUser.getEmployeeStatus())){ - mainUser.setDeleted(oldUser.getEmployeeStatus().equals("3")? true:false); - } - } - mainService.updateUser(mainUser); - } - }else { - //本地应该删除 - log.error("原系统中无【"+mainUser.getSysId()+"】对应的用户id,本地标识删除此用户"); - mainService.deleteAccount(mainUser.getId()); - - } - } +// List allUsers=mainService.findAll(); +// for(MainUser mainUser : allUsers) { +// +// OldUser oldUser = oldService.getByUserKid(mainUser.getSysId()); +// if(oldUser!=null) { +// String newId=mainOrgMap.get(oldUser.getOrgnizationId()); +// +// if(StringUtils.isBlank(newId)) { +// log.error("本地未找到【"+oldUser.getKid()+"】对应的机构id,不更新用户"); +// }else { +// mainUser.setSysDepartId(oldUser.getOrgnizationId()); +// mainUser.setCompanyId(oldUser.getCompanyId()); +// mainUser.setDepartId(newId); +// +// mainUser.setLearningDuration(oldUser.getLearningDuration()); +// mainUser.setStatus(oldUser.getStatus()); +// if(oldUser.getIsDeleted()!=null) { +// mainUser.setDeleted(oldUser.getIsDeleted()==0? false:true); +// } +// if(mainUser.getDeleted()) { +// if(StringUtils.isNotBlank(oldUser.getEmployeeStatus())){ +// mainUser.setDeleted(oldUser.getEmployeeStatus().equals("3")? true:false); +// } +// } +// mainService.updateUser(mainUser); +// } +// }else { +// //本地应该删除 +// log.error("原系统中无【"+mainUser.getSysId()+"】对应的用户id,本地标识删除此用户"); +// mainService.deleteAccount(mainUser.getId()); +// +// } +// } } catch (Exception e) { log.error("执行失败",e); diff --git a/servers/org-user-sync/src/main/java/com/xboe/primary/dao/MainOrganizationDao.java b/servers/org-user-sync/src/main/java/com/xboe/primary/dao/MainOrganizationDao.java index b9775947..804524c5 100644 --- a/servers/org-user-sync/src/main/java/com/xboe/primary/dao/MainOrganizationDao.java +++ b/servers/org-user-sync/src/main/java/com/xboe/primary/dao/MainOrganizationDao.java @@ -26,4 +26,7 @@ public interface MainOrganizationDao extends JpaRepository findBySysId(String sysId); + + @Query(value = "Select new MainOrganization(id,sysId) from MainOrganization") + public List getSysIdAndId(); } diff --git a/servers/org-user-sync/src/main/java/com/xboe/primary/entity/MainOrganization.java b/servers/org-user-sync/src/main/java/com/xboe/primary/entity/MainOrganization.java index 19dfb334..2e39ec87 100644 --- a/servers/org-user-sync/src/main/java/com/xboe/primary/entity/MainOrganization.java +++ b/servers/org-user-sync/src/main/java/com/xboe/primary/entity/MainOrganization.java @@ -113,5 +113,14 @@ public class MainOrganization extends BaseEntity { @Column(name="deleted",length = 1) private Boolean deleted; + + public MainOrganization() { + + } + + public MainOrganization(String id,String sysId) { + this.setId(id); + this.sysId=sysId; + } } diff --git a/servers/org-user-sync/src/main/java/com/xboe/primary/service/IMainDbSyncService.java b/servers/org-user-sync/src/main/java/com/xboe/primary/service/IMainDbSyncService.java index 33280997..07c8e83f 100644 --- a/servers/org-user-sync/src/main/java/com/xboe/primary/service/IMainDbSyncService.java +++ b/servers/org-user-sync/src/main/java/com/xboe/primary/service/IMainDbSyncService.java @@ -19,8 +19,14 @@ public interface IMainDbSyncService { List findAll(); MainOrganization findByKid(String kid); + + void deletedOrg(String id); - + /** + * 获取已有的机构的sys_id和id + * @return + */ + List getAllSysIdAndId(); void save(MainOrganization mainOrg); diff --git a/servers/org-user-sync/src/main/java/com/xboe/primary/service/impl/MainDbSyncServiceImpl.java b/servers/org-user-sync/src/main/java/com/xboe/primary/service/impl/MainDbSyncServiceImpl.java index c383b2f9..0891acc5 100644 --- a/servers/org-user-sync/src/main/java/com/xboe/primary/service/impl/MainDbSyncServiceImpl.java +++ b/servers/org-user-sync/src/main/java/com/xboe/primary/service/impl/MainDbSyncServiceImpl.java @@ -73,4 +73,20 @@ public class MainDbSyncServiceImpl implements IMainDbSyncService { accountDao.updateStatusAndDeleted(muser.getStatus(),muser.getDeleted(), muser.getId()); } + + + @Override + public List getAllSysIdAndId() { + List orgs=orgDao.getSysIdAndId(); + return orgs; + } + + + + @Override + public void deletedOrg(String id) { + + orgDao.setDeleted(id); + } + }