|
@@ -516,38 +516,61 @@ public class CashierProcessService {
|
|
|
}
|
|
|
ZyReceipt zyReceipt = dao.selectPrintZyFpData(param);
|
|
|
AssertUtil.isnotBlank(zyReceipt, "没有发票信息");
|
|
|
+ ZyLedgerFile zyLedgerFile = dao.selectSettData(param);
|
|
|
+ AssertUtil.isnotBlank(zyReceipt, "没有账页信息");
|
|
|
+ zyReceipt.setYsHjJe(Convert.toBigDecimal(zyLedgerFile.getDeposit(),BigDecimal.ZERO));
|
|
|
+ if(Convert.toBigDecimal(zyLedgerFile.getSettle(), BigDecimal.ZERO).compareTo(BigDecimal.ZERO) >= 0){
|
|
|
+ zyReceipt.setTkHjJe(Convert.toBigDecimal(zyLedgerFile.getSettle(),BigDecimal.ZERO));
|
|
|
+ zyReceipt.setBsHjJe(BigDecimal.ZERO);
|
|
|
+ }else {
|
|
|
+ zyReceipt.setTkHjJe(BigDecimal.ZERO);
|
|
|
+ zyReceipt.setBsHjJe(zyLedgerFile.getSettle().abs());
|
|
|
+ }
|
|
|
ZyActpatient zyActpatient = dao.selectApatienInfo(param.getInpatientNo());
|
|
|
zyReceipt.setName(Convert.toInt(NumberEnum.FOUR.getCode()).equals(Convert.toInt(param.getReceiptSn(),1)) ? zyActpatient.getName()+"(婴儿)":zyActpatient.getName());
|
|
|
if(Convert.toInt(NumberEnum.FOUR.getCode()).equals(param.getReceiptSn())){
|
|
|
param.setInpatientNo(param.getInpatientNo()+"$1");
|
|
|
}
|
|
|
- Map<String, Object> paramMap = dealInvoiceParam(param);
|
|
|
- ResultVo response = template.postForObject(thmzApiUrl +"/queryInvoiceFile", paramMap, ResultVo.class);
|
|
|
- if(response == null ){
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, "下载电子发票错误");
|
|
|
- }
|
|
|
- if(response.getCode() == -1 ){
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, response.getMessage());
|
|
|
- }
|
|
|
- if(Convert.toInt(NumberEnum.ThREE.getCode()).equals(param.getTypeFlag())){
|
|
|
- String dzfpNo = dao.selectDzfpNo(param);
|
|
|
- if(StrUtil.isNotBlank(dzfpNo)){
|
|
|
- param.setReceiptNo(dzfpNo);
|
|
|
- dao.updateZyLedgerFileReceiptNo(param);
|
|
|
- dao.updateZyDepositFileReceiptNo(param);
|
|
|
- dao.updatezyReceiptDzfpNo(param);
|
|
|
- }else {
|
|
|
- // 查询是否有冲红的发票
|
|
|
- param.setTypeFlag(4);
|
|
|
- String zfDzfpNo = dao.selectDzfpNo(param);
|
|
|
- if(StrUtil.isNotBlank(zfDzfpNo)){
|
|
|
- dao.clearZyReceiptDzfpNo(param);
|
|
|
- }
|
|
|
- }
|
|
|
+ // 下载二维码 直接查数据库
|
|
|
+ Map<String, Object> fpInfo = new HashMap<>();
|
|
|
+ if(NumberEnum.ONE.getCode().equals(param.getType())){
|
|
|
+ Map<String,Object> dzfpMap = dao.selectDzfpNo(param);
|
|
|
+ AssertUtil.isnotBlank(dzfpMap,"没有查询到电子发票");
|
|
|
+ AssertUtil.isnotBlank(dzfpMap.get("qrcode"),"没有查询到电子发票");
|
|
|
+ fpInfo.put("qrcode", dzfpMap.get("qrcode"));
|
|
|
+ fpInfo.put("pdfFileStr", "");
|
|
|
+ }else {
|
|
|
+ Map<String, Object> paramMap = dealInvoiceParam(param);
|
|
|
+ ResultVo response = template.postForObject(thmzApiUrl +"/queryInvoiceFile", paramMap, ResultVo.class);
|
|
|
+ if(response == null ){
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, "下载电子发票错误");
|
|
|
+ }
|
|
|
+ if(response.getCode() == -1 ){
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, response.getMessage());
|
|
|
+ }
|
|
|
+ fpInfo = (Map)response.getData();
|
|
|
+ if(Convert.toInt(NumberEnum.ThREE.getCode()).equals(param.getTypeFlag())){
|
|
|
+ Map<String,Object> dzfpNoMap = dao.selectDzfpNo(param);
|
|
|
+ String dzfpNo = dzfpNoMap != null && dzfpNoMap.get("fp_no") != null? Convert.toStr(dzfpNoMap.get("fp_no")) : null;
|
|
|
+ if(StrUtil.isNotBlank(dzfpNo)){
|
|
|
+ param.setReceiptNo(dzfpNo);
|
|
|
+ dao.updateZyLedgerFileReceiptNo(param);
|
|
|
+ dao.updateZyDepositFileReceiptNo(param);
|
|
|
+ dao.updatezyReceiptDzfpNo(param);
|
|
|
+ }else {
|
|
|
+ // 查询是否有冲红的发票
|
|
|
+ param.setTypeFlag(4);
|
|
|
+ Map<String,Object> zfDzfpNoMap = dao.selectDzfpNo(param);
|
|
|
+ String zfDzfpNo = zfDzfpNoMap != null && zfDzfpNoMap.get("fp_no") != null? Convert.toStr(zfDzfpNoMap.get("fp_no")) : null;
|
|
|
+ if(StrUtil.isNotBlank(zfDzfpNo)){
|
|
|
+ dao.clearZyReceiptDzfpNo(param);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
Map<String, Object> res = new HashMap<>();
|
|
|
res.put("zyReceipt", zyReceipt);
|
|
|
- res.put("fpInfo", response.getData());
|
|
|
+ res.put("fpInfo", fpInfo);
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS,res);
|
|
|
}
|
|
|
|