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
1960b971
authored
Oct 07, 2023
by
杨伟程
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge branch 'dev' of
http://git.xmmakeit.com/huangjiay/iot-platform-server
into dev
parents
6f8e08f2
a7818924
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
882 additions
and
120 deletions
saas-module/src/main/java/com/makeit/controller/sys/SaasFileController.java
saas-module/src/main/java/com/makeit/controller/sys/SaasUploadController.java
server-api/server-api.iml
server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatRoleDTOVO.java
server-common/src/main/java/com/makeit/module/iot/service/IotCommonService.java
server-common/src/main/java/com/makeit/module/iot/service/IotProductDeviceService.java
server-common/src/main/java/com/makeit/module/iot/vo/analysis/AnalysisVO.java
server-common/src/main/java/com/makeit/utils/msg/sender/MailMsgSender.java
server-module/server-module.iml
server-module/src/main/java/com/makeit/module/controller/children/alarm/PlatAlarmRecordChildrenController.java
server-module/src/main/java/com/makeit/module/controller/elder/PlatElderSleepController.java
server-service/src/main/java/com/makeit/dto/platform/alarm/PlatAlarmRecordQueryDTO.java
server-service/src/main/java/com/makeit/entity/platform/alarm/PlatAlarmRecord.java
server-service/src/main/java/com/makeit/entity/platform/auth/PlatRoleOrg.java
server-service/src/main/java/com/makeit/service/platform/alarm/PlatAlarmRecordService.java
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/auth/impl/PlatRoleServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderSleepService.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/space/impl/PlatRoomBedDeviceServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/space/impl/PlatSpaceServiceImpl.java
server-service/src/main/java/com/makeit/vo/platform/alarm/PlatAlarmRecordVO.java
server-service/src/main/resources/mappers/PlatAlarmConfigMapper.xml
server-web/platform-web.iml
saas-module/src/main/java/com/makeit/controller/sys/SaasFileController.java
0 → 100644
View file @
1960b971
package
com
.
makeit
.
controller
.
sys
;
import
com.makeit.common.dto.BaseIdDTO
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.module.system.dto.SysFileDTOVO
;
import
com.makeit.module.system.entity.SysFile
;
import
com.makeit.module.system.service.SysFileService
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.storage.AccessoryRepository
;
import
com.makeit.utils.storage.DataWithMeta
;
import
com.makeit.utils.sys.FileUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.util.UriUtils
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.util.Arrays
;
import
java.util.List
;
@Api
(
tags
=
"saas-文件"
)
@RestController
@RequestMapping
(
"/saas/sys/file"
)
public
class
SaasFileController
{
@Autowired
public
AccessoryRepository
accessoryRepository
;
@Autowired
private
SysFileService
sysFileService
;
@ApiOperation
(
"获取文件临时路径路径"
)
@PostMapping
(
"getFileTmp"
)
public
ApiResponseEntity
<
SysFileDTOVO
>
getFileTmp
(
@RequestBody
BaseIdDTO
baseIdDTO
)
{
SysFileDTOVO
sysFileDTOVO
=
BeanDtoVoUtils
.
convert
(
sysFileService
.
getById
(
baseIdDTO
.
getId
()),
SysFileDTOVO
.
class
);
sysFileDTOVO
.
setFullUrl
(
accessoryRepository
.
getTmpURL
(
sysFileDTOVO
.
getUrl
()));
return
ApiResponseUtils
.
success
(
sysFileDTOVO
);
}
@ApiOperation
(
"获取文件路径"
)
@PostMapping
(
"getFile"
)
public
ApiResponseEntity
<
List
<
SysFileDTOVO
>>
getFile
(
@RequestBody
BaseIdDTO
baseIdDTO
)
{
return
ApiResponseUtils
.
success
(
FileUtil
.
convertMultiply
(
Arrays
.
asList
(
baseIdDTO
.
getId
())).
get
(
0
));
}
@ApiOperation
(
"获取文件路径集合"
)
@PostMapping
(
"getFileList"
)
public
ApiResponseEntity
<
List
<
List
<
SysFileDTOVO
>>>
getFile
(
@RequestBody
List
<
String
>
list
)
{
return
ApiResponseUtils
.
success
(
FileUtil
.
convertMultiply
(
list
));
}
//这种方式可以 只是不能设置下载文件名
// @ApiOperation("下载文件")
// @PostMapping("downloadFile")
// public byte[] downloadFile(@RequestBody BaseIdDTO baseIdDTO) {
// return aliyunOSSRepository.getBytes(UriUtils.decode(StringUtils.substringAfter(sysFileService.getById(baseIdDTO.getId()).getUrl(), "oss/"), "UTF-8"));
// }
void
downloadFile
(
HttpServletResponse
response
,
String
id
)
throws
IOException
{
SysFile
sysFile
=
sysFileService
.
getById
(
id
);
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setContentType
(
"application/octet-stream"
);
// 设置文件头:最后一个参数是设置下载文件名
response
.
setHeader
(
"Content-disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
sysFile
.
getFileName
(),
"UTF-8"
));
OutputStream
outputStream
=
response
.
getOutputStream
();
outputStream
.
write
(
accessoryRepository
.
getBytes
(
UriUtils
.
decode
(
StringUtils
.
substringAfter
(
sysFile
.
getUrl
(),
"oss/"
),
"UTF-8"
)));
}
//这样是可以
// private void previewFile(HttpServletResponse response, String id) throws IOException {
//
// SysFile sysFile = sysFileService.getById(id);
//
// response.setCharacterEncoding("UTF-8");
// response.setContentType("application/octet-stream");
// // 设置文件头:最后一个参数是设置下载文件名
// response.setHeader("Content-disposition", "inline;filename=" + URLEncoder.encode(sysFile.getFileName(), "UTF-8"));
//
// String suffix = sysFile.getUrl().substring(sysFile.getUrl().lastIndexOf("."));
//
// Map<String, String> map = new HashMap<>(16);
// map.put(".pdf", "application/pdf");
// map.put(".png", "image/png");
// map.put(".jpg", "image/jpg");
// map.put(".jpeg", "image/jpeg");
//
// String contentType = map.get(suffix);
// if (StringUtils.isNotBlank(contentType)) {
// response.setContentType(contentType);
// }
//
// OutputStream outputStream = response.getOutputStream();
// outputStream.write(aliyunOSSRepository.getBytes(UriUtils.decode(StringUtils.substringAfter(sysFile.getUrl(), "oss/"), "UTF-8")));
// outputStream.close();
// }
private
void
previewFile
(
HttpServletResponse
response
,
String
id
)
throws
IOException
{
SysFile
sysFile
=
sysFileService
.
getById
(
id
);
response
.
setCharacterEncoding
(
"UTF-8"
);
// 设置文件头:最后一个参数是设置下载文件名
response
.
setHeader
(
"Content-disposition"
,
"inline;filename="
+
URLEncoder
.
encode
(
sysFile
.
getFileName
(),
"UTF-8"
));
DataWithMeta
dataWithMeta
=
accessoryRepository
.
getDataWithMeta
(
UriUtils
.
decode
(
StringUtils
.
substringAfter
(
sysFile
.
getUrl
(),
"oss/"
),
"UTF-8"
));
response
.
setContentType
(
dataWithMeta
.
getContentType
());
OutputStream
outputStream
=
response
.
getOutputStream
();
outputStream
.
write
(
dataWithMeta
.
getBytes
());
outputStream
.
close
();
}
@ApiOperation
(
"下载文件(json id)"
)
@RequestMapping
(
value
=
"downloadFile"
,
method
=
{
RequestMethod
.
GET
,
RequestMethod
.
POST
})
public
void
downloadFile
(
HttpServletResponse
response
,
@RequestBody
BaseIdDTO
baseIdDTO
)
throws
IOException
{
downloadFile
(
response
,
baseIdDTO
.
getId
());
}
@ApiOperation
(
"预览文件(json id)"
)
@RequestMapping
(
value
=
"previewFile"
,
method
=
{
RequestMethod
.
GET
,
RequestMethod
.
POST
})
public
void
previewFile
(
HttpServletResponse
response
,
@RequestBody
BaseIdDTO
baseIdDTO
)
throws
IOException
{
previewFile
(
response
,
baseIdDTO
.
getId
());
}
@ApiOperation
(
"下载文件"
)
@RequestMapping
(
value
=
"downloadFileParam"
,
method
=
{
RequestMethod
.
GET
,
RequestMethod
.
POST
})
public
void
downloadFileParam
(
HttpServletResponse
response
,
String
id
)
throws
IOException
{
downloadFile
(
response
,
id
);
}
@ApiOperation
(
"预览文件"
)
@RequestMapping
(
value
=
"previewFileParam"
,
method
=
{
RequestMethod
.
GET
,
RequestMethod
.
POST
})
public
void
previewFileParam
(
HttpServletResponse
response
,
String
id
)
throws
IOException
{
previewFile
(
response
,
id
);
}
@ApiOperation
(
"批量保存"
)
@PostMapping
(
"addList"
)
public
ApiResponseEntity
<?>
addList
(
@RequestBody
List
<
SysFileDTOVO
>
list
)
{
List
<
SysFile
>
fileList
=
BeanDtoVoUtils
.
listVo
(
list
,
SysFile
.
class
);
sysFileService
.
saveBatch
(
fileList
);
return
ApiResponseUtils
.
success
(
StreamUtil
.
map
(
fileList
,
SysFile:
:
getId
));
}
}
saas-module/src/main/java/com/makeit/controller/sys/SaasUploadController.java
0 → 100644
View file @
1960b971
package
com
.
makeit
.
controller
.
sys
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.module.system.dto.SysFileDTOVO
;
import
com.makeit.module.system.dto.UploadKeyDTO
;
import
com.makeit.module.system.entity.SysFile
;
import
com.makeit.module.system.service.SysFileService
;
import
com.makeit.utils.contract.word.WordConverterUtil
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.storage.HwObsRepository
;
import
com.makeit.utils.storage.PostSignature
;
import
com.makeit.utils.sys.FileUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.StopWatch
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.List
;
/**
* @author liuhb
* @date 2021/12/14
*/
@Api
(
tags
=
"saas-文件"
)
@RestController
@RequestMapping
(
"/saas/storage"
)
public
class
SaasUploadController
extends
BaseController
{
@Autowired
private
SysFileService
sysFileService
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SaasUploadController
.
class
);
// @ApiOperation(value = "获取key")
// @PostMapping("getKey")
// public String getKey(@ApiParam(value = "originalFilename") String originalFilename) {
// String fullPath = getFullPath(null, originalFilename);
// return getUri(accessoryRepository.getKey(fullPath));
// }
@ApiOperation
(
value
=
"获取key"
)
@PostMapping
(
"getKey"
)
public
SysFileDTOVO
getKey
(
@RequestBody
UploadKeyDTO
dto
)
{
SysFileDTOVO
sysFile
=
new
SysFileDTOVO
();
sysFile
.
setFileName
(
dto
.
getOriginalFilename
());
String
fullPath
=
getFullPath
(
null
,
dto
.
getOriginalFilename
());
sysFile
.
setUrl
(
getUri
(
HwObsRepository
.
APIURI
+
accessoryRepository
.
getKey
(
fullPath
)));
sysFile
.
setKey
(
accessoryRepository
.
getKey
(
fullPath
));
return
sysFile
;
}
@ApiOperation
(
value
=
"获取签名"
)
@PostMapping
(
"getSignature"
)
public
PostSignature
getPostSignature
()
{
return
accessoryRepository
.
getPostSignature
();
}
private
String
replaceSuffix
(
String
name
)
{
int
index
=
name
.
lastIndexOf
(
"."
);
return
name
.
substring
(
0
,
index
)
+
".pdf"
;
}
private
List
<
SysFile
>
uploadInternal
(
List
<
MultipartFile
>
files
,
String
convertToPdf
)
{
StopWatch
stopWatch
=
new
StopWatch
();
stopWatch
.
start
();
List
<
SysFile
>
sysFileList
=
StreamUtil
.
map
(
files
,
e
->
{
try
{
SysFile
sysFile
=
new
SysFile
();
sysFile
.
setFileName
(
e
.
getOriginalFilename
());
String
fullPath
=
getFullPath
(
null
,
e
.
getOriginalFilename
());
sysFile
.
setUrl
(
getUri
(
storageRepository
(
"1"
).
save
(
e
.
getBytes
(),
fullPath
)));
if
(
"1"
.
equals
(
convertToPdf
))
{
fullPath
=
getFullPath
(
null
,
replaceSuffix
(
e
.
getOriginalFilename
()));
sysFile
.
setPdfUrl
(
getUri
(
storageRepository
(
"1"
).
save
(
WordConverterUtil
.
convert
(
e
.
getInputStream
()),
fullPath
)));
}
sysFile
.
setMime
(
e
.
getContentType
());
return
sysFile
;
}
catch
(
IOException
ex
)
{
throw
new
RuntimeException
(
ex
);
}
});
sysFileService
.
saveBatch
(
sysFileList
);
stopWatch
.
stop
();
logger
.
info
(
"文件上传耗时:{} ms"
,
stopWatch
.
getLastTaskTimeMillis
());
return
sysFileList
;
}
private
List
<
SysFile
>
convertAndUploadInternal
(
List
<
MultipartFile
>
files
)
{
StopWatch
stopWatch
=
new
StopWatch
();
stopWatch
.
start
();
List
<
SysFile
>
sysFileList
=
StreamUtil
.
map
(
files
,
e
->
{
try
{
SysFile
sysFile
=
new
SysFile
();
sysFile
.
setFileName
(
replaceSuffix
(
e
.
getOriginalFilename
()));
String
fullPath
=
getFullPath
(
null
,
replaceSuffix
(
e
.
getOriginalFilename
()));
sysFile
.
setUrl
(
getUri
(
storageRepository
(
"1"
).
save
(
WordConverterUtil
.
convert
(
e
.
getInputStream
()),
fullPath
)));
sysFile
.
setMime
(
e
.
getContentType
());
return
sysFile
;
}
catch
(
IOException
ex
)
{
throw
new
RuntimeException
(
ex
);
}
});
sysFileService
.
saveBatch
(
sysFileList
);
stopWatch
.
stop
();
logger
.
info
(
"文件上传耗时:{} ms"
,
stopWatch
.
getLastTaskTimeMillis
());
return
sysFileList
;
}
@ApiOperation
(
value
=
"统一文件上传"
)
@PostMapping
(
"uploadFile"
)
public
ApiResponseEntity
<
List
<
String
>>
uploadFile
(
@ApiParam
(
value
=
"convertToPdf"
)
@RequestParam
(
defaultValue
=
"0"
)
String
convertToPdf
,
@ApiParam
(
value
=
"files"
)
List
<
MultipartFile
>
files
)
{
List
<
SysFile
>
sysFileList
=
uploadInternal
(
files
,
convertToPdf
);
return
ApiResponseUtils
.
success
(
StreamUtil
.
map
(
sysFileList
,
SysFile:
:
getId
));
}
@ApiOperation
(
value
=
"统一文件上传返回路径"
)
@PostMapping
(
"uploadFileUrl"
)
public
ApiResponseEntity
<
List
<
SysFileDTOVO
>>
uploadFileUrl
(
@ApiParam
(
value
=
"convertToPdf"
)
@RequestParam
(
defaultValue
=
"0"
)
String
convertToPdf
,
@ApiParam
(
value
=
"files"
)
List
<
MultipartFile
>
files
)
{
List
<
SysFile
>
sysFileList
=
uploadInternal
(
files
,
convertToPdf
);
List
<
SysFileDTOVO
>
voList
=
BeanDtoVoUtils
.
listVo
(
sysFileList
,
SysFileDTOVO
.
class
);
FileUtil
.
fillFullUrl
(
voList
);
FileUtil
.
fillPdfFullUrl
(
voList
);
return
ApiResponseUtils
.
success
(
voList
);
}
@ApiOperation
(
value
=
"统一转换为pdf后上传"
)
@PostMapping
(
"convertAndUploadFile"
)
public
ApiResponseEntity
<
List
<
String
>>
convertAndUploadFile
(
@ApiParam
(
value
=
"files"
)
List
<
MultipartFile
>
files
)
{
List
<
SysFile
>
sysFileList
=
convertAndUploadInternal
(
files
);
return
ApiResponseUtils
.
success
(
StreamUtil
.
map
(
sysFileList
,
SysFile:
:
getId
));
}
@ApiOperation
(
value
=
"统一转换为pdf后上传返回路径"
)
@PostMapping
(
"convertAndUploadFileUrl"
)
public
ApiResponseEntity
<
List
<
SysFileDTOVO
>>
convertAndUploadFileUrl
(
@ApiParam
(
value
=
"files"
)
List
<
MultipartFile
>
files
)
{
List
<
SysFile
>
sysFileList
=
convertAndUploadInternal
(
files
);
List
<
SysFileDTOVO
>
voList
=
BeanDtoVoUtils
.
listVo
(
sysFileList
,
SysFileDTOVO
.
class
);
FileUtil
.
fillFullUrl
(
voList
);
//FileUtil.fillPdfFullUrl(voList);
return
ApiResponseUtils
.
success
(
voList
);
}
//下面两个的作用
//返回给前端的路径 要基于下面两个转发
@ApiOperation
(
"获取oss文件"
)
@RequestMapping
(
value
=
"oss/**"
,
method
=
RequestMethod
.
GET
)
public
void
getOssFile
(
HttpServletRequest
req
,
HttpServletResponse
resp
)
throws
Exception
{
// String filepath = req.getRequestURI();
// filepath = UriUtils.decode(StringUtils.substringAfter(filepath, "oss"), "UTF-8");
// //.toString().split("\\?")[0];
// resp.sendRedirect(accessoryRepository.getPermanentURL(filepath));
resp
.
sendRedirect
(
accessoryRepository
.
getPermanentURL
(
req
.
getRequestURI
()));
}
@ApiOperation
(
"获取oss文件(临时路径)"
)
@RequestMapping
(
value
=
"tmp/oss/**"
,
method
=
RequestMethod
.
GET
)
public
void
getOssFileTmpPath
(
HttpServletRequest
req
,
HttpServletResponse
resp
)
throws
Exception
{
// String filepath = req.getRequestURI();
// filepath = UriUtils.decode(StringUtils.substringAfter(filepath, "tmp/oss"), "UTF-8");
// //.toString().split("\\?")[0];
// resp.sendRedirect(accessoryRepository.getTmpURL(filepath));
resp
.
sendRedirect
(
accessoryRepository
.
getTmpURL
(
req
.
getRequestURI
()));
}
//private String name;
// private String nameOrigin;
// private String extName;
// private Long fileSize;
// private String storeType;//video audio img pdf等
// private String relativePath;
}
server-api/server-api.iml
View file @
1960b971
...
@@ -172,7 +172,7 @@
...
@@ -172,7 +172,7 @@
<orderEntry
type=
"library"
name=
"Maven: com.sun.xml.bind:jaxb-impl:2.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.sun.xml.bind:jaxb-impl:2.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:openapiutil:0.1.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:openapiutil:0.1.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.
5
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.
9
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-core:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-core:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.12.0"
level=
"project"
/>
...
...
server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatRoleDTOVO.java
View file @
1960b971
...
@@ -28,6 +28,8 @@ public class PlatRoleDTOVO extends BaseOrgDTO implements Serializable {
...
@@ -28,6 +28,8 @@ public class PlatRoleDTOVO extends BaseOrgDTO implements Serializable {
@ApiModelProperty
(
value
=
"部门名称"
)
@ApiModelProperty
(
value
=
"部门名称"
)
private
String
deptName
;
private
String
deptName
;
private
String
orgPath
;
@TableField
(
exist
=
false
)
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"角色名称集合"
)
@ApiModelProperty
(
value
=
"角色名称集合"
)
private
List
<
String
>
nameList
;
private
List
<
String
>
nameList
;
...
...
server-common/src/main/java/com/makeit/module/iot/service/IotCommonService.java
View file @
1960b971
...
@@ -83,9 +83,20 @@ public class IotCommonService {
...
@@ -83,9 +83,20 @@ public class IotCommonService {
* ]
* ]
* @return
* @return
*/
*/
public
static
IotQueryParam
buildQueryParam
(
int
pageSize
)
{
public
static
IotQueryParam
buildQueryParam
(
int
page
Index
,
int
page
Size
)
{
IotQueryParam
iotQueryParam
=
new
IotQueryParam
();
IotQueryParam
iotQueryParam
=
new
IotQueryParam
();
iotQueryParam
.
setPageIndex
(
0
);
iotQueryParam
.
setPageIndex
(
pageIndex
);
iotQueryParam
.
setPageSize
(
pageSize
);
iotQueryParam
.
setSorts
(
buildSort
(
"timestamp"
));
iotQueryParam
.
setTerms
(
Lists
.
newArrayList
());
return
iotQueryParam
;
}
public
static
IotQueryParam
buildQueryParamByPageIndex
(
int
pageIndex
,
int
pageSize
)
{
IotQueryParam
iotQueryParam
=
new
IotQueryParam
();
iotQueryParam
.
setPageIndex
(
pageIndex
);
iotQueryParam
.
setPageSize
(
pageSize
);
iotQueryParam
.
setPageSize
(
pageSize
);
iotQueryParam
.
setSorts
(
buildSort
(
"timestamp"
));
iotQueryParam
.
setSorts
(
buildSort
(
"timestamp"
));
...
...
server-common/src/main/java/com/makeit/module/iot/service/IotProductDeviceService.java
View file @
1960b971
package
com
.
makeit
.
module
.
iot
.
service
;
package
com
.
makeit
.
module
.
iot
.
service
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
...
@@ -20,14 +22,13 @@ import com.makeit.utils.data.convert.StreamUtil;
...
@@ -20,14 +22,13 @@ import com.makeit.utils.data.convert.StreamUtil;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.utils.old.StringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.RandomUtils
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.time.Duration
;
import
java.time.*
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
/**
* iot产品设备相关接口
* iot产品设备相关接口
...
@@ -40,6 +41,7 @@ public class IotProductDeviceService extends IotCommonService {
...
@@ -40,6 +41,7 @@ public class IotProductDeviceService extends IotCommonService {
public
static
final
String
REPORT_PROPERTY
=
"reportProperty"
;
public
static
final
String
REPORT_PROPERTY
=
"reportProperty"
;
private
static
final
DateTimeFormatter
DEFAULT_FORMATTER
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
);
/**
/**
* 获取设备信息
* 获取设备信息
*/
*/
...
@@ -47,7 +49,7 @@ public class IotProductDeviceService extends IotCommonService {
...
@@ -47,7 +49,7 @@ public class IotProductDeviceService extends IotCommonService {
String
url
=
iotUrl
+
DEVICE_PREFIX_URL
+
"_query"
;
String
url
=
iotUrl
+
DEVICE_PREFIX_URL
+
"_query"
;
// 条件可以自己改
// 条件可以自己改
IotQueryParam
iotQueryParam
=
buildQueryParam
(
10
);
IotQueryParam
iotQueryParam
=
buildQueryParam
(
0
,
10
);
String
body
=
JsonUtil
.
toJson
(
iotQueryParam
);
String
body
=
JsonUtil
.
toJson
(
iotQueryParam
);
...
@@ -129,14 +131,68 @@ public class IotProductDeviceService extends IotCommonService {
...
@@ -129,14 +131,68 @@ public class IotProductDeviceService extends IotCommonService {
}
}
public
List
<
String
>
getLastDayHourRange
(
LocalDateTime
startDateTime
)
{
int
count
=
24
;
List
<
String
>
list
=
Lists
.
newArrayList
();
String
startTime
;
String
endTime
;
for
(
int
i
=
count
;
i
>
0
;
i
--)
{
startTime
=
DateUtil
.
format
(
startDateTime
.
minusHours
(
i
),
DatePattern
.
NORM_DATETIME_PATTERN
);
endTime
=
DateUtil
.
format
(
startDateTime
.
minusHours
(
i
-
1
),
DatePattern
.
NORM_DATETIME_PATTERN
);
list
.
add
(
startTime
+
"~"
+
endTime
);
}
return
list
;
}
public
List
<
DeviceInfoContentBreathe
>
getDeviceLogByTimeRangeBreathe
(
String
deviceId
,
int
pageSize
,
LocalDateTime
startTime
,
LocalDateTime
endTime
)
{
public
List
<
DeviceInfoContentBreathe
>
getDeviceLogByTimeRangeBreathe
(
String
deviceId
,
int
pageSize
,
LocalDateTime
startTime
,
LocalDateTime
endTime
)
{
DateTimeFormatter
dateTimeFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
);
List
<
String
>
lastDayHourRange
=
getLastDayHourRange
(
startTime
);
for
(
String
hour
:
lastDayHourRange
)
{
String
[]
hourRangeArray
=
hour
.
split
(
"~"
);
List
<
DeviceOperationLogEntity
>
deviceOperationLogEntities
=
getDeviceLogByTimeRange
(
deviceId
,
REPORT_PROPERTY
,
5000
,
hourRangeArray
[
0
],
hourRangeArray
[
1
]);
List
<
DeviceInfoContentBreathe
>
deviceInfoContentBreatheList
=
StreamUtil
.
map
(
deviceOperationLogEntities
,
e
->
JsonUtil
.
toObj
((
String
)
e
.
getContent
(),
DeviceInfoContentBreathe
.
class
));
}
long
minute
=
1440
;
List
<
DeviceInfoContentBreathe
>
breatheList
=
Lists
.
newArrayList
();
DeviceInfoContentBreathe
deviceInfoContentBreathe
;
for
(
long
i
=
1
;
i
<=
minute
;
i
++)
{
int
brRandomLong
=
RandomUtils
.
nextInt
(
11
,
28
);
int
hrRandomLong
=
RandomUtils
.
nextInt
(
55
,
125
);
int
movebodyRandomLong
=
RandomUtils
.
nextInt
(
40
,
90
);
deviceInfoContentBreathe
=
new
DeviceInfoContentBreathe
();
LocalDateTime
localDateTime
=
startTime
.
plusMinutes
(
i
);
long
timeStamp
=
localDateTime
.
toInstant
(
ZoneOffset
.
UTC
).
toEpochMilli
();
deviceInfoContentBreathe
.
setTimestamp
(
timeStamp
);
DeviceInfoContentBreathe
.
Properties
properties
=
new
DeviceInfoContentBreathe
.
Properties
();
properties
.
setBr
(
brRandomLong
);
properties
.
setHr
(
hrRandomLong
);
properties
.
setBodymove
(
movebodyRandomLong
);
deviceInfoContentBreathe
.
setProperties
(
properties
);
breatheList
.
add
(
deviceInfoContentBreathe
);
}
/*
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
List<DeviceOperationLogEntity> deviceOperationLogEntityList = getDeviceLogByTimeRange(deviceId, REPORT_PROPERTY, pageSize, dateTimeFormatter.format(startTime), dateTimeFormatter.format(endTime));
List<DeviceOperationLogEntity> deviceOperationLogEntityList = getDeviceLogByTimeRange(deviceId, REPORT_PROPERTY, pageSize, dateTimeFormatter.format(startTime), dateTimeFormatter.format(endTime));
List
<
DeviceInfoContentBreathe
>
deviceInfoContentBreatheList
=
StreamUtil
.
map
(
deviceOperationLogEntityList
,
e
->
JsonUtil
.
toObj
((
String
)
e
.
getContent
(),
DeviceInfoContentBreathe
.
class
));
List<DeviceInfoContentBreathe> deviceInfoContentBreatheList = deviceOperationLogEntityList.stream()
.filter(deviceOperationLogEntity -> deviceOperationLogEntity.getType().contains(REPORT_PROPERTY))
.map(deviceOperationLogEntity -> {
DeviceInfoContentBreathe deviceInfoContentBreathe = JsonUtil.toObj((String) deviceOperationLogEntity.getContent(), DeviceInfoContentBreathe.class);
deviceInfoContentBreathe.setReportTime(formatLongTime(deviceInfoContentBreathe.getTimestamp()));
return deviceInfoContentBreathe;
})
.collect(Collectors.toList());
Map<String, List<DeviceInfoContentBreathe>> minuteMap = StreamUtil.groupBy(deviceInfoContentBreatheList, DeviceInfoContentBreathe::getReportTime);
for (Map.Entry<String, List<DeviceInfoContentBreathe>> entry : minuteMap.entrySet()) {
}*/
return
breatheList
;
}
return
deviceInfoContentBreatheList
;
public
static
String
formatLongTime
(
long
time
)
{
return
DEFAULT_FORMATTER
.
format
(
LocalDateTime
.
ofInstant
(
Instant
.
ofEpochMilli
(
time
),
ZoneId
.
systemDefault
()));
}
}
public
List
<
DeviceInfoContentSpace
>
getDeviceLogByTimeRangeSpace
(
String
deviceId
,
int
pageSize
,
LocalDateTime
startTime
,
LocalDateTime
endTime
)
{
public
List
<
DeviceInfoContentSpace
>
getDeviceLogByTimeRangeSpace
(
String
deviceId
,
int
pageSize
,
LocalDateTime
startTime
,
LocalDateTime
endTime
)
{
...
@@ -217,7 +273,7 @@ public class IotProductDeviceService extends IotCommonService {
...
@@ -217,7 +273,7 @@ public class IotProductDeviceService extends IotCommonService {
* @return
* @return
*/
*/
public
List
<
DeviceOperationLogEntity
>
getDeviceLogByTimeRange
(
String
deviceId
,
String
typeValue
,
int
pageSize
,
String
startTime
,
String
endTime
)
{
public
List
<
DeviceOperationLogEntity
>
getDeviceLogByTimeRange
(
String
deviceId
,
String
typeValue
,
int
pageSize
,
String
startTime
,
String
endTime
)
{
IotQueryParam
iotQueryParam
=
buildQueryParam
(
pageSize
);
IotQueryParam
iotQueryParam
=
buildQueryParam
(
0
,
pageSize
);
List
<
Term
>
terms
=
Lists
.
newArrayList
();
List
<
Term
>
terms
=
Lists
.
newArrayList
();
Term
term1
=
Term
.
builder
()
Term
term1
=
Term
.
builder
()
...
@@ -283,7 +339,7 @@ public class IotProductDeviceService extends IotCommonService {
...
@@ -283,7 +339,7 @@ public class IotProductDeviceService extends IotCommonService {
*/
*/
public
List
<
DeviceOperationLogEntity
>
getDeviceLog
(
String
deviceId
,
int
pageSize
,
String
typeValue
)
{
public
List
<
DeviceOperationLogEntity
>
getDeviceLog
(
String
deviceId
,
int
pageSize
,
String
typeValue
)
{
String
url
=
iotUrl
+
DEVICE_PREFIX_URL
+
deviceId
+
"/logs"
;
String
url
=
iotUrl
+
DEVICE_PREFIX_URL
+
deviceId
+
"/logs"
;
IotQueryParam
iotQueryParam
=
buildQueryParam
(
pageSize
);
IotQueryParam
iotQueryParam
=
buildQueryParam
(
0
,
pageSize
);
if
(
StringUtils
.
isNotEmpty
(
typeValue
))
{
if
(
StringUtils
.
isNotEmpty
(
typeValue
))
{
List
<
Term
>
terms
=
Lists
.
newArrayList
();
List
<
Term
>
terms
=
Lists
.
newArrayList
();
Term
term
=
Term
.
builder
()
Term
term
=
Term
.
builder
()
...
...
server-common/src/main/java/com/makeit/module/iot/vo/analysis/AnalysisVO.java
View file @
1960b971
...
@@ -7,8 +7,12 @@ public class AnalysisVO {
...
@@ -7,8 +7,12 @@ public class AnalysisVO {
private
Integer
totalHr
;
private
Integer
totalHr
;
private
Integer
avgHr
;
private
Integer
avgHr
;
private
Integer
maxHr
;
private
Integer
minHr
;
private
Integer
totalBr
;
private
Integer
totalBr
;
private
Integer
avgBr
;
private
Integer
avgBr
;
private
Integer
maxBr
;
private
Integer
minBr
;
private
Integer
actionCount
=
0
;
// 体动次数
private
Integer
actionCount
=
0
;
// 体动次数
private
Integer
turnedCount
=
0
;
// 翻身次数
private
Integer
turnedCount
=
0
;
// 翻身次数
...
...
server-common/src/main/java/com/makeit/utils/msg/sender/MailMsgSender.java
View file @
1960b971
...
@@ -3,6 +3,7 @@ package com.makeit.utils.msg.sender;
...
@@ -3,6 +3,7 @@ package com.makeit.utils.msg.sender;
import
com.makeit.utils.msg.SendTypeEnum
;
import
com.makeit.utils.msg.SendTypeEnum
;
import
com.makeit.utils.msg.dto.MsgSendDTO
;
import
com.makeit.utils.msg.dto.MsgSendDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.mail.javamail.JavaMailSender
;
import
org.springframework.mail.javamail.JavaMailSender
;
...
@@ -10,6 +11,8 @@ import org.springframework.mail.javamail.MimeMessageHelper;
...
@@ -10,6 +11,8 @@ import org.springframework.mail.javamail.MimeMessageHelper;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.mail.internet.MimeMessage
;
import
javax.mail.internet.MimeMessage
;
import
java.util.Collection
;
import
java.util.Objects
;
@Component
@Component
@Slf4j
@Slf4j
...
@@ -35,7 +38,12 @@ public class MailMsgSender implements IMsgSender {
...
@@ -35,7 +38,12 @@ public class MailMsgSender implements IMsgSender {
MimeMessage
message
=
mailSender
.
createMimeMessage
();
MimeMessage
message
=
mailSender
.
createMimeMessage
();
MimeMessageHelper
helper
=
new
MimeMessageHelper
(
message
,
true
);
MimeMessageHelper
helper
=
new
MimeMessageHelper
(
message
,
true
);
helper
.
setFrom
(
from
);
helper
.
setFrom
(
from
);
helper
.
setTo
(
msgDTO
.
getEmailSet
().
toArray
(
new
String
[
msgDTO
.
getReceiverList
().
size
()]));
Collection
<
String
>
emailSet
=
msgDTO
.
getEmailSet
();
emailSet
.
removeIf
(
Objects:
:
isNull
);
if
(
CollectionUtils
.
isEmpty
(
emailSet
)){
return
;
}
helper
.
setTo
(
emailSet
.
toArray
(
new
String
[
emailSet
.
size
()]));
helper
.
setSubject
(
msgDTO
.
getSubject
());
helper
.
setSubject
(
msgDTO
.
getSubject
());
helper
.
setText
(
msgDTO
.
getOriContent
(),
false
);
helper
.
setText
(
msgDTO
.
getOriContent
(),
false
);
mailSender
.
send
(
message
);
mailSender
.
send
(
message
);
...
...
server-module/server-module.iml
View file @
1960b971
...
@@ -172,7 +172,7 @@
...
@@ -172,7 +172,7 @@
<orderEntry
type=
"library"
name=
"Maven: com.sun.xml.bind:jaxb-impl:2.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.sun.xml.bind:jaxb-impl:2.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:openapiutil:0.1.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:openapiutil:0.1.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.
5
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.
9
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-core:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-core:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.12.0"
level=
"project"
/>
...
...
server-module/src/main/java/com/makeit/module/controller/children/alarm/PlatAlarmRecordChildrenController.java
View file @
1960b971
...
@@ -36,5 +36,12 @@ public class PlatAlarmRecordChildrenController {
...
@@ -36,5 +36,12 @@ public class PlatAlarmRecordChildrenController {
public
ApiResponseEntity
<
PlatAlarmRecordVO
>
view
(
@RequestBody
BaseIdDTO
dto
)
{
public
ApiResponseEntity
<
PlatAlarmRecordVO
>
view
(
@RequestBody
BaseIdDTO
dto
)
{
return
ApiResponseUtils
.
success
(
platAlarmRecordService
.
view
(
dto
.
getId
()));
return
ApiResponseUtils
.
success
(
platAlarmRecordService
.
view
(
dto
.
getId
()));
}
}
@ApiOperation
(
"已读"
)
@PostMapping
(
"read"
)
public
ApiResponseEntity
<
Void
>
read
(
@RequestBody
BaseIdDTO
dto
)
{
platAlarmRecordService
.
read
(
dto
.
getId
());
return
ApiResponseUtils
.
success
();
}
}
}
server-module/src/main/java/com/makeit/module/controller/elder/PlatElderSleepController.java
View file @
1960b971
...
@@ -5,6 +5,7 @@ import com.makeit.common.response.ApiResponseEntity;
...
@@ -5,6 +5,7 @@ import com.makeit.common.response.ApiResponseEntity;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.global.annotation.AuthIgnore
;
import
com.makeit.global.annotation.AuthIgnore
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.service.platform.elder.PlatElderSleepService
;
import
com.makeit.task.IotSyncTask
;
import
com.makeit.task.IotSyncTask
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -28,6 +29,8 @@ public class PlatElderSleepController {
...
@@ -28,6 +29,8 @@ public class PlatElderSleepController {
@Autowired
@Autowired
private
IotSyncTask
iotSyncTask
;
private
IotSyncTask
iotSyncTask
;
@Autowired
private
PlatElderSleepService
platElderSleepService
;
@ApiOperation
(
"测试"
)
@ApiOperation
(
"测试"
)
@PostMapping
(
"test"
)
@PostMapping
(
"test"
)
...
@@ -38,6 +41,15 @@ public class PlatElderSleepController {
...
@@ -38,6 +41,15 @@ public class PlatElderSleepController {
return
ApiResponseUtils
.
success
();
return
ApiResponseUtils
.
success
();
}
}
@ApiOperation
(
"测试"
)
@PostMapping
(
"test1"
)
@AuthIgnore
@TenantIdIgnore
public
ApiResponseEntity
<
Void
>
test1
()
{
platElderSleepService
.
test1
();
return
ApiResponseUtils
.
success
();
}
}
}
...
...
server-service/src/main/java/com/makeit/dto/platform/alarm/PlatAlarmRecordQueryDTO.java
View file @
1960b971
...
@@ -58,6 +58,11 @@ public class PlatAlarmRecordQueryDTO extends BaseTenantDTO {
...
@@ -58,6 +58,11 @@ public class PlatAlarmRecordQueryDTO extends BaseTenantDTO {
//子女关联的老人id
//子女关联的老人id
private
List
<
String
>
elderIdList
;
private
List
<
String
>
elderIdList
;
/**
* 通知家属状态 0 未通知 1 已通知
*/
private
String
noticeStatus
;
}
}
server-service/src/main/java/com/makeit/entity/platform/alarm/PlatAlarmRecord.java
View file @
1960b971
...
@@ -86,6 +86,9 @@ public class PlatAlarmRecord extends BaseBusEntity {
...
@@ -86,6 +86,9 @@ public class PlatAlarmRecord extends BaseBusEntity {
@ApiModelProperty
(
"区域名称"
)
@ApiModelProperty
(
"区域名称"
)
private
String
regionName
;
private
String
regionName
;
@ApiModelProperty
(
value
=
"0-未读 1-已读"
)
private
String
readFlag
;
}
}
...
...
server-service/src/main/java/com/makeit/entity/platform/auth/PlatRoleOrg.java
View file @
1960b971
...
@@ -6,10 +6,12 @@ import lombok.Data;
...
@@ -6,10 +6,12 @@ import lombok.Data;
/**
/**
* 租户端角色部门关联表
* 租户端角色部门关联表
* 角色和所属部门 一对一
* @TableName plat_role_org
* @TableName plat_role_org
*/
*/
@TableName
(
value
=
"plat_role_org"
)
@TableName
(
value
=
"plat_role_org"
)
@Data
@Data
@Deprecated
public
class
PlatRoleOrg
extends
BaseBusEntity
{
public
class
PlatRoleOrg
extends
BaseBusEntity
{
/**
/**
...
...
server-service/src/main/java/com/makeit/service/platform/alarm/PlatAlarmRecordService.java
View file @
1960b971
...
@@ -61,4 +61,6 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
...
@@ -61,4 +61,6 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
void
getElderListByDeviceId
(
PlatAlarmCheckDTO
platAlarmCheckDTO
);
void
getElderListByDeviceId
(
PlatAlarmCheckDTO
platAlarmCheckDTO
);
void
dealAlarm
(
BaseIdDTO
dto
);
void
dealAlarm
(
BaseIdDTO
dto
);
void
read
(
String
id
);
}
}
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
View file @
1960b971
package
com
.
makeit
.
service
.
platform
.
alarm
.
impl
;
package
com
.
makeit
.
service
.
platform
.
alarm
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.common.dto.BaseIdDTO
;
import
com.makeit.common.dto.BaseIdDTO
;
...
@@ -120,6 +122,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -120,6 +122,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
String
[]
split
=
elderId
.
split
(
","
);
String
[]
split
=
elderId
.
split
(
","
);
PlatAlarmRecordQueryDTO
data
=
dto
.
getData
();
PlatAlarmRecordQueryDTO
data
=
dto
.
getData
();
data
.
setElderIdList
(
Arrays
.
asList
(
split
));
data
.
setElderIdList
(
Arrays
.
asList
(
split
));
data
.
setNoticeStatus
(
CommonEnum
.
YES
.
getValue
());
return
page
(
dto
);
return
page
(
dto
);
}
}
...
@@ -139,6 +142,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -139,6 +142,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
qw
.
or
().
apply
(
"find_in_set('"
+
elderId
+
"',elder_ids)"
);
qw
.
or
().
apply
(
"find_in_set('"
+
elderId
+
"',elder_ids)"
);
}
}
})
})
.
eq
(
StringUtils
.
isNotBlank
(
param
.
getNoticeStatus
()),
PlatAlarmRecord:
:
getNoticeStatus
,
param
.
getNoticeStatus
())
.
orderByDesc
(
BaseEntity:
:
getCreateDate
)
.
orderByDesc
(
BaseEntity:
:
getCreateDate
)
;
;
}
}
...
@@ -304,6 +308,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -304,6 +308,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
*/
*/
private
void
noticeByChannel
(
PlatAlarmConfig
alarmConfig
,
PlatAlarmRecord
alarmRecord
,
Set
<
String
>
phoneSet
,
Set
<
String
>
emailSet
,
List
<
SendTypeEnum
>
notifyChannelList
)
{
private
void
noticeByChannel
(
PlatAlarmConfig
alarmConfig
,
PlatAlarmRecord
alarmRecord
,
Set
<
String
>
phoneSet
,
Set
<
String
>
emailSet
,
List
<
SendTypeEnum
>
notifyChannelList
)
{
String
notifyChannel
=
alarmConfig
.
getNotifyChannel
();
String
notifyChannel
=
alarmConfig
.
getNotifyChannel
();
if
(
StringUtils
.
isEmpty
(
notifyChannel
)){
return
;
}
String
[]
split
=
notifyChannel
.
split
(
","
);
String
[]
split
=
notifyChannel
.
split
(
","
);
for
(
String
sendType
:
split
)
{
for
(
String
sendType
:
split
)
{
SendTypeEnum
sendTypeEnum
=
SendTypeEnum
.
getByValue
(
sendType
);
SendTypeEnum
sendTypeEnum
=
SendTypeEnum
.
getByValue
(
sendType
);
...
@@ -347,6 +354,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -347,6 +354,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
platAlarmRecord
.
setRemark
(
platAlarmCheckDTO
.
getRemark
());
platAlarmRecord
.
setRemark
(
platAlarmCheckDTO
.
getRemark
());
platAlarmRecord
.
setAbnormalValue
(
platAlarmCheckDTO
.
getAbnormalValue
());
platAlarmRecord
.
setAbnormalValue
(
platAlarmCheckDTO
.
getAbnormalValue
());
platAlarmRecord
.
setRegionName
(
platElder
.
getRegionName
());
platAlarmRecord
.
setRegionName
(
platElder
.
getRegionName
());
platAlarmRecord
.
setReadFlag
(
CommonEnum
.
NO
.
getValue
());
return
platAlarmRecord
;
return
platAlarmRecord
;
}
}
...
@@ -454,4 +463,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -454,4 +463,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
platAlarmRecord
.
setDealDate
(
LocalDateTime
.
now
());
platAlarmRecord
.
setDealDate
(
LocalDateTime
.
now
());
updateById
(
platAlarmRecord
);
updateById
(
platAlarmRecord
);
}
}
@Override
@Transactional
public
void
read
(
String
id
)
{
LambdaUpdateWrapper
<
PlatAlarmRecord
>
recordLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
PlatAlarmRecord
.
class
)
.
eq
(
BaseEntity:
:
getId
,
id
)
.
set
(
PlatAlarmRecord:
:
getReadFlag
,
CommonEnum
.
YES
.
getValue
());
update
(
recordLambdaUpdateWrapper
);
}
}
}
server-service/src/main/java/com/makeit/service/platform/auth/impl/PlatRoleServiceImpl.java
View file @
1960b971
...
@@ -186,7 +186,10 @@ implements PlatRoleService {
...
@@ -186,7 +186,10 @@ implements PlatRoleService {
PlatRoleDTOVO
vo
=
BeanDtoVoUtils
.
convert
(
getById
(
id
),
PlatRoleDTOVO
.
class
);
PlatRoleDTOVO
vo
=
BeanDtoVoUtils
.
convert
(
getById
(
id
),
PlatRoleDTOVO
.
class
);
JoinUtil
.
join
(
Arrays
.
asList
(
vo
),
platOrgService
,
PlatRoleDTOVO:
:
getOrgId
,
PlatOrg:
:
getId
,
(
r
,
e
)
->
r
.
setDeptName
(
e
.
getName
()));
JoinUtil
.
join
(
Arrays
.
asList
(
vo
),
platOrgService
,
PlatRoleDTOVO:
:
getOrgId
,
PlatOrg:
:
getId
,
(
r
,
e
)
->{
r
.
setDeptName
(
e
.
getName
());
r
.
setOrgPath
(
e
.
getPath
()+
","
+
e
.
getId
());
}
);
List
<
PlatMenuDTOVO
>
assignMenuDTO
=
getAssignMenuDTO
(
id
);
List
<
PlatMenuDTOVO
>
assignMenuDTO
=
getAssignMenuDTO
(
id
);
List
<
PlatMenuDTOVO
>
tree
=
tree
(
assignMenuDTO
);
List
<
PlatMenuDTOVO
>
tree
=
tree
(
assignMenuDTO
);
...
...
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderSleepService.java
View file @
1960b971
...
@@ -14,4 +14,6 @@ import com.makeit.entity.platform.elder.PlatElderSleep;
...
@@ -14,4 +14,6 @@ import com.makeit.entity.platform.elder.PlatElderSleep;
public
interface
PlatElderSleepService
extends
IService
<
PlatElderSleep
>
{
public
interface
PlatElderSleepService
extends
IService
<
PlatElderSleep
>
{
void
elderSleepSleepAnalysisTask
();
void
elderSleepSleepAnalysisTask
();
void
test1
();
}
}
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
View file @
1960b971
...
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.makeit.common.entity.BaseEntity
;
import
com.makeit.common.entity.BaseEntity
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.*
;
import
com.makeit.entity.platform.elder.*
;
import
com.makeit.entity.platform.space.PlatRoomBedDevice
;
import
com.makeit.entity.platform.space.PlatRoomBedDevice
;
import
com.makeit.entity.saas.analysis.*
;
import
com.makeit.entity.saas.analysis.*
;
...
@@ -20,6 +21,7 @@ import com.makeit.module.iot.service.IotProductDeviceService;
...
@@ -20,6 +21,7 @@ import com.makeit.module.iot.service.IotProductDeviceService;
import
com.makeit.module.iot.vo.DeviceOperationLogEntity
;
import
com.makeit.module.iot.vo.DeviceOperationLogEntity
;
import
com.makeit.module.iot.vo.analysis.*
;
import
com.makeit.module.iot.vo.analysis.*
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.elder.*
;
import
com.makeit.service.platform.elder.*
;
import
com.makeit.service.platform.space.PlatRoomBedDeviceService
;
import
com.makeit.service.platform.space.PlatRoomBedDeviceService
;
import
com.makeit.service.saas.*
;
import
com.makeit.service.saas.*
;
...
@@ -27,6 +29,7 @@ import com.makeit.utils.data.convert.JsonUtil;
...
@@ -27,6 +29,7 @@ import com.makeit.utils.data.convert.JsonUtil;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.vo.platform.elder.report.day.PlatSleepRangeVO
;
import
com.makeit.vo.platform.elder.report.day.PlatSleepRangeVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.RandomUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -75,14 +78,20 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -75,14 +78,20 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
@Autowired
@Autowired
private
PlatElderService
platElderService
;
private
PlatElderService
platElderService
;
@Autowired
@Autowired
private
PlatDeviceService
platDeviceService
;
@Autowired
private
PlatElderSleepAnalysisService
platElderSleepAnalysisService
;
private
PlatElderSleepAnalysisService
platElderSleepAnalysisService
;
@Autowired
@Autowired
private
PlatElderBreatheDayStatService
platElderBreatheDayStatService
;
@Autowired
private
PlatElderSleepService
platElderSleepService
;
private
PlatElderSleepService
platElderSleepService
;
@Autowired
@Autowired
private
PlatElderBreatheAbnormalService
platElderBreatheAbnormalService
;
private
PlatElderBreatheAbnormalService
platElderBreatheAbnormalService
;
@Autowired
@Autowired
private
PlatElderBreatheAnalysisService
platElderBreatheAnalysisService
;
private
PlatElderBreatheAnalysisService
platElderBreatheAnalysisService
;
@Autowired
private
PlatElderReportMonthService
platElderReportMonthService
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
@@ -143,12 +152,16 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -143,12 +152,16 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
if
(
elder
==
null
)
{
if
(
elder
==
null
)
{
continue
;
continue
;
}
}
PlatDevice
platDevice
=
platDeviceService
.
getById
(
platRoomBedDevice
.
getDeviceId
());
if
(
platDevice
==
null
)
{
continue
;
}
String
tenantId
=
elder
.
getTenantId
();
String
tenantId
=
elder
.
getTenantId
();
String
reportStartTime
=
""
;
/*
String reportStartTime = "";
String
reportEndTime
=
""
;
String reportEndTime = "";
*/
for
(
String
hourRange
:
dayHourRangeList
)
{
for
(
String
hourRange
:
dayHourRangeList
)
{
String
[]
hourRangeArray
=
hourRange
.
split
(
"~"
);
String
[]
hourRangeArray
=
hourRange
.
split
(
"~"
);
List
<
DeviceOperationLogEntity
>
deviceOperationLogEntities
=
productDeviceService
.
getDeviceLogByTimeRange
(
plat
RoomBedDevice
.
get
DeviceId
(),
"reportProperty"
,
5000
,
hourRangeArray
[
0
],
hourRangeArray
[
1
]);
List
<
DeviceOperationLogEntity
>
deviceOperationLogEntities
=
productDeviceService
.
getDeviceLogByTimeRange
(
plat
Device
.
getOri
DeviceId
(),
"reportProperty"
,
5000
,
hourRangeArray
[
0
],
hourRangeArray
[
1
]);
if
(
CollectionUtils
.
isEmpty
(
deviceOperationLogEntities
))
{
if
(
CollectionUtils
.
isEmpty
(
deviceOperationLogEntities
))
{
continue
;
continue
;
}
}
...
@@ -163,15 +176,14 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -163,15 +176,14 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
Map
<
String
,
List
<
DeviceInfoContentBreathe
>>
minuteMap
=
StreamUtil
.
groupBy
(
deviceInfoContentBreatheList
,
DeviceInfoContentBreathe:
:
getReportTime
);
Map
<
String
,
List
<
DeviceInfoContentBreathe
>>
minuteMap
=
StreamUtil
.
groupBy
(
deviceInfoContentBreatheList
,
DeviceInfoContentBreathe:
:
getReportTime
);
deviceOperationLogEntities
.
clear
();
deviceOperationLogEntities
.
clear
();
List
<
DeviceInfoContentBreathe
>
deviceInfoContentBreathes
;
// 统计每小时的体动和翻身
// 统计每小时的体动和翻身
Map
<
String
,
AnalysisVO
>
statisticsMap
=
Maps
.
newHashMap
();
Map
<
String
,
AnalysisVO
>
statisticsMap
=
Maps
.
newHashMap
();
List
<
DeviceInfoContentBreathe
>
deviceInfoContentBreathes
;
for
(
Map
.
Entry
<
String
,
List
<
DeviceInfoContentBreathe
>>
entry
:
minuteMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
List
<
DeviceInfoContentBreathe
>>
entry
:
minuteMap
.
entrySet
())
{
if
(
StringUtils
.
isEmpty
(
reportStartTime
))
{
/*
if (StringUtils.isEmpty(reportStartTime)) {
reportStartTime = entry.getKey();
reportStartTime = entry.getKey();
}
}
reportEndTime
=
entry
.
getKey
();
reportEndTime = entry.getKey();
*/
deviceInfoContentBreathes
=
entry
.
getValue
();
deviceInfoContentBreathes
=
entry
.
getValue
();
DeviceInfoContentBreathe
.
Properties
breatheProperties
;
DeviceInfoContentBreathe
.
Properties
breatheProperties
;
...
@@ -179,6 +191,11 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -179,6 +191,11 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
// 记录总呼吸率和总心率
// 记录总呼吸率和总心率
int
totalBr
=
0
;
int
totalBr
=
0
;
int
maxBr
=
0
;
int
minBr
=
0
;
int
maxHr
=
0
;
int
minHr
=
0
;
int
totalHr
=
0
;
int
totalHr
=
0
;
// 呼吸暂停
// 呼吸暂停
...
@@ -329,6 +346,20 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -329,6 +346,20 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
hrSlowSecond
=
0
;
hrSlowSecond
=
0
;
}
}
if
(
br
>
maxBr
)
{
maxBr
=
br
;
}
if
(
br
<
minBr
)
{
minBr
=
br
;
}
if
(
hr
>
maxHr
)
{
maxHr
=
hr
;
}
if
(
hr
<
minHr
)
{
minHr
=
hr
;
}
totalBr
+=
br
;
totalBr
+=
br
;
totalHr
+=
hr
;
totalHr
+=
hr
;
}
}
...
@@ -359,8 +390,13 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -359,8 +390,13 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
analysisVO
.
setTotalBr
(
totalBr
);
analysisVO
.
setTotalBr
(
totalBr
);
analysisVO
.
setAvgBr
(
totalBr
/
60
);
analysisVO
.
setAvgBr
(
totalBr
/
60
);
analysisVO
.
setMaxBr
(
maxBr
);
analysisVO
.
setMinBr
(
minBr
);
analysisVO
.
setTotalHr
(
totalHr
);
analysisVO
.
setTotalHr
(
totalHr
);
analysisVO
.
setAvgHr
(
totalHr
/
60
);
analysisVO
.
setAvgHr
(
totalHr
/
60
);
analysisVO
.
setMaxHr
(
maxHr
);
analysisVO
.
setMinHr
(
minHr
);
analysisVO
.
setActionCount
(
bodymoveCount
);
analysisVO
.
setActionCount
(
bodymoveCount
);
...
@@ -464,10 +500,10 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -464,10 +500,10 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
int
timeHourRange
=
24
;
int
timeHourRange
=
24
;
if
(
StringUtils
.
isNotEmpty
(
reportStartTime
)
&&
StringUtils
.
isNotEmpty
(
reportEndTime
))
{
/*
if (StringUtils.isNotEmpty(reportStartTime) && StringUtils.isNotEmpty(reportEndTime)) {
Long durationRange = getDurationRange(reportStartTime, reportEndTime);
Long durationRange = getDurationRange(reportStartTime, reportEndTime);
timeHourRange = (int) (durationRange / 60);
timeHourRange = (int) (durationRange / 60);
}
}
*/
// 判断是否满足配置的呼吸心率异常类型
// 判断是否满足配置的呼吸心率异常类型
BigDecimal
dayBrStopRate
=
brStopCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
brStopCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayBrStopRate
=
brStopCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
brStopCount
),
2
,
RoundingMode
.
HALF_UP
);
...
@@ -559,9 +595,10 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -559,9 +595,10 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
platElderBreatheAnalysis
.
setHappenDate
(
currentDate
);
platElderBreatheAnalysis
.
setHappenDate
(
currentDate
);
platElderBreatheAnalysis
.
setTenantId
(
tenantId
);
platElderBreatheAnalysis
.
setTenantId
(
tenantId
);
platElderBreatheAnalysis
.
setBreatheEvaluate
(
diseaseReport
==
null
?
""
:
diseaseReport
.
getEvaluate
());
platElderBreatheAnalysis
.
setBreatheEvaluate
(
diseaseReport
==
null
?
""
:
diseaseReport
.
getEvaluate
());
platElderBreatheAnalysisService
.
save
(
platElderBreatheAnalysis
);
//
platElderBreatheAnalysisService.save(platElderBreatheAnalysis);
// 记录长者呼吸心率的异常事件
// 记录长者呼吸心率的异常事件
List
<
PlatElderBreatheAbnormal
>
platElderBreatheAbnormalList
=
Lists
.
newArrayList
();
PlatElderBreatheAbnormal
platElderBreatheAbnormal
;
PlatElderBreatheAbnormal
platElderBreatheAbnormal
;
for
(
BreatheAbnormalVO
breatheAbnormalVO
:
breatheAbnormalVOList
)
{
for
(
BreatheAbnormalVO
breatheAbnormalVO
:
breatheAbnormalVOList
)
{
platElderBreatheAbnormal
=
new
PlatElderBreatheAbnormal
();
platElderBreatheAbnormal
=
new
PlatElderBreatheAbnormal
();
...
@@ -571,9 +608,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -571,9 +608,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
platElderBreatheAbnormal
.
setHappenTime
(
breatheAbnormalVO
.
getHappenTime
());
platElderBreatheAbnormal
.
setHappenTime
(
breatheAbnormalVO
.
getHappenTime
());
platElderBreatheAbnormal
.
setValue
(
breatheAbnormalVO
.
getValue
());
platElderBreatheAbnormal
.
setValue
(
breatheAbnormalVO
.
getValue
());
platElderBreatheAbnormal
.
setTenantId
(
tenantId
);
platElderBreatheAbnormal
.
setTenantId
(
tenantId
);
platElderBreatheAbnormal
Service
.
save
(
platElderBreatheAbnormal
);
platElderBreatheAbnormal
List
.
add
(
platElderBreatheAbnormal
);
}
}
// platElderBreatheAbnormalService.saveBatch(platElderBreatheAbnormalList);
int
totalActionCount
=
0
;
int
totalActionCount
=
0
;
...
@@ -585,10 +622,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -585,10 +622,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
// 判断睡觉时间
// 判断睡觉时间
String
startSleepTime
=
null
;
// 入睡时间开始
String
startSleepTime
=
null
;
// 入睡时间开始
int
sleepMinute
=
0
;
int
sleepMinute
=
0
;
int
currentSleepTimeDuration
=
0
;
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
AnalysisVO
analysisVO
=
entry
.
getValue
();
AnalysisVO
analysisVO
=
entry
.
getValue
();
if
(!
analysisVO
.
getIsAction
())
{
if
(!
analysisVO
.
getIsAction
())
{
if
(
StringUtils
.
isEmpty
(
startSleepTime
))
{
if
(
StringUtils
.
isEmpty
(
startSleepTime
))
{
startSleepTime
=
entry
.
getKey
();
startSleepTime
=
entry
.
getKey
();
...
@@ -610,6 +646,25 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -610,6 +646,25 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
sleepMinute
=
0
;
sleepMinute
=
0
;
}
}
TreeMap
<
String
,
TreeMap
<
String
,
AnalysisVO
>>
sleepTypeMap
=
new
TreeMap
<>();
for
(
SleepTimeAnalysisVO
timeAnalysisVO
:
sleepTimeAnalysisVOList
)
{
boolean
startTimeFlag
=
false
;
TreeMap
<
String
,
AnalysisVO
>
sleepTotalMap
=
new
TreeMap
<>();
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
if
(
entry
.
getKey
().
equals
(
timeAnalysisVO
.
getStartTime
()))
{
startTimeFlag
=
true
;
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
}
if
(
entry
.
getKey
().
equals
(
timeAnalysisVO
.
getEndTime
()))
{
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
startTimeFlag
=
false
;
}
if
(
startTimeFlag
)
{
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
}
sleepTypeMap
.
put
(
timeAnalysisVO
.
getType
(),
sleepTotalMap
);
}
}
// 判断起床时间
// 判断起床时间
String
startGetupTime
=
null
;
// 起床时间开始
String
startGetupTime
=
null
;
// 起床时间开始
...
@@ -666,82 +721,93 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -666,82 +721,93 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
int
sleepDeepMinute
=
0
;
int
sleepDeepMinute
=
0
;
String
startSleepDeepTime
=
null
;
// 入睡时间开始
String
startSleepDeepTime
=
null
;
// 入睡时间开始
// 判断深度睡眠时间
// 判断深度睡眠时间
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
TreeMap
<
String
,
AnalysisVO
>>
entry
:
sleepTypeMap
.
entrySet
())
{
AnalysisVO
analysisVO
=
entry
.
getValue
();
TreeMap
<
String
,
AnalysisVO
>
sleepMap
=
entry
.
getValue
();
totalActionCount
+=
analysisVO
.
getActionCount
();
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
voEntry
:
sleepMap
.
entrySet
())
{
totalTurnedCount
+=
analysisVO
.
getTurnedCount
();
AnalysisVO
analysisVO
=
voEntry
.
getValue
();
if
(
analysisVO
.
getActionCount
()
==
sleepDeepActionThreshold
&&
analysisVO
.
getTurnedCount
()
==
sleepDeepActionThreshold
totalActionCount
+=
analysisVO
.
getActionCount
();
&&
sleepDeepBreatheMin
<=
analysisVO
.
getAvgBr
()
&&
sleepDeepBreatheMax
>=
analysisVO
.
getAvgBr
())
{
totalTurnedCount
+=
analysisVO
.
getTurnedCount
();
if
(
StringUtils
.
isEmpty
(
startSleepDeepTime
))
{
if
(
analysisVO
.
getActionCount
()
==
sleepDeepActionThreshold
&&
analysisVO
.
getTurnedCount
()
==
sleepDeepActionThreshold
startSleepDeepTime
=
entry
.
getKey
();
&&
sleepDeepBreatheMin
<=
analysisVO
.
getAvgBr
()
&&
sleepDeepBreatheMax
>=
analysisVO
.
getAvgBr
())
{
if
(
StringUtils
.
isEmpty
(
startSleepDeepTime
))
{
startSleepDeepTime
=
entry
.
getKey
();
}
sleepDeepMinute
++;
continue
;
}
}
sleepDeepMinute
++;
if
(
StringUtils
.
isEmpty
(
startSleepDeepTime
)
&&
sleepDeepMinute
==
0
)
{
continue
;
continue
;
}
}
if
(
StringUtils
.
isEmpty
(
startSleepDeepTime
)
&&
sleepDeepMinute
==
0
)
{
if
(
sleepDeepMinute
>
sleepDeepActionTimeBegin
)
{
continue
;
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
()
;
}
sleepTimeAnalysisVO
.
setStartTime
(
startSleepDeepTime
);
if
(
sleepDeepMinute
>
sleepDeepActionTimeBegin
)
{
sleepTimeAnalysisVO
.
setEndTime
(
entry
.
getKey
());
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
(
);
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
()
);
sleepTimeAnalysisVO
.
setStartTime
(
startSleepDeepTime
);
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
sleepTimeAnalysisVO
.
setEndTime
(
entry
.
getKey
());
}
s
leepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
())
;
s
tartSleepDeepTime
=
null
;
sleep
TimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
)
;
sleep
DeepMinute
=
0
;
}
}
startSleepDeepTime
=
null
;
sleepDeepMinute
=
0
;
}
}
// 中度睡眠
// 中度睡眠
int
sleepMidMinute
=
0
;
int
sleepMidMinute
=
0
;
String
startSleepMidTime
=
null
;
// 入睡时间开始
String
startSleepMidTime
=
null
;
// 入睡时间开始
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
TreeMap
<
String
,
AnalysisVO
>>
entry
:
sleepTypeMap
.
entrySet
())
{
AnalysisVO
analysisVO
=
entry
.
getValue
();
TreeMap
<
String
,
AnalysisVO
>
sleepMap
=
entry
.
getValue
();
if
(
analysisVO
.
getActionCount
()
<
sleepModerateActionThreshold
&&
analysisVO
.
getTurnedCount
()
<
sleepModerateActionThreshold
)
{
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
voEntry
:
sleepMap
.
entrySet
())
{
if
(
StringUtils
.
isEmpty
(
startSleepMidTime
))
{
AnalysisVO
analysisVO
=
voEntry
.
getValue
();
startSleepMidTime
=
entry
.
getKey
();
if
(
analysisVO
.
getActionCount
()
<
sleepModerateActionThreshold
&&
analysisVO
.
getTurnedCount
()
<
sleepModerateActionThreshold
)
{
if
(
StringUtils
.
isEmpty
(
startSleepMidTime
))
{
startSleepMidTime
=
entry
.
getKey
();
}
sleepMidMinute
++;
continue
;
}
}
sleepMidMinute
++;
if
(
StringUtils
.
isEmpty
(
startSleepMidTime
)
&&
sleepMidMinute
==
0
)
{
continue
;
continue
;
}
}
if
(
StringUtils
.
isEmpty
(
startSleepMidTime
)
&&
sleepMidMinute
==
0
)
{
if
(
sleepMidMinute
>
sleepModerateActionTimeBegin
)
{
continue
;
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
()
;
}
sleepTimeAnalysisVO
.
setStartTime
(
startSleepMidTime
);
if
(
sleepMidMinute
>
sleepModerateActionTimeBegin
)
{
sleepTimeAnalysisVO
.
setEndTime
(
entry
.
getKey
());
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
(
);
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
()
);
sleepTimeAnalysisVO
.
setStartTime
(
startSleepMidTime
);
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
sleepTimeAnalysisVO
.
setEndTime
(
entry
.
getKey
());
}
s
leepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
())
;
s
tartSleepMidTime
=
null
;
sleep
TimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
)
;
sleep
MidMinute
=
0
;
}
}
startSleepMidTime
=
null
;
sleepMidMinute
=
0
;
}
}
// 清醒
// 清醒
int
awakeMinute
=
0
;
int
awakeMinute
=
0
;
String
startAwakeTime
=
null
;
// 入睡时间开始
String
startAwakeTime
=
null
;
// 入睡时间开始
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
TreeMap
<
String
,
AnalysisVO
>>
entry
:
sleepTypeMap
.
entrySet
())
{
AnalysisVO
analysisVO
=
entry
.
getValue
();
TreeMap
<
String
,
AnalysisVO
>
sleepMap
=
entry
.
getValue
();
if
(
analysisVO
.
getAwakeMinuteActionFlag
())
{
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
voEntry
:
sleepMap
.
entrySet
())
{
if
(
StringUtils
.
isEmpty
(
startAwakeTime
))
{
AnalysisVO
analysisVO
=
voEntry
.
getValue
();
startAwakeTime
=
entry
.
getKey
();
if
(
analysisVO
.
getAwakeMinuteActionFlag
())
{
if
(
StringUtils
.
isEmpty
(
startAwakeTime
))
{
startAwakeTime
=
entry
.
getKey
();
}
awakeMinute
++;
continue
;
}
}
awakeMinute
++;
if
(
StringUtils
.
isEmpty
(
startAwakeTime
)
&&
awakeMinute
==
0
)
{
continue
;
continue
;
}
}
if
(
StringUtils
.
isEmpty
(
startAwakeTime
)
&&
awakeMinute
==
0
)
{
if
(
awakeMinute
>
sleepDeepActionTimeBegin
)
{
continue
;
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
()
;
}
sleepTimeAnalysisVO
.
setStartTime
(
startAwakeTime
);
if
(
awakeMinute
>
sleepDeepActionTimeBegin
)
{
sleepTimeAnalysisVO
.
setEndTime
(
entry
.
getKey
());
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
(
);
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SOBER
.
getCode
()
);
sleepTimeAnalysisVO
.
setStartTime
(
startAwakeTime
);
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
sleepTimeAnalysisVO
.
setEndTime
(
entry
.
getKey
());
}
s
leepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SOBER
.
getCode
())
;
s
tartAwakeTime
=
null
;
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
)
;
awakeMinute
=
0
;
}
}
startAwakeTime
=
null
;
awakeMinute
=
0
;
}
}
Map
<
String
,
List
<
SleepTimeAnalysisVO
>>
sleepMap
=
StreamUtil
.
groupBy
(
sleepTimeAnalysisVOList
,
SleepTimeAnalysisVO:
:
getType
);
Map
<
String
,
List
<
SleepTimeAnalysisVO
>>
sleepMap
=
StreamUtil
.
groupBy
(
sleepTimeAnalysisVOList
,
SleepTimeAnalysisVO:
:
getType
);
...
@@ -775,6 +841,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -775,6 +841,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
timeAnalysisVO
.
setInterval
(
durationRange
);
timeAnalysisVO
.
setInterval
(
durationRange
);
LocalDateTime
startDateTime
=
LocalDateTime
.
parse
(
startTime
,
DEFAULT_FORMATTER
);
LocalDateTime
startDateTime
=
LocalDateTime
.
parse
(
startTime
,
DEFAULT_FORMATTER
);
LocalDateTime
endDateTime
=
LocalDateTime
.
parse
(
endTime
,
DEFAULT_FORMATTER
);
LocalDateTime
endDateTime
=
LocalDateTime
.
parse
(
endTime
,
DEFAULT_FORMATTER
);
boolean
lightSleepFlag
=
true
;
// 如果不满足下面条件,就默认都是浅睡
for
(
SleepTimeAnalysisVO
otherSleepTime
:
sleepTimeAnalysisVOList
)
{
for
(
SleepTimeAnalysisVO
otherSleepTime
:
sleepTimeAnalysisVOList
)
{
if
(
otherSleepTime
.
getType
().
equals
(
SleepTypeEnum
.
SLEEP
.
getCode
())
||
otherSleepTime
.
getType
().
equals
(
SleepTypeEnum
.
GETUP
.
getCode
()))
{
if
(
otherSleepTime
.
getType
().
equals
(
SleepTypeEnum
.
SLEEP
.
getCode
())
||
otherSleepTime
.
getType
().
equals
(
SleepTypeEnum
.
GETUP
.
getCode
()))
{
continue
;
continue
;
...
@@ -787,18 +854,24 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -787,18 +854,24 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
(
endDateTime
.
isAfter
(
endDeepDateTime
)
||
endDateTime
.
equals
(
endDeepDateTime
)))
{
(
endDateTime
.
isAfter
(
endDeepDateTime
)
||
endDateTime
.
equals
(
endDeepDateTime
)))
{
if
(
otherSleepTime
.
getType
().
equals
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
()))
{
if
(
otherSleepTime
.
getType
().
equals
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
()))
{
deepList
.
add
(
otherSleepTime
);
deepList
.
add
(
otherSleepTime
);
}
}
else
if
(
otherSleepTime
.
getType
().
equals
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
()))
{
if
(
otherSleepTime
.
getType
().
equals
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
()))
{
midList
.
add
(
otherSleepTime
);
midList
.
add
(
otherSleepTime
);
}
}
else
if
(
timeAnalysisVO
.
getType
().
equals
(
SleepTypeEnum
.
SOBER
.
getCode
()))
{
if
(
timeAnalysisVO
.
getType
().
equals
(
SleepTypeEnum
.
SLEEP_LIGHTNESS
.
getCode
()))
{
lightList
.
add
(
otherSleepTime
);
}
if
(
timeAnalysisVO
.
getType
().
equals
(
SleepTypeEnum
.
SOBER
.
getCode
()))
{
soberList
.
add
(
otherSleepTime
);
soberList
.
add
(
otherSleepTime
);
}
else
{
otherSleepTime
.
setType
(
SleepTypeEnum
.
SLEEP_LIGHTNESS
.
getCode
());
lightList
.
add
(
otherSleepTime
);
}
}
lightSleepFlag
=
false
;
}
}
}
}
if
(
lightSleepFlag
)
{
SleepTimeAnalysisVO
lightSleepTime
=
new
SleepTimeAnalysisVO
();
lightSleepTime
.
setType
(
SleepTypeEnum
.
SLEEP_LIGHTNESS
.
getCode
());
lightSleepTime
.
setStartTime
(
startTime
);
lightSleepTime
.
setEndTime
(
endTime
);
lightList
.
add
(
lightSleepTime
);
}
sleepTimeAnalysis
.
setDeepList
(
deepList
);
sleepTimeAnalysis
.
setDeepList
(
deepList
);
sleepTimeAnalysis
.
setInterval
(
durationRange
);
sleepTimeAnalysis
.
setInterval
(
durationRange
);
sleepTimeAnalysis
.
setMidList
(
midList
);
sleepTimeAnalysis
.
setMidList
(
midList
);
...
@@ -957,7 +1030,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -957,7 +1030,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
elderSleep
.
setTenantId
(
tenantId
);
elderSleep
.
setTenantId
(
tenantId
);
}
}
// TODO 起床时间和入睡时间
// TODO 起床时间和入睡时间
platElderSleepService
.
saveBatch
(
elderSleepList
);
//
platElderSleepService.saveBatch(elderSleepList);
EvaluateReportVO
elderReport
=
saasElderReportConfigService
.
getByScore
(
totalScore
);
EvaluateReportVO
elderReport
=
saasElderReportConfigService
.
getByScore
(
totalScore
);
...
@@ -975,7 +1048,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -975,7 +1048,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
elderSleepAnalysis
.
setSleepResult
(
sleepReport
.
getResult
());
elderSleepAnalysis
.
setSleepResult
(
sleepReport
.
getResult
());
elderSleepAnalysis
.
setTenantId
(
tenantId
);
elderSleepAnalysis
.
setTenantId
(
tenantId
);
elderSleepAnalysis
.
setSleepEvaluate
(
elderReport
==
null
?
""
:
elderReport
.
getEvaluate
());
elderSleepAnalysis
.
setSleepEvaluate
(
elderReport
==
null
?
""
:
elderReport
.
getEvaluate
());
platElderSleepAnalysisService
.
save
(
elderSleepAnalysis
);
//
platElderSleepAnalysisService.save(elderSleepAnalysis);
}
}
}
}
...
@@ -1008,4 +1081,126 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -1008,4 +1081,126 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
return
list
;
return
list
;
}
}
public
static
void
main
(
String
[]
args
)
{
int
days
=
30
;
DateTimeFormatter
timeFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
LocalDateTime
localDateTime
=
LocalDateTime
.
now
().
minusDays
(
28
);
for
(
int
i
=
0
;
i
<
days
;
i
++)
{
int
i1
=
RandomUtils
.
nextInt
(
0
,
4
);
System
.
out
.
println
(
i1
);
localDateTime
=
localDateTime
.
plusDays
(
1
);
String
currentDate
=
localDateTime
.
format
(
timeFormatter
);
System
.
out
.
println
(
currentDate
);
}
}
@Override
public
void
test1
()
{
int
days
=
30
;
LocalDateTime
localDateTime
=
LocalDateTime
.
now
().
minusDays
(
28
);
List
<
String
>
timeRangeList
=
Lists
.
newArrayList
();
PlatElder
elder
=
platElderService
.
getById
(
"1704706233484742658"
);
DateTimeFormatter
timeFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
int
sleepNumber
=
6
;
SleepTypeEnum
[]
values
=
SleepTypeEnum
.
values
();
for
(
int
i
=
0
;
i
<
days
;
i
++)
{
String
lastDate
=
localDateTime
.
format
(
timeFormatter
);
localDateTime
=
localDateTime
.
plusDays
(
1
);
String
currentDate
=
localDateTime
.
format
(
timeFormatter
);
PlatElderSleep
platElderSleep
=
new
PlatElderSleep
();
String
sleepStartTime
=
lastDate
+
" 22:00"
;
String
sleepEndTime
=
currentDate
+
" 08:00"
;
LocalDateTime
startTime
=
LocalDateTime
.
parse
(
sleepStartTime
,
DEFAULT_FORMATTER
);
LocalDateTime
endTime
=
LocalDateTime
.
parse
(
sleepEndTime
,
DEFAULT_FORMATTER
);
platElderSleep
.
setStartSleep
(
startTime
);
platElderSleep
.
setEndSleep
(
endTime
);
platElderSleep
.
setElderSleepType
(
1
);
platElderSleep
.
setElderId
(
elder
.
getId
());
platElderSleep
.
setHappenDate
(
currentDate
);
platElderSleep
.
setTenantId
(
elder
.
getTenantId
());
List
<
PlatSleepRangeVO
>
rangeVOList
=
Lists
.
newArrayList
();
String
start
=
""
;
String
end
=
""
;
for
(
int
i1
=
0
;
i1
<
sleepNumber
;
i1
++)
{
PlatSleepRangeVO
rangeVO
=
new
PlatSleepRangeVO
();
int
random
=
RandomUtils
.
nextInt
(
0
,
4
);
long
randomLong
=
RandomUtils
.
nextLong
(
1
,
3
);
SleepTypeEnum
sleepTypeEnum
=
values
[
random
];
rangeVO
.
setSleepType
(
sleepTypeEnum
.
getCode
());
start
=
startTime
.
format
(
DEFAULT_FORMATTER
);
LocalDateTime
dateTime
=
startTime
.
plusHours
(
randomLong
);
end
=
dateTime
.
format
(
DEFAULT_FORMATTER
);
rangeVO
.
setStartTime
(
start
);
rangeVO
.
setEndTime
(
end
);
startTime
=
LocalDateTime
.
parse
(
end
,
DEFAULT_FORMATTER
);
rangeVOList
.
add
(
rangeVO
);
}
platElderSleep
.
setSleepRecord
(
rangeVOList
);
//platElderSleepService.save(platElderSleep);
PlatElderSleepAnalysis
elderSleepAnalysis
=
new
PlatElderSleepAnalysis
();
elderSleepAnalysis
.
setElderId
(
elder
.
getId
());
elderSleepAnalysis
.
setActionCount
(
700
);
elderSleepAnalysis
.
setTurnedCount
(
500
);
elderSleepAnalysis
.
setHappenDate
(
currentDate
);
elderSleepAnalysis
.
setSleepScore
(
"80"
);
elderSleepAnalysis
.
setSleepTime
(
"600"
);
elderSleepAnalysis
.
setRestTime
(
"840"
);
elderSleepAnalysis
.
setSleepResult
(
"良好"
);
elderSleepAnalysis
.
setTenantId
(
elder
.
getTenantId
());
elderSleepAnalysis
.
setSleepEvaluate
(
"不错"
);
//platElderSleepAnalysisService.save(elderSleepAnalysis);
PlatElderBreatheDayStat
elderBreatheDayStat
=
new
PlatElderBreatheDayStat
();
elderBreatheDayStat
.
setElderId
(
elder
.
getId
());
elderBreatheDayStat
.
setDeviceId
(
"1704705639248334849"
);
elderBreatheDayStat
.
setOriDeviceId
(
"218A00XE26691FC"
);
elderBreatheDayStat
.
setDay
(
localDateTime
.
toLocalDate
());
elderBreatheDayStat
.
setHeartRateMax
(
72
);
elderBreatheDayStat
.
setHeartRateMax
(
60
);
elderBreatheDayStat
.
setHeartRateMax
(
65
);
elderBreatheDayStat
.
setRespiratoryRateAvg
(
14
);
elderBreatheDayStat
.
setRespiratoryRateMax
(
18
);
elderBreatheDayStat
.
setRespiratoryRateMin
(
12
);
elderBreatheDayStat
.
setTenantId
(
elder
.
getTenantId
());
//platElderBreatheDayStatService.save(elderBreatheDayStat);
PlatElderReportMonth
platElderReportMonth
=
new
PlatElderReportMonth
();
platElderReportMonth
.
setElderId
(
elder
.
getId
());
platElderReportMonth
.
setDay
(
localDateTime
.
toLocalDate
());
platElderReportMonth
.
setTenantId
(
elder
.
getTenantId
());
platElderReportMonth
.
setSleepResult
(
"良好"
);
platElderReportMonth
.
setRespiratoryExceptionCount
(
0
);
platElderReportMonth
.
setHeartExceptionCount
(
0
);
platElderReportMonth
.
setBehaviorExceptionCount
(
0
);
platElderReportMonth
.
setHeartRate
(
80
);
platElderReportMonth
.
setRespiratoryRate
(
20
);
platElderReportMonth
.
setFailCount
(
0
);
platElderReportMonthService
.
save
(
platElderReportMonth
);
PlatElderBreatheAnalysis
platElderBreatheAnalysis
=
new
PlatElderBreatheAnalysis
();
platElderBreatheAnalysis
.
setElderId
(
elder
.
getId
());
platElderBreatheAnalysis
.
setAvgBreatheRate
(
"65"
);
platElderBreatheAnalysis
.
setAvgHeartRate
(
"14"
);
platElderBreatheAnalysis
.
setBreatheScore
(
"60"
);
platElderBreatheAnalysis
.
setBreatheResult
(
"良好"
);
platElderBreatheAnalysis
.
setHappenDate
(
currentDate
);
platElderBreatheAnalysis
.
setTenantId
(
elder
.
getTenantId
());
platElderBreatheAnalysis
.
setBreatheEvaluate
(
"还不错"
);
//platElderBreatheAnalysisService.save(platElderBreatheAnalysis);
}
}
}
}
server-service/src/main/java/com/makeit/service/platform/space/impl/PlatRoomBedDeviceServiceImpl.java
View file @
1960b971
...
@@ -97,12 +97,21 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
...
@@ -97,12 +97,21 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
PlatSpaceDeviceQueryDTO
dto
=
pageReqDTO
.
getData
();
PlatSpaceDeviceQueryDTO
dto
=
pageReqDTO
.
getData
();
LambdaQueryWrapper
<
PlatRoomBedDevice
>
queryWrapper1
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
PlatRoomBedDevice
>
queryWrapper1
=
new
LambdaQueryWrapper
<>();
queryWrapper1
.
select
(
PlatRoomBedDevice:
:
getDeviceId
);
// queryWrapper1.select(PlatRoomBedDevice::getDeviceId);
List
<
PlatRoomBedDevice
>
list
=
list
(
queryWrapper1
);
List
<
PlatRoomBedDevice
>
list1
=
new
ArrayList
<>();
if
(
CommonEnum
.
NO
.
getValue
().
equals
(
dto
.
getIsRoom
()))
{
if
(
CommonEnum
.
NO
.
getValue
().
equals
(
dto
.
getIsRoom
()))
{
queryWrapper1
.
isNotNull
(
PlatRoomBedDevice:
:
getBedId
);
queryWrapper1
.
eq
(
PlatRoomBedDevice:
:
getRoomId
,
dto
.
getRoomId
());
list
.
forEach
(
item
->{
if
(!
item
.
getRoomId
().
equals
(
dto
.
getRoomId
())
||
(
item
.
getRoomId
().
equals
(
dto
.
getRoomId
())
&&
StringUtil
.
isEmpty
(
item
.
getBedId
()))){
list1
.
add
(
item
);
}
});
}
}
List
<
PlatRoomBedDevice
>
list
=
list
(
queryWrapper1
);
List
<
String
>
listEquipmentIds
=
list
.
stream
().
map
(
item
->
item
.
getDeviceId
()).
collect
(
Collectors
.
toList
());
List
<
String
>
listEquipmentIds
=
list
.
stream
().
map
(
item
->
item
.
getDeviceId
()).
collect
(
Collectors
.
toList
());
String
orgId
=
""
;
String
orgId
=
""
;
...
...
server-service/src/main/java/com/makeit/service/platform/space/impl/PlatSpaceServiceImpl.java
View file @
1960b971
...
@@ -107,12 +107,16 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
...
@@ -107,12 +107,16 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
space
.
setAddress
(
dto
.
getAddress
());
space
.
setAddress
(
dto
.
getAddress
());
space
.
setLatitude
(
dto
.
getLatitude
());
space
.
setLatitude
(
dto
.
getLatitude
());
space
.
setLongitude
(
dto
.
getLongitude
());
space
.
setLongitude
(
dto
.
getLongitude
());
space
.
setParentId
(
dto
.
getParentId
());
if
(
StringUtil
.
isEmpty
(
dto
.
getParentPath
())){
if
(
StringUtil
.
isEmpty
(
dto
.
getParentPath
())){
space
.
setParentPath
(
null
);
space
.
setParentPath
(
null
);
}
else
{
}
else
{
space
.
setParentPath
(
dto
.
getParentPath
());
space
.
setParentPath
(
dto
.
getParentPath
());
}
}
if
(
StringUtil
.
isEmpty
(
dto
.
getParentId
())){
space
.
setParentId
(
null
);
}
else
{
space
.
setParentId
(
dto
.
getParentId
());
}
//上级空间
//上级空间
PlatSpace
parentSpace
=
this
.
getById
(
dto
.
getParentId
());
PlatSpace
parentSpace
=
this
.
getById
(
dto
.
getParentId
());
...
@@ -177,6 +181,10 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
...
@@ -177,6 +181,10 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
.
in
(
PlatSpace:
:
getId
,
parentIds
));
.
in
(
PlatSpace:
:
getId
,
parentIds
));
if
(
CollectionUtils
.
isNotEmpty
(
arrayList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
arrayList
))
{
spaceList
.
addAll
(
arrayList
);
spaceList
.
addAll
(
arrayList
);
spaceList
=
spaceList
.
stream
()
.
collect
(
Collectors
.
collectingAndThen
(
Collectors
.
toCollection
(
()
->
new
TreeSet
<>(
Comparator
.
comparing
(
PlatSpace:
:
getId
))),
ArrayList:
:
new
));
}
}
}
else
{
}
else
{
spaceList
=
list
;
spaceList
=
list
;
...
@@ -370,12 +378,15 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
...
@@ -370,12 +378,15 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
try
{
try
{
List
<
PlatSpace
>
listPlatSpace
=
list
(
new
LambdaQueryWrapper
<>());
List
<
PlatSpace
>
listPlatSpace
=
list
(
new
LambdaQueryWrapper
<>());
List
<
PlatSpace
>
firstSpace
=
listPlatSpace
.
stream
().
filter
(
item
->
item
.
getParentId
()
==
null
).
collect
(
Collectors
.
toList
());
List
<
PlatSpace
>
firstSpace
=
listPlatSpace
.
stream
().
filter
(
item
->
StringUtil
.
isEmpty
(
item
.
getParentId
())
).
collect
(
Collectors
.
toList
());
Map
<
String
,
String
>
firstSpaceNameMap
=
firstSpace
.
stream
().
collect
(
Collectors
.
toMap
(
PlatSpace:
:
getName
,
PlatSpace:
:
getId
,
(
k1
,
k2
)
->
k1
));
Map
<
String
,
String
>
firstSpaceNameMap
=
firstSpace
.
stream
().
collect
(
Collectors
.
toMap
(
PlatSpace:
:
getName
,
PlatSpace:
:
getId
,
(
k1
,
k2
)
->
k1
));
List
<
PlatSpace
>
listChildren
=
listPlatSpace
.
stream
().
filter
(
item
->
item
.
getParentId
()
!=
null
).
collect
(
Collectors
.
toList
());
List
<
PlatSpace
>
listChildren
=
listPlatSpace
.
stream
().
filter
(
item
->
StringUtil
.
isNotEmpty
(
item
.
getParentId
())
).
collect
(
Collectors
.
toList
());
Map
<
String
,
List
<
PlatSpace
>>
childrenMap
=
listChildren
.
stream
().
collect
(
Collectors
.
groupingBy
(
PlatSpace:
:
getParentId
));
Map
<
String
,
List
<
PlatSpace
>>
childrenMap
=
listChildren
.
stream
().
collect
(
Collectors
.
groupingBy
(
PlatSpace:
:
getParentId
));
Map
<
String
,
String
>
childrenIdMap
=
listChildren
.
stream
().
collect
(
Collectors
.
toMap
(
item
->
item
.
getParentId
()
+
item
.
getName
(),
item
->
item
.
getId
(),
(
k1
,
k2
)
->
k1
));
Map
<
String
,
String
>
childrenIdMap
=
listChildren
.
stream
().
collect
(
Collectors
.
toMap
(
item
->
item
.
getParentId
()
+
"-"
+
item
.
getName
(),
item
->
item
.
getId
(),
(
k1
,
k2
)
->
k1
));
List
<
PlatRoom
>
rooms
=
platRoomService
.
list
();
Map
<
String
,
List
<
PlatRoom
>>
roomMap
=
rooms
.
stream
().
collect
(
Collectors
.
groupingBy
(
PlatRoom:
:
getSpaceId
));
List
<
PlatSpaceImportDTO
>
list
=
ExcelUtil
.
importExcel
(
null
,
3
,
excelFile
,
PlatSpaceImportDTO
.
class
);
List
<
PlatSpaceImportDTO
>
list
=
ExcelUtil
.
importExcel
(
null
,
3
,
excelFile
,
PlatSpaceImportDTO
.
class
);
...
@@ -426,10 +437,11 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
...
@@ -426,10 +437,11 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
key
=
key
+
"-"
+
item
.
getFloor
();
key
=
key
+
"-"
+
item
.
getFloor
();
}
}
if
(
listKey
.
contains
(
key
))
{
if
(
listKey
.
contains
(
key
+
"-"
+
item
.
getRoomName
()
))
{
errorVoList
.
add
(
new
ExcelErrorVo
(
i
+
3
,
excelField
.
get
(
0
),
"该空间下,房间名已存在"
));
errorVoList
.
add
(
new
ExcelErrorVo
(
i
+
3
,
excelField
.
get
(
0
),
"该空间下,房间名已存在"
));
errorFlag
=
true
;
errorFlag
=
true
;
}
}
listKey
.
add
(
key
+
"-"
+
item
.
getRoomName
());
if
(
errorFlag
)
{
if
(
errorFlag
)
{
errorCount
++;
errorCount
++;
...
@@ -530,20 +542,49 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
...
@@ -530,20 +542,49 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
platRoomDTO
.
setName
(
item
.
getRoomName
());
platRoomDTO
.
setName
(
item
.
getRoomName
());
platRoomDTO
.
setBedNumber
(
item
.
getBedNumber
());
platRoomDTO
.
setBedNumber
(
item
.
getBedNumber
());
String
spaceId
=
null
;
String
spaceId
=
null
;
if
(
firstId
!=
null
)
{
int
j
=
0
;
spaceId
=
firstId
;
if
(
fourId
!=
null
){
}
else
if
(
secondId
!=
null
)
{
spaceId
=
secondId
;
}
else
if
(
threeId
!=
null
)
{
spaceId
=
threeId
;
}
else
if
(
fourId
!=
null
)
{
spaceId
=
fourId
;
spaceId
=
fourId
;
j
=
3
;
}
else
if
(
threeId
!=
null
){
spaceId
=
threeId
;
j
=
2
;
}
else
if
(
secondId
!=
null
){
spaceId
=
secondId
;
j
=
1
;
}
else
if
(
firstId
!=
null
){
spaceId
=
firstId
;
}
//判断该层级是否最后一级
List
<
PlatSpace
>
childSpaes
=
list
(
new
QueryWrapper
<
PlatSpace
>().
lambda
()
.
eq
(
PlatSpace:
:
getParentId
,
spaceId
));
if
(!
childSpaes
.
isEmpty
()){
errorVoList
.
add
(
new
ExcelErrorVo
(
i
+
3
,
excelField
.
get
(
j
),
"该空间存在下级空间,不允许添加房间"
));
successCount
--;
errorCount
++;
continue
;
}
}
platRoomDTO
.
setSpaceId
(
spaceId
);
platRoomDTO
.
setSpaceId
(
spaceId
);
platRoomDTO
.
setSpacePath
(
spacePath
);
platRoomDTO
.
setSpacePath
(
spacePath
);
platRoomService
.
add
(
platRoomDTO
);
PlatRoom
platRoom
=
BeanDtoVoUtils
.
convert
(
platRoomDTO
,
PlatRoom
.
class
);
if
(
roomMap
.
get
(
spaceId
)!=
null
){
List
<
PlatRoom
>
roomList
=
roomMap
.
get
(
spaceId
);
List
<
String
>
roomNames
=
roomList
.
stream
().
map
(
PlatRoom:
:
getName
).
collect
(
Collectors
.
toList
());
if
(
roomNames
.
contains
(
platRoom
.
getName
())){
errorVoList
.
add
(
new
ExcelErrorVo
(
i
+
3
,
excelField
.
get
(
0
),
"该空间下,房间名已存在"
));
successCount
--;
errorCount
++;
continue
;
}
}
platRoomService
.
save
(
platRoom
);
platBedService
.
add
(
platRoom
);
}
}
}
}
if
(!
errorVoList
.
isEmpty
()){
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
}
excelImportVo
.
setTotalCount
(
list
.
size
());
excelImportVo
.
setTotalCount
(
list
.
size
());
excelImportVo
.
setErrorCount
(
errorCount
);
excelImportVo
.
setErrorCount
(
errorCount
);
excelImportVo
.
setSuccessCount
(
successCount
);
excelImportVo
.
setSuccessCount
(
successCount
);
...
...
server-service/src/main/java/com/makeit/vo/platform/alarm/PlatAlarmRecordVO.java
View file @
1960b971
...
@@ -59,5 +59,8 @@ public class PlatAlarmRecordVO extends BaseTenantDTO {
...
@@ -59,5 +59,8 @@ public class PlatAlarmRecordVO extends BaseTenantDTO {
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
createDate
;
private
LocalDateTime
createDate
;
@ApiModelProperty
(
value
=
"0-未读 1-已读"
)
private
String
readFlag
;
}
}
server-service/src/main/resources/mappers/PlatAlarmConfigMapper.xml
View file @
1960b971
...
@@ -7,10 +7,10 @@
...
@@ -7,10 +7,10 @@
<select
id=
"getHealthConfigList"
resultType=
"com.makeit.dto.platform.alarm.PlatHealthConfigDTO"
>
<select
id=
"getHealthConfigList"
resultType=
"com.makeit.dto.platform.alarm.PlatHealthConfigDTO"
>
select pehi.elder_id as platElderId,
select pehi.elder_id as platElderId,
pehi.respiratory_rate as
heart
RateStr,
pehi.respiratory_rate as
breath
RateStr,
pehi.respiratory_exception_time as
heart
Duration,
pehi.respiratory_exception_time as
breath
Duration,
pehi.heart_rate as
breath
RateStr,
pehi.heart_rate as
heart
RateStr,
pehi.heart_exception_time as
breath
Duration
pehi.heart_exception_time as
heart
Duration
from plat_elder_health_info pehi
from plat_elder_health_info pehi
left join plat_elder pe on pe.id = pehi.elder_id
left join plat_elder pe on pe.id = pehi.elder_id
where pehi.del_flag = 0
where pehi.del_flag = 0
...
...
server-web/platform-web.iml
View file @
1960b971
...
@@ -165,7 +165,7 @@
...
@@ -165,7 +165,7 @@
<orderEntry
type=
"library"
name=
"Maven: com.sun.xml.bind:jaxb-impl:2.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.sun.xml.bind:jaxb-impl:2.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:openapiutil:0.1.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:openapiutil:0.1.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.
5
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.
9
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-core:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-core:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.14.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi:5.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi:5.2.2"
level=
"project"
/>
...
...
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