Commit 018dd050 authored by suhuiguang's avatar suhuiguang

refact(综合搜索):数据同步调整

1.人员索引最近资质最新检验日期字段,同步接口调整写入数据
parent b6de5e18
......@@ -189,6 +189,12 @@ public class EsUserInfo {
@Field(type = FieldType.Date, format = DateFormat.date_hour_minute_second)
private LocalDateTime createDate;
/**
* 资质最近到期日期
*/
@Field(type = FieldType.Date, format = DateFormat.date)
private LocalDate licenseMinExpiryDate;
@Data
public static class License {
......
package com.yeejoin.amos.boot.module.common.biz.refresh.cm;
import com.yeejoin.amos.boot.module.common.api.entity.EsBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.common.api.entity.EsUserInfo;
import org.thymeleaf.util.ListUtils;
import java.time.LocalDate;
......@@ -47,10 +48,17 @@ public class RefreshCmService {
}
}
public static LocalDate getMinDateFromLicenses(List<EsBaseEnterpriseInfo.License> licenses) {
public static LocalDate getMinDateFromLicensesEp(List<EsBaseEnterpriseInfo.License> licenses) {
if(licenses == null || licenses.isEmpty()) {
return null;
}
return licenses.stream().map(EsBaseEnterpriseInfo.License::getExpiryDate).filter(Objects::nonNull).min(LocalDate::compareTo).orElse(null);
}
public static LocalDate getMinDateFromLicensesUser(List<EsUserInfo.License> licenses) {
if(licenses == null || licenses.isEmpty()) {
return null;
}
return licenses.stream().map(EsUserInfo.License::getExpiryDate).filter(Objects::nonNull).min(LocalDate::compareTo).orElse(null);
}
}
......@@ -1442,7 +1442,7 @@ public class DataHandlerServiceImpl {
}).collect(Collectors.toList());
esBaseEnterpriseInfo.setLicenses(licenses);
try {
esBaseEnterpriseInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicenses(licenses));
esBaseEnterpriseInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesEp(licenses));
esBaseEnterpriseInfo.setUnitType(RefreshCmService.updateJyjcUnitType(enterpriseInfo.getUnitType(), licenses));
} catch (Exception e) {
log.error("企业信息单位类型或者取资质最小日期失败:{}", enterpriseInfo, e);
......@@ -1493,6 +1493,7 @@ public class DataHandlerServiceImpl {
esUserInfo.setSuperviseOrgName(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getSuperviseOrgName());
esUserInfo.setSuperviseOrgCode(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getSuperviseOrgCode());
esUserInfo.setLicenses(this.buildUserLicenses(u.getSequenceNbr()));
esUserInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesUser(esUserInfo.getLicenses()));
return esUserInfo;
}).collect(Collectors.toList());
esUserInfoDao.saveAll(esUserInfos);
......
......@@ -77,7 +77,7 @@ public class EnterpriseRefreshHandler implements IDataRefreshHandler {
}).collect(Collectors.toList());
esBaseEnterpriseInfo.setLicenses(licenses);
try {
esBaseEnterpriseInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicenses(licenses));
esBaseEnterpriseInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesEp(licenses));
esBaseEnterpriseInfo.setUnitType(RefreshCmService.updateJyjcUnitType(enterpriseInfo.getUnitType(), licenses));
} catch (Exception e) {
log.error("企业信息单位类型或者取资质最小日期失败:{}", enterpriseInfo, e);
......
......@@ -10,6 +10,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.EsUserInfo;
import com.yeejoin.amos.boot.module.common.api.entity.TzsDataRefreshMessage;
import com.yeejoin.amos.boot.module.common.api.service.IDataRefreshHandler;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.common.biz.refresh.cm.RefreshCmService;
import com.yeejoin.amos.boot.module.common.biz.utils.RefreshDataUtils;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo;
......@@ -75,6 +76,7 @@ public class UserRefreshHandler implements IDataRefreshHandler {
esUserInfo.setSuperviseOrgName(unit.getSuperviseOrgName());
esUserInfo.setSuperviseOrgCode(unit.getSuperviseOrgCode());
esUserInfo.setLicenses(commonRefreshService.buildUserLicenses(userInfo.getSequenceNbr()));
esUserInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesUser(esUserInfo.getLicenses()));
esUserInfoDao.save(esUserInfo);
break;
default:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment