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
3eb46154
authored
Feb 02, 2024
by
汪志阳
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge branch 'fix_sleep' into dev
parents
184b84d0
669ccb57
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
349 additions
and
64 deletions
db/上线后sql/insert.sql
server-common/src/main/java/com/makeit/module/iot/vo/analysis/AnalysisVO.java
server-common/src/main/java/com/makeit/module/iot/vo/analysis/SleepCountDTO.java
server-common/src/main/java/com/makeit/module/iot/vo/analysis/SleepTimeAnalysisVO.java
server-common/src/main/java/com/makeit/utils/user/wechat/WechatUserInfo.java
server-module/src/main/java/com/makeit/module/controller/elder/PlatElderSleepController.java
server-service/src/main/java/com/makeit/dto/SaveLogDTO.java
server-service/src/main/java/com/makeit/mapper/platform/auth/PlatOrgMapper.java
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/DeviceLogService.java
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderSleepService.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/DeviceLogServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportDayServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportWeekServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
server-service/src/main/java/com/makeit/vo/platform/elder/report/day/PlatSleepRangeVO.java
server-service/src/main/resources/mappers/PlatOrgMapper.xml
server-web/src/main/resources/application-dev.yml
db/上线后sql/insert.sql
View file @
3eb46154
INSERT
INTO
dev_iot_yanglao_platform
.
sys_dictionary
(
id
,
code
,
name
,
value
,
sort
,
description
,
category_id
,
create_date
,
INSERT
INTO
sys_dictionary
(
id
,
code
,
name
,
value
,
sort
,
description
,
category_id
,
create_date
,
INSERT
INTO
dev_iot_yanglao_platform
.
sys_dictionary
(
id
,
code
,
name
,
value
,
sort
,
description
,
category_id
,
create_date
,
INSERT
INTO
sys_dictionary
(
id
,
code
,
name
,
value
,
sort
,
description
,
category_id
,
create_date
,
update_date
,
del_flag
,
create_by
,
update_by
,
eng_name
)
update_date
,
del_flag
,
create_by
,
update_by
,
eng_name
)
VALUES
(
'213'
,
'alarm.sendType.childWechat'
,
'子女端小程序'
,
'6'
,
4
,
''
,
'201'
,
'2022-05-16 17:13:23'
,
VALUES
(
'213'
,
'alarm.sendType.childWechat'
,
'子女端小程序'
,
'6'
,
4
,
''
,
'201'
,
'2022-05-16 17:13:23'
,
'2022-05-16 17:13:27'
,
'0'
,
null
,
null
,
null
);
'2022-05-16 17:13:27'
,
'0'
,
null
,
null
,
null
);
\ No newline at end of file
server-common/src/main/java/com/makeit/module/iot/vo/analysis/AnalysisVO.java
View file @
3eb46154
...
@@ -20,7 +20,10 @@ public class AnalysisVO {
...
@@ -20,7 +20,10 @@ public class AnalysisVO {
private
Boolean
isAction
;
// 每分钟是否动过
private
Boolean
isAction
;
// 每分钟是否动过
private
Boolean
isMoveBed
;
// 是否离开床
/**
* 是否离开床或无人
*/
private
Boolean
isMoveBed
;
private
Boolean
isMinuteActionFlag
;
// 每分钟体动值是否大于阈值
private
Boolean
isMinuteActionFlag
;
// 每分钟体动值是否大于阈值
...
@@ -49,6 +52,10 @@ public class AnalysisVO {
...
@@ -49,6 +52,10 @@ public class AnalysisVO {
private
int
hrSlow
;
// 当前心率
private
int
hrSlow
;
// 当前心率
private
String
hrSlowTime
;
// 发生时间
private
String
hrSlowTime
;
// 发生时间
private
String
createdTime
;
private
String
deviceId
;
// private Integer sleepDeepMinuteCount; // 深睡每分钟体动和翻身次数
// private Integer sleepDeepMinuteCount; // 深睡每分钟体动和翻身次数
...
...
server-common/src/main/java/com/makeit/module/iot/vo/analysis/SleepCountDTO.java
View file @
3eb46154
...
@@ -20,4 +20,6 @@ public class SleepCountDTO {
...
@@ -20,4 +20,6 @@ public class SleepCountDTO {
private
TreeMap
<
String
,
TreeMap
<
String
,
AnalysisVO
>>
restSleepMap
;
private
TreeMap
<
String
,
TreeMap
<
String
,
AnalysisVO
>>
restSleepMap
;
private
TreeMap
<
String
,
TreeMap
<
String
,
AnalysisVO
>>
allSleepMap
;
}
}
server-common/src/main/java/com/makeit/module/iot/vo/analysis/SleepTimeAnalysisVO.java
View file @
3eb46154
...
@@ -17,10 +17,9 @@ public class SleepTimeAnalysisVO {
...
@@ -17,10 +17,9 @@ public class SleepTimeAnalysisVO {
*/
*/
private
String
endTime
;
private
String
endTime
;
/**
private
String
getUpTime
;
* 起床时间
*/
private
String
remark
;
private
String
newEndTime
;
/**
/**
* 间隔时间(分钟)
* 间隔时间(分钟)
...
@@ -32,6 +31,20 @@ public class SleepTimeAnalysisVO {
...
@@ -32,6 +31,20 @@ public class SleepTimeAnalysisVO {
*/
*/
private
String
type
;
private
String
type
;
/**
* 体动次数
*/
private
Integer
actionCount
;
/**
* 翻身次数
*/
private
Integer
turnedCount
;
/**
* 所属睡眠区间开始时间
*/
private
String
belongToSleepTime
;
private
List
<
SleepTimeAnalysisVO
>
deepList
;
private
List
<
SleepTimeAnalysisVO
>
deepList
;
private
List
<
SleepTimeAnalysisVO
>
midList
;
private
List
<
SleepTimeAnalysisVO
>
midList
;
/**
/**
...
...
server-common/src/main/java/com/makeit/utils/user/wechat/WechatUserInfo.java
View file @
3eb46154
...
@@ -56,5 +56,7 @@ public class WechatUserInfo implements Serializable {
...
@@ -56,5 +56,7 @@ public class WechatUserInfo implements Serializable {
private
String
isTenant
;
private
String
isTenant
;
private
String
weChatOpenid
;
}
}
server-module/src/main/java/com/makeit/module/controller/elder/PlatElderSleepController.java
View file @
3eb46154
...
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.dto.wechat.device.PlatDeviceAttrWechatDTO
;
import
com.makeit.dto.wechat.device.PlatDeviceAttrWechatDTO
;
import
com.makeit.entity.platform.elder.ElderSleepAnalysisVO
;
import
com.makeit.entity.platform.elder.PlatElderBreatheAnalysis
;
import
com.makeit.entity.platform.elder.PlatElderBreatheAnalysis
;
import
com.makeit.entity.platform.elder.PlatElderSleepAnalysis
;
import
com.makeit.entity.platform.elder.PlatElderSleepAnalysis
;
import
com.makeit.external.huineng.HuiNengService
;
import
com.makeit.external.huineng.HuiNengService
;
...
@@ -73,7 +74,7 @@ public class PlatElderSleepController {
...
@@ -73,7 +74,7 @@ public class PlatElderSleepController {
@GetMapping
(
"test4"
)
@GetMapping
(
"test4"
)
@AuthIgnore
@AuthIgnore
@TenantIdIgnore
@TenantIdIgnore
public
ApiResponseEntity
<
List
<
PlatElderSleepAnalysis
>>
elderSleepSleepAnalysisTask
(
@RequestParam
Integer
month
,
public
ApiResponseEntity
<
List
<
ElderSleepAnalysisVO
>>
elderSleepSleepAnalysisTask
(
@RequestParam
Integer
month
,
@RequestParam
Integer
day
)
{
@RequestParam
Integer
day
)
{
return
ApiResponseUtils
.
success
(
platElderSleepService
.
elderSleepSleepAnalysisTask
(
month
,
day
));
return
ApiResponseUtils
.
success
(
platElderSleepService
.
elderSleepSleepAnalysisTask
(
month
,
day
));
}
}
...
...
server-service/src/main/java/com/makeit/dto/SaveLogDTO.java
0 → 100644
View file @
3eb46154
package
com
.
makeit
.
dto
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
/**
* @author wangzy
* @description
* @createDate 2024-01-24-16:42
*/
@Data
public
class
SaveLogDTO
{
@JsonProperty
(
"messageType"
)
private
String
messageType
;
@JsonProperty
(
"deviceId"
)
private
String
deviceId
;
@JsonProperty
(
"reportTime"
)
private
LocalDateTime
reportTime
;
@JsonProperty
(
"createdTime"
)
private
LocalDateTime
createdTime
;
@JsonProperty
(
"br"
)
private
Integer
br
;
@JsonProperty
(
"bodyMove"
)
private
Integer
bodyMove
;
@JsonProperty
(
"personState"
)
private
Integer
personState
;
@JsonProperty
(
"person"
)
private
Integer
person
;
@JsonProperty
(
"hr"
)
private
Integer
hr
;
}
server-service/src/main/java/com/makeit/mapper/platform/auth/PlatOrgMapper.java
View file @
3eb46154
...
@@ -2,7 +2,10 @@ package com.makeit.mapper.platform.auth;
...
@@ -2,7 +2,10 @@ package com.makeit.mapper.platform.auth;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.makeit.dto.SaveLogDTO
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
com.makeit.module.iot.vo.analysis.AnalysisVO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.List
;
...
@@ -15,4 +18,10 @@ import java.util.List;
...
@@ -15,4 +18,10 @@ import java.util.List;
public
interface
PlatOrgMapper
extends
BaseMapper
<
PlatOrg
>
{
public
interface
PlatOrgMapper
extends
BaseMapper
<
PlatOrg
>
{
List
<
PlatOrg
>
getSelfAndParents
(
String
id
);
List
<
PlatOrg
>
getSelfAndParents
(
String
id
);
void
insertBatch
(
@Param
(
"list"
)
List
<
SaveLogDTO
>
saveList
);
void
saveBatch
(
@Param
(
"list"
)
List
<
AnalysisVO
>
list
);
List
<
AnalysisVO
>
getData
();
}
}
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
View file @
3eb46154
package
com
.
makeit
.
service
.
platform
.
alarm
.
alarmStrategy
;
package
com
.
makeit
.
service
.
platform
.
alarm
.
alarmStrategy
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.makeit.dto.platform.alarm.PlatAlarmCheckDTO
;
import
com.makeit.dto.platform.alarm.PlatAlarmCheckDTO
;
import
com.makeit.dto.platform.alarm.PlatAlarmConfigOffBedDTOVO
;
import
com.makeit.dto.platform.alarm.PlatAlarmConfigOffBedDTOVO
;
...
@@ -27,6 +28,7 @@ import java.time.*;
...
@@ -27,6 +28,7 @@ import java.time.*;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Component
@Component
@Slf4j
@Slf4j
...
@@ -315,6 +317,9 @@ public class OffBedAlarm implements IAlarm {
...
@@ -315,6 +317,9 @@ public class OffBedAlarm implements IAlarm {
return
;
return
;
}
}
// PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
// PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
log
.
info
(
"离床告警配置,发出告警,设备id:{},长者名称:{},config_id:{},configL{}"
,
platDevice
.
getId
(),
JSONUtil
.
toJsonStr
(
platElderList
),
config
.
getId
(),
config
.
getRuleConfig
());
platElderList
=
platElderList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
for
(
PlatElder
platElder
:
platElderList
)
{
for
(
PlatElder
platElder
:
platElderList
)
{
List
<
String
>
param
=
new
ArrayList
<>();
List
<
String
>
param
=
new
ArrayList
<>();
// param.add(platRoom.getName());
// param.add(platRoom.getName());
...
...
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
View file @
3eb46154
...
@@ -329,8 +329,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -329,8 +329,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
}
}
allChildInfoList
.
addAll
(
childrenInfoList
);
allChildInfoList
.
addAll
(
childrenInfoList
);
Set
<
String
>
phoneSet
=
childrenInfoList
.
stream
().
map
(
PlatElderChildrenInfo:
:
getPhone
).
collect
(
Collectors
.
toSet
());
Set
<
String
>
phoneSet
=
childrenInfoList
.
stream
().
map
(
PlatElderChildrenInfo:
:
getPhone
).
collect
(
Collectors
.
toSet
());
//告警配置和租户告警 字典一致
//告警配置和租户告警 字典一致
todo SendTypeEnum.CHILD_WECHAT 公众号模板未好
List
<
SendTypeEnum
>
notifyChannelList
=
Arrays
.
asList
(
SendTypeEnum
.
SMS
,
SendTypeEnum
.
VOICE_SMS
,
SendTypeEnum
.
CHILD_WECHAT
);
List
<
SendTypeEnum
>
notifyChannelList
=
Arrays
.
asList
(
SendTypeEnum
.
SMS
,
SendTypeEnum
.
VOICE_SMS
);
List
<
MsgSendDTO
.
ReceiverInfo
>
receiverInfos
=
buildReceiverInfo
(
allChildInfoList
,
alarmRecord
);
List
<
MsgSendDTO
.
ReceiverInfo
>
receiverInfos
=
buildReceiverInfo
(
allChildInfoList
,
alarmRecord
);
//发送消息
//发送消息
noticeByChannel
(
alarmConfig
,
alarmRecord
,
phoneSet
,
null
,
notifyChannelList
,
receiverInfos
);
noticeByChannel
(
alarmConfig
,
alarmRecord
,
phoneSet
,
null
,
notifyChannelList
,
receiverInfos
);
...
@@ -422,7 +422,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -422,7 +422,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
*/
*/
private
void
noticeByChannel
(
PlatAlarmConfig
alarmConfig
,
PlatAlarmRecord
alarmRecord
,
Set
<
String
>
phoneSet
,
Set
<
String
>
emailSet
,
private
void
noticeByChannel
(
PlatAlarmConfig
alarmConfig
,
PlatAlarmRecord
alarmRecord
,
Set
<
String
>
phoneSet
,
Set
<
String
>
emailSet
,
List
<
SendTypeEnum
>
notifyChannelList
,
List
<
MsgSendDTO
.
ReceiverInfo
>
receiverInfos
)
{
List
<
SendTypeEnum
>
notifyChannelList
,
List
<
MsgSendDTO
.
ReceiverInfo
>
receiverInfos
)
{
log
.
info
(
"开始短信通知:{}"
,
JSON
.
toJSONString
(
alarmConfig
));
String
elderName
=
alarmRecord
.
getElderName
();
log
.
info
(
"开始短信通知:{},老人:{}"
,
JSON
.
toJSONString
(
alarmConfig
),
elderName
);
if
(
StrUtil
.
isNotBlank
(
alarmRecord
.
getElderIds
())
&&
StrUtil
.
isBlank
(
elderName
))
{
List
<
PlatElder
>
platElders
=
platElderService
.
listByIds
(
Arrays
.
asList
(
alarmRecord
.
getElderIds
().
split
(
","
)));
elderName
=
platElders
.
stream
().
map
(
PlatElder:
:
getName
).
collect
(
Collectors
.
joining
(
","
));
log
.
info
(
"开始短信通知--通知老人:{}"
,
elderName
);
}
String
notifyChannel
=
alarmConfig
.
getNotifyChannel
();
String
notifyChannel
=
alarmConfig
.
getNotifyChannel
();
if
(
StringUtils
.
isEmpty
(
notifyChannel
))
{
if
(
StringUtils
.
isEmpty
(
notifyChannel
))
{
// 微信公众号
// 微信公众号
...
@@ -458,24 +464,24 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -458,24 +464,24 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
msgSendDTO
.
setEmailSet
(
emailSet
);
msgSendDTO
.
setEmailSet
(
emailSet
);
msgSendDTO
.
setOriContent
(
alarmRecord
.
getContent
());
msgSendDTO
.
setOriContent
(
alarmRecord
.
getContent
());
msgSendDTO
.
setSubject
(
alarmRecord
.
getContent
());
msgSendDTO
.
setSubject
(
alarmRecord
.
getContent
());
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
()
);
msgSendDTO
.
setParam
(
elderName
);
msgSendDTO
.
setReceiverInfos
(
receiverInfos
);
msgSendDTO
.
setReceiverInfos
(
receiverInfos
);
String
alarmType
=
alarmConfig
.
getAlarmType
();
String
alarmType
=
alarmConfig
.
getAlarmType
();
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常 5 离床异常
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常 5 离床异常
if
(
StringUtils
.
equals
(
alarmType
,
"1"
))
{
if
(
StringUtils
.
equals
(
alarmType
,
"1"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
()
,
alarmRecord
.
getRegionName
());
msgSendDTO
.
setParam
(
elderName
,
alarmRecord
.
getRegionName
());
}
}
if
(
StringUtils
.
equals
(
alarmType
,
"2"
))
{
if
(
StringUtils
.
equals
(
alarmType
,
"2"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
()
,
alarmRecord
.
getRemark
());
msgSendDTO
.
setParam
(
elderName
,
alarmRecord
.
getRemark
());
}
}
if
(
StringUtils
.
equals
(
alarmType
,
"3"
))
{
if
(
StringUtils
.
equals
(
alarmType
,
"3"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
()
,
alarmRecord
.
getRemark
());
msgSendDTO
.
setParam
(
elderName
,
alarmRecord
.
getRemark
());
}
}
if
(
StringUtils
.
equals
(
alarmType
,
"4"
))
{
if
(
StringUtils
.
equals
(
alarmType
,
"4"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
()
,
alarmRecord
.
getRegionName
());
msgSendDTO
.
setParam
(
elderName
,
alarmRecord
.
getRegionName
());
}
}
if
(
StringUtils
.
equals
(
alarmType
,
"5"
))
{
if
(
StringUtils
.
equals
(
alarmType
,
"5"
))
{
msgSendDTO
.
setParam
(
alarmRecord
.
getElderName
()
,
""
);
msgSendDTO
.
setParam
(
elderName
,
""
);
}
}
msgSendDTO
.
setAlarmType
(
alarmConfig
.
getAlarmType
());
msgSendDTO
.
setAlarmType
(
alarmConfig
.
getAlarmType
());
//todo 小程序消息
//todo 小程序消息
...
...
server-service/src/main/java/com/makeit/service/platform/elder/DeviceLogService.java
0 → 100644
View file @
3eb46154
package
com
.
makeit
.
service
.
platform
.
elder
;
import
com.makeit.module.iot.vo.DeviceOperationLogEntity
;
import
com.makeit.module.iot.vo.analysis.AnalysisVO
;
import
java.util.List
;
import
java.util.TreeMap
;
/**
* @author wangzy
* @description
* @createDate 2024-01-24-16:38
*/
public
interface
DeviceLogService
{
void
save
(
List
<
DeviceOperationLogEntity
>
list
);
void
saveEntity
(
TreeMap
<
String
,
AnalysisVO
>
statisticsMap
,
String
id
);
TreeMap
<
String
,
AnalysisVO
>
getData
();
void
fillDefaultData
(
TreeMap
<
String
,
AnalysisVO
>
statisticsMap
,
Integer
month
,
Integer
day
);
}
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderSleepService.java
View file @
3eb46154
package
com
.
makeit
.
service
.
platform
.
elder
;
package
com
.
makeit
.
service
.
platform
.
elder
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.entity.platform.elder.ElderSleepAnalysisVO
;
import
com.makeit.entity.platform.elder.PlatElderSleep
;
import
com.makeit.entity.platform.elder.PlatElderSleep
;
import
com.makeit.entity.platform.elder.PlatElderSleepAnalysis
;
import
com.makeit.entity.saas.analysis.SaasSleepEvaluateStandardReport
;
import
com.makeit.entity.saas.analysis.SaasSleepEvaluateStandardReport
;
import
java.util.List
;
import
java.util.List
;
...
@@ -17,7 +17,7 @@ import java.util.List;
...
@@ -17,7 +17,7 @@ import java.util.List;
*/
*/
public
interface
PlatElderSleepService
extends
IService
<
PlatElderSleep
>
{
public
interface
PlatElderSleepService
extends
IService
<
PlatElderSleep
>
{
List
<
PlatElderSleepAnalysis
>
elderSleepSleepAnalysisTask
(
Integer
month
,
Integer
day
);
List
<
ElderSleepAnalysisVO
>
elderSleepSleepAnalysisTask
(
Integer
month
,
Integer
day
);
String
calculateScores
(
long
daySleepTime
,
long
dayRestTime
,
long
deepTime
,
long
soberTime
,
long
lightTime
,
String
calculateScores
(
long
daySleepTime
,
long
dayRestTime
,
long
deepTime
,
long
soberTime
,
long
lightTime
,
SaasSleepEvaluateStandardReport
evaluateStandardReport
);
SaasSleepEvaluateStandardReport
evaluateStandardReport
);
...
...
server-service/src/main/java/com/makeit/service/platform/elder/impl/DeviceLogServiceImpl.java
0 → 100644
View file @
3eb46154
package
com
.
makeit
.
service
.
platform
.
elder
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
com.google.common.collect.Lists
;
import
com.makeit.dto.SaveLogDTO
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.mapper.platform.auth.PlatOrgMapper
;
import
com.makeit.module.iot.vo.DeviceOperationLogEntity
;
import
com.makeit.module.iot.vo.analysis.AnalysisVO
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.service.platform.elder.DeviceLogService
;
import
com.makeit.utils.data.convert.JsonUtil
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.ZoneOffset
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.TreeMap
;
import
java.util.stream.Collectors
;
/**
* @author wangzy
* @description
* @createDate 2024-01-24-16:38
*/
@Service
public
class
DeviceLogServiceImpl
implements
DeviceLogService
{
@Resource
private
PlatOrgMapper
platOrgMapper
;
@Override
public
void
save
(
List
<
DeviceOperationLogEntity
>
list
)
{
if
(
CollUtil
.
isEmpty
(
list
))
{
return
;
}
DateTimeFormatter
fmt
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
);
List
<
SaveLogDTO
>
saveList
=
new
ArrayList
<>();
list
.
forEach
(
l
->
{
SaveLogDTO
saveLogDTO
=
new
SaveLogDTO
();
long
timestamp
=
l
.
getTimestamp
();
String
time
=
formatLongTime
(
timestamp
);
saveLogDTO
.
setReportTime
(
LocalDateTime
.
parse
(
time
,
fmt
));
saveLogDTO
.
setCreatedTime
(
longToTime
(
timestamp
));
DeviceInfoContentBreathe
deviceInfoContentBreathe
=
JsonUtil
.
toObj
((
String
)
l
.
getContent
(),
DeviceInfoContentBreathe
.
class
);
DeviceInfoContentBreathe
.
Properties
properties
=
deviceInfoContentBreathe
.
getProperties
();
saveLogDTO
.
setBodyMove
(
properties
.
getBodymove
());
saveLogDTO
.
setBr
(
properties
.
getBr
());
saveLogDTO
.
setDeviceId
(
deviceInfoContentBreathe
.
getDeviceId
());
saveLogDTO
.
setHr
(
properties
.
getHr
());
saveLogDTO
.
setPerson
(
properties
.
getPerson
());
saveLogDTO
.
setMessageType
(
deviceInfoContentBreathe
.
getMessageType
());
saveLogDTO
.
setPersonState
(
properties
.
getPersonState
());
saveList
.
add
(
saveLogDTO
);
});
platOrgMapper
.
insertBatch
(
saveList
);
}
private
static
final
DateTimeFormatter
DEFAULT_FORMATTER
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
);
public
static
String
formatLongTime
(
long
time
)
{
return
DEFAULT_FORMATTER
.
format
(
LocalDateTime
.
ofInstant
(
Instant
.
ofEpochMilli
(
time
),
ZoneId
.
systemDefault
()));
}
private
LocalDateTime
longToTime
(
Long
longTime
)
{
return
LocalDateTime
.
ofInstant
(
Instant
.
ofEpochMilli
(
longTime
),
ZoneOffset
.
of
(
"+8"
));
}
@Override
public
void
saveEntity
(
TreeMap
<
String
,
AnalysisVO
>
statisticsMap
,
String
id
)
{
List
<
AnalysisVO
>
list
=
new
ArrayList
<>();
statisticsMap
.
forEach
((
k
,
v
)
->
{
v
.
setCreatedTime
(
k
);
v
.
setDeviceId
(
id
);
list
.
add
(
v
);
});
platOrgMapper
.
saveBatch
(
list
);
}
@Override
public
TreeMap
<
String
,
AnalysisVO
>
getData
()
{
List
<
AnalysisVO
>
data
=
platOrgMapper
.
getData
();
LinkedHashMap
<
String
,
AnalysisVO
>
collect1
=
data
.
stream
().
collect
(
Collectors
.
toMap
(
AnalysisVO:
:
getCreatedTime
,
a
->
a
,
(
u
,
v
)
->
{
throw
new
BusinessException
(
String
.
format
(
"Duplicate key %s"
,
u
));
},
LinkedHashMap:
:
new
));
TreeMap
<
String
,
AnalysisVO
>
result
=
new
TreeMap
<>();
collect1
.
forEach
(
result:
:
put
);
getDayMinute
(
1
,
10
).
forEach
(
minute
->
{
boolean
key
=
result
.
containsKey
(
minute
);
if
(!
key
)
{
AnalysisVO
analysisVO
=
buildDefaultData
(
minute
);
result
.
put
(
minute
,
analysisVO
);
}
});
return
result
;
}
public
static
List
<
String
>
getDayMinute
(
Integer
month
,
Integer
day
)
{
List
<
String
>
list
=
Lists
.
newArrayList
();
LocalDateTime
of1
=
LocalDateTime
.
of
(
2024
,
month
,
day
,
8
,
0
);
LocalDateTime
now
=
of1
.
plusDays
(-
1
);
for
(
int
i
=
0
;
i
<
24
;
i
++)
{
int
hour
=
now
.
getHour
();
for
(
int
j
=
0
;
j
<
60
;
j
++)
{
LocalDateTime
of
=
LocalDateTime
.
of
(
2024
,
1
,
now
.
getDayOfMonth
(),
hour
,
j
);
list
.
add
(
DateUtil
.
format
(
of
,
DatePattern
.
NORM_DATETIME_MINUTE_PATTERN
));
}
now
=
now
.
plusHours
(
1
);
}
list
.
add
(
DateUtil
.
format
(
of1
,
DatePattern
.
NORM_DATETIME_MINUTE_PATTERN
));
return
list
;
}
@Override
public
void
fillDefaultData
(
TreeMap
<
String
,
AnalysisVO
>
statisticsMap
,
Integer
month
,
Integer
day
)
{
List
<
String
>
dayMinute
=
getDayMinute
(
month
,
day
);
dayMinute
.
forEach
(
minute
->
{
boolean
key
=
statisticsMap
.
containsKey
(
minute
);
if
(!
key
)
{
AnalysisVO
analysisVO
=
buildDefaultData
(
minute
);
statisticsMap
.
put
(
minute
,
analysisVO
);
}
});
}
private
AnalysisVO
buildDefaultData
(
String
minute
)
{
AnalysisVO
analysisVO
=
new
AnalysisVO
();
analysisVO
.
setTotalHr
(
0
);
analysisVO
.
setAvgHr
(
0
);
analysisVO
.
setMaxHr
(
0
);
analysisVO
.
setMinHr
(
0
);
analysisVO
.
setTotalBr
(
0
);
analysisVO
.
setAvgBr
(
0
);
analysisVO
.
setMaxBr
(
0
);
analysisVO
.
setMinBr
(
0
);
analysisVO
.
setHrBrCount
(
0
);
analysisVO
.
setActionCount
(
0
);
analysisVO
.
setTurnedCount
(
0
);
analysisVO
.
setIsAction
(
false
);
analysisVO
.
setIsMoveBed
(
true
);
analysisVO
.
setIsMinuteActionFlag
(
false
);
analysisVO
.
setAwakeMinuteActionFlag
(
false
);
analysisVO
.
setCreatedTime
(
minute
);
return
analysisVO
;
}
}
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportDayServiceImpl.java
View file @
3eb46154
...
@@ -11,13 +11,15 @@ import com.makeit.dto.platform.elder.PlatElderReportDTO;
...
@@ -11,13 +11,15 @@ import com.makeit.dto.platform.elder.PlatElderReportDTO;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.alarm.PlatDayDurationRecord
;
import
com.makeit.entity.platform.alarm.PlatDayDurationRecord
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.*
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.elder.PlatElderBreatheAnalysis
;
import
com.makeit.entity.platform.elder.PlatElderSleep
;
import
com.makeit.entity.platform.elder.PlatElderSleepAnalysis
;
import
com.makeit.entity.saas.analysis.SaasSleepEvaluateStandardReport
;
import
com.makeit.entity.saas.analysis.SaasSleepEvaluateStandardReport
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.report.SleepTypeEnum
;
import
com.makeit.enums.report.SleepTypeEnum
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.vo.analysis.EvaluateReportVO
;
import
com.makeit.module.iot.vo.fall.DeviceInfoContentFall
;
import
com.makeit.module.iot.vo.fall.DeviceInfoContentFall
;
import
com.makeit.module.iot.vo.space.DeviceInfoContentSpace
;
import
com.makeit.module.iot.vo.space.DeviceInfoContentSpace
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
...
@@ -134,14 +136,12 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
...
@@ -134,14 +136,12 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
}
}
// String sleepScore = platElderSleepAnalysis.getSleepScore();
// String sleepScore = platElderSleepAnalysis.getSleepScore();
Long
sleepScore
=
getSleepScore
(
platElderSleepAnalysis
);
// Long sleepScore = getSleepScore(platElderSleepAnalysis);
// EvaluateReportVO evaluateReport = sleepEvaluateReportService.getByScore(sleepScore);
platElderSleepEvaluationVO
.
setScore
(
Integer
.
parseInt
(
platElderSleepAnalysis
.
getSleepScore
()));
EvaluateReportVO
evaluateReport
=
sleepEvaluateReportService
.
getByScore
(
sleepScore
);
platElderSleepEvaluationVO
.
setScore
(
Integer
.
valueOf
(
sleepScore
+
""
));
platElderSleepEvaluationVO
.
setResult
(
platElderSleepAnalysis
.
getSleepResult
());
platElderSleepEvaluationVO
.
setResult
(
platElderSleepAnalysis
.
getSleepResult
());
platElderSleepEvaluationVO
.
setEvaluation
(
evaluateReport
.
get
Evaluate
());
platElderSleepEvaluationVO
.
setEvaluation
(
platElderSleepAnalysis
.
getSleep
Evaluate
());
platElderSleepEvaluationVO
.
setSleepDuration
(
Integer
.
valueOf
(
platElderSleepAnalysis
.
getSleepTime
()
+
""
));
platElderSleepEvaluationVO
.
setSleepDuration
(
Integer
.
valueOf
(
platElderSleepAnalysis
.
getSleepTime
()
+
""
));
platElderSleepEvaluationVO
.
setRestDuration
(
Integer
.
valueOf
(
platElderSleepAnalysis
.
getRestTime
()
+
""
));
platElderSleepEvaluationVO
.
setRestDuration
(
Integer
.
valueOf
(
platElderSleepAnalysis
.
getRestTime
()
+
""
));
...
@@ -218,7 +218,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
...
@@ -218,7 +218,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
.
orderByAsc
(
PlatElderSleep:
:
getStartSleep
)
.
orderByAsc
(
PlatElderSleep:
:
getStartSleep
)
);
);
setWakeUp
(
sleepList
);
//
setWakeUp(sleepList);
voList
=
StreamUtil
.
map
(
sleepList
,
e
->
{
voList
=
StreamUtil
.
map
(
sleepList
,
e
->
{
PlatElderSleepDiagramVO
vo
=
new
PlatElderSleepDiagramVO
();
PlatElderSleepDiagramVO
vo
=
new
PlatElderSleepDiagramVO
();
...
@@ -235,6 +235,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
...
@@ -235,6 +235,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
return
contentVO
;
return
contentVO
;
});
});
contentList
=
contentList
.
stream
().
filter
(
f
->
!
"resting"
.
equals
(
f
.
getSleepType
())).
collect
(
Collectors
.
toList
());
vo
.
setContentList
(
contentList
);
vo
.
setContentList
(
contentList
);
return
vo
;
return
vo
;
});
});
...
@@ -242,29 +243,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
...
@@ -242,29 +243,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
return
voList
;
return
voList
;
}
}
private
void
setWakeUp
(
List
<
PlatElderSleep
>
sleepList
)
{
if
(
CollUtil
.
isEmpty
(
sleepList
))
{
return
;
}
List
<
PlatElderSleep
>
sleeps
=
sleepList
.
stream
().
filter
(
f
->
f
.
getElderSleepType
().
equals
(
SleepTypeEnum
.
SLEEP
.
getType
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
sleeps
))
{
return
;
}
List
<
PlatElderSleep
>
wakeUpList
=
sleepList
.
stream
().
filter
(
f
->
f
.
getElderSleepType
().
equals
(
SleepTypeEnum
.
GETUP
.
getType
())).
collect
(
Collectors
.
toList
());
sleeps
.
forEach
(
s
->
{
List
<
PlatElderSleep
>
wakeList
=
wakeUpList
.
stream
().
filter
(
f
->
f
.
getStartSleep
().
isAfter
(
s
.
getEndSleep
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
wakeList
))
{
final
long
[]
minute
=
{
24
*
60
};
wakeList
.
forEach
(
w
->
{
long
between
=
Duration
.
between
(
s
.
getEndSleep
(),
w
.
getStartSleep
()).
toMinutes
();
if
(
between
<
minute
[
0
])
{
minute
[
0
]
=
between
;
s
.
setWakeUpTime
(
w
.
getStartSleep
());
}
});
}
});
}
@Override
@Override
public
PlatElderHeartRespiratoryEvaluationVO
heartRespiratoryEvaluation
(
PlatElderReportDTO
platElderIdDTO
)
{
public
PlatElderHeartRespiratoryEvaluationVO
heartRespiratoryEvaluation
(
PlatElderReportDTO
platElderIdDTO
)
{
...
...
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportWeekServiceImpl.java
View file @
3eb46154
...
@@ -33,11 +33,7 @@ import java.math.BigDecimal;
...
@@ -33,11 +33,7 @@ import java.math.BigDecimal;
import
java.time.*
;
import
java.time.*
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.time.temporal.TemporalAdjusters
;
import
java.time.temporal.TemporalAdjusters
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
@Service
...
@@ -267,9 +263,7 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
...
@@ -267,9 +263,7 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
Map
<
Integer
,
Map
<
String
,
List
<
PlatElderSleep
>>>
sleepMap
=
sleepList
.
stream
().
collect
(
Collectors
.
groupingBy
(
PlatElderSleep:
:
getElderSleepType
,
Collectors
.
groupingBy
(
PlatElderSleep:
:
getHappenDate
)));
Map
<
Integer
,
Map
<
String
,
List
<
PlatElderSleep
>>>
sleepMap
=
sleepList
.
stream
().
collect
(
Collectors
.
groupingBy
(
PlatElderSleep:
:
getElderSleepType
,
Collectors
.
groupingBy
(
PlatElderSleep:
:
getHappenDate
)));
Map
<
String
,
PlatElderSleepAnalysis
>
sleepAnalysisMap
=
sleepAnalysisList
.
stream
().
collect
(
Collectors
.
toMap
(
PlatElderSleepAnalysis:
:
getHappenDate
,
Function
.
identity
(),(
v1
,
v2
)->
v1
));
Map
<
String
,
PlatElderSleepAnalysis
>
sleepAnalysisMap
=
StreamUtil
.
toMapDep
(
sleepAnalysisList
,
PlatElderSleepAnalysis:
:
getHappenDate
);
// Map<String, PlatElderSleepAnalysis> sleepAnalysisMap = StreamUtil.toMap(sleepAnalysisList, PlatElderSleepAnalysis::getHappenDate);
List
<
LocalDate
>
dateList
=
LocalDateTimeUtils
.
getDateSeries
(
weekStartDate
,
weekEndDate
);
List
<
LocalDate
>
dateList
=
LocalDateTimeUtils
.
getDateSeries
(
weekStartDate
,
weekEndDate
);
DateTimeFormatter
timeFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
);
DateTimeFormatter
timeFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
);
...
@@ -277,8 +271,8 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
...
@@ -277,8 +271,8 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
List
<
PlatElderSleepDiagramWeekContentVO
>
sleep
=
StreamUtil
.
map
(
dateList
,
e
->
{
List
<
PlatElderSleepDiagramWeekContentVO
>
sleep
=
StreamUtil
.
map
(
dateList
,
e
->
{
PlatElderSleepDiagramWeekContentVO
vo
=
new
PlatElderSleepDiagramWeekContentVO
();
PlatElderSleepDiagramWeekContentVO
vo
=
new
PlatElderSleepDiagramWeekContentVO
();
vo
.
setDay
(
e
);
vo
.
setDay
(
e
);
Map
<
String
,
List
<
PlatElderSleep
>>
sleepListMap
=
Optional
.
ofNullable
(
sleepMap
.
get
(
SleepTypeEnum
.
SLEEP
.
getType
())).
orElse
(
new
HashMap
<>());
List
<
PlatElderSleep
>
list
=
Optional
.
ofNullable
(
sleep
Map
.
get
(
1
)).
map
(
i
->
i
.
get
(
dateTimeFormatter
.
format
(
e
))).
orElse
(
new
ArrayList
<>(
10
));
List
<
PlatElderSleep
>
list
=
Optional
.
ofNullable
(
sleep
ListMap
.
get
(
dateTimeFormatter
.
format
(
e
))).
orElse
(
new
ArrayList
<>(
));
List
<
PlatSleepRangeVO
>
sleepRecord
=
list
.
stream
().
flatMap
(
i
->
i
.
getSleepRecord
().
stream
()).
collect
(
Collectors
.
toList
());
List
<
PlatSleepRangeVO
>
sleepRecord
=
list
.
stream
().
flatMap
(
i
->
i
.
getSleepRecord
().
stream
()).
collect
(
Collectors
.
toList
());
...
@@ -289,8 +283,8 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
...
@@ -289,8 +283,8 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
List
<
PlatElderSleepDiagramWeekContentVO
>
rest
=
StreamUtil
.
map
(
dateList
,
e
->
{
List
<
PlatElderSleepDiagramWeekContentVO
>
rest
=
StreamUtil
.
map
(
dateList
,
e
->
{
PlatElderSleepDiagramWeekContentVO
vo
=
new
PlatElderSleepDiagramWeekContentVO
();
PlatElderSleepDiagramWeekContentVO
vo
=
new
PlatElderSleepDiagramWeekContentVO
();
vo
.
setDay
(
e
);
vo
.
setDay
(
e
);
Map
<
String
,
List
<
PlatElderSleep
>>
restListMap
=
Optional
.
ofNullable
(
sleepMap
.
get
(
SleepTypeEnum
.
RESTING
.
getType
())).
orElse
(
new
HashMap
<>());
List
<
PlatElderSleep
>
list
=
Optional
.
ofNullable
(
sleepMap
.
get
(
2
)).
map
(
i
->
i
.
get
(
dateTimeFormatter
.
format
(
e
))).
orElse
(
new
ArrayList
<>(
10
));
List
<
PlatElderSleep
>
list
=
Optional
.
ofNullable
(
restListMap
.
get
(
dateTimeFormatter
.
format
(
e
))).
orElse
(
new
ArrayList
<>(
10
));
List
<
PlatSleepRangeVO
>
sleepRecord
=
list
.
stream
().
flatMap
(
i
->
Optional
.
ofNullable
(
i
.
getSleepRecord
()).
orElse
(
new
ArrayList
<>(
10
)).
stream
()).
collect
(
Collectors
.
toList
());
List
<
PlatSleepRangeVO
>
sleepRecord
=
list
.
stream
().
flatMap
(
i
->
Optional
.
ofNullable
(
i
.
getSleepRecord
()).
orElse
(
new
ArrayList
<>(
10
)).
stream
()).
collect
(
Collectors
.
toList
());
...
...
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
View file @
3eb46154
This diff is collapsed.
Click to expand it.
server-service/src/main/java/com/makeit/vo/platform/elder/report/day/PlatSleepRangeVO.java
View file @
3eb46154
...
@@ -8,4 +8,9 @@ public class PlatSleepRangeVO {
...
@@ -8,4 +8,9 @@ public class PlatSleepRangeVO {
private
String
sleepType
;
private
String
sleepType
;
private
String
startTime
;
private
String
startTime
;
private
String
endTime
;
private
String
endTime
;
/**
* 所属睡眠区间开始时间
*/
private
String
belongToSleepTime
;
}
}
server-service/src/main/resources/mappers/PlatOrgMapper.xml
View file @
3eb46154
...
@@ -19,4 +19,46 @@
...
@@ -19,4 +19,46 @@
ON T1._id COLLATE utf8mb4_general_ci = T2.id COLLATE utf8mb4_general_ci
ON T1._id COLLATE utf8mb4_general_ci = T2.id COLLATE utf8mb4_general_ci
</select>
</select>
<!-- 批量插入数据 查询主键ID注入到是实体中-->
<insert
id=
"insertBatch"
parameterType=
"java.util.List"
useGeneratedKeys=
"true"
>
<selectKey
resultType=
"long"
keyProperty=
"id"
order=
"AFTER"
>
SELECT
LAST_INSERT_ID()
</selectKey>
insert into device_info_log
(message_type,device_id,report_time,br,body_move,person_state,person,hr,created_time)
values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(#{item.messageType},#{item.deviceId},#{item.reportTime},#{item.br},#{item.bodyMove},
#{item.personState},#{item.person},#{item.hr},#{item.createdTime})
</foreach>
</insert>
<insert
id=
"saveBatch"
parameterType=
"java.util.List"
useGeneratedKeys=
"true"
>
<selectKey
resultType=
"long"
keyProperty=
"id"
order=
"AFTER"
>
SELECT
LAST_INSERT_ID()
</selectKey>
insert into device_minute_info(total_hr, avg_hr, max_hr, min_hr, total_br, avg_br, max_br, min_br, hr_br_count,
action_count, turned_count, is_action, is_move_bed, is_minute_action_flag,
awake_minute_action_flag, br_stop_threshold, br_stop, br_stop_time, br_fast_threshold,
br_fast, br_fast_time, br_slow_threshold, br_slow, br_slow_time, hr_fast_threshold,
hr_fast, hr_fast_time, hr_slow_threshold, hr_slow, hr_slow_time, created_time,device_id)
values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(#{item.totalHr},#{item.avgHr},#{item.maxHr},#{item.minHr},#{item.totalBr},#{item.avgBr},#{item.maxBr},#{item.minBr},#{item.hrBrCount},
#{item.actionCount},#{item.turnedCount},#{item.isAction},#{item.isMoveBed},#{item.isMinuteActionFlag},
#{item.awakeMinuteActionFlag},#{item.brStopThreshold},#{item.brStop},#{item.brStopTime},#{item.brFastThreshold},
#{item.brFast},#{item.brFastTime},#{item.brSlowThreshold},#{item.brSlow},#{item.brSlowTime},#{item.hrFastThreshold},
#{item.hrFast},#{item.hrFastTime},#{item.hrSlowThreshold},#{item.hrSlow},#{item.hrSlowTime},#{item.createdTime},#{item.deviceId})
</foreach>
</insert>
<select
id=
"getData"
resultType=
"com.makeit.module.iot.vo.analysis.AnalysisVO"
>
select * from device_minute_info where device_id = '1732647368962203650' order by created_time
</select>
</mapper>
</mapper>
server-web/src/main/resources/application-dev.yml
View file @
3eb46154
...
@@ -115,7 +115,7 @@ iot:
...
@@ -115,7 +115,7 @@ iot:
clientId
:
fyxmb5h52iKwE2Hi
clientId
:
fyxmb5h52iKwE2Hi
secureKey
:
22fZbnH36wdHn7ZTyKKHraFw233npcez
secureKey
:
22fZbnH36wdHn7ZTyKKHraFw233npcez
sync
:
sync
:
enable
:
fals
e
enable
:
tru
e
mqtt
:
mqtt
:
username
:
admin|1693982115969
username
:
admin|1693982115969
...
...
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