HuRongxin 1 месяц назад
Родитель
Сommit
7267f982f9

+ 13 - 0
ruoyi-admin/src/main/java/org/dromara/web/controller/IndexController.java

@@ -1,9 +1,13 @@
 package org.dromara.web.controller;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaIgnore;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
 import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.core.utils.StringUtils;
+import org.dromara.web.domain.bo.HospitalRecordBo;
+import org.dromara.web.domain.vo.HospitalRecordVo;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -17,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 public class IndexController {
 
+
     /**
      * 访问首页,提示语
      */
@@ -25,4 +30,12 @@ public class IndexController {
         return StringUtils.format("欢迎使用{}后台管理框架,请通过前端地址访问。", SpringUtils.getApplicationName());
     }
 
+    /**
+     * 查询首页数据
+     */
+    @GetMapping("/queryData")
+    public R queryData() {
+        return R.ok();
+    }
+
 }

+ 20 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/indexData/FocusPatientVo.java

@@ -0,0 +1,20 @@
+package org.dromara.web.domain.vo.indexData;
+
+import lombok.Data;
+
+/*重点关注患者*/
+@Data
+public class FocusPatientVo {
+
+    /*姓名*/
+    private String name;
+
+    /*年龄*/
+    private Integer age;
+
+    /*疾病*/
+    private String disease;
+
+    /*关注原因*/
+    private String reason;
+}

+ 23 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/indexData/IncomeDetailsVo.java

@@ -0,0 +1,23 @@
+package org.dromara.web.domain.vo.indexData;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/*收入分析*/
+@Data
+public class IncomeDetailsVo {
+
+    /*总收入*/
+    private BigDecimal totalCollected;
+
+    /*营养产品收入*/
+    private BigDecimal nutritionProducts;
+
+    /*膳食收入*/
+    private BigDecimal dietaryIncome;
+
+    /*营养筛查*/
+    private BigDecimal screeningAssessment;
+
+}

+ 21 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/indexData/IndexDataVo.java

@@ -0,0 +1,21 @@
+package org.dromara.web.domain.vo.indexData;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class IndexDataVo {
+
+    private PatientOverviewVo patientOverviewVo;
+
+    private NutritionControlVo nutritionControlVo;
+
+    private PrescriptionOverviewVo prescriptionOverviewVo;
+
+    private StorageOverviewVo storageOverviewVo;
+
+    List<FocusPatientVo> focusPatientVoList;
+
+    List<IncomeDetailsVo>incomeDetailsVoList;
+}

+ 20 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/indexData/NutritionControlVo.java

@@ -0,0 +1,20 @@
+package org.dromara.web.domain.vo.indexData;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/*营养质控*/
+@Data
+public class NutritionControlVo {
+
+    /*住院患者营养评估率*/
+    private BigDecimal hospitalNutritionAssessmentRate;
+
+    /*营养风险患者评估率*/
+    private BigDecimal nutritionRiskAssessmentRate;
+
+    /*糖尿病患者评估率*/
+    private BigDecimal diabetesAssessmentRate;
+
+}

+ 19 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/indexData/PatientOverviewVo.java

@@ -0,0 +1,19 @@
+package org.dromara.web.domain.vo.indexData;
+
+import lombok.Data;
+
+
+/*患者总数*/
+@Data
+public class PatientOverviewVo {
+
+    /*患者总数*/
+    private Integer total;
+
+    /*门诊数*/
+    private Integer outpatient;
+
+    /*住院数*/
+    private Integer inpatient;
+
+}

+ 19 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/indexData/PrescriptionOverviewVo.java

@@ -0,0 +1,19 @@
+package org.dromara.web.domain.vo.indexData;
+
+import lombok.Data;
+
+/*处方配置数*/
+@Data
+public class PrescriptionOverviewVo {
+
+    /*配置总数*/
+    private Integer total;
+
+    /*已完成*/
+    private Integer completed;
+
+    /*待完成*/
+    private Integer pending;
+
+
+}

+ 19 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/indexData/StorageOverviewVo.java

@@ -0,0 +1,19 @@
+package org.dromara.web.domain.vo.indexData;
+
+
+import lombok.Data;
+
+/*仓储情况总数*/
+@Data
+public class StorageOverviewVo {
+
+    /*许可证临期*/
+    private Integer expiringLicenses;
+
+    /*有效期临期*/
+    private Integer expiringValidity;
+
+    /*库存预警*/
+    private Integer inventoryAlerts;
+
+}

+ 19 - 1
ruoyi-admin/src/main/java/org/dromara/web/mapper/TreatmentUserMapper.java

@@ -1,9 +1,11 @@
 package org.dromara.web.mapper;
 
 
+import org.apache.ibatis.annotations.Select;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.web.domain.TreatmentUser;
 import org.dromara.web.domain.vo.TreatmentUserVo;
+import org.dromara.web.domain.vo.indexData.PatientOverviewVo;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -14,5 +16,21 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface TreatmentUserMapper extends BaseMapperPlus<TreatmentUser, TreatmentUserVo> {
-
+    @Select("SELECT COUNT(DISTINCT sp.id) AS total, " +
+        " COUNT(DISTINCT CASE WHEN latest_rec.type = '1' AND latest_rec.medical_type != '2' THEN sp.id END) AS outpatient,  " +
+        " COUNT(DISTINCT CASE WHEN latest_rec.type = '0' AND latest_rec.medical_type != '2' AND latest_rec.discharge_date IS NULL THEN sp.id END) AS inpatient  " +
+        "FROM sys_patient sp  " +
+        "LEFT JOIN (  " +
+        " SELECT pmr1.*   " +
+        " FROM patient_medical_record pmr1  " +
+        " INNER JOIN (  " +
+        "  SELECT treat_num, MAX(create_time) as max_create_time  " +
+        "    FROM patient_medical_record  " +
+        "     WHERE del_flag = '0'  " +
+        "       GROUP BY treat_num  " +
+        "    ) pmr2 ON pmr1.treat_num = pmr2.treat_num AND pmr1.create_time = pmr2.max_create_time  " +
+        "    WHERE pmr1.del_flag = '0'  " +
+        ") latest_rec ON sp.treat_num = latest_rec.treat_num  " +
+        "WHERE sp.del_flag = '0'")
+    PatientOverviewVo selectCount();
 }

+ 7 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/IIndexService.java

@@ -0,0 +1,7 @@
+package org.dromara.web.service;
+
+import org.dromara.web.domain.vo.indexData.IndexDataVo;
+
+public interface IIndexService {
+    IndexDataVo queryData();
+}

+ 32 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/impl/IndexServiceImpl.java

@@ -0,0 +1,32 @@
+package org.dromara.web.service.impl;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.web.domain.vo.indexData.IndexDataVo;
+import org.dromara.web.domain.vo.indexData.PatientOverviewVo;
+import org.dromara.web.mapper.TreatmentUserMapper;
+import org.dromara.web.service.IIndexService;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class IndexServiceImpl implements IIndexService {
+
+    private final TreatmentUserMapper treatmentUserMapper;
+    @Override
+    public IndexDataVo queryData() {
+        IndexDataVo indexDataVo = new IndexDataVo();
+
+        //查询患者总数
+        PatientOverviewVo patientOverviewVo = treatmentUserMapper.selectCount();
+        indexDataVo.setPatientOverviewVo(patientOverviewVo);
+
+
+
+        /**/
+        return indexDataVo;
+    }
+}