# 出货交接单添加功能修复 - 产品需求文档 ## 概述 - **Summary**: 修复出货交接单添加时出现的验证错误问题,确保 POD 和 Remarks 字段在没有上传文件或填写备注时也能正常提交。 - **Purpose**: 解决用户在添加出货交接单时遇到的 400 错误,提升用户体验。 - **Target Users**: 使用 LabelReplaceServer 系统添加出货交接单的操作人员。 ## Goals - 修复出货交接单添加时的验证错误问题 - 确保 POD 和 Remarks 字段在为空时能正常提交 - 保持与后端 API 的兼容性 ## Non-Goals (Out of Scope) - 不修改后端 API 验证逻辑 - 不改变其他功能模块的行为 - 不添加新的功能特性 ## Background & Context - 当前在添加出货交接单时,如果没有上传 POD 图片或填写备注,会收到 400 错误,提示 "The POD field is required." 和 "The Remarks field is required." - 从前端代码分析,当没有上传文件时,POD 字段被设置为空字符串,Remarks 字段也可能为空字符串 - 后端 API 似乎要求这些字段不为空 ## Functional Requirements - **FR-1**: 当用户没有上传 POD 图片时,系统应该能正常提交出货交接单 - **FR-2**: 当用户没有填写备注时,系统应该能正常提交出货交接单 - **FR-3**: 修复后的功能应该与现有的到货交接单添加功能保持一致 ## Non-Functional Requirements - **NFR-1**: 修复不应该影响其他功能模块的正常运行 - **NFR-2**: 修复应该保持代码的可读性和可维护性 - **NFR-3**: 修复后的功能应该与后端 API 完全兼容 ## Constraints - **Technical**: 前端使用 jQuery 和 Bootstrap,后端使用 .NET Core - **Dependencies**: 依赖后端 API 的验证逻辑 ## Assumptions - 后端 API 实际上接受 POD 和 Remarks 字段为 null 或 undefined,但不接受空字符串 - 到货交接单的添加功能已经正确处理了类似情况 ## Acceptance Criteria ### AC-1: 无 POD 图片时能正常添加 - **Given**: 用户未上传 POD 图片 - **When**: 用户点击 "添加" 按钮提交出货交接单 - **Then**: 系统成功添加出货交接单,不返回 400 错误 - **Verification**: `programmatic` - **Notes**: POD 字段应该传递 null 或 undefined,而不是空字符串 ### AC-2: 无备注时能正常添加 - **Given**: 用户未填写备注 - **When**: 用户点击 "添加" 按钮提交出货交接单 - **Then**: 系统成功添加出货交接单,不返回 400 错误 - **Verification**: `programmatic` - **Notes**: Remarks 字段应该传递 null 或 undefined,而不是空字符串 ### AC-3: 有 POD 图片和备注时能正常添加 - **Given**: 用户上传了 POD 图片并填写了备注 - **When**: 用户点击 "添加" 按钮提交出货交接单 - **Then**: 系统成功添加出货交接单,与修复前行为一致 - **Verification**: `programmatic` ## Open Questions - [ ] 后端 API 对 POD 和 Remarks 字段的具体验证规则是什么? - [ ] 到货交接单是如何处理这些字段的?