Commit 4dcd9ab2 authored by suhuiguang's avatar suhuiguang

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

1.人员的单位类型暂时和企业索引一致
parent 22fe572a
......@@ -17,8 +17,8 @@ import java.util.stream.Collectors;
public class BaseEnterpriseUpdate {
public final String jyjcjg = "检验检测机构";
public final String jydw = "检验单位";
public final String jcdw = "检测单位";
public final String jyjg = "检验机构";
public final String jcjg = "检测机构";
public final String jyjgCode = "1233-1";
public final String jcjgCode = "1233-2";
......@@ -27,9 +27,9 @@ public class BaseEnterpriseUpdate {
return oldUnitType;
}
// 如果单位类型中包含检验检测机构、检测单位、检验单位,且有资质信息,则更新单位类型
if ((oldUnitType.contains(jyjcjg) || oldUnitType.contains(jydw) || oldUnitType.contains(jcdw)) && !ListUtils.isEmpty(unitLicences)) {
long jydwCount = unitLicences.stream().filter(e -> jyjgCode.equals(e.getCertTypeCode()) || jydw.equals(e.getCertType())).count();
long jcdwCount = unitLicences.stream().filter(e -> jcjgCode.equals(e.getCertTypeCode()) || jcdw.equals(e.getCertType())).count();
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();
// 如果资质中不含有检验和检测资质,则不更新单位类型
if (jydwCount == 0 && jcdwCount == 0) {
return oldUnitType;
......@@ -37,13 +37,13 @@ public class BaseEnterpriseUpdate {
// 处理旧的单位类型
Set<String> units = Arrays.stream(oldUnitType.split("#")).collect(Collectors.toSet());
units.remove(jyjcjg);
units.remove(jydw);
units.remove(jcdw);
units.remove(jyjg);
units.remove(jcjg);
if (jydwCount > 0) {
units.add(jydw);
units.add(jyjg);
}
if (jcdwCount > 0) {
units.add(jcdw);
units.add(jcjg);
}
return String.join("#", units);
} else {
......
......@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.biz.common.dto.KeyValueDto;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -1470,6 +1471,9 @@ public class DataHandlerServiceImpl {
TzBaseEnterpriseInfo::getSuperviseOrgName
).eq(BaseEntity::getIsDelete, false));
Map<String, TzBaseEnterpriseInfo> useCodeEnterpriseMap = units.stream().collect(Collectors.toMap(TzBaseEnterpriseInfo::getUseCode, Function.identity(), (k1, k2) -> k2));
Iterable<EsBaseEnterpriseInfo> esBaseEnterpriseInfoIterable = enterpriseInfoDao.findAll();
List<EsBaseEnterpriseInfo> esBaseEnterpriseInfos = Lists.newArrayList(esBaseEnterpriseInfoIterable);
Map<String, String> esUseCodeEnterpriseMap = esBaseEnterpriseInfos.stream().collect(Collectors.toMap(EsBaseEnterpriseInfo::getUseCode, EsBaseEnterpriseInfo::getUnitType,(k1,k2)->k2));
LambdaQueryWrapper<TzsUserInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BaseEntity::getIsDelete, false)
.orderByDesc(BaseEntity::getSequenceNbr);
......@@ -1486,7 +1490,9 @@ public class DataHandlerServiceImpl {
esUserInfo.setSubPost(RefreshDataUtils.castStrList2String(u.getSubPost()));
esUserInfo.setEquipType(RefreshDataUtils.castStrList2String(u.getEquipType()));
esUserInfo.setEquipTypeName(RefreshDataUtils.castEquCategory2Name(esUserInfo.getEquipType()));
esUserInfo.setUnitType(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getUnitType());
// 人员类型暂时取esBaseEnterpriseInfo按照资质分开后的,等检验和检测分开后,按照实际情况取就即可:useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getUnitType()
String unitType = esUseCodeEnterpriseMap.getOrDefault(u.getUnitCode(), useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getUnitType());
esUserInfo.setUnitType(unitType);
esUserInfo.setSuperviseOrgName(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getSuperviseOrgName());
esUserInfo.setSuperviseOrgCode(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getSuperviseOrgCode());
esUserInfo.setLicenses(this.buildUserLicenses(u.getSequenceNbr()));
......
......@@ -3,7 +3,9 @@ package com.yeejoin.amos.boot.module.tcm.biz.refresh.handler;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.common.api.dao.EsBaseEnterpriseInfoDao;
import com.yeejoin.amos.boot.module.common.api.dao.EsUserInfoDao;
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.TzsDataRefreshMessage;
import com.yeejoin.amos.boot.module.common.api.service.IDataRefreshHandler;
......@@ -18,6 +20,8 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Optional;
@Component
@Slf4j
@RequiredArgsConstructor
......@@ -29,6 +33,8 @@ public class UserRefreshHandler implements IDataRefreshHandler {
private final EsUserInfoDao esUserInfoDao;
private final EsBaseEnterpriseInfoDao esBaseEnterpriseInfoDao;
private final CommonRefreshService commonRefreshService;
......@@ -62,7 +68,10 @@ public class UserRefreshHandler implements IDataRefreshHandler {
esUserInfo.setSubPost(RefreshDataUtils.castStrList2String(userInfo.getSubPost()));
esUserInfo.setEquipType(RefreshDataUtils.castStrList2String(userInfo.getEquipType()));
esUserInfo.setEquipTypeName(RefreshDataUtils.castEquCategory2Name(esUserInfo.getEquipType()));
esUserInfo.setUnitType(unit.getUnitType());
Optional<EsBaseEnterpriseInfo> esBaseEnterpriseInfo = esBaseEnterpriseInfoDao.findById(unit.getSequenceNbr() + "");
// 人员类型暂时取esBaseEnterpriseInfo按照资质分开后的,等检验和检测分开后,按照实际情况取就即可:unit.getUnitType()
String unitType = esBaseEnterpriseInfo.map(EsBaseEnterpriseInfo::getUnitType).orElse(unit.getUnitType());
esUserInfo.setUnitType(unitType);
esUserInfo.setSuperviseOrgName(unit.getSuperviseOrgName());
esUserInfo.setSuperviseOrgCode(unit.getSuperviseOrgCode());
esUserInfo.setLicenses(commonRefreshService.buildUserLicenses(userInfo.getSequenceNbr()));
......
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