Commit 5ed78b2a authored by 麻笑宇's avatar 麻笑宇

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents ead53099 0930fc7b
...@@ -63,6 +63,7 @@ import java.io.IOException; ...@@ -63,6 +63,7 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -241,9 +242,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -241,9 +242,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
if (filterType.equals("advanced")) { if (filterType.equals("advanced")) {
filterParams.forEach((k, v) -> { filterParams.forEach((k, v) -> {
if (v instanceof JSONArray) { if (v instanceof JSONArray) {
if (!((JSONArray) v).contains("all")) { if (!((JSONArray) v).contains("all") && ((JSONArray) v).size() > 0) {
String field = k; String field = k;
if (k.equals("equipType") || k.equals("unitType") || k.equals("newPost") || k.equals("subPost")) { if (k.equals("newPost") || k.equals("subPost")) {
((JSONArray) v).forEach(item -> {
boolMust.must(QueryBuilders.wildcardQuery(field + ".keyword", "*" + item + "*"));
});
} else if (k.equals("equipType") || k.equals("unitType")) {
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(k.equals("equipType") ? field : field + ".keyword", "*" + item + "*")));
} else if (k.equals("education")) { } else if (k.equals("education")) {
...@@ -265,7 +270,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -265,7 +270,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
); );
// 以下人员类型有资质要求 // 以下人员类型有资质要求
// 人员类型(newPost):检验人员:66151、检测人员:66152 // 人员类型(newPost):检验人员:66151、检测人员:66152
// 人员子类型(subPost): 持证人员:6712、持证人员(P):6764、持证人员(R2):6765 // 人员子类型(subPost): 持证人员:6713、持证人员(P):6764、持证人员(R2):6765
if (item.equals("1")) { if (item.equals("1")) {
boolMust.must(nestedQuery); boolMust.must(nestedQuery);
} else if (item.equals("0")) { } else if (item.equals("0")) {
...@@ -273,7 +278,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -273,7 +278,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery() BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery()
.should(QueryBuilders.wildcardQuery("newPost.keyword", "*66151*")) .should(QueryBuilders.wildcardQuery("newPost.keyword", "*66151*"))
.should(QueryBuilders.wildcardQuery("newPost.keyword", "*66152*")) .should(QueryBuilders.wildcardQuery("newPost.keyword", "*66152*"))
.should(QueryBuilders.wildcardQuery("subPost.keyword", "*6712*")) .should(QueryBuilders.wildcardQuery("subPost.keyword", "*6713*"))
.should(QueryBuilders.wildcardQuery("subPost.keyword", "*6764*")) .should(QueryBuilders.wildcardQuery("subPost.keyword", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost.keyword", "*6765*")) .should(QueryBuilders.wildcardQuery("subPost.keyword", "*6765*"))
.minimumShouldMatch(1); .minimumShouldMatch(1);
...@@ -284,7 +289,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -284,7 +289,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery() BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery()
.mustNot(QueryBuilders.wildcardQuery("newPost.keyword", "*66151*")) .mustNot(QueryBuilders.wildcardQuery("newPost.keyword", "*66151*"))
.mustNot(QueryBuilders.wildcardQuery("newPost.keyword", "*66152*")) .mustNot(QueryBuilders.wildcardQuery("newPost.keyword", "*66152*"))
.mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6712*")) .mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6713*"))
.mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6764*")) .mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6764*"))
.mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6765*")); .mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6765*"));
boolMust.must(queryBuilder); boolMust.must(queryBuilder);
...@@ -392,6 +397,49 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -392,6 +397,49 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
dto.put("equipType", equipTypes.substring(0, equipTypes.length() - 1)); dto.put("equipType", equipTypes.substring(0, equipTypes.length() - 1));
} }
String licensesStauts = "";
if (dto.containsKey("licenses")) {
// 以下人员类型有资质要求
// 人员类型(newPost):检验人员:66151、检测人员:66152
// 人员子类型(subPost): 持证人员:6713、持证人员(P):6764、持证人员(R2):6765
String newPost = ObjectUtils.isEmpty(dto.getString("newPost")) ? "" : dto.getString("newPost");
String subPost = ObjectUtils.isEmpty(dto.getString("subPost")) ? "" : dto.getString("subPost");
if (newPost.contains("66151") || newPost.contains("66152") || subPost.contains("6713") || subPost.contains("6764") || subPost.contains("6765")) {
JSONArray licenses = dto.getJSONArray("licenses");
if (!ObjectUtils.isEmpty(licenses)) {
List<String> permissionStatusList = new ArrayList<>();
for (Object object : licenses) {
JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(object));
String expiryDate = json.getString("expiryDate");
if (!ObjectUtils.isEmpty(expiryDate)) {
long daysBetween = ChronoUnit.DAYS.between(LocalDate.now(), LocalDate.parse(expiryDate, formatter));
if (daysBetween <= 0) {
permissionStatusList.add("超期");
} else if (daysBetween <= 30) {
permissionStatusList.add("临期");
} else {
permissionStatusList.add("正常");
}
}
}
long cq = 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();
if (cq > 0) {
licensesStauts = "超期";
} else if (lq > 0) {
licensesStauts = "临期";
} else if (zc > 0) {
licensesStauts = "正常";
}
} else {
licensesStauts = "无资质";
}
} else {
licensesStauts = "无资质要求";
}
}
dto.put("licensesStauts", licensesStauts);
list.add(dto); list.add(dto);
} }
totle = Objects.requireNonNull(response.getInternalResponse().hits().getTotalHits()).value; totle = Objects.requireNonNull(response.getInternalResponse().hits().getTotalHits()).value;
...@@ -517,6 +565,38 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -517,6 +565,38 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
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");
String permissionStatus = null;
if (dto.containsKey("licenses")) {
JSONArray licenses = dto.getJSONArray("licenses");
if (!ObjectUtils.isEmpty(licenses)) {
List<String> permissionStatusList = new ArrayList<>();
for (Object object : licenses) {
JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(object));
String expiryDate = json.getString("expiryDate");
if (!ObjectUtils.isEmpty(expiryDate)) {
long daysBetween = ChronoUnit.DAYS.between(LocalDate.now(), LocalDate.parse(expiryDate, formatter));
if (daysBetween <= 0) {
permissionStatusList.add("超期");
} else if (daysBetween <= 30) {
permissionStatusList.add("临期");
} else {
permissionStatusList.add("正常");
}
}
}
long cq = 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();
if (cq > 0) {
permissionStatus = "超期";
} else if (lq > 0) {
permissionStatus = "临期";
} else if (zc > 0) {
permissionStatus = "正常";
}
}
}
dto.put("permissionStatus", permissionStatus);
list.add(dto); list.add(dto);
} }
totle = Objects.requireNonNull(response.getInternalResponse().hits().getTotalHits()).value; totle = Objects.requireNonNull(response.getInternalResponse().hits().getTotalHits()).value;
...@@ -758,6 +838,34 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -758,6 +838,34 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
return result; return result;
} }
private double getPipeLength(BoolQueryBuilder boolMust, SearchSourceBuilder builder, SearchSourceBuilder searchSourceBuilder) {
SearchRequest request = new SearchRequest();
double pipeLong = 0L;
builder.query(boolMust);
request.source(builder);
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits().getHits()) {
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
JSONObject dto = jsonObject.getJSONObject("sourceAsMap");
if (dto.get("EQU_LIST_CODE").equals("8000")) {
JSONArray techParams = (JSONArray) dto.get("techParams");
if (!ObjectUtils.isEmpty(techParams)) {
Object obj = techParams.stream().filter(item -> JSONObject.parseObject(JSONObject.toJSONString(item)).get("paramKey").equals("pipeLength")).findFirst().get();
JSONObject jsonParam = JSONObject.parseObject(JSONObject.toJSONString(obj));
if (jsonParam.containsKey("doubleValue")) {
String pipeLength = JSONObject.parseObject(JSONObject.toJSONString(obj)).get("doubleValue").toString();
pipeLong += Double.parseDouble(pipeLength);
}
}
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return pipeLong;
}
private Boolean getParamAnalysis(Object v) { private Boolean getParamAnalysis(Object v) {
Boolean result = false; Boolean result = false;
if (v instanceof JSONArray) { if (v instanceof JSONArray) {
...@@ -1089,7 +1197,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1089,7 +1197,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
BoolQueryBuilder noCertQuery = QueryBuilders.boolQuery() BoolQueryBuilder noCertQuery = QueryBuilders.boolQuery()
.should(QueryBuilders.wildcardQuery("newPost.keyword", "*66151*")) .should(QueryBuilders.wildcardQuery("newPost.keyword", "*66151*"))
.should(QueryBuilders.wildcardQuery("newPost.keyword", "*66152*")) .should(QueryBuilders.wildcardQuery("newPost.keyword", "*66152*"))
.should(QueryBuilders.wildcardQuery("subPost.keyword", "*6712*")) .should(QueryBuilders.wildcardQuery("subPost.keyword", "*6713*"))
.should(QueryBuilders.wildcardQuery("subPost.keyword", "*6764*")) .should(QueryBuilders.wildcardQuery("subPost.keyword", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost.keyword", "*6765*")) .should(QueryBuilders.wildcardQuery("subPost.keyword", "*6765*"))
.minimumShouldMatch(1); .minimumShouldMatch(1);
...@@ -1097,7 +1205,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1097,7 +1205,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
BoolQueryBuilder noCertRequestQuery = QueryBuilders.boolQuery() BoolQueryBuilder noCertRequestQuery = QueryBuilders.boolQuery()
.mustNot(QueryBuilders.wildcardQuery("newPost.keyword", "*66151*")) .mustNot(QueryBuilders.wildcardQuery("newPost.keyword", "*66151*"))
.mustNot(QueryBuilders.wildcardQuery("newPost.keyword", "*66152*")) .mustNot(QueryBuilders.wildcardQuery("newPost.keyword", "*66152*"))
.mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6712*")) .mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6713*"))
.mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6764*")) .mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6764*"))
.mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6765*")); .mustNot(QueryBuilders.wildcardQuery("subPost.keyword", "*6765*"));
...@@ -1429,7 +1537,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1429,7 +1537,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
//有无资质 //有无资质
JSONArray certNoData = new JSONArray(); JSONArray certNoData = new JSONArray();
for (int i = 0; i < 2; i++) { for (int i = 0; i < 3; i++) {
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
if (0 == i) { if (0 == i) {
object.put("key", "2"); object.put("key", "2");
...@@ -1449,7 +1557,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1449,7 +1557,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
result.put("certNo", certNoData); result.put("certNo", certNoData);
//资质状态 //资质状态
JSONArray permissionStatus = new JSONArray(); JSONArray permissionStatus = new JSONArray();
for (int i = 0; i < 2; i++) { for (int i = 0; i < 3; i++) {
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
if (0 == i) { if (0 == i) {
object.put("key", "overdue"); object.put("key", "overdue");
......
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