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
4b733d54
Commit
4b733d54
authored
Oct 15, 2024
by
韩桐桐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(ys): 【验收】安全问题分析 + 教育培训统计 + 体系建设统计
parent
1584322f
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
377 additions
and
23 deletions
+377
-23
DynamicFormInstanceServiceImpl.java
...mmon/biz/service/impl/DynamicFormInstanceServiceImpl.java
+21
-23
MaintenanceExpiredEarlyWarningEnum.java
...dule/ys/api/enums/MaintenanceExpiredEarlyWarningEnum.java
+56
-0
MaintenanceEarlyWarningController.java
.../ys/biz/controller/MaintenanceEarlyWarningController.java
+196
-0
CommonServiceImpl.java
...os/boot/module/ys/biz/service/impl/CommonServiceImpl.java
+104
-0
No files found.
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/DynamicFormInstanceServiceImpl.java
View file @
4b733d54
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
service
.
impl
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
javax.servlet.http.HttpServletRequest
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Sequence
;
...
...
@@ -26,6 +10,20 @@ import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import
com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance
;
import
com.yeejoin.amos.boot.module.common.api.mapper.DynamicFormInstanceMapper
;
import
com.yeejoin.amos.boot.module.common.api.service.IDynamicFormInstanceService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
* 动态表单实例表服务实现类
...
...
@@ -136,18 +134,18 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
List
<
DynamicFormColumn
>
columns
=
dynamicFormColumnService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormColumn
>().
eq
(
DynamicFormColumn:
:
getGroupCode
,
groupCode
));
Map
<
String
,
Object
>
fieldCodes
=
Bean
.
listToMap
(
columns
,
"fieldCode"
,
"queryStrategy"
,
DynamicFormColumn
.
class
);
Page
page
=
new
Page
();
if
(
current
>
0
){
page
.
setCurrent
((
long
)
(
current
-
1
)
*
size
);
if
(
current
>
0
)
{
page
.
setCurrent
((
long
)
(
current
-
1
)
*
size
);
page
.
setSize
(
size
);
}
if
(!
params
.
isEmpty
()
&&
params
!=
null
)
{
if
(!
params
.
get
(
"sort"
).
isEmpty
()
&&
params
.
get
(
"sort"
)
!=
null
)
{
if
(!
params
.
isEmpty
()
&&
params
!=
null
)
{
if
(!
ValidationUtil
.
isEmpty
(
params
.
get
(
"sort"
))
&&
params
.
get
(
"sort"
)
!=
null
)
{
String
[]
sorts
=
params
.
get
(
"sort"
).
split
(
","
);
params
.
put
(
"date"
,
sorts
[
0
]);
params
.
put
(
"lift"
,
sorts
[
1
]);
params
.
put
(
"date"
,
sorts
[
0
]);
params
.
put
(
"lift"
,
sorts
[
1
]);
}
}
return
this
.
getBaseMapper
().
pageList
(
page
,
RequestContext
.
getAppKey
()
,
fieldCodes
,
groupCode
,
params
);
return
this
.
getBaseMapper
().
pageList
(
page
,
null
,
fieldCodes
,
groupCode
,
params
);
}
// 不存在值班数据则不查找 修改sql 方法去除 by kongfm 2021-09-14
public
IPage
<
Map
<
String
,
Object
>>
pageListNew
(
int
current
,
int
size
,
String
groupCode
,
String
beginDate
,
String
endDate
)
{
...
...
amos-boot-system-tzs/amos-boot-module-ys/amos-boot-module-ys-api/src/main/java/com/yeejoin/amos/boot/module/ys/api/enums/MaintenanceExpiredEarlyWarningEnum.java
0 → 100644
View file @
4b733d54
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ys
.
api
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Optional
;
/**
* <pre>
* 维保到期预警枚举
* </pre>
*/
@Getter
@AllArgsConstructor
public
enum
MaintenanceExpiredEarlyWarningEnum
{
// 设备
QP
(
"2300"
,
"气瓶"
,
"cylinderMaintenanceExpiredEarlyWarning"
),
QZJX
(
"4000"
,
"起重机械"
,
"liftingMachineryMaintenanceExpiredEarlyWarning"
),
KYSD
(
"9000"
,
"客运索道"
,
"passengerRopeWayMaintenanceExpiredEarlyWarning"
),
YLSS
(
"6000"
,
"游乐设施"
,
"amusementFacilitiesMaintenanceExpiredEarlyWarning"
),
GL
(
"1000"
,
"锅炉"
,
"boilerMaintenanceExpiredEarlyWarning"
),
YLGD
(
"8000"
,
"压力管道"
,
"pressurePipeMaintenanceExpiredEarlyWarning"
),
CNJDCL
(
"5000"
,
"场内机动车辆"
,
"yardMotorVehicleMaintenanceExpiredEarlyWarning"
),
// 体系建设统计
TXJS
(
"0001"
,
"体系建设"
,
"systemConstructionStatistics"
),
// 教育培训统计
JYPX
(
"0002"
,
"教育培训"
,
"educationAndTrainingStatistics"
);
private
String
typeCode
;
// 设备类型代码 || 业务类型代码
private
String
typeName
;
// 设备类型名称
private
String
groupCode
;
// 分组代码
/**
* 根据设备类型代码获取对应的枚举实例。
*
* @param equTypeCode 设备类型代码
* @return 对应的枚举实例,如果不存在则返回 Optional.empty()
*/
public
static
Optional
<
MaintenanceExpiredEarlyWarningEnum
>
getEnum
(
String
equTypeCode
)
{
for
(
MaintenanceExpiredEarlyWarningEnum
status
:
MaintenanceExpiredEarlyWarningEnum
.
values
())
{
if
(
status
.
getTypeCode
().
equals
(
equTypeCode
))
{
return
Optional
.
of
(
status
);
}
}
return
Optional
.
empty
();
}
@Override
public
String
toString
()
{
return
String
.
format
(
"MaintenanceExpiredEarlyWarningEnum{equTypeCode='%s', equTypeName='%s', groupCode='%s'}"
,
typeCode
,
typeName
,
groupCode
);
}
}
amos-boot-system-tzs/amos-boot-module-ys/amos-boot-module-ys-biz/src/main/java/com/yeejoin/amos/boot/module/ys/biz/controller/MaintenanceEarlyWarningController.java
0 → 100644
View file @
4b733d54
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ys
.
biz
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance
;
import
com.yeejoin.amos.boot.module.common.biz.service.impl.DynamicFormInstanceServiceImpl
;
import
com.yeejoin.amos.boot.module.ys.api.enums.MaintenanceExpiredEarlyWarningEnum
;
import
com.yeejoin.amos.boot.module.ys.biz.service.impl.CommonServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* @author system_generator
* @date 2024-09-24
*/
@RestController
@Api
(
tags
=
"维保过期预警分析"
)
@RequestMapping
(
value
=
"/maintenanceEarlyWarningWarning/{equTypeCode}"
)
public
class
MaintenanceEarlyWarningController
extends
BaseController
{
private
static
final
String
SXCode
=
"50"
;
private
static
final
HashMap
<
String
,
String
>
unitTypeMap
=
new
HashMap
<>();
@Autowired
private
DynamicFormInstanceServiceImpl
dynamicFormInstanceService
;
@Autowired
private
CommonServiceImpl
commonService
;
static
{
unitTypeMap
.
put
(
"useUnit"
,
"使用单位"
);
}
/**
* 从URL中获取对应的 MaintenanceExpiredEarlyWarningEnum 枚举
*
* @param equTypeCode 设备类型代码
* @return 对应的 MaintenanceExpiredEarlyWarningEnum 枚举
* @throws BadRequest 如果设备类型代码无效
*/
public
MaintenanceExpiredEarlyWarningEnum
getWaringEnumsForPath
(
String
equTypeCode
)
{
return
MaintenanceExpiredEarlyWarningEnum
.
getEnum
(
equTypeCode
)
.
orElseThrow
(()
->
new
BadRequest
(
"Invalid equipment type code: "
+
equTypeCode
));
}
/**
* 新增或者更新接口
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/saveOrUpdate"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增或者更新接口"
,
notes
=
"新增或者更新接口"
)
public
ResponseModel
<
Object
>
saveOrUpdate
(
@PathVariable
(
value
=
"equTypeCode"
)
String
equTypeCode
,
@RequestBody
Map
<
String
,
Object
>
model
)
{
String
groupCode
=
getWaringEnumsForPath
(
equTypeCode
).
getGroupCode
();
String
instanceId
=
(
String
)
model
.
get
(
"instanceId"
);
try
{
// 判断是更新还是新增操作
if
(!
ValidationUtil
.
isEmpty
(
instanceId
))
{
// 更新操作:先删除再保存
LambdaQueryWrapper
<
DynamicFormInstance
>
lambda
=
new
QueryWrapper
<
DynamicFormInstance
>().
lambda
();
lambda
.
eq
(
DynamicFormInstance:
:
getInstanceId
,
instanceId
);
dynamicFormInstanceService
.
getBaseMapper
().
delete
(
lambda
);
}
// 保存新实例或更新后的实例
// 兼容附件格式新
model
.
keySet
().
stream
()
.
filter
(
key
->
key
.
endsWith
(
"file"
)
||
key
.
endsWith
(
"File"
))
.
forEach
(
key
->
model
.
put
(
key
,
JSONObject
.
toJSONString
(
model
.
get
(
key
))));
dynamicFormInstanceService
.
commonSave
(
groupCode
,
model
);
return
ResponseHelper
.
buildResponse
(
instanceId
!=
null
?
Long
.
parseLong
(
instanceId
)
:
Long
.
MIN_VALUE
);
}
catch
(
Exception
e
)
{
return
ResponseHelper
.
buildResponse
(
"Error saving or updating instance: "
+
e
.
getMessage
());
}
}
/**
* 根据sequenceNbr删除
*
* @param instanceId 主键
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@DeleteMapping
(
value
=
"/deleteBySeq"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据instanceId删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Integer
>
deleteBySeq
(
@RequestParam
(
value
=
"instanceId"
)
String
instanceId
)
{
LambdaQueryWrapper
<
DynamicFormInstance
>
lambda
=
new
QueryWrapper
<
DynamicFormInstance
>().
lambda
();
lambda
.
eq
(
DynamicFormInstance:
:
getInstanceId
,
instanceId
);
return
ResponseHelper
.
buildResponse
(
dynamicFormInstanceService
.
getBaseMapper
().
delete
(
lambda
));
}
/**
* 根据sequenceNbr查询
*
* @param instanceId 主键
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/detailBySeq"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
detailBySeq
(
@PathVariable
(
value
=
"equTypeCode"
)
String
equTypeCode
,
@RequestParam
(
value
=
"instanceId"
)
Long
instanceId
)
{
String
groupCode
=
getWaringEnumsForPath
(
equTypeCode
).
getGroupCode
();
Map
<
String
,
Object
>
oneMap
=
dynamicFormInstanceService
.
getOneMap
(
instanceId
,
groupCode
);
// 兼容附件格式返回
oneMap
.
keySet
().
stream
()
.
filter
(
key
->
key
.
endsWith
(
"file"
)
||
key
.
endsWith
(
"File"
))
.
forEach
(
key
->
oneMap
.
put
(
key
,
JSONObject
.
parseArray
((
String
)
oneMap
.
get
(
key
))));
return
ResponseHelper
.
buildResponse
(
oneMap
);
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
IPage
<
Map
<
String
,
Object
>>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
@PathVariable
(
value
=
"equTypeCode"
)
String
equTypeCode
)
{
MaintenanceExpiredEarlyWarningEnum
enums
=
getWaringEnumsForPath
(
equTypeCode
);
IPage
<
Map
<
String
,
Object
>>
mapIPage
=
dynamicFormInstanceService
.
pageList
(
current
,
size
,
enums
.
getGroupCode
());
List
<
Map
<
String
,
Object
>>
records
=
mapIPage
.
getRecords
();
List
<
Map
<
String
,
Object
>>
collect
=
records
.
stream
().
peek
(
item
->
{
String
useCompany
=
(
String
)
item
.
get
(
"useCompany"
);
String
unitType
=
(
String
)
item
.
get
(
"unitType"
);
if
(!
ValidationUtil
.
isEmpty
(
useCompany
)){
item
.
put
(
"useCompany"
,
useCompany
.
split
(
"_"
)[
1
]);
}
if
(!
ValidationUtil
.
isEmpty
(
unitType
)){
item
.
put
(
"equType"
,
enums
.
getTypeName
());
}
item
.
put
(
"unitType"
,
unitTypeMap
.
get
(
unitType
));
}).
collect
(
Collectors
.
toList
());
mapIPage
.
setRecords
(
collect
);
return
ResponseHelper
.
buildResponse
(
mapIPage
);
}
/**
* 图标统计数量
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/statistics"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"图标统计数量"
,
notes
=
"图标统计数量"
)
public
ResponseModel
<
JSONObject
>
statistics
(
@PathVariable
(
value
=
"equTypeCode"
)
String
equTypeCode
)
{
MaintenanceExpiredEarlyWarningEnum
enums
=
getWaringEnumsForPath
(
equTypeCode
);
// 问题设备数
long
numberOfProblemEqu
=
dynamicFormInstanceService
.
pageList
(
1
,
2
,
enums
.
getGroupCode
()).
getTotal
();
// 气瓶总设备数
long
numberOfCylinder
=
commonService
.
staticsCenterMapCountDataForCylinder
(
SXCode
);
// 各类型设备总数
long
totalNumberOfEqu
;
if
(
enums
.
getTypeCode
().
equals
(
"2300"
))
{
totalNumberOfEqu
=
numberOfCylinder
;
}
else
{
totalNumberOfEqu
=
commonService
.
staticsCenterMapCountDataForEquip
(
enums
.
getTypeCode
(),
numberOfCylinder
,
SXCode
);
}
return
ResponseHelper
.
buildResponse
(
new
JSONObject
()
.
fluentPut
(
"numberOfProblemEqu"
,
numberOfProblemEqu
)
.
fluentPut
(
"totalNumberOfEqu"
,
totalNumberOfEqu
));
}
}
amos-boot-system-tzs/amos-boot-module-ys/amos-boot-module-ys-biz/src/main/java/com/yeejoin/amos/boot/module/ys/biz/service/impl/CommonServiceImpl.java
View file @
4b733d54
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ys
.
biz
.
service
.
impl
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum
;
import
com.yeejoin.amos.boot.module.ys.api.vo.SortVo
;
import
com.yeejoin.amos.boot.module.ys.biz.service.CommonService
;
import
org.apache.lucene.queryparser.classic.QueryParser
;
import
org.elasticsearch.action.search.SearchRequest
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.client.RequestOptions
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.client.core.CountRequest
;
import
org.elasticsearch.client.core.CountResponse
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.aggregations.AggregationBuilders
;
import
org.elasticsearch.search.aggregations.bucket.terms.Terms
;
import
org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder
;
import
org.elasticsearch.search.builder.SearchSourceBuilder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.util.Optional
;
import
java.util.concurrent.atomic.AtomicLong
;
/**
* 公共服务实现类
...
...
@@ -16,6 +33,14 @@ import java.util.Optional;
public
class
CommonServiceImpl
implements
CommonService
{
/**
* 气瓶设备类别
*/
public
final
static
String
EQU_CATEGORY_CYLINDER
=
"2300"
;
@Autowired
private
RestHighLevelClient
restHighLevelClient
;
/**
* 排序 :页面列表排序功能支持,将 "字段,ascend" 或 "字段,descend" 转化为对应JSONObject
*
* @param sort "字段,ascend" 或 "字段,descend"
...
...
@@ -58,4 +83,82 @@ public class CommonServiceImpl implements CommonService {
return
sb
.
toString
();
}
/**
* 气瓶数量统计
*
* @param orgCode 区域code
* @return
*/
public
long
staticsCenterMapCountDataForCylinder
(
String
orgCode
)
{
long
num
=
0
;
CountRequest
request
=
new
CountRequest
();
request
.
indices
(
"idx_biz_view_jg_all"
);
BoolQueryBuilder
boolMust
=
QueryBuilders
.
boolQuery
();
// 按照管辖机构区域信息模糊查询
boolMust
.
must
(
QueryBuilders
.
wildcardQuery
(
"ORG_BRANCH_CODE.keyword"
,
QueryParser
.
escape
(
orgCode
)
+
"*"
));
// 设备类别精确查询气瓶
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_CATEGORY_CODE"
,
EQU_CATEGORY_CYLINDER
));
// 只统计已纳管设备
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"IS_INTO_MANAGEMENT"
,
Boolean
.
TRUE
));
// 只统计有监管码的、状态不是草稿且不是已拒领的
boolMust
.
must
(
QueryBuilders
.
existsQuery
(
"SUPERVISORY_CODE"
));
boolMust
.
mustNot
(
QueryBuilders
.
termQuery
(
"STATUS"
,
"草稿"
));
boolMust
.
mustNot
(
QueryBuilders
.
termQuery
(
"STATUS"
,
"已拒领"
));
request
.
query
(
boolMust
);
try
{
CountResponse
response
=
restHighLevelClient
.
count
(
request
,
RequestOptions
.
DEFAULT
);
num
=
response
.
getCount
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
num
;
}
/**
* 八大类设备数量统计
* @param equTypeCode
* @param cylinderNum
* @param orgCode
* @return
*/
public
long
staticsCenterMapCountDataForEquip
(
String
equTypeCode
,
long
cylinderNum
,
String
orgCode
)
{
AtomicLong
result
=
new
AtomicLong
(
0L
);
SearchRequest
request
=
new
SearchRequest
();
request
.
indices
(
"idx_biz_view_jg_all"
);
BoolQueryBuilder
boolMust
=
QueryBuilders
.
boolQuery
();
// 按照管辖机构区域信息模糊查询
boolMust
.
must
(
QueryBuilders
.
wildcardQuery
(
"ORG_BRANCH_CODE.keyword"
,
QueryParser
.
escape
(
orgCode
)
+
"*"
));
// 只统计已纳管设备
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"IS_INTO_MANAGEMENT"
,
Boolean
.
TRUE
));
// 只统计有监管码的、状态不是草稿且不是已拒领的
boolMust
.
must
(
QueryBuilders
.
existsQuery
(
"SUPERVISORY_CODE"
));
boolMust
.
mustNot
(
QueryBuilders
.
termQuery
(
"STATUS"
,
"草稿"
));
boolMust
.
mustNot
(
QueryBuilders
.
termQuery
(
"STATUS"
,
"已拒领"
));
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_LIST_CODE"
,
equTypeCode
));
SearchSourceBuilder
builder
=
new
SearchSourceBuilder
();
builder
.
query
(
boolMust
);
// 默认size为10 ,数据库有脏数据,所以需要多查询一些
TermsAggregationBuilder
aggregationBuilder
=
AggregationBuilders
.
terms
(
"count_by_equ_list_code"
).
field
(
"EQU_LIST_CODE"
).
size
(
20
);
builder
.
aggregation
(
aggregationBuilder
);
request
.
source
(
builder
);
try
{
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
Terms
terms
=
response
.
getAggregations
().
get
(
"count_by_equ_list_code"
);
for
(
Terms
.
Bucket
bucket
:
terms
.
getBuckets
())
{
if
(
equTypeCode
.
equals
(
bucket
.
getKeyAsString
()))
{
// 压力容器里包括气瓶,所以需要特殊处理
long
count
=
bucket
.
getDocCount
();
result
.
set
(
bucket
.
getKeyAsString
().
equals
(
EquipmentClassifityEnum
.
YLRQ
.
getCode
())
?
count
-
cylinderNum
:
count
);
break
;
}
}
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
result
.
get
();
}
}
\ No newline at end of file
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