SuperAPI AI 工具集

bulk-operations-patterns

通用与其它

查看项目

更新于 10-16 08:08

技能介绍

用途:在 ABP Framework 应用中实现批量数据操作,包括从 Excel/CSV 批量导入、按列表批量更新、批量插入(InsertManyAsync)与批量更新(UpdateManyAsync)、导出为 Excel,以及长时间任务的分批处理与进度跟踪。

主要能力:

  1. 通过 DTO 映射 Excel 列(ExcelColumnName、ExcelIgnore),使用字符串字段承载原始值再解析,便于给出行级校验错误。
  2. 文件上传校验:限制扩展名(.xlsx、.xls、.csv)与最大 10MB 大小。
  3. 导入流程采用先校验后写入:校验必填字段、数值字段、文件内重复编码、与已有数据冲突、分类引用是否存在;支持 ValidateOnly 只校验不落库。
  4. 结果以 BulkImportResultDto 返回总行数、成功数、错误数,错误用 BulkImportErrorDto 记录行号、字段与消息。
  5. 批量更新支持从 Excel 或 List<UpdateProductDto> 两种来源。
  6. 导出使用 ExcelMapper 生成 .xlsx,可保存到 Blob 容器,并按时间戳命名;导入模板同样可存于 Blob 容器供下载。
  7. 大批量按 chunk 分批(示例 batchSize=100)插入,并通过 IProgress 上报百分比进度。

使用方式:将示例中的 ProductAppService、DTO、仓储与日志写法适配到自身 ABP 项目,配合权限特性(如 Authorize(ProductPermissions.Products.Import))控制导入入口;解析旧版 Excel 时需注册 CodePagesEncodingProvider。

适用场景:后台管理系统的商品/主数据批量维护、Excel 导入向导、导出报表、需要行级错误反馈的批量操作。

限制:资料为代码模式示例,未提供安装命令、版本要求、收费信息或性能实测数据;文件大小、批大小等为示例值,需按实际项目调整。