Commit 6f8833de authored by tianyiming's avatar tianyiming

bug修改

parent 199af075
...@@ -379,7 +379,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -379,7 +379,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
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(overdueStr); permissionStatusList.add(overdueStr);
} else if (daysBetween <= 30) { } else if (daysBetween <= 30) {
permissionStatusList.add(nearStr); permissionStatusList.add(nearStr);
...@@ -468,11 +468,10 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -468,11 +468,10 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
boolMust.must(termsQuery); boolMust.must(termsQuery);
} else if (k.equals("certNo") || k.equals("expiryDate") || k.equals("permissionLevel") || k.equals("certType") || k.equals("jobItem") || k.equals("permissionItem")) { } else if (k.equals("certNo") || k.equals("expiryDate") || k.equals("permissionLevel") || k.equals("certType") || k.equals("jobItem") || k.equals("permissionItem")) {
String path = "licenses"; String path = "licenses";
EnhancedDynamicQueryBuilder licencesQueryBuilder = new EnhancedDynamicQueryBuilder();
((JSONArray) v).forEach(item -> { ((JSONArray) v).forEach(item -> {
String nestedField = path + "." + k; String nestedField = path + "." + k;
// 根据证书编号判断有无资质 // 根据证书编号判断有无资质
if (k.equals("certNo")) { if (k.equals("certNo")) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -483,22 +482,21 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -483,22 +482,21 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
// 人员类型(newPost):检验人员:66151、检测人员:66152、作业人员:6552、检查人员:6763 // 人员类型(newPost):检验人员:66151、检测人员:66152、作业人员:6552、检查人员:6763
// 人员子类型(subPost): 持证人员:6713、持证人员(P):6764、持证人员(R2):6765 // 人员子类型(subPost): 持证人员:6713、持证人员(P):6764、持证人员(R2):6765
if (item.equals("1")) { if (item.equals("1")) {
boolMust.must(nestedQuery); licencesQueryBuilder.add(nestedQuery, or);
} else if (item.equals("0")) { } else if (item.equals("0")) {
// 无资质 // 无资质
BoolQueryBuilder queryBuilder = this.getNotLicencesBuilderWithPerson(); DynamicQueryBuilder queryBuilder = new DynamicQueryBuilder();
boolMust.must(queryBuilder); queryBuilder.and(this.getNotLicencesBuilderWithPerson());
boolMust.mustNot(nestedQuery); queryBuilder.and(QueryBuilders.boolQuery().mustNot(nestedQuery));
licencesQueryBuilder.add(queryBuilder.build(), or);
} else { } else {
// 无资质要求 // 无资质要求
BoolQueryBuilder queryBuilder = this.getNotNeedLicencesBuilderWithPerson(); licencesQueryBuilder.add(this.getNotNeedLicencesBuilderWithPerson(), or);
boolMust.must(queryBuilder);
} }
} else if (k.equals("expiryDate")) { } else if (k.equals("expiryDate")) {
// 不需要资质的人员查询构造条件 // 不需要资质的人员查询构造条件
BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson(); BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson();
boolMust.must(notNeedLicensesQueryBuilder); boolMust.must(notNeedLicensesQueryBuilder);
EnhancedDynamicQueryBuilder enhancedDynamicQueryBuilder = new EnhancedDynamicQueryBuilder();
if (item.equals(overdue)) { if (item.equals(overdue)) {
// 超期:小于当前日期 // 超期:小于当前日期
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
...@@ -506,8 +504,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -506,8 +504,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery(nestedField).lt(LocalDate.now().format(formatter))), QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery(nestedField).lt(LocalDate.now().format(formatter))),
ScoreMode.None ScoreMode.None
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); boolMust.must(nestedQuery);
boolMust.must(enhancedDynamicQueryBuilder.build());
} else if (item.equals(near)) { } else if (item.equals(near)) {
// 临期:小于等于当前日期加上30天 // 临期:小于等于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
...@@ -515,8 +512,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -515,8 +512,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery(nestedField).lte(LocalDate.now().plusDays(30).format(formatter)).gte(LocalDate.now().format(formatter))), QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery(nestedField).lte(LocalDate.now().plusDays(30).format(formatter)).gte(LocalDate.now().format(formatter))),
ScoreMode.None ScoreMode.None
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); boolMust.must(nestedQuery);
boolMust.must(enhancedDynamicQueryBuilder.build());
} else if (item.equals(normal)) { } else if (item.equals(normal)) {
// 正常:大于当前日期加上30天 // 正常:大于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
...@@ -524,16 +520,14 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -524,16 +520,14 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery(nestedField).gt(LocalDate.now().plusDays(30).format(formatter))), QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery(nestedField).gt(LocalDate.now().plusDays(30).format(formatter))),
ScoreMode.None ScoreMode.None
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); boolMust.must(nestedQuery);
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)),
ScoreMode.None ScoreMode.None
); );
enhancedDynamicQueryBuilder.add(nestedQuery, or); boolMust.must(nestedQuery);
boolMust.must(enhancedDynamicQueryBuilder.build());
} }
} else if (k.equals("certType") || k.equals("permissionLevel")) { } else if (k.equals("certType") || k.equals("permissionLevel")) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
...@@ -551,6 +545,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -551,6 +545,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
boolMust.should(nestedQuery); boolMust.should(nestedQuery);
} }
}); });
boolMust.must(licencesQueryBuilder.build());
} else if (k.equals("issueDate")) { } else if (k.equals("issueDate")) {
JSONArray issueDates = (JSONArray) v; JSONArray issueDates = (JSONArray) v;
String startDate = DateUtils.convertDateToString(issueDates.getDate(0), DateUtils.DATE_PATTERN); String startDate = DateUtils.convertDateToString(issueDates.getDate(0), DateUtils.DATE_PATTERN);
...@@ -887,8 +882,8 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -887,8 +882,8 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
private String getFilterPermitStatusOrLicensesStatus(JSONArray leftGroup, JSONArray rightGroup, String code) { private String getFilterPermitStatusOrLicensesStatus(JSONArray leftGroup, JSONArray rightGroup, String code) {
String filed = code.equals(StatisticalAnalysisEnum.company.getCode()) ? "permitStatus" : "expiryDate"; String filed = code.equals(StatisticalAnalysisEnum.company.getCode()) ? "permitStatus" : "expiryDate";
List<Object> leftPermitList = leftGroup.stream().filter(e -> filed.equals(((JSONObject) e).getString("field")) && ((JSONObject) e).containsKey("value")).collect(Collectors.toList()); List<Object> leftPermitList = leftGroup.stream().filter(e -> filed.equals(((JSONObject) e).getString("field")) && ((JSONObject) e).containsKey("value") && ((JSONObject) e).containsKey("itemCondition") && !((JSONObject) e).getString("itemCondition").equals("notIn")).collect(Collectors.toList());
List<Object> rightPermitList = rightGroup.stream().filter(e -> filed.equals(((JSONObject) e).getString("field")) && ((JSONObject) e).containsKey("value")).collect(Collectors.toList()); List<Object> rightPermitList = rightGroup.stream().filter(e -> filed.equals(((JSONObject) e).getString("field")) && ((JSONObject) e).containsKey("value") && ((JSONObject) e).containsKey("itemCondition") && !((JSONObject) e).getString("itemCondition").equals("notIn")).collect(Collectors.toList());
int count = 0; int count = 0;
Boolean isLeft = false; Boolean isLeft = false;
Boolean isRight = false; Boolean isRight = false;
...@@ -988,7 +983,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -988,7 +983,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
String nextInspectDate = dto.getString("NEXT_INSPECT_DATE"); String nextInspectDate = dto.getString("NEXT_INSPECT_DATE");
if (!ObjectUtils.isEmpty(nextInspectDate) && !"".equals(nextInspectDate)) { if (!ObjectUtils.isEmpty(nextInspectDate) && !"".equals(nextInspectDate)) {
long daysBetween = ChronoUnit.DAYS.between(LocalDate.now(), LocalDate.parse(nextInspectDate, formatter)); long daysBetween = ChronoUnit.DAYS.between(LocalDate.now(), LocalDate.parse(nextInspectDate, formatter));
if (daysBetween <= 0) { if (daysBetween < 0) {
inspectStatus = inspectionStatusMap.get(overdue); inspectStatus = inspectionStatusMap.get(overdue);
} else if (daysBetween <= 30) { } else if (daysBetween <= 30) {
inspectStatus = inspectionStatusMap.get(near); inspectStatus = inspectionStatusMap.get(near);
......
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