修复中介库

This commit is contained in:
wkc
2026-04-20 11:24:18 +08:00
parent c278d11390
commit 2b321a8621
31 changed files with 1360 additions and 1466 deletions

View File

@@ -115,7 +115,7 @@ CREATE TABLE IF NOT EXISTS `ccdi_intermediary_enterprise_relation` (
UNIQUE KEY `uk_intermediary_enterprise` (`intermediary_biz_id`, `social_credit_code`),
KEY `idx_intermediary_biz_id` (`intermediary_biz_id`),
KEY `idx_social_credit_code` (`social_credit_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='中介关联机构关系表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='中介关联机构关系表';
```
- [ ] **Step 3: 编写 `person_sub_type` 固定值脚本**
@@ -529,6 +529,20 @@ mvn -pl ccdi-info-collection -am -DskipTests compile
bin/mysql_utf8_exec.sh sql/migration/2026-04-17-create-intermediary-enterprise-relation.sql
```
## 执行结果
- 实际测试命令:`mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiIntermediaryServiceImplTest,CcdiIntermediaryMapperTest,CcdiIntermediaryControllerTest test`
- 测试结果:`BUILD SUCCESS`,共执行 8 个测试,`Failures: 0, Errors: 0, Skipped: 0`
- 实际编译命令:`mvn -pl ccdi-info-collection -am -DskipTests compile`
- 编译结果:`BUILD SUCCESS`
- 实际数据库变更命令:`bin/mysql_utf8_exec.sh sql/migration/2026-04-17-create-intermediary-enterprise-relation.sql`
- 数据库变更结果:`ccdi_intermediary_enterprise_relation` 已创建成功
- 实际全库排序规则修复命令:`bin/mysql_utf8_exec.sh sql/migration/2026-04-17-unify-all-table-collation-to-utf8mb4-general-ci.sql`
- 排序规则修复结果:业务表、系统表的表级与字符字段级排序规则已统一为 `utf8mb4_general_ci`
- 实际运行验证:
- 重新打包命令:`mvn -pl ruoyi-admin -am -DskipTests package`
- 接口验证:`POST /login/test` 获取 token 后,`GET /ccdi/intermediary/list?pageNum=1&pageSize=10` 返回 `code=200`,联合查询不再出现 `Illegal mix of collations`
## 完成标准
- `ccdi_intermediary_enterprise_relation` 表与唯一约束创建完成

View File

@@ -0,0 +1,65 @@
# Docker 环境项目打标卡住后端实施记录
## 背景
- 现象Docker 部署后的后端中,项目打标任务会长时间停留在“打标中”。
- 样本项目:`90337`
- 排查目标:确认任务卡住的真实根因,并按最短路径修复。
## 已定位问题
### 1. 打标规则 SQL 在 MySQL 8 / Docker 环境触发排序规则冲突
- 规则:`LARGE_PURCHASE_TRANSACTION`
- 异常:`Illegal mix of collations (utf8mb4_0900_ai_ci) and (utf8mb4_general_ci)`
- 影响:任务在规则执行阶段直接失败。
### 2. 失败落库时错误信息过长,导致任务状态无法更新
- 表:`ccdi_bank_tag_task`
- 字段:`error_message`
- 异常:`Data too long for column 'error_message'`
- 影响:
- 任务本应更新为 `FAILED`,但更新再次失败
- 项目状态没有从 `打标中` 回退
- 前端看到的就是“打标一直卡住”
## 本次改动范围
- `ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagAnalysisMapper.xml`
-`LARGE_PURCHASE_TRANSACTION` 相关 join 显式补齐统一排序规则。
- `sql/migration/2026-04-20-fix-bank-tag-task-error-message-longtext.sql`
-`ccdi_bank_tag_task` 表统一到 `utf8mb4_general_ci`,并把 `error_message` 调整为 `LONGTEXT`
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiBankTagServiceImpl.java`
- 调整任务失败错误信息拼装逻辑,保留完整根因,不再按 2000 截断。
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiBankTagServiceImplTest.java`
- 新增错误信息裁剪测试。
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagAnalysisMapperXmlTest.java`
- 新增 SQL 排序规则约束测试。
## 验证
- 运行新增测试,先确认失败,再完成修复后确认通过。
- 修复后检查项目 `90337` 的任务状态是否能正确进入失败态或完成态,不再停留在 `RUNNING`
## 实际执行结果
- 已执行数据库脚本:
- `sql/migration/2026-04-20-fix-bank-tag-task-error-message-longtext.sql`
- 已重新打包并重启 Docker 后端容器。
- 已手工复位历史卡死任务:
- `ccdi_bank_tag_task.id = 76`
- 已重新触发项目 `90337` 打标。
- 最新验证结果:
- `ccdi_bank_tag_task.id = 79`
- `status = SUCCESS`
- `success_rule_count = 35`
- `hit_count = 132`
- 项目 `90337` 状态已回到 `1 = 已完成`
## 结论
- “打标卡住”并非任务一直运行,而是:
1. 采购相关规则 SQL 因排序规则冲突失败
2. 失败异常写入 `ccdi_bank_tag_task.error_message` 时又因字段长度不足再次失败
- 本次已按数据库方案改为 `LONGTEXT`,并将采购链路所有相关 join 显式统一为 `utf8mb4_general_ci`

View File

@@ -459,6 +459,15 @@ source ~/.nvm/nvm.sh && nvm use 14.21.3
npm run build:prod
```
## 执行结果
- 实际执行命令:`cd /Users/wkc/Desktop/ccdi/ccdi/ruoyi-ui && source ~/.nvm/nvm.sh && nvm use 14.21.3 && npm run build:prod`
- Node 版本:`v14.21.3`
- 构建结果:`DONE Build complete. The dist directory is ready to be deployed.`
- 备注仅存在既有包体积告警asset size / entrypoint size limit无语法错误和模块解析错误
- 补充修复:中介库首页“查看中介亲属”弹窗已改为只读模式,查看态不再允许编辑或提交
- 补充修复:中介库首页“查看关联机构”弹窗已改为只读模式,查看态不再允许编辑或提交
## 完成标准
- 首页搜索字段调整为名称、证件号、记录类型、关联中介信息