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
0930fc7b
Commit
0930fc7b
authored
Jul 04, 2025
by
tianyiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改bug
parent
db16110d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
117 additions
and
9 deletions
+117
-9
ComprehensiveStatisticalAnalysisServiceImpl.java
...ice/impl/ComprehensiveStatisticalAnalysisServiceImpl.java
+117
-9
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 @
0930fc7b
...
@@ -62,6 +62,7 @@ import java.io.IOException;
...
@@ -62,6 +62,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
;
...
@@ -240,9 +241,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -240,9 +241,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"
))
{
...
@@ -264,7 +269,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -264,7 +269,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
);
);
// 以下人员类型有资质要求
// 以下人员类型有资质要求
// 人员类型(newPost):检验人员:66151、检测人员:66152
// 人员类型(newPost):检验人员:66151、检测人员:66152
// 人员子类型(subPost): 持证人员:671
2
、持证人员(P):6764、持证人员(R2):6765
// 人员子类型(subPost): 持证人员:671
3
、持证人员(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"
))
{
...
@@ -272,7 +277,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -272,7 +277,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"
,
"*671
2
*"
))
.
should
(
QueryBuilders
.
wildcardQuery
(
"subPost.keyword"
,
"*671
3
*"
))
.
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
);
...
@@ -283,7 +288,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -283,7 +288,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"
,
"*671
2
*"
))
.
mustNot
(
QueryBuilders
.
wildcardQuery
(
"subPost.keyword"
,
"*671
3
*"
))
.
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
);
...
@@ -391,6 +396,49 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -391,6 +396,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
;
...
@@ -516,6 +564,38 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -516,6 +564,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
;
...
@@ -757,6 +837,34 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -757,6 +837,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
)
{
...
@@ -1088,7 +1196,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -1088,7 +1196,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"
,
"*671
2
*"
))
.
should
(
QueryBuilders
.
wildcardQuery
(
"subPost.keyword"
,
"*671
3
*"
))
.
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
);
...
@@ -1096,7 +1204,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -1096,7 +1204,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"
,
"*671
2
*"
))
.
mustNot
(
QueryBuilders
.
wildcardQuery
(
"subPost.keyword"
,
"*671
3
*"
))
.
mustNot
(
QueryBuilders
.
wildcardQuery
(
"subPost.keyword"
,
"*6764*"
))
.
mustNot
(
QueryBuilders
.
wildcardQuery
(
"subPost.keyword"
,
"*6764*"
))
.
mustNot
(
QueryBuilders
.
wildcardQuery
(
"subPost.keyword"
,
"*6765*"
));
.
mustNot
(
QueryBuilders
.
wildcardQuery
(
"subPost.keyword"
,
"*6765*"
));
...
@@ -1428,7 +1536,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -1428,7 +1536,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"
);
...
@@ -1448,7 +1556,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -1448,7 +1556,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"
);
...
...
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