# 合同审查系统 POC

## 项目简介

这是一个合同审查系统的POC（概念验证）版本，用于客户演示。系统基于React 18 + TypeScript + Ant Design构建前端，Java 1.8 + Spring Boot 2.2.2.RELEASE + MySQL 8构建后端。

## 功能特性

- 文件导入启动AI风险扫描
- 合同风险自动评估（基于4个风险评估规则）
- 动态筛选功能
- 合同详情查看
- 风险分析结果展示
- 提交文档审查功能
- 统计数据展示

## 技术栈

### 前端
- React 18
- TypeScript
- Ant Design
- Vite
- Axios

### 后端
- Java 1.8
- Spring Boot 2.2.2.RELEASE
- MySQL 8
- MyBatis
- Swagger

## 项目结构

```
contractReview/
├── src/                # 前端源代码
│   ├── App.tsx         # 主应用组件
│   ├── services/       # API服务
│   └── index.css       # 自定义样式
├── backend/            # 后端源代码
│   ├── src/            # Java源代码
│   ├── db/             # 数据库脚本
│   └── pom.xml         # Maven配置
├── README.md           # 项目说明
└── 重要信息.md          # 重要信息记录
```

## 启动方法

### 前端启动
1. 进入项目根目录
2. 执行 `npm install` 安装依赖
3. 执行 `npm run dev` 启动开发服务器
4. 访问 http://127.0.0.1:5173

### 后端启动
1. 进入 backend 目录
2. 执行 `mvn spring-boot:run` 启动后端服务
3. 访问 http://localhost:8080

## 犯错与改进记录

### 1. Maven 依赖问题
- **问题**：Maven 依赖解析失败，缺少 spring-boot 插件
- **原因**：Maven 仓库配置问题，缺少中央仓库
- **解决方案**：在 pom.xml 中添加 Maven 中央仓库配置，并更新 MyBatis 版本到 2.1.4

### 2. MySQL 连接问题
- **问题**：MySQL 连接失败，无法连接到数据库
- **原因**：数据库配置不正确，使用了默认配置
- **解决方案**：更新 application.yml 文件，使用用户提供的数据库配置（数据库：aozhi）

### 3. CORS 问题
- **问题**：前端无法访问后端 API，出现 CORS 错误
- **原因**：后端未配置 CORS 允许跨域请求
- **解决方案**：添加 CorsConfig.java 类，配置允许前端访问的跨域请求

### 4. 字符编码问题
- **问题**：数据库中文显示乱码
- **原因**：未配置数据库字符编码
- **解决方案**：在 application.yml 中添加 UTF-8 编码配置

### 5. API 集成问题
- **问题**：前端无法正确处理后端返回的数据结构
- **原因**：后端返回的数据结构与前端预期不符
- **解决方案**：修改前端代码，适配后端返回的数据结构

### 6. 筛选功能优化
- **问题**：输入一个字母就查询一遍，影响性能
- **原因**：筛选条件变化时立即调用 API
- **解决方案**：修改为只有点击搜索按钮时才调用 API

### 7. 数据来源限制
- **问题**：数据来源选项过多，不符合要求
- **原因**：未按照要求限制数据来源选项
- **解决方案**：修改前端代码，限制数据来源选项为3个：直接查询、知识库自动审查、钉钉自动审查

### 8. 详情页展示问题
- **问题**：详情页显示为空，无法展示合同详情和风险分析结果
- **原因**：后端未返回完整的合同详情数据
- **解决方案**：修改后端代码，确保返回完整的合同详情和风险分析数据

### 9. 统计数据问题
- **问题**：统计数据显示 2023 年的数据，不符合要求
- **原因**：数据库脚本中的日期为 2023 年
- **解决方案**：更新数据库脚本，将日期修改为 2026 年

### 10. 提交文档审查功能
- **问题**：缺少提交文档审查功能
- **原因**：未实现该功能
- **解决方案**：添加提交文档审查弹窗和接口调用功能

## 注意事项

1. 系统使用的是模拟数据，实际部署时需要替换为真实数据
2. 风险评估规则基于公司内部规则，而非法律法规
3. 系统仅用于演示，实际使用时需要进行安全加固
4. 数据库连接信息需要根据实际环境进行配置

## 后续优化方向

1. 增加用户认证和授权功能
2. 优化文件上传和处理逻辑
3. 增加更多的风险评估规则
4. 优化系统性能和用户体验
5. 增加更多的统计分析功能
