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
2c8f92ba
authored
Dec 25, 2023
by
罗志长
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix: 平台端长者日报周报坐标
parent
e38e0d05
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
166 additions
and
11 deletions
server-module/src/main/java/com/makeit/module/controller/space/PlatRegionSettingFixController.java
server-service/src/main/java/com/makeit/dto/platform/space/PlatRegionSettingFixQueryDTO.java
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderDayReportDayService.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/space/PlatRegionSettingFixService.java
server-service/src/main/java/com/makeit/service/platform/space/impl/PlatRegionSettingFixServiceImpl.java
server-module/src/main/java/com/makeit/module/controller/space/PlatRegionSettingFixController.java
0 → 100644
View file @
2c8f92ba
package
com
.
makeit
.
module
.
controller
.
space
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.dto.platform.space.PlatRegionSettingDTO
;
import
com.makeit.dto.platform.space.PlatRegionSettingFixQueryDTO
;
import
com.makeit.dto.platform.space.PlatRegionSettingQueryDTO
;
import
com.makeit.service.platform.space.PlatRegionSettingFixService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
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.RestController
;
import
java.util.List
;
@Api
(
tags
=
"区域设置固化"
)
@RestController
@RequestMapping
(
"/plat/region/setting/fix"
)
public
class
PlatRegionSettingFixController
{
@Autowired
private
PlatRegionSettingFixService
platRegionSettingFixService
;
@ApiOperation
(
"列表"
)
@PostMapping
(
"list"
)
public
ApiResponseEntity
<
List
<
PlatRegionSettingDTO
>>
list
(
@RequestBody
PlatRegionSettingFixQueryDTO
dto
)
{
List
<
PlatRegionSettingDTO
>
data
=
platRegionSettingFixService
.
list
(
dto
);
return
ApiResponseUtils
.
success
(
data
);
}
}
server-service/src/main/java/com/makeit/dto/platform/space/PlatRegionSettingFixQueryDTO.java
0 → 100644
View file @
2c8f92ba
package
com
.
makeit
.
dto
.
platform
.
space
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
@Data
@ApiModel
(
"PlatRegionSettingFixQueryDTO"
)
public
class
PlatRegionSettingFixQueryDTO
{
@ApiModelProperty
(
"报告类型 0:日报 1:周报"
)
private
String
reportType
;
@ApiModelProperty
(
"长者ID"
)
private
String
elderId
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@ApiModelProperty
(
"日期 yyyy-MM-dd"
)
private
LocalDate
now
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
"开始时间 yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
startTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
"结束时间 yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
endTime
;
}
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderDayReportDayService.java
View file @
2c8f92ba
...
...
@@ -41,6 +41,8 @@ public interface PlatElderDayReportDayService {
List
<
String
>
failRecordList
(
PlatElderReportDTO
platElderIdDTO
);
List
<
PlatElderCoordinateVO
>
coordinateList
(
String
elderId
,
long
start
,
long
end
);
List
<
PlatElderCoordinateVO
>
coordinateList
(
String
elderId
,
String
deviceId
,
LocalDateTime
start
,
LocalDateTime
end
);
List
<
PlatElderCoordinateVO
>
coordinateList
(
PlatElderReportDTO
platElderIdDTO
);
...
...
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportDayServiceImpl.java
View file @
2c8f92ba
package
com
.
makeit
.
service
.
platform
.
elder
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.google.common.collect.Lists
;
import
com.makeit.common.entity.BaseEntity
;
...
...
@@ -7,10 +9,7 @@ import com.makeit.dto.platform.elder.PlatElderReportDTO;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.alarm.PlatDayDurationRecord
;
import
com.makeit.entity.platform.device.PlatDevice
;
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.platform.elder.*
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
...
...
@@ -23,6 +22,7 @@ import com.makeit.service.platform.alarm.PlatDayDurationRecordService;
import
com.makeit.service.platform.elder.*
;
import
com.makeit.service.saas.SaasSleepEvaluateReportService
;
import
com.makeit.utils.LongTimestampUtil
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.MathUtil
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.data.validate.CollectionUtils
;
...
...
@@ -31,12 +31,14 @@ import com.makeit.utils.time.LocalDateTimeUtils;
import
com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO
;
import
com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO
;
import
com.makeit.vo.platform.elder.report.day.*
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.ZoneOffset
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -68,6 +70,8 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
private
PlatElderService
platElderService
;
@Autowired
private
SaasSleepEvaluateReportService
sleepEvaluateReportService
;
@Autowired
private
PlatElderCoordinateRecordService
platElderCoordinateRecordService
;
private
static
LocalDateTime
dayStartNow
(
LocalDate
now
)
{
return
LocalDateTimeUtils
.
getDayStart
(
now
);
...
...
@@ -380,6 +384,25 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
}
@Override
public
List
<
PlatElderCoordinateVO
>
coordinateList
(
String
elderId
,
long
start
,
long
end
)
{
LambdaQueryWrapper
<
PlatElderCoordinateRecord
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
PlatElderCoordinateRecord:
:
getElderId
,
elderId
);
queryWrapper
.
ge
(
PlatElderCoordinateRecord:
:
getReportTime
,
start
);
queryWrapper
.
le
(
PlatElderCoordinateRecord:
:
getReportTime
,
end
);
List
<
PlatElderCoordinateRecord
>
list
=
platElderCoordinateRecordService
.
list
(
queryWrapper
);
return
list
.
stream
().
map
(
r
->
{
PlatElderCoordinateVO
platElderCoordinateVO
=
new
PlatElderCoordinateVO
();
BeanUtils
.
copyProperties
(
r
,
platElderCoordinateVO
);
platElderCoordinateVO
.
setTimestamp
(
r
.
getReportTime
());
platElderCoordinateVO
.
setOriDeviceId
(
r
.
getIotDeviceId
());
if
(
StringUtils
.
isNotBlank
(
r
.
getTrack
()))
{
platElderCoordinateVO
.
setTrack
(
JSON
.
parseArray
(
r
.
getTrack
(),
Integer
.
class
));
}
return
platElderCoordinateVO
;
}).
collect
(
Collectors
.
toList
());
}
@Override
public
List
<
PlatElderCoordinateVO
>
coordinateList
(
String
elderId
,
String
deviceId
,
LocalDateTime
start
,
LocalDateTime
end
)
{
List
<
PlatDevice
>
platDeviceListSpace
=
platElderRealTimeService
.
getSpaceDevice
(
elderId
,
deviceId
);
...
...
@@ -445,7 +468,10 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
LocalDateTime
start
=
dayStartNow
(
now
);
LocalDateTime
end
=
dayEndNow
(
now
);
return
coordinateList
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
(),
start
,
end
);
long
reportTimeStart
=
start
.
toInstant
(
ZoneOffset
.
ofHours
(
8
)).
toEpochMilli
();
long
reportTimeEnd
=
end
.
toInstant
(
ZoneOffset
.
ofHours
(
8
)).
toEpochMilli
();
return
coordinateList
(
platElderIdDTO
.
getElderId
(),
reportTimeStart
,
reportTimeEnd
);
}
...
...
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportWeekServiceImpl.java
View file @
2c8f92ba
...
...
@@ -29,10 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.DayOfWeek
;
import
java.time.Duration
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.*
;
import
java.time.format.DateTimeFormatter
;
import
java.time.temporal.TemporalAdjusters
;
import
java.util.ArrayList
;
...
...
@@ -477,7 +474,11 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
@Override
public
List
<
PlatElderCoordinateVO
>
coordinateList
(
PlatElderReportDTO
platElderIdDTO
)
{
return
platElderDayReportDayService
.
coordinateList
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
(),
weekStartDateTime
(
platElderIdDTO
.
getStartTime
()),
weekEndDateTime
(
platElderIdDTO
.
getEndTime
()));
LocalDateTime
start
=
weekStartDateTime
(
platElderIdDTO
.
getStartTime
());
LocalDateTime
end
=
weekEndDateTime
(
platElderIdDTO
.
getEndTime
());
long
reportTimeStart
=
start
.
toInstant
(
ZoneOffset
.
ofHours
(
8
)).
toEpochMilli
();
long
reportTimeEnd
=
end
.
toInstant
(
ZoneOffset
.
ofHours
(
8
)).
toEpochMilli
();
return
platElderDayReportDayService
.
coordinateList
(
platElderIdDTO
.
getElderId
(),
reportTimeStart
,
reportTimeEnd
);
}
@Override
...
...
server-service/src/main/java/com/makeit/service/platform/space/PlatRegionSettingFixService.java
View file @
2c8f92ba
package
com
.
makeit
.
service
.
platform
.
space
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.dto.platform.space.PlatRegionSettingDTO
;
import
com.makeit.dto.platform.space.PlatRegionSettingFixQueryDTO
;
import
com.makeit.entity.platform.space.PlatRegionSettingFix
;
import
java.util.List
;
/**
* <p>
* 区域设置固化 服务类
...
...
@@ -13,4 +17,6 @@ import com.makeit.entity.platform.space.PlatRegionSettingFix;
*/
public
interface
PlatRegionSettingFixService
extends
IService
<
PlatRegionSettingFix
>
{
List
<
PlatRegionSettingDTO
>
list
(
PlatRegionSettingFixQueryDTO
dto
);
}
server-service/src/main/java/com/makeit/service/platform/space/impl/PlatRegionSettingFixServiceImpl.java
View file @
2c8f92ba
package
com
.
makeit
.
service
.
platform
.
space
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Lists
;
import
com.makeit.dto.platform.space.PlatRegionSettingDTO
;
import
com.makeit.dto.platform.space.PlatRegionSettingFixQueryDTO
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.space.PlatRegionSettingFix
;
import
com.makeit.mapper.platform.space.PlatRegionSettingFixMapper
;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.space.PlatRegionSettingFixService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.function.Function
;
import
java.util.function.Predicate
;
import
java.util.stream.Collectors
;
/**
* <p>
* 区域设置固化 服务实现类
...
...
@@ -18,4 +34,41 @@ import org.springframework.stereotype.Service;
@Service
public
class
PlatRegionSettingFixServiceImpl
extends
ServiceImpl
<
PlatRegionSettingFixMapper
,
PlatRegionSettingFix
>
implements
PlatRegionSettingFixService
{
@Autowired
private
PlatDeviceService
platDeviceService
;
@Override
public
List
<
PlatRegionSettingDTO
>
list
(
PlatRegionSettingFixQueryDTO
dto
)
{
if
(
StringUtils
.
isAnyBlank
(
dto
.
getReportType
(),
dto
.
getElderId
()))
{
return
Lists
.
newArrayList
();
}
DateTimeFormatter
dateTimeFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
LambdaQueryWrapper
<
PlatRegionSettingFix
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
PlatRegionSettingFix:
:
getElderId
,
dto
.
getElderId
());
if
(
"0"
.
equals
(
dto
.
getReportType
()))
{
queryWrapper
.
eq
(
PlatRegionSettingFix:
:
getHappenDate
,
dateTimeFormatter
.
format
(
dto
.
getNow
()));
}
else
{
queryWrapper
.
ge
(
PlatRegionSettingFix:
:
getHappenDate
,
dateTimeFormatter
.
format
(
dto
.
getStartTime
()));
queryWrapper
.
le
(
PlatRegionSettingFix:
:
getHappenDate
,
dateTimeFormatter
.
format
(
dto
.
getEndTime
()));
}
List
<
PlatRegionSettingFix
>
list
=
this
.
list
(
queryWrapper
);
list
=
list
.
stream
().
filter
(
distinctByKey
(
PlatRegionSettingFix:
:
getDeviceId
)).
collect
(
Collectors
.
toList
());
List
<
String
>
deviceIds
=
list
.
stream
().
map
(
PlatRegionSettingFix:
:
getDeviceId
).
collect
(
Collectors
.
toList
());
Map
<
String
,
PlatDevice
>
deviceMap
=
platDeviceService
.
listByIds
(
deviceIds
).
stream
().
collect
(
Collectors
.
toMap
(
PlatDevice:
:
getId
,
Function
.
identity
()));
return
list
.
stream
().
map
(
p
->
{
PlatRegionSettingDTO
platRegionSettingDTO
=
new
PlatRegionSettingDTO
();
BeanUtils
.
copyProperties
(
p
,
platRegionSettingDTO
);
PlatDevice
device
=
deviceMap
.
getOrDefault
(
p
.
getDeviceId
(),
new
PlatDevice
());
platRegionSettingDTO
.
setOriDeviceId
(
device
.
getOriDeviceId
());
platRegionSettingDTO
.
setDeviceName
(
device
.
getName
());
platRegionSettingDTO
.
setCategory
(
device
.
getCategory
());
return
platRegionSettingDTO
;
}).
collect
(
Collectors
.
toList
());
}
private
static
<
T
>
Predicate
<
T
>
distinctByKey
(
Function
<?
super
T
,
Object
>
keyExtractor
)
{
Map
<
Object
,
Boolean
>
seen
=
new
ConcurrentHashMap
<>();
return
t
->
seen
.
putIfAbsent
(
keyExtractor
.
apply
(
t
),
Boolean
.
TRUE
)
==
null
;
}
}
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