diff --git a/xinelu-admin/src/main/java/com/xinelu/web/controller/familydoctor/PhysicalSignController.java b/xinelu-admin/src/main/java/com/xinelu/web/controller/familydoctor/PhysicalSignController.java index bee20b7..55685e2 100644 --- a/xinelu-admin/src/main/java/com/xinelu/web/controller/familydoctor/PhysicalSignController.java +++ b/xinelu-admin/src/main/java/com/xinelu/web/controller/familydoctor/PhysicalSignController.java @@ -4,6 +4,7 @@ import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.R; import com.xinelu.familydoctor.entity.*; import com.xinelu.familydoctor.service.PhysicalSignService; +import com.xinelu.familydoctor.vo.PhysicalLastRecordVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -11,6 +12,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; import java.util.Map; /** @@ -83,4 +85,11 @@ public class PhysicalSignController extends BaseController { Map map = physicalSignService.record(identity, type, label); return R.ok(map); } + + @ApiOperation("获取最后一次体征记录") + @GetMapping("record/last/{identity}") + @ApiImplicitParam(name = "identity", value = "身份证号", required = true) + public R> lastRecord(@PathVariable String identity) { + return R.ok(physicalSignService.getLastRecord(identity)); + } } diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBfRecord.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBfRecord.java index 7f798ad..726428b 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBfRecord.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBfRecord.java @@ -55,7 +55,7 @@ public class DeviceBfRecord implements Serializable { /** * 测量时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") @ApiModelProperty("测量时间") private Date measureTime; diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBgRecord.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBgRecord.java index c280e7c..6fab43a 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBgRecord.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBgRecord.java @@ -43,7 +43,7 @@ public class DeviceBgRecord implements Serializable { /** * 测量时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") @ApiModelProperty("测量时间") private Date measureTime; diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBmiRecord.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBmiRecord.java index 43cfa46..9dc2fb6 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBmiRecord.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBmiRecord.java @@ -28,6 +28,18 @@ public class DeviceBmiRecord implements Serializable { @ApiModelProperty("居民身份证号") private String identity; + /** + * 身高(cm) + */ + @ApiModelProperty("身高(cm)") + private BigDecimal height; + + /** + * 体重(kg) + */ + @ApiModelProperty("体重(kg)") + private BigDecimal weight; + /** * BMI(单位:kg/m^2) */ @@ -37,7 +49,7 @@ public class DeviceBmiRecord implements Serializable { /** * 测量时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") @ApiModelProperty("测量时间") private Date measureTime; diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBoRecord.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBoRecord.java index 6ba73cf..5fe559b 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBoRecord.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBoRecord.java @@ -42,7 +42,7 @@ public class DeviceBoRecord implements Serializable { /** * 测量时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") @ApiModelProperty("测量时间") private Date measureTime; diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBpRecord.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBpRecord.java index 371ef25..db10f3b 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBpRecord.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceBpRecord.java @@ -48,7 +48,7 @@ public class DeviceBpRecord implements Serializable { /** * 测量时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") @ApiModelProperty("测量时间") private Date measureTime; diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceHrRecord.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceHrRecord.java index 12f31af..adfe60f 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceHrRecord.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceHrRecord.java @@ -36,7 +36,7 @@ public class DeviceHrRecord implements Serializable { /** * 测量时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") @ApiModelProperty("测量时间") private Date measureTime; diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceTempRecord.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceTempRecord.java index 9b3c6dd..462946d 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceTempRecord.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/entity/DeviceTempRecord.java @@ -37,7 +37,7 @@ public class DeviceTempRecord implements Serializable { /** * 测量时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") @ApiModelProperty("测量时间") private Date measureTime; diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/mapper/DeviceBgRecordMapper.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/mapper/DeviceBgRecordMapper.java index e8ddbfe..f0665ac 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/mapper/DeviceBgRecordMapper.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/mapper/DeviceBgRecordMapper.java @@ -2,6 +2,7 @@ package com.xinelu.familydoctor.mapper; import com.xinelu.familydoctor.entity.DeviceBgRecord; import com.xinelu.familydoctor.vo.BgCalcVO; +import com.xinelu.familydoctor.vo.PhysicalLastRecordVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -38,4 +39,5 @@ public interface DeviceBgRecordMapper { int update(DeviceBgRecord record); + List getLastRecord(String identity); } diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/service/PhysicalSignService.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/service/PhysicalSignService.java index e02cffc..8aae3f9 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/service/PhysicalSignService.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/service/PhysicalSignService.java @@ -1,7 +1,9 @@ package com.xinelu.familydoctor.service; import com.xinelu.familydoctor.entity.*; +import com.xinelu.familydoctor.vo.PhysicalLastRecordVO; +import java.util.List; import java.util.Map; public interface PhysicalSignService { @@ -22,4 +24,13 @@ public interface PhysicalSignService { * @date 2023-10-9 10:10 */ Map record(String identity, String type, String label); + + /** + * 获取最后一次记录 + * @param identity 身份证号 + * @return {@link java.util.List} + * @author gaoyu + * @date 2023-10-20 14:56 + */ + List getLastRecord(String identity); } diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/service/impl/PhysicalSignServiceImpl.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/service/impl/PhysicalSignServiceImpl.java index 5b07dce..5ed14e8 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/service/impl/PhysicalSignServiceImpl.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/service/impl/PhysicalSignServiceImpl.java @@ -99,6 +99,11 @@ public class PhysicalSignServiceImpl implements PhysicalSignService { return map; } + @Override + public List getLastRecord(String identity) { + return deviceBgRecordMapper.getLastRecord(identity); + } + private Map bgRecord(String identity, String type) { Map map = new HashMap<>(); List list = deviceBgRecordMapper.getBgRecord(identity, type); diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/vo/PhysicalLastRecordVO.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/vo/PhysicalLastRecordVO.java new file mode 100644 index 0000000..6e3c7f2 --- /dev/null +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/vo/PhysicalLastRecordVO.java @@ -0,0 +1,27 @@ +package com.xinelu.familydoctor.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author gaoyu + * @description 体征检测最后一次记录 + * @date 2023-10-20 14:28 + */ +@ApiModel("体征检测最后一次记录") +@Data +public class PhysicalLastRecordVO { + @ApiModelProperty("类型1:血糖2:血压3:血脂4:bmi5:血氧6:心率7:体温") + private String type; + @ApiModelProperty("日期") + @JsonFormat(pattern = "yyyy/MM/dd", timezone = "GMT+8") + private Date date; + @ApiModelProperty("时间段1:凌晨2:早餐前3:早晨后4:午餐前5:午餐后6:晚餐前7:晚餐后8:睡前") + private String bucket; + @ApiModelProperty("值") + private String val; +} diff --git a/xinelu-familydoctor/src/main/resources/mapper/DeviceBgRecordMapper.xml b/xinelu-familydoctor/src/main/resources/mapper/DeviceBgRecordMapper.xml index 65ff150..2ff4165 100644 --- a/xinelu-familydoctor/src/main/resources/mapper/DeviceBgRecordMapper.xml +++ b/xinelu-familydoctor/src/main/resources/mapper/DeviceBgRecordMapper.xml @@ -105,4 +105,27 @@ where id = #{id,jdbcType=BIGINT} + + diff --git a/xinelu-familydoctor/src/main/resources/mapper/DeviceBmiRecordMapper.xml b/xinelu-familydoctor/src/main/resources/mapper/DeviceBmiRecordMapper.xml index 6ce7de4..74efbf5 100644 --- a/xinelu-familydoctor/src/main/resources/mapper/DeviceBmiRecordMapper.xml +++ b/xinelu-familydoctor/src/main/resources/mapper/DeviceBmiRecordMapper.xml @@ -7,13 +7,15 @@ + + - id,identity,bmi, - measure_time + id,identity,height, + weight,bmi,measure_time select ifnull(max(bmi), 0) "maxVal", - ifnull(min(bmi), 0) "minVal", - ifnull(avg(bmi), 0) "avgVal", - count(case when bmi >= 18.5 and bmi <= 23.9 then 1 else null end) "normalNum", - count(case when bmi < 18.5 or bmi >= 24 then 1 else null end) "overNum" + ifnull(min(bmi), 0) "minVal", + ifnull(avg(bmi), 0) "avgVal", + count(case when bmi >= 18.5 and bmi <= 23.9 then 1 else null end) "normalNum", + count(case when bmi < 18.5 or bmi >= 24 then 1 else null end) "overNum" from device_bmi_record where identity = #{identity} @@ -73,26 +75,33 @@ - insert into device_bmi_record - (identity,bmi - ,measure_time) - values (#{identity,jdbcType=VARCHAR},#{bmi,jdbcType=DECIMAL} - ,#{measureTime,jdbcType=TIMESTAMP}) + (identity,height + ,weight,bmi,measure_time + ) + values (#{identity,jdbcType=VARCHAR},#{height,jdbcType=DECIMAL} + ,#{weight,jdbcType=DECIMAL},#{bmi,jdbcType=DECIMAL},#{measureTime,jdbcType=TIMESTAMP} + ) update device_bmi_record - - identity = #{identity,jdbcType=VARCHAR}, - - - bmi = #{bmi,jdbcType=DECIMAL}, - - - measure_time = #{measureTime,jdbcType=TIMESTAMP}, - + + identity = #{identity,jdbcType=VARCHAR}, + + + height = #{height,jdbcType=DECIMAL}, + + + weight = #{weight,jdbcType=DECIMAL}, + + + bmi = #{bmi,jdbcType=DECIMAL}, + + + measure_time = #{measureTime,jdbcType=TIMESTAMP}, + where id = #{id,jdbcType=BIGINT} diff --git a/xinelu-familydoctor/src/main/resources/mapper/DeviceBpRecordMapper.xml b/xinelu-familydoctor/src/main/resources/mapper/DeviceBpRecordMapper.xml index e3271ba..e1f307e 100644 --- a/xinelu-familydoctor/src/main/resources/mapper/DeviceBpRecordMapper.xml +++ b/xinelu-familydoctor/src/main/resources/mapper/DeviceBpRecordMapper.xml @@ -51,7 +51,7 @@ select concat(sbp, '/', dbp) "maxSbpVal" from device_bp_record where sbp = (select max(sbp) from device_bp_record - and identity = #{identity} + where identity = #{identity} @@ -99,7 +99,7 @@ select concat(sbp, '/', dbp) "maxDbpVal" from device_bp_record where dbp = (select max(dbp) from device_bp_record - and identity = #{identity} + where identity = #{identity} @@ -147,7 +147,7 @@ select concat(sbp, '/', dbp) "minSbpVal" from device_bp_record where sbp = (select min(sbp) from device_bp_record - and identity = #{identity} + where identity = #{identity} @@ -195,7 +195,7 @@ select concat(sbp, '/', dbp) "minDbpVal" from device_bp_record where dbp = (select min(dbp) from device_bp_record - and identity = #{identity} + where identity = #{identity}