소스 검색

Merge branch 'dev/20200903_1.4.5' into debug

chengyao 4 년 전
부모
커밋
d2dccd3228

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

@@ -161,6 +161,8 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/medPacsInfo/getCheckPage").permitAll()
                 .antMatchers("/qc/medLisInfo/getExaminePage").permitAll()
                 .antMatchers("/qc/medLisInfo/getExamineSonPage").permitAll()
+                .antMatchers("/console/medicalCheckForm").permitAll()
+                .antMatchers("/console/medicalCheckTitle").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

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

@@ -205,6 +205,8 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/medPacsInfo/getCheckPage", request)
                 || matchers("/qc/medLisInfo/getExaminePage", request)
                 || matchers("/qc/medLisInfo/getExamineSonPage", request)
+                || matchers("/console/medicalCheckForm", request)
+                || matchers("/console/medicalCheckTitle", request)
                 || matchers("/", request)) {
             return true;
         }

+ 34 - 0
src/main/java/com/diagbot/dto/MedicalCheckDTO.java

@@ -0,0 +1,34 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:cy
+ * @time: 2020/9/9 13:19
+ */
+@Getter
+@Setter
+public class MedicalCheckDTO extends Object {
+    //科室名称
+    private String columndeptNames;
+
+    //科室id
+    private String deptId;
+
+    //医生
+    private String doctorName;
+
+    //稽查数量
+    private String jzCount;
+
+    //条目id
+    private String numId;
+
+
+}

+ 151 - 41
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -1,48 +1,19 @@
 package com.diagbot.facade;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.aggregate.AverageStatisticsAggregate;
 import com.diagbot.aggregate.MrStatisticsAggregate;
 import com.diagbot.aggregate.ResultStatisticsAggregate;
-import com.diagbot.dto.AverageStatisticsDTO;
-import com.diagbot.dto.AverageStatisticsFeeDTO;
-import com.diagbot.dto.ColumnDTO;
-import com.diagbot.dto.DeptNumDTO;
-import com.diagbot.dto.EntryNumDTO;
-import com.diagbot.dto.EntryNumGroupDTO;
-import com.diagbot.dto.EntryStatisticsDTO;
-import com.diagbot.dto.HomePageImproveDTO;
-import com.diagbot.dto.HomePageNumDTO;
-import com.diagbot.dto.LevelStatisticsDTO;
-import com.diagbot.dto.LevelStatisticsTZDTO;
-import com.diagbot.dto.NumDTO;
-import com.diagbot.dto.QcResultPercentDTO;
-import com.diagbot.dto.QcResultShortDTO;
-import com.diagbot.dto.ReBeHosDTO;
-import com.diagbot.dto.ReBeHosDetailDTO;
-import com.diagbot.dto.ReBeHosMergeDTO;
-import com.diagbot.dto.UnModifyMRDTO;
-import com.diagbot.dto.UnModifyMRDetailDTO;
+import com.diagbot.dto.*;
 import com.diagbot.entity.QcCasesEntry;
 import com.diagbot.entity.SysHospitalSet;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.ClassUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.ObjectUtil;
