打通 T+ 快照、业务、发货、回款和核算准备链路,保留来源差异并提供待补状态。 新增业务自动接入任务、跨平台读取服务托管、权限复核、来源关联和前端核对页面。 补充迁移、隔离集成测试、浏览器模拟验收及角色授权边界修复。
46 lines
4.1 KiB
SQL
46 lines
4.1 KiB
SQL
-- V30:业务接入与核算准备解耦;默认关闭自动接入,不执行回填或工资核算。
|
||
ALTER TABLE products MODIFY product_category VARCHAR(32) NULL COMMENT '核算分类,NULL=待确认';
|
||
ALTER TABLE customers MODIFY customer_type VARCHAR(32) NULL DEFAULT NULL COMMENT '核算客户类型,NULL=待确认';
|
||
ALTER TABLE business_items MODIFY product_category VARCHAR(32) NULL COMMENT '核算分类,NULL=待确认';
|
||
ALTER TABLE shipments MODIFY freight_amount DECIMAL(14,2) NULL DEFAULT NULL COMMENT '运费金额,NULL=来源待核实';
|
||
ALTER TABLE businesses ADD integration_json JSON NULL COMMENT 'T+接入范围及来源人员摘要,非核算快照';
|
||
ALTER TABLE tplus_source_heads ADD source_parent_id VARCHAR(64) NULL COMMENT '源父单据ID查询投影', ADD source_customer_id VARCHAR(64) NULL COMMENT '源客户ID查询投影', ADD source_date VARCHAR(10) NULL COMMENT '源业务日期查询投影';
|
||
UPDATE tplus_source_heads h JOIN tplus_sync_records r ON r.id=h.record_id SET h.source_parent_id=NULLIF(JSON_UNQUOTE(JSON_EXTRACT(r.payload_json,'$.source_parent_id')),'null'), h.source_customer_id=NULLIF(JSON_UNQUOTE(COALESCE(JSON_EXTRACT(r.payload_json,'$.idcustomer'),JSON_EXTRACT(r.payload_json,'$.idpartner'))),'null'), h.source_date=LEFT(NULLIF(JSON_UNQUOTE(COALESCE(JSON_EXTRACT(r.payload_json,'$.voucherdate'),JSON_EXTRACT(r.payload_json,'$.voucherDate'))),'null'),10);
|
||
CREATE INDEX idx_tplus_source_heads_parent ON tplus_source_heads(source_database,entity_type,source_parent_id);
|
||
CREATE INDEX idx_tplus_source_heads_customer_date ON tplus_source_heads(source_database,entity_type,source_customer_id,source_date);
|
||
CREATE INDEX idx_tplus_source_heads_date ON tplus_source_heads(source_database,entity_type,source_date,id);
|
||
CREATE TABLE tplus_business_sync_configs (
|
||
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
|
||
source_database VARCHAR(128) NOT NULL COMMENT '源账套',
|
||
enabled INTEGER NOT NULL COMMENT '自动接入是否启用',
|
||
start_date DATE NOT NULL COMMENT '业务接入起点',
|
||
version INTEGER NOT NULL COMMENT '配置乐观版本',
|
||
updated_by BIGINT UNSIGNED NOT NULL COMMENT '授权启用账号',
|
||
last_error VARCHAR(64) COMMENT '后台接入暂停原因',
|
||
create_time DATETIME NOT NULL COMMENT '创建时间' DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL COMMENT '更新时间' DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
CONSTRAINT pk_tplus_business_sync_configs PRIMARY KEY (id),
|
||
CONSTRAINT uk_tplus_business_sync_configs_source UNIQUE (source_database)
|
||
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='T+业务自动接入设置' COLLATE utf8mb4_general_ci;
|
||
CREATE TABLE tplus_business_documents (
|
||
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
|
||
source_database VARCHAR(128) NOT NULL COMMENT '源账套',
|
||
entity_type VARCHAR(32) NOT NULL COMMENT '源实体',
|
||
source_id VARCHAR(64) NOT NULL COMMENT '源单据或明细ID',
|
||
source_no VARCHAR(128) COMMENT '原始单号',
|
||
record_id BIGINT UNSIGNED NOT NULL COMMENT '当前观察到的源快照ID',
|
||
applied_record_id BIGINT UNSIGNED COMMENT '已接入的源快照ID',
|
||
fingerprint VARCHAR(64) COMMENT '已应用的业务字段指纹',
|
||
business_id BIGINT UNSIGNED COMMENT '关联业务ID',
|
||
target_id BIGINT UNSIGNED COMMENT '正式单据或明细ID',
|
||
status VARCHAR(24) NOT NULL COMMENT 'APPLIED/PENDING/CONFLICT/EXCLUDED',
|
||
reason VARCHAR(128) COMMENT '固定待补或差异编码',
|
||
data_json JSON NOT NULL COMMENT '最小必要来源与差异说明',
|
||
create_time DATETIME NOT NULL COMMENT '创建时间' DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL COMMENT '更新时间' DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
CONSTRAINT pk_tplus_business_documents PRIMARY KEY (id),
|
||
CONSTRAINT uk_tplus_business_documents_source_entity_id UNIQUE (source_database, entity_type, source_id)
|
||
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='T+业务单据接入与差异账本' COLLATE utf8mb4_general_ci;
|
||
CREATE INDEX idx_tplus_business_documents_business_entity ON tplus_business_documents (business_id, entity_type, id);
|
||
CREATE INDEX idx_tplus_business_documents_source_status ON tplus_business_documents (source_database, status, id);
|