fix: 健康管理系统,统计分析修改。
This commit is contained in:
@@ -35,4 +35,8 @@ public class HealthMarRecordVo extends HealthMarRecord
|
||||
@ApiModelProperty(value="次数)")
|
||||
private Integer count;
|
||||
|
||||
/** 次数 */
|
||||
@ApiModelProperty(value="用药天数")
|
||||
private Integer useDays;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package com.ruoyi.health.service.impl;
|
||||
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.utils.StringUtils;
|
||||
import com.ruoyi.common.security.utils.DictUtils;
|
||||
import com.ruoyi.health.domain.dto.*;
|
||||
import com.ruoyi.health.domain.vo.*;
|
||||
import com.ruoyi.health.domain.vo.HealthMarRecordVo;
|
||||
import com.ruoyi.health.domain.vo.HealthStaticAnalysisVo;
|
||||
import com.ruoyi.health.domain.vo.HealthTemperatureRecordVo;
|
||||
import com.ruoyi.health.mapper.*;
|
||||
import com.ruoyi.health.service.IStatisticAnalysisService;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -50,10 +51,10 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
//月查询
|
||||
if(analysisDto.getType().equals("2")){
|
||||
if(StringUtils.isEmpty(analysisDto.getStartTime())&&StringUtils.isEmpty(analysisDto.getEndTime())){
|
||||
String endTime=dateFormat.format(DateUtils.addMonths(DateUtils.getNowDate(),0));
|
||||
String startTime=dateFormat.format(DateUtils.addMonths(DateUtils.getNowDate(),-24));
|
||||
analysisDto.setStartTime(startTime);
|
||||
analysisDto.setEndTime(endTime);
|
||||
// String endTime=dateFormat.format(DateUtils.addMonths(DateUtils.getNowDate(),0));
|
||||
// String startTime=dateFormat.format(DateUtils.addMonths(DateUtils.getNowDate(),-24));
|
||||
// analysisDto.setStartTime(startTime);
|
||||
// analysisDto.setEndTime(endTime);
|
||||
}else {
|
||||
analysisDto.setStartTime(analysisDto.getStartTime()+"-01");
|
||||
if(analysisDto.getEndTime().equals(formatterMonth.format(new Date()))){
|
||||
@@ -68,10 +69,10 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
//年查询
|
||||
}else if(analysisDto.getType().equals("3")){
|
||||
if(StringUtils.isEmpty(analysisDto.getStartTime())&&StringUtils.isEmpty(analysisDto.getEndTime())){
|
||||
String endTime=dateFormat.format(DateUtils.getNowDate());
|
||||
String startTime=dateFormat.format(DateUtils.addYears(DateUtils.getNowDate(),-5));
|
||||
analysisDto.setStartTime(startTime);
|
||||
analysisDto.setEndTime(endTime);
|
||||
// String endTime=dateFormat.format(DateUtils.getNowDate());
|
||||
// String startTime=dateFormat.format(DateUtils.addYears(DateUtils.getNowDate(),-5));
|
||||
// analysisDto.setStartTime(startTime);
|
||||
// analysisDto.setEndTime(endTime);
|
||||
}else {
|
||||
analysisDto.setStartTime(analysisDto.getStartTime()+"-01-01");
|
||||
SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
|
||||
@@ -130,10 +131,11 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
for (HealthMarRecordVo vo:marClassList
|
||||
) {
|
||||
Map<String, Object> datamap = new HashMap<>();
|
||||
datamap.put("time", vo.getName());
|
||||
datamap.put("value", vo.getCount());
|
||||
datamap.put("medicalName", vo.getName());
|
||||
datamap.put("count", vo.getCount());
|
||||
datamap.put("unit", vo.getUnitName());
|
||||
datamap.put("dosage", vo.getDosage());
|
||||
datamap.put("useDays", vo.getUseDays());
|
||||
marMapList.add(datamap);
|
||||
}
|
||||
//列表
|
||||
@@ -287,6 +289,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
// 最大值,最小值
|
||||
double maxTemp=0;
|
||||
double minTemp=0;
|
||||
|
||||
if(!temperatureRecordVoList.isEmpty()) {
|
||||
maxTemp = temperatureRecordVoList.stream().mapToDouble(HealthTemperatureRecordVo::getTemperature).max().getAsDouble();
|
||||
minTemp = temperatureRecordVoList.stream().mapToDouble(HealthTemperatureRecordVo::getTemperature).min().getAsDouble();
|
||||
@@ -332,6 +335,8 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
}
|
||||
}
|
||||
|
||||
//发烧天数
|
||||
int feverDay=0;
|
||||
for (String staticsTime :staticsTimeList
|
||||
) {
|
||||
String details="";
|
||||
@@ -346,6 +351,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
//当天体温总计
|
||||
double total=0;
|
||||
|
||||
|
||||
for (HealthTemperatureRecordVo vo:temperatureRecordVoList
|
||||
) {
|
||||
String dayString=dateFormat.format(vo.getMeasureTime());
|
||||
@@ -363,6 +369,10 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
details+="在"+second.format(vo.getMeasureTime())+"时间测量体温"+vo.getTemperature()+"℃;<br/>";
|
||||
}
|
||||
}
|
||||
//大于37度,认为当天发烧
|
||||
if(max>37){
|
||||
feverDay++;
|
||||
}
|
||||
average=total/measureCount;
|
||||
HealthStaticAnalysisVo analysisVo=new HealthStaticAnalysisVo();
|
||||
analysisVo.setTime(staticsTime);
|
||||
@@ -373,6 +383,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
analysisVo.setAverage(average);
|
||||
queryList.add(analysisVo);
|
||||
}
|
||||
map.put("feverDay",feverDay);
|
||||
}
|
||||
|
||||
ArrayList<Map<String, Object>> temperatureList = new ArrayList<>();
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<result property="contentUnit" column="content_unit" />
|
||||
<result property="personName" column="person_name" />
|
||||
<result property="healthRecordName" column="health_record_name" />
|
||||
<result property="useDays" column="useDays" />
|
||||
|
||||
</resultMap>
|
||||
<select id="selectMarRecordList" parameterType="HealthMarRecordDto" resultMap="HealthMarRecordResult">
|
||||
@@ -37,7 +38,17 @@
|
||||
hmr.person_id ,
|
||||
hp."name" as person_name,
|
||||
hmr.health_record_id as health_record_id,
|
||||
hr."name" as health_record_name
|
||||
hr."name" as health_record_name,
|
||||
(
|
||||
select
|
||||
count(distinct to_char(t.dosing_time, 'yyyy-MM-dd'))
|
||||
from
|
||||
health_mar_record t
|
||||
where
|
||||
t.person_id = hmr.person_id
|
||||
and t.health_record_id = hmr.health_record_id
|
||||
and t.medicine_id = hmr.medicine_id
|
||||
) as useDays
|
||||
from
|
||||
health_mar_record hmr
|
||||
left join health_medicine_basic hmb on
|
||||
|
||||
Reference in New Issue
Block a user