Huanyi 1 сар өмнө
parent
commit
73f44df36c

+ 4 - 3
ruoyi-admin/src/main/java/org/dromara/web/domain/BadEnteralNutritionEvent.java → ruoyi-admin/src/main/java/org/dromara/web/domain/BadEvent.java

@@ -8,15 +8,15 @@ import lombok.EqualsAndHashCode;
 import java.io.Serial;
 
 /**
- * 不良事件登记对象 bad_enteral_nutrition_event
+ * 不良事件登记对象 bad_event
  *
  * @author Huanyi
  * @date 2025-08-29
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@TableName("bad_enteral_nutrition_event")
-public class BadEnteralNutritionEvent extends TenantEntity {
+@TableName("bad_event")
+public class BadEvent extends TenantEntity {
 
     @Serial
     private static final long serialVersionUID = 1L;
@@ -48,5 +48,6 @@ public class BadEnteralNutritionEvent extends TenantEntity {
     @TableLogic
     private String delFlag;
 
+    private Integer type;
 
 }

+ 2 - 5
ruoyi-admin/src/main/java/org/dromara/web/domain/bo/BadEnteralNutritionEventBo.java

@@ -1,13 +1,10 @@
 package org.dromara.web.domain.bo;
 
-import org.dromara.web.domain.BadEnteralNutritionEvent;
+import org.dromara.web.domain.BadEvent;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
 
 /**
  * 不良事件登记业务对象 bad_enteral_nutrition_event
@@ -17,7 +14,7 @@ import jakarta.validation.constraints.*;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = BadEnteralNutritionEvent.class, reverseConvertGenerate = false)
+@AutoMapper(target = BadEvent.class, reverseConvertGenerate = false)
 public class BadEnteralNutritionEventBo extends BaseEntity {
 
     private Long id;

+ 2 - 6
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/BadEnteralNutritionEventVo.java

@@ -1,17 +1,13 @@
 package org.dromara.web.domain.vo;
 
-import org.dromara.web.domain.BadEnteralNutritionEvent;
+import org.dromara.web.domain.BadEvent;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
-
 
 
 /**
@@ -22,7 +18,7 @@ import java.util.Date;
  */
 @Data
 @ExcelIgnoreUnannotated
