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