|  | @@ -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;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 查询分诊记录
 |