✨ 开票申请同步金蝶A303-1并回写A303-5开票结果(销方与税收分类编码随单据取数,新增发票结果表)

This commit is contained in:
刘泉佳
2026-09-21 19:14:20 +08:00
parent 82b347cb18
commit 39ffac15e2
11 changed files with 541 additions and 4 deletions
@@ -0,0 +1,22 @@
-- 开票申请金蝶发票结果表(A303-5 定时回写落库,发票号唯一幂等)
CREATE TABLE IF NOT EXISTS `blade_invoice_application_invoice` (
`id` bigint(20) NOT NULL COMMENT '主键',
`tenant_id` varchar(12) NOT NULL DEFAULT '000000' COMMENT '租户ID',
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`status` int(11) DEFAULT '1' COMMENT '状态',
`is_deleted` int(11) DEFAULT '0' COMMENT '是否删除',
`invoice_application_id` bigint(20) NOT NULL COMMENT '开票申请ID',
`serial_no` varchar(64) DEFAULT NULL COMMENT '金蝶开票申请单编号(A303-5 serialNo)',
`invoice_no` varchar(64) NOT NULL COMMENT '发票号码',
`invoice_date` datetime DEFAULT NULL COMMENT '开票日期',
`invoice_amount` decimal(18,2) DEFAULT NULL COMMENT '价税合计',
`raw_json` text COMMENT 'A303-5返回原文JSON留档',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_application_invoice` (`tenant_id`,`invoice_application_id`,`invoice_no`),
KEY `idx_iai_application_id` (`invoice_application_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='开票申请金蝶发票结果';
@@ -0,0 +1,21 @@
-- 应收结算与开票申请同步金蝶(A303-1 开票申请推送)
-- 开票申请商品行新增字段:
-- tax_classification_code 税收分类编码(开票项目主数据 blade_invoice_item.tax_classification_code,
-- 新增/编辑开票申请选择开票内容时快照落库,A303-1 分录 taxratecodeid.number 取数来源)
-- 销方名称/销方税号不走 Nacos 配置与表结构:销方名称取开票申请开票单位快照(issuer_name,结算单收款方带出),
-- 销方税号按开票单位查客商档案统一社会信用代码(unified_credit_code)
-- 开票申请基础建表脚本 blade_invoice_application_20260821.sql 保持不动,本脚本支持重复执行
-- 以下结构升级支持重复执行
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_invoice_application_line` ADD COLUMN `tax_classification_code` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''税收分类编码(开票内容快照)'' AFTER `goods_name`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'blade_invoice_application_line'
AND COLUMN_NAME = 'tax_classification_code'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;