feat: HCS履约规则数据层与表单维护(blade_contract_exe_stage表/行级差异标记维护接口/合同审批置行待同步)

This commit is contained in:
刘泉佳
2026-09-27 23:27:29 +08:00
parent eaab17b220
commit 892035ee6f
7 changed files with 512 additions and 0 deletions
@@ -0,0 +1,36 @@
-- 桂物合同合规系统(HCS)接入:履约规则表(设计文档 §4.1,ADR-0002,P2)。
-- 合同维度资金计划阶段,C103-9 行级同步的数据源;行删除为软删+标记,不可物理删除。
-- 通过 information_schema 判断表是否存在,可重复执行。
SET @db_name = DATABASE();
SET @sql = IF(
EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = @db_name AND table_name = 'blade_contract_exe_stage'),
'SELECT 1',
'CREATE TABLE blade_contract_exe_stage (
id bigint NOT NULL COMMENT ''主键'',
contract_id bigint NOT NULL COMMENT ''合同ID(blade_contract_manage.id)'',
perform_type varchar(16) NOT NULL COMMENT ''履约类型 payment=付款/collection=收款'',
fund_nature varchar(16) DEFAULT NULL COMMENT ''款项性质 prepayment/progress/acceptance/retention'',
fund_amount decimal(18,2) DEFAULT NULL COMMENT ''计划金额(元)'',
fund_date datetime DEFAULT NULL COMMENT ''计划资金日期'',
invoice_rule varchar(16) DEFAULT NULL COMMENT ''开票规则(如 payFirst)'',
invoice_cycle int DEFAULT NULL COMMENT ''账期'',
fund_type varchar(16) DEFAULT ''byAmount'' COMMENT ''金额类型'',
is_finish tinyint DEFAULT 0 COMMENT ''是否完成'',
row_op varchar(8) DEFAULT ''none'' COMMENT ''行级同步操作 none/add/update/delete'',
hcs_stage_fd_id varchar(64) DEFAULT NULL COMMENT ''合规阶段ID(C103-9 返回,update/delete 必用)'',
hcs_sync_status varchar(16) DEFAULT ''unsynced'' COMMENT ''同步状态 unsynced/synced/failed'',
hcs_sync_msg varchar(512) DEFAULT NULL COMMENT ''同步结果信息/失败原因'',
tenant_id varchar(12) DEFAULT ''000000'' COMMENT ''租户ID'',
create_user bigint DEFAULT NULL COMMENT ''创建人'',
create_dept bigint DEFAULT NULL COMMENT ''创建部门'',
create_time datetime DEFAULT NULL COMMENT ''创建时间'',
update_user bigint DEFAULT NULL COMMENT ''更新人'',
update_time datetime DEFAULT NULL COMMENT ''更新时间'',
status int DEFAULT 1 COMMENT ''业务状态'',
is_deleted int DEFAULT 0 COMMENT ''是否已删除'',
PRIMARY KEY (id),
KEY idx_hcs_exe_stage_contract (contract_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=''合同履约规则(HCS 履约阶段)'''
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;