From f1824bf0abd103589321a5e90e90f2d72d044786 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 25 Oct 2022 14:30:42 +0800 Subject: [PATCH] emm --- .../commons/tools/utils/api/yt/OrgData.java | 13 ++++++ .../yantai/DataSyncUserAndOrgServiceImpl.java | 41 +++++++++++++++---- .../epmet/dao/yantai/DataSyncOrgDataDao.java | 2 + .../epmet/dao/yantai/DataSyncUserDataDao.java | 3 ++ .../epmet/service/DataSyncOrgDataService.java | 2 + .../service/DataSyncUserDataService.java | 2 + .../impl/DataSyncOrgDataServiceImpl.java | 6 +++ .../impl/DataSyncUserDataServiceImpl.java | 5 +++ .../db/migration/V0.0.18__yt_alter_sync.sql | 1 + .../mapper/yantai/DataSyncOrgDataDao.xml | 6 +++ .../mapper/yantai/DataSyncUserDataDao.xml | 6 +++ 11 files changed, 78 insertions(+), 9 deletions(-) create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.18__yt_alter_sync.sql diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/OrgData.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/OrgData.java index 6c7ea48907..b5b7e96e09 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/OrgData.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/OrgData.java @@ -74,6 +74,19 @@ public class OrgData implements Serializable { */ private String unifiedSocialCreditId; + /** + * 上级ID + */ + private String pid; + /** + * orgId全路径 + */ + private String pids; + + /** + * 上级组织名 + */ + private String parentOrgName; } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/yantai/DataSyncUserAndOrgServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/yantai/DataSyncUserAndOrgServiceImpl.java index f7af284abc..5f2ae5c4fc 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/yantai/DataSyncUserAndOrgServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/yantai/DataSyncUserAndOrgServiceImpl.java @@ -63,6 +63,11 @@ public class DataSyncUserAndOrgServiceImpl implements DataSyncUserAndOrgService @Override public Boolean yanTaiSyncUser(String organizationId) { String customerId = YT_CUSTOMER_ID; + // 先删除 旧数据 + Integer delSize = NumConstant.ZERO; + do { + delSize = dataSyncUserDataService.deleteByCustomerId(customerId); + }while (delSize == NumConstant.ONE_THOUSAND); // 缓存初始化staffs epmetUserOpenFeignClient.allCustomerStaffInCache(customerId); Integer no = NumConstant.ONE; @@ -106,19 +111,34 @@ public class DataSyncUserAndOrgServiceImpl implements DataSyncUserAndOrgService @Override public Boolean yanTaiSyncOrg(String organizationId) { + // 先删除 旧数据 + Integer delSize = NumConstant.ZERO; + do { + delSize = dataSyncOrgDataService.deleteByCustomerId(YT_CUSTOMER_ID); + }while (delSize == NumConstant.ONE_THOUSAND); + List needInsert = new ArrayList<>(); + // 根组织 + OrgData rootOrg = YantaiApi.getOuInfoByOuGuid(organizationId); + if (null == rootOrg){ + log.error("未查询到根组织:"+organizationId); + return true; + } + rootOrg.setPid(""); + rootOrg.setPids(""); + rootOrg.setNameOfOrganization(""); + needInsert.add(rootOrg); List data = YantaiApi.getChildOuInfoByGuid(organizationId); if (CollectionUtils.isNotEmpty(data)){ - List needInsert = new ArrayList<>(); data.forEach(d -> { + d.setPid(organizationId); + d.setPids(organizationId.concat(":").concat(d.getOrganizationId())); + d.setNameOfOrganization(rootOrg.getNameOfOrganization()); needInsert.add(d); - disposeYanTaiSyncOrg(d.getOrganizationId(),needInsert); + disposeYanTaiSyncOrg(d,needInsert); }); List entities = needInsert.stream().map(m -> { DataSyncOrgDataEntity entity = ConvertUtils.sourceToTarget(m, DataSyncOrgDataEntity.class); entity.setCustomerId(YT_CUSTOMER_ID); - entity.setPid(""); - entity.setParentOrgName(""); - entity.setPids(""); return entity; }).collect(Collectors.toList()); dataSyncOrgDataService.insertBatch(entities, NumConstant.ONE_HUNDRED); @@ -126,12 +146,15 @@ public class DataSyncUserAndOrgServiceImpl implements DataSyncUserAndOrgService return false; } - public void disposeYanTaiSyncOrg(String organizationId, List needInsert){ - List data = YantaiApi.getChildOuInfoByGuid(organizationId); + public void disposeYanTaiSyncOrg(OrgData orgData, List needInsert){ + List data = YantaiApi.getChildOuInfoByGuid(orgData.getOrganizationId()); if (CollectionUtils.isNotEmpty(data)){ - needInsert.addAll(data); data.forEach(d -> { - disposeYanTaiSyncOrg(d.getOrganizationId(),needInsert); + d.setPid(orgData.getOrganizationId()); + d.setPids(orgData.getPids().concat(":").concat(d.getOrganizationId())); + d.setNameOfOrganization(orgData.getNameOfOrganization()); + needInsert.add(d); + disposeYanTaiSyncOrg(d,needInsert); }); } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncOrgDataDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncOrgDataDao.java index b0b0529b62..b9f2a0eca4 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncOrgDataDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncOrgDataDao.java @@ -24,4 +24,6 @@ public interface DataSyncOrgDataDao extends BaseDao { List queryList(@Param("pid") String pid); List getAllList(@Param("customerId") String customerId); + + Integer deleteByCustomerId(@Param("customerId")String customerId); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncUserDataDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncUserDataDao.java index f1bc42e2e8..b36d45240b 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncUserDataDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncUserDataDao.java @@ -38,4 +38,7 @@ public interface DataSyncUserDataDao extends BaseDao { @Param("staffId")String staffId, @Param("name")String name, @Param("mobile")String mobile); + + Integer deleteByCustomerId(@Param("customerId")String customerId); + } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DataSyncOrgDataService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DataSyncOrgDataService.java index 3a3d40fe2d..72b77a4888 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DataSyncOrgDataService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DataSyncOrgDataService.java @@ -75,4 +75,6 @@ public interface DataSyncOrgDataService extends BaseService + + delete from data_sync_org_data + where customer_id = #{customerId} + and del_flag = 0 + limit 1000 +