121 Commits

Author SHA1 Message Date
wkc
b022ec75b8 fix(lsfx): 修复流水分析对接模块的代码质量问题
1. 修复配置问题
   - 替换app-secret占位符为正确的密钥dXj6eHRmPv

2. 添加异常处理
   - HttpUtil所有方法添加完整的异常处理
   - 统一使用LsfxApiException包装异常
   - 检查HTTP状态码和响应体

3. 添加日志记录
   - Client所有方法添加详细的日志记录
   - 记录请求参数、响应结果、耗时
   - 异常情况记录错误日志

4. 完善参数校验
   - 接口1:添加6个必填字段校验
   - 接口2:添加groupId和文件校验,限制文件大小10MB
   - 接口3:添加7个参数校验和日期范围校验
   - 接口4:添加groupId和inprogressList校验

5. 性能优化
   - RestTemplate使用Apache HttpClient连接池
   - 最大连接数100,每个路由最大20个连接
   - 支持连接复用,提升性能

6. 代码审查文档
   - 添加详细的代码审查报告
   - 记录发现的问题和改进建议

修改的文件:
- ccdi-lsfx/pom.xml
- ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java
- ccdi-lsfx/src/main/java/com/ruoyi/lsfx/config/RestTemplateConfig.java
- ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java
- ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java
- ruoyi-admin/src/main/resources/application-dev.yml
- doc/implementation/lsfx-code-review-20260302.md
2026-03-03 09:35:27 +08:00
wkc
921c15ffad docs(lsfx): 添加接口更新实施报告 2026-03-02 22:12:07 +08:00
wkc
72bab28b5d refactor(lsfx): Controller删除接口5、6测试接口,更新接口7参数验证 2026-03-02 22:10:10 +08:00
wkc
ac4ebd1d22 refactor(lsfx): Client删除接口5、6方法,更新接口7注释 2026-03-02 22:09:42 +08:00
wkc
b2471c3cc7 refactor(lsfx): 重构接口7 Request/Response,新路径、新参数、完整字段 2026-03-02 22:09:20 +08:00
wkc
fe7f7eafce refactor(lsfx): 重构接口4 Response,添加parsing字段和完整pendingList 2026-03-02 22:08:34 +08:00
wkc
731f078348 refactor(lsfx): 重构接口3 Request/Response,修正参数名和字段结构 2026-03-02 22:08:11 +08:00
wkc
b89584a3dc refactor(lsfx): 重构接口2 Response,添加完整字段(accountsOfLog、uploadLogList) 2026-03-02 22:04:57 +08:00
wkc
c272ee79d8 refactor(lsfx): 删除接口5(生成报告)和接口6(检查报告状态)的DTO类 2026-03-02 22:04:18 +08:00
wkc
27b58d20d1 config(lsfx): 删除接口5、6配置,更新接口7路径 2026-03-02 22:03:56 +08:00
wkc
d122e52c82 fix: 使用配置中的endpoint路径替代硬编码路径 2026-03-02 10:48:01 +08:00
wkc
c1099ddce7 fix: 明确指定Spring Resource完整类名 2026-03-02 10:18:09 +08:00
wkc
f21da8b1e9 fix: 统一使用jakarta.annotation.Resource 2026-03-02 10:17:24 +08:00
wkc
7cc0dd30f1 fix: 修复Resource导入冲突和postJson方法调用 2026-03-02 10:16:30 +08:00
wkc
6d101a018f fix: 添加ccdi-lsfx依赖版本号 2026-03-02 10:14:49 +08:00
wkc
3039300518 feat: 添加流水分析测试控制器 2026-03-02 10:14:09 +08:00
wkc
049b6dcbd5 feat: 完善流水分析客户端(接口4-7) 2026-03-02 10:13:31 +08:00
wkc
e9d6b0245a feat: 添加流水分析客户端(接口1-3) 2026-03-02 10:05:38 +08:00
wkc
97927b40eb feat: 添加其他接口的DTO对象 2026-03-02 10:04:16 +08:00
wkc
aeab0d83ae feat: 添加获取Token响应DTO 2026-03-02 10:02:58 +08:00
wkc
d2645a9cbb feat: 添加获取Token请求DTO 2026-03-02 09:59:46 +08:00
wkc
51f5bc58c7 feat: 添加流水分析API异常类 2026-03-02 09:59:28 +08:00
wkc
a6b36241aa feat: 添加HTTP请求工具类 2026-03-02 09:59:10 +08:00
wkc
2a9bb7f2b6 feat: 添加MD5加密工具类 2026-03-02 09:57:48 +08:00
wkc
0c20a18a9a feat: 添加流水分析常量类 2026-03-02 09:57:26 +08:00
wkc
04afa03d0d feat: 添加RestTemplate配置类 2026-03-02 09:57:14 +08:00
wkc
d20ba860ba config: 添加流水分析平台配置 2026-03-02 09:54:32 +08:00
wkc
51918d25e9 feat: 创建ccdi-lsfx模块基础结构 2026-03-02 09:53:53 +08:00
wkc
8a75a34242 chore: 添加ccdi-lsfx模块依赖 2026-03-02 09:53:21 +08:00
wkc
a32af2fc37 docs: 添加流水分析对接文档和数据库迁移计划 2026-03-02 09:52:28 +08:00
wkc
4d94a3cd9d docs: 添加流水分析平台对接实施计划 2026-03-02 09:43:32 +08:00
wkc
9f70795911 docs: 添加流水分析平台对接设计文档
- 定义ccdi-lsfx模块架构
- 设计7个接口的调用封装
- 采用RestTemplate + HttpUtil技术方案
- 包含完整配置、工具类、Client和测试Controller设计
2026-03-02 09:40:10 +08:00
wkc
46dd386919 refactor: 将数据库配置内置到脚本中,简化使用流程
改进内容:
1. export_database.sh
   - 将数据库配置直接内置在脚本顶部
   - 移除外部配置文件依赖
   - 配置项: DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME

2. import_database.sh
   - 将三个环境的配置内置在脚本顶部
   - 配置项: DEV_DB_*, TEST_DB_*, PROD_DB_*
   - 无需额外配置文件

3. 更新操作指南
   - 反映配置内置的变化
   - 更新配置步骤说明
   - 更新文件结构说明

优点:
- 使用更简单,无需创建配置文件
- 配置集中在一处,易于管理
- 减少文件依赖

使用方法:
1. 编辑 export_database.sh 顶部配置数据库信息
2. 编辑 import_database.sh 顶部配置目标环境数据库信息
3. ./export_database.sh  # 导出数据库
4. ./import_database.sh <dev|test|prod>  # 导入到目标环境
2026-02-28 15:25:42 +08:00
wkc
79f00f30d8 refactor: 分离数据库导出和导入脚本,优化文件结构
改进内容:
1. 创建独立的 import_database.sh 导入脚本
   - 从 doc/database/backup/ 读取 SQL 文件
   - 支持导入到 dev/test/prod 环境
   - 自动验证导入结果

2. 简化 export_database.sh 导出脚本
   - 只负责导出数据库到 backup 文件夹
   - 移除导入功能,职责单一
   - 添加后续操作提示

3. 优化文件结构
   - backup 文件夹只保留 SQL 备份文件
   - 配置文件和脚本统一放在根目录
   - 移动操作指南到 doc/database/ 目录

4. 更新操作指南
   - 详细说明两个脚本的用法
   - 完整的迁移流程示例
   - 常见问题解答

文件变更:
- 新增: import_database.sh (独立导入脚本)
- 修改: export_database.sh (简化为导出专用)
- 移动: export_guide.md -> doc/database/数据库迁移操作指南.md
- 删除: doc/database/backup/ 中的非 SQL 文件

使用方法:
- 导出: ./export_database.sh
- 导入: ./import_database.sh <dev|test|prod>
2026-02-28 15:18:01 +08:00
wkc
4d4076227f fix: 修改数据库字段排序规则为utf8mb4_general_ci
问题描述:
- 表结构文件中出现utf8mb4_unicode_ci排序规则配置
- 影响3个表、45个字段

解决方案:
- 将所有字段的排序规则从utf8mb4_unicode_ci修改为utf8mb4_general_ci
- 使用utf8mb4_general_ci作为MySQL推荐的默认排序规则
- 重新导出数据库更新表结构文件

