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
03ca3555
authored
Sep 12, 2023
by
朱淼
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
数据大屏
parent
93e09be4
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
206 additions
and
7 deletions
server-module/src/main/java/com/makeit/module/controller/dataScreen/DataScreenController.java
server-service/src/main/java/com/makeit/enums/platform/alarm/PlatAlarmRecordEnum.java
server-service/src/main/java/com/makeit/service/platform/auth/PlatOrgService.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/PlatDeviceStatisticsVO.java
server-service/src/main/java/com/makeit/vo/platform/dataScreen/PlatMapStatisticsSpaceVO.java
server-service/src/main/java/com/makeit/vo/platform/dataScreen/PlatMapStatisticsVO.java
server-module/src/main/java/com/makeit/module/controller/dataScreen/DataScreenController.java
View file @
03ca3555
...
@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
...
@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
/**
* Controller
* Controller
*
*
...
@@ -59,7 +61,7 @@ public class DataScreenController {
...
@@ -59,7 +61,7 @@ public class DataScreenController {
@ApiOperation
(
"地图统计"
)
@ApiOperation
(
"地图统计"
)
@PostMapping
(
"mapStatistics"
)
@PostMapping
(
"mapStatistics"
)
public
ApiResponseEntity
<
Plat
Alarm
StatisticsVO
>
mapStatistics
(
@RequestBody
PlatDataScreenQueryDTO
dto
)
{
public
ApiResponseEntity
<
Plat
Map
StatisticsVO
>
mapStatistics
(
@RequestBody
PlatDataScreenQueryDTO
dto
)
{
return
ApiResponseUtils
.
success
(
dataScreenService
.
alarm
Statistics
(
dto
));
return
ApiResponseUtils
.
success
(
dataScreenService
.
map
Statistics
(
dto
));
}
}
}
}
server-service/src/main/java/com/makeit/enums/platform/alarm/PlatAlarmRecordEnum.java
0 → 100644
View file @
03ca3555
package
com
.
makeit
.
enums
.
platform
.
alarm
;
import
com.makeit.enums.BaseEnum
;
import
com.makeit.utils.sys.SysDictUtil
;
public
class
PlatAlarmRecordEnum
{
public
enum
AlarmRecordStatusEnum
implements
BaseEnum
{
HANDLED
(
"alarm.alarmRecordStatus.handled"
),
UNHANDLED
(
"alarm.alarmRecordStatus.unhandled"
);
private
String
code
;
AlarmRecordStatusEnum
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getValue
()
{
return
SysDictUtil
.
getValue
(
code
);
}
}
}
server-service/src/main/java/com/makeit/service/platform/auth/PlatOrgService.java
View file @
03ca3555
...
@@ -94,4 +94,6 @@ public interface PlatOrgService extends IService<PlatOrg> {
...
@@ -94,4 +94,6 @@ public interface PlatOrgService extends IService<PlatOrg> {
* @param platOrg
* @param platOrg
*/
*/
void
saveOrg
(
PlatOrg
platOrg
);
void
saveOrg
(
PlatOrg
platOrg
);
List
<
PlatOrg
>
createOrgTree
(
List
<
PlatOrg
>
orgList
);
}
}
server-service/src/main/java/com/makeit/service/platform/dataScreen/DataScreenService.java
View file @
03ca3555
...
@@ -3,6 +3,8 @@ package com.makeit.service.platform.dataScreen;
...
@@ -3,6 +3,8 @@ package com.makeit.service.platform.dataScreen;
import
com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO
;
import
com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO
;
import
com.makeit.vo.platform.dataScreen.*
;
import
com.makeit.vo.platform.dataScreen.*
;
import
java.util.List
;
/**
/**
* Controller
* Controller
*
*
...
@@ -19,4 +21,6 @@ public interface DataScreenService {
...
@@ -19,4 +21,6 @@ public interface DataScreenService {
PlatAlarmStatisticsVO
alarmStatistics
(
PlatDataScreenQueryDTO
dto
);
PlatAlarmStatisticsVO
alarmStatistics
(
PlatDataScreenQueryDTO
dto
);
PlatBaseInfoStatisticsVO
baseInfoStatistics
(
PlatDataScreenQueryDTO
dto
);
PlatBaseInfoStatisticsVO
baseInfoStatistics
(
PlatDataScreenQueryDTO
dto
);
PlatMapStatisticsVO
mapStatistics
(
PlatDataScreenQueryDTO
dto
);
}
}
server-service/src/main/java/com/makeit/service/platform/dataScreen/impl/DataScreenServiceImpl.java
View file @
03ca3555
...
@@ -2,24 +2,41 @@ package com.makeit.service.platform.dataScreen.impl;
...
@@ -2,24 +2,41 @@ package com.makeit.service.platform.dataScreen.impl;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO
;
import
com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO
;
import
com.makeit.entity.platform.alarm.PlatAlarmConfig
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
com.makeit.entity.platform.auth.PlatUser
;
import
com.makeit.entity.platform.auth.PlatUser
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.space.PlatSpace
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmRecordEnum
;
import
com.makeit.enums.platform.device.PlatDeviceEnum
;
import
com.makeit.enums.platform.device.PlatDeviceEnum
;
import
com.makeit.enums.platform.elder.PlatElderEnum
;
import
com.makeit.enums.platform.elder.PlatElderEnum
;
import
com.makeit.module.iot.enums.DeviceState
;
import
com.makeit.module.system.entity.ChinaArea
;
import
com.makeit.module.system.service.ChinaAreaService
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.auth.PlatOrgService
;
import
com.makeit.service.platform.auth.PlatUserService
;
import
com.makeit.service.platform.auth.PlatUserService
;
import
com.makeit.service.platform.dataScreen.DataScreenService
;
import
com.makeit.service.platform.dataScreen.DataScreenService
;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.elder.PlatElderService
;
import
com.makeit.service.platform.elder.PlatElderService
;
import
com.makeit.service.platform.space.PlatBedService
;
import
com.makeit.service.platform.space.PlatBedService
;
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.sql.CustomQueryWrapper
;
import
com.makeit.vo.platform.dataScreen.*
;
import
com.makeit.vo.platform.dataScreen.*
;
import
jodd.util.StringUtil
;
import
jodd.util.StringUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
/**
* Controller
* Controller
...
@@ -37,6 +54,12 @@ public class DataScreenServiceImpl implements DataScreenService {
...
@@ -37,6 +54,12 @@ public class DataScreenServiceImpl implements DataScreenService {
private
PlatBedService
platBedService
;
private
PlatBedService
platBedService
;
@Autowired
@Autowired
private
PlatUserService
platUserService
;
private
PlatUserService
platUserService
;
@Autowired
private
PlatAlarmRecordService
platAlarmRecordService
;
@Autowired
private
PlatSpaceService
platSpaceService
;
@Autowired
private
PlatOrgService
platOrgService
;
@Override
@Override
public
PlatAgeStatisticsVO
ageStatistics
(
PlatDataScreenQueryDTO
dto
)
{
public
PlatAgeStatisticsVO
ageStatistics
(
PlatDataScreenQueryDTO
dto
)
{
...
@@ -81,14 +104,63 @@ public class DataScreenServiceImpl implements DataScreenService {
...
@@ -81,14 +104,63 @@ public class DataScreenServiceImpl implements DataScreenService {
List
<
PlatDevice
>
devices
=
platDeviceService
.
list
(
new
QueryWrapper
<
PlatDevice
>().
lambda
()
List
<
PlatDevice
>
devices
=
platDeviceService
.
list
(
new
QueryWrapper
<
PlatDevice
>().
lambda
()
.
in
(
PlatDevice:
:
getOrgId
,
dto
.
getOrgIds
()));
.
in
(
PlatDevice:
:
getOrgId
,
dto
.
getOrgIds
()));
long
total
=
devices
.
size
();
long
total
=
devices
.
size
();
long
onlineNumber
=
devices
.
stream
().
filter
(
t
->
DeviceState
.
online
.
getValue
().
equals
(
t
.
getStatus
())).
count
();
return
null
;
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
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
();
PlatDeviceStatisticsVO
vo
=
new
PlatDeviceStatisticsVO
();
vo
.
setTotla
(
total
);
vo
.
setOnlineNumber
(
onlineNumber
);
vo
.
setOfflineNumber
(
offlineNumber
);
vo
.
setDisableNumber
(
disableNumber
);
vo
.
setHeartNumber
(
heartNumber
);
vo
.
setFallNumber
(
fallNumber
);
vo
.
setSpaceNumber
(
spaceNumber
);
return
vo
;
}
}
@Override
@Override
public
PlatAlarmStatisticsVO
alarmStatistics
(
PlatDataScreenQueryDTO
dto
)
{
public
PlatAlarmStatisticsVO
alarmStatistics
(
PlatDataScreenQueryDTO
dto
)
{
List
<
PlatAlarmRecord
>
alarmRecords
=
platAlarmRecordService
.
list
(
new
QueryWrapper
<
PlatAlarmRecord
>().
lambda
()
.
between
(
PlatAlarmRecord:
:
getAlarmDate
,
dto
.
getStartTime
(),
dto
.
getEndTime
())
.
in
(
PlatAlarmRecord:
:
getOrgId
,
dto
.
getOrgIds
()));
List
<
PlatElder
>
platElders
=
platElderService
.
list
();
Map
<
String
,
String
>
elderNameMap
=
platElders
.
stream
().
collect
(
Collectors
.
toMap
(
PlatElder:
:
getId
,
PlatElder:
:
getName
));
List
<
PlatAlarmStatisticsListVo
>
list
=
new
ArrayList
<>();
long
totla
=
0
;
long
handledNumber
=
0
;
long
unhandledNumber
=
0
;
for
(
PlatAlarmRecord
record
:
alarmRecords
){
if
(
StringUtil
.
isNotEmpty
(
record
.
getElderIds
())){
List
<
String
>
elderIds
=
Arrays
.
asList
(
record
.
getElderIds
().
split
(
","
));
PlatAlarmStatisticsListVo
listVo
=
new
PlatAlarmStatisticsListVo
();
for
(
String
elderId
:
elderIds
){
if
(
elderNameMap
.
get
(
elderId
)!=
null
){
listVo
.
setElderName
(
elderNameMap
.
get
(
elderId
));
}
listVo
.
setType
(
record
.
getAlarmType
());
if
(
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
HEART
.
getValue
().
equals
(
record
.
getAlarmType
())
||
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BREATHE
.
getValue
().
equals
(
record
.
getAlarmType
())
){
}
totla
++;
if
(
PlatAlarmRecordEnum
.
AlarmRecordStatusEnum
.
HANDLED
.
getValue
().
equals
(
record
.
getStatus
())){
handledNumber
++;
}
else
{
unhandledNumber
++;
}
list
.
add
(
listVo
);
}
return
null
;
}
}
PlatAlarmStatisticsVO
vo
=
new
PlatAlarmStatisticsVO
();
vo
.
setTotla
(
totla
);
vo
.
setHandledNumber
(
handledNumber
);
vo
.
setUnhandledNumber
(
unhandledNumber
);
vo
.
setList
(
list
);
return
vo
;
}
}
@Override
@Override
...
@@ -110,5 +182,38 @@ public class DataScreenServiceImpl implements DataScreenService {
...
@@ -110,5 +182,38 @@ public class DataScreenServiceImpl implements DataScreenService {
return
vo
;
return
vo
;
}
}
@Override
public
PlatMapStatisticsVO
mapStatistics
(
PlatDataScreenQueryDTO
dto
)
{
PlatMapStatisticsVO
vo
=
new
PlatMapStatisticsVO
();
List
<
PlatOrg
>
orgs
=
platOrgService
.
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
.
in
(
PlatOrg:
:
getId
,
dto
.
getOrgIds
()));
//取范围最大的管辖区域
List
<
PlatOrg
>
tree
=
platOrgService
.
createOrgTree
(
orgs
);
List
<
String
>
region
=
tree
.
stream
().
filter
(
t
->
StringUtil
.
isNotEmpty
(
t
.
getRegion
())).
map
(
PlatOrg:
:
getRegion
).
collect
(
Collectors
.
toList
());
List
<
ChinaAreaVO
>
areas
=
AreaUtil
.
getByCodeList
(
region
);
List
<
PlatSpace
>
spaces
=
platSpaceService
.
list
(
new
QueryWrapper
<
PlatSpace
>().
lambda
()
.
isNull
(
PlatSpace:
:
getParentId
)
.
in
(
PlatSpace:
:
getOrgId
,
dto
.
getOrgIds
()));
List
<
PlatElder
>
elders
=
platElderService
.
list
(
new
QueryWrapper
<
PlatElder
>().
lambda
()
.
isNotNull
(
PlatElder:
:
getBedId
)
.
in
(
PlatElder:
:
getOrgId
,
dto
.
getOrgIds
()));
Map
<
String
,
List
<
PlatElder
>>
elderMap
=
elders
.
stream
().
collect
(
Collectors
.
groupingBy
(
PlatElder:
:
getSpaceId
));
List
<
PlatMapStatisticsSpaceVO
>
list
=
new
ArrayList
<>();
for
(
PlatSpace
space
:
spaces
){
PlatMapStatisticsSpaceVO
spaceVo
=
new
PlatMapStatisticsSpaceVO
();
spaceVo
.
setSpaceId
(
space
.
getId
());
spaceVo
.
setSpaceName
(
space
.
getName
());
spaceVo
.
setLatitude
(
space
.
getLatitude
());
spaceVo
.
setLongitude
(
space
.
getLongitude
());
if
(
elderMap
.
get
(
space
.
getId
())!=
null
){
spaceVo
.
setElderNumber
(
Long
.
valueOf
(
elderMap
.
get
(
space
.
getId
()).
size
()));
}
}
vo
.
setAreas
(
areas
);
return
vo
;
}
}
}
server-service/src/main/java/com/makeit/vo/platform/dataScreen/PlatDeviceStatisticsVO.java
View file @
03ca3555
...
@@ -27,7 +27,13 @@ public class PlatDeviceStatisticsVO {
...
@@ -27,7 +27,13 @@ public class PlatDeviceStatisticsVO {
@ApiModelProperty
(
value
=
"禁用数"
)
@ApiModelProperty
(
value
=
"禁用数"
)
private
Long
disableNumber
;
private
Long
disableNumber
;
@ApiModelProperty
(
value
=
"
禁用
数"
)
@ApiModelProperty
(
value
=
"
呼吸心率雷达
数"
)
private
Long
heartNumber
;
private
Long
heartNumber
;
@ApiModelProperty
(
value
=
"跌倒检测雷达数"
)
private
Long
fallNumber
;
@ApiModelProperty
(
value
=
"空间人体雷达数"
)
private
Long
spaceNumber
;
}
}
server-service/src/main/java/com/makeit/vo/platform/dataScreen/PlatMapStatisticsSpaceVO.java
0 → 100644
View file @
03ca3555
package
com
.
makeit
.
vo
.
platform
.
dataScreen
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel
(
"PlatMapStatisticsSpaceVO对象"
)
public
class
PlatMapStatisticsSpaceVO
{
@ApiModelProperty
(
value
=
"空间id"
)
private
String
spaceId
;
@ApiModelProperty
(
value
=
"空间名称"
)
private
String
spaceName
;
@ApiModelProperty
(
value
=
"空间地址"
)
private
String
address
;
@ApiModelProperty
(
value
=
"经度"
)
private
String
longitude
;
@ApiModelProperty
(
value
=
"纬度"
)
private
String
latitude
;
@ApiModelProperty
(
value
=
"长者数量"
)
private
Long
elderNumber
;
@ApiModelProperty
(
value
=
"今日告警数"
)
private
Long
alarmNumber
;
@ApiModelProperty
(
value
=
"待处理告警"
)
private
Long
unHandledNumber
;
}
server-service/src/main/java/com/makeit/vo/platform/dataScreen/PlatMapStatisticsVO.java
0 → 100644
View file @
03ca3555
package
com
.
makeit
.
vo
.
platform
.
dataScreen
;
import
com.makeit.utils.area.ChinaAreaVO
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
import
java.util.List
;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel
(
"PlatMapStatisticsVO对象"
)
public
class
PlatMapStatisticsVO
{
private
List
<
ChinaAreaVO
>
areas
;
private
List
<
PlatMapStatisticsSpaceVO
>
spaceList
;
}
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