diff --git a/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/domain/dto/HealthMarRecordDto.java b/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/domain/dto/HealthMarRecordDto.java index 1539fa2..a9fe805 100644 --- a/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/domain/dto/HealthMarRecordDto.java +++ b/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/domain/dto/HealthMarRecordDto.java @@ -30,7 +30,7 @@ public class HealthMarRecordDto extends BaseEntity implements Serializable /** 主表ID */ @ApiModelProperty(value="主表ID") - private String healthRecordId; + private Long healthRecordId; /** 用药时间 */ @ApiModelProperty(value="用药时间") diff --git a/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/domain/vo/HealthMarRecordVo.java b/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/domain/vo/HealthMarRecordVo.java index b67192e..8cab59e 100644 --- a/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/domain/vo/HealthMarRecordVo.java +++ b/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/domain/vo/HealthMarRecordVo.java @@ -30,4 +30,9 @@ public class HealthMarRecordVo extends HealthMarRecord @Excel(name = "单位名称") private String unitName; + + /** 次数 */ + @ApiModelProperty(value="次数)") + private Integer count; + } diff --git a/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/mapper/StatisticAnalysisMapper.java b/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/mapper/StatisticAnalysisMapper.java index d08601c..3223764 100644 --- a/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/mapper/StatisticAnalysisMapper.java +++ b/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/mapper/StatisticAnalysisMapper.java @@ -1,9 +1,22 @@ package com.ruoyi.health.mapper; +import com.ruoyi.common.datascope.annotation.DataScope; +import com.ruoyi.health.domain.dto.HealthMarRecordDto; +import com.ruoyi.health.domain.vo.HealthMarRecordVo; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface StatisticAnalysisMapper { + /** + * 查询用药记录 + * + * @param healthMarRecordDto + * @return 收支集合 + */ + @DataScope(businessAlias = "hmr") + public List selectMarRecordList(HealthMarRecordDto healthMarRecordDto); } diff --git a/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/service/impl/StatisticAnalysisImpl.java b/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/service/impl/StatisticAnalysisImpl.java index 2aa8e3d..bcc8807 100644 --- a/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/service/impl/StatisticAnalysisImpl.java +++ b/ruoyi-modules/intc-health/src/main/java/com/ruoyi/health/service/impl/StatisticAnalysisImpl.java @@ -11,6 +11,7 @@ import com.ruoyi.health.domain.vo.HealthStaticAnalysisVo; import com.ruoyi.health.domain.vo.HealthTemperatureRecordVo; import com.ruoyi.health.mapper.HealthMarRecordMapper; import com.ruoyi.health.mapper.HealthTemperatureRecordMapper; +import com.ruoyi.health.mapper.StatisticAnalysisMapper; import com.ruoyi.health.service.IStatisticAnalysisService; import org.springframework.stereotype.Service; @@ -28,6 +29,9 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { @Resource private HealthTemperatureRecordMapper temperatureRecordMapper; + @Resource + private StatisticAnalysisMapper statisticAnalysisMapper; + @Override public Map getMarAnalysis(AnalysisDto analysisDto) { @@ -78,14 +82,63 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { //获取数据 dto.setEndTime(analysisDto.getEndTime()); dto.setStartTime(analysisDto.getStartTime()); - + dto.setPersonId(analysisDto.getId()); + dto.setHealthRecordId(analysisDto.getRecordId()); List marRecordVoList=marRecordMapper.selectHealthMarRecordList(dto); + //用药总次数 + map.put("marCount",marRecordVoList.size()); + //退烧用药 + map.put("tuishao",marRecordVoList.stream().filter(mar -> mar.getType().equals("1")).count()); + //抗菌消炎 + map.put("kangjun",marRecordVoList.stream().filter(mar -> mar.getType().equals("2")).count()); + //止咳平喘化痰 + map.put("zhike",marRecordVoList.stream().filter(mar -> mar.getType().equals("3")).count()); + //抗病毒 + map.put("kangbingdu",marRecordVoList.stream().filter(mar -> mar.getType().equals("4")).count()); + //抗过敏 + map.put("kangguomin",marRecordVoList.stream().filter(mar -> mar.getType().equals("6")).count()); + //雾化消炎 + map.put("wuhua",marRecordVoList.stream().filter(mar -> mar.getType().equals("9")).count()); + //清热解毒 + map.put("qingre",marRecordVoList.stream().filter(mar -> mar.getType().equals("10")).count()); + //肠道消化 + map.put("changdao",marRecordVoList.stream().filter(mar -> mar.getType().equals("7")).count()); + //鼻炎腺样体 + map.put("biyan",marRecordVoList.stream().filter(mar -> mar.getType().equals("12")).count()); + //增强体质调节免疫力 + map.put("mianyili",marRecordVoList.stream().filter(mar -> mar.getType().equals("13")).count()); + + //按药品统计 + List marClassList=statisticAnalysisMapper.selectMarRecordList(dto); + //药品用药单位统计 + for (HealthMarRecordVo vo:marClassList + ) { + if (null != vo.getUnit()) { + vo.setUnitName(DictUtils.getDictLabel("medical_unit", vo.getUnit().toString())); + } + } + //用药种类 + map.put("marCategoryCount",marClassList.size()); + + ArrayList> marMapList = new ArrayList<>(); + for (HealthMarRecordVo vo:marClassList + ) { + Map datamap = new HashMap<>(); + datamap.put("time", vo.getName()); + datamap.put("value", vo.getCount()); + datamap.put("unit", vo.getUnitName()); + datamap.put("dosage", vo.getDosage()); + marMapList.add(datamap); + } + //列表 + map.put("marMapList",marMapList); List queryList =new ArrayList<>(); if("1".equals(analysisDto.getType())){ //日列表 List staticsTimeList=new ArrayList<>(); + for (HealthMarRecordVo vo:marRecordVoList ) { if (null != vo.getUnit()) { diff --git a/ruoyi-modules/intc-health/src/main/resources/mapper/health/HealthMarRecordMapper.xml b/ruoyi-modules/intc-health/src/main/resources/mapper/health/HealthMarRecordMapper.xml index 9fa8ed0..9de3f59 100644 --- a/ruoyi-modules/intc-health/src/main/resources/mapper/health/HealthMarRecordMapper.xml +++ b/ruoyi-modules/intc-health/src/main/resources/mapper/health/HealthMarRecordMapper.xml @@ -26,6 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -73,7 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.person_id = #{personId} and a.resource = #{resource} and a.place = #{place} - medicine_id = #{medicineId}, + a.medicine_id = #{medicineId}, and #{endTime}>=to_char(a.dosing_time, 'yyyy-MM-dd') diff --git a/ruoyi-modules/intc-health/src/main/resources/mapper/health/StatisticAnalysisMapper.xml b/ruoyi-modules/intc-health/src/main/resources/mapper/health/StatisticAnalysisMapper.xml index 91f90e2..cb131ae 100644 --- a/ruoyi-modules/intc-health/src/main/resources/mapper/health/StatisticAnalysisMapper.xml +++ b/ruoyi-modules/intc-health/src/main/resources/mapper/health/StatisticAnalysisMapper.xml @@ -3,6 +3,73 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file