Commit a5df19af by huangjinxin

Merge remote-tracking branch 'origin/develop' into develop

2 parents 32bac8a1 24343f24
......@@ -58,7 +58,7 @@ public interface IBeanRemoteService {
* 查询BEAN账号详情
*
* @param accessToken ACCESS_TOKEN
* @param workNo 账号中心ID
* @param workNo hrId
* @return 人员详情信息
* @apiNote 根据账号ID(账号中心ID)从BEAN查询账号详情,包括账号姓名、联系方式、所属部门、技能资质等信息
*/
......
......@@ -192,29 +192,42 @@ public class BeanRemoteServiceImpl {
for (BeanAccountInfo account : userlist) {
log.info("开始同步人员信息{}", JsonUtil.toJson(account));
BeanR<BeanUserDetail> beanUserDetailBeanR = beanRemoteService.userDetail(getAccessToken(), account.getHrId());
log.info("[查询BEAN用户详情]【/api/openapi/user/queryDetail】返回值-------------------->{}", JsonUtil.toJson(beanUserDetailBeanR));
BeanUserDetail userDetailInfo = beanUserDetailBeanR.getData();
if (!beanUserDetailBeanR.getSuccess() || Objects.isNull(userDetailInfo)) {
log.error("用户详情列表未获取到用户:{}-{}的详细信息 , 错误信息:{}", account.getUserName(), account.getCenterId(), beanUserDetailBeanR.getMessage());
continue;
}
String engineerCode = userDetailInfo.getWorkNo();
if (StringUtils.isBlank(engineerCode)) {
log.warn("分站:{}工程师{}没有工号", departId, userDetailInfo.getUsername());
continue;
}
final Address address = userDetailInfo.getAddress();
//fixme 正式同步需移除当前逻辑
engineerCode = "BEAN" + engineerCode;
EngineerInfoEntity engineerInfo = getEngineerInfoEntity(departId, engineerCode, userDetailInfo, address);
engineerInfoDao.save(engineerInfo);
engineerInfoDao.flush();
//保存业务属性信息--常用出发地信息
EngineerBusinessEntity engineerBusiness = getEngineerBusiness(engineerCode, address);
if (engineerBusiness == null){ continue;}
engineerBusinessDao.save(engineerBusiness);
saveEngineerInfoByHrId(departId, account.getHrId(), account.getUserName());
}
}
/**
* 根据hrId 获取BEAN自有账户(工程师)详情,并存储工程师基本信息和业务信息, (会自动忽略不存在工号的账户信息- 库里如果已有相关账户会被覆盖)
*
* @param departId 部门ID, (这里只能传分部)
* @param hrId bean 用户列表接口提供的 hrId
* @param userName 用户名
*/
public void saveEngineerInfoByHrId(String departId, String hrId, String userName) {
BeanR<BeanUserDetail> beanUserDetailBeanR = beanRemoteService.userDetail(getAccessToken(), hrId);
log.info("[查询BEAN用户详情]【/api/openapi/user/queryDetail】返回值-------------------->{}", JsonUtil.toJson(beanUserDetailBeanR));
BeanUserDetail userDetailInfo = beanUserDetailBeanR.getData();
if (!beanUserDetailBeanR.getSuccess() || Objects.isNull(userDetailInfo)) {
log.error("用户详情列表未获取到用户:{}-{}的详细信息 , 错误信息:{}", userName, hrId, beanUserDetailBeanR.getMessage());
return;
}
String engineerCode = userDetailInfo.getWorkNo();
if (StringUtils.isBlank(engineerCode)) {
log.warn("分站:{}工程师{}没有工号", departId, userDetailInfo.getUsername());
return;
}
final Address address = userDetailInfo.getAddress();
//fixme 正式同步需移除当前逻辑
engineerCode = "BEAN" + engineerCode;
EngineerInfoEntity engineerInfo = getEngineerInfoEntity(departId, engineerCode, userDetailInfo, address);
engineerInfoDao.save(engineerInfo);
engineerInfoDao.flush();
//保存业务属性信息--常用出发地信息
EngineerBusinessEntity engineerBusiness = getEngineerBusiness(engineerCode, address);
if (engineerBusiness == null) {
return;
}
engineerBusinessDao.save(engineerBusiness);
}
private EngineerInfoEntity getEngineerInfoEntity(String departId, String engineerCode, BeanUserDetail userDetailInfo, Address address) {
......
......@@ -86,8 +86,8 @@ scheduler:
day-offset-end: 20
calc-org-capacity:
# 8-20点,每小时1次
cron-expr: 0 0 1-23 * * ?
# 每小时两次, 分别于10分以及 40分执行
cron-expr: 0 10,40 * * * ?
day-offset-begin: 0
day-offset-end: 20
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!