-import com.diagbot.util.StringUtil;
-import com.diagbot.vo.EntryStatisticsVO;
-import com.diagbot.vo.FilterOrderVO;
-import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageVO;
-import com.diagbot.vo.FilterUnModifyMRVO;
-import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.QcResultShortPageVO;
-import com.diagbot.vo.ReBeHosPageVO;
+import com.diagbot.util.*;
+import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import org.apache.ibatis.annotations.Param;
@@ -52,13 +23,7 @@ import org.springframework.stereotype.Component;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -1053,10 +1018,13 @@ public class ConsoleFacade {
         qcCasesEntryQueryWrapper.eq("is_deleted", "N")
                 .in("id", casesEntryIds);
         List<QcCasesEntry> casesEntryList = qcCasesEntryFacade.list(qcCasesEntryQueryWrapper);
+        // 实体类中将实体类转化为map形式,其中条目id对应目标条目名称
         Map<Long, String> basCasesEntryMap = EntityUtil.makeMapWithKeyValue(casesEntryList, "id", "name");
 
         List<UnModifyMRDetailDTO> records = behospitalInfoFacade.unModifyMRStatistics(filterUnModifyMRVO);
+        //以科室分组,将符合科室的每条数据以map形式存储
         Map<String, List<UnModifyMRDetailDTO>> deptMap = EntityUtil.makeEntityListMap(records, "deptName");
+        //科室对应科室id
         Map<String, String> deptInfoMap = EntityUtil.makeMapWithKeyValue(records, "deptName", "deptId");
         Map<String, Map<Long, UnModifyMRDetailDTO>> deptEntryMap = new LinkedHashMap<>();
         for (Map.Entry<String, List<UnModifyMRDetailDTO>> entry : deptMap.entrySet()) {
@@ -1321,4 +1289,146 @@ public class ConsoleFacade {
         filterFacade.qcResultShortPageVOSet(qcResultShortPageVO);
         return behospitalInfoFacade.qcCheckMRPage(qcResultShortPageVO);
     }
-}
+
+    /**
+     * 运行病历稽查表(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public IPage<Map<String, Object>> getMedicalCheck(@Param("filterVO") FilterMedicalCheckVO filterVO) {
+        //filterFacade.getMedicalCheckVOSet(filterVO);
+        filterVO.setHospitalId("2");
+        //colums
+        QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
+        hospitalSetQueryWrapper.eq("is_deleted", 'N')
+                .eq("hospital_id", filterVO.getHospitalId())
+                .eq("code", "medical_check_form");
+        SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
+
+        //表头生成
+        List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
+
+        //目标条目
+        List<Long> casesEntryIds = Lists.newArrayList();
+        //遍历第一个条目
+        for (String valueStr : columnSet) {
+            if (StringUtil.isBlank(valueStr)) {
+                continue;
+            }
+            String[] keyValue = valueStr.split("--");
+            if (keyValue != null || keyValue.length > 1) {
+                casesEntryIds.add(Long.valueOf(keyValue[0]));
+            }
+        }
+        filterVO.setCasesEntryIds(casesEntryIds);
+        IPage<Map<String, Object>> medicalCheck = behospitalInfoFacade.getMedicalCheck(filterVO);
+        List<Map<String, Object>> records = medicalCheck.getRecords();
+        List<Map<String, Object>> targetRecords = new ArrayList<>();
+
+        for (Map<String, Object> record : records) {
+            MedicalCheckDTO medicalCheckDTO = new MedicalCheckDTO();
+            Map<String, Object> targetMap = new HashMap<String, Object>();
+            Map<String, Object> targetMedicalCheck = new HashMap<>();
+            String deptId = String.valueOf(record.get("deptId"));
+            String deptName = String.valueOf(record.get("deptName"));
+            String doctorName = String.valueOf(record.get("doctorName"));
+            String casesEntryId = String.valueOf(record.get("casesEntryId"));
+
+            String[] split = casesEntryId.split(",");
+
+            for (String num : split) {
+                if (!targetMap.containsKey(num)) {
+                    targetMap.put(num, 1);
+                } else {
+                    targetMap.put(num, (Object) ((Integer) targetMap.get(num) + 1));
+                }
+            }
+            medicalCheckDTO.setDoctorName(doctorName);
+            medicalCheckDTO.setDeptId(deptId);
+            medicalCheckDTO.setColumndeptNames(deptName);
+            Set<Map.Entry<String, Object>> entries = targetMap.entrySet();
+            for (Map.Entry<String, Object> entry : entries) {
+                medicalCheckDTO.setNumId(entry.getKey());
+                medicalCheckDTO.setJzCount(String.valueOf(entry.getValue()));
+                targetMedicalCheck.put(medicalCheckDTO.getNumId(), medicalCheckDTO);
+
+            }
+
+
+            targetRecords.add(targetMedicalCheck);
+        }
+        medicalCheck.setRecords(targetRecords);
+
+
+        return medicalCheck;
+    }
+
+    /**
+     * 运行病历稽查表(title)
+     *
+     * @param
+     * @return
+     */
+
+
+    public List<ColumnDTO> getMedicalCheckTitle() {
+        //运行病历稽查入参拼接
+        // String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String hospitalId = "2";
+        //colums
+        QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
+        hospitalSetQueryWrapper.eq("is_deleted", 'N')
+                .eq("hospital_id", hospitalId)
+                .eq("code", "medical_check_form");
+        List<ColumnDTO> columns = Lists.newLinkedList();
+        SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
+        if (hospitalSet == null || StringUtil.isBlank(hospitalSet.getValue())) {
+            return columns;
+        }
+
+        //表头生成
+        List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
+        Integer orderNo = 1;
+        ColumnDTO columnDeptId = new ColumnDTO();
+        columnDeptId.setOrderNo(orderNo);
+        columnDeptId.setFieldName("deptId");
+        columnDeptId.setColumnName("科室编码");
+        columnDeptId.setIsShow(0);
+        columns.add(columnDeptId);
+        orderNo++;
+        ColumnDTO columnDeptName = new ColumnDTO();
+        columnDeptName.setOrderNo(orderNo);
+        columnDeptName.setFieldName("deptName");
+        columnDeptName.setColumnName("科室");
+        columnDeptName.setIsShow(1);
+        columns.add(columnDeptName);
+        orderNo++;
+        ColumnDTO columnMedicalName = new ColumnDTO();
+        columnDeptName.setOrderNo(orderNo);
+        columnDeptName.setFieldName("medicalName");
+        columnDeptName.setColumnName("医疗组");
+        columnDeptName.setIsShow(1);
+        columns.add(columnMedicalName);
+        orderNo++;
+        for (String valueStr : columnSet) {
+            if (StringUtil.isBlank(valueStr)) {
+                continue;
+            }
+            String[] keyValue = valueStr.split("--");
+            if (keyValue != null || keyValue.length > 1) {
+                ColumnDTO columnNum = new ColumnDTO();
+                columnNum.setOrderNo(orderNo);
+                columnNum.setId(Long.valueOf(keyValue[0]));
+                columnNum.setFieldName("entry_" + keyValue[0] + "_num");
+                columnNum.setColumnName(keyValue[1]);
+                columnNum.setIsShow(1);
+                columns.add(columnNum);
+                orderNo++;
+            }
+        }
+
+        return columns;
+    }
+}
+

