From 7ea2857dfb874abfdfaa829be700e8bc480aa67e Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Mon, 21 Oct 2024 15:54:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=87=AA=E6=B5=8B=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=8C=E7=94=A8=E8=8D=AF=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../health/domain/dto/HealthMarRecordDto.java | 2 +- .../health/domain/vo/HealthMarRecordVo.java | 5 ++ .../mapper/StatisticAnalysisMapper.java | 13 ++++ .../service/impl/StatisticAnalysisImpl.java | 55 ++++++++++++++- .../mapper/health/HealthMarRecordMapper.xml | 3 +- .../mapper/health/StatisticAnalysisMapper.xml | 67 +++++++++++++++++++ 6 files changed, 142 insertions(+), 3 deletions(-) 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