refactor(vendor): 重构供应商相关类命名和包结构
将CompanyVendor前缀的类重命名为Vendor前缀,优化包结构 调整供应商相关控制器、服务、仓库类的命名和位置 修复TableViewUtils中的类型安全警告 更新FXML文件中的控制器引用路径
This commit is contained in:
202
README.md
202
README.md
@@ -1,13 +1,197 @@
|
||||
# 项目介绍
|
||||
# Contract-Manager 项目分析报告
|
||||
|
||||
分模块:
|
||||
- common:
|
||||
公共模块,包含实体类、公共的类、枚举、异常、工具类等
|
||||
- server:
|
||||
服务端模块,包含服务端的代码,依赖common模块
|
||||
- client:
|
||||
客户端模块,包含客户端的代码,依赖common模块
|
||||
UI 的fxml文件在 /client/src/main/resources/ui/
|
||||
## 项目概述
|
||||
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/ # 数据库相关文件
|
||||
```
|
||||
|
||||
## 核心功能模块
|
||||
|
||||
### 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创建安装包
|
||||
|
||||
## 开发环境要求
|
||||
|
||||
- JDK 21
|
||||
- Maven 3.6+
|
||||
- MySQL 8.0+
|
||||
- Redis 6.0+
|
||||
- IntelliJ IDEA或Eclipse(推荐使用IDEA)
|
||||
|
||||
## 后续优化方向
|
||||
|
||||
1. 完善单元测试和集成测试
|
||||
2. 优化数据库查询性能
|
||||
3. 增强系统安全机制
|
||||
4. 改进用户界面体验
|
||||
5. 扩展更多云端服务集成
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user