+ 14 - 11
src/main/java/com/diagbot/facade/FilterFacade.java

@@ -4,16 +4,7 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.SysUserUtils;
-import com.diagbot.vo.EntryStatisticsVO;
-import com.diagbot.vo.FilterOrderByDeptVO;
-import com.diagbot.vo.FilterOrderVO;
-import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageByDeptVO;
-import com.diagbot.vo.FilterPageVO;
-import com.diagbot.vo.FilterUnModifyMRVO;
-import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.QcResultShortPageVO;
-import com.diagbot.vo.ReBeHosPageVO;
+import com.diagbot.vo.*;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -291,4 +282,16 @@ public class FilterFacade {
         reBeHosPageVO.setHospitalId(hospitalId);
         reBeHosPageVO.setUserId(Long.valueOf(userId));
     }
-}
+
+    /**
+     * 运行病历稽查统计入参拼接
+     *
+     * @param filterVO
+     */
+    public void getMedicalCheckVOSet(FilterMedicalCheckVO filterVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        filterVO.setHospitalId(hospitalId);
+        filterVO.setUserId(Long.valueOf(userId));
+    }
+}

+ 10 - 14
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -16,20 +16,7 @@ import com.diagbot.dto.QcResultShortDTO;
 import com.diagbot.dto.ReBeHosMergeDTO;
 import com.diagbot.dto.UnModifyMRDetailDTO;
 import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.vo.AnalyzeCodeVO;