修改的表:
1. ccdi_base_staff (5个字段)
2. ccdi_biz_intermediary (20个字段)
3. ccdi_enterprise_base_info (20个字段)

验证结果:
- 表结构文件中不再包含utf8mb4_unicode_ci配置
- 所有字段统一使用utf8mb4_general_ci排序规则
2026-02-28 14:40:05 +08:00
wkc
690c2aa267 feat: 完成数据库迁移自动化工具
实现功能:
- 创建自动化导出脚本 export_database.sh
- 支持表结构和数据分离导出
- 添加 utf8mb4 字符集支持避免乱码
- 支持导入到生产和测试环境
- 创建配置文件模板和安全措施
- 添加详细的操作指南文档

文件说明:
- db_config.conf.template: 配置文件模板
- export_database.sh: 自动化迁移脚本
- doc/database/backup/export_guide.md: 操作指南
- doc/database/backup/ccdi_structure.sql: 表结构(42个表)
- doc/database/backup/ccdi_data.sql: 数据文件(5.7MB)

使用方法:
1. cp db_config.conf.template db_config.conf
2. 编辑 db_config.conf 填写数据库信息
3. ./export_database.sh export  # 导出数据库
4. ./export_database.sh import test  # 导入到测试环境
5. ./export_database.sh import prod  # 导入到生产环境
2026-02-28 14:28:40 +08:00
wkc
aa34361bf3 调整列表高度 2026-02-28 13:36:22 +08:00
wkc
2190d2f2d1 中介库导入bug 2026-02-28 11:21:28 +08:00
wkc
e388da627e fix: 添加表格透明背景,修复表头白色背景问题 2026-02-28 11:02:48 +08:00
wkc
897b5a39f0 docs: 添加项目列表页面UI优化测试报告模板 2026-02-28 11:00:01 +08:00
wkc
f9cf7e9f86 refactor: 移除表格卡片背景,实现扁平化设计 2026-02-28 10:56:35 +08:00
wkc
bcabc2a240 feat: 添加独立搜索按钮,移除输入框内搜索图标 2026-02-28 10:54:02 +08:00
wkc
fa28351ac2 refactor: 移除页面标题的卡片式样式 2026-02-28 10:45:16 +08:00
wkc
9b5f4d6a41 docs: 添加项目列表页面UI优化实施计划
- Task 1: 修改页面标题样式
- Task 2: 修改搜索区域结构和样式
- Task 3: 启动前端服务进行测试
- Task 4: 创建测试报告
- Task 5: 推送代码到远程仓库
2026-02-28 10:42:35 +08:00
wkc
ef4cdb26d1 docs: 添加项目列表页面UI优化设计文档
- 简化页面标题样式,移除卡片背景
- 优化搜索区域,添加独立搜索按钮
- 保持表格表头现有样式
2026-02-28 10:40:35 +08:00
wkc
e17f0bf42a docs: 更新项目状态统计修复设计文档状态为已完成
- 文档状态更新为"已完成"
- 所有验收标准已勾选完成
- 功能验收:后端接口、前端显示、搜索/分页/过滤不影响统计
- 性能验收:响应时间<100ms,页面加载正常
- 代码质量:符合项目规范,添加必要注释
2026-02-28 09:53:47 +08:00
wkc
ed45239b46 fix: 改善错误处理和数据校验 2026-02-28 09:44:44 +08:00
wkc
628ca483e7 refactor: 使用后端统计接口替换前端计算 2026-02-28 09:35:58 +08:00
wkc
6c33e68fcf feat: 前端 API 添加状态统计方法 2026-02-28 09:24:52 +08:00
wkc
6dccf48160 feat: 添加项目状态统计接口 2026-02-28 09:06:01 +08:00
wkc
9423184d37 feat: 实现项目状态统计方法
- 添加 getStatusCounts() 方法实现
- 使用 MyBatis Plus selectCount 统计各状态项目数量
- 统计全部项目、进行中(0)、已完成(1)、已归档(2)的项目数量
2026-02-28 08:53:02 +08:00
wkc
f7bf5ee62d feat: Service 接口添加状态统计方法声明 2026-02-27 17:33:27 +08:00
wkc
5220813624 feat: 添加项目状态统计 VO 类 2026-02-27 17:25:20 +08:00
wkc
083693c7e8 docs: 添加项目状态统计修复实施计划 2026-02-27 17:22:22 +08:00
wkc
e532d4d915 docs: 添加项目状态统计修复设计文档 2026-02-27 17:19:58 +08:00
wkc
117ab924d5 fix: 修复分页 loading 效果,使用 v-loading 指令替代 :loading 属性 2026-02-27 16:57:34 +08:00
wkc
03554cf953 refactor: 移除无用的 getStatusType 方法 2026-02-27 16:52:57 +08:00
wkc
ca010277b4 style: 项目管理状态标签改为简约 GitHub 风格 2026-02-27 16:47:48 +08:00
wkc
d700b504a6 fix: 移除重复的 prefix-icon,只保留可点击的 suffix 搜索图标 2026-02-27 16:45:42 +08:00
wkc
5ff9e7a637 feat: 项目管理搜索框添加搜索图标按钮 2026-02-27 16:39:13 +08:00
wkc
b78427a7e8 docs: 添加项目管理页面交互改进实施计划 2026-02-27 16:35:20 +08:00
wkc
beaf4a5d66 docs: 添加项目管理页面交互改进设计文档
- 搜索框添加搜索图标按钮
- 状态标签改为 GitHub 风格简约样式
- 分页切换添加 loading 效果验证
2026-02-27 16:33:23 +08:00
wkc
2ecb66c4c9 docs: 添加项目管理页面改进设计文档
- 搜索框添加内嵌搜索按钮
- 标签页状态计数改为后端统计接口
- 状态标签改为简约小圆点样式
2026-02-27 15:25:56 +08:00
wkc
7c1dfaf120 fix: 添加 updateTime 字段到项目 VO 类 2026-02-27 14:38:03 +08:00
wkc
66a81af2a0 feat: 项目列表按更新时间倒序排列 2026-02-27 14:36:07 +08:00
wkc
d77ba7011c fix: 修复分页功能未生效问题,移除前端排序参数 2026-02-27 14:32:35 +08:00
wkc
daf00281cd feat: 项目列表按更新时间倒序排列 2026-02-27 14:30:17 +08:00
wkc
8c0e193fca style: 优化表格列宽度,确保内容完整显示 2026-02-27 14:28:36 +08:00
wkc
9e894305fb docs: 添加项目管理页面重构验证报告 2026-02-27 14:21:19 +08:00
wkc
d78858274b style: 调整页面背景色为浅灰色,统一卡片样式
- 修改页面背景色为 #F8F9FA
- 增加页面内边距为 24px
2026-02-27 14:17:14 +08:00
wkc
4119a2e4a8 feat: 调整项目列表表格列顺序,匹配原型图
- 调整列顺序为:项目名称、更新/创建时间、创建人、状态、目标人数、预警人数、操作
- 将"项目状态"列改名为"状态"
- 将"创建时间"改为显示"更新/创建时间",优先显示更新时间
2026-02-27 14:17:14 +08:00
wkc
f432870d17 feat: 重写快捷方式组件,使用圆形图标 2026-02-27 14:15:25 +08:00
wkc
0e95d9d2b1 feat: 添加标签页数量统计功能,适配新的 SearchBar 2026-02-27 14:11:35 +08:00
wkc
dfb200f86d fix: 修复 SearchBar 状态值映射,使用后端一致的状态码 2026-02-27 14:10:41 +08:00
wkc
0554cb5df1 feat: 重写搜索栏组件,添加标签页筛选功能 2026-02-27 14:05:05 +08:00
wkc
b03c9c4efe feat: 简化项目管理页面标题,移除副标题 2026-02-27 13:59:54 +08:00
wkc
a32e20785f chore: 添加备份文件到 gitignore 并从版本控制中移除
- 在 ruoyi-ui/.gitignore 中添加 *.backup 和 *.bak 规则
- 从版本控制中移除 QuickEntry.vue.backup
- 从版本控制中移除 SearchBar.vue.backup
- 从版本控制中移除 index.vue.backup
2026-02-27 13:57:12 +08:00
wkc
159ab8a4e8 chore: 备份项目管理页面相关组件 2026-02-27 13:52:34 +08:00
wkc
6311f7975b docs: 添加项目管理页面重构详细实施计划
- 10个详细任务,包含完整代码和验证步骤
- 遵循 TDD、DRY、YAGNI 原则
- 包含验收标准和注意事项
2026-02-27 13:49:40 +08:00
wkc
782bc06176 docs: 添加项目管理页面重构设计方案
- 100%匹配原型图设计规范
- 简化页面标题,优化布局
- 标签页筛选(包含已归档选项)
- 快捷方式组件(圆形图标)
- 完整的数据流和交互逻辑设计
2026-02-27 13:46:20 +08:00
wkc
9025bc13b8 fix: 修复 Vue 2 不支持 :deep() 语法的致命问题
- 将所有 :deep() 改为 ::v-deep(Vue 2 正确语法)
- 移除测试用的红色边框
- 修复 Material Design 样式完全未生效的问题
2026-02-27 11:09:33 +08:00
wkc
ed0509b1e7 fix: 修复 Material Design 样式未生效问题
- 移除 el-table 的 border 属性
- 增强 CSS 选择器优先级
- 添加 !important 覆盖 Element UI 默认样式
- 移除所有单元格边框
- 添加 overflow: hidden 确保圆角效果
2026-02-27 11:03:37 +08:00
wkc
0e1c247f0e style: Material Design - 扁平化分页组件 2026-02-27 10:52:38 +08:00
wkc
bdc5463b6d style: Material Design - 操作按钮添加悬停背景 2026-02-27 10:52:17 +08:00
wkc
d47c0ad6a8 style: Material Design - 移除行分隔线,增加留白 2026-02-27 10:49:54 +08:00
wkc
0964289f2d style: Material Design - 扁平化表头,移除背景色 2026-02-27 10:49:07 +08:00
wkc
e86150f84d style: Material Design - 表格容器添加阴影和圆角 2026-02-27 10:43:35 +08:00
wkc
a062c7d715 docs: 添加 Material Design 表格样式优化实现计划 2026-02-27 10:41:12 +08:00
wkc
bfd6a4c89b docs: 添加 Material Design 表格样式优化设计文档 2026-02-27 10:38:36 +08:00
wkc
6562d0058b docs: 添加项目管理首页优化最终验收报告 2026-02-27 10:18:31 +08:00
wkc
4e503ef7b2 feat: 完成项目管理首页优化
- 移除不需要的 @detail 事件监听器
- 移除不再使用的 handleDetail 方法
- 清理代码,保持事件监听器的简洁性

