architecture.mdc 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. ---
  2. description: 项目架构描述,技术栈,功能项描述。
  3. alwaysApply: true
  4. ---
  5. # 项目架构描述
  6. ## 技术栈
  7. - 语言:Java 8
  8. - 框架:Spring Boot 2.1.3.RELEASE
  9. - 数据库:PostgreSQL 15
  10. - 构建工具:Maven 3.8.9
  11. - 认证方式:JWT 认证
  12. - 生产环境:linux
  13. - 文件存储:FastDFS、MinIO
  14. - 缓存服务:Caffeine 本地缓存、Redis
  15. ## 功能模块
  16. 主要包括:
  17. - 联合预警计划、联合预警事件、联合预警工单管理
  18. - 调度预案、调度事件、调度工单管理
  19. - 调度排班指令管理
  20. - 故障单管理
  21. - 查漏计划、查漏点、查漏项、查漏对象、查漏任务管理
  22. - 巡检计划、巡检片区、巡检项、巡检点、巡检对象、巡检任务管理
  23. - 抢修工单、抢修班组管理
  24. - 保养工单管理
  25. - 清洗工单管理
  26. ## 项目层次约束
  27. **该项目层次清晰,划分严格,指定功能模块必须严格按如下层次进行归类,不可随意归类或放置。**
  28. - `src/main/java/com/shkpr/service/alamdmaordertask/`
  29. - `busihandler/` — 实际业务逻辑处理类
  30. - `commtools/` — 通用工具类
  31. - `components/` — 组件(如自定义验证器)封装类
  32. - `configuration/` — 各种配置类
  33. - `constants/` — 全局常量定义
  34. - `controllerapi/` — API 控制器层(接收外部请求)
  35. - `controllercheck/` — 校验控制器层(对外部请求进行校验)
  36. - `controllerfilter/` — 过滤器控制器层(对外部请求进行前置过滤处理)
  37. - `dbdao/mapper/` — 主业务数据库访问的 Mapper 定义类
  38. - `dbdao/services/` — 数据库访问的 DAO 服务实现
  39. - `dbdao/services/intef/` — DAO 服务接口定义
  40. - `dbdao/providers/` — Mapper 动态 SQL 提供者
  41. - `dbdao/pgtype/` — PostgreSQL 自定义类型处理
  42. - `dbdao/tables/` — 表结构/字段常量说明
  43. - `dto/` — 数据库或业务层模型对象
  44. - `exception/` — 全局异常处理
  45. - `factorys/` — 工厂类
  46. - `globalcache/` — 全局缓存控制类
  47. - `globalmgr/` — 全局管理器
  48. - `jsonbean/` — 请求参数定义类
  49. - `queues/` — 自定义队列管理类
  50. - `services/` — 本项目调用第三方服务(或其他服务)的封装类
  51. - `subtask/` — 自定义子任务管理类
  52. - `src/main/resources/`
  53. - `application.properties` — 主配置
  54. - `logback.xml` — 日志配置
  55. - `sql.properties` — 数据库参数配置(常与 `global.sql.config.path` 配合)
  56. - `pom.xml` — 构建配置
  57. - `libs/` — 第三方本地 JAR(含 gbase 等)
  58. - `config/` — 外部业务参数配置
  59. ## 关键设计模式
  60. **该项目需要严格遵守该设计模式。**
  61. 1. JWT 相关认证、请求头相关验证均在 `controllerfilter/` 下的过滤器中处理,按业务模块细分。
  62. 2. 所有 API 控制器(如 `ThirdAlarmTaskController`)只接收 API 请求,实际业务处理必须调用 `com.shkpr.service.alamdmaordertask.busihandler` 下的业务处理类。
  63. 3. 业务处理层(如 `PatrolPlanHelper`)必须通过 **`DBMgrProxy`** 调用数据库的 DAO 服务层。
  64. 4. **`DBMgrProxy`** 为数据库访问单例代理,管理多个数据源连接。
  65. 5. **`LogPrintMgr`** 为统一日志管理类。