Browse Source

统计指标

lenovodn 2 years ago
parent
commit
1a44281c4a
12 changed files with 62 additions and 85 deletions
  1. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterStatistics.java
  2. 2 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterStatisticsMapper.java
  3. 8 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterStatisticsMapper.xml
  4. 1 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditMapper.xml
  5. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml
  6. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/OutpatientSettleBillMapper.xml
  7. 3 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/PrescriptionOrderMapper.xml
  8. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/response/DashboardStatisticsBarResponse.java
  9. 4 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterStatisticsService.java
  10. 8 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterStatisticsServiceImpl.java
  11. 31 76
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/HomePageServiceImpl.java
  12. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vo/StaticResponse.java

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterStatistics.java

@@ -83,7 +83,7 @@ public class AfterStatistics implements Serializable {
 	/**占比统计*/
 	@Excel(name = "占比统计", width = 15)
     @ApiModelProperty(value = "占比统计")
-    private java.lang.Integer proportionStatistics;
+    private double proportionStatistics;
 	/**统计日期;按天统计*/
 	@Excel(name = "统计日期;按天统计", width = 15, format =  "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd")

+ 2 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterStatisticsMapper.java

@@ -5,6 +5,7 @@ import java.util.List;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.medical.entity.AfterStatistics;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.medical.vo.StaticResponse;
 
 /**
  * @Description: after_statistics
@@ -14,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface AfterStatisticsMapper extends BaseMapper<AfterStatistics> {
 
+    List<StaticResponse> statisticsMidRule(String startTime, String endTime);
 }

+ 8 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterStatisticsMapper.xml

@@ -2,4 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.medical.mapper.AfterStatisticsMapper">
 
+    <select id="statisticsMidRule" resultType="org.jeecg.modules.medical.vo.StaticResponse">
+
+        SELECT  medical_ins_rule_info_name as name,proportion_statistics as num
+        from after_statistics a
+        where a.statistics_date BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')  AND DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')
+        GROUP BY medical_ins_rule_info_code
+        ORDER BY num DESC limit 5
+    </select>
 </mapper>

+ 1 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditMapper.xml

@@ -423,8 +423,7 @@
     </select>
     <select id="statisticsAmount" resultType="java.lang.Double">
 
-        SELECT     sum(amount) amount
-
+        SELECT IFNULL(sum(amount), 0) AS amount
         FROM afterwards_audit_detail as a
         where a.create_time BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')  AND DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')
 

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml

@@ -292,7 +292,7 @@
             m.mmdd ASC;
     </select>
     <select id="statisticsMidRule" resultType="org.jeecg.modules.medical.vo.StaticResponse">
-        SELECT  medical_project_name as name,IFNULL(count(m.medical_project_code), 0) as num,
+        SELECT  medical_project_name as name,IFNULL(count(m.medical_project_code), 0) as num
                  from mid_incident_audit_detail m
         where m.create_time BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')  AND DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')
         GROUP BY medical_project_code

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/OutpatientSettleBillMapper.xml

@@ -8,7 +8,7 @@
         FROM
             medical_date m
                 LEFT JOIN
-            outpatient_settle_bill a ON CONCAT(YEAR(CURRENT_DATE), '-', m.mmdd) = DATE_FORMAT(a.input_time, '%Y-%m-%d')
+            outpatient_settle_bill a ON CONCAT(YEAR(CURRENT_DATE), '-', m.mmdd) = DATE_FORMAT(a.visit_time, '%Y-%m-%d')
         WHERE
             CONCAT(YEAR(CURRENT_DATE), '-', m.mmdd) BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d')  AND DATE_FORMAT(#{endTime}, '%Y-%m-%d')
         group by a.visit_no

+ 3 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/PrescriptionOrderMapper.xml

@@ -4,6 +4,8 @@
 
     <select id="statisticsFormula" resultType="java.lang.Integer">
         SELECT
+            SUM(num) AS num
+        FROM (SELECT
             COUNT(a.id) AS num
         FROM
             medical_date m
@@ -11,6 +13,6 @@
             prescription_order a ON CONCAT(YEAR(CURRENT_DATE), '-', m.mmdd) = DATE_FORMAT(a.input_time, '%Y-%m-%d')
         WHERE
             CONCAT(YEAR(CURRENT_DATE), '-', m.mmdd) BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d')  AND DATE_FORMAT(#{endTime}, '%Y-%m-%d')
-            group by a.order_number
+            group by a.order_number) seq
     </select>
 </mapper>

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/response/DashboardStatisticsBarResponse.java

@@ -25,7 +25,7 @@ public class DashboardStatisticsBarResponse implements Serializable {
     @ApiModelProperty(value = "事中审查数")
     private Integer middleReviewTotal;
     @ApiModelProperty(value = "违规金额")
-    private Double violationAmountTotal;
+    private Double violationAmountTotal=0.00;
     @ApiModelProperty(value = "事后监管数")
     private Integer afterSupervisoryTotal;
 }

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterStatisticsService.java

@@ -2,6 +2,9 @@ package org.jeecg.modules.medical.service;
 
 import org.jeecg.modules.medical.entity.AfterStatistics;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.medical.vo.StaticResponse;
+
+import java.util.List;
 
 /**
  * @Description: after_statistics
@@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IAfterStatisticsService extends IService<AfterStatistics> {
 
+    List<StaticResponse> statisticsMidRule(String startTime, String endTime);
 }

+ 8 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterStatisticsServiceImpl.java

@@ -3,17 +3,24 @@ package org.jeecg.modules.medical.service.impl;
 import org.jeecg.modules.medical.entity.AfterStatistics;
 import org.jeecg.modules.medical.mapper.AfterStatisticsMapper;
 import org.jeecg.modules.medical.service.IAfterStatisticsService;
+import org.jeecg.modules.medical.vo.StaticResponse;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.List;
+
 /**
  * @Description: after_statistics
  * @Author: jeecg-boot
- * @Date:   2023-05-19 15:41:00
+ * @Date: 2023-05-19 15:41:00
  * @Version: V1.0
  */
 @Service
 public class AfterStatisticsServiceImpl extends ServiceImpl<AfterStatisticsMapper, AfterStatistics> implements IAfterStatisticsService {
 
+    @Override
+    public List<StaticResponse> statisticsMidRule(String startTime, String endTime) {
+        return baseMapper.statisticsMidRule(startTime, endTime);
+    }
 }

+ 31 - 76
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/HomePageServiceImpl.java

@@ -39,11 +39,13 @@ public class HomePageServiceImpl implements IHomePageService {
     private IOutpatientSettleBillService outpatientSettleBillService;
     @Autowired
     private IPrescriptionOrderService prescriptionOrderService;
+    @Autowired
+    private IAfterStatisticsService afterStatisticsService;
 
     @Override
     public DashboardStatisticsBarResponse loadStatisticsBar(String startTime, String endTime) {
         //只算当日 数量统计汇总
-        DashboardStatisticsBarResponse sourceData = getSourceData(startTime, endTime);
+        DashboardStatisticsBarResponse sourceData = getSourceData(endTime, endTime);
         DashboardStatisticsBarResponse result = new DashboardStatisticsBarResponse();
         result.setSwipesTotal(sourceData.getSwipesTotal());
         result.setBeforeReminderTotal(sourceData.getBeforeReminderTotal());
@@ -54,12 +56,12 @@ public class HomePageServiceImpl implements IHomePageService {
 //        Date startTimeDate = DateTimeUtil.parse(startTime, DateTimeUtil.FULL_STYLE);
 //        Date endTimeDate = DateTimeUtil.parse(endTime, DateTimeUtil.FULL_STYLE);
 //        long diffDay = DateTimeUtil.subDay(startTimeDate, endTimeDate);
-        result.setSwipesTotal(result.getSwipesTotal());
-        result.setBeforeReminderTotal(result.getBeforeReminderTotal());
-        result.setFormulaTotal(result.getFormulaTotal());
-        result.setMiddleReviewTotal(result.getMiddleReviewTotal());
-        result.setViolationAmountTotal(result.getViolationAmountTotal());
-        result.setAfterSupervisoryTotal(result.getAfterSupervisoryTotal());
+//        result.setSwipesTotal(result.getSwipesTotal());
+//        result.setBeforeReminderTotal(result.getBeforeReminderTotal());
+//        result.setFormulaTotal(result.getFormulaTotal());
+//        result.setMiddleReviewTotal(result.getMiddleReviewTotal());
+//        result.setViolationAmountTotal(result.getViolationAmountTotal());
+//        result.setAfterSupervisoryTotal(result.getAfterSupervisoryTotal());
         return result;
     }
 
@@ -67,7 +69,8 @@ public class HomePageServiceImpl implements IHomePageService {
         DashboardStatisticsBarResponse sourceData = new DashboardStatisticsBarResponse();
         //只算当日
         sourceData.setSwipesTotal(outpatientSettleBillService.statisticsVisit(startTime, endTime));
-        sourceData.setBeforeReminderTotal(advanceWarningAuditService.statisticsLine(startTime, endTime).get(0).intValue());
+        int beforeReminderTotal = advanceWarningAuditService.statisticsLine(startTime, endTime).get(0).intValue();
+        sourceData.setBeforeReminderTotal(beforeReminderTotal);
         sourceData.setFormulaTotal(prescriptionOrderService.statisticsFormula(startTime, endTime));
         sourceData.setMiddleReviewTotal(midIncidentAuditService.statisticsLine(startTime, endTime).get(0).intValue());
         sourceData.setViolationAmountTotal(afterwardsAuditService.statisticsAmount(startTime, endTime));
@@ -169,8 +172,8 @@ public class HomePageServiceImpl implements IHomePageService {
 //        Date endTimeDate = DateTimeUtil.parse(endTime, DateTimeUtil.FULL_STYLE);
 //        long diffDay = DateTimeUtil.subDay(startTimeDate, endTimeDate);
 
-        // 生成事前规则类型排名
-        DashboardStatisticsDetailedItem beforeRulesTop = generateBeforeRuleTop(sourceData);
+        // 生成事前规则类型排名-改 统计指标监测排名
+        DashboardStatisticsDetailedItem beforeRulesTop = generateBeforeRuleTop(startTime, endTime);
         // 生成事中规则类型排名
         DashboardStatisticsDetailedItem middleRulesTop = generateMiddleRuleTop(startTime, endTime);
         // 生成事后规则类型排名
@@ -195,8 +198,8 @@ public class HomePageServiceImpl implements IHomePageService {
         List<StaticResponse> hashMaps = afterwardsAuditService.statisticsProject(startTime, endTime);
         hashMaps.forEach(it -> {
             JSONObject item = new JSONObject();
-            item.put("title", it.getName());
-            item.put("total", it.getNum());
+            item.put("name", it.getName());
+            item.put("value", it.getNum());
             result.add(item);
         });
 
@@ -327,75 +330,27 @@ public class HomePageServiceImpl implements IHomePageService {
             item.put("total", it.getNum());
             rule.add(item);
         });
-//        JSONObject item1 = new JSONObject();
-//        item1.put("title", "限适应症和支付疗程(药品)");
-//        item1.put("total", top1);
-//        rule1.add(item1);
-//
-//        JSONObject item2 = new JSONObject();
-//        item2.put("title", "限适应症(药品)");
-//        item2.put("total", top2);
-//        rule1.add(item2);
-//
-//        JSONObject item3 = new JSONObject();
-//        item3.put("title", "限医院等级适应症疗程(药品)");
-//        item3.put("total", top3);
-//        rule1.add(item3);
-//
-//        JSONObject item4 = new JSONObject();
-//        item4.put("title", "限病种(药品)");
-//        item4.put("total", top4);
-//        rule1.add(item4);
-//
-//        JSONObject item5 = new JSONObject();
-//        item5.put("title", "限适应症"); //TODO 等待数据
-//        item5.put("total", top5);
-//        rule1.add(item5);
         middleRulesTop.setList(rule);
         return middleRulesTop;
     }
 
-    private static DashboardStatisticsDetailedItem generateBeforeRuleTop(DashboardStatisticsBarResponse sourceData) {
-        Integer beforeReminderTotal = sourceData.getBeforeReminderTotal();
-        // 生成事前规则类型排名
+    private  DashboardStatisticsDetailedItem generateBeforeRuleTop(String startTime, String endTime) {
+//        Integer beforeReminderTotal = sourceData.getBeforeReminderTotal();
+        // 生成事前规则类型排名--改 统计指标监测排名
         DashboardStatisticsDetailedItem beforeRulesTop = new DashboardStatisticsDetailedItem();
-        beforeRulesTop.setTitle("事前规则类型排名");
-        beforeRulesTop.setTotal(beforeReminderTotal);
-        ArrayList<JSONObject> rule1 = new ArrayList<>();
-
-
-        BigDecimal top1 = new BigDecimal(beforeReminderTotal).multiply(new BigDecimal("0.23")).setScale(0, BigDecimal.ROUND_HALF_DOWN);
-        BigDecimal top2 = new BigDecimal(beforeReminderTotal).multiply(new BigDecimal("0.17")).setScale(0, BigDecimal.ROUND_HALF_DOWN);
-        BigDecimal top3 = new BigDecimal(beforeReminderTotal).multiply(new BigDecimal("0.14")).setScale(0, BigDecimal.ROUND_HALF_DOWN);
-        BigDecimal top4 = new BigDecimal(beforeReminderTotal).multiply(new BigDecimal("0.11")).setScale(0, BigDecimal.ROUND_HALF_DOWN);
-        BigDecimal top5 = new BigDecimal(beforeReminderTotal).multiply(new BigDecimal("0.03")).setScale(0, BigDecimal.ROUND_HALF_DOWN);
-        JSONObject item1 = new JSONObject();
-        item1.put("title", "频繁门诊");
-        item1.put("total", top1);
-
-        rule1.add(item1);
-
-        JSONObject item2 = new JSONObject();
-        item2.put("title", "即往诊断信息提醒");
-        item2.put("total", top2);
-        rule1.add(item2);
-
-        JSONObject item3 = new JSONObject();
-        item3.put("title", "意外伤害类疾病提醒");
-        item3.put("total", top3);
-        rule1.add(item3);
-
-        JSONObject item4 = new JSONObject();
-        item4.put("title", "死亡人员提示");
-        item4.put("total", top4);
-        rule1.add(item4);
-
-        JSONObject item5 = new JSONObject();
-        item5.put("title", "药品违规提示");
-        item5.put("total", top5);
-        rule1.add(item5);
-
-        beforeRulesTop.setList(rule1);
+        beforeRulesTop.setTitle("统计指标监测排名");
+        beforeRulesTop.setTotal(0);
+        ArrayList<JSONObject> rule = new ArrayList<>();
+
+        List<StaticResponse> hashMaps = afterStatisticsService.statisticsMidRule(startTime, endTime);
+        hashMaps.forEach(it -> {
+            JSONObject item = new JSONObject();
+            item.put("title", it.getName());
+            item.put("total", it.getNum());
+            rule.add(item);
+        });
+
+        beforeRulesTop.setList(rule);
         return beforeRulesTop;
     }
 }

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vo/StaticResponse.java

@@ -6,5 +6,5 @@ import lombok.Data;
 public class StaticResponse {
     private String name;
 
-    private Integer num;
+    private double num;
 }