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-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/YantaiApi.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/YantaiApi.java index 95a54779b0..8cf49c6410 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/YantaiApi.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/YantaiApi.java @@ -50,6 +50,49 @@ public class YantaiApi { */ //private static final String SSO_BACKGROUND_SERVER_URL = "http://120.220.248.247:8081/"; + /** + * desc:根据组织id获取本级组织信息 + * + * @param organizationId + * @return + */ + public static OrgData getOuInfoByOuGuid(String organizationId) { + try { + if (StringUtils.isBlank(organizationId)) { + throw new EpmetException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode(), EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getMsg(), EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getMsg()); + } + //加密 + String organizationIdEn = SM4UtilsForYanTai.dealEncryptData(organizationId); + //pwd = URLEncoder.encode(pwd, "UTF-8"); + String url = SSO_BACKGROUND_SERVER_URL + "person/ouinfo/getOuInfoByOuGuid"; + + Map paramMap = new HashMap<>(); + paramMap.put("organizationId",organizationIdEn); + + log.info("getOuInfoByOuGuid request param:{} url:{}",paramMap, url); + Result result = HttpClientManager.getInstance().sendGet(url, paramMap, getApiHeaderMap()); + log.info("getOuInfoByOuGuid request result:{}", result); + if (!result.success()){ + return new OrgData(); + } + JSONObject jsonObject = JSONObject.parseObject(result.getData()); + String secondCode = jsonObject.getString("code"); + String secondMessage = jsonObject.getString("message"); + if (!"200".equals(secondCode)) { + log.warn("getOuInfoByOuGuid 接口错误"); + return new OrgData(); + } + //解密 + String data = SM4UtilsForYanTai.dealDecryptData(jsonObject.getString("data")); + OrgData orgData = JSON.parseObject(data, OrgData.class); + log.info("getChildOuInfoByGuid request real result:{}", JSON.toJSONString(orgData)); + return orgData; + } catch (Exception e) { + log.error("getChildOuInfoByGuid exception", e); + } + return new OrgData(); + } + /** * desc:根据组织id获取下级组织 * @@ -245,6 +288,8 @@ public class YantaiApi { //getLoginToken("0d554bccfbac4be3846d643252daf92b"); String organizationId = "44e05de9-34fa-48f6-b89f-02838d792cf9"; + OrgData ouInfoByOuGuid = getOuInfoByOuGuid(organizationId); + System.out.println("ouInfoByOuGuid:"+JSON.toJSONString(ouInfoByOuGuid)); List childOuInfoByGuid = getChildOuInfoByGuid(organizationId); System.out.println("childOuInfoByGuid:"+JSON.toJSONString(childOuInfoByGuid)); //先用他说的有人的组织id联调 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 7179573098..16d281ed0c 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 (null != delSize && delSize == NumConstant.ONE_THOUSAND); // 缓存初始化staffs epmetUserOpenFeignClient.allCustomerStaffInCache(customerId); Integer no = NumConstant.ONE; @@ -80,16 +85,15 @@ public class DataSyncUserAndOrgServiceImpl implements DataSyncUserAndOrgService for (UserData u : data) { CustomerStaffInfoDTOCache staffInfo = CustomerStaffRedis.getStaffInfoByMobile(customerId, u.getMobileTelephoneNumber()); DataSyncUserDataEntity entity = ConvertUtils.sourceToTarget(u, DataSyncUserDataEntity.class); + entity.setOrganizationId(org.getOrganizationId()); entity.setCustomerId(customerId); entity.setRemark(""); if (null == staffInfo){ entity.setStatus(NumConstant.ZERO_STR); - entity.setOrganizationId(""); entity.setStaffId(""); }else { CustomerStaffInfoCacheResult staffInfo1 = CustomerStaffRedis.getStaffInfo(customerId, staffInfo.getUserId()); entity.setStatus(NumConstant.ONE_STR); - entity.setOrganizationId(null == staffInfo1 ? "" : staffInfo1.getAgencyId()); entity.setStaffId(staffInfo.getUserId()); } needInsert.add(entity); @@ -107,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 (null != delSize && 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); @@ -127,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 + @@ -37,7 +43,7 @@ else o.ORGANIZATIO_NABBREVIATION end)as orgName, u.USER_NAME AS userName, - u.TELEPHONE_NUMBER AS telephoneNumber, + u.MOBILE_TELEPHONE_NUMBER AS telephoneNumber, u.GENDER AS gender, u.`STATUS` AS status, IFNULL(u.STAFF_ID,'') AS staffId,