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 { 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.13,0.09,0.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.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", // 单据编号
|
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.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",
|
|
||||||
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: "盒"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
}
|
||||||
@ -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",
|
||||||
|
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 = {
|
const queryData = {
|
||||||
sellerTaxpayerId: "91530112MA7MQ2JR9U",
|
sellerTaxpayerId: "91530112MA7MQ2JR9U",
|
||||||
serialNo: params.serialNo || "SRM_202508220966",
|
serialNo: params.serialNo || "SRM_202509011363",
|
||||||
};
|
};
|
||||||
|
|
||||||
// 将data字段进行base64加密
|
// 将data字段进行base64加密
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user