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
cc5ca27f
Commit
cc5ca27f
authored
Oct 25, 2024
by
麻笑宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
气瓶 / 区域统计(无)
下钻代码提交
parent
9a4e3a47
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
450 additions
and
1 deletion
+450
-1
DPFilterParamForDetailDto.java
...boot/module/common/api/dto/DPFilterParamForDetailDto.java
+14
-0
EquipmentStatisticsController.java
...atistcs/biz/controller/EquipmentStatisticsController.java
+58
-0
JYJCDPStatisticsController.java
.../statistcs/biz/controller/JYJCDPStatisticsController.java
+1
-1
EquipmentStaticsServiceImpl.java
...atistcs/biz/service/impl/EquipmentStaticsServiceImpl.java
+369
-0
DispatchTaskMapper.xml
...-ymt-api/src/main/resources/mapper/DispatchTaskMapper.xml
+8
-0
No files found.
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/DPFilterParamForDetailDto.java
View file @
cc5ca27f
...
@@ -176,4 +176,18 @@ public class DPFilterParamForDetailDto {
...
@@ -176,4 +176,18 @@ public class DPFilterParamForDetailDto {
* 是否对接 0:未对接,1:已对接
* 是否对接 0:未对接,1:已对接
*/
*/
private
String
isDock
;
private
String
isDock
;
/**
* 检验状态0临期1超期
*/
private
String
inspectionStatus
;
/**
* 监管码状态0已赋码1未赋码
*/
private
String
supervisionCodeStatus
;
/**
* 下次检验日期
*/
private
String
nextInspectionDate
;
}
}
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/controller/EquipmentStatisticsController.java
0 → 100644
View file @
cc5ca27f
package
com
.
yeejoin
.
amos
.
boot
.
module
.
statistcs
.
biz
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto
;
import
com.yeejoin.amos.boot.module.statistcs.biz.service.impl.EquipmentBizServiceImpl
;
import
com.yeejoin.amos.boot.module.statistcs.biz.service.impl.EquipmentStaticsServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.FieldError
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
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.List
;
import
java.util.Map
;
/**
* @author Administrator
*/
@RestController
@RequestMapping
(
value
=
"/dp/equipment"
)
@Api
(
tags
=
"大屏-设备统计"
)
public
class
EquipmentStatisticsController
{
@Autowired
private
EquipmentStaticsServiceImpl
equipmentStaticsService
;
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"设备常规下钻图表"
,
notes
=
"设备常规下钻图表"
)
@PostMapping
(
value
=
"/normalChart"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
normalChart
(
@Validated
@RequestBody
DPFilterParamForDetailDto
dpFilterParamForDetailDto
,
BindingResult
result
)
{
List
<
FieldError
>
fieldErrors
=
result
.
getFieldErrors
();
if
(!
fieldErrors
.
isEmpty
())
{
throw
new
BadRequest
(
fieldErrors
.
get
(
0
).
getDefaultMessage
());
}
return
ResponseHelper
.
buildResponse
(
equipmentStaticsService
.
normalChart
(
dpFilterParamForDetailDto
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"设备常规下钻列表"
,
notes
=
"设备常规下钻列表"
)
@PostMapping
(
value
=
"/normalPage"
)
public
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
normalPage
(
@Validated
@RequestBody
DPFilterParamForDetailDto
dpFilterParamDto
,
BindingResult
result
,
@RequestParam
(
value
=
"current"
,
defaultValue
=
"1"
)
Integer
current
,
@RequestParam
(
value
=
"size"
,
defaultValue
=
"20"
)
Integer
size
)
{
List
<
FieldError
>
fieldErrors
=
result
.
getFieldErrors
();
if
(!
fieldErrors
.
isEmpty
())
{
throw
new
BadRequest
(
fieldErrors
.
get
(
0
).
getDefaultMessage
());
}
return
ResponseHelper
.
buildResponse
(
equipmentStaticsService
.
normalPage
(
current
,
size
,
dpFilterParamDto
));
}
}
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/controller/JYJCDPStatisticsController.java
View file @
cc5ca27f
...
@@ -189,7 +189,7 @@ public class JYJCDPStatisticsController {
...
@@ -189,7 +189,7 @@ public class JYJCDPStatisticsController {
return
ResponseHelper
.
buildResponse
(
statisticsService
.
inspectionTimelinessTopXXChart
(
dpFilterParamForDetailDto
));
return
ResponseHelper
.
buildResponse
(
statisticsService
.
inspectionTimelinessTopXXChart
(
dpFilterParamForDetailDto
));
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"大屏-检验检测-按机构进行检验时效统计Top10排名下钻
图表"
,
notes
=
"大屏-检验检测-按机构进行检验时效统计Top10排名下钻图
表"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"大屏-检验检测-按机构进行检验时效统计Top10排名下钻
列表"
,
notes
=
"大屏-检验检测-按机构进行检验时效统计Top10排名下钻列
表"
)
@PostMapping
(
value
=
"/timeliness/topPage"
)
@PostMapping
(
value
=
"/timeliness/topPage"
)
public
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
inspectionTimelinessTopXXPage
(
@Validated
@RequestBody
DPFilterParamForDetailDto
dpFilterParamForDetailDto
,
BindingResult
result
,
public
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
inspectionTimelinessTopXXPage
(
@Validated
@RequestBody
DPFilterParamForDetailDto
dpFilterParamForDetailDto
,
BindingResult
result
,
@RequestParam
(
value
=
"current"
,
defaultValue
=
"1"
)
Integer
current
,
@RequestParam
(
value
=
"current"
,
defaultValue
=
"1"
)
Integer
current
,
...
...
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/EquipmentStaticsServiceImpl.java
0 → 100644
View file @
cc5ca27f
package
com
.
yeejoin
.
amos
.
boot
.
module
.
statistcs
.
biz
.
service
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto
;
import
com.yeejoin.amos.feign.systemctl.model.RegionModel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.lucene.queryparser.classic.QueryParser
;
import
org.elasticsearch.action.search.SearchRequest
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.action.search.ShardSearchFailure
;
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.builder.SearchSourceBuilder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQuery
;
import
org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
@Slf4j
public
class
EquipmentStaticsServiceImpl
{
@Autowired
private
StCommonServiceImpl
stCommonService
;
@Autowired
private
RestHighLevelClient
restHighLevelClient
;
public
Map
<
String
,
Object
>
normalChart
(
DPFilterParamForDetailDto
dpFilterParamForDetailDto
)
{
List
<
RegionModel
>
regionModels
=
stCommonService
.
setRegionIfRootParent
(
dpFilterParamForDetailDto
.
getCityCode
());
List
<
Map
<
String
,
Object
>>
result
=
regionModels
.
parallelStream
().
map
(
r
->
{
String
orgCode
=
stCommonService
.
getAndSetOrgCode
(
r
.
getRegionCode
()+
""
);
DPFilterParamForDetailDto
dpFilterParamForDetailDtoForSearch
=
new
DPFilterParamForDetailDto
();
dpFilterParamForDetailDtoForSearch
.
setOrgCode
(
orgCode
);
dpFilterParamForDetailDtoForSearch
.
setCityCode
(
r
.
getRegionCode
()+
""
);
Map
<
String
,
Object
>
itemResult
=
new
HashMap
<>();
itemResult
.
put
(
"xdata"
,
r
.
getRegionName
());
getNormalChartData
(
itemResult
,
dpFilterParamForDetailDtoForSearch
);
return
itemResult
;
}).
collect
(
Collectors
.
toList
());
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
List
<
Object
>
legendData
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
4
;
i
++){
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
i
==
0
){
map
.
put
(
"dataKey"
,
"fmCount"
);
map
.
put
(
"value"
,
"赋码设备"
);
map
.
put
(
"chartType"
,
"bar"
);
}
else
if
(
i
==
1
){
map
.
put
(
"dataKey"
,
"lqCount"
);
map
.
put
(
"value"
,
"临期数量"
);
map
.
put
(
"chartType"
,
"bar"
);
}
else
if
(
i
==
2
){
map
.
put
(
"dataKey"
,
"cqCount"
);
map
.
put
(
"value"
,
"超期数量"
);
map
.
put
(
"chartType"
,
"bar"
);
}
else
{
map
.
put
(
"dataKey"
,
"stationRate"
);
map
.
put
(
"value"
,
"纳管率"
);
map
.
put
(
"chartType"
,
"line"
);
}
legendData
.
add
(
map
);
}
returnMap
.
put
(
"legendData"
,
legendData
);
List
xdata
=
new
ArrayList
();
List
fmCount
=
new
ArrayList
();
List
lqCount
=
new
ArrayList
();
List
cqCount
=
new
ArrayList
();
List
stationRate
=
new
ArrayList
();
for
(
int
i
=
0
;
i
<
result
.
size
();
i
++){
xdata
.
add
(
result
.
get
(
i
).
get
(
"xdata"
));
fmCount
.
add
(
result
.
get
(
i
).
get
(
"fmCount"
)
==
null
?
"0"
:
result
.
get
(
i
).
get
(
"fmCount"
));
lqCount
.
add
(
result
.
get
(
i
).
get
(
"lqCount"
)
==
null
?
"0"
:
result
.
get
(
i
).
get
(
"lqCount"
));
cqCount
.
add
(
result
.
get
(
i
).
get
(
"cqCount"
)
==
null
?
"0"
:
result
.
get
(
i
).
get
(
"cqCount"
));
stationRate
.
add
(
result
.
get
(
i
).
get
(
"stationRate"
)
==
null
?
"0"
:
result
.
get
(
i
).
get
(
"stationRate"
));
}
returnMap
.
put
(
"xdata"
,
xdata
);
returnMap
.
put
(
"fmCount"
,
fmCount
);
returnMap
.
put
(
"lqCount"
,
lqCount
);
returnMap
.
put
(
"cqCount"
,
cqCount
);
returnMap
.
put
(
"stationRate"
,
stationRate
);
return
returnMap
;
}
private
void
getNormalChartData
(
Map
<
String
,
Object
>
itemResult
,
DPFilterParamForDetailDto
dpFilterParamForDetailDto
)
{
//赋码数量
Long
fmCount
=
getFMEquipmentCount
(
dpFilterParamForDetailDto
);
//临期数量
Long
lqCount
=
getLQEquipmentCount
(
dpFilterParamForDetailDto
);
//超期数量
Long
cqCount
=
getCQEquipmentCount
(
dpFilterParamForDetailDto
);
//纳管数量
Long
ngCount
=
getNGEquipmentCount
(
dpFilterParamForDetailDto
);
//所有设备数量
Long
allCount
=
getAllEquipmentCount
(
dpFilterParamForDetailDto
);
if
(
allCount
!=
null
&&
ngCount
!=
null
&&
allCount
>
0
)
{
BigDecimal
percent
=
(
new
BigDecimal
(
ngCount
.
doubleValue
()).
divide
(
new
BigDecimal
(
allCount
.
doubleValue
()),
2
,
RoundingMode
.
HALF_UP
));
itemResult
.
put
(
"stationRate"
,
Double
.
valueOf
(
percent
.
toString
()));
}
else
{
itemResult
.
put
(
"stationRate"
,
0.0
);
}
itemResult
.
put
(
"fmCount"
,
fmCount
);
itemResult
.
put
(
"lqCount"
,
lqCount
);
itemResult
.
put
(
"cqCount"
,
cqCount
);
}
private
Long
getFMEquipmentCount
(
DPFilterParamForDetailDto
dpFilterParamForDetailDto
)
{
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
(
dpFilterParamForDetailDto
.
getOrgCode
())
+
"*"
));
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getTreeValue
()))
{
if
(
"2300"
.
equals
(
dpFilterParamForDetailDto
.
getTreeValue
())){
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_CATEGORY_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
else
{
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_LIST_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
}
// 且8大类,目的去掉脏数据
boolMust
.
must
(
QueryBuilders
.
termsQuery
(
"EQU_LIST_CODE"
,
StCommonServiceImpl
.
getEquipmentCategory
().
stream
().
map
(
EquipmentCategoryDto:
:
getCode
).
collect
(
Collectors
.
toList
())));
boolMust
.
must
(
QueryBuilders
.
existsQuery
(
"SUPERVISORY_CODE"
));
boolMust
.
mustNot
(
QueryBuilders
.
termQuery
(
"SUPERVISORY_CODE"
,
"null"
));
String
[]
status
=
{
"草稿"
,
"已拒领"
,
"待认领"
};
boolMust
.
mustNot
(
QueryBuilders
.
termsQuery
(
"STATUS"
,
Arrays
.
asList
(
status
)));
request
.
query
(
boolMust
);
try
{
CountResponse
response
=
restHighLevelClient
.
count
(
request
,
RequestOptions
.
DEFAULT
);
num
=
response
.
getCount
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
num
;
}
private
Long
getAllEquipmentCount
(
DPFilterParamForDetailDto
dpFilterParamForDetailDto
)
{
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
(
dpFilterParamForDetailDto
.
getOrgCode
())
+
"*"
));
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getTreeValue
()))
{
if
(
"2300"
.
equals
(
dpFilterParamForDetailDto
.
getTreeValue
())){
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_CATEGORY_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
else
{
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_LIST_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
}
// 且8大类,目的去掉脏数据
boolMust
.
must
(
QueryBuilders
.
termsQuery
(
"EQU_LIST_CODE"
,
StCommonServiceImpl
.
getEquipmentCategory
().
stream
().
map
(
EquipmentCategoryDto:
:
getCode
).
collect
(
Collectors
.
toList
())));
String
[]
status
=
{
"草稿"
,
"已拒领"
,
"待认领"
};
boolMust
.
mustNot
(
QueryBuilders
.
termsQuery
(
"STATUS"
,
Arrays
.
asList
(
status
)));
request
.
query
(
boolMust
);
try
{
CountResponse
response
=
restHighLevelClient
.
count
(
request
,
RequestOptions
.
DEFAULT
);
num
=
response
.
getCount
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
num
;
}
private
Long
getNGEquipmentCount
(
DPFilterParamForDetailDto
dpFilterParamForDetailDto
)
{
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
(
dpFilterParamForDetailDto
.
getOrgCode
())
+
"*"
));
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"IS_INTO_MANAGEMENT"
,
true
));
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getTreeValue
()))
{
if
(
"2300"
.
equals
(
dpFilterParamForDetailDto
.
getTreeValue
())){
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_CATEGORY_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
else
{
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_LIST_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
}
// 且8大类,目的去掉脏数据
boolMust
.
must
(
QueryBuilders
.
termsQuery
(
"EQU_LIST_CODE"
,
StCommonServiceImpl
.
getEquipmentCategory
().
stream
().
map
(
EquipmentCategoryDto:
:
getCode
).
collect
(
Collectors
.
toList
())));
String
[]
status
=
{
"草稿"
,
"已拒领"
,
"待认领"
};
boolMust
.
mustNot
(
QueryBuilders
.
termsQuery
(
"STATUS"
,
Arrays
.
asList
(
status
)));
request
.
query
(
boolMust
);
try
{
CountResponse
response
=
restHighLevelClient
.
count
(
request
,
RequestOptions
.
DEFAULT
);
num
=
response
.
getCount
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
num
;
}
private
Long
getLQEquipmentCount
(
DPFilterParamForDetailDto
dpFilterParamForDetailDto
)
{
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
(
dpFilterParamForDetailDto
.
getOrgCode
())
+
"*"
));
// 且下次检验日期大于等于当天 且查询 下次检验日期 <= 当前天+30天 即为临期
long
currentDayTime
=
DateUtil
.
parse
(
DateUtil
.
today
(),
"yyy-MM-dd"
).
getTime
();
long
currentDayAfter30DayTime
=
DateUtil
.
offsetDay
(
DateUtil
.
parse
(
DateUtil
.
today
(),
"yyy-MM-dd"
),
30
).
getTime
();
boolMust
.
must
(
QueryBuilders
.
rangeQuery
(
"NEXT_INSPECT_DATE"
).
gte
(
currentDayTime
).
lte
(
currentDayAfter30DayTime
));
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getTreeValue
()))
{
if
(
"2300"
.
equals
(
dpFilterParamForDetailDto
.
getTreeValue
())){
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_CATEGORY_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
else
{
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_LIST_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
}
// 且8大类,目的去掉脏数据
boolMust
.
must
(
QueryBuilders
.
termsQuery
(
"EQU_LIST_CODE"
,
StCommonServiceImpl
.
getEquipmentCategory
().
stream
().
map
(
EquipmentCategoryDto:
:
getCode
).
collect
(
Collectors
.
toList
())));
String
[]
status
=
{
"草稿"
,
"已拒领"
,
"待认领"
};
boolMust
.
mustNot
(
QueryBuilders
.
termsQuery
(
"STATUS"
,
Arrays
.
asList
(
status
)));
request
.
query
(
boolMust
);
try
{
CountResponse
response
=
restHighLevelClient
.
count
(
request
,
RequestOptions
.
DEFAULT
);
num
=
response
.
getCount
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
num
;
}
private
Long
getCQEquipmentCount
(
DPFilterParamForDetailDto
dpFilterParamForDetailDto
)
{
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
(
dpFilterParamForDetailDto
.
getOrgCode
())
+
"*"
));
// 查询下次检验日期小于当前天的设备,即为超期检验超期设备
long
currentDayTime
=
DateUtil
.
parse
(
DateUtil
.
now
(),
"yyy-MM-dd"
).
getTime
();
boolMust
.
must
(
QueryBuilders
.
rangeQuery
(
"NEXT_INSPECT_DATE"
).
lt
(
currentDayTime
));
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getTreeValue
()))
{
if
(
"2300"
.
equals
(
dpFilterParamForDetailDto
.
getTreeValue
())){
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_CATEGORY_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
else
{
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_LIST_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
}
// 且8大类,目的去掉脏数据
boolMust
.
must
(
QueryBuilders
.
termsQuery
(
"EQU_LIST_CODE"
,
StCommonServiceImpl
.
getEquipmentCategory
().
stream
().
map
(
EquipmentCategoryDto:
:
getCode
).
collect
(
Collectors
.
toList
())));
String
[]
status
=
{
"草稿"
,
"已拒领"
,
"待认领"
};
boolMust
.
mustNot
(
QueryBuilders
.
termsQuery
(
"STATUS"
,
Arrays
.
asList
(
status
)));
request
.
query
(
boolMust
);
try
{
CountResponse
response
=
restHighLevelClient
.
count
(
request
,
RequestOptions
.
DEFAULT
);
num
=
response
.
getCount
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
num
;
}
public
Page
<
Map
<
String
,
Object
>>
normalPage
(
Integer
current
,
Integer
size
,
DPFilterParamForDetailDto
dpFilterParamForDetailDto
)
{
String
orgCode
=
stCommonService
.
getAndSetOrgCode
(
dpFilterParamForDetailDto
.
getCityCode
());
if
(
StringUtils
.
isEmpty
(
orgCode
)){
return
new
Page
<>(
current
,
size
);
}
SearchRequest
request
=
new
SearchRequest
();
request
.
indices
(
"idx_biz_view_jg_all"
);
SearchSourceBuilder
searchSourceBuilder
=
new
SearchSourceBuilder
();
BoolQueryBuilder
boolMust
=
QueryBuilders
.
boolQuery
();
// 按照管辖机构区域信息模糊查询
boolMust
.
must
(
QueryBuilders
.
wildcardQuery
(
"ORG_BRANCH_CODE.keyword"
,
QueryParser
.
escape
(
orgCode
)
+
"*"
));
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getTreeValue
()))
{
if
(
"2300"
.
equals
(
dpFilterParamForDetailDto
.
getTreeValue
())){
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_CATEGORY_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
else
{
boolMust
.
must
(
QueryBuilders
.
termQuery
(
"EQU_LIST_CODE"
,
QueryParser
.
escape
(
dpFilterParamForDetailDto
.
getTreeValue
().
toLowerCase
())));
}
}
// 且8大类,目的去掉脏数据
boolMust
.
must
(
QueryBuilders
.
termsQuery
(
"EQU_LIST_CODE"
,
StCommonServiceImpl
.
getEquipmentCategory
().
stream
().
map
(
EquipmentCategoryDto:
:
getCode
).
collect
(
Collectors
.
toList
())));
String
[]
status
=
{
"草稿"
,
"已拒领"
,
"待认领"
};
boolMust
.
mustNot
(
QueryBuilders
.
termsQuery
(
"STATUS"
,
Arrays
.
asList
(
status
)));
//检验状态0临期1超期
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getInspectionStatus
())){
if
(
StringUtils
.
equals
(
"0"
,
dpFilterParamForDetailDto
.
getInspectionStatus
())){
// 且下次检验日期大于等于当天 且查询 下次检验日期 <= 当前天+30天 即为临期
long
currentDayTime
=
DateUtil
.
parse
(
DateUtil
.
today
(),
"yyy-MM-dd"
).
getTime
();
long
currentDayAfter30DayTime
=
DateUtil
.
offsetDay
(
DateUtil
.
parse
(
DateUtil
.
today
(),
"yyy-MM-dd"
),
30
).
getTime
();
boolMust
.
must
(
QueryBuilders
.
rangeQuery
(
"NEXT_INSPECT_DATE"
).
gte
(
currentDayTime
).
lte
(
currentDayAfter30DayTime
));
}
else
{
// 查询下次检验日期小于当前天的设备,即为超期检验超期设备
long
currentDayTime
=
DateUtil
.
parse
(
DateUtil
.
now
(),
"yyy-MM-dd"
).
getTime
();
boolMust
.
must
(
QueryBuilders
.
rangeQuery
(
"NEXT_INSPECT_DATE"
).
lt
(
currentDayTime
));
}
}
//监管码状态0已赋码1未赋码
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getSupervisionCodeStatus
())){
if
(
StringUtils
.
equals
(
"0"
,
dpFilterParamForDetailDto
.
getSupervisionCodeStatus
())){
boolMust
.
must
(
QueryBuilders
.
existsQuery
(
"SUPERVISORY_CODE"
));
boolMust
.
mustNot
(
QueryBuilders
.
termQuery
(
"SUPERVISORY_CODE"
,
"null"
));
}
else
{
boolMust
.
mustNot
(
QueryBuilders
.
existsQuery
(
"SUPERVISORY_CODE"
));
}
}
if
(
StringUtils
.
isNotEmpty
(
dpFilterParamForDetailDto
.
getNextInspectionDate
())){
boolMust
.
must
(
QueryBuilders
.
rangeQuery
(
"NEXT_INSPECT_DATE"
).
gte
(
dpFilterParamForDetailDto
.
getNextInspectionDate
()));
}
searchSourceBuilder
.
query
(
boolMust
);
searchSourceBuilder
.
from
(
current
-
1
);
searchSourceBuilder
.
size
(
size
);
searchSourceBuilder
.
trackTotalHits
(
true
);
request
.
source
(
searchSourceBuilder
);
// 创建查询构造器
NativeSearchQuery
query
=
new
NativeSearchQueryBuilder
()
// 分页
.
withPageable
(
PageRequest
.
of
(
current
-
1
,
size
))
//过滤条件
.
withQuery
(
boolMust
).
build
();
query
.
setTrackTotalHits
(
true
);
query
.
setMaxResults
(
size
);
List
<
Map
<
String
,
Object
>>
list
=
new
LinkedList
<>();
long
total
=
0
;
Page
<
Map
<
String
,
Object
>>
result
=
new
Page
<>(
current
,
size
);
try
{
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
for
(
org
.
elasticsearch
.
search
.
SearchHit
hit
:
response
.
getHits
().
getHits
())
{
System
.
out
.
println
(
hit
);
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
hit
);
JSONObject
dto2
=
jsonObject
.
getJSONObject
(
"sourceAsMap"
);
list
.
add
(
dto2
);
}
total
=
response
.
getInternalResponse
().
hits
().
getTotalHits
().
value
;
result
.
setRecords
(
list
);
result
.
setTotal
(
total
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
result
;
}
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/DispatchTaskMapper.xml
View file @
cc5ca27f
...
@@ -134,6 +134,14 @@
...
@@ -134,6 +134,14 @@
AVG ( TIMESTAMPDIFF ( SECOND, tdt.arrive_time, tdt.save_time ) ) AS avgTime,
AVG ( TIMESTAMPDIFF ( SECOND, tdt.arrive_time, tdt.save_time ) ) AS avgTime,
COALESCE(u."userCount",0) as userCount,
COALESCE(u."userCount",0) as userCount,
COALESCE(e."equipCount",0) as equipCount,
COALESCE(e."equipCount",0) as equipCount,
tbei.use_unit_code AS useUnitCode,
tbei.unit_type AS unitType,
tbei.use_unit AS useUnit,
concat ( tbei.province, tbei.city, tbei.district ) AS region,
tbei.address AS address,
tbei.legal_person AS legalPerson,
tbei.use_unit_certificate AS useUnitCertificate,
tbei.supervise_org_name AS superviseOrgName,
l.expiry_date
l.expiry_date
FROM
FROM
tz_dispatch_task tdt
tz_dispatch_task tdt
...
...
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