diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/api/service/impl/WatchDataApiServiceImpl.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/api/service/impl/WatchDataApiServiceImpl.java index 8d381ca..c2aef6a 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/api/service/impl/WatchDataApiServiceImpl.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/api/service/impl/WatchDataApiServiceImpl.java @@ -894,7 +894,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService { WatchStatUserInfoDaySleep::getDataDate) .eq(WatchStatUserInfoDaySleep::getUserId, userId) .orderByDesc(WatchStatUserInfoDaySleep::getDataDate) - .last("limit 1"); + .last("FETCH FIRST 1 ROWS ONLY"); WatchStatUserInfoDaySleep data = watchStatUserInfoDaySleepMapper.selectOne(queryWrapper); @@ -1016,7 +1016,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService { queryWrapper.eq(WatchData::getUserid, userId) .orderByDesc(WatchData::getLastUpdateTime) .eq(WatchData::getType, type) - .last("limit 1"); + .last("FETCH FIRST 1 ROWS ONLY"); WatchData watchData = watchDataMapper.selectOne(queryWrapper); if (watchData == null) { return null; @@ -1033,7 +1033,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_id", userId) .orderByDesc("data_date") - .last("limit 1"); + .last("FETCH FIRST 1 ROWS ONLY"); return queryWrapper.lambda(); } diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataHeartRateMapper.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataHeartRateMapper.java index e702194..3b6f54d 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataHeartRateMapper.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataHeartRateMapper.java @@ -32,6 +32,6 @@ public interface WatchDataHeartRateMapper extends MPJBaseMapper latestDataTempByUserId(@Param("bindUserId") String bindUserId); } diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataSpo2Mapper.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataSpo2Mapper.java index aeea1ca..56d31b9 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataSpo2Mapper.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataSpo2Mapper.java @@ -33,7 +33,7 @@ public interface WatchDataSpo2Mapper extends MPJBaseMapper { * @param bindUserId * @return */ - @Select("select * from watch_data_spo2 where bind_user_id = #{bindUserId} and data_date = (select MAX(data_date) from watch_data_spo2 where bind_user_id = #{bindUserId})") + @Select("SELECT * FROM watch_data_spo2 WHERE bind_user_id = #{bindUserId} AND data_date = (SELECT MAX(data_date) FROM watch_data_spo2 WHERE bind_user_id = #{bindUserId})") List latestDataTempByUserId(@Param("bindUserId") String bindUserId); } diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataStressMapper.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataStressMapper.java index eb2f54b..23c915f 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataStressMapper.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataStressMapper.java @@ -21,7 +21,7 @@ public interface WatchDataStressMapper extends MPJBaseMapper { IPage selectStressByYear(IPage page, StatisticsReq req); - @Select("select * from watch_data_stress where bind_user_id = #{bindUserId} order by start_time_stamp desc limit 1") + @Select("SELECT * FROM (SELECT * FROM watch_data_stress WHERE bind_user_id = #{bindUserId} ORDER BY start_time_stamp DESC) WHERE ROWNUM = 1") WatchDataStress selectWatchDataStressByUserId(@Param("bindUserId") String bindUserId); /** @@ -29,7 +29,7 @@ public interface WatchDataStressMapper extends MPJBaseMapper { * @param bindUserId * @return */ - @Select("select * from watch_data_stress where bind_user_id = #{bindUserId} and data_date = (select MAX(data_date) from watch_data_stress where bind_user_id = #{bindUserId})") + @Select("SELECT * FROM watch_data_stress WHERE bind_user_id = #{bindUserId} AND data_date = (SELECT MAX(data_date) FROM watch_data_stress WHERE bind_user_id = #{bindUserId})") List latestDataTempByUserId(@Param("bindUserId") String bindUserId); } diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataTemperatureMapper.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataTemperatureMapper.java index ce8fed6..b90c9b9 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataTemperatureMapper.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDataTemperatureMapper.java @@ -23,7 +23,7 @@ public interface WatchDataTemperatureMapper extends MPJBaseMapper selectTempByYear(@Param("page") IPage page, @Param("req") StatisticsReq req); - @Select("select * from watch_data_temperature where bind_user_id = #{bindUserId} and Date(data_date) = Date(#{dateTime}) order by time_stamp") + @Select("SELECT * FROM watch_data_temperature WHERE bind_user_id = #{bindUserId} AND data_date = #{dateTime} ORDER BY time_stamp") List selectTempByUserId(@Param("bindUserId") String bindUserId,@Param("dateTime") Date dateTime); /** @@ -31,6 +31,6 @@ public interface WatchDataTemperatureMapper extends MPJBaseMapper latestDataTempByUserId(@Param("bindUserId") String bindUserId); } diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDeviceMapper.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDeviceMapper.java index 1913f2a..1b2dc78 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDeviceMapper.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchDeviceMapper.java @@ -66,7 +66,7 @@ public interface WatchDeviceMapper extends MPJBaseMapper { List selectDeviceUserId(@Param("deptId") String deptId); - @Select(value = "SELECT LEFT(org_code,6) as orgCode, count(1) as medicalCount FROM watch_device GROUP BY LEFT(org_code,6)") + @Select(value = "SELECT SUBSTR(org_code, 1, 6) as orgCode, COUNT(1) as medicalCount FROM watch_device GROUP BY SUBSTR(org_code, 1, 6)") List getWatchSum(); List selectWearCount(@Param("orgCodeList") List orgCodeList); diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchMapper.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchMapper.java index 124e77b..cd8c689 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchMapper.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchMapper.java @@ -16,39 +16,39 @@ import java.util.Map; @Mapper public interface WatchMapper { - @Select("SELECT ROUND(SYSDATE - (SELECT CAST(bind_date AS DATE) FROM watch_bind_his WHERE bind_user_id = #{id} ORDER BY bind_date DESC limit 1)) AS days") + @Select("SELECT TRUNC(SYSDATE - CAST(bind_date AS DATE)) AS days FROM (SELECT bind_date FROM watch_bind_his WHERE bind_user_id = #{id} ORDER BY bind_date DESC FETCH FIRST 1 ROWS ONLY)") Integer getUseDays(@Param("id") String id); - @Select("select length(nm.status) minutes,TO_CHAR(n.data_date,'YYYY-MM-DD') dataDate from watch_data_sleep_new_minute nm left join watch_data_sleep_new n on nm.sleep_id = n.id where n.id = ( select id from watch_data_sleep_new WHERE bind_user_id = #{id} order by data_date desc limit 1) and nm.STATUS not like '%55%' limit 1") + @Select("SELECT LENGTH(nm.status) minutes, TO_CHAR(n.data_date,'YYYY-MM-DD') dataDate FROM watch_data_sleep_new_minute nm LEFT JOIN watch_data_sleep_new n ON nm.sleep_id = n.id WHERE n.id = (SELECT id FROM watch_data_sleep_new WHERE bind_user_id = #{id} ORDER BY data_date DESC FETCH FIRST 1 ROWS ONLY) AND nm.STATUS NOT LIKE '%55%' AND ROWNUM = 1") WatchDataDTO getDataSleep(@Param("id") String id); /** * 查询最新的长睡睡眠时间和时长 - * @param id 用户ID + * @param id 用户 ID * @return */ - @Select("SELECT long_duration_total minutes, data_date dataDate FROM watch_stat_user_info_day_sleep WHERE user_id = #{id} and long_duration_total > 0 ORDER BY data_date DESC LIMIT 1;") + @Select("SELECT long_duration_total minutes, data_date dataDate FROM watch_stat_user_info_day_sleep WHERE user_id = #{id} AND long_duration_total > 0 ORDER BY data_date DESC FETCH FIRST 1 ROWS ONLY") WatchDataDTO getDataSleepNew(@Param("id") String id); @Select("SELECT AVG(ROUND((CAST(d.wake_up_time AS DATE) - CAST(d.fall_asleep_time AS DATE)) * 24 * 60)) AS aveMinute FROM watch_data_sleep_new_day d LEFT JOIN watch_data_sleep_new n ON d.sleep_id = n.id WHERE n.id IN (SELECT id FROM watch_data_sleep_new WHERE bind_user_id = #{id})") Double getAverageSleep(@Param("id") String id); - @Select("select MAX(data_value) dataValue,data_date dataDate from watch_data_steps where bind_user_id = #{id} group by data_date order by data_date desc limit 1") + @Select("SELECT MAX(data_value) dataValue, data_date dataDate FROM watch_data_steps WHERE bind_user_id = #{id} ORDER BY data_date DESC FETCH FIRST 1 ROWS ONLY") WatchDataDTO getDataSteps(@Param("id") String id); @Select("SELECT SUM(data_value) FROM watch_data_distance WHERE bind_user_id = #{id}") Integer getDataDistance(@Param("id") String id); - @Select("SELECT CAST(data_value as INTEGER) dataValue,data_date dataDate from watch_data_heart_rate where bind_user_id = #{id} order by time_stamp desc limit 1") + @Select("SELECT CAST(data_value AS INTEGER) dataValue, data_date dataDate FROM watch_data_heart_rate WHERE bind_user_id = #{id} ORDER BY time_stamp DESC FETCH FIRST 1 ROWS ONLY") WatchDataDTO getHeartRate(@Param("id") String id); - @Select("SELECT CAST(data_value as INTEGER) dataValue,data_date dataDate from watch_data_spo2 where bind_user_id = #{id} order by time_stamp desc limit 1") + @Select("SELECT CAST(data_value AS INTEGER) dataValue, data_date dataDate FROM watch_data_spo2 WHERE bind_user_id = #{id} ORDER BY time_stamp DESC FETCH FIRST 1 ROWS ONLY") WatchDataDTO getDataSpo2(@Param("id") String id); - @Select("select cast(data_value as INTEGER) dataValue,data_date dataDate from watch_data_stress where bind_user_id = #{id} order by end_time_stamp desc limit 1") + @Select("SELECT CAST(data_value AS INTEGER) dataValue, data_date dataDate FROM watch_data_stress WHERE bind_user_id = #{id} ORDER BY end_time_stamp DESC FETCH FIRST 1 ROWS ONLY") WatchDataDTO getStress(@Param("id") String id); - @Select("select data_value dataValue,data_date dataDate from watch_data_temperature where bind_user_id = #{id} order by time_stamp desc limit 1") + @Select("SELECT data_value dataValue, data_date dataDate FROM watch_data_temperature WHERE bind_user_id = #{id} ORDER BY time_stamp DESC FETCH FIRST 1 ROWS ONLY") WatchDataDTO getTemp(@Param("id") String id); @Select("SELECT * FROM watch_data_sleep_new_minute WHERE sleep_id IN (SELECT id FROM watch_data_sleep_new WHERE sleep_flag= '1' AND bind_user_id = #{id} AND data_date = #{date})") @@ -81,7 +81,7 @@ public interface WatchMapper { @Select("select max(data_value) maxValue,min(data_value) minValue from watch_data_spo2 where bind_user_id = #{id} and data_date = #{date}") Map getMapSpo2(@Param("id") String id, @Param("date") Date date); - @Select("select data_value lastValue from watch_data_spo2 where bind_user_id = #{id} and data_date = #{date} order by time_stamp desc limit 1") + @Select("SELECT data_value lastValue FROM watch_data_spo2 WHERE bind_user_id = #{id} AND data_date = #{date} ORDER BY time_stamp DESC FETCH FIRST 1 ROWS ONLY") Map getMapNewSpo2(@Param("id") String id, @Param("date") Date date); List> getMapSpo2Format(@Param("id") String id, @Param("date") String date, @Param("format") String format); @@ -95,6 +95,6 @@ public interface WatchMapper { Map getAverageDay(@Param("id") String id); - @Select("SELECT watch_no FROM watch_bind_his WHERE bind_user_id = #{id} AND bind_date <= #{date} ORDER BY bind_date DESC limit 1") + @Select("SELECT watch_no FROM watch_bind_his WHERE bind_user_id = #{id} AND bind_date <= #{date} ORDER BY bind_date DESC FETCH FIRST 1 ROWS ONLY") String getWatchNo(@Param("id") String id, @Param("date") String date); } diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchMonitorDataMapper.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchMonitorDataMapper.java index c7f2693..3f9da8f 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchMonitorDataMapper.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchMonitorDataMapper.java @@ -42,7 +42,7 @@ public interface WatchMonitorDataMapper extends BaseMapper, MP List getMonitorErrorNumsNew(@Param("orgCodes")List orgCodes, @Param("start") Date start, @Param("end") Date end); - @Select("select count(1) from watch_monitor_data where bind_user_id = #{userId} and YEAR(warn_time) = #{year} and event_type = 'fall_down'") + @Select("SELECT COUNT(1) FROM watch_monitor_data WHERE bind_user_id = #{userId} AND EXTRACT(YEAR FROM warn_time) = #{year} AND event_type = 'fall_down'") int selectUserFallNum(String userId,String year); List selectParams(@Param("req") AloneReq req); diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchStatUserInfoDayStressMapper.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchStatUserInfoDayStressMapper.java index 35f02b2..ad534a3 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchStatUserInfoDayStressMapper.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/WatchStatUserInfoDayStressMapper.java @@ -28,7 +28,7 @@ public interface WatchStatUserInfoDayStressMapper extends MPJBaseMapper selectStressByYear(@Param("dateYear") Date dateYear, @Param("userId")String userId); - @Select("select * from watch_stat_user_info_day_stress where user_id = #{userId} DATE(data_date) = DATE(#{dataDate}) limit 1") + @Select("SELECT * FROM watch_stat_user_info_day_stress WHERE user_id = #{userId} AND data_date = #{dataDate} AND ROWNUM = 1") WatchDataStressRes selectStressByUserIdAndDate(@Param("dateTime") Date dateTime, @Param("userId")String userId); void insertStat(WatchStatUserInfoDayStress watchStatUserInfoDayStress); diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/ArchivesBodyTypeMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/ArchivesBodyTypeMapper.xml index 6bbd20e..fe68efa 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/ArchivesBodyTypeMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/ArchivesBodyTypeMapper.xml @@ -3,36 +3,38 @@ select - orgcode, IFNULL(COUNT(DISTINCT userid),0) AS "type" + orgcode, NVL(COUNT(DISTINCT userid),0) AS "type" from watch_data - WHERE last_update_time >= CURDATE() - INTERVAL 6 DAY + WHERE last_update_time >= SYSDATE - 6 GROUP BY orgcode @@ -127,89 +127,113 @@ SELECT count(1) FROM watch_data WHERE watch_no = #{watchNo} - AND last_update_time >= CURDATE() - INTERVAL 7 DAY + AND last_update_time >= SYSDATE - 7 insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time) (select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 1, data_value, data_date - from watch_data_heart_rate force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - order by time_stamp desc - limit 1); + from (select bind_user_id, watch_no, data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_heart_rate + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR}) + where rn = 1); - update watch_data wd left join (select bind_user_id, data_value, data_date - from watch_data_heart_rate force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - order by time_stamp desc - limit 1) d on d.bind_user_id = wd.userid + update watch_data wd set wd.orgcode = #{orgcode,jdbcType=VARCHAR}, - wd.data_value = d.data_value, - wd.last_update_time = d.data_date + wd.data_value = (select data_value from ( + select bind_user_id, data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_heart_rate + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + ) where rn = 1), + wd.last_update_time = (select data_date from ( + select bind_user_id, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_heart_rate + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + ) where rn = 1) where wd.userid = #{userid,jdbcType=VARCHAR} - and wd.watch_no = #{watchNo,jdbcType=VARCHAR} - and wd.`type` = 1; + and wd.watch_no = #{watchNo,jdbcType=VARCHAR} + and wd."type" = 1; insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time) (select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 2, data_value, data_date - from watch_data_spo2 force index (bind_user_id_index) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - order by time_stamp desc - limit 1); + from (select bind_user_id, watch_no, data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_spo2 + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR}) + where rn = 1); - update watch_data wd left join (select bind_user_id, data_value, data_date - from watch_data_spo2 force index (bind_user_id_index) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - order by time_stamp desc - limit 1) d on d.bind_user_id = wd.userid + update watch_data wd set wd.orgcode = #{orgcode,jdbcType=VARCHAR}, - wd.data_value = d.data_value, - wd.last_update_time = d.data_date + wd.data_value = (select data_value from ( + select bind_user_id, data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_spo2 + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + ) where rn = 1), + wd.last_update_time = (select data_date from ( + select bind_user_id, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_spo2 + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + ) where rn = 1) where userid = #{userid,jdbcType=VARCHAR} and watch_no = #{watchNo,jdbcType=VARCHAR} - and `type` = 2; + and "type" = 2; insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time) (select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 3, data_value, data_date - from watch_data_stress force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - order by start_time_stamp desc - limit 1); + from (select bind_user_id, watch_no, data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY start_time_stamp desc) as rn + from watch_data_stress + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR}) + where rn = 1); - update watch_data wd left join (select bind_user_id, data_value, data_date - from watch_data_stress force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - order by start_time_stamp desc - limit 1) d on d.bind_user_id = wd.userid + update watch_data wd set wd.orgcode = #{orgcode,jdbcType=VARCHAR}, - wd.data_value = d.data_value, - wd.last_update_time = d.data_date + wd.data_value = (select data_value from ( + select bind_user_id, data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY start_time_stamp desc) as rn + from watch_data_stress + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + ) where rn = 1), + wd.last_update_time = (select data_date from ( + select bind_user_id, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY start_time_stamp desc) as rn + from watch_data_stress + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + ) where rn = 1) where userid = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - and `type` = 3; + and watch_no = #{watchNo,jdbcType=VARCHAR} + and "type" = 3; insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time) (select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, #{watchNo,jdbcType=VARCHAR}, 4, - sum(time_to_sec(timediff(sm.end_time, sm.start_time))) / 60 as deep_light_times, data_date + NVL(SUM(EXTRACT(HOUR FROM (sm.end_time - sm.start_time)) * 60 + EXTRACT(MINUTE FROM (sm.end_time - sm.start_time))), 0) as deep_light_times, data_date from watch_data_sleep_new s left join watch_data_sleep_new_minute sm on s.id = sm.sleep_id where s.bind_user_id = #{userid,jdbcType=VARCHAR} @@ -217,132 +241,172 @@ and s.sleep_flag = '1' group by s.bind_user_id, s.watch_no, s.data_date order by data_date desc - limit 1); + FETCH FIRST 1 ROWS ONLY); - update watch_data wd left join (select s.bind_user_id, - sum(time_to_sec(timediff(sm.end_time, sm.start_time))) / 60 as deep_light_times, - data_date - from watch_data_sleep_new s - left join watch_data_sleep_new_minute sm on s.id = sm.sleep_id - where s.bind_user_id = #{userid,jdbcType=VARCHAR} - and s.watch_no = #{watchNo,jdbcType=VARCHAR} - and s.sleep_flag = '1' - group by s.bind_user_id, s.watch_no, s.data_date - order by data_date desc - limit 1) d on d.bind_user_id = wd.userid + update watch_data wd set wd.orgcode = #{orgcode,jdbcType=VARCHAR}, - wd.data_value = d.deep_light_times, - wd.last_update_time = d.data_date + wd.data_value = (select NVL(SUM(EXTRACT(HOUR FROM (sm.end_time - sm.start_time)) * 60 + EXTRACT(MINUTE FROM (sm.end_time - sm.start_time))), 0) + from watch_data_sleep_new s + left join watch_data_sleep_new_minute sm on s.id = sm.sleep_id + where s.bind_user_id = #{userid,jdbcType=VARCHAR} + and s.watch_no = #{watchNo,jdbcType=VARCHAR} + and s.sleep_flag = '1' + group by s.bind_user_id, s.watch_no, s.data_date + order by data_date desc + FETCH FIRST 1 ROWS ONLY), + wd.last_update_time = (select data_date from ( + select data_date + from watch_data_sleep_new + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + and sleep_flag = '1' + order by data_date desc + ) where ROWNUM = 1) where userid = #{userid,jdbcType=VARCHAR} and watch_no = #{watchNo,jdbcType=VARCHAR} - and `type` = 4; + and "type" = 4; insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time) (select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 5, data_value, data_date - from watch_data_temperature force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - order by time_stamp desc - limit 1); + from (select bind_user_id, watch_no, data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_temperature + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR}) + where rn = 1); - update watch_data wd left join (select bind_user_id, data_value, data_date - from watch_data_temperature force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - order by time_stamp desc - limit 1) d on d.bind_user_id = wd.userid + update watch_data wd set wd.orgcode = #{orgcode,jdbcType=VARCHAR}, - wd.data_value = d.data_value, - wd.last_update_time = d.data_date + wd.data_value = (select data_value from ( + select bind_user_id, data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_temperature + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + ) where rn = 1), + wd.last_update_time = (select data_date from ( + select bind_user_id, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn + from watch_data_temperature + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + ) where rn = 1) where userid = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - and `type` = 5; + and watch_no = #{watchNo,jdbcType=VARCHAR} + and "type" = 5; insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time) (select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 6, sum(calorie), data_date - from watch_data_workout force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - group by bind_user_id, watch_no, data_date - order by data_date desc - limit 1); + from (select bind_user_id, watch_no, sum(calorie) as calorie, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_workout + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date) + where rn = 1); - update watch_data wd left join (select bind_user_id, sum(calorie) as data_value, data_date - from watch_data_workout force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - group by bind_user_id, watch_no, data_date - order by data_date desc - limit 1) d on d.bind_user_id = wd.userid + update watch_data wd set wd.orgcode = #{orgcode,jdbcType=VARCHAR}, - wd.data_value = d.data_value, - wd.last_update_time = d.data_date + wd.data_value = (select sum(calorie) from ( + select bind_user_id, watch_no, sum(calorie) as calorie, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_workout + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date + ) where rn = 1), + wd.last_update_time = (select data_date from ( + select bind_user_id, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_workout + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date + ) where rn = 1) where userid = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - and `type` = 6; + and watch_no = #{watchNo,jdbcType=VARCHAR} + and "type" = 6; insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time) (select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 7, max(data_value), data_date - from watch_data_distance force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - group by bind_user_id, watch_no, data_date - order by data_date desc - limit 1); + from (select bind_user_id, watch_no, max(data_value) as data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_distance + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date) + where rn = 1); - update watch_data wd left join (select bind_user_id,max(data_value) as data_value, data_date - from watch_data_distance force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - group by bind_user_id, watch_no, data_date - order by data_date desc - limit 1) d on d.bind_user_id = wd.userid + update watch_data wd set wd.orgcode = #{orgcode,jdbcType=VARCHAR}, - wd.data_value = d.data_value, - wd.last_update_time = d.data_date + wd.data_value = (select max(data_value) from ( + select bind_user_id, watch_no, max(data_value) as data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_distance + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date + ) where rn = 1), + wd.last_update_time = (select data_date from ( + select bind_user_id, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_distance + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date + ) where rn = 1) where userid = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - and `type` = 7; + and watch_no = #{watchNo,jdbcType=VARCHAR} + and "type" = 7; insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time) (select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 8, max(data_value), data_date - from watch_data_steps force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - group by bind_user_id, watch_no, data_date - order by data_date desc - limit 1); + from (select bind_user_id, watch_no, max(data_value) as data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_steps + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date) + where rn = 1); - update watch_data wd left join (select bind_user_id,max(data_value) as data_value, data_date - from watch_data_steps force index (bind_user_id) - where bind_user_id = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - group by bind_user_id, watch_no, data_date - order by data_date desc - limit 1) d on d.bind_user_id = wd.userid + update watch_data wd set wd.orgcode = #{orgcode,jdbcType=VARCHAR}, - wd.data_value = d.data_value, - wd.last_update_time = d.data_date + wd.data_value = (select max(data_value) from ( + select bind_user_id, watch_no, max(data_value) as data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_steps + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date + ) where rn = 1), + wd.last_update_time = (select data_date from ( + select bind_user_id, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn + from watch_data_steps + where bind_user_id = #{userid,jdbcType=VARCHAR} + and watch_no = #{watchNo,jdbcType=VARCHAR} + group by bind_user_id, watch_no, data_date + ) where rn = 1) where userid = #{userid,jdbcType=VARCHAR} - and watch_no = #{watchNo,jdbcType=VARCHAR} - and `type` = 8; + and watch_no = #{watchNo,jdbcType=VARCHAR} + and "type" = 8; diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataSleepNewMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataSleepNewMapper.xml index 9d0a2a9..b7088bc 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataSleepNewMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataSleepNewMapper.xml @@ -34,7 +34,7 @@ wdsnm.start_time as startTime, wdsnm.end_time as endTime, wdsnm.sleep_type as sleepType, - TIMESTAMPDIFF(MINUTE,wdsnm.start_time,wdsnm.end_time) as times + EXTRACT(MINUTE FROM (wdsnm.end_time - wdsnm.start_time)) as times from watch_data_sleep_new wdsn inner join watch_data_sleep_new_minute wdsnm on wdsnm.sleep_id=wdsn.id diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataSpo2Mapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataSpo2Mapper.xml index 7fda930..bacaf4b 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataSpo2Mapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataSpo2Mapper.xml @@ -5,9 +5,9 @@ SELECT * FROM - `watch_data_spo2` + "watch_data_spo2" WHERE - YEAR ( data_date )= #{req.dateYear} + EXTRACT(YEAR FROM data_date) = #{req.dateYear} AND bind_user_id=#{req.userId} order by data_date desc,time_stamp desc diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataStressMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataStressMapper.xml index 0725540..644a58c 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataStressMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataStressMapper.xml @@ -5,9 +5,9 @@ SELECT * FROM - `watch_data_stress` + "watch_data_stress" WHERE - YEAR ( data_date )= #{req.dateYear} + EXTRACT(YEAR FROM data_date) = #{req.dateYear} AND bind_user_id=#{req.userId} order by data_date desc,start_time_stamp asc ,end_time_stamp asc diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataTemperatureMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataTemperatureMapper.xml index 72ea26a..773defd 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataTemperatureMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataTemperatureMapper.xml @@ -5,9 +5,9 @@ SELECT * FROM - `watch_data_temperature` + "watch_data_temperature" WHERE - YEAR ( data_date )= #{req.dateYear} + EXTRACT(YEAR FROM data_date) = #{req.dateYear} AND bind_user_id=#{req.userId} order by data_date desc, diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataWorkoutMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataWorkoutMapper.xml index a56ec9e..2e754bb 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataWorkoutMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchDataWorkoutMapper.xml @@ -5,7 +5,7 @@ @@ -193,7 +197,7 @@ bind_user_id = #{watchDataWorkout.bindUserId} and DATE(start_time_stamp) >= DATE(#{watchDataWorkout.startTime}) and DATE(start_time_stamp) <= DATE(#{watchDataWorkout.endTime}) - and FIND_IN_SET(workout_type,'1,2,3,109,144,6,7,101,113,145') + and INSTR(',' || '1,2,3,109,144,6,7,101,113,145' || ',', ',' || workout_type || ',') > 0 order by start_time_stamp @@ -240,8 +244,10 @@ @@ -147,7 +153,7 @@ count(1) from watch_device where org_code = #{orgCode} - and Date(create_date) #{endDate} + and TRUNC(create_date) #{endDate} @@ -425,7 +431,7 @@ COALESCE(steps.step_value, 0) AS stepValue, COALESCE(steps.last_upload_time, NULL) AS stepTime, COALESCE(workout.start_time_stamp, NULL) AS durationTime, - COALESCE(TIMESTAMPDIFF(MINUTE, workout.start_time_stamp, workout.end_time_stamp),0) AS durationTotalValue, + COALESCE(EXTRACT(MINUTE FROM (workout.end_time_stamp - workout.start_time_stamp)),0) AS durationTotalValue, workout.workout_type AS workoutType, COALESCE(hr.errorNum, 0) AS rateAbnormalValue, diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchMapper.xml index 9ada8be..625cb4e 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchMapper.xml @@ -109,7 +109,7 @@ AND TO_CHAR(data_date, 'YYYY-MM') = #{date} ORDER BY data_date DESC - LIMIT #{pageSize} OFFSET #{startNo} + OFFSET #{startNo} ROWS FETCH NEXT #{pageSize} ROWS ONLY diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySdcMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySdcMapper.xml index fc4fc3e..3c1263e 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySdcMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySdcMapper.xml @@ -6,15 +6,15 @@ SELECT id as id , user_id as userId, - step_value as `stepValue`, + step_value as "stepValue", distance_value as distanceValue, calorie_value as calorieValue, data_date as dataDate, TO_CHAR( data_date, 'MM' ) AS dateStr FROM - `watch_stat_user_info_day_sdc` + "watch_stat_user_info_day_sdc" WHERE - YEAR ( data_date )= #{dateYear} + EXTRACT(YEAR FROM data_date) = #{dateYear} and user_id=#{userId} @@ -22,14 +22,14 @@ SELECT id as id , user_id as userId, - step_value as `stepValue`, + step_value as "stepValue", distance_value as distanceValue, calorie_value as calorieValue, data_date as dataDate FROM - `watch_stat_user_info_day_sdc` + "watch_stat_user_info_day_sdc" WHERE - YEAR ( data_date )= #{req.dateYear} + EXTRACT(YEAR FROM data_date) = #{req.dateYear} and user_id=#{req.userId} order by data_date desc @@ -170,26 +170,26 @@ (select #{id,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, (select max(data_value) - from watch_data_steps force index (bind_user_id) - where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE} - group by data_date - order by data_date desc - limit 1) as step_value, + from (select data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn + from watch_data_steps + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) + where rn = 1) as step_value, (select max(data_value) - from watch_data_distance force index (bind_user_id) - where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE} - group by data_date - order by data_date desc - limit 1) as distance_value, + from (select data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn + from watch_data_distance + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) + where rn = 1) as distance_value, (select max(data_value) - from watch_data_calorie force index (bind_user_id) - where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE} - group by data_date - order by data_date desc - limit 1) as calorie_value, + from (select data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn + from watch_data_calorie + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) + where rn = 1) as calorie_value, #{lastUploadTime,jdbcType=TIMESTAMP}, #{dataDate,jdbcType=DATE}, #{orgCode,jdbcType=VARCHAR} @@ -198,34 +198,27 @@ update watch_stat_user_info_day_sdc stat - left join (select #{userId,jdbcType=VARCHAR} as bind_user_id, - (select max(data_value) - from watch_data_steps force index (bind_user_id) - where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE} - group by data_date - order by data_date desc - limit 1) as step_value, - (select max(data_value) - from watch_data_distance force index (bind_user_id) - where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE} - group by data_date - order by data_date desc - limit 1) as distance_value, - (select max(data_value) - from watch_data_calorie force index (bind_user_id) - where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE} - group by data_date - order by data_date desc - limit 1) as calorie_value, - #{lastUploadTime,jdbcType=TIMESTAMP} as last_upload_time, - #{dataDate,jdbcType=DATE} as data_date - from dual) data on stat.user_id = data.bind_user_id - set stat.step_value = data.step_value, - stat.distance_value = data.distance_value, - stat.calorie_value = data.calorie_value, + set stat.step_value = (select max(data_value) + from (select data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn + from watch_data_steps + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) + where rn = 1), + stat.distance_value = (select max(data_value) + from (select data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn + from watch_data_distance + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) + where rn = 1), + stat.calorie_value = (select max(data_value) + from (select data_value, data_date, + ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn + from watch_data_calorie + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) + where rn = 1), stat.last_upload_time = #{lastUploadTime,jdbcType=TIMESTAMP}, stat.org_code = #{orgCode,jdbcType=VARCHAR} where stat.user_id = #{userId,jdbcType=VARCHAR} diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySleepMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySleepMapper.xml index c80454a..f24a7bf 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySleepMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySleepMapper.xml @@ -6,7 +6,7 @@ SELECT id as id , user_id as userId, - sleep_avg as `sleepAvg`, + sleep_avg as "sleepAvg", long_duration_avg as longDurationAvg, short_duration_avg as shortDurationAvg, long_duration_max as longDurationMax, @@ -18,9 +18,9 @@ data_date as dataDate, TO_CHAR( data_date, 'MM' ) AS dateStr FROM - `watch_stat_user_info_day_sleep` + "watch_stat_user_info_day_sleep" WHERE - YEAR ( data_date )= #{dateYear} + EXTRACT(YEAR FROM data_date) = #{dateYear} and user_id=#{userId} diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySpo2Mapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySpo2Mapper.xml index 2d77326..dd1c3e7 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySpo2Mapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDaySpo2Mapper.xml @@ -6,15 +6,15 @@ SELECT id as id , user_id as userId, - max_value as `maxValue`, + max_value as "maxValue", min_value as minValue, avg_value as avgValue, data_date as dataDate, TO_CHAR( data_date, 'MM' ) AS dateStr FROM - `watch_stat_user_info_day_spo2` + "watch_stat_user_info_day_spo2" WHERE - YEAR ( data_date )= #{dateYear} + EXTRACT(YEAR FROM data_date) = #{dateYear} and user_id=#{userId} @@ -36,16 +36,16 @@ group by user_id - + insert into watch_stat_user_info_day_spo2(id, user_id, max_value, min_value, avg_value, last_upload_time, new_value, data_date, org_code) (SELECT #{id,jdbcType=VARCHAR}, bind_user_id, - IFNULL(MAX(wd.data_value), 0), - IFNULL(MIN(wd.data_value), 0), - IFNULL(AVG(wd.data_value), 0), - IFNULL(MAX(wd.time_stamp), 0), + NVL(MAX(wd.data_value), 0), + NVL(MIN(wd.data_value), 0), + NVL(AVG(wd.data_value), 0), + NVL(MAX(wd.time_stamp), TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')), MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END), data_date, #{orgCode,jdbcType=VARCHAR} @@ -57,32 +57,40 @@ wd.data_date); - + UPDATE watch_stat_user_info_day_spo2 stat - LEFT JOIN ( - SELECT - wd.bind_user_id, - wd.data_date, - IFNULL( MAX( wd.data_value ), 0 ) AS max_value, - IFNULL( MIN( wd.data_value ), 0 ) AS min_value, - IFNULL( AVG( wd.data_value ), 0 ) AS avg_value, - IFNULL( MAX( wd.time_stamp ), 0 ) AS last_upload_time, - MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ) AS new_value - FROM - ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn FROM watch_data_spo2 where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE}) wd - GROUP BY - wd.bind_user_id, - wd.data_date - ) DATA ON stat.user_id = DATA.bind_user_id - AND stat.data_date = DATA.data_date - SET stat.max_value = DATA.max_value, - stat.min_value = DATA.min_value, - stat.avg_value = DATA.avg_value, - stat.last_upload_time = DATA.last_upload_time, - stat.new_value = DATA.new_value, - stat.org_code = #{orgCode,jdbcType=VARCHAR} + SET stat.max_value = (SELECT NVL(MAX(wd.data_value), 0) AS max_value + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_spo2 + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.min_value = (SELECT NVL(MIN(wd.data_value), 0) AS min_value + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_spo2 + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.avg_value = (SELECT NVL(AVG(wd.data_value), 0) AS avg_value + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_spo2 + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.last_upload_time = (SELECT NVL(MAX(wd.time_stamp), TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_spo2 + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.new_value = (SELECT MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_spo2 + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.org_code = #{orgCode,jdbcType=VARCHAR} where stat.user_id = #{userId,jdbcType=VARCHAR} and stat.data_date = #{dataDate,jdbcType=DATE}; diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDayStressMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDayStressMapper.xml index e7be21f..25d182d 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDayStressMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDayStressMapper.xml @@ -6,35 +6,35 @@ SELECT id as id , user_id as userId, - max_value as `maxValue`, + max_value as "maxValue", min_value as minValue, avg_value as avgValue, data_date as dataDate, TO_CHAR( data_date, 'MM' ) AS dateStr FROM - `watch_stat_user_info_day_stress` + "watch_stat_user_info_day_stress" WHERE - YEAR ( data_date )= #{dateYear} + EXTRACT(YEAR FROM data_date) = #{dateYear} and user_id=#{userId} - + insert into watch_stat_user_info_day_stress(id, user_id, max_value, min_value, avg_value, data_date, last_upload_time, new_value, org_code) ( SELECT #{id,jdbcType=VARCHAR}, bind_user_id, - IFNULL( MAX( wd.data_value ), 0 ), - IFNULL( MIN( wd.data_value ), 0 ), - IFNULL( AVG( wd.data_value ), 0 ), + NVL(MAX(wd.data_value), 0), + NVL(MIN(wd.data_value), 0), + NVL(AVG(wd.data_value), 0), data_date, - IFNULL(MAX( wd.end_time_stamp ),NOW()), - MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ), + NVL(MAX(wd.end_time_stamp), SYSDATE), + MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END), #{orgCode,jdbcType=VARCHAR} FROM - ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn FROM watch_data_stress + (SELECT *, ROW_NUMBER() OVER (PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC) AS rn FROM watch_data_stress where bind_user_id = #{userId,jdbcType=VARCHAR} and data_date = #{dataDate,jdbcType=DATE}) wd GROUP BY @@ -43,34 +43,41 @@ ); - + UPDATE watch_stat_user_info_day_stress stat - LEFT JOIN ( - SELECT - wd.bind_user_id, - wd.data_date, - IFNULL( MAX( wd.data_value ), 0 ) AS max_value, - IFNULL( MIN( wd.data_value ), 0 ) AS min_value, - IFNULL( AVG( wd.data_value ), 0 ) AS avg_value, - IFNULL(MAX( wd.end_time_stamp ),NOW()) AS last_upload_time, - MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ) AS new_value - FROM - ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn FROM watch_data_stress - where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE}) wd - GROUP BY - wd.bind_user_id, - wd.data_date - ) DATA ON stat.user_id = DATA.bind_user_id - AND stat.data_date = DATA.data_date - SET stat.max_value = DATA.max_value, - stat.min_value = DATA.min_value, - stat.avg_value = DATA.avg_value, - stat.last_upload_time = DATA.last_upload_time, - stat.new_value = DATA.new_value, - stat.org_code = #{orgCode,jdbcType=VARCHAR} - where stat.user_id = #{userId,jdbcType=VARCHAR} - and stat.data_date = #{dataDate,jdbcType=DATE}; + SET stat.max_value = (SELECT NVL(MAX(wd.data_value), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn + FROM watch_data_stress + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.min_value = (SELECT NVL(MIN(wd.data_value), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn + FROM watch_data_stress + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.avg_value = (SELECT NVL(AVG(wd.data_value), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn + FROM watch_data_stress + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.last_upload_time = (SELECT NVL(MAX(wd.end_time_stamp), SYSDATE) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn + FROM watch_data_stress + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.new_value = (SELECT MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn + FROM watch_data_stress + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.org_code = #{orgCode,jdbcType=VARCHAR} + where stat.user_id = #{userId,jdbcType=VARCHAR} + and stat.data_date = #{dataDate,jdbcType=DATE}; \ No newline at end of file diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDayTempMapper.xml b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDayTempMapper.xml index 184be30..fb78450 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDayTempMapper.xml +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/mapper/xml/WatchStatUserInfoDayTempMapper.xml @@ -34,20 +34,19 @@ order by data_date - + - insert into watch_stat_user_info_day_temp(id, user_id, max_value, min_value, avg_value, skin_max_value, - skin_min_value, skin_avg_value, last_upload_time, new_value, - skin_new_value, data_date, org_code) + insert into watch_stat_user_info_day_temp(id, user_id, max_value, min_value, avg_value, skin_max_value, skin_min_value, + skin_avg_value, last_upload_time, new_value, skin_new_value, data_date, org_code) (SELECT #{id,jdbcType=VARCHAR}, bind_user_id, - IFNULL(MAX(wd.data_value), 0), - IFNULL(MIN(wd.data_value), 0), - IFNULL(AVG(wd.data_value), 0), - IFNULL(MAX(wd.skin_tempera), 0), - IFNULL(MIN(wd.skin_tempera), 0), - IFNULL(AVG(wd.skin_tempera), 0), - IFNULL(MAX(wd.time_stamp), NOW()), + NVL(MAX(wd.data_value), 0), + NVL(MIN(wd.data_value), 0), + NVL(AVG(wd.data_value), 0), + NVL(MAX(wd.skin_tempera), 0), + NVL(MIN(wd.skin_tempera), 0), + NVL(AVG(wd.skin_tempera), 0), + NVL(MAX(wd.time_stamp), SYSDATE), MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END), MAX(CASE WHEN wd.rn = 1 THEN wd.skin_tempera END), data_date, @@ -60,44 +59,65 @@ wd.data_date); - + UPDATE watch_stat_user_info_day_temp stat - LEFT JOIN ( - SELECT - wd.bind_user_id, - wd.data_date, - IFNULL( MAX( wd.data_value ), 0 ) AS max_value, - IFNULL( MIN( wd.data_value ), 0 ) AS min_value, - IFNULL( AVG( wd.data_value ), 0 ) AS avg_value, - IFNULL( MAX( wd.skin_tempera ), 0 ) AS skin_max_value, - IFNULL( MIN( wd.skin_tempera ), 0 ) AS skin_min_value, - IFNULL( AVG( wd.skin_tempera ), 0 ) AS skin_avg_value, - IFNULL( - MAX( wd.time_stamp ), - NOW()) AS last_upload_time, - MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ) AS new_value, - MAX( CASE WHEN wd.rn = 1 THEN wd.skin_tempera END ) AS skin_new_value - FROM - ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn FROM watch_data_temperature - where bind_user_id = #{userId,jdbcType=VARCHAR} - and data_date = #{dataDate,jdbcType=DATE}) wd - GROUP BY - wd.bind_user_id, - wd.data_date - ) DATA ON stat.user_id = DATA.bind_user_id - AND stat.data_date = DATA.data_date - SET stat.max_value = DATA.max_value, - stat.min_value = DATA.min_value, - stat.avg_value = DATA.avg_value, - stat.skin_max_value = DATA.skin_max_value, - stat.skin_min_value = DATA.skin_min_value, - stat.skin_avg_value = DATA.skin_avg_value, - stat.last_upload_time = DATA.last_upload_time, - stat.new_value = DATA.new_value, - stat.skin_new_value = COALESCE ( NULLIF( DATA.skin_new_value, 0 ), stat.skin_new_value ), - stat.org_code = #{orgCode,jdbcType=VARCHAR} - where stat.user_id = #{userId,jdbcType=VARCHAR} - and stat.data_date = #{dataDate,jdbcType=DATE}; + SET stat.max_value = (SELECT NVL(MAX(wd.data_value), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.min_value = (SELECT NVL(MIN(wd.data_value), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.avg_value = (SELECT NVL(AVG(wd.data_value), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.skin_max_value = (SELECT NVL(MAX(wd.skin_tempera), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.skin_min_value = (SELECT NVL(MIN(wd.skin_tempera), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.skin_avg_value = (SELECT NVL(AVG(wd.skin_tempera), 0) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.last_upload_time = (SELECT NVL(MAX(wd.time_stamp), SYSDATE) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.new_value = (SELECT MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.skin_new_value = (SELECT NVL(MAX(CASE WHEN wd.rn = 1 THEN wd.skin_tempera END), stat.skin_new_value) + FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn + FROM watch_data_temperature + where bind_user_id = #{userId,jdbcType=VARCHAR} + and data_date = #{dataDate,jdbcType=DATE}) wd + GROUP BY wd.bind_user_id, wd.data_date), + stat.org_code = #{orgCode,jdbcType=VARCHAR} + where stat.user_id = #{userId,jdbcType=VARCHAR} + and stat.data_date = #{dataDate,jdbcType=DATE}; diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchBindHisServiceImpl.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchBindHisServiceImpl.java index 2e7cb7e..5cce0f8 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchBindHisServiceImpl.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchBindHisServiceImpl.java @@ -158,7 +158,7 @@ public class WatchBindHisServiceImpl extends ServiceImpl().eq(WatchBindHis::getBindUserId, bindUserId) - .eq(WatchBindHis::getBindDate, bindDate).orderByDesc(WatchBindHis::getBindDate).last("LIMIT 1")); + WatchBindHis watchBindHis = getOne(new LambdaQueryWrapper() + .eq(WatchBindHis::getBindUserId, bindUserId) + .eq(WatchBindHis::getBindDate, bindDate) + .orderByDesc(WatchBindHis::getBindDate) + .last("FETCH FIRST 1 ROWS ONLY")); if (watchBindHis != null) { return watchBindHis.getWatchNo(); } diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchDeviceServiceImpl.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchDeviceServiceImpl.java index a773a82..f830e7d 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchDeviceServiceImpl.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchDeviceServiceImpl.java @@ -812,7 +812,7 @@ public class WatchDeviceServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(WatchBindHis::getBindUserId, userId).orderByDesc(WatchBindHis::getBindDate).last(" limit 1"); + queryWrapper.eq(WatchBindHis::getBindUserId, userId) + .orderByDesc(WatchBindHis::getBindDate) + .last("FETCH FIRST 1 ROWS ONLY"); WatchBindHis watchBindHis = watchBindHisMapper.selectOne(queryWrapper); if (watchBindHis != null) { return watchBindHis.getWatchNo(); diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchServiceImpl.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchServiceImpl.java index 9edd57f..d0599f5 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchServiceImpl.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchServiceImpl.java @@ -586,7 +586,7 @@ public class WatchServiceImpl implements IWatchService { wrapper.selectAs(WatchStatUserInfoDaySleep::getDataDate,WatchH5IndexItemNewVo::getDataDate); wrapper.eq(WatchStatUserInfoDaySleep::getUserId, userId); wrapper.orderByDesc(WatchStatUserInfoDaySleep::getDataDate); - wrapper.last("limit 1"); + wrapper.last("FETCH FIRST 1 ROWS ONLY"); return daySleepMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper); } @@ -597,13 +597,13 @@ public class WatchServiceImpl implements IWatchService { wrapper.selectAs(WatchStatUserInfoDaySdc::getDataDate,WatchH5IndexItemNewVo::getDataDate); wrapper.eq(WatchStatUserInfoDaySdc::getUserId, userId); wrapper.orderByDesc(WatchStatUserInfoDaySdc::getDataDate); - wrapper.last("limit 1"); + wrapper.last("FETCH FIRST 1 ROWS ONLY"); return statSdcMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper); } private WatchH5IndexItemNewVo latestHeartRateData(String userId) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); - // 必须是watch_stat_user_info_day_heart_rate表中new_data字段启用后才能这样查 + // 必须是 watch_stat_user_info_day_heart_rate 表中 new_data 字段启用后才能这样查 wrapper.selectAs(WatchStatUserInfoDayHeartRate::getNewValue,WatchH5IndexItemNewVo::getDataValue); wrapper.selectAs(WatchStatUserInfoDayHeartRate::getMaxValue,WatchH5IndexItemNewVo::getDataMax); wrapper.selectAs(WatchStatUserInfoDayHeartRate::getMinValue,WatchH5IndexItemNewVo::getDataMin); @@ -611,13 +611,13 @@ public class WatchServiceImpl implements IWatchService { wrapper.selectAs(WatchStatUserInfoDayHeartRate::getDataDate,WatchH5IndexItemNewVo::getDataDate); wrapper.eq(WatchStatUserInfoDayHeartRate::getUserId, userId); wrapper.orderByDesc(WatchStatUserInfoDayHeartRate::getDataDate); - wrapper.last("limit 1"); + wrapper.last("FETCH FIRST 1 ROWS ONLY"); return dayHeartRateMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper); } private WatchH5IndexItemNewVo latestSpo2Data(String userId) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); - // 必须是watch_stat_user_info_day_spo2表中new_data字段启用后才能这样查 + // 必须是 watch_stat_user_info_day_spo2 表中 new_data 字段启用后才能这样查 wrapper.selectAs(WatchStatUserInfoDaySpo2::getNewValue,WatchH5IndexItemNewVo::getDataValue); wrapper.selectAs(WatchStatUserInfoDaySpo2::getMaxValue,WatchH5IndexItemNewVo::getDataMax); wrapper.selectAs(WatchStatUserInfoDaySpo2::getMinValue,WatchH5IndexItemNewVo::getDataMin); @@ -625,13 +625,13 @@ public class WatchServiceImpl implements IWatchService { wrapper.selectAs(WatchStatUserInfoDaySpo2::getDataDate,WatchH5IndexItemNewVo::getDataDate); wrapper.eq(WatchStatUserInfoDaySpo2::getUserId, userId); wrapper.orderByDesc(WatchStatUserInfoDaySpo2::getDataDate); - wrapper.last("limit 1"); + wrapper.last("FETCH FIRST 1 ROWS ONLY"); return daySpo2Mapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper); } private WatchH5IndexItemNewVo latestStressData(String userId) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); - // 必须是watch_stat_user_info_day_stress表中new_data字段启用后才能这样查 + // 必须是 watch_stat_user_info_day_stress 表中 new_data 字段启用后才能这样查 wrapper.selectAs(WatchStatUserInfoDayStress::getNewValue,WatchH5IndexItemNewVo::getDataValue); wrapper.selectAs(WatchStatUserInfoDayStress::getMaxValue,WatchH5IndexItemNewVo::getDataMax); wrapper.selectAs(WatchStatUserInfoDayStress::getMinValue,WatchH5IndexItemNewVo::getDataMin); @@ -639,13 +639,13 @@ public class WatchServiceImpl implements IWatchService { wrapper.selectAs(WatchStatUserInfoDayStress::getDataDate,WatchH5IndexItemNewVo::getDataDate); wrapper.eq(WatchStatUserInfoDayStress::getUserId, userId); wrapper.orderByDesc(WatchStatUserInfoDayStress::getDataDate); - wrapper.last("limit 1"); + wrapper.last("FETCH FIRST 1 ROWS ONLY"); return dayStressMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper); } private WatchH5IndexItemNewVo latestTempData(String userId) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); - // 必须是watch_stat_user_info_day_temp表中new_data字段启用后才能这样查 + // 必须是 watch_stat_user_info_day_temp 表中 new_data 字段启用后才能这样查 wrapper.selectAs(WatchStatUserInfoDayTemp::getNewValue,WatchH5IndexItemNewVo::getDataValue); wrapper.selectAs(WatchStatUserInfoDayTemp::getMaxValue,WatchH5IndexItemNewVo::getDataMax); wrapper.selectAs(WatchStatUserInfoDayTemp::getMinValue,WatchH5IndexItemNewVo::getDataMin); @@ -653,7 +653,7 @@ public class WatchServiceImpl implements IWatchService { wrapper.selectAs(WatchStatUserInfoDayTemp::getDataDate,WatchH5IndexItemNewVo::getDataDate); wrapper.eq(WatchStatUserInfoDayTemp::getUserId, userId); wrapper.orderByDesc(WatchStatUserInfoDayTemp::getDataDate); - wrapper.last("limit 1"); + wrapper.last("FETCH FIRST 1 ROWS ONLY"); return dayTempMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper); } @@ -662,7 +662,7 @@ public class WatchServiceImpl implements IWatchService { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(WatchBindHis::getBindUserId, userId); wrapper.orderByDesc(WatchBindHis::getBindDate); - wrapper.last("limit 1"); + wrapper.last("FETCH FIRST 1 ROWS ONLY"); return bindHisMapper.selectOne(wrapper); } @@ -903,8 +903,10 @@ public class WatchServiceImpl implements IWatchService { WatchH5WorkoutDayVo watchH5WorkoutDayVo = new WatchH5WorkoutDayVo(); WatchBindHis watchBindHis = bindHisMapper.selectOne(new LambdaQueryWrapper() - .eq(WatchBindHis::getBindUserId, userId).le(WatchBindHis::getBindDate, queryDate) - .orderByDesc(WatchBindHis::getBindDate).last("limit 1")); + .eq(WatchBindHis::getBindUserId, userId) + .le(WatchBindHis::getBindDate, queryDate) + .orderByDesc(WatchBindHis::getBindDate) + .last("FETCH FIRST 1 ROWS ONLY")); String watchNo = null; if (watchBindHis != null) { @@ -1021,8 +1023,10 @@ public class WatchServiceImpl implements IWatchService { } WatchH5StepsDayVo watchH5StepsDayVo = this.getStepsData(userId, queryDate); WatchBindHis watchBindHis = bindHisMapper.selectOne(new LambdaQueryWrapper() - .eq(WatchBindHis::getBindUserId, userId).le(WatchBindHis::getBindDate, queryDate) - .orderByDesc(WatchBindHis::getBindDate).last("limit 1")); + .eq(WatchBindHis::getBindUserId, userId) + .le(WatchBindHis::getBindDate, queryDate) + .orderByDesc(WatchBindHis::getBindDate) + .last("FETCH FIRST 1 ROWS ONLY")); String watchNo = null; if (watchBindHis != null) { watchNo = watchBindHis.getWatchNo(); @@ -1082,8 +1086,10 @@ public class WatchServiceImpl implements IWatchService { public WatchH5WorkoutResultVO getWorkoutWeekDayList(String userId, Date queryDate) { WatchBindHis watchBindHis = bindHisMapper.selectOne(new LambdaQueryWrapper() - .eq(WatchBindHis::getBindUserId, userId).le(WatchBindHis::getBindDate, queryDate) - .orderByDesc(WatchBindHis::getBindDate).last("limit 1")); + .eq(WatchBindHis::getBindUserId, userId) + .le(WatchBindHis::getBindDate, queryDate) + .orderByDesc(WatchBindHis::getBindDate) + .last("FETCH FIRST 1 ROWS ONLY")); String watchNo = null; if (watchBindHis != null) { watchNo = watchBindHis.getWatchNo(); @@ -1103,8 +1109,10 @@ public class WatchServiceImpl implements IWatchService { @Override public WatchH5StepsResultVO getStepsWeekDayList(String userId, Date queryDate) { WatchBindHis watchBindHis = bindHisMapper.selectOne(new LambdaQueryWrapper() - .eq(WatchBindHis::getBindUserId, userId).le(WatchBindHis::getBindDate, queryDate) - .orderByDesc(WatchBindHis::getBindDate).last("limit 1")); + .eq(WatchBindHis::getBindUserId, userId) + .le(WatchBindHis::getBindDate, queryDate) + .orderByDesc(WatchBindHis::getBindDate) + .last("FETCH FIRST 1 ROWS ONLY")); String watchNo = null; if (watchBindHis != null) { watchNo = watchBindHis.getWatchNo(); diff --git a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchSynMaxIdServiceImpl.java b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchSynMaxIdServiceImpl.java index 9f19e76..03107a4 100644 --- a/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchSynMaxIdServiceImpl.java +++ b/health-watch/health-watch-biz/src/main/java/com/renkang/watch/service/impl/WatchSynMaxIdServiceImpl.java @@ -23,7 +23,9 @@ public class WatchSynMaxIdServiceImpl extends ServiceImpl() - .eq("wd_type", wdType).last("limit 1")); + .eq("wd_type", wdType) + .orderByDesc("max_id") + .last("FETCH FIRST 1 ROWS ONLY")); if (watchSynMaxId != null) { return watchSynMaxId.getMaxId() == null ? "0" : watchSynMaxId.getMaxId(); } @@ -34,7 +36,9 @@ public class WatchSynMaxIdServiceImpl extends ServiceImpl() - .eq("wd_type", wdType).last("limit 1")); + .eq("wd_type", wdType) + .orderByDesc("max_id") + .last("FETCH FIRST 1 ROWS ONLY")); if (watchSynMaxId != null) { if (StrUtil.isNotEmpty(maxId)) { watchSynMaxId.setMaxId(maxId);