Commit 3086b9db authored by tianyiming's avatar tianyiming

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

parent cc47a7dd
...@@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject; ...@@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo; import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity; 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.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta; 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.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.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy; 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 ...@@ -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.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.ymt.api.entity.*; import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; 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.springframework.stereotype.Component;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -28,6 +38,7 @@ import java.util.Map; ...@@ -28,6 +38,7 @@ import java.util.Map;
*/ */
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j
public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy { public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy {
...@@ -35,6 +46,8 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy ...@@ -35,6 +46,8 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
private final EsUpdateService esUpdateService; private final EsUpdateService esUpdateService;
private final RestHighLevelClient restHighLevelClient;
@Override @Override
public HandleResult handle(Map<String, Object> changeData, String record) { public HandleResult handle(Map<String, Object> changeData, String record) {
...@@ -193,13 +206,49 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy ...@@ -193,13 +206,49 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
} }
private void setNameByCode2SupervisionInfo(IdxBizJgSupervisionInfo idxBizJgSupervisionInfo) { private void setNameByCode2SupervisionInfo(IdxBizJgSupervisionInfo idxBizJgSupervisionInfo) {
String orgCode = idxBizJgSupervisionInfo.getOrgBranchCode();
// 按照org_code查询 // 按照org_code查询
if (StringUtils.isNotEmpty(idxBizJgSupervisionInfo.getOrgBranchCode())) { if (StringUtils.isNotEmpty(orgCode)) {
CompanyBo companyBo = commonEquipDataProcessService.getCommonMapper().queryCompanyByOrgCode(idxBizJgSupervisionInfo.getOrgBranchCode()); // 特殊处理orgCode
idxBizJgSupervisionInfo.setOrgBranchCode(companyBo.getOrgCode()); orgCode = changeOrgBranchCode(idxBizJgSupervisionInfo.getRecord(), orgCode);
idxBizJgSupervisionInfo.setOrgBranchName(companyBo.getCompanyName()); if (!"50*X".equals(orgCode)) {
idxBizJgSupervisionInfo.setCompanyOrgBranchCode(companyBo.getCompanyCode()); 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