Przeglądaj źródła

控制台-统计相关

zhaops 5 lat temu
rodzic
commit
7f184871d1

+ 47 - 51
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.dto.ResultDetailDTO;
 import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.entity.QcresultInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.FilterVO;
+import com.diagbot.vo.QcresultFilterVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -22,7 +22,6 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -66,56 +65,53 @@ public class ConsoleFacade {
         behospitalInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", hospitalId)
                 .ge("leave_hospital_date", startDate);
-        List<BehospitalInfo> behospitalInfoList = behospitalInfoFacade.list(behospitalInfoQueryWrapper);
-        if (ListUtil.isNotEmpty(behospitalInfoList)) {
-            //本月病历数
-            retMap.put("本月病历数", behospitalInfoList.size());
-        }
+        int behospitalInfoCount = behospitalInfoFacade.count(behospitalInfoQueryWrapper);
+        //本月病历数
+        retMap.put("本月病历数", behospitalInfoCount);
 
-        List<QcresultInfo> qcresultInfoList = qcresultInfoFacade.getQcresultSelectively(filterVO);
-        if (ListUtil.isNotEmpty(qcresultInfoList)) {
-            retMap.put("本月质控数-人工", qcresultInfoList
-                    .stream()
-                    .filter(i -> i.getGradeType().equals(2))
-                    .collect(Collectors.toList())
-                    .size());
-            retMap.put("本月质控数-机器", qcresultInfoList
-                    .stream()
-                    .filter(i -> i.getGradeType().equals(1))
-                    .collect(Collectors.toList())
-                    .size());
-            retMap.put("本月甲级病历-人工", qcresultInfoList
-                    .stream()
-                    .filter(i -> i.getGradeType().equals(2) && i.getLevel().equals("甲"))
-                    .collect(Collectors.toList())
-                    .size());
-            retMap.put("本月甲级病历-机器", qcresultInfoList
-                    .stream()
-                    .filter(i -> i.getGradeType().equals(1) && i.getLevel().equals("甲"))
-                    .collect(Collectors.toList())
-                    .size());
-            retMap.put("本月乙级病历-人工", qcresultInfoList
-                    .stream()
-                    .filter(i -> i.getGradeType().equals(2) && i.getLevel().equals("乙"))
-                    .collect(Collectors.toList())
-                    .size());
-            retMap.put("本月乙级病历-机器", qcresultInfoList
-                    .stream()
-                    .filter(i -> i.getGradeType().equals(1) && i.getLevel().equals("乙"))
-                    .collect(Collectors.toList())
-                    .size());
-            retMap.put("本月不合格病历-人工", qcresultInfoList
-                    .stream()
-                    .filter(i -> i.getGradeType().equals(2) && i.getLevel().equals("丙"))
-                    .collect(Collectors.toList())
-                    .size());
-            retMap.put("本月不合格病历-机器", qcresultInfoList
-                    .stream()
-                    .filter(i -> i.getGradeType().equals(1) && i.getLevel().equals("丙"))
-                    .collect(Collectors.toList())
-                    .size());
-        }
 
+        QcresultFilterVO qcresultFilterVO = new QcresultFilterVO();
+        BeanUtil.copyProperties(qcresultFilterVO, filterVO);
+        //本月质控数-人工
+        qcresultFilterVO.setGradeType(2);
+        qcresultFilterVO.setLevel("");
+        int qcresultByGradeType2Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
+        retMap.put("本月质控数-人工", qcresultByGradeType2Count);
+        //本月质控数-机器
+        qcresultFilterVO.setGradeType(1);
+        qcresultFilterVO.setLevel("");
+        int qcresultByGradeType1Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
+        retMap.put("本月质控数-机器", qcresultByGradeType1Count);
+        //本月甲级病历-人工
+        qcresultFilterVO.setGradeType(2);
+        qcresultFilterVO.setLevel("甲");
+        int qcresultByGradeType2AndLevel1Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
+        retMap.put("本月甲级病历-人工", qcresultByGradeType2AndLevel1Count);
+        //本月甲级病历-机器
+        qcresultFilterVO.setGradeType(1);
+        qcresultFilterVO.setLevel("甲");
+        int qcresultByGradeType1AndLevel1Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
+        retMap.put("本月甲级病历-机器", qcresultByGradeType1AndLevel1Count);
+        //本月乙级病历-人工
+        qcresultFilterVO.setGradeType(2);
+        qcresultFilterVO.setLevel("乙");
+        int qcresultByGradeType2AndLevel2Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
+        retMap.put("本月乙级病历-人工", qcresultByGradeType2AndLevel2Count);
+        //本月乙级病历-机器
+        qcresultFilterVO.setGradeType(1);
+        qcresultFilterVO.setLevel("乙");
+        int qcresultByGradeType1AndLevel2Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
+        retMap.put("本月乙级病历-机器", qcresultByGradeType1AndLevel2Count);
+        //本月乙级病历-人工
+        qcresultFilterVO.setGradeType(2);
+        qcresultFilterVO.setLevel("丙");
+        int qcresultByGradeType2AndLevel3Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
+        retMap.put("本月不合格病历-人工", qcresultByGradeType2AndLevel3Count);
+        //本月乙级病历-机器
+        qcresultFilterVO.setGradeType(1);
+        qcresultFilterVO.setLevel("丙");
+        int qcresultByGradeType1AndLevel3Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
+        retMap.put("本月不合格病历-机器", qcresultByGradeType1AndLevel3Count);
         return retMap;
     }
 
