|
|
@@ -9,6 +9,8 @@ import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.URLUtil;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
import com.kym.common.config.WxFapiaoConfig;
|
|
|
import com.kym.common.config.WxPayConfig;
|
|
|
import com.kym.common.constant.ResponseEnum;
|
|
|
@@ -874,7 +876,7 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- @Transactional
|
|
|
+ @DSTransactional
|
|
|
public void wxInvoiceNotify(Object[] notifyRes) {
|
|
|
try {
|
|
|
InvoiceNotification invoiceNotification = ((NotificationParser) notifyRes[1]).parse((RequestParam) notifyRes[0], InvoiceNotification.class);
|
|
|
@@ -898,23 +900,7 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
* 5.发票状态是否作废或者红冲
|
|
|
*/
|
|
|
var fapiaoApplications = queryFapiao(invoice.getApplyId());
|
|
|
- var invoiceDetail = new InvoiceDetail()
|
|
|
- .setApplyId(invoice.getApplyId())
|
|
|
- .setStatus(InvoiceNotification.FapiaoStatus.ISSUED.name())
|
|
|
- .setFapiaoTime(DateUtil.parse(fapiaoApplications.getFapiao_information().get(0).getBlue_fapiao().getFapiao_time(), "yyyy-MM-dd'T'HH:mm:ssXXX").toLocalDateTime())
|
|
|
- .setBlueFapiao(fapiaoApplications.getFapiao_information().get(0).getBlue_fapiao())
|
|
|
- .setRedFapiao(fapiaoApplications.getFapiao_information().get(0).getRed_fapiao())
|
|
|
- .setCardInformation(fapiaoApplications.getFapiao_information().get(0).getCard_information())
|
|
|
- .setTotalAmount(fapiaoApplications.getFapiao_information().get(0).getTotal_amount())
|
|
|
- .setTaxAmount(fapiaoApplications.getFapiao_information().get(0).getTax_amount())
|
|
|
- .setAmount(fapiaoApplications.getFapiao_information().get(0).getAmount())
|
|
|
- .setSellerInformation(fapiaoApplications.getFapiao_information().get(0).getSeller_information())
|
|
|
- .setBuyerInformation(fapiaoApplications.getFapiao_information().get(0).getBuyer_information())
|
|
|
- .setExtraInformation(fapiaoApplications.getFapiao_information().get(0).getExtra_information())
|
|
|
- .setItems(fapiaoApplications.getFapiao_information().get(0).getItems());
|
|
|
- invoiceDetailService.removeByMap(Map.of("apply_id", invoice.getApplyId()));
|
|
|
- invoiceDetailService.save(invoiceDetail);
|
|
|
-
|
|
|
+ invoiceDetailService.updateInvoiceDetail(invoice.getApplyId(), fapiaoApplications);
|
|
|
} else {
|
|
|
LOGGER.error("微信开具发票失败:{}", invoiceNotification);
|
|
|
}
|
|
|
@@ -925,6 +911,7 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 接收电子发票相关回调通知
|
|
|
*
|
|
|
@@ -994,27 +981,6 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
headers.addHeader("Accept", "application/json");
|
|
|
headers.addHeader("Content-Type", "application/json");
|
|
|
var res = wxHttpClient.get(headers, fapiaoConfig.getQueryFapiao().formatted(applyId), FapiaoApplications.class);
|
|
|
-
|
|
|
-
|
|
|
- var fapiaoApplications = res.getServiceResponse();
|
|
|
- var invoiceDetail = new InvoiceDetail()
|
|
|
- .setApplyId(applyId)
|
|
|
- .setStatus(InvoiceNotification.FapiaoStatus.ISSUED.name())
|
|
|
- .setFapiaoTime(DateUtil.parse(fapiaoApplications.getFapiao_information().get(0).getBlue_fapiao().getFapiao_time(), "yyyy-MM-dd'T'HH:mm:ssXXX").toLocalDateTime())
|
|
|
- .setBlueFapiao(fapiaoApplications.getFapiao_information().get(0).getBlue_fapiao())
|
|
|
- .setRedFapiao(fapiaoApplications.getFapiao_information().get(0).getRed_fapiao())
|
|
|
- .setCardInformation(fapiaoApplications.getFapiao_information().get(0).getCard_information())
|
|
|
- .setTotalAmount(fapiaoApplications.getFapiao_information().get(0).getTotal_amount())
|
|
|
- .setTaxAmount(fapiaoApplications.getFapiao_information().get(0).getTax_amount())
|
|
|
- .setAmount(fapiaoApplications.getFapiao_information().get(0).getAmount())
|
|
|
- .setSellerInformation(fapiaoApplications.getFapiao_information().get(0).getSeller_information())
|
|
|
- .setBuyerInformation(fapiaoApplications.getFapiao_information().get(0).getBuyer_information())
|
|
|
- .setExtraInformation(fapiaoApplications.getFapiao_information().get(0).getExtra_information())
|
|
|
- .setItems(fapiaoApplications.getFapiao_information().get(0).getItems());
|
|
|
- invoiceDetailService.removeByMap(Map.of("apply_id", applyId));
|
|
|
- invoiceDetailService.save(invoiceDetail);
|
|
|
-
|
|
|
-
|
|
|
return res.getServiceResponse();
|
|
|
}
|
|
|
|