This commit is contained in:
ylj20011123 2025-09-01 18:26:29 +08:00
parent c819d0e880
commit 19d34b5fc2
3 changed files with 345 additions and 160 deletions

View File

@ -4,7 +4,8 @@ import { FormInstance, Button, message, Tag, Popconfirm } from "antd";
import { useRef, useState } from "react"; import { useRef, useState } from "react";
import { connect } from "umi"; import { connect } from "umi";
import { Datum } from "@/types/invoice"; import { Datum } from "@/types/invoice";
import { handleGetAppToken, handleGetKaiPiao, handleGetSDToken } from "./service"; import { handleGetAppToken, handleGetKaiPiao, handleGetSDToken, handleSynchroBILLInterface } from "./service";
import moment from "moment";
interface ConnectState { interface ConnectState {
user: { user: {
@ -51,19 +52,10 @@ const DigitalElectronics: React.FC<{ currentUser: any }> = (props) => {
buyerRecipientMail: record?.buyerRecipientMail || "",// 购方收件邮箱 buyerRecipientMail: record?.buyerRecipientMail || "",// 购方收件邮箱
redReason: record?.redReason, redReason: record?.redReason,
blueinvoiceNo: record?.blueinvoiceNo, blueinvoiceNo: record?.blueinvoiceNo,
billDetail: [ originalIssueTime: record?.originalIssueTime,
{ blueInvoiceType: record?.blueInvoiceType,
amount: record?.amount, // 明细金额 明细金额含税标识includeTaxFlag=1时该金额为含税金额 blueinvoiceCode: record?.blueinvoiceCode,
detailId: record?.detailId,// 业务系统明细id 业务系统明细id用于反写回原业务系统明细 【长度50】 billDetail: record?.billDetail
goodsName: record?.goodsName,// 商品名称 商品名称与商品编码2填1需提前在系统维护【长度GBK92字节】
lineProperty: 2,// 行性质 行性质1折扣行(折扣行必须紧跟被折扣的正常商品行)2正常商品行
price: record?.price, // 单价 单价【长度整数位加小数位最大16位小数位最多13小数点占1位】price有值则quantity必填含税标识includeTaxFlag=1时该金额为含税金额
quantity: record?.quantity,// 数量 数量【长度整数位加小数位最大16位小数位最多13小数点占1位】quantity有值则price必填
revenueCode: record?.revenueCode,// 税收分类编码 税收分类编码,开票项补全或映射会补全税收分类编码,未走开票项补全或映射必填
taxRate: record?.taxRate,// 税率 税率【0.130.090.06等】。不传时根据开票项匹配税率
units: record?.units// 计量单位 计量单位【长度GBK22字节】
}
]
} }
console.log('objobj', obj); console.log('objobj', obj);
@ -84,6 +76,12 @@ const DigitalElectronics: React.FC<{ currentUser: any }> = (props) => {
data: encryptedData // 加密后的data字符串 data: encryptedData // 加密后的data字符串
}; };
console.log('加密前的请求参数:', {
businessSystemCode: "BUSINESS_YCIC", // 来源系统编码
interfaceCode: "BILL.PUSH", // 接口业务编码
requestId: Date.now().toString(), // 时间戳作为请求ID
data: obj // 加密后的data字符串
});
console.log('原始数据:', originalData); console.log('原始数据:', originalData);
console.log('JSON字符串:', dataString); console.log('JSON字符串:', dataString);
console.log('Base64加密后:', encryptedData); console.log('Base64加密后:', encryptedData);
@ -97,8 +95,12 @@ const DigitalElectronics: React.FC<{ currentUser: any }> = (props) => {
let res: any = JSON.parse(decodeURIComponent(escape(atob(response.data)))); let res: any = JSON.parse(decodeURIComponent(escape(atob(response.data))));
console.log('最终结果:', res); console.log('最终结果:', res);
message.success({ content: `单据 ${record.billNo} 开票申请已提交成功`, key: 'invoice' }); message.success({ content: `单据 ${record.billNo} 开票申请已提交成功`, key: 'invoice' });
// 他们的调用成功了 再调用我们自己的 同步票据信息表 的接口
handleSynchroBILL(record)
} else { } else {
message.error({ content: `开票申请失败: ${response?.message || '未知错误'}`, key: 'invoice' }); message.error({ content: `开票申请失败: ${response?.message || '未知错误'}`, key: 'invoice' });
} }
@ -209,6 +211,72 @@ const DigitalElectronics: React.FC<{ currentUser: any }> = (props) => {
}, },
] ]
const handleSynchroBILL = async (obj: any) => {
console.log('调用同步接口', obj);
// 发票明细列表
let detailList: any = []
if (obj?.billDetail && obj?.billDetail.length > 0) {
obj?.billDetail.forEach((item: any) => {
detailList.push({
ITEM_NAME: item.goodsName,// 款项名称
ITEM_RULE: item.specification,// 规格型号
ITEM_UNIT: item.units,// 计量单位
INVOICE_COUNT: item.quantity,// 开票数量
INVOICE_PRICE: item.price,// 开票单价
INVOICE_AMOUNT: item.amount,// 开票金额
DUTY_PARAGRAPH: item.taxRate,// 开票税率
INVOICE_TAX: item.taxAmount,// 开票税额
INVOICE_DISCOUNT: item.discountAmount,// 折扣金额
INVOICE_DISCOUNTTAX: "",// 折扣税额
ITEM_ACTAMOUNT: "",// 款项价税合计
ITEM_DEDUCTIONAMOUNT: "",// 扣除额
ITEM_ID: "",// 关联数据表内码(多个)
TABLE_NAME: "",// 数据表名称
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),// 操作时间
})
})
}
let req: any = {
BILL_TYPE: obj.invoiceType === '08xdp' ? '1000' : obj.invoiceType === '10xdp' ? '2000' : '', // 票据类型1000增值税专用发票2000普通发票 ,
BILL_NO: obj?.billNo || "",//票据编号
SERIAL_NO: obj?.billNo || "",// 流水号(实际发票号码)
BILL_TAXAMOUNT: obj?.includeTaxFlag === '1' ? obj?.totalAmount : '',// 含税开票金额
BILL_AMOUNT: obj?.includeTaxFlag === '1' ? '' : obj?.totalAmount,// 除税开票金额
DUTY_PARAGRAPH: "",// 开票税率
INVOICE_TAXAMOUNT: "",// 含税费用金额
INVOICE_AMOUNT: "",// 除税费用金额
TAXTAIL_DIFFERENCE: "",// 含税尾差
TAIL_DIFFERENCE: "",// 除税尾差
TAX_PRICE: "",// 开票税金
SERVERPART_ID: "416",
SERVERPART_NAME: "新桥服务区",
SERVERPARTSHOP_ID: "",// 门店内码
SERVERPARTSHOP_NAME: "",// 门店名称
MERCHANTS_ID: "",// 商户内码
MERCHANTS_NAME: "",// 商户名称
BILL_PERSON: obj?.buyerName,// 开票人
BILL_DATE: moment().format('YYYY-MM-DD'),// 开票日期
BANK_NAME: obj?.buyerBankAndAccount,// 开户银行
BANK_ACCOUNT: obj?.buyerBankAndAccount,// 银行账号
TAXPAYER_IDENTIFYCODE: obj?.buyerTaxpayerId,// 统一信用代码
INTERBANK_NO: "",// 联行号
TAXPAYER_CODE: obj?.sellerTaxpayerId,// 开票方纳税人识别号
ACCOUNTED_TYPE: "",// 入账类型
ACCOUNTED_DATE: "",// 入账时间
DOWNLOAD_URL: "",// 下载地址
BILL_STATE: "",// 票据状态
DetailList: detailList,// 发票明细列表
}
const data = await handleSynchroBILLInterface(req)
console.log('data2222', data);
}
return ( return (
<div> <div>
<ProTable <ProTable
@ -255,137 +323,179 @@ const DigitalElectronics: React.FC<{ currentUser: any }> = (props) => {
// 模拟数据 // 模拟数据
const mockData: any = [ const mockData: any = [
// // 专票
// {
// billNo: "SRM_202508220957", // 单据编号
// billDate: "2025-08-22", // 单据日期
// totalAmount: 10, // 单据金额
// includeTaxFlag: "1",// 判断是否含税
// autoInvoice: "1",// 自动开票标记
// invoiceType: "10xdp", //发票种类
// buyerName: "深圳市顺丰快运有限公司test01", // 购买方名称
// buyerProperty: "0", // 购买方性质
// sellerTaxpayerId: "91530112MA7MQ2JR9U", // 销方税号 写死
// sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司", // 销方名称 写死
// sellerBankAndAccount: "13710884704", // 销方银行和账号 写死
// sellerAddressAndTel: "", // 销方地址和电话 写死 应该可以不传
// drawer: "测试人",// 开票人
// buyerRecipientPhone: "18158132615",// 购方收票手机号
// buyerRecipientMail: "",// 购方收件邮箱
// amount: 10, // 明细金额 明细金额含税标识includeTaxFlag=1时该金额为含税金额
// detailId: "1194121661989796666",// 业务系统明细id 业务系统明细id用于反写回原业务系统明细 【长度50】
// goodsName: "蜂胶口腔膜",// 商品名称 商品名称与商品编码2填1需提前在系统维护【长度GBK92字节】
// lineProperty: 2,// 行性质 行性质1折扣行(折扣行必须紧跟被折扣的正常商品行)2正常商品行
// price: 10,// 单价 单价【长度整数位加小数位最大16位小数位最多13小数点占1位】price有值则quantity必填含税标识includeTaxFlag=1时该金额为含税金额
// quantity: 1,// 数量 数量【长度整数位加小数位最大16位小数位最多13小数点占1位】quantity有值则price必填
// revenueCode: "1070304990000000000",// 税收分类编码 税收分类编码,开票项补全或映射会补全税收分类编码,未走开票项补全或映射必填
// taxRate: "0.13",// 税率 税率【0.130.090.06等】。不传时根据开票项匹配税率
// units: "个"// 计量单位 计量单位【长度GBK22字节】
// // billDetail: [
// // {
// // }
// // ]
// },
// {
// billNo: "SRM_202508220966", // 单据编号
// billDate: "2025-08-22", // 单据日期
// totalAmount: 10, // 单据金额
// includeTaxFlag: "1",// 判断是否含税
// autoInvoice: "1",// 自动开票标记
// invoiceType: "10xdp", //发票种类
// buyerName: "深圳市顺丰快运有限公司test01", // 购买方名称
// buyerProperty: "0", // 购买方性质
// sellerTaxpayerId: "91530112MA7MQ2JR9U", // 销方税号 写死
// sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司", // 销方名称 写死
// sellerBankAndAccount: "13710884704", // 销方银行和账号 写死
// sellerAddressAndTel: "", // 销方地址和电话 写死 应该可以不传
// drawer: "测试人",// 开票人
// buyerRecipientPhone: "18158132615",// 购方收票手机号
// buyerRecipientMail: "",// 购方收件邮箱
// amount: 10, // 明细金额 明细金额含税标识includeTaxFlag=1时该金额为含税金额
// detailId: "1194121661989796666",// 业务系统明细id 业务系统明细id用于反写回原业务系统明细 【长度50】
// goodsName: "蜂胶口腔膜",// 商品名称 商品名称与商品编码2填1需提前在系统维护【长度GBK92字节】
// lineProperty: 2,// 行性质 行性质1折扣行(折扣行必须紧跟被折扣的正常商品行)2正常商品行
// price: 10,// 单价 单价【长度整数位加小数位最大16位小数位最多13小数点占1位】price有值则quantity必填含税标识includeTaxFlag=1时该金额为含税金额
// quantity: 1,// 数量 数量【长度整数位加小数位最大16位小数位最多13小数点占1位】quantity有值则price必填
// revenueCode: "1070304990000000000",// 税收分类编码 税收分类编码,开票项补全或映射会补全税收分类编码,未走开票项补全或映射必填
// taxRate: "0.13",// 税率 税率【0.130.090.06等】。不传时根据开票项匹配税率
// units: "个"// 计量单位 计量单位【长度GBK22字节】
// // billDetail: [
// // {
// // }
// // ]
// },
// // 普票
// {
// billNo: "SRM_202508221427", // 单据编号
// billDate: "2025-08-22", // 单据日期
// totalAmount: -10, // 单据金额
// includeTaxFlag: "1",// 判断是否含税
// invoiceProperty: 0,
// autoMerge: 1,
// autoInvoice: 1,// 自动开票标记
// invoiceType: "10xdp", //发票种类
// buyerName: "深圳市顺丰快运有限公司test01", // 购买方名称
// buyerProperty: "0", // 购买方性质
// sellerTaxpayerId: "91530112MA7MQ2JR9U", // 销方税号 写死
// sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司", // 销方名称 写死
// sellerBankAndAccount: "13710884704", // 销方银行和账号 写死
// sellerAddressAndTel: "", // 销方地址和电话 写死 应该可以不传
// drawer: "测试人",// 开票人
// buyerRecipientPhone: "18158132615",// 购方收票手机号
// buyerRecipientMail: "",// 购方收件邮箱
// amount: -10, // 明细金额 明细金额含税标识includeTaxFlag=1时该金额为含税金额
// detailId: "1194121661989796666",// 业务系统明细id 业务系统明细id用于反写回原业务系统明细 【长度50】
// goodsName: "蜂胶口腔膜",// 商品名称 商品名称与商品编码2填1需提前在系统维护【长度GBK92字节】
// lineProperty: 2,// 行性质 行性质1折扣行(折扣行必须紧跟被折扣的正常商品行)2正常商品行
// price: -10,// 单价 单价【长度整数位加小数位最大16位小数位最多13小数点占1位】price有值则quantity必填含税标识includeTaxFlag=1时该金额为含税金额
// quantity: 1,// 数量 数量【长度整数位加小数位最大16位小数位最多13小数点占1位】quantity有值则price必填
// revenueCode: "1070304990000000000",// 税收分类编码 税收分类编码,开票项补全或映射会补全税收分类编码,未走开票项补全或映射必填
// taxRate: "0.13",// 税率 税率【0.130.090.06等】。不传时根据开票项匹配税率
// units: "个",// 计量单位 计量单位【长度GBK22字节】
// redReason: "2",
// blueInvoiceType: "026",
// originalIssueTime: "2025-08-24 15:00:00",
// blueinvoiceCode: "testBlueCode2025-08-25",
// blueinvoiceNo: "testBlueNo2025-08-25"
// // billDetail: [
// // {
// // }
// // ]
// },
// {
// billNo: "202508220003",
// billDate: "2025-08-22",
// autoInvoice: "1",
// includeTaxFlag: "0",
// invoiceProperty: "1",
// invoiceType: "10xdp",
// totalAmount: -8.85,
// buyerTaxpayerId: "91440300MA5G9GK78Y",
// buyerName: "深圳市顺丰快运有限公司test01",
// sellerTaxpayerId: "91530112MA7MQ2JR9U",
// sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司",
// sellerBankAndAccount: "13710884704",
// sellerAddressAndTel: "高新技术产业园南区科技南十二路58996989",
// drawer: "王协芬",
// autoMerge: "0",
// blueinvoiceNo: "SRM_202508220966",
// redReason: "2",
// amount: -8.85,
// goodsName: "通天口服液",
// lineProperty: 2,
// price: -12,
// quantity: 5,
// revenueCode: "1070304990000000000",
// taxRate: "0.09",
// units: "盒"
// },
// 专票 // 专票
{ {
billNo: "SRM_202508220945", // 单据编号 billNo: "SRM_202509011365",
billDate: "2025-08-22", // 单据日期 billDate: "2025-09-01",
totalAmount: 10, // 单据金额
includeTaxFlag: "1",// 判断是否含税
autoInvoice: "1",// 自动开票标记
invoiceType: "08xdp", //发票种类
buyerName: "深圳市顺丰快运有限公司test01", // 购买方名称
buyerProperty: "0", // 购买方性质
sellerTaxpayerId: "91530112MA7MQ2JR9U", // 销方税号 写死
sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司", // 销方名称 写死
sellerBankAndAccount: "13710884704", // 销方银行和账号 写死
sellerAddressAndTel: "", // 销方地址和电话 写死 应该可以不传
drawer: "测试人",// 开票人
buyerRecipientPhone: "18158132615",// 购方收票手机号
buyerRecipientMail: "",// 购方收件邮箱
amount: 10, // 明细金额 明细金额含税标识includeTaxFlag=1时该金额为含税金额
detailId: "1194121661989796666",// 业务系统明细id 业务系统明细id用于反写回原业务系统明细 【长度50】
goodsName: "蜂胶口腔膜",// 商品名称 商品名称与商品编码2填1需提前在系统维护【长度GBK92字节】
lineProperty: 2,// 行性质 行性质1折扣行(折扣行必须紧跟被折扣的正常商品行)2正常商品行
price: 10,// 单价 单价【长度整数位加小数位最大16位小数位最多13小数点占1位】price有值则quantity必填含税标识includeTaxFlag=1时该金额为含税金额
quantity: 1,// 数量 数量【长度整数位加小数位最大16位小数位最多13小数点占1位】quantity有值则price必填
revenueCode: "1070304990000000000",// 税收分类编码 税收分类编码,开票项补全或映射会补全税收分类编码,未走开票项补全或映射必填
taxRate: "0.13",// 税率 税率【0.130.090.06等】。不传时根据开票项匹配税率
units: "个"// 计量单位 计量单位【长度GBK22字节】
// billDetail: [
// {
// }
// ]
},
{
billNo: "SRM_202508220966", // 单据编号
billDate: "2025-08-22", // 单据日期
totalAmount: 10, // 单据金额
includeTaxFlag: "1",// 判断是否含税
autoInvoice: "1",// 自动开票标记
invoiceType: "10xdp", //发票种类
buyerName: "深圳市顺丰快运有限公司test01", // 购买方名称
buyerProperty: "0", // 购买方性质
sellerTaxpayerId: "91530112MA7MQ2JR9U", // 销方税号 写死
sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司", // 销方名称 写死
sellerBankAndAccount: "13710884704", // 销方银行和账号 写死
sellerAddressAndTel: "", // 销方地址和电话 写死 应该可以不传
drawer: "测试人",// 开票人
buyerRecipientPhone: "18158132615",// 购方收票手机号
buyerRecipientMail: "",// 购方收件邮箱
amount: 10, // 明细金额 明细金额含税标识includeTaxFlag=1时该金额为含税金额
detailId: "1194121661989796666",// 业务系统明细id 业务系统明细id用于反写回原业务系统明细 【长度50】
goodsName: "蜂胶口腔膜",// 商品名称 商品名称与商品编码2填1需提前在系统维护【长度GBK92字节】
lineProperty: 2,// 行性质 行性质1折扣行(折扣行必须紧跟被折扣的正常商品行)2正常商品行
price: 10,// 单价 单价【长度整数位加小数位最大16位小数位最多13小数点占1位】price有值则quantity必填含税标识includeTaxFlag=1时该金额为含税金额
quantity: 1,// 数量 数量【长度整数位加小数位最大16位小数位最多13小数点占1位】quantity有值则price必填
revenueCode: "1070304990000000000",// 税收分类编码 税收分类编码,开票项补全或映射会补全税收分类编码,未走开票项补全或映射必填
taxRate: "0.13",// 税率 税率【0.130.090.06等】。不传时根据开票项匹配税率
units: "个"// 计量单位 计量单位【长度GBK22字节】
// billDetail: [
// {
// }
// ]
},
// 普票
{
billNo: "SRM_202508221427", // 单据编号
billDate: "2025-08-22", // 单据日期
totalAmount: -10, // 单据金额
includeTaxFlag: "1",// 判断是否含税
invoiceProperty: 1,
autoMerge: 1,
autoInvoice: "1",// 自动开票标记
invoiceType: "10xdp", //发票种类
buyerName: "深圳市顺丰快运有限公司test01", // 购买方名称
buyerProperty: "0", // 购买方性质
sellerTaxpayerId: "91530112MA7MQ2JR9U", // 销方税号 写死
sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司", // 销方名称 写死
sellerBankAndAccount: "13710884704", // 销方银行和账号 写死
sellerAddressAndTel: "", // 销方地址和电话 写死 应该可以不传
drawer: "测试人",// 开票人
buyerRecipientPhone: "18158132615",// 购方收票手机号
buyerRecipientMail: "",// 购方收件邮箱
amount: -10, // 明细金额 明细金额含税标识includeTaxFlag=1时该金额为含税金额
detailId: "1194121661989796666",// 业务系统明细id 业务系统明细id用于反写回原业务系统明细 【长度50】
goodsName: "蜂胶口腔膜",// 商品名称 商品名称与商品编码2填1需提前在系统维护【长度GBK92字节】
lineProperty: 2,// 行性质 行性质1折扣行(折扣行必须紧跟被折扣的正常商品行)2正常商品行
price: -10,// 单价 单价【长度整数位加小数位最大16位小数位最多13小数点占1位】price有值则quantity必填含税标识includeTaxFlag=1时该金额为含税金额
quantity: 1,// 数量 数量【长度整数位加小数位最大16位小数位最多13小数点占1位】quantity有值则price必填
revenueCode: "1070304990000000000",// 税收分类编码 税收分类编码,开票项补全或映射会补全税收分类编码,未走开票项补全或映射必填
taxRate: "0.13",// 税率 税率【0.130.090.06等】。不传时根据开票项匹配税率
units: "个",// 计量单位 计量单位【长度GBK22字节】
redReason: "2",
blueinvoiceNo: "200_20250822181151135_0001"
// billDetail: [
// {
// }
// ]
},
{
billNo: "202508220003",
billDate: "2025-08-22",
autoInvoice: "1", autoInvoice: "1",
includeTaxFlag: "0", includeTaxFlag: "1",
invoiceProperty: "1", invoiceProperty: "0",
invoiceType: "10xdp", invoiceType: "10xdp",
totalAmount: -60, totalAmount: 10.00,
buyerTaxpayerId: "91440300MA5G9GK78Y", buyerTaxpayerId: "91440300MA5G9GK78Y",
buyerName: "金蝶票据云科技(深圳)有限公司", buyerName: "深圳市顺丰快运有限公司test01",
sellerTaxpayerId: "91530112MA7MQ2JR9U", sellerTaxpayerId: "91530112MA7MQ2JR9U",
sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司", sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司",
sellerBankAndAccount: "13710884704", sellerBankAndAccount: "13710884704",
sellerAddressAndTel: "高新技术产业园南区科技南十二路58996989", sellerAddressAndTel: "高新技术产业园南区科技南十二路58996989",
drawer: "王协芬", drawer: "王协芬",
autoMerge: "0", buyerRecipientPhone: "18158132615",
blueinvoiceNo: "22871379197244241920", buyerRecipientMail: "",
redReason: "2",
billDetail: [ billDetail: [
{ {
amount: -60, amount: 5,
detailId: "11112222333344445555",
goodsName: "通天口服液", goodsName: "通天口服液",
lineProperty: 2, lineProperty: 2,
price: -12, price: 5,
quantity: 5, quantity: 1,
revenueCode: "1070304990000000000", revenueCode: "1070304990000000000",
taxRate: "0.09", taxRate: "0.13",
units: "盒"
},
{
amount: 5,
detailId: "55554444333322221111",
goodsName: "通天口服液2",
lineProperty: 2,
price: 5,
quantity: 1,
revenueCode: "1070304990000000000",
taxRate: "0.13",
units: "盒" units: "盒"
} }
] ],
} }
]; ];

View File

@ -1,4 +1,5 @@
import requestKaiPiao from "@/utils/requestKaiPiao" import requestKaiPiao from "@/utils/requestKaiPiao"
import requestOld from "@/utils/requestOld"
// 获取app_token // 获取app_token
@ -42,3 +43,8 @@ export async function handleGetInvoiceSearch(bodyData: any, accessToken: string)
} }
// 我们自己的 开票同步接口
export async function handleSynchroBILLInterface(params: any) {
const data = await requestOld.post('/Invoice/SynchroBILL', params)
return data
}

View File

@ -2,7 +2,7 @@ import React, { useRef, useState } from 'react';
import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table';
import { Button, message, Tag, FormInstance, Popconfirm } from 'antd'; import { Button, message, Tag, FormInstance, Popconfirm } from 'antd';
import { handleGetInvoicePageTable } from '../Invoicing/service'; import { handleGetInvoicePageTable } from '../Invoicing/service';
import { handleGetAppToken, handleGetInvoiceSearch, handleGetSDToken } from '../DigitalElectronics/service'; import { handleGetAppToken, handleGetInvoiceSearch, handleGetKaiPiao, handleGetSDToken } from '../DigitalElectronics/service';
// 定义查询接口的返回类型 // 定义查询接口的返回类型
export interface ApifoxModel { export interface ApifoxModel {
@ -242,37 +242,106 @@ const InvoiceSearch: React.FC = () => {
// 红冲 // 红冲
const handleRedReversal = async (params: any) => { const handleRedReversal = async (params: any) => {
const queryData = { // 整单红冲 不需要调用红冲接口 申请里面放蓝票信息 就是红冲
billNo: params?.billNo || "", console.log('paramsparams', params);
drawer: params?.drawer || "",
orgCode: params?.orgCode || "",
sellerTaxpayerId: "91530112MA7MQ2JR9U",
redReason: "",
};
// 将data字段进行base64加密
const dataString = JSON.stringify(queryData);
const encryptedData = btoa(unescape(encodeURIComponent(dataString)));
const req: any = {
requestId: Date.now().toString(),
businessSystemCode: "BUSINESS_YCIC",
interfaceCode: "BILL.QUICK.RED",
data: encryptedData
}
// 他这个接口 就一个地址 改不一样的参数就能调不一样的接口
const data = await handleGetInvoiceSearch(req, accessToken)
console.log('datadatadatadata', data);
if (data && data.success) { let obj: any = {
let res = JSON.parse(decodeURIComponent(escape(atob(data.data)))) billNo: "SRM_202509011366",
console.log('resresresresres', res); billDate: "2025-09-01",
if (res && res.length > 0) { autoInvoice: "1",
let result = res[0] includeTaxFlag: "1",
message.success(result.message) invoiceProperty: "1",
actionRef.current?.reload() totalAmount: -10,
} invoiceType: "10xdp",
} else { buyerTaxpayerId: "91440300MA5G9GK78Y",
message.error(data?.message || '查询失败'); buyerName: "深圳市顺丰快运有限公司test01",
sellerTaxpayerId: "91530112MA7MQ2JR9U",
sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司",
sellerBankAndAccount: "13710884704",
sellerAddressAndTel: "高新技术产业园南区科技南十二路58996989",
drawer: "王协芬",
buyerRecipientPhone: "18158132615",
buyerRecipientMail: "",
autoMerge: "0",
blueinvoiceCode: "",
blueinvoiceNo: "22944630796032563200",
redReason: "2",
billDetail: [
{
amount: -5,
detailId: "11112222333344445555",
goodsName: "通天口服液",
lineProperty: 2,
price: 5,
quantity: -1,
revenueCode: "1070304990000000000",
taxRate: "0.13",
units: "盒"
},
{
amount: -5,
detailId: "55554444333322221111",
goodsName: "通天口服液2",
lineProperty: 2,
price: 5,
quantity: -1,
revenueCode: "1070304990000000000",
taxRate: "0.13",
units: "盒"
}
]
} }
console.log('objobjobj', obj);
// 构造原始数据
const originalData = [obj]; // 将record作为data数组的一项
// 将data字段进行base64加密
const dataString = JSON.stringify(originalData);
const encryptedData = btoa(unescape(encodeURIComponent(dataString))); // base64编码支持中文
// 构造开票请求数据
const invoiceData = {
businessSystemCode: "BUSINESS_YCIC", // 来源系统编码
interfaceCode: "BILL.PUSH", // 接口业务编码
requestId: Date.now().toString(), // 时间戳作为请求ID
data: encryptedData // 加密后的data字符串
};
const response = await handleGetKaiPiao(invoiceData, accessToken);
console.log('responseresponseresponse', response);
// const queryData = {
// billNo: params?.billNo || "",
// drawer: params?.drawer || "",
// orgCode: params?.orgCode || "",
// sellerTaxpayerId: "91530112MA7MQ2JR9U",
// redReason: "111",
// };
// console.log('queryDataqueryDataqueryData', queryData);
// // 将data字段进行base64加密
// const dataString = JSON.stringify(queryData);
// const encryptedData = btoa(unescape(encodeURIComponent(dataString)));
// const req: any = {
// requestId: Date.now().toString(),
// businessSystemCode: "BUSINESS_YCIC",
// interfaceCode: "BILL.QUICK.RED",
// data: encryptedData
// }
// // 他这个接口 就一个地址 改不一样的参数就能调不一样的接口
// const data = await handleGetInvoiceSearch(req, accessToken)
// console.log('datadatadatadata', data);
// if (data && data.success) {
// let res = JSON.parse(decodeURIComponent(escape(atob(data.data))))
// console.log('resresresresres', res);
// if (res && res.length > 0) {
// let result = res[0]
// message.success(result.message)
// actionRef.current?.reload()
// }
// } else {
// message.error(data?.message || '查询失败');
// }
} }
// 请求表格数据 // 请求表格数据
@ -307,7 +376,7 @@ const InvoiceSearch: React.FC = () => {
// 构造查询数据 // 构造查询数据
const queryData = { const queryData = {
sellerTaxpayerId: "91530112MA7MQ2JR9U", sellerTaxpayerId: "91530112MA7MQ2JR9U",
serialNo: params.serialNo || "SRM_202508220966", serialNo: params.serialNo || "SRM_202509011363",
}; };
// 将data字段进行base64加密 // 将data字段进行base64加密