-import com.diagbot.vo.AnalyzeVO;
-import com.diagbot.vo.BehospitalPageVO;
-import com.diagbot.vo.EntryStatisticsVO;
-import com.diagbot.vo.ExportQcresultVO;
-import com.diagbot.vo.FilterOrderByDeptVO;
-import com.diagbot.vo.FilterOrderVO;
-import com.diagbot.vo.FilterPageByDeptVO;
-import com.diagbot.vo.FilterPageVO;
-import com.diagbot.vo.FilterUnModifyMRVO;
-import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.QcResultShortPageVO;
-import com.diagbot.vo.ReBeHosPageVO;
-import com.diagbot.vo.TaskVO;
+import com.diagbot.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -349,6 +336,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<UnModifyMRDetailDTO> unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO);
 
+    /**
+     * 运行病历稽查表
+     *
+     * @param filterVO
+     * @return
+     */
+    public IPage<Map<String, Object>>  getMedicalCheck(@Param("filterVO")FilterMedicalCheckVO filterVO,@Param("infos")List<Long> infos);
+
+
     /**
      * 未整改病历质控评分页(内页)
      *

+ 10 - 15
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -16,23 +16,11 @@ import com.diagbot.dto.QcResultShortDTO;
 import com.diagbot.dto.ReBeHosMergeDTO;
 import com.diagbot.dto.UnModifyMRDetailDTO;
 import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.vo.AnalyzeCodeVO;
-import com.diagbot.vo.AnalyzeVO;
-import com.diagbot.vo.BehospitalPageVO;
-import com.diagbot.vo.EntryStatisticsVO;
-import com.diagbot.vo.ExportQcresultVO;
-import com.diagbot.vo.FilterOrderByDeptVO;
-import com.diagbot.vo.FilterOrderVO;
-import com.diagbot.vo.FilterPageByDeptVO;
-import com.diagbot.vo.FilterPageVO;
-import com.diagbot.vo.FilterUnModifyMRVO;
-import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.QcResultShortPageVO;
-import com.diagbot.vo.ReBeHosPageVO;
-import com.diagbot.vo.TaskVO;
+import com.diagbot.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -333,6 +321,13 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<UnModifyMRDetailDTO> unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO);
 
+    /**
+     * 运行病历稽查表
+     * @return
+     */
+    IPage<Map<String, Object>>  getMedicalCheck(FilterMedicalCheckVO filterVO);
+
+
     /**
      * 未整改病历质控评分页(内页)
      *
@@ -404,4 +399,4 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @return
      */
     public List<ExportExcelDTO> qcCheckMRPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
-}
+}

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

@@ -18,20 +18,7 @@ import com.diagbot.dto.UnModifyMRDetailDTO;
 import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.mapper.BehospitalInfoMapper;
 import com.diagbot.service.BehospitalInfoService;
-import com.diagbot.vo.AnalyzeCodeVO;
-import com.diagbot.vo.AnalyzeVO;
-import com.diagbot.vo.BehospitalPageVO;
-import com.diagbot.vo.EntryStatisticsVO;
-import com.diagbot.vo.ExportQcresultVO;
-import com.diagbot.vo.FilterOrderByDeptVO;
-import com.diagbot.vo.FilterOrderVO;
-import com.diagbot.vo.FilterPageByDeptVO;
-import com.diagbot.vo.FilterPageVO;
-import com.diagbot.vo.FilterUnModifyMRVO;
-import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.QcResultShortPageVO;
-import com.diagbot.vo.ReBeHosPageVO;
-import com.diagbot.vo.TaskVO;
+import com.diagbot.vo.*;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Param;
@@ -481,6 +468,20 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.unModifyMRStatistics(filterUnModifyMRVO);
     }
 
