|  | @@ -896,18 +896,53 @@ public class MedicalViewApiController {
 | 
	
		
			
				|  |  |              if(mzChargeDetail == null){
 | 
	
		
			
				|  |  |                  return R.error("没有待收费记录");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            MzDepositFile mzDepositFile = new MzDepositFile();
 | 
	
		
			
				|  |  | -            if(totalFee.compareTo(BigDecimal.ZERO) == 0){
 | 
	
		
			
				|  |  | -                mzDepositFile.setChequeType(Constants.CASH);
 | 
	
		
			
				|  |  | +            PayInfo payInfo = tsmzService.calculateCost(whiteList.getOpId(), patientId, times, 1);
 | 
	
		
			
				|  |  | +            if(payInfo !=null  && payInfo.getCode() == 0){
 | 
	
		
			
				|  |  | +                List<MzDepositFile> mzDepositFiles = new ArrayList<>();
 | 
	
		
			
				|  |  | +                BigDecimal tempTotal = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +                if(payInfo.getAcctPay().compareTo(BigDecimal.ZERO) == 1){
 | 
	
		
			
				|  |  | +                    tempTotal = tempTotal.add(payInfo.getAcctPay());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(payInfo.getFundPay().compareTo(BigDecimal.ZERO) == 1){
 | 
	
		
			
				|  |  | +                    tempTotal = tempTotal.add(payInfo.getFundPay());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(totalFee.compareTo(tempTotal) == 1){
 | 
	
		
			
				|  |  | +                    MzDepositFile mzDepositFile = new MzDepositFile();
 | 
	
		
			
				|  |  | +                    if(totalFee.compareTo(BigDecimal.ZERO) == 0){
 | 
	
		
			
				|  |  | +                        mzDepositFile.setChequeType(Constants.CASH);
 | 
	
		
			
				|  |  | +                    }else {
 | 
	
		
			
				|  |  | +                        mzDepositFile.setChequeType(Constants.ZZWX);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    mzDepositFile.setAmount(totalFee.subtract(tempTotal));
 | 
	
		
			
				|  |  | +                    mzDepositFiles.add(mzDepositFile);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //如果门诊统筹支付有值,添加收费方式
 | 
	
		
			
				|  |  | +                if (payInfo.getFundPay().compareTo(BigDecimal.ZERO) == 1) {
 | 
	
		
			
				|  |  | +                    MzDepositFile ybjzmzDepositFile =new MzDepositFile();
 | 
	
		
			
				|  |  | +                    ybjzmzDepositFile.setAmount(payInfo.getFundPay());
 | 
	
		
			
				|  |  | +                    ybjzmzDepositFile.setChequeType(Constants.YBJZ);
 | 
	
		
			
				|  |  | +                    ybjzmzDepositFile.setPsordnum(null);
 | 
	
		
			
				|  |  | +                    ybjzmzDepositFile.setAgtordnum(null);
 | 
	
		
			
				|  |  | +                    mzDepositFiles.add(ybjzmzDepositFile);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //如果个人账户支付有值,添加收费方式
 | 
	
		
			
				|  |  | +                if (payInfo.getAcctPay().compareTo(BigDecimal.ZERO) == 1) {
 | 
	
		
			
				|  |  | +                    MzDepositFile grzhmzDepositFile =new MzDepositFile();
 | 
	
		
			
				|  |  | +                    grzhmzDepositFile.setAmount(payInfo.getAcctPay());
 | 
	
		
			
				|  |  | +                    grzhmzDepositFile.setChequeType(Integer.valueOf(2).equals(payInfo.getCardType()) ? Constants.SHENYGZ : Constants.SSHIYBGZ);
 | 
	
		
			
				|  |  | +                    grzhmzDepositFile.setPsordnum(null);
 | 
	
		
			
				|  |  | +                    grzhmzDepositFile.setAgtordnum(null);
 | 
	
		
			
				|  |  | +                    mzDepositFiles.add(grzhmzDepositFile);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(CollUtil.isNotEmpty(mzDepositFiles)){
 | 
	
		
			
				|  |  | +                    mzDepositFileVo.setMzDepositFiles(mzDepositFiles);
 | 
	
		
			
				|  |  | +                    mzChargeDetailService.chargeFee(whiteList.getOpId(), mzDepositFileVo, whiteList.getOpId());
 | 
	
		
			
				|  |  | +                }else {
 | 
	
		
			
				|  |  | +                    throw new BizException("获取医保费用失败");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }else {
 | 
	
		
			
				|  |  | -                mzDepositFile.setChequeType(Constants.ZZWX);
 | 
	
		
			
				|  |  | +                throw new BizException("获取医保费用失败");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            mzDepositFile.setAmount(totalFee);
 | 
	
		
			
				|  |  | -            List<MzDepositFile> mzDepositFiles = new ArrayList<>();
 | 
	
		
			
				|  |  | -            mzDepositFiles.add(mzDepositFile);
 | 
	
		
			
				|  |  | -            mzDepositFileVo.setMzDepositFiles(mzDepositFiles);
 | 
	
		
			
				|  |  | -            setYbDepositFile(whiteList, mzDepositFileVo, mzDepositFile, mzDepositFiles);
 | 
	
		
			
				|  |  | -            mzChargeDetailService.chargeFee(whiteList.getOpId(), mzDepositFileVo, whiteList.getOpId());
 | 
	
		
			
				|  |  |          } catch (MzException e) {
 | 
	
		
			
				|  |  |              throw new BizException(e.getMessage());
 | 
	
		
			
				|  |  |          }
 |