Commit 3086b9db authored by tianyiming's avatar tianyiming

refactor: 添加ES查询并优化orgCode处理逻辑

parent cc47a7dd
......@@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
import com.yeejoin.amos.boot.module.common.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta;
import com.yeejoin.amos.boot.module.common.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.service.EsUpdateService;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
......@@ -15,10 +15,20 @@ import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.HandleRes
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -28,6 +38,7 @@ import java.util.Map;
*/
@Component
@RequiredArgsConstructor
@Slf4j
public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy {
......@@ -35,6 +46,8 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
private final EsUpdateService esUpdateService;
private final RestHighLevelClient restHighLevelClient;
@Override
public HandleResult handle(Map<String, Object> changeData, String record) {
......@@ -193,13 +206,49 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
}
private void setNameByCode2SupervisionInfo(IdxBizJgSupervisionInfo idxBizJgSupervisionInfo) {
String orgCode = idxBizJgSupervisionInfo.getOrgBranchCode();
// 按照org_code查询
if (StringUtils.isNotEmpty(idxBizJgSupervisionInfo.getOrgBranchCode())) {
CompanyBo companyBo = commonEquipDataProcessService.getCommonMapper().queryCompanyByOrgCode(idxBizJgSupervisionInfo.getOrgBranchCode());
idxBizJgSupervisionInfo.setOrgBranchCode(companyBo.getOrgCode());
idxBizJgSupervisionInfo.setOrgBranchName(companyBo.getCompanyName());
idxBizJgSupervisionInfo.setCompanyOrgBranchCode(companyBo.getCompanyCode());
if (StringUtils.isNotEmpty(orgCode)) {
// 特殊处理orgCode
orgCode = changeOrgBranchCode(idxBizJgSupervisionInfo.getRecord(), orgCode);
if (!"50*X".equals(orgCode)) {
CompanyBo companyBo = commonEquipDataProcessService.getCommonMapper().queryCompanyByOrgCode(orgCode);
idxBizJgSupervisionInfo.setOrgBranchCode(companyBo.getOrgCode());
idxBizJgSupervisionInfo.setOrgBranchName(companyBo.getCompanyName());
idxBizJgSupervisionInfo.setCompanyOrgBranchCode(companyBo.getCompanyCode());
} else {
log.info(String.format("设备编辑未从es中查询到正确的orgCode,record为:%s", idxBizJgSupervisionInfo.getRecord()));
}
}
}
private String changeOrgBranchCode(String record, String orgCode) {
if (!"50*X".equals(orgCode)) {
return orgCode;
} else {
// 查询es
SearchRequest request = new SearchRequest();
request.indices("idx_biz_view_jg_all");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true);
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
boolMust.must(QueryBuilders.termQuery("ORG_BRANCH_CODE", orgCode));
boolMust.must(QueryBuilders.termsQuery("SEQUENCE_NBR.keyword", record));
builder.query(boolMust);
request.source(builder);
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
if (response.getHits().getHits().length != 0) {
for (SearchHit hit : response.getHits().getHits()) {
JSONObject jsonObject = ((JSONObject) JSONObject.toJSON(hit)).getJSONObject("sourceAsMap");
return jsonObject.getString("ORG_BRANCH_CODE");
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return orgCode;
}
......
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