Commit 97525de9 by 汪志阳

fix:睡眠时间计算

parent cc7b9fa8
...@@ -51,6 +51,8 @@ public class AnalysisVO { ...@@ -51,6 +51,8 @@ public class AnalysisVO {
private String createdTime; private String createdTime;
private String deviceId;
// private Integer sleepDeepMinuteCount; // 深睡每分钟体动和翻身次数 // private Integer sleepDeepMinuteCount; // 深睡每分钟体动和翻身次数
......
...@@ -56,5 +56,7 @@ public class WechatUserInfo implements Serializable { ...@@ -56,5 +56,7 @@ public class WechatUserInfo implements Serializable {
private String isTenant; private String isTenant;
private String weChatOpenid;
} }
...@@ -16,7 +16,7 @@ public interface TestLogService { ...@@ -16,7 +16,7 @@ public interface TestLogService {
void save(Map<String, List<DeviceInfoContentBreathe>> minuteMap); void save(Map<String, List<DeviceInfoContentBreathe>> minuteMap);
void saveEntity(TreeMap<String, AnalysisVO> statisticsMap); void saveEntity(TreeMap<String, AnalysisVO> statisticsMap, String id);
TreeMap<String, AnalysisVO> getData(); TreeMap<String, AnalysisVO> getData();
......
...@@ -5,6 +5,7 @@ import cn.hutool.core.date.DatePattern; ...@@ -5,6 +5,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.makeit.dto.SaveLogDTO; import com.makeit.dto.SaveLogDTO;
import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.auth.PlatOrgMapper; import com.makeit.mapper.platform.auth.PlatOrgMapper;
import com.makeit.module.iot.vo.analysis.AnalysisVO; import com.makeit.module.iot.vo.analysis.AnalysisVO;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe; import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe;
...@@ -59,13 +60,13 @@ public class TestLogServiceImpl implements TestLogService { ...@@ -59,13 +60,13 @@ public class TestLogServiceImpl implements TestLogService {
} }
@Override @Override
public void saveEntity(TreeMap<String, AnalysisVO> statisticsMap) { public void saveEntity(TreeMap<String, AnalysisVO> statisticsMap, String id) {
List<AnalysisVO> list = new ArrayList<>(); List<AnalysisVO> list = new ArrayList<>();
statisticsMap.forEach((k,v) -> { statisticsMap.forEach((k,v) -> {
v.setCreatedTime(k); v.setCreatedTime(k);
v.setDeviceId(id);
list.add(v); list.add(v);
}); });
platOrgMapper.saveBatch(list); platOrgMapper.saveBatch(list);
} }
...@@ -74,7 +75,7 @@ public class TestLogServiceImpl implements TestLogService { ...@@ -74,7 +75,7 @@ public class TestLogServiceImpl implements TestLogService {
List<AnalysisVO> data = platOrgMapper.getData(); List<AnalysisVO> data = platOrgMapper.getData();
LinkedHashMap<String, AnalysisVO> collect1 = data.stream().collect(Collectors.toMap(AnalysisVO::getCreatedTime, a -> a, (u, v) -> { LinkedHashMap<String, AnalysisVO> collect1 = data.stream().collect(Collectors.toMap(AnalysisVO::getCreatedTime, a -> a, (u, v) -> {
throw new IllegalStateException(String.format("Duplicate key %s", u)); throw new BusinessException(String.format("Duplicate key %s", u));
}, LinkedHashMap::new)); }, LinkedHashMap::new));
TreeMap<String, AnalysisVO> result = new TreeMap<>(); TreeMap<String, AnalysisVO> result = new TreeMap<>();
collect1.forEach(result::put); collect1.forEach(result::put);
...@@ -119,14 +120,22 @@ public class TestLogServiceImpl implements TestLogService { ...@@ -119,14 +120,22 @@ public class TestLogServiceImpl implements TestLogService {
private AnalysisVO buildDefaultData(String minute) { private AnalysisVO buildDefaultData(String minute) {
AnalysisVO analysisVO = new AnalysisVO(); AnalysisVO analysisVO = new AnalysisVO();
analysisVO.setCreatedTime(minute); analysisVO.setTotalHr(0);
analysisVO.setActionCount(0);
analysisVO.setAvgBr(0);
analysisVO.setAvgHr(0); analysisVO.setAvgHr(0);
analysisVO.setMaxHr(0);
analysisVO.setMinHr(0);
analysisVO.setTotalBr(0);
analysisVO.setAvgBr(0);
analysisVO.setMaxBr(0);
analysisVO.setMinBr(0);
analysisVO.setHrBrCount(0);
analysisVO.setActionCount(0);
analysisVO.setTurnedCount(0);
analysisVO.setIsAction(false); analysisVO.setIsAction(false);
analysisVO.setIsMinuteActionFlag(false);
analysisVO.setIsMoveBed(true); analysisVO.setIsMoveBed(true);
analysisVO.setIsMinuteActionFlag(false);
analysisVO.setAwakeMinuteActionFlag(false); analysisVO.setAwakeMinuteActionFlag(false);
analysisVO.setCreatedTime(minute);
return analysisVO; return analysisVO;
} }
} }
...@@ -45,19 +45,20 @@ ...@@ -45,19 +45,20 @@
action_count, turned_count, is_action, is_move_bed, is_minute_action_flag, action_count, turned_count, is_action, is_move_bed, is_minute_action_flag,
awake_minute_action_flag, br_stop_threshold, br_stop, br_stop_time, br_fast_threshold, awake_minute_action_flag, br_stop_threshold, br_stop, br_stop_time, br_fast_threshold,
br_fast, br_fast_time, br_slow_threshold, br_slow, br_slow_time, hr_fast_threshold, br_fast, br_fast_time, br_slow_threshold, br_slow, br_slow_time, hr_fast_threshold,
hr_fast, hr_fast_time, hr_slow_threshold, hr_slow, hr_slow_time, created_time) hr_fast, hr_fast_time, hr_slow_threshold, hr_slow, hr_slow_time, created_time,device_id)
values values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
(#{item.totalHr},#{item.avgHr},#{item.maxHr},#{item.minHr},#{item.totalBr},#{item.avgBr},#{item.maxBr},#{item.minBr},#{item.hrBrCount}, (#{item.totalHr},#{item.avgHr},#{item.maxHr},#{item.minHr},#{item.totalBr},#{item.avgBr},#{item.maxBr},#{item.minBr},#{item.hrBrCount},
#{item.actionCount},#{item.turnedCount},#{item.isAction},#{item.isMoveBed},#{item.isMinuteActionFlag}, #{item.actionCount},#{item.turnedCount},#{item.isAction},#{item.isMoveBed},#{item.isMinuteActionFlag},
#{item.awakeMinuteActionFlag},#{item.brStopThreshold},#{item.brStop},#{item.brStopTime},#{item.brFastThreshold}, #{item.awakeMinuteActionFlag},#{item.brStopThreshold},#{item.brStop},#{item.brStopTime},#{item.brFastThreshold},
#{item.brFast},#{item.brFastTime},#{item.brSlowThreshold},#{item.brSlow},#{item.brSlowTime},#{item.hrFastThreshold}, #{item.brFast},#{item.brFastTime},#{item.brSlowThreshold},#{item.brSlow},#{item.brSlowTime},#{item.hrFastThreshold},
#{item.hrFast},#{item.hrFastTime},#{item.hrSlowThreshold},#{item.hrSlow},#{item.hrSlowTime},#{item.createdTime}) #{item.hrFast},#{item.hrFastTime},#{item.hrSlowThreshold},#{item.hrSlow},#{item.hrSlowTime},#{item.createdTime},#{item.deviceId})
</foreach> </foreach>
</insert> </insert>
<select id="getData" resultType="com.makeit.module.iot.vo.analysis.AnalysisVO"> <select id="getData" resultType="com.makeit.module.iot.vo.analysis.AnalysisVO">
select * from device_minute_info group by created_time order by created_time select * from device_minute_info where created_time >= '2024-01-09 23:40'
and created_time &lt; '2024-01-10 08:00' and device_id = '1732647368962203650' order by created_time
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment