Commit b6b854d4 authored by tianyiming's avatar tianyiming

refactor: 优化许可查询返回的处理逻辑

parent f2fde46a
...@@ -64,6 +64,7 @@ import org.typroject.tyboot.core.foundation.context.RequestContext; ...@@ -64,6 +64,7 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.exception.BaseException; import org.typroject.tyboot.core.foundation.exception.BaseException;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.annotation.PostConstruct;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
...@@ -129,6 +130,33 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -129,6 +130,33 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final Map<String, String> permitStatusMap = new HashMap<>(4);
private static final Map<String, String> licensesStatusMap = new HashMap<>(6);
private static final String overdue = "overdue";
private static final String near = "near";
private static final String normal = "normal";
private static final String none = "none";
private static final String noLicense = "noLicense";
private static final String noLicenseReq = "noLicenseReq";
@PostConstruct
public void init() {
permitStatusMap.put(overdue, "许可超期");
permitStatusMap.put(near, "许可临期");
permitStatusMap.put(normal, "许可正常");
permitStatusMap.put(none, "无有效期");
licensesStatusMap.put(overdue, "资质超期");
licensesStatusMap.put(near, "资质临期");
licensesStatusMap.put(normal, "资质正常");
licensesStatusMap.put(none, "无有效期");
licensesStatusMap.put(noLicense, "无资质");
licensesStatusMap.put(noLicenseReq, "无资质要求");
}
public List<Map<String, Object>> queryEquipmentCategory(String key) { public List<Map<String, Object>> queryEquipmentCategory(String key) {
List<Map<String, Object>> list; List<Map<String, Object>> list;
Map<String, List<Map<String, Object>>> resourceJson = JsonUtils.getResourceJson(equipCategory); Map<String, List<Map<String, Object>>> resourceJson = JsonUtils.getResourceJson(equipCategory);
...@@ -295,7 +323,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -295,7 +323,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
dto.put("equipType", equipTypes.substring(0, equipTypes.length() - 1)); dto.put("equipType", equipTypes.substring(0, equipTypes.length() - 1));
} }
StringBuilder licensesStatus = new StringBuilder(); String licensesStatus = null;
if (dto.containsKey("licenses")) { if (dto.containsKey("licenses")) {
// 以下人员类型有资质要求 // 以下人员类型有资质要求
// 人员类型(newPost):检验人员:66151、检测人员:66152、作业人员:6552、检查人员:6763 // 人员类型(newPost):检验人员:66151、检测人员:66152、作业人员:6552、检查人员:6763
...@@ -309,7 +337,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -309,7 +337,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
for (Object object : licenses) { for (Object object : licenses) {
JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(object)); JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(object));
if (!json.containsKey("expiryDate")) { if (!json.containsKey("expiryDate")) {
licensesStatus.append("/无有效期"); permissionStatusList.add("无有效期");
continue; continue;
} }
String expiryDate = json.getString("expiryDate"); String expiryDate = json.getString("expiryDate");
...@@ -326,25 +354,23 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -326,25 +354,23 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
long cq = permissionStatusList.stream().filter(e -> e.equals("超期")).count(); long cq = permissionStatusList.stream().filter(e -> e.equals("超期")).count();
long lq = permissionStatusList.stream().filter(e -> e.equals("临期")).count(); long lq = permissionStatusList.stream().filter(e -> e.equals("临期")).count();
long zc = permissionStatusList.stream().filter(e -> e.equals("正常")).count();
long no = permissionStatusList.stream().filter(e -> e.equals("无有效期")).count(); long no = permissionStatusList.stream().filter(e -> e.equals("无有效期")).count();
long zc = permissionStatusList.stream().filter(e -> e.equals("正常")).count();
// 需按照许可严重顺序进行判断,先判断超期,再判断临期,再判断无有效期,最后判断正常
if (cq > 0) { if (cq > 0) {
licensesStatus.append("/资质超期"); licensesStatus = "资质超期";
} } else if (lq > 0) {
if (lq > 0) { licensesStatus = "资质临期";
licensesStatus.append("/资质临期"); } else if (no > 0) {
} licensesStatus = "无有效期";
if (zc > 0) { } else if (zc > 0) {
licensesStatus.append("/资质正常"); licensesStatus = "资质正常";
}
if (no > 0) {
licensesStatus.append("/无有效期");
} }
} else { } else {
licensesStatus.append("无资质"); licensesStatus = "无资质";
} }
} else { } else {
licensesStatus.append("无资质要求"); licensesStatus = "无资质要求";
} }
} }
String licensesStatusStr = licensesStatus.toString(); String licensesStatusStr = licensesStatus.toString();
...@@ -435,7 +461,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -435,7 +461,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson(); BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson();
boolMust.must(notNeedLicensesQueryBuilder); boolMust.must(notNeedLicensesQueryBuilder);
EnhancedDynamicQueryBuilder enhancedDynamicQueryBuilder = new EnhancedDynamicQueryBuilder(); EnhancedDynamicQueryBuilder enhancedDynamicQueryBuilder = new EnhancedDynamicQueryBuilder();
if (item.equals("overdue")) { if (item.equals(overdue)) {
// 超期:小于当前日期 // 超期:小于当前日期
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -444,7 +470,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -444,7 +470,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); enhancedDynamicQueryBuilder.add(nestedQuery, or);
boolMust.must(enhancedDynamicQueryBuilder.build()); boolMust.must(enhancedDynamicQueryBuilder.build());
} else if (item.equals("near")) { } else if (item.equals(near)) {
// 临期:小于等于当前日期加上30天 // 临期:小于等于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -453,7 +479,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -453,7 +479,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); enhancedDynamicQueryBuilder.add(nestedQuery, or);
boolMust.must(enhancedDynamicQueryBuilder.build()); boolMust.must(enhancedDynamicQueryBuilder.build());
} else if (item.equals("normal")) { } else if (item.equals(normal)) {
// 正常:大于当前日期加上30天 // 正常:大于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -462,7 +488,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -462,7 +488,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); enhancedDynamicQueryBuilder.add(nestedQuery, or);
boolMust.must(enhancedDynamicQueryBuilder.build()); boolMust.must(enhancedDynamicQueryBuilder.build());
} else if (item.equals("none")) { } else if (item.equals(none)) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
QueryBuilders.boolQuery().mustNot(existsQuery(nestedField)), QueryBuilders.boolQuery().mustNot(existsQuery(nestedField)),
...@@ -544,7 +570,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -544,7 +570,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
field = "newPost"; field = "newPost";
} else if (field.equals("superviseOrgName")) { } else if (field.equals("superviseOrgName")) {
field = "superviseOrgCode"; field = "superviseOrgCode";
} else if (field.equals("licensesStauts")){ } else if (field.equals("licensesStauts")) {
field = "licenseMinExpiryDate"; field = "licenseMinExpiryDate";
} }
builder.sort(field, sort.getString("order").equals("desc") ? SortOrder.DESC : SortOrder.ASC); builder.sort(field, sort.getString("order").equals("desc") ? SortOrder.DESC : SortOrder.ASC);
...@@ -563,7 +589,23 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -563,7 +589,23 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
String orgCode = filter.getString("orgCode"); String orgCode = filter.getString("orgCode");
boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode.keyword", orgCode)); boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode.keyword", orgCode));
getCompanyBoolQueryBuilder(filter, boolMust);
JSONObject filterParams = JSONObject.parseObject(JSONObject.toJSONString(filter.get("filterParams")));
if (!ObjectUtils.isEmpty(filter.get("filterParams"))) {
String filterType = filter.getString("filterType");
getCompanyBoolQueryBuilder(filterParams, filterType, boolMust);
}
String permitStatusStr = "";
if (filterParams.containsKey("permitStatus")) {
Object permitStatus = filterParams.get("permitStatus");
if (permitStatus instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) permitStatus;
if (!ObjectUtils.isEmpty(jsonArray) && !jsonArray.contains("all") && jsonArray.size() == 1) {
permitStatusStr = jsonArray.get(0).toString();
}
}
}
// 排序 // 排序
if (!ObjectUtils.isEmpty(filter.get("sort"))) { if (!ObjectUtils.isEmpty(filter.get("sort"))) {
...@@ -581,48 +623,52 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -581,48 +623,52 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
List<JSONObject> list = new LinkedList<>(); List<JSONObject> list = new LinkedList<>();
long totle = 0; long totle = 0;
try { try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT); SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits().getHits()) { for (SearchHit hit : response.getHits().getHits()) {
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit); JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
JSONObject dto = jsonObject.getJSONObject("sourceAsMap"); JSONObject dto = jsonObject.getJSONObject("sourceAsMap");
StringBuilder permissionStatus = new StringBuilder(); String permissionStatus = "";
String overdueStr = permitStatusMap.get(overdue);
String nearStr = permitStatusMap.get(near);
String normalStr = permitStatusMap.get(normal);
String noneStr = permitStatusMap.get(none);
if (dto.containsKey("licenses")) { if (dto.containsKey("licenses")) {
if (!"".equals(permitStatusStr)) {
permissionStatus = permitStatusMap.get(permissionStatus);
} else {
List<String> permissionStatusList = new ArrayList<>();
JSONArray licenses = dto.getJSONArray("licenses"); JSONArray licenses = dto.getJSONArray("licenses");
if (!ObjectUtils.isEmpty(licenses)) { if (!ObjectUtils.isEmpty(licenses)) {
List<String> permissionStatusList = new ArrayList<>();
for (Object object : licenses) { for (Object object : licenses) {
JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(object)); JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(object));
String expiryDate = json.getString("expiryDate"); String expiryDate = json.getString("expiryDate");
if (!ObjectUtils.isEmpty(expiryDate)) { if (!ObjectUtils.isEmpty(expiryDate)) {
long daysBetween = ChronoUnit.DAYS.between(LocalDate.now(), LocalDate.parse(expiryDate, formatter)); long daysBetween = ChronoUnit.DAYS.between(LocalDate.now(), LocalDate.parse(expiryDate, formatter));
if (daysBetween <= 0) { if (daysBetween <= 0) {
permissionStatusList.add("超期"); permissionStatusList.add(overdueStr);
} else if (daysBetween <= 30) { } else if (daysBetween <= 30) {
permissionStatusList.add("临期"); permissionStatusList.add(nearStr);
} else { } else {
permissionStatusList.add("正常"); permissionStatusList.add(normalStr);
} }
} else { } else {
permissionStatusList.add("无有效期"); permissionStatusList.add(noneStr);
} }
} }
long cq = permissionStatusList.stream().filter(e -> e.equals("超期")).count(); long cq = permissionStatusList.stream().filter(e -> e.equals(overdueStr)).count();
long lq = permissionStatusList.stream().filter(e -> e.equals("临期")).count(); long lq = permissionStatusList.stream().filter(e -> e.equals(nearStr)).count();
long zc = permissionStatusList.stream().filter(e -> e.equals("正常")).count(); long no = permissionStatusList.stream().filter(e -> e.equals(noneStr)).count();
long no = permissionStatusList.stream().filter(e -> e.equals("无有效期")).count(); long zc = permissionStatusList.stream().filter(e -> e.equals(normalStr)).count();
if (cq > 0) { if (cq > 0) {
permissionStatus.append("/许可超期"); permissionStatus = overdueStr;
} } else if (lq > 0) {
if (lq > 0) { permissionStatus = nearStr;
permissionStatus.append("/许可临期"); } else if (no > 0) {
} permissionStatus = noneStr;
if (zc > 0) { } else if (zc > 0) {
permissionStatus.append("/许可正常"); permissionStatus = normalStr;
} }
if (no > 0) {
permissionStatus.append("/无有效期");
} }
} }
} else if (!dto.containsKey("licenses") && (dto.get("unitType").toString().contains("检测单位") || } else if (!dto.containsKey("licenses") && (dto.get("unitType").toString().contains("检测单位") ||
...@@ -631,7 +677,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -631,7 +677,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
dto.get("unitType").toString().contains("充装单位") || dto.get("unitType").toString().contains("充装单位") ||
dto.get("unitType").toString().contains("设计单位") || dto.get("unitType").toString().contains("设计单位") ||
dto.get("unitType").toString().contains("安装改造维修单位"))) { dto.get("unitType").toString().contains("安装改造维修单位"))) {
permissionStatus.append("/无有效期"); permissionStatus = noneStr;
} }
String permissionStatusStr = permissionStatus.toString(); String permissionStatusStr = permissionStatus.toString();
permissionStatusStr = permissionStatusStr.startsWith("/") ? permissionStatusStr.substring(1) : permissionStatusStr; permissionStatusStr = permissionStatusStr.startsWith("/") ? permissionStatusStr.substring(1) : permissionStatusStr;
...@@ -666,14 +712,11 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -666,14 +712,11 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
/** /**
* 构造企业查询条件 * 构造企业查询条件
* *
* @param filter * @param filterParams
* @param filterType
* @param boolMust * @param boolMust
*/ */
private void getCompanyBoolQueryBuilder(JSONObject filter, BoolQueryBuilder boolMust) { private void getCompanyBoolQueryBuilder(JSONObject filterParams, String filterType, BoolQueryBuilder boolMust) {
JSONObject filterParams;
if (!ObjectUtils.isEmpty(filter.get("filterParams"))) {
filterParams = JSONObject.parseObject(JSONObject.toJSONString(filter.get("filterParams")));
String filterType = filter.getString("filterType");
deleteUnitCategory(filterParams); deleteUnitCategory(filterParams);
//快捷筛选和自定义筛选解析筛选规则不一致 //快捷筛选和自定义筛选解析筛选规则不一致
if (filterType.equals("advanced")) { if (filterType.equals("advanced")) {
...@@ -696,7 +739,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -696,7 +739,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
((JSONArray) v).forEach(item -> { ((JSONArray) v).forEach(item -> {
String nestedField = path + "." + (k.equals("permitStatus") ? "expiryDate" : k + ".keyword"); String nestedField = path + "." + (k.equals("permitStatus") ? "expiryDate" : k + ".keyword");
if (k.equals("permitStatus")) { if (k.equals("permitStatus")) {
if (item.equals("overdue")) { if (item.equals(overdue)) {
// 超期:小于当前日期 // 超期:小于当前日期
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -704,7 +747,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -704,7 +747,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); enhancedDynamicQueryBuilder.add(nestedQuery, or);
} else if (item.equals("near")) { } else if (item.equals(near)) {
// 临期:小于等于当前日期加上30天 // 临期:小于等于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -712,7 +755,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -712,7 +755,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); enhancedDynamicQueryBuilder.add(nestedQuery, or);
} else if (item.equals("normal")) { } else if (item.equals(normal)) {
// 正常:大于当前日期加上30天 // 正常:大于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -720,7 +763,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -720,7 +763,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); enhancedDynamicQueryBuilder.add(nestedQuery, or);
} else if (item.equals("none")) { } else if (item.equals(none)) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery(nestedField)), QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery(nestedField)),
...@@ -771,7 +814,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -771,7 +814,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
handleAdvancedFilter(boolMust, leftGroup, rightGroup, isOrGroup); handleAdvancedFilter(boolMust, leftGroup, rightGroup, isOrGroup);
} }
} }
}
private void deleteUnitCategory(JSONObject filterParams) { private void deleteUnitCategory(JSONObject filterParams) {
if (filterParams.containsKey("unitType") && !filterParams.getString("unitType").contains("all") && !filterParams.getString("unitType").contains("[]")) { if (filterParams.containsKey("unitType") && !filterParams.getString("unitType").contains("all") && !filterParams.getString("unitType").contains("[]")) {
...@@ -945,13 +987,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -945,13 +987,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
String finalField = field; String finalField = field;
EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder(); EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder();
((JSONArray) v).forEach(item -> { ((JSONArray) v).forEach(item -> {
if (item.equals("overdue")) { if (item.equals(overdue)) {
// 超期:小于当前日期 // 超期:小于当前日期
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().format(formatter))), or); queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().format(formatter))), or);
} else if (item.equals("near")) { } else if (item.equals(near)) {
// 临期:小于等于当前日期加上30天 // 临期:小于等于当前日期加上30天
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).gte(LocalDate.now().format(formatter)).lte(LocalDate.now().plusDays(30).format(formatter))), or); queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).gte(LocalDate.now().format(formatter)).lte(LocalDate.now().plusDays(30).format(formatter))), or);
} else if (item.equals("normal")) { } else if (item.equals(normal)) {
// 正常:大于当前日期加上30天 // 正常:大于当前日期加上30天
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).gt(LocalDate.now().plusDays(30).format(formatter))), or); queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).gt(LocalDate.now().plusDays(30).format(formatter))), or);
} else { } else {
...@@ -1376,7 +1418,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1376,7 +1418,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
if (!ObjectUtils.isEmpty(leftTechParam) && !ObjectUtils.isEmpty(leftParamRange)) { if (!ObjectUtils.isEmpty(leftTechParam) && !ObjectUtils.isEmpty(leftParamRange)) {
addTechParam(leftTechParam, leftParamRange, leftBuilder); addTechParam(leftTechParam, leftParamRange, leftBuilder);
} }
if(!ObjectUtils.isEmpty(leftGroupList)){ if (!ObjectUtils.isEmpty(leftGroupList)) {
// 非计数参数处理 // 非计数参数处理
groupHandler(leftGroupList, leftBuilder); groupHandler(leftGroupList, leftBuilder);
// 添加左侧筛选条件到最终筛选条件中 // 添加左侧筛选条件到最终筛选条件中
...@@ -1400,7 +1442,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1400,7 +1442,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
if (!ObjectUtils.isEmpty(rightTechParam) && !ObjectUtils.isEmpty(rightParamRange)) { if (!ObjectUtils.isEmpty(rightTechParam) && !ObjectUtils.isEmpty(rightParamRange)) {
addTechParam(rightTechParam, rightParamRange, rightBuilder); addTechParam(rightTechParam, rightParamRange, rightBuilder);
} }
if(!ObjectUtils.isEmpty(rightGroupList)){ if (!ObjectUtils.isEmpty(rightGroupList)) {
// 非计数参数处理 // 非计数参数处理
groupHandler(rightGroupList, rightBuilder); groupHandler(rightGroupList, rightBuilder);
// 添加右侧筛选条件到最终筛选条件中 // 添加右侧筛选条件到最终筛选条件中
...@@ -1563,7 +1605,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1563,7 +1605,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
} }
} else if (field.equals("expiryDate")) { } else if (field.equals("expiryDate")) {
if (value.equals("overdue")) { if (value.equals(overdue)) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -1579,7 +1621,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1579,7 +1621,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
); );
builder.add(nestedQuery, isOr); builder.add(nestedQuery, isOr);
} }
} else if (value.equals("near")) { } else if (value.equals(near)) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -1601,7 +1643,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1601,7 +1643,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
builder.add(overdueNestedQuery, or); builder.add(overdueNestedQuery, or);
builder.add(normalNestedQuery, or); builder.add(normalNestedQuery, or);
} }
} else if (value.equals("normal")) { } else if (value.equals(normal)) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -1719,7 +1761,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1719,7 +1761,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(nestedField).lte(LocalDate.now().plusDays(30).format(formatter)).gte(LocalDate.now().format(formatter))), QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(nestedField).lte(LocalDate.now().plusDays(30).format(formatter)).gte(LocalDate.now().format(formatter))),
ScoreMode.None ScoreMode.None
); );
if (value.equals("overdue")) { if (value.equals(overdue)) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
builder.add(QueryBuilders.boolQuery().must(overdueNestedQuery), isOr); builder.add(QueryBuilders.boolQuery().must(overdueNestedQuery), isOr);
} else { } else {
...@@ -1733,7 +1775,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1733,7 +1775,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
builders.add(QueryBuilders.boolQuery().must(noneQuery), or); builders.add(QueryBuilders.boolQuery().must(noneQuery), or);
builder.add(builders.build(), isOr); builder.add(builders.build(), isOr);
} }
} else if (value.equals("near")) { } else if (value.equals(near)) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
builder.add(QueryBuilders.boolQuery().must(nearNestedQuery), isOr); builder.add(QueryBuilders.boolQuery().must(nearNestedQuery), isOr);
} else { } else {
...@@ -1743,7 +1785,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1743,7 +1785,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
builders.add(QueryBuilders.boolQuery().must(noneQuery), or); builders.add(QueryBuilders.boolQuery().must(noneQuery), or);
builder.add(builders.build(), isOr); builder.add(builders.build(), isOr);
} }
} else if (value.equals("normal")) { } else if (value.equals(normal)) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
builder.add(normalNestedQuery, isOr); builder.add(normalNestedQuery, isOr);
} else { } else {
...@@ -1757,7 +1799,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1757,7 +1799,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
builders.add(QueryBuilders.boolQuery().must(noneQuery), or); builders.add(QueryBuilders.boolQuery().must(noneQuery), or);
builder.add(builders.build(), isOr); builder.add(builders.build(), isOr);
} }
} else if (value.equals("none")) { } else if (value.equals(none)) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
builder.add(QueryBuilders.boolQuery().must(existsQuery), or); builder.add(QueryBuilders.boolQuery().must(existsQuery), or);
} else { } else {
...@@ -1795,14 +1837,14 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1795,14 +1837,14 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
private void equipFieldHandle(String field, String itemCondition, Object value, String isOr, EnhancedDynamicQueryBuilder builder) { private void equipFieldHandle(String field, String itemCondition, Object value, String isOr, EnhancedDynamicQueryBuilder builder) {
if (field.equals("NEXT_INSPECT_DATE")) { if (field.equals("NEXT_INSPECT_DATE")) {
if (value.equals("overdue")) { if (value.equals(overdue)) {
// 超期:小于当前日期 // 超期:小于当前日期
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
builder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(field).lt(LocalDate.now().format(formatter))), isOr); builder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(field).lt(LocalDate.now().format(formatter))), isOr);
} else { } else {
builder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(field).gt(LocalDate.now().format(formatter))), isOr); builder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(field).gt(LocalDate.now().format(formatter))), isOr);
} }
} else if (value.equals("near")) { } else if (value.equals(near)) {
// 临期:小于等于当前日期加上30天 // 临期:小于等于当前日期加上30天
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
builder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(field).gte(LocalDate.now().format(formatter)).lte(LocalDate.now().plusDays(30).format(formatter))), isOr); builder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(field).gte(LocalDate.now().format(formatter)).lte(LocalDate.now().plusDays(30).format(formatter))), isOr);
...@@ -1954,21 +1996,21 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1954,21 +1996,21 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
if (0 == i) { if (0 == i) {
object.put("key", "normal"); object.put("key", normal);
object.put("value", "normal"); object.put("value", normal);
object.put("label", "许可正常"); object.put("label", permitStatusMap.get(normal));
} else if (1 == i) { } else if (1 == i) {
object.put("key", "near"); object.put("key", near);
object.put("value", "near"); object.put("value", near);
object.put("label", "许可临期"); object.put("label", permitStatusMap.get(near));
} else if (2 == i) { } else if (2 == i) {
object.put("key", "overdue"); object.put("key", overdue);
object.put("value", "overdue"); object.put("value", overdue);
object.put("label", "许可超期"); object.put("label", permitStatusMap.get(overdue));
} else { } else {
object.put("key", "none"); object.put("key", none);
object.put("value", "none"); object.put("value", none);
object.put("label", "无有效期"); object.put("label", permitStatusMap.get(none));
} }
permitStatus.add(object); permitStatus.add(object);
} }
...@@ -2568,21 +2610,21 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -2568,21 +2610,21 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
if (0 == i) { if (0 == i) {
object.put("key", "normal"); object.put("key", normal);
object.put("value", "normal"); object.put("value", normal);
object.put("label", "资质正常"); object.put("label", licensesStatusMap.get(normal));
} else if (1 == i) { } else if (1 == i) {
object.put("key", "near"); object.put("key", near);
object.put("value", "near"); object.put("value", near);
object.put("label", "资质临期"); object.put("label", licensesStatusMap.get(near));
} else if (2 == i) { } else if (2 == i) {
object.put("key", "overdue"); object.put("key", overdue);
object.put("value", "overdue"); object.put("value", overdue);
object.put("label", "资质超期"); object.put("label", licensesStatusMap.get(overdue));
} else { } else {
object.put("key", "none"); object.put("key", none);
object.put("value", "none"); object.put("value", none);
object.put("label", "无有效期"); object.put("label", licensesStatusMap.get(none));
} }
permissionStatus.add(object); permissionStatus.add(object);
} }
...@@ -2842,7 +2884,11 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -2842,7 +2884,11 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
// 构造企业查询条件 // 构造企业查询条件
filter.put("filterType", "advanced"); filter.put("filterType", "advanced");
getCompanyBoolQueryBuilder(filter, boolMust);
if (!ObjectUtils.isEmpty(filter.get("filterParams"))) {
String filterType = filter.getString("filterType");
getCompanyBoolQueryBuilder(filterParams, filterType, boolMust);
}
boolean is2LeveFlag = Optional.of(filter) boolean is2LeveFlag = Optional.of(filter)
.map(obj -> obj.getJSONObject("filterParams")) .map(obj -> obj.getJSONObject("filterParams"))
......
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