+    /**
+     * 运行病历稽查表
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public IPage<Map<String, Object>> getMedicalCheck(FilterMedicalCheckVO filterVO) {
+        return baseMapper.getMedicalCheck(filterVO,filterVO.getCasesEntryIds());
+
+    }
+
+
+
     /**
      * 未整改病历质控评分页(内页)
      *

+ 54 - 0
src/main/java/com/diagbot/vo/FilterMedicalCheckVO.java

@@ -0,0 +1,54 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:cy
+ * @time: 2020/9/9 13:06
+ */
+@Getter
+@Setter
+public class FilterMedicalCheckVO extends Page {
+    /**
+     * 起始时间
+     */
+    @NotBlank(message = "请输入起始时间")
+    private String startDate;
+    /**
+     * 结束时间
+     */
+    @NotBlank(message = "请输入结束时间")
+    private String endDate;
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+    /**
+     * 医生id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+    /**
+     * 关键条目id
+     */
+    @ApiModelProperty(hidden = true)
+    private List<Long> casesEntryIds;
+
+    /**
+     * 科室名称
+     */
+    private String name;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    private String isPlacefile = "1";
+}

+ 33 - 24
src/main/java/com/diagbot/web/ConsoleController.java

@@ -2,30 +2,9 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.AverageStatisticsDTO;
-import com.diagbot.dto.AverageStatisticsFeeDTO;
-import com.diagbot.dto.DeptNumDTO;
-import com.diagbot.dto.EntryNumDTO;
-import com.diagbot.dto.EntryNumGroupDTO;
-import com.diagbot.dto.EntryStatisticsDTO;
-import com.diagbot.dto.HomePageImproveDTO;
-import com.diagbot.dto.HomePageNumDTO;
-import com.diagbot.dto.LevelStatisticsDTO;
-import com.diagbot.dto.LevelStatisticsTZDTO;
-import com.diagbot.dto.NumDTO;
-import com.diagbot.dto.QcResultShortDTO;
-import com.diagbot.dto.ReBeHosDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.UnModifyMRDTO;
+import com.diagbot.dto.*;
 import com.diagbot.facade.ConsoleFacade;
-import com.diagbot.vo.EntryStatisticsVO;
-import com.diagbot.vo.FilterOrderVO;
-import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageVO;
-import com.diagbot.vo.FilterUnModifyMRVO;
-import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.QcResultShortPageVO;
-import com.diagbot.vo.ReBeHosPageVO;
+import com.diagbot.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -766,4 +745,34 @@ public class ConsoleController {
     public RespDTO<IPage<QcResultShortDTO>> qcCheckMRPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
         return RespDTO.onSuc(consoleFacade.qcCheckMRPage(qcResultShortPageVO));
     }
