Selaa lähdekoodia

全局统计的接口分开为9个

gaodm 5 vuotta sitten
vanhempi
commit
fe2825540a

+ 156 - 0
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -1,7 +1,14 @@
 package com.diagbot.facade;
 
+import com.diagbot.aggregate.AverageStatisticsAggregate;
+import com.diagbot.aggregate.MrStatisticsAggregate;
+import com.diagbot.aggregate.ResultStatisticsAggregate;
+import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.NumDTO;
+import com.diagbot.dto.QcResultPercentDTO;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.FilterVO;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
@@ -10,6 +17,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -24,6 +32,15 @@ public class ConsoleFacade {
     @Autowired
     private DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
 
+    @Autowired
+    private AverageStatisticsAggregate averageStatisticsAggregate;
+    @Autowired
+    private MrStatisticsAggregate mrStatisticsAggregate;
+    @Autowired
+    private ResultStatisticsAggregate resultStatisticsAggregate;
+
+    //-----------------------聚合接口开始-------------------------------
+
     /**
      * 病历相关统计
      *
@@ -107,4 +124,143 @@ public class ConsoleFacade {
         }
         return retMap;
     }
+
+    //-----------------------聚合接口结束-------------------------------
+
+    //-----------------------单独接口开始-------------------------------
+    /**
+     * 平均住院天数
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> getAverageDayNum(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        List<AverageStatisticsDTO> averageDayNumList = averageStatisticsAggregate.getAverageDayNum(filterVO);
+        if (ListUtil.isNotEmpty(averageDayNumList)) {
+            retMap.put("平均住院日", averageDayNumList);
+        }
+        return retMap;
+    }
+
+    /**
+     * 平均住院费用
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> getAverageFee(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        List<AverageStatisticsDTO> averageFeeList = averageStatisticsAggregate.getAverageFee(filterVO);
+        if (ListUtil.isNotEmpty(averageFeeList)) {
+            retMap.put("平均住院费用", averageFeeList);
+        }
+        return retMap;
+    }
+
+    /**
+     * 质控平均分按科室统计
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> getAverageScore(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        List<AverageStatisticsDTO> averageScoreList = averageStatisticsAggregate.getAverageScore(filterVO);
+        if (ListUtil.isNotEmpty(averageScoreList)) {
+            retMap.put("各科室质控平均分", averageScoreList);
+        }
+        return retMap;
+    }
+
+    /**
+     * 各科室甲级病历占比
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> getLevelResultDept(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        List<QcResultPercentDTO> levelResults = mrStatisticsAggregate.getLevelResultDept(filterVO);
+        if (ListUtil.isNotEmpty(levelResults)) {
+            retMap.put("各科室甲级病历占比", levelResults);
+        }
+        return retMap;
+    }
+
+    /**
+     * 出院人数统计
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> leaveHosCount(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        Map<String, Object> leaveHosMap = mrStatisticsAggregate.leaveHosCount(filterVO);
+        if (leaveHosMap != null) {
+            retMap.put("出院人数统计", leaveHosMap);
+        }
+        return retMap;
+    }
+
+    /**
+     * 质控病历统计
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> mrCount(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        List<NumDTO> mrCountList = mrStatisticsAggregate.mrCount(filterVO);
+        if (ListUtil.isNotEmpty(mrCountList)) {
+            retMap.put("病历数统计", mrCountList);
+        }
+        return retMap;
+    }
+
+    /**
+     * 各模块缺陷占比排行
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> entryCountGroupByCase(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        List<NumDTO> deptList = resultStatisticsAggregate.entryCountGroupByCase(filterVO);
+        if (ListUtil.isNotEmpty(deptList)) {
+            retMap.put("各科室缺陷占比", deptList);
+        }
+        return retMap;
+    }
+
+    /**
+     * 条目缺陷占比
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> entryCountGroupByEntry(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        List<NumDTO> caseList = resultStatisticsAggregate.entryCountGroupByEntry(filterVO);
+        if (ListUtil.isNotEmpty(caseList)) {
+            retMap.put("各模块缺陷占比排行", caseList);
+        }
+        return retMap;
+    }
+
+    /**
+     * 各科室缺陷占比
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> entryByDept(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        List<NumDTO> entryList = resultStatisticsAggregate.entryByDept(filterVO);
+        if (ListUtil.isNotEmpty(entryList)) {
+            retMap.put("条目缺陷占比", entryList);
+        }
+        return retMap;
+    }
+    //-----------------------单独接口结束-------------------------------
 }

+ 140 - 0
src/main/java/com/diagbot/web/ConsoleController.java

@@ -1,8 +1,12 @@
 package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.NumDTO;
+import com.diagbot.dto.QcResultPercentDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ConsoleFacade;
+import com.diagbot.util.ListUtil;
 import com.diagbot.vo.FilterVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -11,7 +15,10 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -28,10 +35,12 @@ public class ConsoleController {
     @Autowired
     private ConsoleFacade consoleFacade;
 
+    //-----------------------聚合接口开始-------------------------------
     @ApiOperation(value = "病历相关统计[by:zhaops]",
             notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
     @PostMapping("/mrStatistics")
     @SysLogger("mrStatistics")
+    @ApiIgnore
     public RespDTO<Map<String, Object>> mrStatistics(@RequestBody FilterVO filterVO) {
         Map<String, Object> data = consoleFacade.mrStatistics(filterVO);
         return RespDTO.onSuc(data);
@@ -41,6 +50,7 @@ public class ConsoleController {
             notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
     @PostMapping("/resultStatistics")
     @SysLogger("resultStatistics")
+    @ApiIgnore
     public RespDTO<Map<String, Object>> resultStatistics(@RequestBody FilterVO filterVO) {
         Map<String, Object> data = consoleFacade.resultStatistics(filterVO);
         return RespDTO.onSuc(data);
@@ -50,8 +60,138 @@ public class ConsoleController {
             notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
     @PostMapping("/averageStatistics")
     @SysLogger("averageStatistics")
+    @ApiIgnore
     public RespDTO<Map<String, Object>> averageStatistics(@RequestBody FilterVO filterVO) {
         Map<String, Object> data = consoleFacade.averageStatistics(filterVO);
         return RespDTO.onSuc(data);
     }
+    //-----------------------聚合接口结束-------------------------------
+
+    //-----------------------单独接口开始-------------------------------
+    /**
+     * 平均住院天数
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "平均住院天数[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/getAverageDayNum")
+    @SysLogger("getAverageDayNum")
+    public RespDTO<Map<String, Object>> getAverageDayNum(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.getAverageDayNum(filterVO));
+    }
+
+    /**
+     * 平均住院费用
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "平均住院费用[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/getAverageFee")
+    @SysLogger("getAverageFee")
+    public RespDTO<Map<String, Object>> getAverageFee(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.getAverageFee(filterVO));
+    }
+
+    /**
+     * 质控平均分按科室统计
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "质控平均分按科室统计[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/getAverageScore")
+    @SysLogger("getAverageScore")
+    public RespDTO<Map<String, Object>> getAverageScore(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.getAverageScore(filterVO));
+    }
+
+    /**
+     * 各科室甲级病历占比
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "各科室甲级病历占比[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/getLevelResultDept")
+    @SysLogger("getLevelResultDept")
+    public RespDTO<Map<String, Object>> getLevelResultDept(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.getLevelResultDept(filterVO));
+    }
+
+    /**
+     * 出院人数统计
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "出院人数统计[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/leaveHosCount")
+    @SysLogger("leaveHosCount")
+    public RespDTO<Map<String, Object>> leaveHosCount(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.leaveHosCount(filterVO));
+    }
+
+    /**
+     * 质控病历统计
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "质控病历统计[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/mrCount")
+    @SysLogger("mrCount")
+    public RespDTO<Map<String, Object>> mrCount(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.mrCount(filterVO));
+    }
+
+    /**
+     * 各模块缺陷占比排行
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "各模块缺陷占比排行[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/entryCountGroupByCase")
+    @SysLogger("entryCountGroupByCase")
+    public RespDTO<Map<String, Object>> entryCountGroupByCase(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.entryCountGroupByCase(filterVO));
+    }
+
+    /**
+     * 条目缺陷占比
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "条目缺陷占比[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/entryCountGroupByEntry")
+    @SysLogger("entryCountGroupByEntry")
+    public RespDTO<Map<String, Object>> entryCountGroupByEntry(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.entryCountGroupByEntry(filterVO));
+    }
+
+    /**
+     * 各科室缺陷占比
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "各科室缺陷占比[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>")
+    @PostMapping("/entryByDept")
+    @SysLogger("entryByDept")
+    public RespDTO<Map<String, Object>> entryByDept(FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.entryByDept(filterVO));
+    }
+    //-----------------------单独接口结束-------------------------------
 }