相关任务:Task 5 - 更新 index.vue 并全面测试
2026-02-27 10:08:49 +08:00
wkc
5ede05913e style: 优化表格样式,匹配参考设计 2026-02-27 09:57:22 +08:00
wkc
46f6d912a7 feat: 操作按钮根据项目状态条件渲染 2026-02-27 09:51:57 +08:00
wkc
fa0a27f5ac feat: 项目状态列宽度调整为 160px
- 将状态列宽度从 100px 调整为 160px
- 确保状态标签(包含图标和文字)有足够的显示空间
- 提升视觉体验,避免内容换行或被截断
2026-02-27 09:45:51 +08:00
wkc
7a36860021 feat: SearchBar 组件添加重置按钮并优化布局 2026-02-27 09:38:27 +08:00
wkc
29dfe67007 docs: 添加项目管理首页优化实现计划 2026-02-27 09:35:00 +08:00
wkc
982b82e95b docs: 添加项目管理首页优化设计文档
- 搜索栏添加重置按钮并优化布局
- 状态列宽度调整为 160px 并添加图标
- 操作按钮根据项目状态条件显示
- 表格样式优化以匹配参考设计
2026-02-27 09:32:30 +08:00
wkc
474dcab396 fix: 移除项目查询中的 del_flag 条件
- 从 CcdiProjectMapper.xml 中移除 p.del_flag = '0' 条件
- 保留 sys_user 表的 del_flag 过滤(用户逻辑删除)
- 修复前端查询错误
2026-02-27 09:00:56 +08:00
wkc
76102f032b refactor: 将项目代码从 ccdi-info-collection 迁移到 ccdi-project 模块
- 将 CcdiProject 相关代码移动到 ccdi-project 模块
- 修复 CcdiModelParam 审计字段注解
- 更新所有 package 声明和 import 语句
- 更新 Mapper XML namespace
- 通过代码审查
2026-02-27 08:44:31 +08:00
wkc
b8f798ee5d feat: 项目分页查询关联sys_user表返回创建人真实姓名
- VO 添加 createByName 字段
- Mapper XML 添加 LEFT JOIN sys_user 查询
- 使用 IFNULL 处理空值降级
- 添加逻辑删除过滤条件
- 通过代码审查
2026-02-26 17:15:14 +08:00
wkc
324c978584 feat: 创建项目功能后端实现
- 创建 ccdi_project 表及相关字典和权限
- 添加逻辑删除和归档字段
- 实现实体类、DTO、VO、Mapper、Service、Controller
- 优化字段命名和长度
- 添加完整的校验注解和 Swagger 文档
- 通过代码审查
2026-02-26 17:04:45 +08:00
wkc
422df06095 docs: 添加前后端分离的实施计划文档 2026-02-26 16:38:09 +08:00
wkc
e82060a8c8 docs: 添加创建项目功能设计文档 2026-02-26 16:31:24 +08:00
wkc
2531c69d29 docs: 添加模型参数阈值更新接口优化设计文档 2026-02-26 11:10:15 +08:00
wkc
dd29c5918b refactor: 简化模型参数保存请求参数
- 移除 modelName 字段
- params 数组只保留 paramCode 和 paramValue
- 减少网络传输数据量
2026-02-26 11:10:09 +08:00
wkc
22d1852fd2 refactor: 简化 ModelParamSaveDTO,移除冗余字段
- 移除外层 modelName 字段
- 将 ParamItem 重命名为 ParamValueItem
- 内部类只保留 paramCode 和 paramValue 字段
- 同步更新 Service 层类型引用
2026-02-26 11:09:56 +08:00
wkc
621579f39f refactor: 重命名 ruoyi-info-collection 模块为 ccdi-info-collection
- 重命名模块目录 ruoyi-info-collection -> ccdi-info-collection
- 更新所有 pom.xml 中的模块引用
- 更新 IDEA 配置文件 (compiler.xml, encodings.xml)
- Java 包名保持不变 (com.ruoyi.info.collection)
- 编译测试通过
2026-02-26 10:43:10 +08:00
wkc
e497d8e62f 更新java版本 2026-02-26 10:39:12 +08:00
wkc
b23820e873 参数配置 2026-02-26 10:38:23 +08:00
wkc
7ca532da8f Merge branch 'feature/model-param-config' into dev 2026-02-26 10:31:58 +08:00
wkc
872bc3260c feat: 完成模型参数配置功能开发
- 添加 Controller、Mapper、Service 层代码
- 添加前端 API 和页面组件
- 添加后端功能测试报告
2026-02-26 10:31:51 +08:00
wkc
b29e7d8634 Merge branch 'feature/model-param-config' into dev 2026-02-26 10:27:51 +08:00
wkc
367a3da5cb feat: 添加模型参数配置菜单SQL脚本
- 添加模型参数配置主菜单(菜单ID: 2082)
- 添加模型参数查询按钮权限(菜单ID: 2083)
- 添加模型参数保存按钮权限(菜单ID: 2084)
- 父菜单: 信息维护(菜单ID: 2000)
2026-02-26 10:21:17 +08:00
wkc
555bf95abe fix: 修正任务1 - 严格按照规格文档重新实施数据库设计与实体类
## 修正内容

### 1. 数据库表结构修正
- 添加字段: project_id, param_desc
- 删除字段: param_type, min_value, max_value, description, status
- 修正唯一索引: uk_project_model_param (project_id, model_code, param_code)
- 添加普通索引: idx_project_id, idx_model_code

### 2. 初始化数据修正
- 删除错误模型: ASSET_CHANGE, RISK_SCORE, RELATED_TRANSACTION
- 添加正确模型:
  * 大额交易模型 (LARGE_TRANSACTION) - 6个参数
  * 可疑兼职模型 (SUSPICIOUS_PART_TIME) - 3个参数
  * 可疑外汇交易模型 (SUSPICIOUS_FOREIGN_EXCHANGE) - 6个参数
