|
@@ -36,6 +36,7 @@ import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -2098,19 +2099,34 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
|
|
|
IPage<BehospitalInfoDeptDTO> res = getPageByDept(behospitalPageVO);
|
|
|
List<BehospitalInfoDeptDTO> records = res.getRecords();
|
|
|
List<BehospitalInfoDeptDTO> resRecords = new ArrayList<>();
|
|
|
+
|
|
|
+ // 收集所有唯一的病历号
|
|
|
+ List<String> behospitalCodes = records.stream()
|
|
|
+ .map(BehospitalInfoDeptDTO::getBehospitalCode)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ //根据病历号查询最早的一条质控结果
|
|
|
+ List<QcresultInfo> qcresultInfos = qcresultInfoFacade.lambdaQuery()
|
|
|
+ .in(QcresultInfo::getBehospitalCode, behospitalCodes)
|
|
|
+ .orderByAsc(QcresultInfo::getGmtCreate)
|
|
|
+ .groupBy(QcresultInfo::getBehospitalCode)
|
|
|
+ .list();
|
|
|
+
|
|
|
+ // 创建一个映射以便快速查找
|
|
|
+ Map<String, QcresultInfo> qcresultInfoMap = qcresultInfos.stream()
|
|
|
+ .collect(Collectors.toMap(QcresultInfo::getBehospitalCode, Function.identity()));
|
|
|
+
|
|
|
+ // 根据映射过滤记录
|
|
|
for (BehospitalInfoDeptDTO record : records) {
|
|
|
- QcresultInfo qcresultInfo = qcresultInfoFacade.lambdaQuery()
|
|
|
- .like(QcresultInfo::getBehospitalCode, record.getBehospitalCode())
|
|
|
- .orderByAsc(QcresultInfo::getGmtCreate)
|
|
|
- .last("LIMIT 1")
|
|
|
- .one();
|
|
|
- if(qcresultInfo != null && !qcresultInfo.getLevel().equals("甲")){
|
|
|
+ QcresultInfo qcresultInfo = qcresultInfoMap.get(record.getBehospitalCode());
|
|
|
+ if (qcresultInfo != null && !qcresultInfo.getLevel().equals("甲")) {
|
|
|
resRecords.add(record);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
IPage<BehospitalInfoDeptDTO> resultPage = new Page<>(res.getCurrent(), res.getSize(), res.getTotal());
|
|
|
- resultPage.setRecords(resRecords); // 设置记录
|
|
|
+ // 设置记录
|
|
|
+ resultPage.setRecords(resRecords);
|
|
|
resultPage.setTotal(resRecords.size());
|
|
|
resultPage.setSize(resRecords.size());
|
|
|
return resultPage;
|
|
@@ -2238,6 +2254,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
|
|
|
exportQcresultVO.setHospitalId(hospitalId);
|
|
|
//时间设置
|
|
|
exportQcresultVOSet(exportQcresultVO);
|
|
|
+ exportQcresultVO.setRadioCheck("1");
|
|
|
List<ExportExcelDTO> res = this.exportQcresult(exportQcresultVO);
|
|
|
//90天、1年都按含缺陷明细项处理
|
|
|
String fileName = "抽查住院病历质量情况.xls";
|
|
@@ -2330,6 +2347,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
|
|
|
exportQcresultVO.setUserId(Long.valueOf(userId));
|
|
|
//时间设置
|
|
|
exportQcresultVOSet(exportQcresultVO);
|
|
|
+ exportQcresultVO.setRadioCheck("1");
|
|
|
List<ExportExcelByDeptDTO> records = this.exportQcresultByDept(exportQcresultVO);
|
|
|
List<ExportSevenByDeptDTO> resDTO = new ArrayList<ExportSevenByDeptDTO>();
|
|
|
if (ListUtil.isNotEmpty(records)) {
|
|
@@ -2370,6 +2388,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
|
|
|
exportQcresultVO.setUserId(Long.valueOf(userId));
|
|
|
//时间设置
|
|
|
exportQcresultVOSet(exportQcresultVO);
|
|
|
+ exportQcresultVO.setRadioCheck("1");
|
|
|
List<ExportExcelDTO> res = this.exportQcresultByGroup(exportQcresultVO);
|
|
|
//90天、1年都按含缺陷明细项处理
|
|
|
String fileName = "抽查住院病历质量情况.xls";
|