AdoS0QualitySpecImportDtos.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using MiniExcelLibs.Attributes;
  2. namespace Admin.NET.Plugin.AiDOP.Dto.S0.Quality;
  3. // 检验规范 Excel 导入行 DTO:主表列 + 明细列平铺在一张表内,按“文件编号”分组还原为“一条主单 + 多条明细”。
  4. // 列名([ExcelColumnName])与各检验规范页 qualityConfigs 现有字段一一对齐,导出模板与导入解析共用同一 DTO,保证列头单一来源。
  5. /// <summary>原材料检验规范导入行(对应 qms_jygf / qms_jygfzb)</summary>
  6. public class AdoS0QmsRawInspectionSpecImportRow
  7. {
  8. [ExcelColumnName("文件编号")] public string? FileNumber { get; set; }
  9. [ExcelColumnName("版本")] public string? VersionNo { get; set; }
  10. [ExcelColumnName("图号")] public string? DrawingNo { get; set; }
  11. [ExcelColumnName("原材料名称")] public string? RawMaterialName { get; set; }
  12. [ExcelColumnName("物料编码")] public string? MaterialCode { get; set; }
  13. [ExcelColumnName("生效日期")] public string? EffectiveDate { get; set; }
  14. [ExcelColumnName("图纸版本")] public string? DrawingVersion { get; set; }
  15. [ExcelColumnName("材质/材料牌号")] public string? MaterialGrade { get; set; }
  16. [ExcelColumnName("穴/模")] public string? CavityOrMold { get; set; }
  17. [ExcelColumnName("附件")] public string? Attachment { get; set; }
  18. [ExcelColumnName("附件文件名")] public string? FileName { get; set; }
  19. [ExcelColumnName("附件标题")] public string? Title { get; set; }
  20. [ExcelColumnName("明细-序号")] public int? Seq { get; set; }
  21. [ExcelColumnName("明细-检验项目")] public string? InspectionItem { get; set; }
  22. [ExcelColumnName("明细-检验标准")] public string? InspectionStandard { get; set; }
  23. [ExcelColumnName("明细-检验工具/方法")] public string? InspectionMethod { get; set; }
  24. [ExcelColumnName("明细-抽样方案")] public string? SamplingScheme { get; set; }
  25. [ExcelColumnName("明细-上限")] public string? UpperLimit { get; set; }
  26. [ExcelColumnName("明细-下限")] public string? LowerLimit { get; set; }
  27. }
  28. /// <summary>过程 / FQC / OQC 检验规范导入行(三者字段一致,对应 qms_gcjygf(zb) / qms_fqcjygf(zb) / qms_oqcjygf(zb))</summary>
  29. public class AdoS0QmsProcessLikeInspectionSpecImportRow
  30. {
  31. [ExcelColumnName("适用型号")] public string? ApplicableModel { get; set; }
  32. [ExcelColumnName("文件编号")] public string? FileNumber { get; set; }
  33. [ExcelColumnName("版本")] public string? VersionNo { get; set; }
  34. [ExcelColumnName("生效日期")] public string? EffectiveDate { get; set; }
  35. [ExcelColumnName("物料编码")] public string? MaterialCode { get; set; }
  36. [ExcelColumnName("附件")] public string? Attachment { get; set; }
  37. [ExcelColumnName("附件2")] public string? Attachment2 { get; set; }
  38. [ExcelColumnName("版本号")] public int? Version { get; set; }
  39. [ExcelColumnName("明细-工序代号")] public string? OperationCode { get; set; }
  40. [ExcelColumnName("明细-工序名称")] public string? OperationName { get; set; }
  41. [ExcelColumnName("明细-检验项目")] public string? InspectionItem { get; set; }
  42. [ExcelColumnName("明细-检验方法")] public string? InspectionMethod { get; set; }
  43. [ExcelColumnName("明细-检验规格")] public string? InspectionSpec { get; set; }
  44. [ExcelColumnName("明细-检验频次")] public string? InspectionFrequency { get; set; }
  45. [ExcelColumnName("明细-上限")] public string? UpperLimit { get; set; }
  46. [ExcelColumnName("明细-下限")] public string? LowerLimit { get; set; }
  47. }
  48. /// <summary>检验规范 Excel 导入结果</summary>
  49. public class AdoS0QmsSpecImportResultDto
  50. {
  51. /// <summary>读取到的数据行总数(不含表头)</summary>
  52. public int TotalRows { get; set; }
  53. /// <summary>新增主表(规范)条数</summary>
  54. public int ImportedMasters { get; set; }
  55. /// <summary>新增明细条数</summary>
  56. public int ImportedItems { get; set; }
  57. /// <summary>跳过行数(如文件编号为空)</summary>
  58. public int SkippedRows { get; set; }
  59. /// <summary>逐行提示(跳过/异常原因)。注意:不要命名为 errors,前端响应拦截器会把非空 errors 字段判为请求失败。</summary>
  60. public List<string> RowMessages { get; set; } = [];
  61. /// <summary>汇总文案</summary>
  62. public string Message { get; set; } = string.Empty;
  63. }