Merge remote-tracking branch 'origin/feature/20261104-bfi-apbill-preentry' into feature/20261104-bfi-project-contract-ref-v2

# Conflicts:
#	blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeApBillSyncSupport.java
#	doc/sql/transport/lqj/20261102/23_blade_payment_application_record_kingdee_bill_id_20261104.sql
This commit is contained in:
刘泉佳
2026-11-05 00:28:47 +08:00
5 changed files with 410 additions and 10 deletions
@@ -0,0 +1,21 @@
-- 付款记录表:金蝶付款处理单内码(cas_paybill.id)落库
-- 用途:财务应付单(A102-2)preentry 预付信息分录 y_billid 取数;A103-4 回写付款记录时同步写入
-- 幂等可重复执行:逐列查 information_schema,已存在则跳过;存量数据从 voucher_json 回填(仅填空值)
-- ① 列 kingdee_bill_id
SET @ddl = (SELECT IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_payment_application_record' AND COLUMN_NAME = 'kingdee_bill_id') = 0,
'ALTER TABLE `blade_payment_application_record` ADD COLUMN `kingdee_bill_id` varchar(64) DEFAULT NULL COMMENT ''金蝶付款处理单id(cas_paybill.id,A103-4回写,应付单preentry预付抵扣取数用)'' AFTER `kingdee_bill_no`',
'SELECT 1'));
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- ② 存量回填:从 A103-4 留档报文 voucher_json 提取付款处理单 id(仅填空值,天然可重复执行)
UPDATE `blade_payment_application_record`
SET `kingdee_bill_id` = JSON_UNQUOTE(JSON_EXTRACT(`voucher_json`, '$.id'))
WHERE `kingdee_bill_id` IS NULL
AND `voucher_json` IS NOT NULL
AND JSON_VALID(`voucher_json`)
AND JSON_EXTRACT(`voucher_json`, '$.id') IS NOT NULL;