Browse Source

质控导出

zhaops 5 years ago
parent
commit
12564fc740

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -62,6 +62,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/consoleByDept/getDept").permitAll()
                 .antMatchers("/qc/casesEntryHospital/findQcCasesEntry").permitAll()
                 .antMatchers("/qc/behospitalInfo/exportExcel").permitAll()
+                .antMatchers("/qc/behospitalInfo/exportQcresult").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
     }

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -105,6 +105,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/consoleByDept/getDept", request)
                 || matchers("/qc/casesEntryHospital/findQcCasesEntry", request)
                 || matchers("/qc/behospitalInfo/exportExcel", request)
+                || matchers("/qc/behospitalInfo/exportQcresult", request)
                 || matchers("/", request)) {
             return true;
         }

+ 29 - 1
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -47,6 +47,8 @@ import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeRunVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
+import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.GetDetailVO;
 import com.diagbot.vo.MedrecVo;
 import com.diagbot.vo.QcResultAlgQueryVO;
@@ -59,6 +61,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
+import java.text.DateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -924,9 +927,34 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         }
     }
 
-    public void exportExcelFac(HttpServletResponse response){
+    public void exportExcelFac(HttpServletResponse response) {
         List<ExportExcelDTO> res = this.exportExcel();
         response.setContentType("text/html;charset=UTF-8");
         ExcelUtils.exportExcel(res, null, "导出sheet1", ExportExcelDTO.class, "测试user.xls", response);
     }
+
+    /**
+     * 质控结果导出
+     *
+     * @param response
+     * @param exportQcresultVO
+     */
+    public void exportQcresult(HttpServletResponse response, ExportQcresultVO exportQcresultVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        exportQcresultVO.setHospitalId(hospitalId);
+        Date startDate = exportQcresultVO.getLeaveHosDateStart();
+        Date endDate = exportQcresultVO.getLeaveHosDateEnd();
+        //时间间隔7天
+        long interval = 7 * 24 * 60 * 60 * 1000;
+        if (endDate.getTime() < startDate.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        }
+
+        List<ExportExcelDTO> res = this.exportQcresult(exportQcresultVO);
+        response.setContentType("text/html;charset=UTF-8");
+        ExcelUtils.exportExcel(res, null, "导出sheet1", ExportExcelDTO.class, "测试user.xls", response);
+    }
 }

+ 1 - 1
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -191,5 +191,5 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @param exportQcresultVO
      * @return
      */
-    public List<ExportQcresultDTO> exportQcresult(ExportQcresultVO exportQcresultVO);
+    public List<ExportExcelDTO> exportQcresult(ExportQcresultVO exportQcresultVO);
 }

+ 1 - 1
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -191,5 +191,5 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @param exportQcresultVO
      * @return
      */
-    public List<ExportQcresultDTO> exportQcresult(ExportQcresultVO exportQcresultVO);
+    public List<ExportExcelDTO> exportQcresult(ExportQcresultVO exportQcresultVO);
 }

+ 1 - 1
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -257,7 +257,7 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
      * @param exportQcresultVO
      * @return
      */
-    public List<ExportQcresultDTO> exportQcresult(ExportQcresultVO exportQcresultVO) {
+    public List<ExportExcelDTO> exportQcresult(ExportQcresultVO exportQcresultVO) {
         return baseMapper.exportQcresult(exportQcresultVO);
     }
 }

+ 8 - 3
src/main/java/com/diagbot/vo/ExportQcresultVO.java

@@ -1,8 +1,11 @@
 package com.diagbot.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * @Description:
  * @Author:zhaops
@@ -11,6 +14,8 @@ import lombok.Setter;
 @Getter
 @Setter
 public class ExportQcresultVO {
-    private String leaveHosDateStart;
-    private String leaveHosDateEnd;
-}
+    private Date leaveHosDateStart;
+    private Date leaveHosDateEnd;
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+}

+ 14 - 5
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -13,6 +13,7 @@ import com.diagbot.vo.AnalyzeApiVO;
 import com.diagbot.vo.AnalyzeRunVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.GetDetailVO;
 import com.diagbot.vo.QcresultVO;
 import com.diagbot.vo.TaskVO;
@@ -112,7 +113,7 @@ public class BehospitalInfoController {
     @PostMapping("/analyze_api")
     @SysLogger("analyze_api")
     @Transactional
-//    @ApiIgnore
+    //    @ApiIgnore
     public RespDTO<Map<String, Object>> analyzeApi(@RequestBody AnalyzeApiVO analyzeApiVO) {
         return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeApiVO));
     }
