# 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**:任务历史记录 ## 扩展性设计 系统采用良好的分层架构和接口设计,具有较强的扩展性: 1. **服务接口标准化**:通过IEntityService等接口统一服务访问方式 2. **模块化设计**:各功能模块相对独立,便于扩展和维护 3. **配置管理**:支持动态配置和属性绑定 4. **国际化支持**:通过messages.properties实现多语言支持 ## 安全机制 系统实现了基本的安全机制: - **用户认证与授权**:基于角色的权限控制 - **登录历史记录**:记录用户登录信息 - **异常处理**:全局异常处理机制 ## 部署说明 ### 服务端部署 1. 配置application.properties中的数据库连接和Redis连接信息 2. 打包为jar文件:`mvn clean package` 3. 运行jar文件:`java -jar server.jar` ### 客户端部署 1. 确保安装Java 21运行环境 2. 配置连接到服务端的WebSocket地址 3. 打包为可执行jar或使用jpackage创建安装包 ## Tasker实现规范指南 有关Tasker框架的详细实现规范,请参阅 [Tasker实现规范指南](docs/task/tasker_implementation_guide.md)。 ## 开发环境要求 - JDK 21 - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ - IntelliJ IDEA或Eclipse(推荐使用IDEA) ## 后续优化方向 1. 完善单元测试和集成测试 2. 优化数据库查询性能 3. 增强系统安全机制 4. 改进用户界面体验 5. 扩展更多云端服务集成