update
This commit is contained in:
parent
c819d0e880
commit
19d34b5fc2
@ -4,7 +4,8 @@ import { FormInstance, Button, message, Tag, Popconfirm } from "antd";
|
||||
import { useRef, useState } from "react";
|
||||
import { connect } from "umi";
|
||||
import { Datum } from "@/types/invoice";
|
||||
import { handleGetAppToken, handleGetKaiPiao, handleGetSDToken } from "./service";
|
||||
import { handleGetAppToken, handleGetKaiPiao, handleGetSDToken, handleSynchroBILLInterface } from "./service";
|
||||
import moment from "moment";
|
||||
|
||||
interface ConnectState {
|
||||
user: {
|
||||
@ -51,19 +52,10 @@ const DigitalElectronics: React.FC<{ currentUser: any }> = (props) => {
|
||||
buyerRecipientMail: record?.buyerRecipientMail || "",// 购方收件邮箱
|
||||
redReason: record?.redReason,
|
||||
blueinvoiceNo: record?.blueinvoiceNo,
|
||||
billDetail: [
|
||||
{
|
||||
amount: record?.amount, // 明细金额 明细金额,含税标识includeTaxFlag=1时该金额为含税金额
|
||||
detailId: record?.detailId,// 业务系统明细id 业务系统明细id,用于反写回原业务系统明细 【长度:50】
|
||||
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.13,0.09,0.06等】。不传时根据开票项匹配税率
|
||||
units: record?.units// 计量单位 计量单位,【长度:GBK22字节】
|
||||
}
|
||||
]
|
||||
originalIssueTime: record?.originalIssueTime,
|
||||
blueInvoiceType: record?.blueInvoiceType,
|
||||
blueinvoiceCode: record?.blueinvoiceCode,
|
||||
billDetail: record?.billDetail
|
||||
}
|
||||
|
||||
console.log('objobj', obj);
|
||||
@ -84,6 +76,12 @@ const DigitalElectronics: React.FC<{ currentUser: any }> = (props) => {
|
||||
data: encryptedData // 加密后的data字符串
|
||||
};
|
||||
|
||||
console.log('加密前的请求参数:', {
|
||||
businessSystemCode: "BUSINESS_YCIC", // 来源系统编码
|
||||
interfaceCode: "BILL.PUSH", // 接口业务编码
|
||||
requestId: Date.now().toString(), // 时间戳作为请求ID
|
||||
data: obj // 加密后的data字符串
|
||||
});
|
||||
console.log('原始数据:', originalData);
|
||||
console.log('JSON字符串:', dataString);
|
||||
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))));
|
||||
console.log('最终结果:', res);
|
||||
|
||||
|
||||
message.success({ content: `单据 ${record.billNo} 开票申请已提交成功`, key: 'invoice' });
|
||||
|
||||
// 他们的调用成功了 再调用我们自己的 同步票据信息表 的接口
|
||||
handleSynchroBILL(record)
|
||||
|
||||
|
||||
} else {
|
||||
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 (
|
||||
<div>
|
||||
<ProTable
|
||||
@ -255,137 +323,179 @@ const DigitalElectronics: React.FC<{ currentUser: any }> = (props) => {
|
||||
|
||||
// 模拟数据
|
||||
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.13,0.09,0.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.13,0.09,0.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.13,0.09,0.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", // 单据编号
|
||||
billDate: "2025-08-22", // 单据日期
|
||||
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.13,0.09,0.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.13,0.09,0.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.13,0.09,0.06等】。不传时根据开票项匹配税率
|
||||
units: "个",// 计量单位 计量单位,【长度:GBK22字节】
|
||||
redReason: "2",
|
||||
blueinvoiceNo: "200_20250822181151135_0001"
|
||||
// billDetail: [
|
||||
// {
|
||||
|
||||
// }
|
||||
// ]
|
||||
},
|
||||
{
|
||||
billNo: "202508220003",
|
||||
billDate: "2025-08-22",
|
||||
billNo: "SRM_202509011365",
|
||||
billDate: "2025-09-01",
|
||||
autoInvoice: "1",
|
||||
includeTaxFlag: "0",
|
||||
invoiceProperty: "1",
|
||||
includeTaxFlag: "1",
|
||||
invoiceProperty: "0",
|
||||
invoiceType: "10xdp",
|
||||
totalAmount: -60,
|
||||
totalAmount: 10.00,
|
||||
buyerTaxpayerId: "91440300MA5G9GK78Y",
|
||||
buyerName: "金蝶票据云科技(深圳)有限公司",
|
||||
buyerName: "深圳市顺丰快运有限公司test01",
|
||||
sellerTaxpayerId: "91530112MA7MQ2JR9U",
|
||||
sellerName: "云南交投集团经营开发有限公司彩云驿商业管理分公司",
|
||||
sellerBankAndAccount: "13710884704",
|
||||
sellerAddressAndTel: "高新技术产业园南区科技南十二路58996989",
|
||||
drawer: "王协芬",
|
||||
autoMerge: "0",
|
||||
blueinvoiceNo: "22871379197244241920",
|
||||
redReason: "2",
|
||||
buyerRecipientPhone: "18158132615",
|
||||
buyerRecipientMail: "",
|
||||
billDetail: [
|
||||
{
|
||||
amount: -60,
|
||||
amount: 5,
|
||||
detailId: "11112222333344445555",
|
||||
goodsName: "通天口服液",
|
||||
lineProperty: 2,
|
||||
price: -12,
|
||||
quantity: 5,
|
||||
price: 5,
|
||||
quantity: 1,
|
||||
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: "盒"
|
||||
}
|
||||
]
|
||||
],
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import requestKaiPiao from "@/utils/requestKaiPiao"
|
||||
import requestOld from "@/utils/requestOld"
|
||||
|
||||
|
||||
// 获取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
|
||||
}
|
||||
@ -2,7 +2,7 @@ import React, { useRef, useState } from 'react';
|
||||
import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table';
|
||||
import { Button, message, Tag, FormInstance, Popconfirm } from 'antd';
|
||||
import { handleGetInvoicePageTable } from '../Invoicing/service';
|
||||
import { handleGetAppToken, handleGetInvoiceSearch, handleGetSDToken } from '../DigitalElectronics/service';
|
||||
import { handleGetAppToken, handleGetInvoiceSearch, handleGetKaiPiao, handleGetSDToken } from '../DigitalElectronics/service';
|
||||
|
||||
// 定义查询接口的返回类型
|
||||
export interface ApifoxModel {
|
||||
@ -242,37 +242,106 @@ const InvoiceSearch: React.FC = () => {
|
||||
|
||||
// 红冲
|
||||
const handleRedReversal = async (params: any) => {
|
||||
const queryData = {
|
||||
billNo: params?.billNo || "",
|
||||
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);
|
||||
// 整单红冲 不需要调用红冲接口 申请里面放蓝票信息 就是红冲
|
||||
console.log('paramsparams', params);
|
||||
|
||||
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()
|
||||
let obj: any = {
|
||||
billNo: "SRM_202509011366",
|
||||
billDate: "2025-09-01",
|
||||
autoInvoice: "1",
|
||||
includeTaxFlag: "1",
|
||||
invoiceProperty: "1",
|
||||
totalAmount: -10,
|
||||
invoiceType: "10xdp",
|
||||
buyerTaxpayerId: "91440300MA5G9GK78Y",
|
||||
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: "盒"
|
||||
}
|
||||
} else {
|
||||
message.error(data?.message || '查询失败');
|
||||
]
|
||||
}
|
||||
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 = {
|
||||
sellerTaxpayerId: "91530112MA7MQ2JR9U",
|
||||
serialNo: params.serialNo || "SRM_202508220966",
|
||||
serialNo: params.serialNo || "SRM_202509011363",
|
||||
};
|
||||
|
||||
// 将data字段进行base64加密
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user