-}
+
+
+    /**
+     * 运行病历稽查表(首页)
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "运行病历稽查统计[by:cy]",
+            notes = "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/medicalCheckForm")
+    @SysLogger("medicalCheckForm")
+    public RespDTO<IPage<Map<String, Object>> > getMedicalCheck(@RequestBody @Valid FilterMedicalCheckVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.getMedicalCheck(filterVO));
+    }
+    /**
+     * 运行病历稽查表(title)
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "运行病历稽查获取title[by:cy]")
+    @PostMapping("/medicalCheckTitle")
+    @SysLogger("medicalCheckTitle")
+    public RespDTO<List<ColumnDTO>> getMedicalCheckTitle() {
+        return RespDTO.onSuc(consoleFacade.getMedicalCheckTitle());
+    }
+}

+ 119 - 53
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -50,7 +50,7 @@
         h.check_name AS mr_name,
         g.check_time AS ch_time,
         h.check_time AS mr_time
-         from (
+        from (
         select a.*, ifnull(b.level,'未评分') as `level`, b.grade_type, b.score_res, b.gmt_create as
         grade_time, c.age from med_behospital_info a
         LEFT JOIN med_qcresult_info b
@@ -111,10 +111,10 @@
         and t.qc_type_id != 0) p
         where p.is_deleted="N"
         <if test="checkStatus != null ">
-        and p.check_status = #{checkStatus}
+            and p.check_status = #{checkStatus}
         </if>
         <if test="mrStatus != null ">
-        AND p.mr_status = #{mrStatus}
+            AND p.mr_status = #{mrStatus}
         </if>
         <if test="chName != null and chName !=''">
             AND  p.ch_name  like CONCAT('%',#{chName},'%')
@@ -412,7 +412,7 @@
             and p.check_status = #{checkStatus}
         </if>
         <if test="mrStatus != null ">
-        AND p.mr_status = #{mrStatus}
+            AND p.mr_status = #{mrStatus}
         </if>
         <if test="chName != null and chName !=''">
             AND  p.ch_name  like CONCAT('%',#{chName},'%')
@@ -446,7 +446,7 @@
         h.check_name as mr_name,
         g.check_time as ch_time,
         h.check_time AS mr_time
-         from (SELECT
+        from (SELECT
         a.*,
         IFNULL(b.level, '未评分') AS `level`,
         b.grade_type,
@@ -557,7 +557,7 @@
         h.check_name as mr_name,
         g.check_time as ch_time,
         h.check_time AS mr_time
-         from (
+        from (
         select a.*, ifnull(b.level,'未评分') as `level`, b.grade_type, b.score_res, b.gmt_create as
         grade_time, c.age from med_behospital_info a
         LEFT JOIN med_qcresult_info b
@@ -573,17 +573,17 @@
         AND t.hospital_id = h.hospital_id
         WHERE t.is_deleted = 'N'
         and
-            t.doctor_id in (
-                SELECT doctor_id FROM `bas_doctor_info`
-                where is_deleted = 'N' and hospital_id = #{hospitalId} and group_id in (
-                    select c3.group_id from sys_user c1, sys_user_hospital c2, bas_doctor_info c3
-                    where c1.is_deleted = 'N' and c2.is_deleted = 'N' and c3.is_deleted = 'N'
-                    and c1.id = c2.user_id and c2.hospital_id = c3.hospital_id
-                    and c1.username = c3.doctor_id
-                    and c2.hospital_id = #{hospitalId}
-                    and c1.id = #{userId}
-                )
-            )
+        t.doctor_id in (
+        SELECT doctor_id FROM `bas_doctor_info`
+        where is_deleted = 'N' and hospital_id = #{hospitalId} and group_id in (
+        select c3.group_id from sys_user c1, sys_user_hospital c2, bas_doctor_info c3
+        where c1.is_deleted = 'N' and c2.is_deleted = 'N' and c3.is_deleted = 'N'
+        and c1.id = c2.user_id and c2.hospital_id = c3.hospital_id
+        and c1.username = c3.doctor_id
+        and c2.hospital_id = #{hospitalId}
+        and c1.id = #{userId}
+        )
+        )
         <if test="deptId != null and deptId != ''">
             and t.beh_dept_id = #{deptId}
         </if>
@@ -2779,7 +2779,7 @@
         h.check_name AS mr_name,
         g.check_time AS ch_time,
         h.check_time AS mr_time
-         FROM (
+        FROM (
         SELECT
         t1.behDeptId,
         t1.behDeptName,
@@ -2849,13 +2849,13 @@
         </if>
         <if test="doctorName != null and doctorName != ''">
             AND (a.doctor_name like CONCAT('%',#{doctorName},'%')
-                 OR a.beh_doctor_name like CONCAT('%',#{doctorName},'%')
-                 OR a.director_doctor_name like CONCAT('%',#{doctorName},'%'))
+            OR a.beh_doctor_name like CONCAT('%',#{doctorName},'%')
+            OR a.director_doctor_name like CONCAT('%',#{doctorName},'%'))
         </if>
         <if test="doctorCode != null and doctorCode != ''">
             AND (a.doctor_id like CONCAT('%',#{doctorCode},'%')
-                 OR a.beh_doctor_id like CONCAT('%',#{doctorCode},'%')
-                 OR a.director_doctor_id like CONCAT('%',#{doctorCode},'%'))
+            OR a.beh_doctor_id like CONCAT('%',#{doctorCode},'%')
+            OR a.director_doctor_id like CONCAT('%',#{doctorCode},'%'))
         </if>
         <if test="deptId != null and deptId != ''">
             AND a.beh_dept_id = #{deptId}
@@ -2976,7 +2976,7 @@
         h.check_name AS mr_name,
         g.check_time AS ch_time,
         h.check_time AS mr_time
-         FROM (
+        FROM (
         SELECT
         t1.behDeptId,
         t1.behDeptName,
@@ -3187,7 +3187,7 @@
         h.check_name AS mr_name,
         g.check_time AS ch_time,
         h.check_time AS mr_time
-         FROM (
+        FROM (
         SELECT
         t1.behDeptId,
         t1.behDeptName,
@@ -3234,15 +3234,15 @@
             and a.is_placefile = #{isPlacefile}
         </if>
         AND a.doctor_id in
-            (SELECT doctor_id FROM `bas_doctor_info`
-            where is_deleted = 'N' and hospital_id = #{hospitalId} and group_id in (
-            select c3.group_id from sys_user c1, sys_user_hospital c2, bas_doctor_info c3
-            where c1.is_deleted = 'N' and c2.is_deleted = 'N' and c3.is_deleted = 'N'
-            and c1.id = c2.user_id and c2.hospital_id = c3.hospital_id
-            and c1.username = c3.doctor_id
-            and c2.hospital_id = #{hospitalId}
-            and c1.id = #{userId}
-            ))
+        (SELECT doctor_id FROM `bas_doctor_info`
+        where is_deleted = 'N' and hospital_id = #{hospitalId} and group_id in (
+        select c3.group_id from sys_user c1, sys_user_hospital c2, bas_doctor_info c3
+        where c1.is_deleted = 'N' and c2.is_deleted = 'N' and c3.is_deleted = 'N'
+        and c1.id = c2.user_id and c2.hospital_id = c3.hospital_id
+        and c1.username = c3.doctor_id
+        and c2.hospital_id = #{hospitalId}
+        and c1.id = #{userId}
+        ))
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -3293,15 +3293,15 @@
         WHERE
         a.is_deleted = 'N'
         AND a.doctor_id in
-            (SELECT doctor_id FROM `bas_doctor_info`
-            where is_deleted = 'N' and hospital_id = #{hospitalId} and group_id in (
-            select c3.group_id from sys_user c1, sys_user_hospital c2, bas_doctor_info c3
-            where c1.is_deleted = 'N' and c2.is_deleted = 'N' and c3.is_deleted = 'N'
-            and c1.id = c2.user_id and c2.hospital_id = c3.hospital_id
-            and c1.username = c3.doctor_id
-            and c2.hospital_id = #{hospitalId}
-            and c1.id = #{userId}
-            ))
+        (SELECT doctor_id FROM `bas_doctor_info`
+        where is_deleted = 'N' and hospital_id = #{hospitalId} and group_id in (
+        select c3.group_id from sys_user c1, sys_user_hospital c2, bas_doctor_info c3
+        where c1.is_deleted = 'N' and c2.is_deleted = 'N' and c3.is_deleted = 'N'
+        and c1.id = c2.user_id and c2.hospital_id = c3.hospital_id
+        and c1.username = c3.doctor_id
+        and c2.hospital_id = #{hospitalId}
+        and c1.id = #{userId}
+        ))
         AND b.is_deleted = 'N'
         AND a.hospital_id = b.hospital_id
         AND a.behospital_code = b.behospital_code
@@ -4676,17 +4676,17 @@
     </select>
     <!-- 离院病人评分详情页-->
     <select id="getAge" resultType="java.util.Map">
-    SELECT
-    a.behospital_code as behospitalCode,
-    a.age as age
-    FROM
-    med_home_page a
-    WHERE
-    a.is_deleted = 'N'
-    AND a.hospital_id = #{hospitalId}
-    AND a.behospital_code IN
+        SELECT
+        a.behospital_code as behospitalCode,
+        a.age as age
+        FROM
+        med_home_page a
+        WHERE
+        a.is_deleted = 'N'
+        AND a.hospital_id = #{hospitalId}
+        AND a.behospital_code IN
         <foreach collection="behospitalCodes" open="(" separator="," close=")" item="item">
-          '${item}'
+            '${item}'
         </foreach>
     </select>
     <!-- 离院病人评分详情页-->
@@ -4862,7 +4862,7 @@
             , med_medical_record b,
             med_medical_record_content c
             WHERE
-             b.is_deleted = 'N'
+            b.is_deleted = 'N'
             and	c.is_deleted = 'N'
             and t1.hospital_id = b.hospital_id
             and t1.hospital_id = c.hospital_id
@@ -6416,6 +6416,72 @@
         f1.behDeptId = f2.behDeptId
         AND f1.behDeptName = f2.behDeptName
     </select>
+    <!--    运行病历稽查表-->
+    <select id="getMedicalCheck" resultType="java.util.Map">
+        SELECT
+        DISTINCT a.file_code,
+        a.doctor_name as doctorName,
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName,
+        group_concat(d.id) AS casesEntryId,
+        group_concat(d.NAME) AS casesEntryName,
+        count(*) AS casesEntryNum
+        FROM
+        med_behospital_info a,
+        med_qcresult_info b,
+        med_qcresult_detail c,
+        qc_cases_entry d
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        AND c.cases_entry_id = d.id
+        AND a.qc_type_id != 0
+        AND d.id in
+        <if test="infos != null and infos.size() > 0">
+            <foreach collection="infos" open="(" separator="," close=")" item="item">
+                ${item}
+            </foreach>
+        </if>
+        <if test="infos = null || infos.size() == 0">
+            and b.info in('000000ASDQWEZXC@#$%')
+        </if>
+        <if test="filterVO.isPlacefile != null and filterVO.isPlacefile != ''">
+            and a.is_placefile = #{filterVO.isPlacefile}
+        </if>
+        <if test="filterVO.hospitalId != null and filterVO.hospitalId != ''">
+            AND a.hospital_id = #{filterVO.hospitalId}
+        </if>
+        <if test="filterVO.isPlacefile != null and filterVO.isPlacefile == 0">
+            <if test="filterVO.startDate != null ">
+                <![CDATA[ AND a.behospital_date >= #{filterVO.startDate}]]>
+            </if>
+            <if test="filterVO.endDate != null ">
+                <![CDATA[ AND a.behospital_date <= #{filterVO.endDate}]]>
+            </if>
+        </if>
+        <if test="filterVO.isPlacefile != null and filterVO.isPlacefile == 1">
+            <if test="filterVO.startDate != null ">
+                <![CDATA[ AND a.leave_hospital_date >= #{filterVO.startDate}]]>
+            </if>
+            <if test="filterVO.endDate != null ">
+                <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
+            </if>
+        </if>
+        <if test="filterVO.name != null and filterVO.name != ''">
+            AND a.beh_dept_name like CONCAT('%', #{filterVO.name}, '%')
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name,
+        c.cases_entry_id,
+        d.NAME
+    </select>
 
     <!-- 未整改病历统计-->
     <select id="unModifyMRStatistics" resultType="com.diagbot.dto.UnModifyMRDetailDTO" parameterType="com.diagbot.vo.FilterUnModifyMRVO">