|
|
@@ -302,13 +302,12 @@ public class ClinicController {
|
|
|
Date beginTime = calendar.getTime();
|
|
|
Date now = DateUtil.getFirstSecond();
|
|
|
Date breakDay = DateUtil.pase("2021-09-27 00:00:00", "yyyy-MM-dd HH:mm:ss");
|
|
|
- List<Clinic> list = new ArrayList<>();
|
|
|
Set<String> set = new HashSet<>();
|
|
|
while (beginTime.before(now)) {
|
|
|
calendar.add(Calendar.DAY_OF_YEAR, 1);
|
|
|
Date endTime = calendar.getTime();
|
|
|
try {
|
|
|
- process(beginTime, endTime, list,set);
|
|
|
+ process(beginTime, endTime,set);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
log.error("当前日期没有抓取 beginTime=" + beginTime + "----endTime=" + endTime);
|
|
|
@@ -334,16 +333,17 @@ public class ClinicController {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void process(Date beginTime, Date endTime, List<Clinic> list,Set<String> set) {
|
|
|
+ private void process(Date beginTime, Date endTime, Set<String> set) {
|
|
|
List<MzVisitTable> mzVisitTableList = mzVisitTableService.queryByDateRages(beginTime, endTime, "mz_visit_table_b");
|
|
|
- setClinic(list, mzVisitTableList,set);
|
|
|
+ setClinic(mzVisitTableList,set);
|
|
|
mzVisitTableList = mzVisitTableService.queryByDateRages(beginTime, endTime, "mz_visit_table");
|
|
|
- setClinic(list, mzVisitTableList,set);
|
|
|
+ setClinic( mzVisitTableList,set);
|
|
|
}
|
|
|
|
|
|
- private void setClinic(List<Clinic> list, List<MzVisitTable> mzVisitTableList,Set<String> set) {
|
|
|
+ private void setClinic( List<MzVisitTable> mzVisitTableList,Set<String> set) {
|
|
|
if (mzVisitTableList != null && mzVisitTableList.size() > 0) {
|
|
|
StringBuilder sbd = new StringBuilder();
|
|
|
+ Set<String> mzDepositFileSet = new HashSet<>();
|
|
|
for (MzVisitTable mzVisitTable : mzVisitTableList) {
|
|
|
sbd.setLength(0);
|
|
|
sbd.append(mzVisitTable.getPatientId()).append("_").append(mzVisitTable.getTimes());
|
|
|
@@ -389,11 +389,12 @@ public class ClinicController {
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- BigDecimal amount = mzDepositFileService.queryAmountForPatientId(mzVisitTable.getPatientId(), mzVisitTable.getTimes(), "mz_deposit_file_b");
|
|
|
- if (amount == null) {
|
|
|
- amount = mzDepositFileService.queryAmountForPatientId(mzVisitTable.getPatientId(), mzVisitTable.getTimes(), "mz_deposit_file");
|
|
|
- }
|
|
|
clinic.setOpId(StringUtils.isNotBlank(mzVisitTable.getDoctorCode()) ? mzVisitTable.getDoctorCode() : mzVisitTable.getOpId());
|
|
|
+ List<MzDepositFile> mzDepositFileBs = mzDepositFileService.queryAllMzDepositFileByTimesInHisData(mzVisitTable.getPatientId(), mzVisitTable.getTimes(), "mz_deposit_file_b");
|
|
|
+ List<MzDepositFile> mzDepositFiles=mzDepositFileService.queryAllMzDepositFileByTimesInHisData(mzVisitTable.getPatientId(), mzVisitTable.getTimes(), "mz_deposit_file");
|
|
|
+ BigDecimal amount = BigDecimal.ZERO;
|
|
|
+ amount = getBigDecimal(sbd, mzDepositFileSet, mzVisitTable, mzDepositFileBs, amount);
|
|
|
+ amount = getBigDecimal(sbd, mzDepositFileSet, mzVisitTable, mzDepositFiles, amount);
|
|
|
if (amount == null) {
|
|
|
clinic.setClinicStatus(ClinicStatusEnum.HAD_CLINIC.code);
|
|
|
} else if (BigDecimal.ZERO.compareTo(amount) == 0) {
|
|
|
@@ -412,6 +413,22 @@ public class ClinicController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private BigDecimal getBigDecimal(StringBuilder sbd, Set<String> mzDepositFileSet, MzVisitTable mzVisitTable, List<MzDepositFile> mzDepositFileBs, BigDecimal amount) {
|
|
|
+ if (mzDepositFileBs != null && mzDepositFileBs.size()>0) {
|
|
|
+ for (MzDepositFile mzDepositFile:mzDepositFileBs){
|
|
|
+ sbd.setLength(0);
|
|
|
+ sbd.append(mzVisitTable.getPatientId()).append("_").append(mzVisitTable.getTimes()).append("_").append(mzDepositFile.getReceiptNo()).append("_").append(mzDepositFile.getChequeType()).append("_").append(mzDepositFile.getReceiptSn());
|
|
|
+ String tempKey =sbd.toString();
|
|
|
+ if(mzDepositFileSet.contains(tempKey)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ mzDepositFileSet.add(tempKey);
|
|
|
+ amount=amount.add(mzDepositFile.getAmount());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return amount;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 查询分诊记录
|