chengyao 4 lat temu
rodzic
commit
e881d98150

Plik diff jest za duży
+ 12 - 0
doc/029.20201224v2.0.0/qc_initv2.0.0.sql


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

@@ -200,6 +200,8 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/print/export/improveMRExportByDept").permitAll()
                 .antMatchers("/consoleByDept/reHos31DaysPageByDept").permitAll()
                 .antMatchers("/print/export/reHos31DaysPageExportByDept").permitAll()
+                .antMatchers("/consoleByDept/unModifyMRSByDept").permitAll()
+                .antMatchers("/print/export/unModifyMRSExportByDept").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

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

@@ -244,6 +244,8 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/print/export/improveMRExportByDept", request)
                 || matchers("/consoleByDept/reHos31DaysPageByDept", request)
                 || matchers("/print/export/reHos31DaysPageExportByDept", request)
+                || matchers("/consoleByDept/unModifyMRSByDept", request)
+                || matchers("/print/export/unModifyMRSExportByDept", request)
                 || matchers("/", request)) {
             return true;
         }

+ 2 - 0
src/main/java/com/diagbot/dto/UnModifyMRDetailDTO.java

@@ -13,6 +13,8 @@ import lombok.Setter;
 public class UnModifyMRDetailDTO {
     private String deptId;
     private String deptName;
+    private String doctorId;
+    private String doctorName;
     private Long casesEntryId;
     private String casesEntryName;
     private Integer casesEntryNum;

+ 50 - 0
src/main/java/com/diagbot/facade/ConsoleByDeptExportFacade.java

@@ -1,11 +1,15 @@
 package com.diagbot.facade;
 
+import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.*;
+import com.diagbot.entity.SysHospitalSet;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.*;
 import com.diagbot.vo.*;
+import com.google.common.collect.Lists;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -13,6 +17,7 @@ import org.springframework.stereotype.Component;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -337,6 +342,51 @@ public class ConsoleByDeptExportFacade {
         ExcelUtils.exportExcel(records, null, "sheet1", ReBeHosByDeptDTO.class, fileName, response);
     }
 
+    /**
+     * 未整改病历统计导出-科室
+     *
+     * @param response
+     * @param filterUnModifyMRVO
+     */
+    public void unModifyMRSExportByDept(HttpServletResponse response, FilterUnModifyMRVO filterUnModifyMRVO) {
+        filterFacade.filterUnModifyMRVOSet(filterUnModifyMRVO);
+        List<ExcelExportEntity> colList = Lists.newLinkedList();
+        ExcelExportEntity deptNameCol = new ExcelExportEntity("主管医生", "doctorName");
+        deptNameCol.setWidth(50);
+        colList.add(deptNameCol);
+
+        QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
+        hospitalSetQueryWrapper.eq("is_deleted", 'N')
+                .eq("hospital_id", filterUnModifyMRVO.getHospitalId())
+                .eq("code", "unmodify_mr_entry");
+        SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
+        //缺陷条目未维护
+        if (hospitalSet == null || StringUtil.isBlank(hospitalSet.getValue())) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "未整改病历条目未设置");
+        }
+
+        List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
+        for (String valueStr : columnSet) {
+            if (StringUtil.isBlank(valueStr)) {
+                continue;
+            }
+            String[] keyValue = valueStr.split("--");
+            if (keyValue != null || keyValue.length > 1) {
+                ExcelExportEntity entryCol = new ExcelExportEntity(keyValue[1], "entry_" + keyValue[0] + "_num");
+                entryCol.setWidth(20);
+                colList.add(entryCol);
+            }
+        }
+        UnModifyMRDTO unModifyMRDTO = consoleByDeptFacade.unModifyMRSByDept(filterUnModifyMRVO);
+        List<Object> data = Lists.newLinkedList();
+        if (unModifyMRDTO != null && ListUtil.isNotEmpty(unModifyMRDTO.getData())) {
+            data = unModifyMRDTO.getData();
+        }
+        String fileName = "未整改病历统计.xls";
+        ExcelUtils.exportExcelDynamicCol(colList, data, null, "sheet1", fileName, response);
+    }
+
+
 
     public void solveParam(QcResultShortPageVO qcResultShortPageVO){
        String hospitalId = SysUserUtils.getCurrentHospitalID();

+ 239 - 5
src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java

@@ -1,13 +1,12 @@
 package com.diagbot.facade;
 
+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.dto.*;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.StringUtil;
-import com.diagbot.util.SysUserUtils;
+import com.diagbot.entity.QcCasesEntry;
+import com.diagbot.entity.SysHospitalSet;
+import com.diagbot.util.*;
 import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
 import org.apache.ibatis.annotations.Param;
@@ -38,6 +37,11 @@ public class ConsoleByDeptFacade {
     private FilterFacade filterFacade;
     @Autowired
     private QcCasesFacade qcCasesFacade;
+    @Autowired
+    private SysHospitalSetFacade sysHospitalSetFacade;
+    @Autowired
+    private QcCasesEntryFacade qcCasesEntryFacade;
+
 
     /**
      * 出院人数统计-按科室
@@ -816,5 +820,235 @@ public class ConsoleByDeptFacade {
         return retPage;
     }
 
+    /**
+     * 未整改病历统计
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    public UnModifyMRDTO unModifyMRSByDept(FilterUnModifyMRVO filterUnModifyMRVO) {
+        UnModifyMRDTO unModifyMRDTO = new UnModifyMRDTO();
+        List<Object> retList = Lists.newLinkedList();
+        filterFacade.filterUnModifyMRVOSet(filterUnModifyMRVO);
+
+        //colums
+        QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
+        hospitalSetQueryWrapper.eq("is_deleted", 'N')
+                .eq("hospital_id", filterUnModifyMRVO.getHospitalId())
+                .eq("code", "unmodify_mr_entry_ks");
+        SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
+        if (hospitalSet == null || StringUtil.isBlank(hospitalSet.getValue())) {
+            return unModifyMRDTO;
+        }
+
+        //表头生成
+        List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
+        List<ColumnDTO> columns = Lists.newLinkedList();
+        Integer orderNo = 1;
+        ColumnDTO columnDeptId = new ColumnDTO();
+        columnDeptId.setOrderNo(orderNo);
+        columnDeptId.setFieldName("doctorId");
+        columnDeptId.setColumnName("医生编码");
+        columnDeptId.setIsShow(0);
+        columns.add(columnDeptId);
+        orderNo++;
+        ColumnDTO columnDeptName = new ColumnDTO();
+        columnDeptName.setOrderNo(orderNo);
+        columnDeptName.setFieldName("doctorName");
+        columnDeptName.setColumnName("主管医生");
+        columnDeptName.setIsShow(1);
+        columns.add(columnDeptName);
+        orderNo++;
+        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]));
+                ColumnDTO columnId = new ColumnDTO();
+                columnId.setOrderNo(orderNo);
+                columnId.setId(Long.valueOf(keyValue[0]));
+                columnId.setFieldName("entry_" + keyValue[0] + "_id");
+                columnId.setColumnName(keyValue[1] + "id");
+                columnId.setIsShow(0);
+                columns.add(columnId);
+                orderNo++;
+                ColumnDTO columnName = new ColumnDTO();
+                columnName.setOrderNo(orderNo);
+                columnName.setId(Long.valueOf(keyValue[0]));
+                columnName.setFieldName("entry_" + keyValue[0] + "_name");
+                columnName.setColumnName(keyValue[1] + "name");
+                columnName.setIsShow(0);
+                columns.add(columnName);
+                orderNo++;
+                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++;
+            }
+        }
+        //条目未维护
+        if (ListUtil.isEmpty(casesEntryIds)) {
+            return unModifyMRDTO;
+        }
+
+        //casesEntryIds
+        filterUnModifyMRVO.setCasesEntryIds(casesEntryIds);
+        QueryWrapper<QcCasesEntry> qcCasesEntryQueryWrapper = new QueryWrapper<>();
+        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.unModifyMRSByDept(filterUnModifyMRVO);
+        //以科室分组,将符合科室的每条数据以map形式存储
+        Map<String, List<UnModifyMRDetailDTO>> deptMap = EntityUtil.makeEntityListMap(records, "doctorName");
+        //科室对应科室id
+        Map<String, String> deptInfoMap = EntityUtil.makeMapWithKeyValue(records, "doctorName", "doctorId");
+        Map<String, Map<Long, UnModifyMRDetailDTO>> deptEntryMap = new LinkedHashMap<>();
+        for (Map.Entry<String, List<UnModifyMRDetailDTO>> entry : deptMap.entrySet()) {
+            Map<Long, UnModifyMRDetailDTO> entryMap = EntityUtil.makeEntityMap(entry.getValue(), "casesEntryId");
+            deptEntryMap.put(entry.getKey(), entryMap);
+        }
+
+        try {
+            for (Map.Entry<String, Map<Long, UnModifyMRDetailDTO>> entry : deptEntryMap.entrySet()) {
+                Object obj = new Object();
+                HashMap addMap = new HashMap();
+                HashMap addValMap = new HashMap();
+
+                addMap.put("doctorName", Class.forName("java.lang.String"));
+                addValMap.put("doctorName", entry.getKey());
+                addMap.put("doctorId", Class.forName("java.lang.String"));
+                addValMap.put("doctorId", deptInfoMap.get(entry.getKey()));
+
+                for (ColumnDTO item : columns) {
+                    if (item.getFieldName().lastIndexOf("_id") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.Long"));
+                        if (item.getId() != null) {
+                            addValMap.put(item.getFieldName(), item.getId());
+                        } else {
+                            addValMap.put(item.getFieldName(), null);
+                        }
+                    } else if (item.getFieldName().lastIndexOf("_name") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.String"));
+                        if (basCasesEntryMap.containsKey(item.getId())) {
+                            addValMap.put(item.getFieldName(), basCasesEntryMap.get(item.getId()));
+                        } else {
+                            addValMap.put(item.getFieldName(), "");
+                        }
+                    } else if (item.getFieldName().lastIndexOf("_num") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.Integer"));
+                        if (entry.getValue().containsKey(item.getId())) {
+                            addValMap.put(item.getFieldName(), entry.getValue().get(item.getId()).getCasesEntryNum());
+                        } else {
+                            addValMap.put(item.getFieldName(), 0);
+                        }
+                    }
+                }
+                obj = new ClassUtil().dynamicClass(obj, addMap, addValMap);
+                retList.add(obj);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        //排序
+        Collections.sort(retList, new Comparator<Object>() {
+            @Override
+            public int compare(Object o1, Object o2) {
+
+                if (StringUtil.isNotBlank(filterUnModifyMRVO.getAsc())) {
+                    //升序
+                    Object o1Val = ObjectUtil.getValueByKey(o1, filterUnModifyMRVO.getAsc());
+                    Object o2Val = ObjectUtil.getValueByKey(o2, filterUnModifyMRVO.getAsc());
+                    if (filterUnModifyMRVO.getAsc().lastIndexOf("_num") > 1) {
+                        return ((Integer) o1Val).compareTo((Integer) o2Val);
+                    }
+                    if (filterUnModifyMRVO.getAsc().lastIndexOf("_id") > 1) {
+                        return ((Long) o1Val).compareTo((Long) o2Val);
+                    } else {
+                        return ((String) o1Val).compareTo((String) o2Val);
+                    }
+                } else if (StringUtil.isNotBlank(filterUnModifyMRVO.getDesc())) {
+                    //降序
+                    Object o1Val = ObjectUtil.getValueByKey(o1, filterUnModifyMRVO.getDesc());
+                    Object o2Val = ObjectUtil.getValueByKey(o2, filterUnModifyMRVO.getDesc());
+                    if (filterUnModifyMRVO.getDesc().lastIndexOf("_num") > 1) {
+                        return ((Integer) o2Val).compareTo((Integer) o1Val);
+                    }
+                    if (filterUnModifyMRVO.getDesc().lastIndexOf("_id") > 1) {
+                        return ((Long) o2Val).compareTo((Long) o1Val);
+                    } else {
+                        return ((String) o2Val).compareTo((String) o1Val);
+                    }
+                } else {
+                    return 0;
+                }
+            }
+        });
+     /*   //增加全院数据
+        if (ListUtil.isNotEmpty(retList) &&
+                (StringUtil.isBlank(filterUnModifyMRVO.getDeptName())
+                        || filterUnModifyMRVO.getDeptName().equals("全院"))) {
+            try {
+
+                Object globleObj = new Object();
+                HashMap addMap = new HashMap();
+                HashMap addValMap = new HashMap();
+                addMap.put("deptId", Class.forName("java.lang.String"));
+                addValMap.put("deptId", "");
+                addMap.put("deptName", Class.forName("java.lang.String"));
+                addValMap.put("deptName", "全院");
+
+                for (ColumnDTO item : columns) {
+                    if (item.getFieldName().lastIndexOf("_id") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.Long"));
+                        if (item.getId() != null) {
+                            addValMap.put(item.getFieldName(), item.getId());
+                        } else {
+                            addValMap.put(item.getFieldName(), null);
+                        }
+
+                    } else if (item.getFieldName().lastIndexOf("_name") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.String"));
+                        if (basCasesEntryMap.containsKey(item.getId())) {
+                            addValMap.put(item.getFieldName(), basCasesEntryMap.get(item.getId()));
+                        } else {
+                            addValMap.put(item.getFieldName(), "");
+                        }
+
+                    } else if (item.getFieldName().lastIndexOf("_num") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.Integer"));
+                        Integer entryNum = retList
+                                .stream()
+                                .map(i -> ObjectUtil.getValueByKey(i, item.getFieldName()))
+                                .filter(i -> i != null)
+                                .map(i -> (Integer) i)
+                                .reduce(0, Integer::sum);
+                        addValMap.put(item.getFieldName(), entryNum);
+                    }
+                }
+                globleObj = new ClassUtil().dynamicClass(globleObj, addMap, addValMap);
+                retList.add(0, globleObj);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }*/
+        unModifyMRDTO.setColumns(columns);
+        unModifyMRDTO.setData(retList);
+        return unModifyMRDTO;
+    }
+
+
 
 }

