From b2c6533fab593353b88c8490b260ca6061d20dca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Fri, 30 Oct 2026 14:08:08 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=AE=A2=E5=95=86=E9=BB=91?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E7=8A=B6=E6=80=81=E5=AD=97=E6=AE=B5=E6=94=B9?= =?UTF-8?q?kingdee=5F=E5=89=8D=E7=BC=80=EF=BC=88hcs=5Fblack=5Fstatus?= =?UTF-8?q?=E6=94=B9=E5=90=8Dkingdee=5Fblack=5Fstatus=E5=B9=B6=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E6=95=B0=E6=8D=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/CustomerArchive.java | 2 +- .../mapper/CustomerArchiveMapper.xml | 4 +-- .../support/hcs/HcsCreditCheckSupport.java | 2 +- .../task/CustomerRiskRefreshTask.java | 2 +- ...0-30-客商黑名单与风险等级运维手册(运维侧).md | 8 +++--- doc/sql/transport/blade_customer_archive.sql | 4 +-- ...ade_customer_archive_hcs_risk_20261030.sql | 25 +++++++++++++------ 7 files changed, 29 insertions(+), 18 deletions(-) diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/CustomerArchive.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/CustomerArchive.java index 54987c07..4ada80e1 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/CustomerArchive.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/CustomerArchive.java @@ -186,7 +186,7 @@ public class CustomerArchive extends TenantEntity { private String hcsRiskLevel; @Schema(description = "合规客商黑名单状态(C101-1,每日定时刷新):yes=是,no=否,handing=处理中") - private String hcsBlackStatus; + private String kingdeeBlackStatus; @Schema(description = "合规客商风险最近查询时间(C101-1)") private LocalDateTime hcsRiskTime; diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml index c3d3b11a..077b5a75 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml @@ -55,7 +55,7 @@ - + @@ -114,7 +114,7 @@ kingdee_fail_reason, kingdee_sync_time, hcs_risk_level, - hcs_black_status, + kingdee_black_status, hcs_risk_time, kingdee_black_category, kingdee_black_reason, diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsCreditCheckSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsCreditCheckSupport.java index e591917c..ef42c4ac 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsCreditCheckSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsCreditCheckSupport.java @@ -477,7 +477,7 @@ public class HcsCreditCheckSupport { CustomerArchive riskPatch = new CustomerArchive(); riskPatch.setId(customerArchive.getId()); riskPatch.setHcsRiskLevel(risk.getFdRiskLevel()); - riskPatch.setHcsBlackStatus(risk.getFdBlackStatus()); + riskPatch.setKingdeeBlackStatus(risk.getFdBlackStatus()); riskPatch.setHcsRiskTime(LocalDateTime.now()); // 金蝶黑名单命中落原始字段(失信类别/列入事由),明细文案由列表查询统一组装 BfiBlacklistVO hit = Func.isEmpty(customerArchive.getUnifiedCreditCode()) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/task/CustomerRiskRefreshTask.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/task/CustomerRiskRefreshTask.java index 862f6cde..79522200 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/task/CustomerRiskRefreshTask.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/task/CustomerRiskRefreshTask.java @@ -37,7 +37,7 @@ import org.springframework.stereotype.Component; * 客商风险每日定时刷新任务(C101-1) *

* 合同期限范围内的生效合同,每日定时查询其甲乙方关联客商的风险等级/黑名单状态并落库 - * (blade_customer_archive.hcs_risk_level/hcs_black_status/hcs_risk_time), + * (blade_customer_archive.hcs_risk_level/kingdee_black_status/hcs_risk_time), * 作为客商档案列表「客商风险」列展示与筛选的数据源;查询逐次留痕 blade_hcs_check_log, * 单个失败记录失败原因日志备查。 * 业务逻辑收敛在 {@link HcsCreditCheckSupport#refreshCustomerRiskForActiveContracts()},便于手动触发联调。 diff --git a/doc/docs/业务流程/2026-10-30-客商黑名单与风险等级运维手册(运维侧).md b/doc/docs/业务流程/2026-10-30-客商黑名单与风险等级运维手册(运维侧).md index e39f9934..60e6d87b 100644 --- a/doc/docs/业务流程/2026-10-30-客商黑名单与风险等级运维手册(运维侧).md +++ b/doc/docs/业务流程/2026-10-30-客商黑名单与风险等级运维手册(运维侧).md @@ -15,7 +15,7 @@ 每日 02:30 CustomerRiskRefreshTask │ ┌──────▼─────────┐ │ blade_customer_archive - │ hcs_risk_level / hcs_black_status + │ hcs_risk_level / kingdee_black_status │ hcs_risk_time │ kingdee_black_category / kingdee_black_reason └────────────────┘ @@ -25,7 +25,7 @@ | 线 | 接口 | 查询键 | 落库字段 | |---|---|---|---| -| 合同合规风险(C101-1) | `getRelativeRisk` | 客商编号(fdNumber) | `hcs_risk_level`、`hcs_black_status`、`hcs_risk_time` | +| 合同合规风险(C101-1) | `getRelativeRisk` | 客商编号(fdNumber) | `hcs_risk_level`、`kingdee_black_status`、`hcs_risk_time` | | 金蝶黑名单(A801-5) | `queryBlacklist` | 税号/统一社会信用代码(number) | `kingdee_black_category`、`kingdee_black_reason` | **调用场景**(C101-1): @@ -73,12 +73,12 @@ | 字段 | 类型 | 说明 | |---|---|---| | `hcs_risk_level` | varchar(8) | C101-1 风险等级:0=低/1=中/2=高风险 | -| `hcs_black_status` | varchar(8) | C101-1 黑名单状态:yes/no/handing | +| `kingdee_black_status` | varchar(8) | C101-1 黑名单状态:yes/no/handing(数据归金蝶口径,故用 kingdee_ 前缀) | | `hcs_risk_time` | datetime | 风险最近查询时间 | | `kingdee_black_category` | varchar(200) | 金蝶黑名单失信类别(awrp_combofield_title 兜底 awrp_combofield) | | `kingdee_black_reason` | varchar(1000) | 金蝶黑名单列入事由(awrp_textareafield) | -索引:`idx_hcs_risk_level`、`idx_hcs_black_status`。 +索引:`idx_hcs_risk_level`、`idx_kingdee_black_status`。 ### 4.2 脚本(幂等可重复执行) diff --git a/doc/sql/transport/blade_customer_archive.sql b/doc/sql/transport/blade_customer_archive.sql index 0350134b..1c0268fd 100644 --- a/doc/sql/transport/blade_customer_archive.sql +++ b/doc/sql/transport/blade_customer_archive.sql @@ -47,7 +47,7 @@ CREATE TABLE `blade_customer_archive` ( `kingdee_fail_reason` varchar(500) NULL DEFAULT NULL COMMENT '金蝶推送失败原因', `kingdee_sync_time` datetime NULL DEFAULT NULL COMMENT '金蝶推送时间', `hcs_risk_level` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '合规客商风险等级(C101-1,0=低风险/1=中风险/2=高风险)', - `hcs_black_status` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '合规客商黑名单状态(C101-1,yes=是/no=否/handing=处理中)', + `kingdee_black_status` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '合规客商黑名单状态(C101-1,yes=是/no=否/handing=处理中)', `hcs_risk_time` datetime DEFAULT NULL COMMENT '客商风险最近查询时间(C101-1)', `kingdee_black_category` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '金蝶黑名单失信类别(A801-5 awrp_combofield_title,缺失兜底 awrp_combofield)', `kingdee_black_reason` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '金蝶黑名单列入事由(A801-5 awrp_textareafield)', @@ -65,7 +65,7 @@ CREATE TABLE `blade_customer_archive` ( KEY `idx_customer_archive_name` (`tenant_id`, `full_name`, `short_name`) USING BTREE, KEY `idx_kingdee_status` (`kingdee_status`) USING BTREE, KEY `idx_hcs_risk_level` (`hcs_risk_level`) USING BTREE, - KEY `idx_hcs_black_status` (`hcs_black_status`) USING BTREE + KEY `idx_kingdee_black_status` (`kingdee_black_status`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客商档案'; -- ---------------------------- diff --git a/doc/sql/transport/lqj/temp/02_blade_customer_archive_hcs_risk_20261030.sql b/doc/sql/transport/lqj/temp/02_blade_customer_archive_hcs_risk_20261030.sql index f67ca273..696a8780 100644 --- a/doc/sql/transport/lqj/temp/02_blade_customer_archive_hcs_risk_20261030.sql +++ b/doc/sql/transport/lqj/temp/02_blade_customer_archive_hcs_risk_20261030.sql @@ -13,11 +13,15 @@ PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; --- ② 列 hcs_black_status +-- ② 列 kingdee_black_status(C101-1 黑名单状态;此前误用 hcs_ 前缀,存在旧列时 CHANGE 改名迁移数据) SET @ddl = (SELECT IF( (SELECT COUNT(*) FROM information_schema.COLUMNS - WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND COLUMN_NAME = 'hcs_black_status') = 0, - 'ALTER TABLE `blade_customer_archive` ADD COLUMN `hcs_black_status` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''合规客商黑名单状态(C101-1,yes=是/no=否/handing=处理中)'' AFTER `hcs_risk_level`', + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND COLUMN_NAME = 'kingdee_black_status') = 0, + (SELECT IF( + (SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND COLUMN_NAME = 'hcs_black_status') > 0, + 'ALTER TABLE `blade_customer_archive` CHANGE COLUMN `hcs_black_status` `kingdee_black_status` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''合规客商黑名单状态(C101-1,yes=是/no=否/handing=处理中)''', + 'ALTER TABLE `blade_customer_archive` ADD COLUMN `kingdee_black_status` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''合规客商黑名单状态(C101-1,yes=是/no=否/handing=处理中)'' AFTER `hcs_risk_level`')), 'SELECT 1')); PREPARE stmt FROM @ddl; EXECUTE stmt; @@ -27,7 +31,7 @@ DEALLOCATE PREPARE stmt; SET @ddl = (SELECT IF( (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND COLUMN_NAME = 'hcs_risk_time') = 0, - 'ALTER TABLE `blade_customer_archive` ADD COLUMN `hcs_risk_time` datetime DEFAULT NULL COMMENT ''客商风险最近查询时间(C101-1)'' AFTER `hcs_black_status`', + 'ALTER TABLE `blade_customer_archive` ADD COLUMN `hcs_risk_time` datetime DEFAULT NULL COMMENT ''客商风险最近查询时间(C101-1)'' AFTER `kingdee_black_status`', 'SELECT 1')); PREPARE stmt FROM @ddl; EXECUTE stmt; @@ -43,16 +47,23 @@ PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; --- ⑤ 索引 idx_hcs_black_status +-- ⑤ 索引 idx_kingdee_black_status SET @ddl = (SELECT IF( (SELECT COUNT(*) FROM information_schema.STATISTICS - WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND INDEX_NAME = 'idx_hcs_black_status') = 0, - 'ALTER TABLE `blade_customer_archive` ADD INDEX idx_hcs_black_status (hcs_black_status)', + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND INDEX_NAME = 'idx_kingdee_black_status') = 0, + 'ALTER TABLE `blade_customer_archive` ADD INDEX idx_kingdee_black_status (kingdee_black_status)', 'SELECT 1')); PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; +-- ⑥ 旧索引清理:② CHANGE 改名后旧索引 idx_hcs_black_status 会自动跟随新列残留,若存在则删除(由 idx_kingdee_black_status 取代) +SET @ddl = (SELECT IF( + (SELECT COUNT(*) FROM information_schema.STATISTICS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND INDEX_NAME = 'idx_hcs_black_status') > 0, + 'ALTER TABLE `blade_customer_archive` DROP INDEX idx_hcs_black_status', + 'SELECT 1')); + -- ⑥ 列 hcs_black_category / hcs_black_reason(A801-5 金蝶黑名单原始字段:失信类别、列入事由,明细文案由后台组装) SET @ddl = (SELECT IF( (SELECT COUNT(*) FROM information_schema.COLUMNS