db07befffe1a0fb951981fb3685097fd6758e6da
将 newContractGroup 重命名为 createNewEntity 以符合命名规范 将 findById 重命名为 getById 以保持方法命名一致性
Contract-Manager 项目报告
项目概述
Contract-Manager是一个企业级合同管理系统,提供完整的合同生命周期管理,包括合同的创建、审批、执行、归档等功能,同时集成了供应商管理、客户管理、项目管理等相关业务模块。
项目架构
模块划分
项目采用模块化设计,分为三个主要模块:
- common:公共模块,包含实体类、枚举、异常、工具类等共享组件
- server:服务端模块,基于Spring Boot开发,提供HTTP服务和WebSocket通信
- client:客户端模块,基于JavaFX开发,提供图形用户界面
技术栈
服务端技术栈
- Java 21
- Spring Boot 3.3.7
- Spring Data JPA 3.3.7
- MySQL 8.0.33
- Lombok 1.18.32
- POI 5.2.5 (Office文档处理)
- PDFBox 3.0.1 (PDF文档处理)
- Redis (缓存)
- WebSocket (实时通信)
客户端技术栈
- Java 21
- JavaFX 21
- ControlsFX 11.1.2 (UI控件增强)
- Lombok 1.18.32
- Caffeine 3.1.8 (本地缓存)
- WebSocket (与服务端通信)
目录结构
Contract-Manager/
├── common/ # 公共模块
│ ├── src/main/java/com/ecep/contract/
│ │ ├── model/ # 实体类
│ │ ├── vo/ # 值对象
│ │ ├── util/ # 工具类
│ │ ├── constant/ # 常量定义
│ │ └── msg/ # 消息相关
├── server/ # 服务端模块
│ ├── src/main/java/com/ecep/contract/
│ │ ├── api/ # API接口
│ │ ├── controller/ # 控制器
│ │ ├── service/ # 服务层
│ │ ├── ds/ # 数据访问层
│ │ ├── config/ # 配置类
│ │ ├── util/ # 工具类
│ │ ├── handler/ # WebSocket处理器
│ │ ├── cloud/ # 云端服务集成
│ │ └── ui/ # 服务端UI组件
├── client/ # 客户端模块
│ ├── src/main/java/com/ecep/contract/
│ │ ├── controller/ # 控制器
│ │ ├── service/ # 服务层
│ │ ├── vm/ # 视图模型
│ │ ├── util/ # 工具类
│ │ ├── task/ # 任务处理
│ │ ├── converter/ # 类型转换器
│ │ └── serializer/ # 序列化器
│ └── src/main/resources/ui/ # FXML界面文件
└── docs/ # 文档目录
└── db/ # 数据库相关文件
└── task/ # 任务
核心功能模块
1. 公司管理
- 公司基本信息管理
- 公司联系方式管理
- 公司银行账户管理
- 公司文件管理
- 公司黑名单管理
2. 供应商管理
- 供应商信息管理
- 供应商资质审核
- 供应商分类管理
- 供应商文件管理
- 供应商评估
3. 客户管理
- 客户信息管理
- 客户分类管理
- 客户满意度调查
- 客户文件管理
4. 合同管理
- 合同创建与编辑
- 合同审批流程
- 合同执行跟踪
- 合同付款计划
- 合同文件管理
- 合同分类与归档
5. 项目管理
- 项目信息管理
- 项目成本管理
- 项目报价管理
- 项目文件管理
- 项目资金计划
6. 库存管理
- 库存物品管理
- 库存价格历史
- 库存分类管理
7. 员工与权限管理
- 员工信息管理
- 角色权限管理
- 登录历史记录
8. 云端服务集成
- 天眼查企业信息集成
- 用友U8系统集成
- 其他云端服务集成
数据模型设计
系统采用JPA注解式实体类设计,主要实体类包括:
- 基础实体类:BasedEntity, IdentityEntity, NamedEntity等
- 公司相关:Company, CompanyContact, CompanyBankAccount等
- 供应商相关:Vendor, VendorApproved, VendorFile等
- 客户相关:CompanyCustomer, CustomerSatisfactionSurvey等
- 合同相关:Contract, ContractItem, ContractPayPlan等
- 项目相关:Project, ProjectCost, ProjectFundPlan等
- 枚举实体类:各种类型的本地枚举实体,如VendorTypeLocal, ContractFileTypeLocal等
通信机制
系统采用WebSocket进行客户端与服务端的实时通信,主要组件包括:
- 服务端:WebSocketController, WebSocketServerHandler
- 客户端:WebSocketClientService, WebSocketClientSession
任务处理机制
系统实现了异步任务处理机制,支持长时间运行的任务监控和管理:
- TaskMonitorCenter:任务监控中心
- MonitoredTask:可监控的任务基类
- TaskHistory:任务历史记录
扩展性设计
系统采用良好的分层架构和接口设计,具有较强的扩展性:
- 服务接口标准化:通过IEntityService等接口统一服务访问方式
- 模块化设计:各功能模块相对独立,便于扩展和维护
- 配置管理:支持动态配置和属性绑定
- 国际化支持:通过messages.properties实现多语言支持
安全机制
系统实现了基本的安全机制:
- 用户认证与授权:基于角色的权限控制
- 登录历史记录:记录用户登录信息
- 异常处理:全局异常处理机制
部署说明
服务端部署
- 配置application.properties中的数据库连接和Redis连接信息
- 打包为jar文件:
mvn clean package - 运行jar文件:
java -jar server.jar
客户端部署
- 确保安装Java 21运行环境
- 配置连接到服务端的WebSocket地址
- 打包为可执行jar或使用jpackage创建安装包
Tasker实现规范指南
有关Tasker框架的详细实现规范,请参阅 Tasker实现规范指南。
开发环境要求
- JDK 21
- Maven 3.6+
- MySQL 8.0+
- Redis 6.0+
- IntelliJ IDEA或Eclipse(推荐使用IDEA)
后续优化方向
- 完善单元测试和集成测试
- 优化数据库查询性能
- 增强系统安全机制
- 改进用户界面体验
- 扩展更多云端服务集成
Languages
Java
99.8%