diff --git a/src/pages/DigitalElectronics/index.tsx b/src/pages/DigitalElectronics/index.tsx index f26669a..cf5669e 100644 --- a/src/pages/DigitalElectronics/index.tsx +++ b/src/pages/DigitalElectronics/index.tsx @@ -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 (
= (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: "盒" } - ] + ], } ]; diff --git a/src/pages/DigitalElectronics/service.ts b/src/pages/DigitalElectronics/service.ts index c2fa5ce..a7338bf 100644 --- a/src/pages/DigitalElectronics/service.ts +++ b/src/pages/DigitalElectronics/service.ts @@ -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 +} \ No newline at end of file diff --git a/src/pages/InvoiceSearch/index.tsx b/src/pages/InvoiceSearch/index.tsx index c2d1b8e..8bd5e81 100644 --- a/src/pages/InvoiceSearch/index.tsx +++ b/src/pages/InvoiceSearch/index.tsx @@ -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() - } - } else { - message.error(data?.message || '查询失败'); + 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: "盒" + } + ] } + 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加密