@@ -139,7 +135,7 @@ public class ConsoleFacade {
         List<ResultDetailDTO> results = behospitalInfoFacade.resultStatistics(filterVO);
         if (ListUtil.isNotEmpty(results)) {
             results.forEach(result -> {
-                DecimalFormat df = new DecimalFormat("#.00");
+                DecimalFormat df = new DecimalFormat("#0.00");
                 String percentStr
                         = df.format(BigDecimal.valueOf(result.getPercent()).multiply(BigDecimal.valueOf(100))) + "%";
                 result.setPercentStr(percentStr);

+ 4 - 6
src/main/java/com/diagbot/mapper/QcresultInfoMapper.java

@@ -1,10 +1,8 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.QcresultInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.diagbot.vo.FilterVO;
-
-import java.util.List;
+import com.diagbot.entity.QcresultInfo;
+import com.diagbot.vo.QcresultFilterVO;
 
 /**
  * <p>
@@ -20,8 +18,8 @@ public interface QcresultInfoMapper extends BaseMapper<QcresultInfo> {
     /**
      * 筛选质控记录
      *
-     * @param filterVO
+     * @param qcresultFilterVO
      * @return
      */
-    public List<QcresultInfo> getQcresultSelectively(FilterVO filterVO);
+    public int getQcresultSelectively(QcresultFilterVO qcresultFilterVO);
 }

+ 4 - 6
src/main/java/com/diagbot/service/QcresultInfoService.java

@@ -1,10 +1,8 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.QcresultInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.diagbot.vo.FilterVO;
-
-import java.util.List;
+import com.diagbot.entity.QcresultInfo;
+import com.diagbot.vo.QcresultFilterVO;
 
 /**
  * <p>
@@ -20,8 +18,8 @@ public interface QcresultInfoService extends IService<QcresultInfo> {
     /**
      * 筛选质控记录
      *
-     * @param filterVO
+     * @param qcresultFilterVO
      * @return
      */
-    public List<QcresultInfo> getQcresultSelectively(FilterVO filterVO);
+    public int getQcresultSelectively(QcresultFilterVO qcresultFilterVO);
 }

+ 4 - 6
src/main/java/com/diagbot/service/impl/QcresultInfoServiceImpl.java

@@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.entity.QcresultInfo;
 import com.diagbot.mapper.QcresultInfoMapper;
 import com.diagbot.service.QcresultInfoService;
-import com.diagbot.vo.FilterVO;
+import com.diagbot.vo.QcresultFilterVO;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-
 /**
  * <p>
  * 质控评分结果信息
@@ -24,11 +22,11 @@ public class QcresultInfoServiceImpl extends ServiceImpl<QcresultInfoMapper, Qcr
     /**
      * 筛选质控记录
      *
-     * @param filterVO
+     * @param qcresultFilterVO
      * @return
      */
     @Override
-    public List<QcresultInfo> getQcresultSelectively(FilterVO filterVO) {
-        return baseMapper.getQcresultSelectively(filterVO);
+    public int getQcresultSelectively(QcresultFilterVO qcresultFilterVO) {
+        return baseMapper.getQcresultSelectively(qcresultFilterVO);
     }
 }

+ 23 - 0
src/main/java/com/diagbot/vo/QcresultFilterVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/17 16:21
+ */
+@Getter
+@Setter
+public class QcresultFilterVO extends FilterVO {
+    /**
+     * 等级
+     */
+    private String level;
+
+    /**
+     * 评分类型
+     */
+    private Integer gradeType;
+}

+ 8 - 2
src/main/resources/mapper/QcresultInfoMapper.xml

@@ -19,9 +19,9 @@
     </resultMap>
 
     <!-- 缺陷排行列表 -->
-    <select id="getQcresultSelectively"  parameterType="com.diagbot.vo.FilterVO" resultMap="BaseResultMap">
+    <select id="getQcresultSelectively"  parameterType="com.diagbot.vo.QcresultFilterVO" resultType="int">
         SELECT
-        b.*
+        count(*)
         FROM
         med_behospital_info a,
         med_qcresult_info b
@@ -36,6 +36,12 @@
         <if test="startDate != null and startDate != ''">
             <![CDATA[ and a.leave_hospital_date >= #{startDate}]]>
         </if>
+        <if test="gradeType != null and gradeType != ''">
+            AND b.grade_type = #{gradeType}
+        </if>
+        <if test="level != null and level != ''">
+            AND b.level = #{level}
+        </if>
     </select>
 
 </mapper>