Commit 5e654dc7 authored by tianyiming's avatar tianyiming

调整综合统计查询

parent 3aab2ad9
...@@ -17,10 +17,9 @@ public enum DataQualityScoreEnum { ...@@ -17,10 +17,9 @@ public enum DataQualityScoreEnum {
* *设备等级 * *设备等级
*/ */
I("一级", "3"), I("一级(只有设备名称其他使用登记证上信息无)", "3"),
II("二级", "2"), II("二级(只有设备名称和使用登记证编号其他使用登记证上信息无)", "2"),
III("三级", "1"), III("三级(使用登记证上信息齐全)", "1");
;
private String name; private String name;
private String code; private String code;
......
...@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject; ...@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
@AllArgsConstructor @AllArgsConstructor
...@@ -16,16 +18,17 @@ public enum UnitTypeEnum { ...@@ -16,16 +18,17 @@ public enum UnitTypeEnum {
* *注册单位类型 * *注册单位类型
*/ */
sydw("使用单位", "1232"), sydw("使用单位", "1232", "use"),
czdw("充装单位", "1231"), czdw("充装单位", "1231", "license"),
jyjcjg("检验检测机构", "1233"), jyjcjg("检验检测机构", "1233", "license"),
azgzwxdw("安装改造维修单位", "1234"), azgzwxdw("安装改造维修单位", "1234", "license"),
zzdw("制造单位", "1236"), zzdw("制造单位", "1236", "license"),
sjdw("设计单位", "1235"), sjdw("设计单位", "1235", "license"),
grzt("个人主体", "6599"); grzt("个人主体", "6599", "use");
private String name; private String name;
private String code; private String code;
private String type;
public static Map<String, String> getName = new HashMap<>(); public static Map<String, String> getName = new HashMap<>();
public static Map<String, String> getCode = new HashMap<>(); public static Map<String, String> getCode = new HashMap<>();
...@@ -38,15 +41,43 @@ public enum UnitTypeEnum { ...@@ -38,15 +41,43 @@ public enum UnitTypeEnum {
} }
} }
public static JSONArray getAll(){ public static JSONArray getAll() {
JSONArray jsonArray = new JSONArray(); JSONArray jsonArray = new JSONArray();
for (UnitTypeEnum e : UnitTypeEnum.values()) { for (UnitTypeEnum e : UnitTypeEnum.values()) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("label",e.name); jsonObject.put("label", e.name);
jsonObject.put("value",e.name); jsonObject.put("value", e.name);
jsonObject.put("key",e.code); jsonObject.put("key", e.code);
jsonArray.add(jsonObject); jsonArray.add(jsonObject);
} }
return jsonArray; return jsonArray;
} }
public static List<Map<String, Object>> getUnitTypeByCategory(String category) {
List<Map<String, Object>> list = new ArrayList<>();
for (UnitTypeEnum e : UnitTypeEnum.values()) {
if (e.type.equals(category)) {
Map<String, Object> map = new HashMap<>();
map.put("label", e.name);
map.put("value", e.name);
map.put("key", e.code);
list.add(map);
}
}
return list;
}
public static JSONArray getUnitTypeByType(String category) {
JSONArray jsonArray = new JSONArray();
for (UnitTypeEnum e : UnitTypeEnum.values()) {
if (e.type.equals(category)) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("label", e.name);
jsonObject.put("value", e.name);
jsonObject.put("key", e.code);
jsonArray.add(jsonObject);
}
}
return jsonArray;
}
} }
...@@ -96,8 +96,8 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController { ...@@ -96,8 +96,8 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryUnitType") @GetMapping(value = "/select/queryUnitType")
@ApiOperation(httpMethod = "GET", value = "查询单位类型", notes = "查询单位类型") @ApiOperation(httpMethod = "GET", value = "查询单位类型", notes = "查询单位类型")
public ResponseModel<JSONArray> queryUnitType() { public ResponseModel<JSONArray> queryUnitType(@RequestParam(required = false) String type) {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryUnitType()); return ResponseHelper.buildResponse(statisticalAnalysisService.queryUnitType(type));
} }
/** /**
......
...@@ -57,7 +57,6 @@ import org.typroject.tyboot.component.emq.EmqKeeper; ...@@ -57,7 +57,6 @@ import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.context.RequestContext; 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 org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
...@@ -65,6 +64,7 @@ import java.time.LocalDate; ...@@ -65,6 +64,7 @@ import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import static org.elasticsearch.index.query.QueryBuilders.existsQuery; import static org.elasticsearch.index.query.QueryBuilders.existsQuery;
...@@ -95,9 +95,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -95,9 +95,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
private final String BUCKET_NAME = "upload"; private final String BUCKET_NAME = "upload";
private final String UPLOAD_PATH = "/tzs/excelTempFile"; private final String UPLOAD_PATH = "/tzs/excelTempFile";
private final List<String> equipHandleOtherFields = Arrays.asList("techParam", "paramRange", "NEXT_INSPECT_DATE", "IS_SUPERVISORY_CODE", "USC_DATE", "createDate"); private final List<String> equipHandleOtherFields = Arrays.asList("techParam", "paramRange", "JDJY", "DQJY", "SCJY", "DTJY", "QZ_OR_TANK");
private final List<String> companyHandleOtherFields = Arrays.asList("itemCode", "subItemCode", "permitStatus", "equipCategory", "regulatoryLabels", "unitType"); private final List<String> companyHandleOtherFields = Arrays.asList("itemCode", "subItemCode", "permitStatus", "equipCategory", "regulatoryLabels", "unitType");
private final List<String> personHandleOtherFields = Arrays.asList("newPost", "subPost", "certNo", "expiryDate", "certType", "permissionLevel", "jobItem", "permissionItem", "issueDate", "equipType", "unitType"); private final List<String> personHandleOtherFields = Arrays.asList("newPost", "subPost", "certNo", "expiryDate", "certType", "permissionLevel", "jobItem", "permissionItem", "issueDate", "equipType");
private final String or = "or"; private final String or = "or";
private final String and = "and"; private final String and = "and";
...@@ -244,13 +244,20 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -244,13 +244,20 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
if (v instanceof JSONArray) { if (v instanceof JSONArray) {
if (!((JSONArray) v).contains("all") && ((JSONArray) v).size() > 0) { if (!((JSONArray) v).contains("all") && ((JSONArray) v).size() > 0) {
String field = k; String field = k;
if (k.equals("newPost") || k.equals("subPost")) { if (k.equals("unitCategory")) {
if (!ObjectUtils.isEmpty(v) && ((JSONArray) v).size() == 1) {
String category = ((JSONArray) v).get(0).toString();
JSONArray unitTypeByType = UnitTypeEnum.getUnitTypeByType(category);
List<String> list = unitTypeByType.stream().map(e -> JSONObject.parseObject(JSONObject.toJSONString(e)).get("value").toString()).collect(Collectors.toList());
list.forEach(item -> boolMust.should(QueryBuilders.wildcardQuery("unitType.keyword", "*" + item + "*")).minimumShouldMatch(1));
}
} else if (k.equals("newPost") || k.equals("subPost")) {
((JSONArray) v).forEach(item -> { ((JSONArray) v).forEach(item -> {
boolMust.must(QueryBuilders.wildcardQuery(field + ".keyword", "*" + item + "*")); boolMust.must(QueryBuilders.wildcardQuery(field + ".keyword", "*" + item + "*"));
}); });
} else if (k.equals("equipType") || k.equals("unitType")) { } else if (k.equals("equipType")) {
boolMust.must(existsQuery(field)); boolMust.must(existsQuery(field));
((JSONArray) v).forEach(item -> boolMust.must(QueryBuilders.wildcardQuery(k.equals("equipType") ? field : field + ".keyword", "*" + item + "*"))); ((JSONArray) v).forEach(item -> boolMust.must(QueryBuilders.wildcardQuery(field, "*" + item + "*")));
} else if (k.equals("education")) { } else if (k.equals("education")) {
boolMust.must(existsQuery(field)); boolMust.must(existsQuery(field));
TermsQueryBuilder termsQuery = QueryBuilders.termsQuery(field, (JSONArray) v); TermsQueryBuilder termsQuery = QueryBuilders.termsQuery(field, (JSONArray) v);
...@@ -349,6 +356,16 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -349,6 +356,16 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
boolMust.filter(nestedQuery); boolMust.filter(nestedQuery);
} }
} }
} else if (v instanceof String) {
if (k.equals("fuzzyInput")) {
if (!"null".equals(v) && !"".equals(v)) {
String fuzzyValue = v.toString();
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.should(QueryBuilders.wildcardQuery("name", "*" + fuzzyValue + "*"));
queryBuilder.minimumShouldMatch(1);
boolMust.must(queryBuilder);
}
}
} }
}); });
} else { } else {
...@@ -482,10 +499,16 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -482,10 +499,16 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
if (v instanceof JSONArray) { if (v instanceof JSONArray) {
if (!((JSONArray) v).contains("all")) { if (!((JSONArray) v).contains("all")) {
String field = k; String field = k;
if (k.equals("regulatoryLabels") || k.equals("equipCategory") || k.equals("unitType")) { if (k.equals("unitCategory")) {
if (!ObjectUtils.isEmpty(v) && ((JSONArray) v).size() == 1) {
String category = ((JSONArray) v).get(0).toString();
JSONArray unitTypeByType = UnitTypeEnum.getUnitTypeByType(category);
List<String> list = unitTypeByType.stream().map(e -> JSONObject.parseObject(JSONObject.toJSONString(e)).get("value").toString()).collect(Collectors.toList());
list.forEach(item -> boolMust.should(QueryBuilders.wildcardQuery("unitType.keyword", "*" + item + "*")).minimumShouldMatch(1));
}
} else if (k.equals("regulatoryLabels") || k.equals("equipCategory") || k.equals("unitType")) {
boolMust.must(existsQuery(field)); boolMust.must(existsQuery(field));
((JSONArray) v).forEach(item -> boolMust.should(QueryBuilders.wildcardQuery(field + ".keyword", "*" + item + "*"))); ((JSONArray) v).forEach(item -> boolMust.should(QueryBuilders.wildcardQuery(field + ".keyword", "*" + item + "*")).minimumShouldMatch(1));
boolMust.minimumShouldMatch(1);
} else if (k.equals("industrySupervisor") || k.equals("operatingStatus")) { } else if (k.equals("industrySupervisor") || k.equals("operatingStatus")) {
boolMust.must(existsQuery(field)); boolMust.must(existsQuery(field));
TermsQueryBuilder termsQuery = QueryBuilders.termsQuery(field + ".keyword", ((JSONArray) v).get(0)); TermsQueryBuilder termsQuery = QueryBuilders.termsQuery(field + ".keyword", ((JSONArray) v).get(0));
...@@ -532,6 +555,16 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -532,6 +555,16 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
}); });
} }
} }
} else if (v instanceof String) {
if (k.equals("fuzzyInput")) {
if (!"null".equals(v) && !"".equals(v)) {
String fuzzyValue = v.toString();
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.should(QueryBuilders.wildcardQuery("useUnit", "*" + fuzzyValue + "*"));
queryBuilder.minimumShouldMatch(1);
boolMust.must(queryBuilder);
}
}
} }
}); });
} else { } else {
...@@ -630,7 +663,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -630,7 +663,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
String orgCode = filter.getString("orgCode"); String orgCode = filter.getString("orgCode");
boolMust.must(QueryBuilders.prefixQuery("ORG_BRANCH_CODE", orgCode)); boolMust.must(QueryBuilders.prefixQuery("ORG_BRANCH_CODE", orgCode));
JSONObject filterParams; JSONObject filterParams = null;
// 筛选 // 筛选
if (!ObjectUtils.isEmpty(filter.get("filterParams"))) { if (!ObjectUtils.isEmpty(filter.get("filterParams"))) {
filterParams = JSONObject.parseObject(JSONObject.toJSONString(filter.get("filterParams"))); filterParams = JSONObject.parseObject(JSONObject.toJSONString(filter.get("filterParams")));
...@@ -655,14 +688,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -655,14 +688,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
Boolean parseParam = getParamAnalysis(v); Boolean parseParam = getParamAnalysis(v);
if (parseParam) { if (parseParam) {
String field = k; String field = k;
if (k.equals("unitType")) { if (k.equals("NEXT_INSPECT_DATE")) {
String finalField = field;
EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder();
((JSONArray) v).forEach(item -> {
queryBuilder.add(QueryBuilders.wildcardQuery(finalField, "*" + item + "*"), or);
});
boolMust.must(queryBuilder.build());
} else if (k.equals("NEXT_INSPECT_DATE")) {
String finalField = field; String finalField = field;
boolMust.must(existsQuery(finalField)); boolMust.must(existsQuery(finalField));
EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder(); EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder();
...@@ -679,42 +705,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -679,42 +705,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
}); });
boolMust.must(queryBuilder.build()); boolMust.must(queryBuilder.build());
} else if (k.equals("USC_DATE")) { } else if (k.equals("PRODUCE_DATE") || k.equals("issueDate") || k.equals("designDate") || k.equals("nextInspectDate") || k.equals("USC_DATE")) {
String finalField = field; field = k.equals("nextInspectDate") ? "NEXT_INSPECT_DATE" : k;
boolMust.must(existsQuery(finalField)); JSONArray dates = (JSONArray) v;
EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder(); String startDate = dates.getString(0);
((JSONArray) v).forEach(item -> { String endDate = dates.getString(1);
if (item.equals("15")) { boolMust.filter(QueryBuilders.rangeQuery(field).gte(startDate).lte(endDate));
// 15年以上:大于当前日期减去15年 } else if (k.equals("EQU_LIST") || k.equals("EQU_CATEGORY") || k.equals("EQU_DEFINE") || k.equals("EQU_STATE") || k.equals("DATA_QUALITY_SCORE")) {
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).gt(LocalDate.now().minusYears(15).format(formatter))), or);
} else if (item.equals("10-15")) {
// 10-15年:小于当前日期减去15年,大于等于当前日期减去10年
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(15).format(formatter)).gte(LocalDate.now().minusYears(10).format(formatter))), or);
} else if (item.equals("5-10")) {
// 5-10年:小于当前日期减去10年,大于等于当前日期减去5年
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(10).format(formatter)).gte(LocalDate.now().minusYears(5).format(formatter))), or);
} else if (item.equals("0-5")) {
// 0-5年:小于当前日期减去5年
queryBuilder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(finalField).lt(LocalDate.now().minusYears(5).format(formatter))), or);
}
});
boolMust.must(queryBuilder.build());
} else if (k.equals("IS_SUPERVISORY_CODE")) {
String finalField = k;
((JSONArray) v).forEach(item -> {
if (item.equals("1")) {
boolMust.must(existsQuery(finalField));
boolMust.mustNot(QueryBuilders.termQuery(finalField, "null"));
} else {
boolMust.mustNot(existsQuery(finalField));
}
});
} else if (k.equals("createDate")) {
JSONArray createDates = (JSONArray) v;
String startDate = DateUtils.convertDateToString(createDates.getDate(0), DateUtils.DATE_TIME_PATTERN);
String endDate = DateUtils.convertDateToString(createDates.getDate(1), DateUtils.DATE_TIME_PATTERN);
boolMust.filter(QueryBuilders.rangeQuery("createDate").gte(startDate.replace(" ", "T")).lte(endDate.replace(" ", "T")));
} else if (k.equals("EQU_LIST") || k.equals("EQU_CATEGORY") || k.equals("EQU_DEFINE") || k.equals("EQU_STATE") || k.equals("DATA_QUALITY_SCORE") || k.equals("DATA_SOURCE")) {
if (k.equals("EQU_LIST")) { if (k.equals("EQU_LIST")) {
field = "EQU_LIST_CODE"; field = "EQU_LIST_CODE";
} else if (k.equals("EQU_CATEGORY")) { } else if (k.equals("EQU_CATEGORY")) {
...@@ -725,7 +722,55 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -725,7 +722,55 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
boolMust.must(existsQuery(field)); boolMust.must(existsQuery(field));
TermsQueryBuilder termsQuery = QueryBuilders.termsQuery(field, (JSONArray) v); TermsQueryBuilder termsQuery = QueryBuilders.termsQuery(field, (JSONArray) v);
boolMust.must(termsQuery); boolMust.must(termsQuery);
} else if (k.equals("JDJY") || k.equals("DQJY") || k.equals("SCJY") || k.equals("DTJY")) {
String path = "inspections";
String typeField = path + ".inspectType";
String dateField = path + ".inspectDate";
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
if (k.equals("JDJY")) {
queryBuilder.must(QueryBuilders.wildcardQuery(typeField, "*JDJY*"));
} else {
queryBuilder.must(QueryBuilders.termsQuery(typeField, k));
} }
NestedQueryBuilder fieldQuery = QueryBuilders.nestedQuery(
path,
queryBuilder,
ScoreMode.Avg
);
JSONArray dates = (JSONArray) v;
String startDate = dates.getString(0);
String endDate = dates.getString(1);
NestedQueryBuilder dateQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.rangeQuery(dateField).gte(startDate).lte(endDate),
ScoreMode.Avg
);
boolMust.must(fieldQuery);
boolMust.filter(dateQuery);
} else if (k.equals("QZ_OR_TANK")) {
EnhancedDynamicQueryBuilder queryBuilder = new EnhancedDynamicQueryBuilder();
((JSONArray) v).forEach(item -> {
if (!"".equals(item)) {
queryBuilder.add(QueryBuilders.matchQuery(item.toString(), "1"), or);
}
});
boolMust.must(queryBuilder.build());
}
}
} else if (v instanceof String) {
if (k.equals("fuzzyInput")) {
if (!"null".equals(v) && !"".equals(v)) {
String fuzzyValue = v.toString();
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.should(QueryBuilders.wildcardQuery("EQU_LIST", "*" + fuzzyValue + "*"));
queryBuilder.should(QueryBuilders.wildcardQuery("EQU_CATEGORY", "*" + fuzzyValue + "*"));
queryBuilder.should(QueryBuilders.wildcardQuery("EQU_DEFINE", "*" + fuzzyValue + "*"));
queryBuilder.should(QueryBuilders.wildcardQuery("PRODUCT_NAME", "*" + fuzzyValue + "*"));
queryBuilder.minimumShouldMatch(1);
boolMust.must(queryBuilder);
}
} else if (k.equals("WHETHER_VEHICLE_CYLINDER")) {
boolMust.must(QueryBuilders.matchQuery(k, v.toString()));
} }
} }
} }
...@@ -754,8 +799,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -754,8 +799,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
Boolean isOrGroup = or.equals(filterParams.getString("groupAndOr")) ? Boolean.TRUE : Boolean.FALSE; Boolean isOrGroup = or.equals(filterParams.getString("groupAndOr")) ? Boolean.TRUE : Boolean.FALSE;
handleAdvancedFilter(boolMust, leftGroup, rightGroup, isOrGroup); handleAdvancedFilter(boolMust, leftGroup, rightGroup, isOrGroup);
} }
} else {
filterParams = null;
} }
// 排序 // 排序
...@@ -784,7 +827,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -784,7 +827,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
List<JSONObject> list = new LinkedList<>(); List<JSONObject> list = new LinkedList<>();
long totle = 0; long totle = 0;
// double pipeLong = 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()) {
...@@ -794,6 +836,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -794,6 +836,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
dto.put("equipAddress", dto.get("USE_PLACE") + "/" + dto.get("ADDRESS")); dto.put("equipAddress", dto.get("USE_PLACE") + "/" + dto.get("ADDRESS"));
String dataQualityScore = ObjectUtils.isEmpty(dto.get("DATA_QUALITY_SCORE")) ? null : DataQualityScoreEnum.getNameByCode(dto.get("DATA_QUALITY_SCORE").toString()); String dataQualityScore = ObjectUtils.isEmpty(dto.get("DATA_QUALITY_SCORE")) ? null : DataQualityScoreEnum.getNameByCode(dto.get("DATA_QUALITY_SCORE").toString());
dto.put("DATA_QUALITY_SCORE", dataQualityScore); dto.put("DATA_QUALITY_SCORE", dataQualityScore);
dto.put("WHETHER_VEHICLE_CYLINDER", ObjectUtils.isEmpty(dto.get("WHETHER_VEHICLE_CYLINDER")) ? "" : "1".equals(dto.get("WHETHER_VEHICLE_CYLINDER")) ? "是" : "否");
dto.put("WHETHER_SKID_MOUNTED_PRESSURE_VESSEL", ObjectUtils.isEmpty(dto.get("WHETHER_SKID_MOUNTED_PRESSURE_VESSEL")) ? "" : "1".equals(dto.get("WHETHER_SKID_MOUNTED_PRESSURE_VESSEL")) ? "是" : "否");
dto.put("whetherSphericalTank", ObjectUtils.isEmpty(dto.get("whetherSphericalTank")) ? "" : "1".equals(dto.get("whetherSphericalTank")) ? "是" : "否");
// if (dto.get("EQU_LIST_CODE").equals("8000")) { // if (dto.get("EQU_LIST_CODE").equals("8000")) {
// JSONArray techParams = (JSONArray) dto.get("techParams"); // JSONArray techParams = (JSONArray) dto.get("techParams");
// if (!ObjectUtils.isEmpty(techParams)) { // if (!ObjectUtils.isEmpty(techParams)) {
...@@ -1142,6 +1187,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1142,6 +1187,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
if (equipHandleOtherFields.contains(field) || companyHandleOtherFields.contains(field) || personHandleOtherFields.contains(field)) { if (equipHandleOtherFields.contains(field) || companyHandleOtherFields.contains(field) || personHandleOtherFields.contains(field)) {
handleOtherField(field, itemCondition, value, isOr, builder); handleOtherField(field, itemCondition, value, isOr, builder);
} else { } else {
field = field.equals("nextInspectDate") ? "NEXT_INSPECT_DATE" : field;
switch (itemCondition) { switch (itemCondition) {
case "eq": case "eq":
builder.add(QueryBuilders.termQuery(field, value), isOr); builder.add(QueryBuilders.termQuery(field, value), isOr);
...@@ -1193,7 +1239,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1193,7 +1239,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
private void personFieldHandle(String field, String itemCondition, Object value, String isOr, EnhancedDynamicQueryBuilder builder) { private void personFieldHandle(String field, String itemCondition, Object value, String isOr, EnhancedDynamicQueryBuilder builder) {
if (field.equals("newPost") || field.equals("subPost") || field.equals("equipType") || field.equals("unitType")) { if (field.equals("newPost") || field.equals("subPost") || field.equals("equipType")) {
if (itemCondition.equals("eq")) { if (itemCondition.equals("eq")) {
builder.add(QueryBuilders.termQuery(field + ".keyword", value), isOr); builder.add(QueryBuilders.termQuery(field + ".keyword", value), isOr);
} else if (itemCondition.equals("in")) { } else if (itemCondition.equals("in")) {
...@@ -1450,13 +1496,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1450,13 +1496,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
builder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(field).lt(LocalDate.now().plusDays(30).format(formatter))), isOr); builder.add(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery(field).lt(LocalDate.now().plusDays(30).format(formatter))), isOr);
} }
} }
} else if (field.equals("IS_SUPERVISORY_CODE")) {
String finalField = "SUPERVISORY_CODE";
if (value.equals("1")) {
builder.add(QueryBuilders.boolQuery().must(existsQuery(finalField)).mustNot(QueryBuilders.termsQuery(finalField, "null")), isOr);
} else {
builder.add(QueryBuilders.boolQuery().mustNot(existsQuery(finalField)), isOr);
}
} else if (field.equals("USC_DATE")) { } else if (field.equals("USC_DATE")) {
if (value.equals("15")) { if (value.equals("15")) {
// 15年以上:大于当前日期减去15年 // 15年以上:大于当前日期减去15年
...@@ -1489,18 +1528,61 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1489,18 +1528,61 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
builder.add(QueryBuilders.rangeQuery(field).gte(LocalDate.now().minusYears(5).format(formatter)), isOr); builder.add(QueryBuilders.rangeQuery(field).gte(LocalDate.now().minusYears(5).format(formatter)), isOr);
} }
} }
} else if (field.equals("createDate")) { } else if (field.equals("JDJY") || field.equals("DQJY") || field.equals("SCJY") || field.equals("DTJY")) {
JSONArray createDates = (JSONArray) value; String path = "inspections";
String startDate = DateUtils.convertDateToString(createDates.getDate(0), DateUtils.DATE_TIME_PATTERN); String typeField = path + ".inspectType";
String endDate = DateUtils.convertDateToString(createDates.getDate(1), DateUtils.DATE_TIME_PATTERN); String dateField = path + ".inspectDate";
builder.add(QueryBuilders.rangeQuery("createDate").gte(startDate.replace(" ", "T")).lte(endDate.replace(" ", "T")), isOr); BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
if (field.equals("JDJY")) {
queryBuilder.must(QueryBuilders.wildcardQuery(typeField, "*JDJY*"));
} else {
queryBuilder.must(QueryBuilders.termsQuery(typeField, field));
}
NestedQueryBuilder fieldQuery = QueryBuilders.nestedQuery(
path,
queryBuilder,
ScoreMode.Avg
);
builder.add(fieldQuery, and);
BoolQueryBuilder query = QueryBuilders.boolQuery();
switch (itemCondition) {
case "lt":
query.must(QueryBuilders.rangeQuery(dateField).lt(value));
break;
case "lte":
query.must(QueryBuilders.rangeQuery(dateField).lte(value));
break;
case "gt":
query.must(QueryBuilders.rangeQuery(dateField).gt(value));
break;
case "gte":
query.must(QueryBuilders.rangeQuery(dateField).gte(value));
break;
}
NestedQueryBuilder dateQuery = QueryBuilders.nestedQuery(
path,
query,
ScoreMode.Avg
);
builder.add(dateQuery, isOr);
} else if (field.equals("QZ_OR_TANK")) {
if (!"".equals(value) && value != null) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) {
builder.add(QueryBuilders.matchQuery(value.toString(), "1"), isOr);
} else {
builder.add(QueryBuilders.matchQuery(value.toString(), "0"), isOr);
}
}
} }
} }
public JSONArray queryUnitType() { public JSONArray queryUnitType(String type) {
if(ObjectUtils.isEmpty(type)){
return UnitTypeEnum.getAll(); return UnitTypeEnum.getAll();
} }
return UnitTypeEnum.getUnitTypeByType(type);
}
public JSONObject queryCompanySearchData() { public JSONObject queryCompanySearchData() {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
...@@ -1958,7 +2040,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1958,7 +2040,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
public JSONArray queryTechParam(String type) { public JSONArray queryTechParam(String type) {
if (ValidationUtil.isEmpty(type)) { if (ValidationUtil.isEmpty(type)) {
throw new BaseException("需要先选择设备品种,才能选择技术参数","200","需要先选择设备品种,才能选择技术参数"); throw new BaseException("需要先选择设备品种,才能选择技术参数", "200", "需要先选择设备品种,才能选择技术参数");
} }
List<TechParamItem> paramMetaList = TechParamUtil.getParamMetaList(type); List<TechParamItem> paramMetaList = TechParamUtil.getParamMetaList(type);
JSONArray list = new JSONArray(); JSONArray list = new JSONArray();
......
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