|
@@ -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());
|
|
|
}
|