- 共15条参数配置,project_id=0(系统默认参数)

### 3. Entity类修正 (CcdiModelParam.java)
- 添加: projectId, paramDesc
- 删除: paramType, minValue, maxValue, description, status
- 删除: Serializable接口,serialVersionUID
- 简化注释风格

### 4. DTO类修正
**ModelParamQueryDTO:**
- 只保留: projectId, modelCode
- 添加@NotBlank验证

**ModelParamSaveDTO:**
- 改为批量保存结构
- 包含: projectId, modelCode, modelName, params(List)
- 内部类ParamItem包含参数明细
- 只允许修改paramValue字段

### 5. VO类修正
**ModelParamVO:**
- 只保留核心展示字段: id, modelCode, modelName, paramCode, paramName, paramDesc, paramValue, paramUnit, sortOrder
- 删除审计字段

**ModelListVO:**
- 只保留: modelCode, modelName
- 删除paramCount字段

## 验证结果
 数据库表创建成功
 15条初始化数据插入成功
 项目编译通过 (mvn clean compile)
 严格符合规格文档要求
2026-02-26 09:31:44 +08:00
wkc
aa1fdf5e9e feat: 添加模型参数配置功能 - 数据库设计与后端实体类
1. 创建ccdi-project Maven模块
   - 新建模块并配置pom.xml依赖
   - 添加到根pom.xml的modules列表
   - 在ruoyi-admin中添加模块依赖

2. 创建数据库表和初始化数据
   - 建表语句: ccdi_model_param表
   - 3个风险监测模型共15条参数配置
   - 资产异常变动模型(5个参数)
   - 廉政风险评分模型(5个参数)
   - 关联交易监测模型(5个参数)

3. 创建后端实体类和DTO/VO
   - 实体类: CcdiModelParam.java
   - 查询DTO: ModelParamQueryDTO.java
   - 保存DTO: ModelParamSaveDTO.java (含验证注解)
   - 参数VO: ModelParamVO.java
   - 模型列表VO: ModelListVO.java

技术要点:
- 使用@Data注解简化代码
- 不继承BaseEntity,独立定义审计字段
- DTO添加@NotBlank/@NotNull验证注解
- 包名遵循规范: com.ruoyi.ccdi.project
- 项目编译通过: mvn clean compile
2026-02-26 09:23:34 +08:00
wkc
c920577d45 chore: add .gitignore with worktrees exclusion 2026-02-26 09:13:41 +08:00
wkc
5d13f7cd01 参数配置 2026-02-25 16:56:04 +08:00
wkc
1437989d5b style: 使用 import 导入替代全限定类名
将代码中的全限定类名改为使用 import 语句导入,提升代码可读性
2026-02-25 06:34:22 +08:00
wkc
859d52bf96 fix: 修复遗漏的全限定类名引用
将 4 处使用旧包名的全限定类名更新为新包名 com.ruoyi.info.collection
2026-02-24 17:25:58 +08:00
wkc
1cd87d2695 refactor: 重命名 ruoyi-ccdi 模块为 ruoyi-info-collection
- Maven 模块从 ruoyi-ccdi 重命名为 ruoyi-info-collection
- Java 包名从 com.ruoyi.ccdi 改为 com.ruoyi.info.collection
- MyBatis XML 命名空间同步更新
- 保留数据库表名、API URL、权限标识中的 ccdi 前缀
- 更新项目文档中的模块引用
2026-02-24 17:12:11 +08:00
wkc
b126b43e2c 添加nas部署配置
优化md
2026-02-24 16:10:27 +08:00
337 changed files with 32061 additions and 6228 deletions

View File

