Commit 7c2e85a8 authored by suhuiguang's avatar suhuiguang

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

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