# 订单导入功能模块 - FTP 集成功能 - 产品需求文档

## 概述
- **摘要**：在订单导入功能模块中整合面单文件上传功能和 FTP 上传检查功能，无需提供上传目录选择参数，系统默认使用预设的上传目录路径，实现文件自动上传至指定位置，并完成 FTP 上传状态的自动检查与反馈。
- **目的**：简化用户操作流程，减少用户输入错误，确保面单文件能够正确上传到指定的 FTP 位置，并及时反馈上传状态。
- **目标用户**：使用订单导入功能的操作人员，需要上传面单文件到 FTP 服务器的用户。

## 目标
- 整合面单文件上传功能到订单导入模块
- 整合 FTP 上传检查功能到订单导入模块
- 系统默认使用预设的上传目录路径，无需用户输入
- 实现文件自动上传至指定位置
- 完成 FTP 上传状态的自动检查与反馈

## 非目标（超出范围）
- 不修改现有的订单导入核心逻辑
- 不改变现有的 FTP 服务器配置
- 不添加新的用户界面元素，保持界面简洁

## 背景与上下文
- 现有系统已经实现了订单导入功能，可以通过 Excel 文件导入订单数据
- 现有系统已经实现了面单文件上传功能，可以上传文件到 FTP 服务器
- 现有系统已经实现了 FTP 上传检查功能，可以检查文件是否存在于 FTP 服务器
- 用户当前需要在不同的标签页之间切换来完成订单导入、文件上传和上传检查，操作繁琐

## 功能需求
- **FR-1**：在订单导入功能模块中整合面单文件上传功能
- **FR-2**：在订单导入功能模块中整合 FTP 上传检查功能
- **FR-3**：系统默认使用预设的上传目录路径，无需用户输入
- **FR-4**：实现文件自动上传至指定位置
- **FR-5**：完成 FTP 上传状态的自动检查与反馈

## 非功能需求
- **NFR-1**：保持现有界面的简洁性，不增加额外的用户输入字段
- **NFR-2**：上传和检查过程应该有明确的进度反馈
- **NFR-3**：错误处理应该清晰明确，方便用户理解和解决问题

## 约束
- **技术**：基于现有的 ASP.NET Core Web API 和 FTP 上传服务
- **依赖**：依赖现有的 `FtpUploadService` 和相关的 API 端点

## 假设
- 预设的上传目录路径是固定的，不需要用户配置
- 面单文件的命名规则与订单数据中的中性面单单号或尾程单号一致

## 验收标准

### AC-1：订单导入时自动上传面单文件
- **给定**：用户选择了包含订单数据的 Excel 文件和对应的面单文件
- **当**：用户点击 "导入订单" 按钮
- **然后**：系统自动将面单文件上传到预设的 FTP 目录
- **验证**：`programmatic`
- **备注**：上传过程应该有进度反馈

### AC-2：订单导入时自动检查 FTP 上传状态
- **给定**：面单文件已经上传到 FTP 服务器
- **当**：文件上传完成后
- **然后**：系统自动检查文件是否成功上传到 FTP 服务器
- **验证**：`programmatic`
- **备注**：检查结果应该在导入结果中显示

### AC-3：使用预设的上传目录路径
- **给定**：用户进行订单导入操作
- **当**：系统执行文件上传操作
- **然后**：系统使用预设的上传目录路径，无需用户输入
- **验证**：`programmatic`
- **备注**：预设路径应该在代码中配置

### AC-4：上传和检查状态的反馈
- **给定**：系统执行文件上传和检查操作
- **当**：操作完成后
- **然后**：系统在导入结果中显示上传和检查的状态
- **验证**：`human-judgment`
- **备注**：状态信息应该清晰易读

## 开放问题
- [ ] 预设的上传目录路径具体是什么？
- [ ] 面单文件的命名规则是否与现有系统一致？