@@ -108,7 +108,11 @@
"Skill(mcp-mysql-correct-db)", "Skill(mcp-mysql-correct-db)",
"Bash(git diff:*)", "Bash(git diff:*)",
"Bash(git pull:*)", "Bash(git pull:*)",
"Bash(git merge:*)" "Bash(git merge:*)",
"mcp__chrome-devtools-mcp__take_snapshot",
"mcp__chrome-devtools-mcp__fill",
"mcp__chrome-devtools-mcp__click",
"mcp__chrome-devtools-mcp__take_screenshot"
] ]
}, },
"enabledMcpjsonServers": [ "enabledMcpjsonServers": [

4
.gitignore vendored
View File

@@ -56,3 +56,7 @@ test/
###################################################################### ######################################################################
# Excel Temporary Files # Excel Temporary Files
doc/test-data/**/~$* doc/test-data/**/~$*
######################################################################
# Database Configuration
db_config.conf

715
CLAUDE.md
View File

@@ -1,327 +1,528 @@
# CLAUDE.md # CLAUDE.md
## 分析
- 在进行需求分析类型的任务时,自动开启深度思考模式,输入 “think more”、“think a lot”、“think harder” 或 “think longer” 触发更深层的思考
- 在进行需求分析与分解任务时,按照不同的模块分为不同的文件,创建模块名的文件夹并将对应文件保存在文件夹中,然后对模块的功能文件进行继续分解
- 在使用/openspec:proposal时自动开启深度思考模式输入 “think more”、“think a lot”、“think harder” 或 “think longer” 触发更深层的思考
- 在执行/openspec:apply后使用code-simplifier 进行代码精简
- 在分析生成需求文档时每次都需要在doc目录下新建文件夹并以需求内容为命名
## Communication
- 永远使用简体中文进行思考和对话
## Documentation
- 编写 .md 文档时,也要用中文
- 所有生成的文档都放在项目根目录下的doc文件中。
## 数据库规范
- 新建表时,需要加上项目英文名首字母集合
## Coding
### Java Code Style
- 新建模块命名方式为项目英文名首字母集合+主要功能
- 新的功能代码与若依框架自带的代码分离新建模块controller层也要放在新建模块中
- 使用 `@Data` 注解保证代码的简洁
- 尽量使用 MyBatis Plus 进行 CRUD 操作(版本 3.5.10Spring Boot 3 适配版)
- 服务层中的使用@Resource注释,替代@Autowired
- 实体类不继承BaseEntity单独添加审计字段
- 完成后端代码controller层代码生成测试后在项目文件目录下生成API文档
- 接口传参需要使用单独的DTO不可以与entity混用
- 需要单独的VO类不可以与entity混用
- 审计字段通过添加注释的方式实现自动插入
- 简单的crud操作通过mybatis plus的方法实现复杂的操作通过xml中写sql和mapper映射实现
- 控制层所有接口需要正确的添加注释确保在swagger-ui中正确展示。控制层中任何接口发生变动及时同步到doc中的接口文档中
- 控制层分页接口使用mybatis plus page不要使用若依框架的分页
### 前端代码
- 在添加页面和组件后,注意与数据库中菜单表进行联动修改
- 前端组件代码需要组件化,复杂的组件需要进行拆分为单独的文件
## 运行
- 使用mcp:ccdi_intermediary_blacklist进行数据库相关操作
- 不要在命令行中启动后端进行测试
- 测试方式为生成可执行的测试脚本
- 测试脚本在运行完成后需要保存所有接口输出并生成测试用例报告
- /login/test接口可以传入username和password获取token用于测试验证接口的功能。
用于测试的账号username: admin password admin123
- swagger-ui的地址为/swagger-ui/index.html
- 在向doc文件夹添加文件时需要分门别类添加根据
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview ## 快速参考
This is a **discipline preliminary check system** built on the **RuoYi (若依) v3.9.1** rapid development framework. It is an enterprise-grade management system using a front-end/back-end separated architecture. **启动项目:**
- 后端: `mvn spring-boot:run` 或运行 `ry.bat`
- 前端: `cd ruoyi-ui && npm run dev`
### Technology Stack **访问地址:**
- 前端: http://localhost:80
- 后端: http://localhost:8080
- Swagger: http://localhost:8080/swagger-ui/index.html
- Druid 监控: http://localhost:8080/druid/ (ruoyi/123456)
**Backend:** **测试账号:**
- Spring Boot 3.5.8 - 用户名: `admin`
- Spring Security + JWT (authentication) - 密码: `admin123`
- MyBatis 3.0.5 (ORM)
- MySQL 8.2.0
- Redis (caching)
- Quartz 2.5.2 (scheduled tasks)
- SpringDoc 2.8.14 (API documentation)
- Java 17
**Frontend:**
- Vue 2.6.12
- Element UI 2.15.14
- Vuex 3.6.0 (state management)
- Vue Router 3.4.9
- Axios 0.28.1
## Common Commands
### Backend (Maven)
**获取 Token:**
```bash ```bash
# Compile the project POST http://localhost:8080/login/test?username=admin&password=admin123
mvn clean compile
# Run the application (development)
mvn spring-boot:run
# Package for deployment
mvn clean package
# Run using startup scripts
./ry.bat # Windows
./ry.sh start # Linux/Mac
``` ```
### Frontend (npm) ---
## 项目概述
**纪检初核系统** - 基于 **若依管理系统 v3.9.1** 构建的企业级前后端分离管理系统,用于员工异常行为风险识别。
### 技术栈版本
| 后端技术 | 版本 | 前端技术 | 版本 |
|-----------------------------|--------|------------|---------|
| Spring Boot | 3.5.8 | Vue.js | 2.6.12 |
| Java | 17 | Element UI | 2.15.14 |
| MyBatis Spring Boot Starter | 3.0.5 | Vuex | 3.6.0 |
| MySQL Connector | 8.2.0 | Vue Router | 3.4.9 |
| SpringDoc OpenAPI | 2.8.14 | Axios | 0.28.1 |
| EasyExcel | 3.3.4 | ECharts | 5.4.0 |
| Quartz | 2.5.2 | Sass | 1.32.13 |
---
## 常用命令
### 后端 (Maven)
```bash
# 编译项目
mvn clean compile
# 运行应用 (开发环境)
mvn spring-boot:run
# 打包部署
mvn clean package
# Windows 启动
ry.bat
# Linux/Mac 启动
./ry.sh start
```
### 前端 (npm)
```bash ```bash
cd ruoyi-ui cd ruoyi-ui
# Install dependencies # 安装依赖 (推荐使用国内镜像)
npm install npm install --registry=https://registry.npmmirror.com
# Development server (runs on port 80 by default) # 开发服务器 (端口 80)
npm run dev npm run dev
# Production build # 生产构建
npm run build:prod npm run build:prod
# Staging build # 预览生产构建
npm run build:stage
# Preview production build
npm run preview npm run preview
``` ```
### Database Initialization ### 数据库初始化
```bash ```bash
# Main database schema # 初始化若依框架基础表
mysql -u root -p < sql/ry_20250522.sql mysql -u root -p < sql/ry_20250522.sql
# Quartz scheduler tables # 初始化定时任务表
mysql -u root -p < sql/quartz.sql mysql -u root -p < sql/quartz.sql
# 导入业务表(根据需要执行)
mysql -u root -p ccdi < sql/dpc_employee.sql
mysql -u root -p ccdi < sql/dpc_intermediary_blacklist.sql
# ... 其他业务表脚本
``` ```
## Project Architecture **注意:**
- 业务表脚本文件名以 `ccdi_``dpc_` 开头
- 部分脚本包含菜单数据,需要按顺序执行
- 数据库需要先创建(数据库名: `ccdi`
### Module Structure ---
## 模块架构
``` ```
discipline-prelim-check/ ccdi/
├── ruoyi-admin/ # Main application entry point ├── ruoyi-admin/ # 主应用入口 (Spring Boot 启动类)
├── ruoyi-framework/ # Core framework (Security, config, filters) ├── ruoyi-framework/ # 核心框架 (Security, Config, Filters)
├── ruoyi-system/ # System management (Users, Roles, Menus, Depts) ├── ruoyi-system/ # 系统管理 (Users, Roles, Menus, Depts)
├── ruoyi-common/ # Common utilities (annotations, utils, constants) ├── ruoyi-common/ # 通用工具 (annotations, utils, constants)
├── ruoyi-quartz/ # Scheduled task management ├── ruoyi-quartz/ # 定时任务
├── ruoyi-generator/ # Code generator (CRUD scaffolding) ├── ruoyi-generator/ # 代码生成器
├── ruoyi-ui/ # Frontend Vue application ├── ruoyi-info-collection/ # 【核心业务模块】信息采集
├── sql/ # Database scripts ├── ruoyi-ui/ # 前端 Vue 应用
├── bin/ # Startup scripts ├── sql/ # 数据库脚本
── openspec/ # OpenSpec specification workflow ── bin/ # 启动脚本
└── doc/ # 项目文档
``` ```
### Backend Architecture: MVC + Modular Design ### 模块依赖关系
The backend follows a standard MVC pattern with modular separation:
``` ```
Controller Layer (ruoyi-admin/web/controller/) ruoyi-admin (启动模块)
├── common/ # Common controllers (captcha, file upload) ├── ruoyi-framework (核心安全配置)
├── monitor/ # Monitoring controllers (cache, server, logs) ├── ruoyi-system (系统核心业务)
├── system/ # System management (users, roles, menus) ├── ruoyi-common (共享工具)
└── tool/ # Tools (code generator, swagger) ├── ruoyi-quartz (定时任务)
├── ruoyi-generator (代码生成)
Service Layer (ruoyi-system/service/) └── ruoyi-info-collection (信息采集模块)
├── ISysUserService.java └── 依赖 ruoyi-common
├── ISysRoleService.java
└── ...
Mapper Layer (ruoyi-system/mapper/)
├── SysUserMapper.java
├── SysRoleMapper.java
└── ...
Domain Layer (ruoyi-system/domain/)
├── SysUser.java # Entity
├── vo/ # Value objects
└── ...
``` ```
### Frontend Architecture: Vue SPA **添加新业务模块:**
1. 在根目录 `pom.xml``<modules>` 中添加新模块
2. 在新模块的 `pom.xml` 中添加对 `ruoyi-common` 的依赖
3.`ruoyi-admin/pom.xml` 中添加对新模块的依赖
4. 在新模块中按照分层规范创建 controller/service/mapper/domain 包
### ruoyi-info-collection 业务模块 (核心)
自定义业务模块,包含以下核心功能:
| 功能 | Controller | 实体类 |
|----------|---------------------------------------|-----------------------------|
| 员工基础信息 | CcdiBaseStaffController | CcdiBaseStaff |
| 中介黑名单 | CcdiIntermediaryController | CcdiBizIntermediary |
| 员工家庭关系 | CcdiStaffFmyRelationController | CcdiStaffFmyRelation |
| 员工企业关系 | CcdiStaffEnterpriseRelationController | CcdiStaffEnterpriseRelation |
| 信贷客户家庭关系 | CcdiCustFmyRelationController | CcdiCustFmyRelation |
| 信贷客户企业关系 | CcdiCustEnterpriseRelationController | CcdiCustEnterpriseRelation |
| 员工调动记录 | CcdiStaffTransferController | CcdiStaffTransfer |
| 员工招聘记录 | CcdiStaffRecruitmentController | CcdiStaffRecruitment |
| 采购交易 | CcdiPurchaseTransactionController | CcdiPurchaseTransaction |
**分层结构:**
- Controller: `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/controller/`
- Service: `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/service/`
- Mapper: `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/mapper/`
- Domain: `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/domain/`
- dto/: 数据传输对象
- vo/: 视图对象
- excel/: Excel导入导出实体
- XML映射: `ruoyi-info-collection/src/main/resources/mapper/info/collection/`
---
## 后端开发规范
### 通用规范
- **新模块命名**: 项目英文名首字母集合 + 主要功能 (如 `ruoyi-info-collection`)
- **代码分离**: 新功能代码与若依框架自带代码分离Controller 放在新模块中
- **审计字段**: 实体类不继承 BaseEntity单独添加审计字段通过注释实现自动插入
### Java 代码风格
```java
// 使用 @Data 注解
@Data
public class CcdiBaseStaff {
// 审计字段通过注释实现自动插入
/** 创建者 */
private String createBy;
/** 创建时间 */
private Date createTime;
/** 更新者 */
private String updateBy;
/** 更新时间 */
private Date updateTime;
}
// 服务层使用 @Resource 注入
@Resource
private ICcdiBaseStaffService baseStaffService;
```
### 分层规范
- **Controller**: 所有接口添加 Swagger 注释,分页使用 MyBatis Plus Page
- **Service**: 简单 CRUD 用 MyBatis Plus 方法,复杂操作在 XML 写 SQL
- **DTO/VO**: 接口传参使用独立 DTO返回使用独立 VO不与 entity 混用
- **Mapper**: 简单操作继承 BaseMapper复杂操作在 XML 中定义
### 禁止事项
- **禁止使用全限定类名**: 必须使用 `import` 语句导入类,不要在代码中使用 `java.util.List` 这样的全限定名
- **禁止使用 `extends ServiceImpl<>`**: Service 接口和实现类分离定义
- **禁止 Entity 混用**: DTO、VO、Excel 类必须独立,不与 Entity 混用
- **禁止缺少 `@Resource`**: Service 注入必须使用 `@Resource` 注解
### API 响应格式
```java
// 成功
AjaxResult.success("操作成功", data);
// 错误
AjaxResult.error("操作失败");
// 分页
Page<CcdiBaseStaff> page = new Page<>(pageNum, pageSize);
IPage<CcdiBaseStaff> result = baseStaffMapper.selectPage(page, queryWrapper);
return AjaxResult.success(result);
```
---
## 前端开发规范
### 目录结构
``` ```
ruoyi-ui/src/ ruoyi-ui/src/
├── api/ # API request definitions ├── api/ # API 请求定义 (与后端 Controller 对应)
├── assets/ # Static resources (images, styles) ├── views/ # 页面组件 (按功能模块组织)
├── components/ # Reusable components ├── ccdiBaseStaff/
├── layout/ # Main layout (Sidebar, Navbar, TagsView) │ ├── ccdiIntermediary/
├── router/ # Vue Router configuration │ └── ...
├── store/ # Vuex state management ├── components/ # 可复用组件 (复杂组件需拆分)
├── utils/ # Utility functions ├── router/ # 路由配置
── views/ # Page components organized by feature ── store/ # Vuex 状态管理
│ ├── dashboard/
│ ├── monitor/
│ ├── system/
│ └── tool/
└── permission.js # Permission directives
``` ```
### Module Dependencies ### API 调用示例
```
ruoyi-admin (startup module)
↓ depends on
ruoyi-framework (core security & config)
ruoyi-system (system core business)
ruoyi-common (shared utilities)
ruoyi-quartz (scheduled tasks)
ruoyi-generator (code generation)
```
## Key Development Patterns
### Code Generation Workflow
RuoYi provides a powerful code generator for rapid CRUD development:
1. **Create database table** - Design your table schema
2. **Import table** - Use System Tools → Code Generation → Import
3. **Configure** - Edit table info, generate info (module, function name, etc.)
4. **Generate code** - Download the generated zip
5. **Copy files** - Extract to appropriate directories:
- Backend: `ruoyi-admin/web/controller/`, service, mapper files
- Frontend: `ruoyi-ui/src/views/`, `ruoyi-ui/src/api/`
### Permission System
The permission system uses **Role-Menu-Button** hierarchy:
- **Menus**: Define navigation items and route permissions
- **Roles**: Assign menu permissions to roles
- **Users**: Assign roles to users
- **Data Permissions**: Control data scope (all, custom, department, etc.)
Permission keys in code use format: `system:user:edit`, `system:user:remove`, etc.
### API Response Format
All API responses use `AjaxResult` wrapper:
```java
// Success
AjaxResult.success("操作成功", data);
// Error
AjaxResult.error("操作失败");
// Custom
AjaxResult.put("key", value);
```
### Frontend API Calls
API calls are defined in `ruoyi-ui/src/api/`:
```javascript ```javascript
import request from '@/utils/request' import request from '@/utils/request'
export function listUser(query) { export function listStaff(query) {
return request({ return request({
url: '/system/user/list', url: '/ccdi/baseStaff/list',
method: 'get', method: 'get',
params: query params: query
}) })
} }
```
export function addUser(data) { ### 菜单联动
return request({
url: '/system/user', 添加页面和组件后,需要同步修改数据库中的菜单表 (`sys_menu`)。
method: 'post',
data: data ---
})
## 特殊功能
### 异步导入
支持大数据量异步 Excel 导入,通过 taskId 查询导入状态:
```java
@PostMapping("/import")
public AjaxResult asyncImport(@RequestParam("file") MultipartFile file) {
String taskId = asyncImportService.startImport(file);
return AjaxResult.success("导入任务已启动", taskId);
}
@GetMapping("/import/status/{taskId}")
public AjaxResult getImportStatus(@PathVariable String taskId) {
return AjaxResult.success(asyncImportService.getStatus(taskId));
} }
``` ```
## OpenSpec Workflow **导入流程:**
1. 前端上传 Excel 文件
2. 后端异步处理,返回 taskId
3. 前端轮询 `/import/status/{taskId}` 获取导入进度
4. 导入完成后,可获取成功/失败数据统计
This project uses **OpenSpec** for specification-driven development. Always reference `openspec/AGENTS.md` when: **导入结果处理:**
- 只返回导入失败的数据(含失败原因)
- 成功数据不返回,减少响应体积
- 支持批量插入,提高性能
- Planning or proposing new features ### EasyExcel 字典下拉框
- Making breaking changes
- Modifying architecture
- Handling ambiguous requirements
### Key OpenSpec Commands 导入模板支持字典下拉框配置,提升数据录入准确性。使用 `DictDropdownWriteHandler` 实现。
### 权限控制
基于 Spring Security + JWT 的角色菜单权限系统:
- 权限格式: `system:user:edit`, `ccdi:staff:list`
- 数据权限: 支持全部、自定义、部门等范围
---
## 测试与验证
### 测试账号
- **用户名**: `admin`
- **密码**: `admin123`
### 登录获取 Token
```bash ```bash
# List active changes # 登录接口
openspec list POST /login/test?username=admin&password=admin123
# List all specifications
openspec list --specs
# View details
openspec show [change-id or spec-id]
# Validate changes
openspec validate [change-id] --strict --no-interactive
# Archive completed changes
openspec archive <change-id>
``` ```
### When to Create Proposals ### API 文档
**Create proposal for:** - **Swagger UI**: `/swagger-ui/index.html`
- New features or capabilities - **API Docs**: `/v3/api-docs`
- Breaking changes (API, schema)
- Architecture changes
- Performance optimizations that change behavior
**Skip proposal for:** ### 测试规范
- Bug fixes (restoring intended behavior)
- Typos, formatting, comments
- Non-breaking dependency updates
- Configuration changes
## Configuration Notes - 不在命令行启动后端进行测试
- 生成可执行的测试脚本进行验证
- 测试完成后保存接口输出并生成测试用例报告
- **Default Admin**: `admin/admin123` ### 开发调试技巧
- **Backend Port**: 8080
- **Frontend Dev Port**: 80
- **API Base Path**: Configured in `ruoyi-ui/vue.config.js` proxy
- **Database Config**: `ruoyi-admin/src/main/resources/application.yml`
## Important File Locations **使用 Swagger 测试接口:**
1. 访问 `/swagger-ui/index.html`
2. 点击接口展开详情
3. 点击 "Try it out" 进行测试
4. 填写参数后点击 "Execute" 执行
| Purpose | Location | **查看 SQL 执行日志:**
|---------|----------| -`application.yml` 中设置日志级别: `com.ruoyi: debug`
| Main application entry | [ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java](ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java) | - 使用 Druid 监控台查看慢 SQL
| Security configuration | [ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java](ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java) |
| Database config | [ruoyi-admin/src/main/resources/application.yml](ruoyi-admin/src/main/resources/application.yml) | **前端代理配置:**
| MyBatis mappers | [ruoyi-system/src/main/resources/mapper/system/](ruoyi-system/src/main/resources/mapper/system/) | 前端开发服务器通过代理转发请求到后端:
| Vue router | [ruoyi-ui/src/router/index.js](ruoyi-ui/src/router/index.js) | - 前端地址: `http://localhost:80`
| Vuex store | [ruoyi-ui/src/store/](ruoyi-ui/src/store/) | - 后端地址: `http://localhost:8080`
- 代理配置文件: `ruoyi-ui/vue.config.js`
---
## 配置说明
| 配置项 | 值 |
|---------|-------------------|
| 后端端口 | 8080 |
| 前端开发端口 | 80 |
| 默认管理员 | admin/admin123 |
| JWT 有效期 | 30 分钟 |
| 文件上传限制 | 单文件 10MB, 总计 20MB |
### 配置文件位置
| 配置 | 路径 |
|----------|------------------------------------------------------|
| 主配置 | `ruoyi-admin/src/main/resources/application.yml` |
| 开发环境 | `ruoyi-admin/src/main/resources/application-dev.yml` |
| 数据库连接 | `application-dev.yml` |
| Redis 配置 | `application-dev.yml` |
### 数据源配置
项目使用 Druid 连接池,支持主从分离(默认关闭从库):
- **数据库连接**: `jdbc:mysql://host:3306/ccdi`
- **初始连接数**: 5
- **最小连接数**: 10
- **最大连接数**: 20
- **慢 SQL 记录**: 超过 1000ms 的 SQL 会被记录
### Redis 配置
- **默认端口**: 6379
- **数据库索引**: 0
- **连接超时**: 10s
### Druid 监控台
访问地址: `http://localhost:8080/druid/`
- 用户名: `ruoyi`
- 密码: `123456`
用于监控 SQL 执行情况、连接池状态等。
---
## 重要文件路径
| 用途 | 路径 |
|---------------|--------------------------------------------------------------------------------|
| 应用入口 | `ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java` |
| 安全配置 | `ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java` |
| 业务 Controller | `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/controller/` |
| 业务 Mapper XML | `ruoyi-info-collection/src/main/resources/mapper/info/collection/` |
| Vue 路由 | `ruoyi-ui/src/router/index.js` |
| Vuex Store | `ruoyi-ui/src/store/` |
| 前端 API | `ruoyi-ui/src/api/` |
---
## 数据库规范
- **新建表名**: 需要加上项目英文名首字母集合前缀 `ccdi_` (如 `ccdi_base_staff`)
---
## 文档管理
- **文档语言**: 使用简体中文编写 .md 文档
- **文档目录**: 所有生成的文档放在 `doc/` 目录下,按类型分类
- **需求分析**: 在 `doc/` 目录下新建文件夹,以需求内容命名
### doc 目录结构
```
doc/
├── api-docs/ # API 文档
├── database/ # 数据库相关
├── design/ # 设计文档
├── implementation/ # 实施文档
├── requirements/ # 需求文档
└── test-scripts/ # 测试脚本
```
---
## OpenSpec 工作流
项目使用 OpenSpec 进行规范驱动开发,参考 `openspec/AGENTS.md`
### 何时创建 Proposal
**需要创建:**
- 新功能或能力
- 破坏性变更 (API, 数据库结构)
- 架构变更
- 改变行为的性能优化
**无需创建:**
- Bug 修复 (恢复预期行为)
- 拼写错误、格式、注释
- 非破坏性依赖更新
- 配置变更
---
## 沟通规范
- 永远使用简体中文进行思考和对话
---
## 常见问题排查
### 数据库连接失败
**检查项:**
1. 确认 MySQL 服务已启动
2. 检查 `application-dev.yml` 中的数据库连接配置
3. 确认数据库用户名和密码正确
4. 检查数据库是否已创建(数据库名: `ccdi`
### Redis 连接失败
**检查项:**
1. 确认 Redis 服务已启动
2. 检查 `application-dev.yml` 中的 Redis 配置
3. 如果 Redis 不需要密码,将 `password` 配置注释掉
### 前端无法访问后端接口
**检查项:**
1. 确认后端已启动(端口 8080
2. 检查前端代理配置(`ruoyi-ui/vue.config.js`
3. 确认后端接口路径正确(查看 Controller 的 `@RequestMapping`
### 导入功能无响应
**检查项:**
1. 检查文件大小是否超过限制(默认 10MB
2. 查看后端日志是否有异常
3. 确认 Excel 模板格式正确
4. 检查必填字段是否为空
---
## MyBatis Plus 分页使用
```java
// Controller 层
@GetMapping("/list")
public TableDataInfo list(QueryDTO queryDTO) {
PageDomain pageDomain = TableSupport.buildPageRequest();
Page<VO> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Page<VO> result = service.selectPage(page, queryDTO);
return getDataTable(result.getRecords(), result.getTotal());
}
// Service 层
Page<VO> selectPage(Page<VO> page, QueryDTO queryDTO);
// Mapper 层 (使用 XML)
<select id="selectPage" resultType="VO">
SELECT * FROM table_name
<where>
<if test="queryDTO.name != null">
AND name LIKE CONCAT('%', #{queryDTO.name}, '%')
</if>
</where>
</select>
```

View File

@@ -9,10 +9,10 @@
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-ccdi</artifactId> <artifactId>ccdi-info-collection</artifactId>
<description> <description>
纪检初核系统模块 信息采集模块
</description> </description>
<dependencies> <dependencies>

View File

@@ -1,6 +1,6 @@
package com.ruoyi.ccdi.annotation; package com.ruoyi.info.collection.annotation;
import com.ruoyi.ccdi.validation.EnumValidator; import com.ruoyi.info.collection.validation.EnumValidator;
import jakarta.validation.Constraint; import jakarta.validation.Constraint;
import jakarta.validation.Payload; import jakarta.validation.Payload;

View File

@@ -1,14 +1,14 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiBaseStaffAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiBaseStaffAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiBaseStaffEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiBaseStaffEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiBaseStaffQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiBaseStaffQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiBaseStaffExcel; import com.ruoyi.info.collection.domain.excel.CcdiBaseStaffExcel;
import com.ruoyi.ccdi.domain.vo.*; import com.ruoyi.info.collection.domain.vo.*;
import com.ruoyi.ccdi.service.ICcdiBaseStaffImportService; import com.ruoyi.info.collection.service.ICcdiBaseStaffImportService;
import com.ruoyi.ccdi.service.ICcdiBaseStaffService; import com.ruoyi.info.collection.service.ICcdiBaseStaffService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,17 +1,17 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiCustEnterpriseRelationAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiCustEnterpriseRelationAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiCustEnterpriseRelationEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiCustEnterpriseRelationEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiCustEnterpriseRelationQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiCustEnterpriseRelationQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiCustEnterpriseRelationExcel; import com.ruoyi.info.collection.domain.excel.CcdiCustEnterpriseRelationExcel;
import com.ruoyi.ccdi.domain.vo.CcdiCustEnterpriseRelationVO; import com.ruoyi.info.collection.domain.vo.CcdiCustEnterpriseRelationVO;
import com.ruoyi.ccdi.domain.vo.CustEnterpriseRelationImportFailureVO; import com.ruoyi.info.collection.domain.vo.CustEnterpriseRelationImportFailureVO;
import com.ruoyi.ccdi.domain.vo.ImportResultVO; import com.ruoyi.info.collection.domain.vo.ImportResultVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO; import com.ruoyi.info.collection.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.service.ICcdiCustEnterpriseRelationImportService; import com.ruoyi.info.collection.service.ICcdiCustEnterpriseRelationImportService;
import com.ruoyi.ccdi.service.ICcdiCustEnterpriseRelationService; import com.ruoyi.info.collection.service.ICcdiCustEnterpriseRelationService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,17 +1,17 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiCustFmyRelationAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiCustFmyRelationAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiCustFmyRelationEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiCustFmyRelationEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiCustFmyRelationQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiCustFmyRelationQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiCustFmyRelationExcel; import com.ruoyi.info.collection.domain.excel.CcdiCustFmyRelationExcel;
import com.ruoyi.ccdi.domain.vo.CcdiCustFmyRelationVO; import com.ruoyi.info.collection.domain.vo.CcdiCustFmyRelationVO;
import com.ruoyi.ccdi.domain.vo.CustFmyRelationImportFailureVO; import com.ruoyi.info.collection.domain.vo.CustFmyRelationImportFailureVO;
import com.ruoyi.ccdi.domain.vo.ImportResultVO; import com.ruoyi.info.collection.domain.vo.ImportResultVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO; import com.ruoyi.info.collection.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.service.ICcdiCustFmyRelationImportService; import com.ruoyi.info.collection.service.ICcdiCustFmyRelationImportService;
import com.ruoyi.ccdi.service.ICcdiCustFmyRelationService; import com.ruoyi.info.collection.service.ICcdiCustFmyRelationService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,7 +1,7 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.ruoyi.ccdi.domain.vo.EnumOptionVO; import com.ruoyi.info.collection.domain.vo.EnumOptionVO;
import com.ruoyi.ccdi.enums.*; import com.ruoyi.info.collection.enums.*;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;

View File

@@ -1,14 +1,14 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.*; import com.ruoyi.info.collection.domain.dto.*;
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryEntityExcel; import com.ruoyi.info.collection.domain.excel.CcdiIntermediaryEntityExcel;
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryPersonExcel; import com.ruoyi.info.collection.domain.excel.CcdiIntermediaryPersonExcel;
import com.ruoyi.ccdi.domain.vo.*; import com.ruoyi.info.collection.domain.vo.*;
import com.ruoyi.ccdi.service.ICcdiIntermediaryEntityImportService; import com.ruoyi.info.collection.service.ICcdiIntermediaryEntityImportService;
import com.ruoyi.ccdi.service.ICcdiIntermediaryPersonImportService; import com.ruoyi.info.collection.service.ICcdiIntermediaryPersonImportService;
import com.ruoyi.ccdi.service.ICcdiIntermediaryService; import com.ruoyi.info.collection.service.ICcdiIntermediaryService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,17 +1,17 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiPurchaseTransactionAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiPurchaseTransactionAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiPurchaseTransactionEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiPurchaseTransactionEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiPurchaseTransactionQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiPurchaseTransactionQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiPurchaseTransactionExcel; import com.ruoyi.info.collection.domain.excel.CcdiPurchaseTransactionExcel;
import com.ruoyi.ccdi.domain.vo.CcdiPurchaseTransactionVO; import com.ruoyi.info.collection.domain.vo.CcdiPurchaseTransactionVO;
import com.ruoyi.ccdi.domain.vo.ImportResultVO; import com.ruoyi.info.collection.domain.vo.ImportResultVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO; import com.ruoyi.info.collection.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.domain.vo.PurchaseTransactionImportFailureVO; import com.ruoyi.info.collection.domain.vo.PurchaseTransactionImportFailureVO;
import com.ruoyi.ccdi.service.ICcdiPurchaseTransactionImportService; import com.ruoyi.info.collection.service.ICcdiPurchaseTransactionImportService;
import com.ruoyi.ccdi.service.ICcdiPurchaseTransactionService; import com.ruoyi.info.collection.service.ICcdiPurchaseTransactionService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,17 +1,17 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiStaffEnterpriseRelationAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffEnterpriseRelationAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiStaffEnterpriseRelationEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffEnterpriseRelationEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiStaffEnterpriseRelationQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffEnterpriseRelationQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiStaffEnterpriseRelationExcel; import com.ruoyi.info.collection.domain.excel.CcdiStaffEnterpriseRelationExcel;
import com.ruoyi.ccdi.domain.vo.CcdiStaffEnterpriseRelationVO; import com.ruoyi.info.collection.domain.vo.CcdiStaffEnterpriseRelationVO;
import com.ruoyi.ccdi.domain.vo.ImportResultVO; import com.ruoyi.info.collection.domain.vo.ImportResultVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO; import com.ruoyi.info.collection.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.domain.vo.StaffEnterpriseRelationImportFailureVO; import com.ruoyi.info.collection.domain.vo.StaffEnterpriseRelationImportFailureVO;
import com.ruoyi.ccdi.service.ICcdiStaffEnterpriseRelationImportService; import com.ruoyi.info.collection.service.ICcdiStaffEnterpriseRelationImportService;
import com.ruoyi.ccdi.service.ICcdiStaffEnterpriseRelationService; import com.ruoyi.info.collection.service.ICcdiStaffEnterpriseRelationService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,17 +1,17 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiStaffFmyRelationAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffFmyRelationAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiStaffFmyRelationEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffFmyRelationEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiStaffFmyRelationQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffFmyRelationQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiStaffFmyRelationExcel; import com.ruoyi.info.collection.domain.excel.CcdiStaffFmyRelationExcel;
import com.ruoyi.ccdi.domain.vo.CcdiStaffFmyRelationVO; import com.ruoyi.info.collection.domain.vo.CcdiStaffFmyRelationVO;
import com.ruoyi.ccdi.domain.vo.ImportResultVO; import com.ruoyi.info.collection.domain.vo.ImportResultVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO; import com.ruoyi.info.collection.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.domain.vo.StaffFmyRelationImportFailureVO; import com.ruoyi.info.collection.domain.vo.StaffFmyRelationImportFailureVO;
import com.ruoyi.ccdi.service.ICcdiStaffFmyRelationImportService; import com.ruoyi.info.collection.service.ICcdiStaffFmyRelationImportService;
import com.ruoyi.ccdi.service.ICcdiStaffFmyRelationService; import com.ruoyi.info.collection.service.ICcdiStaffFmyRelationService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,17 +1,17 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiStaffRecruitmentAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffRecruitmentAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiStaffRecruitmentEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffRecruitmentEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiStaffRecruitmentQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffRecruitmentQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiStaffRecruitmentExcel; import com.ruoyi.info.collection.domain.excel.CcdiStaffRecruitmentExcel;
import com.ruoyi.ccdi.domain.vo.CcdiStaffRecruitmentVO; import com.ruoyi.info.collection.domain.vo.CcdiStaffRecruitmentVO;
import com.ruoyi.ccdi.domain.vo.ImportResultVO; import com.ruoyi.info.collection.domain.vo.ImportResultVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO; import com.ruoyi.info.collection.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.domain.vo.RecruitmentImportFailureVO; import com.ruoyi.info.collection.domain.vo.RecruitmentImportFailureVO;
import com.ruoyi.ccdi.service.ICcdiStaffRecruitmentImportService; import com.ruoyi.info.collection.service.ICcdiStaffRecruitmentImportService;
import com.ruoyi.ccdi.service.ICcdiStaffRecruitmentService; import com.ruoyi.info.collection.service.ICcdiStaffRecruitmentService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,17 +1,17 @@
package com.ruoyi.ccdi.controller; package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ccdi.domain.dto.CcdiStaffTransferAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffTransferAddDTO;
import com.ruoyi.ccdi.domain.dto.CcdiStaffTransferEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffTransferEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiStaffTransferQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiStaffTransferQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiStaffTransferExcel; import com.ruoyi.info.collection.domain.excel.CcdiStaffTransferExcel;
import com.ruoyi.ccdi.domain.vo.CcdiStaffTransferVO; import com.ruoyi.info.collection.domain.vo.CcdiStaffTransferVO;
import com.ruoyi.ccdi.domain.vo.ImportResultVO; import com.ruoyi.info.collection.domain.vo.ImportResultVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO; import com.ruoyi.info.collection.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.domain.vo.StaffTransferImportFailureVO; import com.ruoyi.info.collection.domain.vo.StaffTransferImportFailureVO;
import com.ruoyi.ccdi.service.ICcdiStaffTransferImportService; import com.ruoyi.info.collection.service.ICcdiStaffTransferImportService;
import com.ruoyi.ccdi.service.ICcdiStaffTransferService; import com.ruoyi.info.collection.service.ICcdiStaffTransferService;
import com.ruoyi.ccdi.utils.EasyExcelUtil; import com.ruoyi.info.collection.utils.EasyExcelUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain; package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,7 +1,7 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.ruoyi.ccdi.annotation.EnumValid; import com.ruoyi.info.collection.annotation.EnumValid;
import com.ruoyi.ccdi.enums.AdmitStatus; import com.ruoyi.info.collection.enums.AdmitStatus;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;

View File

@@ -1,7 +1,7 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.ruoyi.ccdi.annotation.EnumValid; import com.ruoyi.info.collection.annotation.EnumValid;
import com.ruoyi.ccdi.enums.AdmitStatus; import com.ruoyi.info.collection.enums.AdmitStatus;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.dto; package com.ruoyi.info.collection.domain.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.excel; package com.ruoyi.info.collection.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.domain.vo; package com.ruoyi.info.collection.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
/** /**

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
/** /**

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
/** /**

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
/** /**

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
/** /**
* 数据来源枚举 * 数据来源枚举

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
/** /**

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
/** /**

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.ccdi.enums; package com.ruoyi.info.collection.enums;
/** /**

Some files were not shown because too many files have changed in this diff Show More