|
|
@@ -16,10 +16,12 @@ import com.kym.common.exception.BusinessException;
|
|
|
import com.kym.common.utils.CommUtil;
|
|
|
import com.kym.common.utils.LambadaTools;
|
|
|
import com.kym.common.utils.OrderUtils;
|
|
|
+import com.kym.entity.admin.InvoiceDetail;
|
|
|
import com.kym.entity.miniapp.Account;
|
|
|
import com.kym.entity.miniapp.*;
|
|
|
import com.kym.entity.wechat.*;
|
|
|
import com.kym.service.admin.ActivityService;
|
|
|
+import com.kym.service.admin.InvoiceDetailService;
|
|
|
import com.kym.service.enplus.EnPlusService;
|
|
|
import com.kym.service.miniapp.*;
|
|
|
import com.kym.service.wechat.WxPayService;
|
|
|
@@ -107,6 +109,8 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
|
|
|
private final UserRechargeRightsService userRechargeRightsService;
|
|
|
|
|
|
+ private final InvoiceDetailService invoiceDetailService;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 微信支付专用,支持自动签名验签解密等
|
|
|
@@ -117,7 +121,7 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
public WxPayServiceImpl(WxPayConfig conf, WxFapiaoConfig fapiaoConfig, WalletDetailService walletDetailService,
|
|
|
PayLogService payLogService, AccountService accountService, ChargeOrderService chargeOrderService,
|
|
|
RefundLogService refundLogService, InvoiceService invoiceService, InvoiceTitleService invoiceTitleService,
|
|
|
- EnPlusService enPlusService, ActivityService activityService, UserRechargeRightsService userRechargeRightsService) {
|
|
|
+ EnPlusService enPlusService, ActivityService activityService, UserRechargeRightsService userRechargeRightsService, InvoiceDetailService invoiceDetailService) {
|
|
|
this.conf = conf;
|
|
|
this.fapiaoConfig = fapiaoConfig;
|
|
|
this.walletDetailService = walletDetailService;
|
|
|
@@ -130,6 +134,7 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
this.enPlusService = enPlusService;
|
|
|
this.activityService = activityService;
|
|
|
this.userRechargeRightsService = userRechargeRightsService;
|
|
|
+ this.invoiceDetailService = invoiceDetailService;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -883,6 +888,31 @@ public class WxPayServiceImpl implements WxPayService {
|
|
|
if (!CommUtil.isEmptyOrNull(chargeOrderSeqs)) {
|
|
|
chargeOrderService.lambdaUpdate().set(ChargeOrder::getInvoiceStatus, ChargeOrder.INVOICE_STATUS_已开票).in(ChargeOrder::getStartChargeSeq, chargeOrderSeqs).update();
|
|
|
}
|
|
|
+ /*
|
|
|
+ * 销项发票excel数据中需包含:
|
|
|
+ * 1.开票日期
|
|
|
+ * 2.购买方名称及税号
|
|
|
+ * 3.开票明细、金额、税额
|
|
|
+ * 4.开票优惠明细、金额、税额
|
|
|
+ * 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.save(invoiceDetail);
|
|
|
+
|
|
|
} else {
|
|
|
LOGGER.error("微信开具发票失败:{}", invoiceNotification);
|
|
|
}
|
|
|
@@ -962,8 +992,27 @@ 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.save(invoiceDetail);
|
|
|
+
|
|
|
+
|
|
|
return res.getServiceResponse();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|