diff --git a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java index 5002083..0024359 100644 --- a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java +++ b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java @@ -2257,4 +2257,21 @@ public class InvoiceController { } + + + @ApiOperation("保存invoice表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "identity", value = "身份认证", dataType = "java.lang.Void", example = "1130", required = true), + @ApiImplicitParam(name = "order", value = "请求体", dataType = "java.lang.Void", required = true)}) + @PostMapping({"/api/invoice/v1/saveInvoice", "/api/invoice/v1/saveInvoice/{identity}", "/invoice/saveInvoice"}) + public Object saveInvoice(HttpServletRequest request + , String identity,String billInfoId,JSONObject resultJSON) throws Exception { + IInvoiceApiService invoiceService = invoiceServiceFactory.getService("aisinoZhongQi_console_invoice"); + return invoiceService.saveInvoice(identity,billInfoId,resultJSON); + } + + + + + } diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java index 59bd9be..b33e204 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java @@ -369,4 +369,6 @@ public interface IInvoiceApiService { /** 登陆验证 */ HXResponse loginVerificated(JSONObject decryptResult, Companyservice companyservice); + + HXResponse saveInvoice(String identity, String billInfoId, JSONObject resultJSON); } \ No newline at end of file diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java index e8282ed..3c77a21 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java @@ -1082,6 +1082,11 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse saveInvoice(String identity, String billInfoId, JSONObject resultJSON) { + return null; + } + @Override public AjaxResult syncStockInfo(Companyservice companyservice) { diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java index b2bbad6..17e45da 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java @@ -457,6 +457,118 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer } + + /** 保存invoice表 */ + public HXResponse saveInvoice(String billInfoId,String identity,JSONObject resultJSON){ + + if(StrUtil.isEmpty(billInfoId)){ + return new HXResponse("billInfoId不存在"); + } + BillInfo billInfo = billInfoMapper.selectBillInfoById(Long.valueOf(billInfoId)); + + String retcode = resultJSON.get("retcode") != null ? resultJSON.get("retcode").toString() : ""; + String retmsg = resultJSON.get("retmsg") != null ? resultJSON.get("retmsg").toString() : ""; + if ("4011".equals(retcode)) { + //回写发票代码、发票号码信息 + if (StrUtil.isEmpty(retmsg)) { + return new HXResponse(retcode); + } + AisinoConsoleInvoiceAddVO aisinoConsoleInvoiceAddVO = BeanUtil.copyProperties(resultJSON, AisinoConsoleInvoiceAddVO.class); + if (StrUtil.isEmpty(aisinoConsoleInvoiceAddVO.getInfoNumber())) { + return new HXResponse("开具的发票号码不存在!"); + } + //更新发票状态 + billInfo.setState(2); + billInfoMapper.updateBillInfo(billInfo); + + //插入invoice + Invoice invoice = BeanUtil.copyProperties(billInfo, Invoice.class); + List invoiceDetailList = BeanUtil.copyToList(billInfo.getBillDetailList(), InvoiceDetail.class); + invoice.setInvoiceDetailList(invoiceDetailList); + + //发票代码 + invoice.setFpdm(aisinoConsoleInvoiceAddVO.getInfoTypeCode()); + //发票号码 + invoice.setFphm(aisinoConsoleInvoiceAddVO.getInfoNumber()); + //上一张发票代码 + invoice.setOriginFpdm(aisinoConsoleInvoiceAddVO.getHisInfoTypeCode()); + //上一张发票号码 + invoice.setOriginFphm(aisinoConsoleInvoiceAddVO.getHisInfoNumber()); + //发票种类 + invoice.setInvoiceType(billInfo.getInvoiceType()); + invoice.setBillInfoId(billInfo.getId()); + invoice.setKprq(aisinoConsoleInvoiceAddVO.getInfoDate()); + invoice.setTaxfreeamt(BigDecimal.valueOf(aisinoConsoleInvoiceAddVO.getInfoAmount())); + invoice.setTax(BigDecimal.valueOf(aisinoConsoleInvoiceAddVO.getInfoTaxAmount())); + + long id = 0L; + QueryWrapper invoiceQueryWrapper = new QueryWrapper<>(); + invoiceQueryWrapper.eq("fpdm", invoice.getFpdm()).eq("fphm", invoice.getFphm()); + List invoices = invoiceMapper.selectList(invoiceQueryWrapper); + if (CollectionUtils.isEmpty(invoices)) { + invoice.setUpdateBy("0"); + invoiceMapper.insertInvoice(invoice); + invoices = invoiceMapper.selectList(invoiceQueryWrapper); + id = invoices.get(0).getId(); + } else { + Invoice invoiceT = invoices.get(0); + invoiceT = BeanUtil.copyProperties(invoice, Invoice.class); + invoiceT.setUpdateBy("0"); + invoiceMapper.updateInvoice(invoiceT); + id = invoiceT.getId(); + } + invoiceDetailList.forEach(i -> i.setInvoiceId(invoice.getId())); + invoiceMapper.batchInvoiceDetail(invoiceDetailList); + + + // 增加主动回调方式,可配置 + ICompanyservicePropService companyserviceProp = SpringUtils.getBean(ICompanyservicePropService.class); + CompanyserviceProp secretIdProp = companyserviceProp.selectPropByKey(Long.valueOf(identity), "aisino_callback_url"); + if (BeanUtil.isNotEmpty(secretIdProp) && secretIdProp.getValue() != null && !"".equals(secretIdProp.getValue())) { + + String callBackUrl = secretIdProp.getValue(); + + InvoiceBack queryInvoiceBack = new InvoiceBack(); + queryInvoiceBack.setSystemOrderno(billInfo.getOutTradeOrderno()); + List invoiceBackList = invoiceBackMapper.selectInvoiceBackList(queryInvoiceBack); + if (CollectionUtils.isEmpty(invoiceBackList)) { + queryInvoiceBack.setId(IdUtils.randomUUID()); + queryInvoiceBack.setIdentity( identity ); + queryInvoiceBack.setBackUrl(callBackUrl); + queryInvoiceBack.setStatus("0"); + queryInvoiceBack.setCreateTime(new Date()); + queryInvoiceBack.setSystemOrderno(billInfo.getOutTradeOrderno()); + queryInvoiceBack.setBackMsg(""); + queryInvoiceBack.setResultCode("0000"); + queryInvoiceBack.setResultMsg("开票成功!"); + queryInvoiceBack.setUpdateTime(new Date()); + invoiceBackMapper.insertInvoiceBack(queryInvoiceBack); + } else { + queryInvoiceBack = invoiceBackList.get(0); + queryInvoiceBack.setResultCode("0000"); + queryInvoiceBack.setResultMsg("开票成功!"); + queryInvoiceBack.setUpdateTime(new Date()); + } + + // 回调,失败的交给定时任务 + InvoiceBack finalQueryInvoiceBack = queryInvoiceBack; + try { + callBackAisino(finalQueryInvoiceBack, callBackUrl, "", invoice.getId()); + } catch (Exception e) { + log.info("【重汽批量开票】发票回调失败!invoiceId={}", invoice.getId()); + } + } + + HXResponse response = new HXResponse("0000", "同步成功"); + response.put("fpqqlsh", billInfo.getSystemOrderno()); + return response; + } else { + return new HXResponse(retmsg); + } + } + + + /** * 开票接口回调-重汽 * 2023-09-26 diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java index e43716a..f055167 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java @@ -903,6 +903,11 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse saveInvoice(String identity, String billInfoId, JSONObject resultJSON) { + return null; + } + /** * 申请/上传 红字发票 diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java index 659fa5b..c6f163f 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java @@ -1168,6 +1168,11 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi return null; } + @Override + public HXResponse saveInvoice(String identity, String billInfoId, JSONObject resultJSON) { + return null; + } + /** * 红字确认单列表查询(数电专用) diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java index 693751a..0914850 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java @@ -1216,6 +1216,11 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse saveInvoice(String identity, String billInfoId, JSONObject resultJSON) { + return null; + } + /** * 红字确认单列表查询(数电专用) diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java index f4a097e..8267032 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java @@ -1719,6 +1719,11 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { } + @Override + public HXResponse saveInvoice(String identity, String billInfoId, JSONObject resultJSON) { + return null; + } + /** * 简税和金财数科 发票类型互换 *