Commit 7c2e85a8 authored by suhuiguang's avatar suhuiguang

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

1.企业索引最近资质最新检验日期字段,同步接口调整写入数据
parent 1e579a61
......@@ -145,6 +145,12 @@ public class EsBaseEnterpriseInfo {
@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 lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.thymeleaf.util.ListUtils;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@Component
@Slf4j
@RequiredArgsConstructor
public class BaseEnterpriseUpdate {
public class RefreshCmService {
public final String jyjcjg = "检验检测机构";
public final String jyjg = "检验机构";
public final String jcjg = "检测机构";
public final String jyjgCode = "1233-1";
public final String jcjgCode = "1233-2";
public static final String jyjcjg = "检验检测机构";
public static final String jyjg = "检验机构";
public static final String jcjg = "检测机构";
public static final String jyjgCode = "1233-1";
public static final String jcjgCode = "1233-2";
public String updateJyjcUnitType(String oldUnitType, List<EsBaseEnterpriseInfo.License> unitLicences) {
if(oldUnitType == null || oldUnitType.isEmpty()) {
return oldUnitType;
}
public static String updateJyjcUnitType(String oldUnitType, List<EsBaseEnterpriseInfo.License> unitLicences) {
if (oldUnitType == null || oldUnitType.isEmpty()) {
return oldUnitType;
}
// 如果单位类型中包含检验检测机构、检测单位、检验单位,且有资质信息,则更新单位类型
if ((oldUnitType.contains(jyjcjg) || oldUnitType.contains(jyjg) || oldUnitType.contains(jcjg)) && !ListUtils.isEmpty(unitLicences)) {
long jydwCount = unitLicences.stream().filter(e -> jyjgCode.equals(e.getCertTypeCode()) || jyjg.equals(e.getCertType())).count();
long jcdwCount = unitLicences.stream().filter(e -> jcjgCode.equals(e.getCertTypeCode()) || jcjg.equals(e.getCertType())).count();
long jcdwCount = unitLicences.stream().filter(e -> jcjgCode.equals(e.getCertTypeCode()) || jcjg.equals(e.getCertType())).count();
// 如果资质中不含有检验和检测资质,则不更新单位类型
if (jydwCount == 0 && jcdwCount == 0) {
return oldUnitType;
......@@ -50,4 +46,11 @@ public class BaseEnterpriseUpdate {
return oldUnitType;
}
}
public static LocalDate getMinDateFromLicenses(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);
}
}
......@@ -30,7 +30,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.ESEquipmentInfo;
import com.yeejoin.amos.boot.module.common.api.entity.EsBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.common.api.entity.EsUserInfo;
import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission;
import com.yeejoin.amos.boot.module.common.biz.refresh.cm.BaseEnterpriseUpdate;
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.jg.api.dto.JgInstallationNoticeEqDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationDto;
......@@ -143,9 +143,6 @@ public class DataHandlerServiceImpl {
private final IdxBizJgRegisterInfoMapper registerInfoMapper;
private final BaseEnterpriseUpdate baseEnterpriseUpdate;
private final EsBulkService esBulkService;
/**
......@@ -1445,9 +1442,10 @@ public class DataHandlerServiceImpl {
}).collect(Collectors.toList());
esBaseEnterpriseInfo.setLicenses(licenses);
try {
esBaseEnterpriseInfo.setUnitType(baseEnterpriseUpdate.updateJyjcUnitType(enterpriseInfo.getUnitType(), licenses));
esBaseEnterpriseInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicenses(licenses));
esBaseEnterpriseInfo.setUnitType(RefreshCmService.updateJyjcUnitType(enterpriseInfo.getUnitType(), licenses));
} catch (Exception e) {
log.error("单位类型转换失败:{}", enterpriseInfo, e);
log.error("企业信息单位类型或者取资质最小日期失败:{}", enterpriseInfo, e);
}
return esBaseEnterpriseInfo;
}).collect(Collectors.toList());
......
......@@ -10,7 +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.BaseEnterpriseUpdate;
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.TzBaseUnitLicence;
......@@ -41,8 +41,6 @@ public class EnterpriseRefreshHandler implements IDataRefreshHandler {
private final EsUserInfoDao esUserInfoDao;
private final BaseEnterpriseUpdate baseEnterpriseUpdate;
@Override
public String supportType() {
return "enterprise";
......@@ -79,9 +77,10 @@ public class EnterpriseRefreshHandler implements IDataRefreshHandler {
}).collect(Collectors.toList());
esBaseEnterpriseInfo.setLicenses(licenses);
try {
esBaseEnterpriseInfo.setUnitType(baseEnterpriseUpdate.updateJyjcUnitType(enterpriseInfo.getUnitType(), licenses));
esBaseEnterpriseInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicenses(licenses));
esBaseEnterpriseInfo.setUnitType(RefreshCmService.updateJyjcUnitType(enterpriseInfo.getUnitType(), licenses));
} catch (Exception e) {
log.error("单位类型转换失败:{}", enterpriseInfo, e);
log.error("企业信息单位类型或者取资质最小日期失败:{}", enterpriseInfo, e);
}
enterpriseInfoDao.save(esBaseEnterpriseInfo);
// 人员更新冗余的单位信息
......
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