feat: 付款记录回写金蝶电子回单文件名并支持凭证A801-2下载
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
-- 付款记录表:付款凭证文件名落库(付款凭证下载 A801-2 用)
|
||||
-- 背景:A103-4 付款处理查询返回 isgetreceipt(true=金蝶已有电子回单),
|
||||
-- 回单文件名取 bankcheckentity.awrp_receiptno.uploadfilename(即 A801-2 文件下载键),
|
||||
-- 前端按付款记录 voucherFileName 判定是否展示凭证下载,调用
|
||||
-- GET /payment-application/record/download-voucher?recordId= 流式回源下载
|
||||
-- 幂等可重复执行:逐列查 information_schema,已存在则跳过;存量数据从 voucher_json 回填(仅填空值)
|
||||
|
||||
-- ① 列 voucher_file_name
|
||||
SET @ddl = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_payment_application_record' AND COLUMN_NAME = 'voucher_file_name') = 0,
|
||||
'ALTER TABLE `blade_payment_application_record` ADD COLUMN `voucher_file_name` varchar(128) DEFAULT NULL COMMENT ''付款凭证文件名(A103-4 bankcheckentity.awrp_receiptno.uploadfilename,A801-2下载键)'' AFTER `kingdee_bill_id`',
|
||||
'SELECT 1'));
|
||||
PREPARE stmt FROM @ddl;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ② 存量回填:从 A103-4 留档报文 voucher_json 提取电子回单文件名(仅填空值,天然可重复执行)
|
||||
-- 仅回填 isgetreceipt=true 且回单文件名非空的记录
|
||||
UPDATE `blade_payment_application_record`
|
||||
SET `voucher_file_name` = JSON_UNQUOTE(JSON_EXTRACT(`voucher_json`, '$.bankcheckentity[0].awrp_receiptno[0].uploadfilename'))
|
||||
WHERE `voucher_file_name` IS NULL
|
||||
AND `voucher_json` IS NOT NULL
|
||||
AND JSON_VALID(`voucher_json`)
|
||||
AND JSON_EXTRACT(`voucher_json`, '$.isgetreceipt') = TRUE
|
||||
AND JSON_EXTRACT(`voucher_json`, '$.bankcheckentity[0].awrp_receiptno[0].uploadfilename') IS NOT NULL
|
||||
AND JSON_UNQUOTE(JSON_EXTRACT(`voucher_json`, '$.bankcheckentity[0].awrp_receiptno[0].uploadfilename')) <> '';
|
||||
Reference in New Issue
Block a user