Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
b6b854d4
Commit
b6b854d4
authored
Jul 17, 2025
by
tianyiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: 优化许可查询返回的处理逻辑
parent
f2fde46a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
232 additions
and
186 deletions
+232
-186
ComprehensiveStatisticalAnalysisServiceImpl.java
...ice/impl/ComprehensiveStatisticalAnalysisServiceImpl.java
+232
-186
No files found.
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/service/impl/ComprehensiveStatisticalAnalysisServiceImpl.java
View file @
b6b854d4
...
@@ -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
));
}
}
String
Builder
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"
))
{
JSONArray
licenses
=
dto
.
getJSONArray
(
"licenses"
);
if
(!
""
.
equals
(
permitStatusStr
))
{
if
(!
ObjectUtils
.
isEmpty
(
licenses
))
{
permissionStatus
=
permitStatusMap
.
get
(
permissionStatus
);
}
else
{
List
<
String
>
permissionStatusList
=
new
ArrayList
<>();
List
<
String
>
permissionStatusList
=
new
ArrayList
<>();
for
(
Object
object
:
licenses
)
{
JSONArray
licenses
=
dto
.
getJSONArray
(
"licenses"
);
JSONObject
json
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
object
));
if
(!
ObjectUtils
.
isEmpty
(
licenses
))
{
String
expiryDate
=
json
.
getString
(
"expiryDate"
);
for
(
Object
object
:
licenses
)
{
if
(!
ObjectUtils
.
isEmpty
(
expiryDate
))
{
JSONObject
json
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
object
));
long
daysBetween
=
ChronoUnit
.
DAYS
.
between
(
LocalDate
.
now
(),
LocalDate
.
parse
(
expiryDate
,
formatter
));
String
expiryDate
=
json
.
getString
(
"expiryDate"
);
if
(
daysBetween
<=
0
)
{
if
(!
ObjectUtils
.
isEmpty
(
expiryDate
))
{
permissionStatusList
.
add
(
"超期"
);
long
daysBetween
=
ChronoUnit
.
DAYS
.
between
(
LocalDate
.
now
(),
LocalDate
.
parse
(
expiryDate
,
formatter
));
}
else
if
(
daysBetween
<=
30
)
{
if
(
daysBetween
<=
0
)
{
permissionStatusList
.
add
(
"临期"
);
permissionStatusList
.
add
(
overdueStr
);
}
else
if
(
daysBetween
<=
30
)
{
permissionStatusList
.
add
(
nearStr
);
}
else
{
permissionStatusList
.
add
(
normalStr
);
}
}
else
{
}
else
{
permissionStatusList
.
add
(
"正常"
);
permissionStatusList
.
add
(
noneStr
);
}
}
}
else
{
permissionStatusList
.
add
(
"无有效期"
);
}
}
}
long
cq
=
permissionStatusList
.
stream
().
filter
(
e
->
e
.
equals
(
overdueStr
)).
count
();
long
cq
=
permissionStatusList
.
stream
().
filter
(
e
->
e
.
equals
(
"超期"
)).
count
();
long
lq
=
permissionStatusList
.
stream
().
filter
(
e
->
e
.
equals
(
nearStr
)).
count
();
long
lq
=
permissionStatusList
.
stream
().
filter
(
e
->
e
.
equals
(
"临期"
)).
count
();
long
no
=
permissionStatusList
.
stream
().
filter
(
e
->
e
.
equals
(
noneStr
)).
count
();
long
zc
=
permissionStatusList
.
stream
().
filter
(
e
->
e
.
equals
(
"正常"
)).
count
();
long
zc
=
permissionStatusList
.
stream
().
filter
(
e
->
e
.
equals
(
normalStr
)).
count
();
long
no
=
permissionStatusList
.
stream
().
filter
(
e
->
e
.
equals
(
"无有效期"
)).
count
();
if
(
cq
>
0
)
{
if
(
cq
>
0
)
{
permissionStatus
=
overdueStr
;
permissionStatus
.
append
(
"/许可超期"
);
}
else
if
(
lq
>
0
)
{
}
permissionStatus
=
nearStr
;
if
(
lq
>
0
)
{
}
else
if
(
no
>
0
)
{
permissionStatus
.
append
(
"/许可临期"
);
permissionStatus
=
noneStr
;
}
}
else
if
(
zc
>
0
)
{
if
(
zc
>
0
)
{
permissionStatus
=
normalStr
;
permissionStatus
.
append
(
"/许可正常"
);
}
}
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,110 +712,106 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -666,110 +712,106 @@ 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
;
deleteUnitCategory
(
filterParams
);
if
(!
ObjectUtils
.
isEmpty
(
filter
.
get
(
"filterParams"
)))
{
//快捷筛选和自定义筛选解析筛选规则不一致
filterParams
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
filter
.
get
(
"filterParams"
)));
if
(
filterType
.
equals
(
"advanced"
))
{
String
filterType
=
filter
.
getString
(
"filterType"
);
filterParams
.
forEach
((
k
,
v
)
->
{
deleteUnitCategory
(
filterParams
);
if
(
v
instanceof
JSONArray
)
{
//快捷筛选和自定义筛选解析筛选规则不一致
if
(!((
JSONArray
)
v
).
contains
(
"all"
)
&&
((
JSONArray
)
v
).
size
()
>
0
)
{
if
(
filterType
.
equals
(
"advanced"
))
{
String
field
=
k
;
filterParams
.
forEach
((
k
,
v
)
->
{
if
(
k
.
equals
(
"regulatoryLabels"
)
||
k
.
equals
(
"equipCategory"
)
||
k
.
equals
(
"unitType"
))
{
if
(
v
instanceof
JSONArray
)
{
DynamicQueryBuilder
dynamicQueryBuilder
=
new
DynamicQueryBuilder
();
if
(!((
JSONArray
)
v
).
contains
(
"all"
)
&&
((
JSONArray
)
v
).
size
()
>
0
)
{
EnhancedDynamicQueryBuilder
enhancedDynamicQueryBuilder
=
new
EnhancedDynamicQueryBuilder
();
String
field
=
k
;
((
JSONArray
)
v
).
forEach
(
item
->
enhancedDynamicQueryBuilder
.
add
(
QueryBuilders
.
wildcardQuery
(
field
+
".keyword"
,
"*"
+
item
+
"*"
),
or
));
if
(
k
.
equals
(
"regulatoryLabels"
)
||
k
.
equals
(
"equipCategory"
)
||
k
.
equals
(
"unitType"
))
{
dynamicQueryBuilder
.
and
(
enhancedDynamicQueryBuilder
.
build
().
minimumShouldMatch
(
1
));
DynamicQueryBuilder
dynamicQueryBuilder
=
new
DynamicQueryBuilder
();
boolMust
.
must
(
dynamicQueryBuilder
.
build
());
EnhancedDynamicQueryBuilder
enhancedDynamicQueryBuilder
=
new
EnhancedDynamicQueryBuilder
();
}
else
if
(
k
.
equals
(
"industrySupervisor"
)
||
k
.
equals
(
"operatingStatus"
))
{
((
JSONArray
)
v
).
forEach
(
item
->
enhancedDynamicQueryBuilder
.
add
(
QueryBuilders
.
wildcardQuery
(
field
+
".keyword"
,
"*"
+
item
+
"*"
),
or
));
TermsQueryBuilder
termsQuery
=
QueryBuilders
.
termsQuery
(
field
+
".keyword"
,
((
JSONArray
)
v
));
dynamicQueryBuilder
.
and
(
enhancedDynamicQueryBuilder
.
build
().
minimumShouldMatch
(
1
));
boolMust
.
must
(
termsQuery
);
boolMust
.
must
(
dynamicQueryBuilder
.
build
());
}
else
if
(
k
.
equals
(
"itemCode"
)
||
k
.
equals
(
"subItemCode"
)
||
k
.
equals
(
"permitStatus"
))
{
}
else
if
(
k
.
equals
(
"industrySupervisor"
)
||
k
.
equals
(
"operatingStatus"
))
{
String
path
=
"licenses"
;
TermsQueryBuilder
termsQuery
=
QueryBuilders
.
termsQuery
(
field
+
".keyword"
,
((
JSONArray
)
v
));
EnhancedDynamicQueryBuilder
enhancedDynamicQueryBuilder
=
new
EnhancedDynamicQueryBuilder
();
boolMust
.
must
(
termsQuery
);
((
JSONArray
)
v
).
forEach
(
item
->
{
}
else
if
(
k
.
equals
(
"itemCode"
)
||
k
.
equals
(
"subItemCode"
)
||
k
.
equals
(
"permitStatus"
))
{
String
nestedField
=
path
+
"."
+
(
k
.
equals
(
"permitStatus"
)
?
"expiryDate"
:
k
+
".keyword"
);
String
path
=
"licenses"
;
if
(
k
.
equals
(
"permitStatus"
))
{
EnhancedDynamicQueryBuilder
enhancedDynamicQueryBuilder
=
new
EnhancedDynamicQueryBuilder
();
if
(
item
.
equals
(
overdue
))
{
((
JSONArray
)
v
).
forEach
(
item
->
{
// 超期:小于当前日期
String
nestedField
=
path
+
"."
+
(
k
.
equals
(
"permitStatus"
)
?
"expiryDate"
:
k
+
".keyword"
);
if
(
k
.
equals
(
"permitStatus"
))
{
if
(
item
.
equals
(
"overdue"
))
{
// 超期:小于当前日期
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
rangeQuery
(
nestedField
).
lt
(
LocalDate
.
now
().
format
(
formatter
))),
ScoreMode
.
None
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
else
if
(
item
.
equals
(
"near"
))
{
// 临期:小于等于当前日期加上30天
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
rangeQuery
(
nestedField
).
lte
(
LocalDate
.
now
().
plusDays
(
30
).
format
(
formatter
)).
gte
(
LocalDate
.
now
().
format
(
formatter
))),
ScoreMode
.
None
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
else
if
(
item
.
equals
(
"normal"
))
{
// 正常:大于当前日期加上30天
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
rangeQuery
(
nestedField
).
gt
(
LocalDate
.
now
().
plusDays
(
30
).
format
(
formatter
))),
ScoreMode
.
None
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
else
if
(
item
.
equals
(
"none"
))
{
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
QueryBuilders
.
boolQuery
().
mustNot
(
QueryBuilders
.
existsQuery
(
nestedField
)),
ScoreMode
.
None
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
}
else
{
// 创建嵌套查询
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
path
,
QueryBuilders
.
termsQuery
(
nestedField
,
item
),
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
rangeQuery
(
nestedField
).
lt
(
LocalDate
.
now
().
format
(
formatter
))),
ScoreMode
.
None
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
else
if
(
item
.
equals
(
near
))
{
// 临期:小于等于当前日期加上30天
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
rangeQuery
(
nestedField
).
lte
(
LocalDate
.
now
().
plusDays
(
30
).
format
(
formatter
)).
gte
(
LocalDate
.
now
().
format
(
formatter
))),
ScoreMode
.
None
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
else
if
(
item
.
equals
(
normal
))
{
// 正常:大于当前日期加上30天
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
rangeQuery
(
nestedField
).
gt
(
LocalDate
.
now
().
plusDays
(
30
).
format
(
formatter
))),
ScoreMode
.
None
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
else
if
(
item
.
equals
(
none
))
{
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
QueryBuilders
.
boolQuery
().
mustNot
(
QueryBuilders
.
existsQuery
(
nestedField
)),
ScoreMode
.
None
ScoreMode
.
None
);
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
}
});
}
else
{
boolMust
.
must
(
enhancedDynamicQueryBuilder
.
build
());
// 创建嵌套查询
}
NestedQueryBuilder
nestedQuery
=
QueryBuilders
.
nestedQuery
(
path
,
QueryBuilders
.
termsQuery
(
nestedField
,
item
),
ScoreMode
.
None
);
enhancedDynamicQueryBuilder
.
add
(
nestedQuery
,
or
);
}
});
boolMust
.
must
(
enhancedDynamicQueryBuilder
.
build
());
}
}
}
else
if
(
v
instanceof
String
)
{
}
if
(
k
.
equals
(
"fuzzyInput"
)
)
{
}
else
if
(
v
instanceof
String
)
{
String
fuzzyValue
=
String
.
valueOf
(
v
);
if
(
k
.
equals
(
"fuzzyInput"
))
{
BoolQueryBuilder
queryBuilder
=
QueryBuilders
.
boolQuery
(
);
String
fuzzyValue
=
String
.
valueOf
(
v
);
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"useUnit.keyword"
,
"*"
+
fuzzyValue
+
"*"
)
);
BoolQueryBuilder
queryBuilder
=
QueryBuilders
.
boolQuery
(
);
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"address
.keyword"
,
"*"
+
fuzzyValue
+
"*"
));
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"useUnit
.keyword"
,
"*"
+
fuzzyValue
+
"*"
));
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"superviseOrgName
.keyword"
,
"*"
+
fuzzyValue
+
"*"
));
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"address
.keyword"
,
"*"
+
fuzzyValue
+
"*"
));
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"equipCategory
Name.keyword"
,
"*"
+
fuzzyValue
+
"*"
));
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"superviseOrg
Name.keyword"
,
"*"
+
fuzzyValue
+
"*"
));
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"contactUser
.keyword"
,
"*"
+
fuzzyValue
+
"*"
));
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"equipCategoryName
.keyword"
,
"*"
+
fuzzyValue
+
"*"
));
queryBuilder
.
minimumShouldMatch
(
1
);
queryBuilder
.
should
(
QueryBuilders
.
wildcardQuery
(
"contactUser.keyword"
,
"*"
+
fuzzyValue
+
"*"
)
);
boolMust
.
must
(
queryBuilder
);
queryBuilder
.
minimumShouldMatch
(
1
);
}
else
if
(
k
.
equals
(
"unitCategory"
))
{
boolMust
.
must
(
queryBuilder
);
if
(!
""
.
equals
(
v
)
&&
!
ObjectUtils
.
isEmpty
(
v
)
&&
!
"all"
.
equals
(
v
))
{
}
else
if
(
k
.
equals
(
"unitCategory"
))
{
String
category
=
v
.
toString
();
if
(!
""
.
equals
(
v
)
&&
!
ObjectUtils
.
isEmpty
(
v
)
&&
!
"all"
.
equals
(
v
))
{
JSONArray
unitTypeByType
=
UnitTypeNewEnum
.
getUnitTypeByType
(
category
);
String
category
=
v
.
toString
(
);
List
<
String
>
list
=
unitTypeByType
.
stream
().
map
(
e
->
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
e
)).
get
(
"value"
).
toString
()).
collect
(
Collectors
.
toList
()
);
JSONArray
unitTypeByType
=
UnitTypeNewEnum
.
getUnitTypeByType
(
category
);
EnhancedDynamicQueryBuilder
enhancedDynamicQueryBuilder
=
new
EnhancedDynamicQueryBuilder
(
);
List
<
String
>
list
=
unitTypeByType
.
stream
().
map
(
e
->
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
e
)).
get
(
"value"
).
toString
()).
collect
(
Collectors
.
toList
()
);
list
.
forEach
(
item
->
enhancedDynamicQueryBuilder
.
add
(
QueryBuilders
.
boolQuery
().
should
(
QueryBuilders
.
wildcardQuery
(
"unitType.keyword"
,
"*"
+
item
+
"*"
)),
or
)
);
EnhancedDynamicQueryBuilder
enhancedDynamicQueryBuilder
=
new
EnhancedDynamicQueryBuilder
(
);
boolMust
.
must
(
enhancedDynamicQueryBuilder
.
build
(
));
list
.
forEach
(
item
->
enhancedDynamicQueryBuilder
.
add
(
QueryBuilders
.
boolQuery
().
should
(
QueryBuilders
.
wildcardQuery
(
"unitType.keyword"
,
"*"
+
item
+
"*"
)),
or
));
}
boolMust
.
must
(
enhancedDynamicQueryBuilder
.
build
());
}
}
}
}
}
);
}
}
else
{
}
);
JSONArray
leftGroup
=
filterParams
.
getJSONArray
(
"group1"
);
}
else
{
JSONArray
rightGroup
=
filterParams
.
getJSONArray
(
"group2
"
);
JSONArray
leftGroup
=
filterParams
.
getJSONArray
(
"group1
"
);
Boolean
isOrGroup
=
or
.
equals
(
filterParams
.
getString
(
"groupAndOr"
))
?
Boolean
.
TRUE
:
Boolean
.
FALSE
;
JSONArray
rightGroup
=
filterParams
.
getJSONArray
(
"group2"
)
;
handleAdvancedFilter
(
boolMust
,
leftGroup
,
rightGroup
,
isOrGroup
)
;
Boolean
isOrGroup
=
or
.
equals
(
filterParams
.
getString
(
"groupAndOr"
))
?
Boolean
.
TRUE
:
Boolean
.
FALSE
;
}
handleAdvancedFilter
(
boolMust
,
leftGroup
,
rightGroup
,
isOrGroup
);
}
}
}
}
...
@@ -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"
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment