Commit cda5d73c authored by suhuiguang's avatar suhuiguang Committed by hcing

refactor(amos-boot-module-statistics): 重构人员统计分析中的资质查询逻辑

- 提取重复的资质查询条件构建方法,提高代码复用性 - 优化无资质和需要资质的人员查询逻辑,提升代码可读性 - 移除冗余的查询条件组装代码,简化统计分析过程
parents 3a4f61be 3eca3bf5
...@@ -216,6 +216,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, ...@@ -216,6 +216,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
.distinct() .distinct()
.collect(Collectors.toList()), ",")); .collect(Collectors.toList()), ","));
transfer.setEquAddress(projectContraption.getAddress()); transfer.setEquAddress(projectContraption.getAddress());
transfer.setSupervisoryCode(projectContraption.getSupervisoryCode());
transfer.setEquCode(org.apache.commons.lang3.StringUtils.join( transfer.setEquCode(org.apache.commons.lang3.StringUtils.join(
idxBizJgRegisterInfoServiceImpl.lambdaQuery() idxBizJgRegisterInfoServiceImpl.lambdaQuery()
.in(IdxBizJgRegisterInfo::getRecord, records) .in(IdxBizJgRegisterInfo::getRecord, records)
......
...@@ -1532,24 +1532,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1532,24 +1532,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
// 无资质查询 // 无资质查询
BoolQueryBuilder noCertQuery = QueryBuilders.boolQuery() BoolQueryBuilder noCertQuery = this.getNotLicencesBuilderWithPerson();
.should(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.should(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.should(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.should(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6713*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6765*"))
.minimumShouldMatch(1);
// 无资质要求查询 // 无资质要求查询
BoolQueryBuilder noCertRequestQuery = QueryBuilders.boolQuery() BoolQueryBuilder noCertRequestQuery = this.getNotNeedLicencesBuilderWithPerson();
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.mustNot(QueryBuilders.wildcardQuery("subPost", "*6713*"))
.mustNot(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.mustNot(QueryBuilders.wildcardQuery("subPost", "*6765*"));
if (value.equals("1")) { if (value.equals("1")) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
...@@ -1662,6 +1647,43 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1662,6 +1647,43 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
} }
/**
* 需要资质的人员查询构造条件
* 无资质:需要资质但是没有填写
* @return
*/
private BoolQueryBuilder getNotLicencesBuilderWithPerson() {
return QueryBuilders.boolQuery()
.should(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.should(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.should(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.must(QueryBuilders.wildcardQuery("subPost", "*6713*")))
.should(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6765*"))
.minimumShouldMatch(1)
)
.minimumShouldMatch(1);
}
/**
* 无资质要求的人员查询构造条件
* 无资质要求:不需要资质
* @return
*/
private BoolQueryBuilder getNotNeedLicencesBuilderWithPerson() {
return QueryBuilders.boolQuery()
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.mustNot(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.must(QueryBuilders.wildcardQuery("subPost", "*6713*")))
.mustNot(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6765*"))
.minimumShouldMatch(1)
);
}
private void companyFieldHandle(String field, String itemCondition, Object value, String isOr, EnhancedDynamicQueryBuilder builder) { private void companyFieldHandle(String field, String itemCondition, Object value, String isOr, EnhancedDynamicQueryBuilder builder) {
if (field.equals("itemCode") || field.equals("subItemCode") || field.equals("permitStatus")) { if (field.equals("itemCode") || field.equals("subItemCode") || field.equals("permitStatus")) {
String path = "licenses"; String path = "licenses";
...@@ -3052,17 +3074,8 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3052,17 +3074,8 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
String path = "licenses"; String path = "licenses";
String nestedField = path + ".expiryDate"; String nestedField = path + ".expiryDate";
// 需要资质的人员必须条件
// 不需要资质的人员查询构造条件 BoolQueryBuilder needLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson();
BoolQueryBuilder notNeedLicensesQueryBuilder = QueryBuilders.boolQuery()
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.mustNot(QueryBuilders.wildcardQuery("subPost", "*6713*"))
.mustNot(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.mustNot(QueryBuilders.wildcardQuery("subPost", "*6765*"));
// 资质正常 // 资质正常
BoolQueryBuilder normalBoolQuery = QueryBuilderUtils.copyBoolQuery(boolQuery); BoolQueryBuilder normalBoolQuery = QueryBuilderUtils.copyBoolQuery(boolQuery);
NestedQueryBuilder normalNestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder normalNestedQuery = QueryBuilders.nestedQuery(
...@@ -3071,7 +3084,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3071,7 +3084,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
normalBoolQuery.must(normalNestedQuery); normalBoolQuery.must(normalNestedQuery);
normalBoolQuery.must(notNeedLicensesQueryBuilder); normalBoolQuery.must(needLicensesQueryBuilder);
Long normalCount = getStatisticCount(normalBoolQuery, StatisticalAnalysisEnum.person.getKey()); Long normalCount = getStatisticCount(normalBoolQuery, StatisticalAnalysisEnum.person.getKey());
result.put("zzzc", normalCount); result.put("zzzc", normalCount);
...@@ -3083,7 +3096,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3083,7 +3096,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
nearBoolQuery.must(nearNestedQuery); nearBoolQuery.must(nearNestedQuery);
nearBoolQuery.must(notNeedLicensesQueryBuilder); nearBoolQuery.must(needLicensesQueryBuilder);
Long nearCount = getStatisticCount(nearBoolQuery, StatisticalAnalysisEnum.person.getKey()); Long nearCount = getStatisticCount(nearBoolQuery, StatisticalAnalysisEnum.person.getKey());
result.put("zzlq", nearCount); result.put("zzlq", nearCount);
...@@ -3095,7 +3108,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3095,7 +3108,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
overBoolQuery.must(overNestedQuery); overBoolQuery.must(overNestedQuery);
overBoolQuery.must(notNeedLicensesQueryBuilder); overBoolQuery.must(needLicensesQueryBuilder);
Long overCount = getStatisticCount(overBoolQuery, StatisticalAnalysisEnum.person.getKey()); Long overCount = getStatisticCount(overBoolQuery, StatisticalAnalysisEnum.person.getKey());
result.put("zzcq", overCount); result.put("zzcq", overCount);
...@@ -3107,7 +3120,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3107,7 +3120,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
nothingBoolQuery.must(nothingNestedQuery); nothingBoolQuery.must(nothingNestedQuery);
nothingBoolQuery.must(notNeedLicensesQueryBuilder); nothingBoolQuery.must(needLicensesQueryBuilder);
Long nothingCount = getStatisticCount(nothingBoolQuery, StatisticalAnalysisEnum.person.getKey()); Long nothingCount = getStatisticCount(nothingBoolQuery, StatisticalAnalysisEnum.person.getKey());
result.put("wyxq", nothingCount); result.put("wyxq", nothingCount);
...@@ -3121,19 +3134,10 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3121,19 +3134,10 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
existsQuery(nestedField), existsQuery(nestedField),
ScoreMode.None ScoreMode.None
); );
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery()
.should(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.should(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.should(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.should(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6713*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6765*"))
.minimumShouldMatch(1);
EnhancedDynamicQueryBuilder noLicensesQuery = new EnhancedDynamicQueryBuilder(); EnhancedDynamicQueryBuilder noLicensesQuery = new EnhancedDynamicQueryBuilder();
noLicensesQuery.add(QueryBuilders.boolQuery().mustNot(nestedQuery), and); noLicensesQuery.add(QueryBuilders.boolQuery().mustNot(nestedQuery), and);
noLicensesQuery.add(queryBuilder, and); noLicensesQuery.add(needLicensesQueryBuilder, and);
enhancedDynamicQueryBuilder.add(noLicensesQuery.build(), "AND"); enhancedDynamicQueryBuilder.add(noLicensesQuery.build(), "AND");
mainBuilder.and(enhancedDynamicQueryBuilder.build()); mainBuilder.and(enhancedDynamicQueryBuilder.build());
...@@ -3142,19 +3146,20 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3142,19 +3146,20 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
result.put("wzz", otLicensesCount); result.put("wzz", otLicensesCount);
// 无资质要求查询 // 无资质要求查询
BoolQueryBuilder notNeedLicensesBoolQuery = QueryBuilderUtils.copyBoolQuery(boolQuery); // BoolQueryBuilder notNeedLicensesBoolQuery = QueryBuilderUtils.copyBoolQuery(boolQuery);
// // 不需要资质的人员查询构造条件
DynamicQueryBuilder mainBuilderNotNeed = new DynamicQueryBuilder(); // BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotNeedLicencesBuilderWithPerson();
EnhancedDynamicQueryBuilder dynamicQueryBuilder = new EnhancedDynamicQueryBuilder(); // DynamicQueryBuilder mainBuilderNotNeed = new DynamicQueryBuilder();
// EnhancedDynamicQueryBuilder dynamicQueryBuilder = new EnhancedDynamicQueryBuilder();
EnhancedDynamicQueryBuilder notNeedLicensesQuery = new EnhancedDynamicQueryBuilder(); //
notNeedLicensesQuery.add(notNeedLicensesQueryBuilder, and); // EnhancedDynamicQueryBuilder notNeedLicensesQuery = new EnhancedDynamicQueryBuilder();
dynamicQueryBuilder.add(notNeedLicensesQuery.build(), "AND"); // notNeedLicensesQuery.add(notNeedLicensesQueryBuilder, and);
// dynamicQueryBuilder.add(notNeedLicensesQuery.build(), "AND");
mainBuilderNotNeed.and(dynamicQueryBuilder.build()); //
notNeedLicensesBoolQuery.must(mainBuilderNotNeed.build()); // mainBuilderNotNeed.and(dynamicQueryBuilder.build());
Long notNeedLicensesCount = getStatisticCount(notNeedLicensesBoolQuery, StatisticalAnalysisEnum.person.getKey()); // notNeedLicensesBoolQuery.must(mainBuilderNotNeed.build());
result.put("wzzyq", notNeedLicensesCount); // Long notNeedLicensesCount = getStatisticCount(notNeedLicensesBoolQuery, StatisticalAnalysisEnum.person.getKey());
// result.put("wzzyq", notNeedLicensesCount);
return result; return result;
} }
......
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