-@AutoMapper(target = BadEnteralNutritionEvent.class)
+@AutoMapper(target = BadEvent.class)
 public class BadEnteralNutritionEventVo implements Serializable {
 
     @Serial

+ 2 - 2
ruoyi-admin/src/main/java/org/dromara/web/mapper/BadEnteralNutritionEventMapper.java

@@ -1,6 +1,6 @@
 package org.dromara.web.mapper;
 
-import org.dromara.web.domain.BadEnteralNutritionEvent;
+import org.dromara.web.domain.BadEvent;
 import org.dromara.web.domain.vo.BadEnteralNutritionEventVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
@@ -10,6 +10,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  * @author Huanyi
  * @date 2025-08-29
  */
-public interface BadEnteralNutritionEventMapper extends BaseMapperPlus<BadEnteralNutritionEvent, BadEnteralNutritionEventVo> {
+public interface BadEnteralNutritionEventMapper extends BaseMapperPlus<BadEvent, BadEnteralNutritionEventVo> {
 
 }

+ 12 - 12
ruoyi-admin/src/main/java/org/dromara/web/service/impl/BadEnteralNutritionEventServiceImpl.java

@@ -9,10 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.web.domain.BadEvent;
 import org.springframework.stereotype.Service;
 import org.dromara.web.domain.bo.BadEnteralNutritionEventBo;
 import org.dromara.web.domain.vo.BadEnteralNutritionEventVo;
-import org.dromara.web.domain.BadEnteralNutritionEvent;
 import org.dromara.web.mapper.BadEnteralNutritionEventMapper;
 import org.dromara.web.service.IBadEnteralNutritionEventService;
 
@@ -53,7 +53,7 @@ public class BadEnteralNutritionEventServiceImpl implements IBadEnteralNutrition
      */
     @Override
     public TableDataInfo<BadEnteralNutritionEventVo> queryPageList(BadEnteralNutritionEventBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<BadEnteralNutritionEvent> lqw = buildQueryWrapper(bo);
+        LambdaQueryWrapper<BadEvent> lqw = buildQueryWrapper(bo);
         Page<BadEnteralNutritionEventVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(result);
     }
@@ -66,17 +66,17 @@ public class BadEnteralNutritionEventServiceImpl implements IBadEnteralNutrition
      */
     @Override
     public List<BadEnteralNutritionEventVo> queryList(BadEnteralNutritionEventBo bo) {
-        LambdaQueryWrapper<BadEnteralNutritionEvent> lqw = buildQueryWrapper(bo);
+        LambdaQueryWrapper<BadEvent> lqw = buildQueryWrapper(bo);
         return baseMapper.selectVoList(lqw);
     }
 
-    private LambdaQueryWrapper<BadEnteralNutritionEvent> buildQueryWrapper(BadEnteralNutritionEventBo bo) {
+    private LambdaQueryWrapper<BadEvent> buildQueryWrapper(BadEnteralNutritionEventBo bo) {
         Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<BadEnteralNutritionEvent> lqw = Wrappers.lambdaQuery();
-        lqw.orderByDesc(BadEnteralNutritionEvent::getId);
-        lqw.eq(bo.getCount() != null, BadEnteralNutritionEvent::getCount, bo.getCount());
-        lqw.like(StringUtils.isNotBlank(bo.getName()), BadEnteralNutritionEvent::getName, bo.getName());
-        lqw.eq(StringUtils.isNotBlank(bo.getManifestation()), BadEnteralNutritionEvent::getManifestation, bo.getManifestation());
+        LambdaQueryWrapper<BadEvent> lqw = Wrappers.lambdaQuery();
+        lqw.orderByDesc(BadEvent::getId);
+        lqw.eq(bo.getCount() != null, BadEvent::getCount, bo.getCount());
+        lqw.like(StringUtils.isNotBlank(bo.getName()), BadEvent::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getManifestation()), BadEvent::getManifestation, bo.getManifestation());
         return lqw;
     }
 
@@ -88,7 +88,7 @@ public class BadEnteralNutritionEventServiceImpl implements IBadEnteralNutrition
      */
     @Override
     public Boolean insertByBo(BadEnteralNutritionEventBo bo) {
-        BadEnteralNutritionEvent add = MapstructUtils.convert(bo, BadEnteralNutritionEvent.class);
+        BadEvent add = MapstructUtils.convert(bo, BadEvent.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -105,7 +105,7 @@ public class BadEnteralNutritionEventServiceImpl implements IBadEnteralNutrition
      */
     @Override
     public Boolean updateByBo(BadEnteralNutritionEventBo bo) {
-        BadEnteralNutritionEvent update = MapstructUtils.convert(bo, BadEnteralNutritionEvent.class);
+        BadEvent update = MapstructUtils.convert(bo, BadEvent.class);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
@@ -113,7 +113,7 @@ public class BadEnteralNutritionEventServiceImpl implements IBadEnteralNutrition
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(BadEnteralNutritionEvent entity){
+    private void validEntityBeforeSave(BadEvent entity){
         //TODO 做一些数据校验,如唯一约束
     }
 

+ 86 - 25
ruoyi-admin/src/main/java/org/dromara/web/service/impl/ReportServiceImpl.java

@@ -25,7 +25,6 @@ import org.dromara.web.service.ReportService;
 import org.springframework.stereotype.Service;
 
 import java.sql.Timestamp;
-import java.util.concurrent.atomic.AtomicLong;
 
 /**
  * @Author: Huanyi
@@ -74,6 +73,7 @@ public class ReportServiceImpl implements ReportService {
     private final ProductDispatchRecordMapper productDispatchRecordMapper;
     private final NutritionQualityControlMapper nutritionQualityControlMapper;
     private final BadEnteralNutritionEventMapper badEnteralNutritionEventMapper;
+    private final ConsultPatientMapper consultPatientMapper;
 
     @Override
     public R getNutritionalQualityControl(Timestamp start, Timestamp end) {
@@ -81,35 +81,96 @@ public class ReportServiceImpl implements ReportService {
         NutritionalQualityControlReportVo vo = new NutritionalQualityControlReportVo();
 
         NutritionQualityControl nutritionQualityControl = nutritionQualityControlMapper.selectById(1);
-        AtomicLong count = new AtomicLong(0L);
-        badEnteralNutritionEventMapper.selectList().forEach(e -> count.addAndGet(e.getCount()));
+        long enteralNutritionCount = 0L, outpatientNutritionCount = 0L;
+        for (BadEvent e : badEnteralNutritionEventMapper.selectList()) {
+            if (Objects.equals(e.getType(), 0)) enteralNutritionCount += e.getCount();
+            else outpatientNutritionCount++;
+        }
+
+        List<ConsultPatient> patientList = consultPatientMapper.selectList();
+        List<PatientMedicalRecord> recordList = patientMedicalRecordMapper.selectList(
+            Wrappers.lambdaQuery(PatientMedicalRecord.class).eq(PatientMedicalRecord::getMedicalType, "1")
+        );
+        List<NutritionScreening> screeningList = nutritionScreeningMapper.selectList(
+            Wrappers.lambdaQuery(NutritionScreening.class)
+        );
+        List<NutritionEvaluation> evaluationList = nutritionEvaluationMapper.selectList(
+            Wrappers.lambdaQuery(NutritionEvaluation.class)
+        );
+
+        long nutritionClinicTotalCount = 0L;
+
+        long nutritionScreeningInHospitalInDayCount = 0L;
+        long inHospitalOneDayTotalCount = 0L;
+        long nutritionEvaluationCount = 0L;
+        long inHospitalTotalCount = 0L;
+        long nutritionEvaluationInDangerCount = 0L;
+        long inHospitalInDangerTotalCount = 0L;
+        long enteralNutritionInterventionCount = 0L;
+        long dietaryNutritionInterventionBadEventCount = 0L;
+        long dietaryNutritionInterventionTotalCount = 0L;
+        long decreaseDosageDiabeticInHospitalCount = 0L;
+        long insulinAndNutritionDiabeticInHospitalCount = 0L;
+        long nutritionScreeningInHospitalCount = 0L;
+        long inHospitalCount = 0L;
+        long inDangerAndNutritionCureInHospitalCount = 0L;
+        long inDangerAndInHospitalCount = 0L;
+        long nutritionEvaluationDiabeticInHospitalCount = 0L;
+        long diabeticInHospitalCount = 0L;
+        long nutritionCureDiabeticInHospitalCount = 0L;
+
+        for (ConsultPatient patient : patientList) {
+            for (PatientMedicalRecord record : recordList) {
+                if (Objects.equals(record.getTreatNum(), patient.getConsultNum())) {
+                    if (Objects.equals(record.getType(), "0")) nutritionClinicTotalCount++;
+                    else {
+                        inHospitalTotalCount++;
+                        if (System.currentTimeMillis() - record.getCreateTime().getTime() <= 24 * 60 * 60 * 1000L) {
+                            inHospitalOneDayTotalCount++;
+                            for (NutritionScreening nutritionScreening : screeningList) {
+                                if (Objects.equals(nutritionScreening.getPatientId(), record.getId())) inHospitalOneDayTotalCount++;
+                            }
+                        }
+                        for (NutritionEvaluation nutritionEvaluation : evaluationList) {
+                            for (NutritionEvaluation evaluation : evaluationList) {
+                                if (Objects.equals(record.getId(), evaluation.getPatientId())) nutritionEvaluationCount++;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        enteralNutritionInterventionCount = enteralNutritionMapper.selectCount(
+            Wrappers.lambdaQuery(EnteralNutrition.class).eq(EnteralNutrition::getExecuteStatus, "1")
+        );
 
         vo.setBedCount(nutritionQualityControl.getBedCount());
         vo.setDoctorCount(nutritionQualityControl.getDoctorCount());
         vo.setNurseCount(nutritionQualityControl.getNurseCount());
         vo.setNutritionClinicComplaintCount(nutritionQualityControl.getNutritionClinicComplaintCount());
-
-
-        vo.setNutritionClinicTotalCount(100L);
-        vo.setNutritionScreeningInHospitalInDayCount(20L);
-        vo.setInHospitalOneDayTotalCount(50L);
-        vo.setNutritionEvaluationCount(20L);
-        vo.setInHospitalTotalCount(150L);
-        vo.setNutritionEvaluationInDangerCount(20L);
-        vo.setInHospitalInDangerTotalCount(60L);
-        vo.setEnteralNutritionBadEventCount(count.get());
-        vo.setEnteralNutritionInterventionCount(20L);
-        vo.setDietaryNutritionInterventionBadEventCount(0L);
-        vo.setDietaryNutritionInterventionTotalCount(40L);
-        vo.setDecreaseDosageDiabeticInHospitalCount(30L);
-        vo.setInsulinAndNutritionDiabeticInHospitalCount(50L);
-        vo.setNutritionScreeningInHospitalCount(25L);
-        vo.setInHospitalCount(150L);
-        vo.setInDangerAndNutritionCureInHospitalCount(40L);
-        vo.setInDangerAndInHospitalCount(30L);
-        vo.setNutritionEvaluationDiabeticInHospitalCount(20L);
-        vo.setDiabeticInHospitalCount(50L);
-        vo.setNutritionCureDiabeticInHospitalCount(10L);
+        vo.setNutritionClinicTotalCount(nutritionClinicTotalCount);
+
+        vo.setNutritionScreeningInHospitalInDayCount(nutritionScreeningInHospitalInDayCount);
+        vo.setInHospitalOneDayTotalCount(inHospitalOneDayTotalCount);
+        vo.setInHospitalTotalCount(inHospitalTotalCount);
+        vo.setNutritionEvaluationCount(nutritionEvaluationCount);
+        vo.setEnteralNutritionBadEventCount(enteralNutritionCount);
+        vo.setEnteralNutritionInterventionCount(enteralNutritionInterventionCount);
+
+        vo.setDietaryNutritionInterventionBadEventCount(dietaryNutritionInterventionBadEventCount);
+        vo.setDietaryNutritionInterventionTotalCount(dietaryNutritionInterventionTotalCount);
+        vo.setDecreaseDosageDiabeticInHospitalCount(decreaseDosageDiabeticInHospitalCount);
+        vo.setInsulinAndNutritionDiabeticInHospitalCount(insulinAndNutritionDiabeticInHospitalCount);
+        vo.setNutritionScreeningInHospitalCount(nutritionScreeningInHospitalCount);
+        vo.setInHospitalCount(inHospitalCount);
+        vo.setInDangerAndNutritionCureInHospitalCount(inDangerAndNutritionCureInHospitalCount);
+        vo.setInDangerAndInHospitalCount(inDangerAndInHospitalCount);
+        vo.setNutritionEvaluationDiabeticInHospitalCount(nutritionEvaluationDiabeticInHospitalCount);
+        vo.setDiabeticInHospitalCount(diabeticInHospitalCount);
+        vo.setNutritionCureDiabeticInHospitalCount(nutritionCureDiabeticInHospitalCount);
+        vo.setNutritionEvaluationInDangerCount(nutritionEvaluationInDangerCount);
+        vo.setInHospitalInDangerTotalCount(inHospitalInDangerTotalCount);
 
         return R.ok(vo);
     }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 98 - 0
script/sql/biz/2025/08/dump_2025_08_29.sql


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно