songqq e761990ebf feat: 实现SMB文件服务并优化合同文件管理
- 新增SmbFileService服务类,支持SMB/CIFS协议的文件操作
- 修改合同文件管理逻辑,支持SMB路径检查与目录创建
- 优化BankTableCell实现工厂模式并更新相关文档
- 调整Redis配置并添加连接测试
- 修复合同发票视图模型的时间处理问题
- 更新项目版本至0.0.134-SNAPSHOT
2025-11-12 16:32:03 +08:00
2025-08-22 19:55:19 +08:00
2025-08-22 19:55:19 +08:00
2025-08-22 19:55:19 +08:00
2025-08-22 19:55:19 +08:00
2025-08-22 18:26:47 +08:00
2025-08-22 19:55:19 +08:00
2025-08-22 19:55:19 +08:00
2025-09-25 10:08:17 +08:00

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创建安装包

开发环境要求

  • JDK 21
  • Maven 3.6+
  • MySQL 8.0+
  • Redis 6.0+
  • IntelliJ IDEA或Eclipse推荐使用IDEA

后续优化方向

  1. 完善单元测试和集成测试
  2. 优化数据库查询性能
  3. 增强系统安全机制
  4. 改进用户界面体验
  5. 扩展更多云端服务集成
Description
电气开利合同管理软件
Readme GPL-3.0 9.3 MiB
Languages
Java 99.8%