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
c07c639d
authored
Dec 08, 2023
by
huangjy
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix: 三个设备都无人判断成外出
parent
93487cd6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
12 deletions
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderRealTimeServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderRealTimeServiceImpl.java
View file @
c07c639d
...
...
@@ -180,6 +180,8 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
if
(
platDevice
==
null
)
{
return
platElderRealTimeNowVO
;
}
boolean
brNoPersonFlag
=
false
;
String
brResult
=
redisTemplate
.
opsForValue
().
get
(
DEVICE_BR_DATA
+
platDevice
.
getOriDeviceId
());
if
(
brResult
!=
null
)
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
brResult
);
...
...
@@ -216,14 +218,19 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
platElderRealTimeNowVO
.
setStatus
(
PlatElderRealtimeReportEnum
.
NowStatus
.
BED
.
getValue
());
return
platElderRealTimeNowVO
;
}
}
else
{
brNoPersonFlag
=
true
;
}
}
else
{
log
.
info
(
"当前呼吸设备没有上报数据直接返回:"
+
platElderIdDTO
.
getElderId
());
brNoPersonFlag
=
true
;
return
platElderRealTimeNowVO
;
}
List
<
PlatDevice
>
spaceDeviceList
=
getSpaceDevice
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
());
List
<
PlatDevice
>
fallDeviceList
=
getFallDevice
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
());
boolean
sportFlag
=
true
;
boolean
spaceNoPersonFlag
=
false
;
for
(
PlatDevice
device
:
spaceDeviceList
)
{
// 无人
Map
<
Object
,
Object
>
entries
=
redisTemplate
.
opsForHash
().
entries
(
DEVICE_SPACE_TEMP_DATA
+
device
.
getOriDeviceId
());
...
...
@@ -250,12 +257,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return
vo
;
}).
collect
(
Collectors
.
toList
());
boolean
noPersonFlag
=
voList
.
stream
().
allMatch
(
e
->
e
.
getPersonState
()
==
0
);
if
(
noPersonFlag
)
{
log
.
info
(
"当前属于外出:"
+
platElderIdDTO
.
getElderId
());
platElderRealTimeNowVO
.
setStatus
(
PlatElderRealtimeReportEnum
.
NowStatus
.
OUT
.
getValue
());
return
platElderRealTimeNowVO
;
}
spaceNoPersonFlag
=
voList
.
stream
().
allMatch
(
e
->
e
.
getPersonState
()
==
0
);
Double
[]
doubleArrX
=
voList
.
stream
().
map
(
PlatElderCoordinateVO:
:
getX
).
toArray
(
Double
[]::
new
);
double
x
=
StandardDeviationUtil
.
variance
(
doubleArrX
);
...
...
@@ -275,6 +277,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
sportFlag
=
false
;
}
}
boolean
fallNoPersonFlag
=
false
;
for
(
PlatDevice
device
:
fallDeviceList
)
{
// 无人
Map
<
Object
,
Object
>
entries
=
redisTemplate
.
opsForHash
().
entries
(
DEVICE_FALL_TEMP_DATA
+
device
.
getOriDeviceId
());
...
...
@@ -302,12 +305,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return
vo
;
}).
collect
(
Collectors
.
toList
());
boolean
noPersonFlag
=
voList
.
stream
().
allMatch
(
e
->
e
.
getPerson
()
==
0
);
if
(
noPersonFlag
)
{
log
.
info
(
"当前属于跌倒设备外出:"
+
platElderIdDTO
.
getElderId
());
platElderRealTimeNowVO
.
setStatus
(
PlatElderRealtimeReportEnum
.
NowStatus
.
OUT
.
getValue
());
return
platElderRealTimeNowVO
;
}
fallNoPersonFlag
=
voList
.
stream
().
allMatch
(
e
->
e
.
getPersonState
()
==
0
);
Double
[]
doubleArrX
=
voList
.
stream
().
map
(
PlatElderCoordinateVO:
:
getX
).
filter
(
Objects:
:
nonNull
).
toArray
(
Double
[]::
new
);
double
x
=
StandardDeviationUtil
.
variance
(
doubleArrX
);
boolean
xFlag
=
new
BigDecimal
(
x
+
""
).
compareTo
(
new
BigDecimal
(
2
))
>
0
;
...
...
@@ -332,6 +330,12 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
platElderRealTimeNowVO
.
setStatus
(
PlatElderRealtimeReportEnum
.
NowStatus
.
REST
.
getValue
());
return
platElderRealTimeNowVO
;
}
if
(
brNoPersonFlag
&&
spaceNoPersonFlag
&&
fallNoPersonFlag
)
{
log
.
info
(
"所有设备都无人,判断为外出:"
+
platElderIdDTO
.
getElderId
());
platElderRealTimeNowVO
.
setStatus
(
PlatElderRealtimeReportEnum
.
NowStatus
.
OUT
.
getValue
());
return
platElderRealTimeNowVO
;
}
log
.
info
(
"当前设备无状态匹配直接返回:"
+
platElderIdDTO
.
getElderId
());
return
platElderRealTimeNowVO
;
}
...
...
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