+ 9 - 0
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -392,6 +392,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<UnModifyMRDetailDTO> unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO);
 
+    /**
+     * 未整改病历统计-科室
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    public List<UnModifyMRDetailDTO> unModifyMRSByDept(FilterUnModifyMRVO filterUnModifyMRVO);
+
+
     /**
      * 病历稽查表
      *

+ 8 - 0
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -378,6 +378,14 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<UnModifyMRDetailDTO> unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO);
 
+    /**
+     * 未整改病历统计-科室
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    public List<UnModifyMRDetailDTO> unModifyMRSByDept(FilterUnModifyMRVO filterUnModifyMRVO);
+
     /**
      * 病历稽查表
      * @return

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

@@ -529,6 +529,17 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.unModifyMRStatistics(filterUnModifyMRVO);
     }
 
+    /**
+     * 未整改病历统计-科室
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    @Override
+    public List<UnModifyMRDetailDTO> unModifyMRSByDept(FilterUnModifyMRVO filterUnModifyMRVO) {
+        return baseMapper.unModifyMRSByDept(filterUnModifyMRVO);
+    }
+
     /**
      * 病历稽查表
      *

+ 19 - 0
src/main/java/com/diagbot/web/ConsoleByDeptController.java

@@ -429,5 +429,24 @@ public class ConsoleByDeptController {
     public RespDTO<IPage<ReBeHosDTO>> reHos31DaysPageByDept(@RequestBody @Valid ReBeHosPageVO reBeHosPageVO) {
         return RespDTO.onSuc(consoleByDeptFacade.reHos31DaysPageByDept(reBeHosPageVO));
     }
+
+    /**
+     * 未整改病历统计-科室
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    @ApiOperation(value = "未整改病历统计[by:cy]",
+            notes = "deptName: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/unModifyMRSByDept")
+    @SysLogger("unModifyMRSByDept")
+    public RespDTO<UnModifyMRDTO> unModifyMRSByDept(@RequestBody @Valid FilterUnModifyMRVO filterUnModifyMRVO) {
+        return RespDTO.onSuc(consoleByDeptFacade.unModifyMRSByDept(filterUnModifyMRVO));
+    }
     //endregion -----------------------内页接口结束------------------------------
 }

+ 19 - 0
src/main/java/com/diagbot/web/ConsoleByDeptExportController.java

@@ -331,6 +331,25 @@ public class ConsoleByDeptExportController {
         consoleByDeptExportFacade.reHos31DaysPageExportByDept(response, reBeHosPageVO);
     }
 
+    /**
+     * 未整改病历统计导出-科室
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    @ApiOperation(value = "未整改病历统计导出[by:cy]",
+            notes = "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/unModifyMRSExportByDept")
+    @SysLogger("unModifyMRSExportByDept")
+    public void unModifyMRSExportByDept(HttpServletResponse response, @RequestBody @Valid FilterUnModifyMRVO filterUnModifyMRVO) {
+        consoleByDeptExportFacade.unModifyMRSExportByDept(response, filterUnModifyMRVO);
+    }
+
 /**
      * 病历稽查统计(首页)
      * @param filterVO

+ 70 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -9983,6 +9983,76 @@
         d.NAME
     </select>
 
+    <!-- 未整改病历统计-科室-->
+    <select id="unModifyMRSByDept" resultType="com.diagbot.dto.UnModifyMRDetailDTO" parameterType="com.diagbot.vo.FilterUnModifyMRVO">
+        SELECT
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName,
+        a.doctor_id as doctorId,
+        a.doctor_name as doctorName,
+        d.id AS casesEntryId,
+        d.NAME AS casesEntryName,
+        count(*) AS casesEntryNum
+        FROM
+        med_behospital_info a,
+        med_qcresult_info b,
+        med_qcresult_detail c,
+        qc_cases_entry d,
+        sys_user_dept f
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
+        AND f.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.hospital_id = f.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        AND a.beh_dept_id = f.dept_id
+        AND c.cases_entry_id = d.id
+        AND a.qc_type_id != 0
+        <if test="userId!=null">
+            AND f.user_id = #{userId}
+        </if>
+        <if test="isPlacefile != null and isPlacefile != ''">
+            and a.is_placefile = #{isPlacefile}
+        </if>
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="isPlacefile != null and isPlacefile == 0">
+            <if test="startDate != null ">
+                <![CDATA[ AND a.behospital_date >= #{startDate}]]>
+            </if>
+            <if test="endDate != null ">
+                <![CDATA[ AND a.behospital_date <= #{endDate}]]>
+            </if>
+        </if>
+        <if test="isPlacefile != null and isPlacefile == 1">
+            <if test="startDate != null ">
+                <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
+            </if>
+            <if test="endDate != null ">
+                <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
+            </if>
+        </if>
+        <if test="deptName != null and deptName != ''">
+            AND a.beh_dept_name like CONCAT('%', #{deptName}, '%')
+        </if>
+        <if test="casesEntryIds != null and casesEntryIds.size()>0">
+            AND c.cases_entry_id IN
+            <foreach collection="casesEntryIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        GROUP BY
+        a.doctor_id,
+        a.doctor_name,
+        c.cases_entry_id,
+        d.NAME
+    </select>
 
 
     <!-- 不合格/合格数病历号(内页)科室-->