8.3 KiB
8.3 KiB
Implementation Plan: 随工水印相机 2.0
Overview
本实现计划分为五个阶段:后端 COS 集成、前端上传改造、导出 API 开发、CS 客户端开发、历史数据迁移。采用增量开发方式,每个阶段完成后进行验证。
Tasks
-
1. 后端 COS 集成与配置
- 1.1 添加腾讯云 COS SDK 依赖
- 在
ZR.Common项目中添加Tencent.QCloud.Cos.SdkNuGet 包 - Requirements: 1.1
- 在
- 1.2 创建 COS 配置模型
- 在
Infrastructure/Model/OptionsSetting.cs中添加TencentCOS配置类 - 包含 AppId, Region, SecretId, SecretKey, BucketName, DomainUrl, MaxSize, DurationSecond, Prefixes
- Requirements: 1.1
- 在
- 1.3 更新 appsettings.json 配置
- 添加 TencentCOS 配置节
- Requirements: 1.1
- 1.4 创建 CosService 服务类
- 创建
ZR.Common/CosService.cs - 实现
GetUploadUrls方法生成预签名 URL - 实现
GetTempCredentials方法获取临时密钥 - Requirements: 1.1, 1.2, 1.3, 1.4, 1.5
- 创建
- 1.5 编写 CosService 单元测试
- 测试 URL 生成逻辑
- 测试目录路径格式
- Requirements: 1.1, 1.2, 1.4, 1.5
- 1.1 添加腾讯云 COS SDK 依赖
-
2. COS 预签名 URL 接口
- 2.1 创建 COS 相关 DTO
- 在
ZR.Model/Business/Dto中创建CosUploadUrlsRequest.cs - 创建
CosUploadUrlsResponse.cs - Requirements: 1.1, 1.2
- 在
- 2.2 创建 CosController
- 在
ZR.Admin.WebApi/Controllers中创建CosController.cs - 实现
POST /api/cos/getUploadUrls接口 - 实现
GET /api/cos/getTempCredentials接口 - Requirements: 1.1, 1.2, 1.3
- 在
- 2.3 编写属性测试 - URL 生成完整性
- Property 1: Pre-signed URL Generation Completeness
- Validates: Requirements 1.1, 1.2, 1.4, 1.5
- 2.1 创建 COS 相关 DTO
-
3. Checkpoint - COS 集成验证
- 确保 COS 配置正确加载
- 确保预签名 URL 接口可正常调用
- 确保所有测试通过,如有问题请询问用户
-
4. 工作记录 V3 接口
- 4.1 创建 V3 DTO
- 在
ZR.Model/Business/Dto中创建CamRecordWorkV3Dto.cs - 包含 ImageUrls 字段替代 Image/Images
- Requirements: 3.1, 3.2
- 在
- 4.2 实现 V3 保存接口
- 在
CommonController.cs中添加AddCamWorkRecordV3方法 - 路由:
POST /addworkrecordv3 - 验证 COS URL 格式
- 复用现有数据库存储逻辑
- Requirements: 3.1, 3.2, 3.3, 3.4, 3.5
- 在
- 4.3 编写属性测试 - COS URL 验证
- Property 2: COS URL Validation
- Validates: Requirements 3.3
- 4.4 编写属性测试 - V3 记录保存完整性
- Property 3: V3 Record Save Integrity
- Validates: Requirements 3.1, 3.4
- 4.1 创建 V3 DTO
-
5. Checkpoint - V3 接口验证
- 确保 V3 接口可正常保存记录
- 确保图片 URL 正确存储
- 确保所有测试通过,如有问题请询问用户
-
6. 数据导出 API
- 6.1 创建导出查询 DTO
- 在
ZR.Model/Business/Dto中创建WorkRecordExportQueryDto.cs - 创建
WorkRecordExportDto.cs - Requirements: 4.1, 4.3, 4.4
- 在
- 6.2 创建导出 Service
- 在
ZR.Service/Business中创建WorkRecordExportService.cs - 实现分页查询逻辑
- 实现过滤逻辑(日期、部门、人员、内容)
- Requirements: 4.1, 4.2, 4.3, 4.4
- 在
- 6.3 创建导出 Controller
- 在
ZR.Admin.WebApi/Controllers中创建WorkRecordExportController.cs - 实现
GET /api/workrecord/export/list接口 - 添加认证要求
- Requirements: 4.1, 4.2, 4.3, 4.4, 4.5
- 在
- 6.4 编写属性测试 - 分页一致性
- Property 4: Export Pagination Consistency
- Validates: Requirements 4.1, 4.2, 4.4
- 6.5 编写属性测试 - 过滤准确性
- Property 5: Export Filter Accuracy
- Validates: Requirements 4.3
- 6.1 创建导出查询 DTO
-
7. Checkpoint - 导出 API 验证
- 确保分页查询正常工作
- 确保过滤条件正确应用
- 确保所有测试通过,如有问题请询问用户
-
8. 历史数据迁移 API
- 8.1 创建迁移相关 DTO
- 在
ZR.Model/Business/Dto中创建MigrationQueryDto.cs - 创建
MigrationRecordDto.cs - 创建
MigrationUpdateDto.cs - Requirements: 10.1, 10.2, 10.3
- 在
- 8.2 创建迁移 Service
- 在
ZR.Service/Business中创建WorkRecordMigrationService.cs - 实现待迁移记录查询(根据 URL 域名判断)
- 实现 URL 更新逻辑
- Requirements: 10.1, 10.2, 10.3, 10.4
- 在
- 8.3 创建迁移 Controller
- 在
ZR.Admin.WebApi/Controllers中创建WorkRecordMigrationController.cs - 实现
GET /api/workrecord/migration/list接口 - 实现
POST /api/workrecord/migration/update接口 - Requirements: 10.1, 10.2, 10.3, 10.4
- 在
- 8.4 编写属性测试 - 迁移列表过滤
- Property 6: Migration List Filter
- Validates: Requirements 10.1, 10.2
- 8.5 编写属性测试 - 迁移 URL 更新完整性
- Property 7: Migration URL Update Integrity
- Validates: Requirements 10.3, 10.4
- 8.1 创建迁移相关 DTO
-
9. Checkpoint - 后端 API 完成验证
- 确保所有后端 API 正常工作
- 确保所有测试通过,如有问题请询问用户
-
10. 前端 UniApp 上传改造
- 10.1 创建 COS 上传服务
- 在
uniapp/WorkCameraf/common中创建cosUpload.js - 实现获取预签名 URL 方法
- 实现直传 COS 方法(PUT 请求)
- Requirements: 2.1, 2.2, 2.3, 2.4
- 在
- 10.2 修改 server.js 添加 V3 接口调用
- 添加
addWatermarkRecordV3方法 - 调用
/addworkrecordv3接口 - Requirements: 3.1, 3.2
- 添加
- 10.3 修改上传流程
- 修改拍照后的上传逻辑
- 先获取预签名 URL
- 并发上传到 COS(最多 3 个并发)
- 上传成功后调用 V3 接口保存记录
- Requirements: 2.1, 2.2, 2.3, 2.4, 3.1
- 10.1 创建 COS 上传服务
-
11. Checkpoint - 前端上传验证
- 确保前端可正常上传图片到 COS
- 确保工作记录正确保存
- 如有问题请询问用户
-
12. CS 客户端项目搭建
- 12.1 创建 WinForms 项目
- 创建
WorkCameraExport解决方案 - 配置 .NET 8 AOT 单文件发布
- 添加 EPPlus、SixLabors.ImageSharp 依赖
- Requirements: 5.1, 7.3, 7.4
- 创建
- 12.2 创建 API 服务类
- 创建
Services/ApiService.cs - 实现登录、查询、迁移等 API 调用
- Requirements: 5.1, 5.2, 4.1
- 创建
- 12.3 创建 COS 服务类
- 创建
Services/CosService.cs - 实现图片上传到 COS
- Requirements: 9.2
- 创建
- 12.1 创建 WinForms 项目
-
13. CS 客户端登录模块
- 13.1 创建登录窗体
- 创建
Forms/LoginForm.cs - 包含服务器地址、用户名、密码输入
- 实现记住登录状态功能
- Requirements: 5.1, 5.2, 5.3, 5.4
- 创建
- 13.1 创建登录窗体
-
14. CS 客户端导出模块
- 14.1 创建主窗体
- 创建
Forms/MainForm.cs - 包含查询条件区域(日期、部门、人员、内容)
- 包含数据预览区域
- 包含导出进度区域
- Requirements: 6.1, 6.2, 6.3, 7.5
- 创建
- 14.2 创建 Excel 服务类
- 创建
Services/ExcelService.cs - 实现 Excel 生成逻辑
- 实现图片嵌入逻辑(100x60 像素,50% 压缩)
- Requirements: 7.3, 7.4
- 创建
- 14.3 实现导出功能
- 实现分页获取数据
- 实现并发下载图片(最多 5 个并发)
- 实现进度显示
- 实现取消功能
- Requirements: 7.1, 7.2, 7.5, 7.6, 7.7
- 14.1 创建主窗体
-
15. CS 客户端迁移模块
- 15.1 创建迁移窗体
- 创建
Forms/MigrationForm.cs - 包含筛选条件区域
- 包含待迁移记录列表
- 包含迁移进度区域
- Requirements: 8.1, 8.2, 8.3, 8.4
- 创建
- 15.2 实现迁移功能
- 实现下载原图片
- 实现上传到 COS
- 实现调用 API 更新 URL
- 实现进度显示和取消功能
- Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7
- 15.1 创建迁移窗体
-
16. Final Checkpoint - 全功能验证
- 确保所有功能正常工作
- 确保所有测试通过
- 如有问题请询问用户
Notes
- All tasks are required for complete implementation
- Each task references specific requirements for traceability
- Checkpoints ensure incremental validation
- Property tests validate universal correctness properties
- 后端使用 C# / .NET 8
- 前端使用 UniApp (Vue.js)
- CS 客户端使用 WinForms + .NET 8 AOT