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
ce1e9c90
authored
Feb 02, 2024
by
罗志长
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge branch 'dev'
parents
8e1d0ca8
3eb46154
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
524 additions
and
84 deletions
db/init/init.sql
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/msg/sender/WxSpSender.java
server-common/src/main/java/com/makeit/utils/third/wechat/WechatBindDTO.java
server-common/src/main/java/com/makeit/utils/third/wechat/WechatCodeDTO.java
server-common/src/main/java/com/makeit/utils/user/wechat/WechatUserInfo.java
server-module/src/main/java/com/makeit/module/controller/children/elder/PlatElderChildrenInfoUserLoginChildrenController.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/entity/saas/PlatTenant.java
server-service/src/main/java/com/makeit/mapper/platform/auth/PlatOrgMapper.java
server-service/src/main/java/com/makeit/mapper/platform/elder/PlatElderChildrenInfoMapper.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/service/wechat/PlatElderChildrenInfoUserLoginWechatService.java
server-service/src/main/java/com/makeit/service/wechat/impl/PlatElderChildrenInfoUserLoginWechatServiceImpl.java
server-service/src/main/java/com/makeit/vo/platform/elder/report/day/PlatSleepRangeVO.java
server-service/src/main/resources/mappers/PlatElderChildrenInfoMapper.xml
server-service/src/main/resources/mappers/PlatOrgMapper.xml
server-web/src/main/resources/application-dev.yml
server-web/src/main/resources/application-test.yml
server-web/src/main/resources/logback-spring-prod.xml
db/init/init.sql
View file @
ce1e9c90
...
@@ -46205,6 +46205,9 @@ INSERT INTO `saas_menu` VALUES ('1699779383360856066', '0', '数据分析', NULL
...
@@ -46205,6 +46205,9 @@ INSERT INTO `saas_menu` VALUES ('1699779383360856066', '0', '数据分析', NULL
INSERT
INTO
`saas_menu`
VALUES
(
'1701192156686856193'
,
'0'
,
'空间管理'
,
NULL
,
'QuestionFilled'
,
500
,
'1'
,
'1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'1'
,
'2023-09-11 19:13:11'
,
'2023-09-11 19:13:11'
,
'0'
,
NULL
,
'root'
,
'root'
,
NULL
,
NULL
);
INSERT
INTO
`saas_menu`
VALUES
(
'1701192156686856193'
,
'0'
,
'空间管理'
,
NULL
,
'QuestionFilled'
,
500
,
'1'
,
'1'
,
NULL
,
NULL
,
NULL
,
NULL
,
'1'
,
'2023-09-11 19:13:11'
,
'2023-09-11 19:13:11'
,
'0'
,
NULL
,
'root'
,
'root'
,
NULL
,
NULL
);
INSERT
INTO
`saas_menu`
VALUES
(
'1702153993116991489'
,
'1699779383360856066'
,
'模型管理'
,
'saasAnalysisModelList'
,
NULL
,
500
,
'1'
,
'2'
,
'/saas/analysis/model-list'
,
NULL
,
NULL
,
NULL
,
'1'
,
'2023-09-14 10:55:11'
,
'2023-09-14 10:55:11'
,
'0'
,
NULL
,
'root'
,
'root'
,
'list'
,
NULL
);
INSERT
INTO
`saas_menu`
VALUES
(
'1702153993116991489'
,
'1699779383360856066'
,
'模型管理'
,
'saasAnalysisModelList'
,
NULL
,
500
,
'1'
,
'2'
,
'/saas/analysis/model-list'
,
NULL
,
NULL
,
NULL
,
'1'
,
'2023-09-14 10:55:11'
,
'2023-09-14 10:55:11'
,
'0'
,
NULL
,
'root'
,
'root'
,
'list'
,
NULL
);
INSERT
INTO
`saas_menu`
VALUES
(
'1702227189241573378'
,
'1699779383360856066'
,
'报告管理'
,
'saasAnalysisReportList'
,
NULL
,
500
,
'1'
,
'2'
,
'/saas/analysis/report-list'
,
NULL
,
NULL
,
NULL
,
'1'
,
'2023-09-14 15:46:02'
,
'2023-09-14 15:46:02'
,
'0'
,
NULL
,
'root'
,
'root'
,
'list'
,
NULL
);
INSERT
INTO
`saas_menu`
VALUES
(
'1702227189241573378'
,
'1699779383360856066'
,
'报告管理'
,
'saasAnalysisReportList'
,
NULL
,
500
,
'1'
,
'2'
,
'/saas/analysis/report-list'
,
NULL
,
NULL
,
NULL
,
'1'
,
'2023-09-14 15:46:02'
,
'2023-09-14 15:46:02'
,
'0'
,
NULL
,
'root'
,
'root'
,
'list'
,
NULL
);
INSERT
INTO
`saas_menu`
VALUES
(
'1731523714760503298'
,
'1699699374096998402'
,
'租户设备日志'
,
'saasTenantDeviceLogList'
,
NULL
,
500
,
'1'
,
'2'
,
'/saas/tenant/device-log-list'
,
NULL
,
NULL
,
NULL
,
'1'
,
'2023-12-04 11:59:58'
,
'2023-12-04 11:59:58'
,
'0'
,
NULL
,
'root'
,
'root'
,
'list'
,
NULL
);
INSERT
INTO
`saas_menu`
VALUES
(
'1735846783046008833'
,
'1699699374096998402'
,
'声网PID管理'
,
'saasTenantSwPidList'
,
NULL
,
500
,
'1'
,
'2'
,
'/saas/tenant/sw-pid-list'
,
NULL
,
NULL
,
NULL
,
'1'
,
'2023-12-16 10:18:18'
,
'2023-12-16 10:18:18'
,
'0'
,
NULL
,
'root'
,
'root'
,
'list'
,
NULL
);
INSERT
INTO
`saas_menu`
VALUES
(
'1751073621548666882'
,
'1699699374096998402'
,
'OpenAPI管理'
,
'saasTenantOpenApiList'
,
NULL
,
500
,
'1'
,
'2'
,
'/saas/tenant/open-api-list'
,
NULL
,
NULL
,
NULL
,
'1'
,
'2024-01-27 10:44:19'
,
'2024-01-27 10:44:19'
,
'0'
,
NULL
,
'root'
,
'root'
,
'list'
,
NULL
);
-- ----------------------------
-- ----------------------------
-- Table structure for saas_model_manage
-- Table structure for saas_model_manage
db/上线后sql/insert.sql
0 → 100644
View file @
ce1e9c90
INSERT
INTO
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
)
VALUES
(
'213'
,
'alarm.sendType.childWechat'
,
'子女端小程序'
,
'6'
,
4
,
''
,
'201'
,
'2022-05-16 17:13:23'
,
'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 @
ce1e9c90
...
@@ -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 @
ce1e9c90
...
@@ -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 @
ce1e9c90
...
@@ -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/msg/sender/WxSpSender.java
View file @
ce1e9c90
...
@@ -44,7 +44,7 @@ public class WxSpSender implements IMsgSender{
...
@@ -44,7 +44,7 @@ public class WxSpSender implements IMsgSender{
public
void
send
(
MsgSendDTO
msgDTO
)
{
public
void
send
(
MsgSendDTO
msgDTO
)
{
List
<
MsgSendDTO
.
ReceiverInfo
>
receiverInfos
=
msgDTO
.
getReceiverInfos
();
List
<
MsgSendDTO
.
ReceiverInfo
>
receiverInfos
=
msgDTO
.
getReceiverInfos
();
if
(
CollUtil
.
is
Not
Empty
(
receiverInfos
))
{
if
(
CollUtil
.
isEmpty
(
receiverInfos
))
{
return
;
return
;
}
}
String
content
=
msgDTO
.
getOriContent
();
String
content
=
msgDTO
.
getOriContent
();
...
...
server-common/src/main/java/com/makeit/utils/third/wechat/WechatBindDTO.java
0 → 100644
View file @
ce1e9c90
package
com
.
makeit
.
utils
.
third
.
wechat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author wangzy
* @description
* @createDate 2024-01-26-14:09
*/
@Data
public
class
WechatBindDTO
{
@ApiModelProperty
(
value
=
"用户id"
)
private
String
id
;
@ApiModelProperty
(
value
=
"微信公众号openid"
)
private
String
weChatOpenid
;
private
String
appid
;
private
String
secret
;
private
String
code
;
private
String
grantType
;
}
server-common/src/main/java/com/makeit/utils/third/wechat/WechatCodeDTO.java
0 → 100644
View file @
ce1e9c90
package
com
.
makeit
.
utils
.
third
.
wechat
;
import
lombok.Data
;
/**
* @author wangzy
* @description
* @createDate 2024-01-30-16:57
*/
@Data
public
class
WechatCodeDTO
{
// {"access_token":"77_hfkGpaiIT8xPltYrmRmrHj_svTcoLKIvR-w_lkR_wWqGHyF1NnZiIvIg0LxnI2rO55U2NqSGpXStYFmwxPE2mO0gNyfUrGvHUMcckrNNM9I",
// "expires_in":7200,
// "refresh_token":"77_MFeHId8uo1EgV6NFlhDiaQMrK6FXGmKcDMfa-BqGOaWr20u-6aM4lkBx1fnsSMrgL5m_Q3Csdw8D4Z3_qmpDj0kZKMXLmTzxosLz2BEqJHs",
// "openid":"o1es866cj4fp2Np9S5rmnbIdSg4U",
// "scope":"snsapi_base"}
private
String
accessToken
;
private
String
openid
;
private
String
scope
;
}
server-common/src/main/java/com/makeit/utils/user/wechat/WechatUserInfo.java
View file @
ce1e9c90
...
@@ -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/children/elder/PlatElderChildrenInfoUserLoginChildrenController.java
View file @
ce1e9c90
...
@@ -4,6 +4,7 @@ import com.makeit.common.response.ApiResponseEntity;
...
@@ -4,6 +4,7 @@ import com.makeit.common.response.ApiResponseEntity;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.service.wechat.PlatElderChildrenInfoUserLoginWechatService
;
import
com.makeit.service.wechat.PlatElderChildrenInfoUserLoginWechatService
;
import
com.makeit.utils.third.wechat.WechatBindDTO
;
import
com.makeit.utils.third.wechat.WechatLoginPhoneDTO
;
import
com.makeit.utils.third.wechat.WechatLoginPhoneDTO
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
...
@@ -37,4 +38,12 @@ public class PlatElderChildrenInfoUserLoginChildrenController {
...
@@ -37,4 +38,12 @@ public class PlatElderChildrenInfoUserLoginChildrenController {
return
ApiResponseUtils
.
success
();
return
ApiResponseUtils
.
success
();
}
}
@ApiOperation
(
value
=
"绑定公众号"
)
@PostMapping
(
value
=
"/bind"
)
@TenantIdIgnore
public
ApiResponseEntity
<
Void
>
bind
(
@RequestBody
WechatBindDTO
dto
)
{
platElderChildrenInfoUserLoginWechatService
.
bind
(
dto
);
return
ApiResponseUtils
.
success
();
}
}
}
server-module/src/main/java/com/makeit/module/controller/elder/PlatElderSleepController.java
View file @
ce1e9c90
...
@@ -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 @
ce1e9c90
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/entity/saas/PlatTenant.java
View file @
ce1e9c90
...
@@ -45,7 +45,7 @@ public class PlatTenant extends BaseEntity {
...
@@ -45,7 +45,7 @@ public class PlatTenant extends BaseEntity {
private
String
menuList
;
private
String
menuList
;
/**
/**
* 告警渠道 1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单
* 告警渠道 1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单
6-微信公众号
*/
*/
private
String
alertChannel
;
private
String
alertChannel
;
...
...
server-service/src/main/java/com/makeit/mapper/platform/auth/PlatOrgMapper.java
View file @
ce1e9c90
...
@@ -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/mapper/platform/elder/PlatElderChildrenInfoMapper.java
View file @
ce1e9c90
...
@@ -2,6 +2,9 @@ package com.makeit.mapper.platform.elder;
...
@@ -2,6 +2,9 @@ package com.makeit.mapper.platform.elder;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.makeit.entity.platform.elder.PlatElderChildrenInfo
;
import
com.makeit.entity.platform.elder.PlatElderChildrenInfo
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
/**
* <p>
* <p>
...
@@ -13,4 +16,5 @@ import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
...
@@ -13,4 +16,5 @@ import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
*/
*/
public
interface
PlatElderChildrenInfoMapper
extends
BaseMapper
<
PlatElderChildrenInfo
>
{
public
interface
PlatElderChildrenInfoMapper
extends
BaseMapper
<
PlatElderChildrenInfo
>
{
List
<
PlatElderChildrenInfo
>
list
(
@Param
(
"tenantId"
)
String
tenantId
,
@Param
(
"elderIds"
)
String
elderIds
);
}
}
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
View file @
ce1e9c90
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 @
ce1e9c90
...
@@ -33,6 +33,7 @@ import com.makeit.enums.report.PlatformTypeEnum;
...
@@ -33,6 +33,7 @@ import com.makeit.enums.report.PlatformTypeEnum;
import
com.makeit.exception.BusinessException
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper
;
import
com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper
;
import
com.makeit.mapper.platform.elder.PlatElderChildrenInfoMapper
;
import
com.makeit.module.iot.service.IotDevicePropertiesOperateService
;
import
com.makeit.module.iot.service.IotDevicePropertiesOperateService
;
import
com.makeit.service.platform.alarm.PlatAlarmConfigService
;
import
com.makeit.service.platform.alarm.PlatAlarmConfigService
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
...
@@ -67,6 +68,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -67,6 +68,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.*
;
import
java.util.regex.Matcher
;
import
java.util.regex.Matcher
;
...
@@ -113,6 +115,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -113,6 +115,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
private
ShengwangService
shengwangService
;
private
ShengwangService
shengwangService
;
@Autowired
@Autowired
private
IotDevicePropertiesOperateService
iotDevicePropertiesOperateService
;
private
IotDevicePropertiesOperateService
iotDevicePropertiesOperateService
;
@Resource
private
PlatElderChildrenInfoMapper
platElderChildrenInfoMapper
;
@Override
@Override
...
@@ -321,15 +325,15 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -321,15 +325,15 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
childrenInfoLambdaQueryWrapper
.
and
(
qw
->
qw
.
apply
(
"find_in_set('"
+
elderIds
+
"',elder_id)"
));
childrenInfoLambdaQueryWrapper
.
and
(
qw
->
qw
.
apply
(
"find_in_set('"
+
elderIds
+
"',elder_id)"
));
List
<
PlatElderChildrenInfo
>
childrenInfoList
=
platElderChildrenInfoService
.
list
(
childrenInfoLambdaQueryWrapper
);
List
<
PlatElderChildrenInfo
>
childrenInfoList
=
platElderChildrenInfoService
.
list
(
childrenInfoLambdaQueryWrapper
);
if
(
CollectionUtils
.
isEmpty
(
childrenInfoList
))
{
if
(
CollectionUtils
.
isEmpty
(
childrenInfoList
))
{
throw
new
BusinessException
(
"子女端账号未绑定长者,长者id:"
+
elderIds
);
throw
new
BusinessException
(
"子女端账号未绑定长者,长者id:"
+
elderIds
);
}
}
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
);
String
childIdJoin
=
allChildInfoList
.
stream
().
map
(
BaseEntity:
:
getId
).
collect
(
Collectors
.
joining
(
","
));
String
childIdJoin
=
allChildInfoList
.
stream
().
map
(
BaseEntity:
:
getId
).
collect
(
Collectors
.
joining
(
","
));
//通知的子女
//通知的子女
...
@@ -347,10 +351,14 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -347,10 +351,14 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
return
list
;
return
list
;
}
}
childInfoList
.
forEach
(
c
->
{
childInfoList
.
forEach
(
c
->
{
if
(
StrUtil
.
isBlank
(
c
.
getWeChatOpenid
()))
{
return
;
}
MsgSendDTO
.
ReceiverInfo
receiverInfo
=
new
MsgSendDTO
.
ReceiverInfo
();
MsgSendDTO
.
ReceiverInfo
receiverInfo
=
new
MsgSendDTO
.
ReceiverInfo
();
receiverInfo
.
setRegionName
(
alarmRecord
.
getRegionName
());
receiverInfo
.
setRegionName
(
alarmRecord
.
getRegionName
());
receiverInfo
.
setName
(
c
.
getName
());
receiverInfo
.
setName
(
c
.
getName
());
receiverInfo
.
setWeChatOpenid
(
c
.
getWeChatOpenid
());
receiverInfo
.
setWeChatOpenid
(
c
.
getWeChatOpenid
());
list
.
add
(
receiverInfo
);
});
});
return
list
;
return
list
;
}
}
...
@@ -414,21 +422,33 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -414,21 +422,33 @@ 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
))
{
return
;
// 微信公众号
notifyChannel
=
"6"
;
}
else
{
notifyChannel
=
notifyChannel
+
",6"
;
}
}
PlatTenant
platTenant
=
platTenantService
.
getById
(
alarmConfig
.
getTenantId
());
PlatTenant
platTenant
=
platTenantService
.
getById
(
alarmConfig
.
getTenantId
());
if
(
platTenant
==
null
)
{
if
(
platTenant
==
null
||
!
"1"
.
equals
(
platTenant
.
getStatus
()))
{
return
;
return
;
}
}
String
alertChannel
=
platTenant
.
getAlertChannel
();
String
alertChannel
=
platTenant
.
getAlertChannel
();
if
(
StringUtils
.
isBlank
(
alertChannel
)){
if
(
StringUtils
.
isBlank
(
alertChannel
))
{
return
;
// 微信公众号
alertChannel
=
"6"
;
}
else
{
alertChannel
=
alertChannel
+
",6"
;
}
}
String
[]
tenantChannels
=
alertChannel
.
split
(
","
);
String
[]
tenantChannels
=
alertChannel
.
split
(
","
);
List
<
String
>
tenantChannelList
=
Arrays
.
asList
(
tenantChannels
);
List
<
String
>
tenantChannelList
=
Lists
.
newArrayList
(
Arrays
.
asList
(
tenantChannels
)
);
String
[]
split
=
notifyChannel
.
split
(
","
);
String
[]
split
=
notifyChannel
.
split
(
","
);
for
(
String
sendType
:
split
)
{
for
(
String
sendType
:
split
)
{
//租户告警渠道 没配置的 就不发送
//租户告警渠道 没配置的 就不发送
...
@@ -444,24 +464,24 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -444,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 @
ce1e9c90
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 @
ce1e9c90
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 @
ce1e9c90
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 @
ce1e9c90
...
@@ -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 @
ce1e9c90
...
@@ -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 @
ce1e9c90
This diff is collapsed.
Click to expand it.
server-service/src/main/java/com/makeit/service/wechat/PlatElderChildrenInfoUserLoginWechatService.java
View file @
ce1e9c90
package
com
.
makeit
.
service
.
wechat
;
package
com
.
makeit
.
service
.
wechat
;
import
com.makeit.utils.third.wechat.WechatBindDTO
;
import
com.makeit.utils.third.wechat.WechatLoginPhoneDTO
;
import
com.makeit.utils.third.wechat.WechatLoginPhoneDTO
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
...
@@ -9,4 +10,5 @@ public interface PlatElderChildrenInfoUserLoginWechatService {
...
@@ -9,4 +10,5 @@ public interface PlatElderChildrenInfoUserLoginWechatService {
void
logout
();
void
logout
();
void
bind
(
WechatBindDTO
dto
);
}
}
server-service/src/main/java/com/makeit/service/wechat/impl/PlatElderChildrenInfoUserLoginWechatServiceImpl.java
View file @
ce1e9c90
package
com
.
makeit
.
service
.
wechat
.
impl
;
package
com
.
makeit
.
service
.
wechat
.
impl
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.makeit.entity.platform.elder.PlatElderChildrenInfo
;
import
com.makeit.entity.platform.elder.PlatElderChildrenInfo
;
import
com.makeit.entity.saas.PlatTenant
;
import
com.makeit.entity.saas.PlatTenant
;
import
com.makeit.global.aspect.misc.nofill.NoFillUtil
;
import
com.makeit.global.aspect.misc.nofill.NoFillUtil
;
...
@@ -12,9 +16,7 @@ import com.makeit.utils.data.id.IdGen;
...
@@ -12,9 +16,7 @@ import com.makeit.utils.data.id.IdGen;
import
com.makeit.utils.msg.config.WxConfig
;
import
com.makeit.utils.msg.config.WxConfig
;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.utils.sys.FileUtil
;
import
com.makeit.utils.sys.FileUtil
;
import
com.makeit.utils.third.wechat.WechatLoginPhoneDTO
;
import
com.makeit.utils.third.wechat.*
;
import
com.makeit.utils.third.wechat.WechatUtil
;
import
com.makeit.utils.third.wechat.WxUserInfo
;
import
com.makeit.utils.user.TokenUtil
;
import
com.makeit.utils.user.TokenUtil
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
...
@@ -25,7 +27,9 @@ import org.springframework.stereotype.Service;
...
@@ -25,7 +27,9 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@Service
@Service
public
class
PlatElderChildrenInfoUserLoginWechatServiceImpl
implements
PlatElderChildrenInfoUserLoginWechatService
{
public
class
PlatElderChildrenInfoUserLoginWechatServiceImpl
implements
PlatElderChildrenInfoUserLoginWechatService
{
...
@@ -121,6 +125,49 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde
...
@@ -121,6 +125,49 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde
}
}
@Override
@Override
public
void
bind
(
WechatBindDTO
dto
)
{
WechatCodeDTO
codeDTO
=
getAppid
(
dto
);
if
(
StrUtil
.
isBlank
(
dto
.
getId
())
||
codeDTO
==
null
||
StrUtil
.
isBlank
(
codeDTO
.
getOpenid
()))
{
return
;
}
bindToChildrenInfo
(
dto
.
getId
(),
codeDTO
.
getOpenid
());
}
private
WechatCodeDTO
getAppid
(
WechatBindDTO
dto
)
{
String
url
=
"https://api.weixin.qq.com/sns/oauth2/access_token"
;
Map
<
String
,
Object
>
params
=
new
HashMap
<>(
12
);
params
.
put
(
"appid"
,
dto
.
getAppid
());
params
.
put
(
"secret"
,
dto
.
getSecret
());
params
.
put
(
"code"
,
dto
.
getCode
());
params
.
put
(
"grant_type"
,
dto
.
getGrantType
());
String
post
=
""
;
try
{
post
=
HttpUtil
.
post
(
url
,
params
);
logger
.
info
(
"获取微信公众号appid:response:{},params:{}"
,
post
,
dto
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"获取微信公众号appid失败:response:{}"
,
post
);
}
return
JSONUtil
.
toBean
(
post
,
WechatCodeDTO
.
class
);
}
private
void
bindToChildrenInfo
(
String
id
,
String
weChatOpenid
)
{
PlatElderChildrenInfo
childrenInfo
=
platElderChildrenInfoService
.
getById
(
id
);
if
(
childrenInfo
==
null
)
{
return
;
}
if
(
StrUtil
.
isNotBlank
(
childrenInfo
.
getOpenid
()))
{
List
<
PlatElderChildrenInfo
>
infoList
=
platElderChildrenInfoService
.
list
(
Wrappers
.<
PlatElderChildrenInfo
>
lambdaQuery
()
.
in
(
PlatElderChildrenInfo:
:
getOpenid
,
childrenInfo
.
getOpenid
()));
infoList
.
forEach
(
i
->
i
.
setWeChatOpenid
(
weChatOpenid
));
platElderChildrenInfoService
.
updateBatchById
(
infoList
);
}
else
{
childrenInfo
.
setWeChatOpenid
(
weChatOpenid
);
platElderChildrenInfoService
.
updateById
(
childrenInfo
);
}
}
@Override
public
void
logout
()
{
public
void
logout
()
{
TokenUtil
.
wechatLogout
();
TokenUtil
.
wechatLogout
();
}
}
...
...
server-service/src/main/java/com/makeit/vo/platform/elder/report/day/PlatSleepRangeVO.java
View file @
ce1e9c90
...
@@ -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/PlatElderChildrenInfoMapper.xml
0 → 100644
View file @
ce1e9c90
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.makeit.mapper.platform.elder.PlatElderChildrenInfoMapper"
>
<select
id=
"list"
parameterType=
"String"
resultType=
"com.makeit.entity.platform.elder.PlatElderChildrenInfo"
>
select *
from plat_elder_children_info
where tenant_id = #{tenantId}
and find_in_set(#{elderIds},elder_id)
and del_flag = '0'
</select>
</mapper>
server-service/src/main/resources/mappers/PlatOrgMapper.xml
View file @
ce1e9c90
...
@@ -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 @
ce1e9c90
...
@@ -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
...
@@ -141,8 +141,10 @@ wx:
...
@@ -141,8 +141,10 @@ wx:
msgDataFormat
:
JSON
msgDataFormat
:
JSON
mp
:
mp
:
config
:
config
:
appid
:
wx5c73cad7aeb788c6
appid
:
wxa5ddf4b1355ce62a
secret
:
7c3a0665bf2adbe67a58a4d6c8017243
secret
:
92b990a8ce3394f41b55369f4018c596
# appid: wx5c73cad7aeb788c6
# secret: 7c3a0665bf2adbe67a58a4d6c8017243
sms
:
sms
:
send
:
send
:
url
:
http://www.aozoneyun.com/message/message/send
url
:
http://www.aozoneyun.com/message/message/send
...
...
server-web/src/main/resources/application-test.yml
View file @
ce1e9c90
...
@@ -12,7 +12,7 @@ spring:
...
@@ -12,7 +12,7 @@ spring:
name
:
iot-server
name
:
iot-server
datasource
:
datasource
:
url
:
jdbc:mysql://1
24.71.100.177
:3306/dev_iot_yanglao_platform?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true
url
:
jdbc:mysql://1
92.168.0.29
:3306/dev_iot_yanglao_platform?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true
username
:
jenlinks-iot
username
:
jenlinks-iot
password
:
jenlinks-iot@123Frrd
password
:
jenlinks-iot@123Frrd
driver-class-name
:
com.mysql.cj.jdbc.Driver
driver-class-name
:
com.mysql.cj.jdbc.Driver
...
@@ -139,8 +139,10 @@ wx:
...
@@ -139,8 +139,10 @@ wx:
msgDataFormat
:
JSON
msgDataFormat
:
JSON
mp
:
mp
:
config
:
config
:
appid
:
wx5c73cad7aeb788c6
appid
:
wxa5ddf4b1355ce62a
secret
:
7c3a0665bf2adbe67a58a4d6c8017243
secret
:
92b990a8ce3394f41b55369f4018c596
# appid: wx5c73cad7aeb788c6
# secret: 7c3a0665bf2adbe67a58a4d6c8017243
sms
:
sms
:
send
:
send
:
...
...
server-web/src/main/resources/logback-spring-prod.xml
View file @
ce1e9c90
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
</encoder>
</encoder>
</appender>
</appender>
<!--
info
-->
<!--
logging
-->
<appender
name=
"FILELOGGING"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"FILELOGGING"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
INFO
</level>
<level>
INFO
</level>
...
@@ -61,7 +61,7 @@
...
@@ -61,7 +61,7 @@
<FileNamePattern>
${logback.logdir}/${logback.appname}/info/log_info.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<FileNamePattern>
${logback.logdir}/${logback.appname}/info/log_info.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<maxHistory>
10
</maxHistory>
<maxHistory>
10
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
20MB
</maxFileSize>
<maxFileSize>
20
48
MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</rollingPolicy>
...
@@ -84,7 +84,7 @@
...
@@ -84,7 +84,7 @@
</FileNamePattern>
</FileNamePattern>
<maxHistory>
10
</maxHistory>
<maxHistory>
10
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
20MB
</maxFileSize>
<maxFileSize>
20
48
MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</rollingPolicy>
...
@@ -106,7 +106,7 @@
...
@@ -106,7 +106,7 @@
<FileNamePattern>
${logback.logdir}/${logback.appname}/warn/log_warn.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<FileNamePattern>
${logback.logdir}/${logback.appname}/warn/log_warn.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<maxHistory>
10
</maxHistory>
<maxHistory>
10
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
20MB
</maxFileSize>
<maxFileSize>
20
48
MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</rollingPolicy>
...
...
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