Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
黄嘉阳
/
iot-platform-server
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
9068f922
authored
Sep 19, 2023
by
朱淼
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
修改bug
parent
f1816774
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
103 additions
and
53 deletions
server-module/src/main/java/com/makeit/module/controller/dataScreen/DataScreenController.java
server-service/src/main/java/com/makeit/service/platform/dataScreen/DataScreenService.java
server-service/src/main/java/com/makeit/service/platform/dataScreen/impl/DataScreenServiceImpl.java
server-service/src/main/java/com/makeit/vo/platform/dataScreen/PlatAlarmStatisticsVO.java
server-module/src/main/java/com/makeit/module/controller/dataScreen/DataScreenController.java
View file @
9068f922
package
com
.
makeit
.
module
.
controller
.
dataScreen
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO
;
import
com.makeit.dto.platform.space.PlatBedQueryDTO
;
import
com.makeit.module.system.entity.ChinaArea
;
import
com.makeit.service.platform.dataScreen.DataScreenService
;
import
com.makeit.utils.area.ChinaAreaVO
;
import
com.makeit.vo.platform.dataScreen.*
;
import
com.makeit.vo.platform.space.PlatBedVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -55,6 +59,12 @@ public class DataScreenController {
return
ApiResponseUtils
.
success
(
dataScreenService
.
alarmStatistics
(
dto
));
}
@ApiOperation
(
"实时告警分页列表"
)
@PostMapping
(
"alarmPage"
)
public
ApiResponseEntity
<
PageVO
<
PlatAlarmStatisticsListVo
>>
alarmPage
(
@RequestBody
PageReqDTO
<
PlatDataScreenQueryDTO
>
page
)
{
return
ApiResponseUtils
.
success
(
dataScreenService
.
alarmPage
(
page
));
}
@ApiOperation
(
"机构养老-基础数据统计"
)
@PostMapping
(
"baseInfoStatistics"
)
public
ApiResponseEntity
<
PlatBaseInfoStatisticsVO
>
baseInfoStatistics
(
@RequestBody
PlatDataScreenQueryDTO
dto
)
{
...
...
server-service/src/main/java/com/makeit/service/platform/dataScreen/DataScreenService.java
View file @
9068f922
package
com
.
makeit
.
service
.
platform
.
dataScreen
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO
;
import
com.makeit.utils.area.ChinaAreaVO
;
import
com.makeit.vo.platform.dataScreen.*
;
...
...
@@ -26,4 +28,6 @@ public interface DataScreenService {
List
<
PlatMapStatisticsVO
>
mapStatistics
(
PlatDataScreenQueryDTO
dto
);
List
<
ChinaAreaVO
>
mapList
(
PlatDataScreenQueryDTO
dto
);
PageVO
<
PlatAlarmStatisticsListVo
>
alarmPage
(
PageReqDTO
<
PlatDataScreenQueryDTO
>
page
);
}
server-service/src/main/java/com/makeit/service/platform/dataScreen/impl/DataScreenServiceImpl.java
View file @
9068f922
package
com
.
makeit
.
service
.
platform
.
dataScreen
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.auth.PlatOrg
;
...
...
@@ -8,6 +11,7 @@ import com.makeit.entity.platform.auth.PlatUser;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.space.PlatBed
;
import
com.makeit.entity.platform.space.PlatRoom
;
import
com.makeit.entity.platform.space.PlatSpace
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
...
...
@@ -26,6 +30,7 @@ import com.makeit.service.platform.space.PlatSpaceService;
import
com.makeit.utils.area.AreaUtil
;
import
com.makeit.utils.area.ChinaAreaVO
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.PageUtil
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.sql.join.JoinUtil
;
import
com.makeit.vo.platform.dataScreen.*
;
...
...
@@ -180,6 +185,7 @@ public class DataScreenServiceImpl implements DataScreenService {
long
onlineNumber
=
devices
.
stream
().
filter
(
t
->
DeviceState
.
online
.
getValue
().
equals
(
t
.
getStatus
())).
count
();
long
offlineNumber
=
devices
.
stream
().
filter
(
t
->
DeviceState
.
offline
.
getValue
().
equals
(
t
.
getStatus
())).
count
();
long
disableNumber
=
devices
.
stream
().
filter
(
t
->
DeviceState
.
notActive
.
getValue
().
equals
(
t
.
getStatus
())).
count
();
long
faultNumber
=
devices
.
stream
().
filter
(
t
->
DeviceState
.
abnormal
.
getValue
().
equals
(
t
.
getStatus
())).
count
();
long
heartNumber
=
devices
.
stream
().
filter
(
t
->
PlatDeviceEnum
.
CategoryEnum
.
HEART
.
getValue
().
equals
(
t
.
getCategory
())).
count
();
long
fallNumber
=
devices
.
stream
().
filter
(
t
->
PlatDeviceEnum
.
CategoryEnum
.
FALL
.
getValue
().
equals
(
t
.
getCategory
())).
count
();
long
spaceNumber
=
devices
.
stream
().
filter
(
t
->
PlatDeviceEnum
.
CategoryEnum
.
SPACE
.
getValue
().
equals
(
t
.
getCategory
())).
count
();
...
...
@@ -191,6 +197,7 @@ public class DataScreenServiceImpl implements DataScreenService {
vo
.
setHeartNumber
(
heartNumber
);
vo
.
setFallNumber
(
fallNumber
);
vo
.
setSpaceNumber
(
spaceNumber
);
vo
.
setFaultNumber
(
faultNumber
);
return
vo
;
}
...
...
@@ -219,63 +226,17 @@ public class DataScreenServiceImpl implements DataScreenService {
}
List
<
PlatAlarmRecord
>
alarmRecords
=
platAlarmRecordService
.
list
(
new
QueryWrapper
<
PlatAlarmRecord
>().
lambda
()
.
between
(
PlatAlarmRecord:
:
getAlarmDate
,
dto
.
getStartTime
(),
dto
.
getEndTime
())
.
isNotNull
(
PlatAlarmRecord:
:
getElderIds
)
.
in
(
PlatAlarmRecord:
:
getOrgId
,
dto
.
getOrgIds
()));
List
<
PlatElder
>
platElders
=
platElderService
.
list
();
Map
<
String
,
String
>
elderNameMap
=
platElders
.
stream
().
collect
(
Collectors
.
toMap
(
PlatElder:
:
getId
,
PlatElder:
:
getName
));
Map
<
String
,
PlatElderListVO
>
elderBedPathMap
=
mapElderBedPath
(
platElders
);
List
<
PlatAlarmStatisticsListVo
>
list
=
new
ArrayList
<>();
long
total
=
0
;
long
handledNumber
=
0
;
long
unhandledNumber
=
0
;
DateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
DateFormat
dft
=
new
SimpleDateFormat
(
"HH:mm:ss"
);
for
(
PlatAlarmRecord
record
:
alarmRecords
){
if
(
StringUtil
.
isNotEmpty
(
record
.
getElderIds
())){
List
<
String
>
elderIds
=
Arrays
.
asList
(
record
.
getElderIds
().
split
(
","
));
PlatAlarmStatisticsListVo
listVo
=
new
PlatAlarmStatisticsListVo
();
String
elderName
=
""
;
String
pathName
=
""
;
for
(
String
elderId
:
elderIds
){
if
(
elderNameMap
.
get
(
elderId
)!=
null
){
elderName
=
""
.
equals
(
elderName
)
?
elderNameMap
.
get
(
elderId
)
:
elderName
+
","
+
elderNameMap
.
get
(
elderId
);
}
if
(
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
HEART
.
getValue
().
equals
(
record
.
getAlarmType
())
||
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BREATHE
.
getValue
().
equals
(
record
.
getAlarmType
())
){
if
(
elderBedPathMap
.
get
(
elderId
)!=
null
){
pathName
=
elderBedPathMap
.
get
(
elderId
).
getSpacePathName
();
}
}
else
{
if
(
elderBedPathMap
.
get
(
elderId
)!=
null
){
pathName
=
""
.
equals
(
pathName
)
?
elderBedPathMap
.
get
(
elderId
).
getSpacePathName
()
:
pathName
+
","
+
elderBedPathMap
.
get
(
elderId
).
getRoomName
();
}
}
}
if
(
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
HEART
.
getValue
().
equals
(
record
.
getAlarmType
())
||
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BREATHE
.
getValue
().
equals
(
record
.
getAlarmType
())
){
listVo
.
setStatus
(
record
.
getRemark
());
}
listVo
.
setPath
(
pathName
);
listVo
.
setElderName
(
elderName
);
listVo
.
setType
(
record
.
getAlarmType
());
listVo
.
setAlarmDate
(
df
.
format
(
record
.
getAlarmDate
()));
listVo
.
setAlarmTime
(
dft
.
format
(
record
.
getAlarmDate
()));
total
++;
if
(
PlatAlarmRecordEnum
.
AlarmRecordStatusEnum
.
HANDLED
.
getValue
().
equals
(
record
.
getStatus
())){
handledNumber
++;
}
else
{
unhandledNumber
++;
}
list
.
add
(
listVo
);
}
}
long
total
=
alarmRecords
.
size
();
long
handledNumber
=
alarmRecords
.
stream
()
.
filter
(
record
->
PlatAlarmRecordEnum
.
AlarmRecordStatusEnum
.
HANDLED
.
getValue
().
equals
(
record
.
getStatus
())).
count
();
long
unhandledNumber
=
alarmRecords
.
stream
()
.
filter
(
record
->!
PlatAlarmRecordEnum
.
AlarmRecordStatusEnum
.
HANDLED
.
getValue
().
equals
(
record
.
getStatus
())).
count
();
vo
.
setTotal
(
total
);
vo
.
setHandledNumber
(
handledNumber
);
vo
.
setUnhandledNumber
(
unhandledNumber
);
vo
.
setList
(
list
);
return
vo
;
}
...
...
@@ -441,6 +402,81 @@ public class DataScreenServiceImpl implements DataScreenService {
return
list
;
}
@Override
public
PageVO
<
PlatAlarmStatisticsListVo
>
alarmPage
(
PageReqDTO
<
PlatDataScreenQueryDTO
>
page
)
{
PlatDataScreenQueryDTO
dto
=
page
.
getData
();
Page
<
PlatAlarmRecord
>
p
=
PageUtil
.
toMpPage
(
page
);
if
(
dto
.
getOrgIds
().
isEmpty
()){
//获取该账号的权限组织
List
<
PlatOrg
>
orgs
=
belongToScopeList
(
dto
.
getType
());
if
(
orgs
.
isEmpty
()){
return
new
PageVO
<>();
}
List
<
String
>
orgIds
=
orgs
.
stream
().
map
(
PlatOrg:
:
getId
).
collect
(
Collectors
.
toList
());
dto
.
setOrgIds
(
orgIds
);
}
else
{
//根据类型过滤数据
List
<
PlatOrg
>
platOrgs
=
platOrgService
.
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
.
in
(
PlatOrg:
:
getId
,
dto
.
getOrgIds
())
.
eq
(
PlatOrg:
:
getType
,
dto
.
getType
()));
if
(
platOrgs
.
isEmpty
()){
return
new
PageVO
<>();
}
List
<
String
>
orgIdList
=
platOrgs
.
stream
().
map
(
PlatOrg:
:
getId
).
collect
(
Collectors
.
toList
());
dto
.
setOrgIds
(
orgIdList
);
}
Page
<
PlatAlarmRecord
>
pages
=
platAlarmRecordService
.
page
(
p
,
new
QueryWrapper
<
PlatAlarmRecord
>().
lambda
()
.
between
(
dto
.
getStartTime
()!=
null
&&
dto
.
getEndTime
()!=
null
,
PlatAlarmRecord:
:
getAlarmDate
,
dto
.
getStartTime
(),
dto
.
getEndTime
())
.
in
(
PlatAlarmRecord:
:
getOrgId
,
dto
.
getOrgIds
())
.
isNotNull
(
PlatAlarmRecord:
:
getElderIds
)
.
orderByDesc
(
PlatAlarmRecord:
:
getAlarmDate
));
List
<
PlatAlarmRecord
>
alarmRecords
=
pages
.
getRecords
();
List
<
PlatElder
>
platElders
=
platElderService
.
list
(
new
QueryWrapper
<
PlatElder
>().
lambda
()
.
in
(
PlatElder:
:
getOrgId
,
dto
.
getOrgIds
()));
Map
<
String
,
String
>
elderNameMap
=
platElders
.
stream
().
collect
(
Collectors
.
toMap
(
PlatElder:
:
getId
,
PlatElder:
:
getName
));
Map
<
String
,
PlatElderListVO
>
elderBedPathMap
=
mapElderBedPath
(
platElders
);
List
<
PlatAlarmStatisticsListVo
>
list
=
new
ArrayList
<>();
DateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
DateFormat
dft
=
new
SimpleDateFormat
(
"HH:mm:ss"
);
for
(
PlatAlarmRecord
record
:
alarmRecords
){
List
<
String
>
elderIds
=
Arrays
.
asList
(
record
.
getElderIds
().
split
(
","
));
PlatAlarmStatisticsListVo
listVo
=
new
PlatAlarmStatisticsListVo
();
String
elderName
=
""
;
String
pathName
=
""
;
for
(
String
elderId
:
elderIds
){
if
(
elderNameMap
.
get
(
elderId
)!=
null
){
elderName
=
""
.
equals
(
elderName
)
?
elderNameMap
.
get
(
elderId
)
:
elderName
+
","
+
elderNameMap
.
get
(
elderId
);
}
if
(
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
HEART
.
getValue
().
equals
(
record
.
getAlarmType
())
||
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BREATHE
.
getValue
().
equals
(
record
.
getAlarmType
())
){
if
(
elderBedPathMap
.
get
(
elderId
)!=
null
){
pathName
=
elderBedPathMap
.
get
(
elderId
).
getSpacePathName
();
}
}
else
{
if
(
elderBedPathMap
.
get
(
elderId
)!=
null
){
pathName
=
""
.
equals
(
pathName
)
?
elderBedPathMap
.
get
(
elderId
).
getSpacePathName
()
:
pathName
+
","
+
elderBedPathMap
.
get
(
elderId
).
getRoomName
();
}
}
}
if
(
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
HEART
.
getValue
().
equals
(
record
.
getAlarmType
())
||
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BREATHE
.
getValue
().
equals
(
record
.
getAlarmType
())
){
listVo
.
setStatus
(
record
.
getRemark
());
}
listVo
.
setPath
(
pathName
);
listVo
.
setElderName
(
elderName
);
listVo
.
setType
(
record
.
getAlarmType
());
listVo
.
setAlarmDate
(
df
.
format
(
record
.
getAlarmDate
()));
listVo
.
setAlarmTime
(
dft
.
format
(
record
.
getAlarmDate
()));
list
.
add
(
listVo
);
}
return
PageUtil
.
toPageVO
(
list
,
pages
);
}
private
List
<
PlatOrg
>
getAncestorsOrgList
(
List
<
PlatOrg
>
orgs
,
Set
<
String
>
parentOrgIds
)
{
orgs
=
orgs
.
stream
().
filter
(
t
->
parentOrgIds
.
contains
(
t
.
getId
())).
collect
(
Collectors
.
toList
());
Set
<
String
>
ancestorsOrgIdList
=
new
HashSet
<>();
...
...
server-service/src/main/java/com/makeit/vo/platform/dataScreen/PlatAlarmStatisticsVO.java
View file @
9068f922
...
...
@@ -23,6 +23,6 @@ public class PlatAlarmStatisticsVO {
@ApiModelProperty
(
value
=
"待处理数"
)
private
Long
unhandledNumber
;
private
List
<
PlatAlarmStatisticsListVo
>
list
;
//
private List<PlatAlarmStatisticsListVo> list;
}
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