refactor: 客商黑名单状态字段改kingdee_前缀(hcs_black_status改名kingdee_black_status并迁移数据)

This commit is contained in:
刘泉佳
2026-10-30 14:08:08 +08:00
parent 4ef3e90d5d
commit b2c6533fab
7 changed files with 29 additions and 18 deletions
@@ -186,7 +186,7 @@ public class CustomerArchive extends TenantEntity {
private String hcsRiskLevel; private String hcsRiskLevel;
@Schema(description = "合规客商黑名单状态(C101-1,每日定时刷新):yes=是,no=否,handing=处理中") @Schema(description = "合规客商黑名单状态(C101-1,每日定时刷新):yes=是,no=否,handing=处理中")
private String hcsBlackStatus; private String kingdeeBlackStatus;
@Schema(description = "合规客商风险最近查询时间(C101-1)") @Schema(description = "合规客商风险最近查询时间(C101-1)")
private LocalDateTime hcsRiskTime; private LocalDateTime hcsRiskTime;
@@ -55,7 +55,7 @@
<result column="kingdee_fail_reason" property="kingdeeFailReason"/> <result column="kingdee_fail_reason" property="kingdeeFailReason"/>
<result column="kingdee_sync_time" property="kingdeeSyncTime"/> <result column="kingdee_sync_time" property="kingdeeSyncTime"/>
<result column="hcs_risk_level" property="hcsRiskLevel"/> <result column="hcs_risk_level" property="hcsRiskLevel"/>
<result column="hcs_black_status" property="hcsBlackStatus"/> <result column="kingdee_black_status" property="kingdeeBlackStatus"/>
<result column="hcs_risk_time" property="hcsRiskTime"/> <result column="hcs_risk_time" property="hcsRiskTime"/>
<result column="kingdee_black_category" property="kingdeeBlackCategory"/> <result column="kingdee_black_category" property="kingdeeBlackCategory"/>
<result column="kingdee_black_reason" property="kingdeeBlackReason"/> <result column="kingdee_black_reason" property="kingdeeBlackReason"/>
@@ -114,7 +114,7 @@
kingdee_fail_reason, kingdee_fail_reason,
kingdee_sync_time, kingdee_sync_time,
hcs_risk_level, hcs_risk_level,
hcs_black_status, kingdee_black_status,
hcs_risk_time, hcs_risk_time,
kingdee_black_category, kingdee_black_category,
kingdee_black_reason, kingdee_black_reason,
@@ -477,7 +477,7 @@ public class HcsCreditCheckSupport {
CustomerArchive riskPatch = new CustomerArchive(); CustomerArchive riskPatch = new CustomerArchive();
riskPatch.setId(customerArchive.getId()); riskPatch.setId(customerArchive.getId());
riskPatch.setHcsRiskLevel(risk.getFdRiskLevel()); riskPatch.setHcsRiskLevel(risk.getFdRiskLevel());
riskPatch.setHcsBlackStatus(risk.getFdBlackStatus()); riskPatch.setKingdeeBlackStatus(risk.getFdBlackStatus());
riskPatch.setHcsRiskTime(LocalDateTime.now()); riskPatch.setHcsRiskTime(LocalDateTime.now());
// 金蝶黑名单命中落原始字段(失信类别/列入事由),明细文案由列表查询统一组装 // 金蝶黑名单命中落原始字段(失信类别/列入事由),明细文案由列表查询统一组装
BfiBlacklistVO hit = Func.isEmpty(customerArchive.getUnifiedCreditCode()) BfiBlacklistVO hit = Func.isEmpty(customerArchive.getUnifiedCreditCode())
@@ -37,7 +37,7 @@ import org.springframework.stereotype.Component;
* 客商风险每日定时刷新任务(C101-1) * 客商风险每日定时刷新任务(C101-1)
* <p> * <p>
* 合同期限范围内的生效合同,每日定时查询其甲乙方关联客商的风险等级/黑名单状态并落库 * 合同期限范围内的生效合同,每日定时查询其甲乙方关联客商的风险等级/黑名单状态并落库
* (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, * 作为客商档案列表「客商风险」列展示与筛选的数据源;查询逐次留痕 blade_hcs_check_log,
* 单个失败记录失败原因日志备查。 * 单个失败记录失败原因日志备查。
* 业务逻辑收敛在 {@link HcsCreditCheckSupport#refreshCustomerRiskForActiveContracts()},便于手动触发联调。 * 业务逻辑收敛在 {@link HcsCreditCheckSupport#refreshCustomerRiskForActiveContracts()},便于手动触发联调。
@@ -15,7 +15,7 @@
每日 02:30 CustomerRiskRefreshTask │ 每日 02:30 CustomerRiskRefreshTask │
┌──────▼─────────┐ ┌──────▼─────────┐
│ blade_customer_archive │ blade_customer_archive
│ hcs_risk_level / hcs_black_status │ hcs_risk_level / kingdee_black_status
│ hcs_risk_time │ hcs_risk_time
│ kingdee_black_category / kingdee_black_reason │ 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` | | 金蝶黑名单(A801-5) | `queryBlacklist` | 税号/统一社会信用代码(number) | `kingdee_black_category`、`kingdee_black_reason` |
**调用场景**(C101-1): **调用场景**(C101-1):
@@ -73,12 +73,12 @@
| 字段 | 类型 | 说明 | | 字段 | 类型 | 说明 |
|---|---|---| |---|---|---|
| `hcs_risk_level` | varchar(8) | C101-1 风险等级:0=低/1=中/2=高风险 | | `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 | 风险最近查询时间 | | `hcs_risk_time` | datetime | 风险最近查询时间 |
| `kingdee_black_category` | varchar(200) | 金蝶黑名单失信类别(awrp_combofield_title 兜底 awrp_combofield) | | `kingdee_black_category` | varchar(200) | 金蝶黑名单失信类别(awrp_combofield_title 兜底 awrp_combofield) |
| `kingdee_black_reason` | varchar(1000) | 金蝶黑名单列入事由(awrp_textareafield) | | `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 脚本(幂等可重复执行) ### 4.2 脚本(幂等可重复执行)
+2 -2
View File
@@ -47,7 +47,7 @@ CREATE TABLE `blade_customer_archive` (
`kingdee_fail_reason` varchar(500) NULL DEFAULT NULL COMMENT '金蝶推送失败原因', `kingdee_fail_reason` varchar(500) NULL DEFAULT NULL COMMENT '金蝶推送失败原因',
`kingdee_sync_time` datetime 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_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)', `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_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)', `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_customer_archive_name` (`tenant_id`, `full_name`, `short_name`) USING BTREE,
KEY `idx_kingdee_status` (`kingdee_status`) USING BTREE, KEY `idx_kingdee_status` (`kingdee_status`) USING BTREE,
KEY `idx_hcs_risk_level` (`hcs_risk_level`) 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 = '客商档案'; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客商档案';
-- ---------------------------- -- ----------------------------
@@ -13,11 +13,15 @@ PREPARE stmt FROM @ddl;
EXECUTE stmt; EXECUTE stmt;
DEALLOCATE PREPARE stmt; DEALLOCATE PREPARE stmt;
-- ② 列 hcs_black_status -- ② 列 kingdee_black_status(C101-1 黑名单状态;此前误用 hcs_ 前缀,存在旧列时 CHANGE 改名迁移数据)
SET @ddl = (SELECT IF( SET @ddl = (SELECT IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS (SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND COLUMN_NAME = 'hcs_black_status') = 0, WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND COLUMN_NAME = 'kingdee_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`', (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')); 'SELECT 1'));
PREPARE stmt FROM @ddl; PREPARE stmt FROM @ddl;
EXECUTE stmt; EXECUTE stmt;
@@ -27,7 +31,7 @@ DEALLOCATE PREPARE stmt;
SET @ddl = (SELECT IF( SET @ddl = (SELECT IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS (SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND COLUMN_NAME = 'hcs_risk_time') = 0, 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')); 'SELECT 1'));
PREPARE stmt FROM @ddl; PREPARE stmt FROM @ddl;
EXECUTE stmt; EXECUTE stmt;
@@ -43,16 +47,23 @@ PREPARE stmt FROM @ddl;
EXECUTE stmt; EXECUTE stmt;
DEALLOCATE PREPARE stmt; DEALLOCATE PREPARE stmt;
-- ⑤ 索引 idx_hcs_black_status -- ⑤ 索引 idx_kingdee_black_status
SET @ddl = (SELECT IF( SET @ddl = (SELECT IF(
(SELECT COUNT(*) FROM information_schema.STATISTICS (SELECT COUNT(*) FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_customer_archive' AND INDEX_NAME = 'idx_hcs_black_status') = 0, 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_hcs_black_status (hcs_black_status)', 'ALTER TABLE `blade_customer_archive` ADD INDEX idx_kingdee_black_status (kingdee_black_status)',
'SELECT 1')); 'SELECT 1'));
PREPARE stmt FROM @ddl; PREPARE stmt FROM @ddl;
EXECUTE stmt; EXECUTE stmt;
DEALLOCATE PREPARE 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 金蝶黑名单原始字段:失信类别、列入事由,明细文案由后台组装) -- ⑥ 列 hcs_black_category / hcs_black_reason(A801-5 金蝶黑名单原始字段:失信类别、列入事由,明细文案由后台组装)
SET @ddl = (SELECT IF( SET @ddl = (SELECT IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS (SELECT COUNT(*) FROM information_schema.COLUMNS