@@ -123,7 +124,7 @@ public class BehospitalInfoController {
     @PostMapping("/addCase")
     @SysLogger("addCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> addCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> addCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(1);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -134,7 +135,7 @@ public class BehospitalInfoController {
     @PostMapping("/delCase")
     @SysLogger("delCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> delCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> delCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(2);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -144,7 +145,7 @@ public class BehospitalInfoController {
     @PostMapping("/updCase")
     @SysLogger("updCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> updCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> updCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(3);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -157,7 +158,7 @@ public class BehospitalInfoController {
                     "filterFlag: 筛选病历数据:0:未评分的病历,【推荐使用】;1:全部病历,【谨慎使用】")
     @PostMapping("/execule")
     @SysLogger("execule")
-    public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO){
+    public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO) {
         behospitalInfoFacade.execute(taskVO, "");
         return RespDTO.onSuc(true);
     }
@@ -200,4 +201,12 @@ public class BehospitalInfoController {
     public void exportExcel(HttpServletResponse response) {
         behospitalInfoFacade.exportExcelFac(response);
     }
+
+    @ApiOperation(value = "质控结果导出[by:zhaops]",
+            notes = "")
+    @PostMapping("/exportQcresult")
+    @SysLogger("exportQcresult")
+    public void exportQcresult(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) {
+        behospitalInfoFacade.exportQcresult(response, exportQcresultVO);
+    }
 }

+ 34 - 31
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -1767,32 +1767,35 @@
 
 
     <!-- 质控评分导出到excel-->
-    <select id="exportQcresult" resultType="com.diagbot.dto.ExportQcresultDTO" parameterType="com.diagbot.vo.ExportQcresultVO">
+    <select id="exportQcresult" resultMap="ExportExcelMap" parameterType="com.diagbot.vo.ExportQcresultVO">
         SELECT
-        t1.deptId,
-        t1.deptName,
-        t1.doctorName,
-        t1.patientName,
+        t1.behDeptId,
+        t1.behDeptName,
+        t1.behDoctorName,
+        t1.patName,
         t1.behospitalCode,
         t1.behospitalDate,
         t1.leaveHospitalDate,
-        t1.scoreRes,
-        t2.averageScore,
+        t1.score,
+        t2.avgScore,
         t1.msg,
-        t1.casesName
+        t1.caseName
         FROM
         (
         SELECT
-        CONCAT( a.director_doctor_name, '\n', a.doctor_name ) AS doctorName,
-        a.`name` AS patientName,
+        CONCAT(
+        ( CASE WHEN a.director_doctor_name IS NOT NULL AND a.director_doctor_name != '' THEN concat( a.director_doctor_name, '\n' ) ELSE '' END ),
+        a.doctor_name
+        ) AS behDoctorName,
+        a.`name` AS patName,
         a.behospital_code AS behospitalCode,
-        DATE_FORMAT( a.behospital_date, '%Y/%m/%d' ) AS behospitalDate,
-        DATE_FORMAT( a.leave_hospital_date, '%Y/%m/%d' ) AS leaveHospitalDate,
-        b.score_res AS scoreRes,
+        a.behospital_date AS behospitalDate,
+        a.leave_hospital_date AS leaveHospitalDate,
+        b.score_res AS score,
         c.msg AS msg,
-        d.NAME AS casesName,
-        a.beh_dept_id AS deptId,
-        a.beh_dept_name AS deptName
+        d.NAME AS caseName,
+        a.beh_dept_id AS behDeptId,
+        a.beh_dept_name AS behDeptName
         FROM
         med_behospital_info a,
         med_qcresult_info b,
@@ -1813,18 +1816,18 @@
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
         </if>
-        <if test="leaveHosDateStart != null and leaveHosDateStart != ''">
+        <if test="leaveHosDateStart != null ">
             <![CDATA[ and a.leave_hospital_date >= DATE(#{leaveHosDateStart})]]>
         </if>
-        <if test="leaveHosDateEnd != null and leaveHosDateEnd != ''">
+        <if test="leaveHosDateEnd != null ">
             <![CDATA[AND a.leave_hospital_date < DATE(#{leaveHosDateEnd})]]>
         </if>
         ) t1,
         (
         SELECT
-        ROUND( AVG( b.score_res ), 2 ) AS averageScore,
-        a.beh_dept_id AS deptId,
-        a.beh_dept_name AS deptName
+        ROUND( AVG( b.score_res ), 2 ) AS avgScore,
+        a.beh_dept_id AS behDeptId,
+        a.beh_dept_name AS behDeptName
         FROM
         med_behospital_info a,
         med_qcresult_info b
@@ -1838,24 +1841,24 @@
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
         </if>
-        <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+        <if test="leaveHosDateStart != null ">
+            <![CDATA[ and a.leave_hospital_date >= DATE(#{leaveHosDateStart})]]>
         </if>
-        <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+        <if test="leaveHosDateEnd != null ">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{leaveHosDateEnd})]]>
         </if>
         GROUP BY
         a.beh_dept_id,
         a.beh_dept_name
         ) t2
         WHERE
-        t1.deptId = t2.deptId
-        AND t1.deptName = t2.deptName
+        t1.behDeptId = t2.behDeptId
+        AND t1.behDeptName = t2.behDeptName
         ORDER BY
-        t1.deptId,
-        t1.deptName,
-        t1.NAME,
+        t1.behDeptName,
+        t1.behDeptName,
+        t1.patName,
         t1.behospitalCode,
-        t1.casesName
+        t1.caseName
     </select>
 </mapper>