From 898ee3de2aa3bd889ef9c5707848bb7bc5b16036 Mon Sep 17 00:00:00 2001 From: git_rabbit Date: Mon, 9 Feb 2026 16:23:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=B7=A5=E5=8D=95):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E7=BC=BA=E9=99=B7=E6=95=B0=E9=87=8F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=B9=B6=E4=BC=98=E5=8C=96=E5=AF=BC=E5=85=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为工单模型添加缺陷数量字段,优化Excel导入逻辑 增加必填字段校验和异常处理,完善默认值设置 --- .../MES/Product/ProWorkorderController.cs | 36 ++++++++---- .../wwwroot/ImportTemplate/workorder.xlsx | Bin 11972 -> 11836 bytes DOAN.Model/MES/Product/Dto/ProWorkorderDto.cs | 5 +- DOAN.Model/MES/Product/ProWorkorder.cs | 6 ++ .../MES/Product/ProWorkorderImportService.cs | 53 ++++++++---------- 5 files changed, 58 insertions(+), 42 deletions(-) diff --git a/DOAN.Admin.WebApi/Controllers/MES/Product/ProWorkorderController.cs b/DOAN.Admin.WebApi/Controllers/MES/Product/ProWorkorderController.cs index d5baad4..a947d04 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/Product/ProWorkorderController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/Product/ProWorkorderController.cs @@ -217,13 +217,21 @@ namespace DOAN.Admin.WebApi.Controllers [AllowAnonymous] public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile) { - if (formFile == null) + try { - return SUCCESS(null); - } - int response = _ProWorkorderService.ImportData(formFile, HttpContext.GetName()); + if (formFile == null) + { + return SUCCESS(null); + } + int response = _ProWorkorderService.ImportData(formFile, HttpContext.GetName()); + + return SUCCESS(response); + } + catch (Exception ex) + { + return ToResponse(new ApiResult(500, ex.Message)); + } - return SUCCESS(response); } //TODO 分批导入工单,追加工单 @@ -237,13 +245,21 @@ namespace DOAN.Admin.WebApi.Controllers [AllowAnonymous] public IActionResult ImportDataAppend([FromForm(Name = "file")] IFormFile formFile) { - if (formFile == null) + try { - return SUCCESS(null); - } - int response = _ProWorkorderService.ImportDataAppend(formFile, HttpContext.GetName()); + if (formFile == null) + { + return SUCCESS(null); + } + int response = _ProWorkorderService.ImportDataAppend(formFile, HttpContext.GetName()); + + return SUCCESS(response); + } + catch (Exception ex) + { + return ToResponse(new ApiResult(500, ex.Message)); + } - return SUCCESS(response); } /// diff --git a/DOAN.Admin.WebApi/wwwroot/ImportTemplate/workorder.xlsx b/DOAN.Admin.WebApi/wwwroot/ImportTemplate/workorder.xlsx index be2589c509402a02728fdb0ffefe3f6ff726fcf8..09bc5d1f9867a71b6f561e1c08880aca230453d5 100644 GIT binary patch delta 7895 zcmZ8`bySpn*Y3d3(hS`_bPp-rjdXXXGy)C{(lE5r4MRu>A~mES4bq(wl9GZPpXWR0 zd)IsJKlZxUwQK#ZzxK8FfO)4`V=5A~eg5QF9SHz%Lk0i{004lUr>(ZPrMvxU-qN^vQPA1 z?ECrndb=nqWjc+p<0a2A9C7fJB z89r0{@}RFM?}$e6vn?90OwtS5u!?&iXB%+q9vAP-zl`OY^IO9(cH#4XWvq;!C(TDu zE8g=w5KiRT-PWUEU_$kC%pvqgzDHI_FP_EPQiUo)O(mhJEbhUMm{d|x~<$`1COcpmi~k^j6=E%GLA0(f!%(B$b$;pJ1FkY1BE&z+OEoCptre%$$TM zg64HjZ^I=@fzTf?s35xj%yad_cd(lz#Jx4GA5SU*e8Gpg`U)tES^R86l<$tU9{+J~ zo_c0&aTKOXWdEb9?nO5gAi@2^S8|Cml>+96B7-F(egQE?0|4HU!g^6?ph-sGyh}wu zYg*qQfrB>wIA}crpS~{et_qqe|19=!m4e6|Y8c7I zuLzgT!M+x-oz8b=In71UgxXBSMV;>|@AO)qdxr4Cz$_E=LRcZQ9)e;Hn}NmLpwn$J zieG`h%=pVsnd#_>82B!z(f+VH@~C>Z-pX-x$(@+d nB?>Z?1ft1Pb-QIma`qX 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 delta 8064 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 + /// 缺陷数量 + /// + [SugarColumn(ColumnName = "defect_num")] + public int? DefectNum { get; set; } + /// /// 序号 /// diff --git a/DOAN.Service/MES/Product/ProWorkorderImportService.cs b/DOAN.Service/MES/Product/ProWorkorderImportService.cs index 0820365..d35afcf 100644 --- a/DOAN.Service/MES/Product/ProWorkorderImportService.cs +++ b/DOAN.Service/MES/Product/ProWorkorderImportService.cs @@ -62,12 +62,12 @@ namespace DOAN.Service.MES.product { ProWorkorder workorder = new ProWorkorder(); - //00 成品名称 + //00 主体品名 ICell currentCell_01 = currentRow.GetCell(0); workorder.productionName = currentCell_01?.ToString(); if (currentCell_01 == null || string.IsNullOrEmpty(workorder.productionName)) { - continue; + throw new Exception($"{row + 1}行【主体品名】不可为空"); } //01 成品型号 @@ -75,7 +75,7 @@ namespace DOAN.Service.MES.product workorder.productionCode = currentCell_02?.ToString(); if (currentCell_02 == null || string.IsNullOrEmpty(workorder.productionCode)) { - continue; + throw new Exception($"{row + 1}行【主体型号】不可为空"); } //02 单位 @@ -85,13 +85,17 @@ namespace DOAN.Service.MES.product //3 计划数量 ICell currentCell_07 = currentRow.GetCell(3); workorder.PlanNum = (int)currentCell_07?.NumericCellValue; + if (currentCell_07 == null || workorder.PlanNum < 0) + { + workorder.PlanNum = 0; + } //4 原材料名称 ICell currentCell_11 = currentRow.GetCell(4); workorder.MaterialName = currentCell_11?.ToString(); if (currentCell_11 == null || string.IsNullOrEmpty(workorder.MaterialName)) { - continue; + throw new Exception($"{row + 1}行【材料型号】不可为空"); } //5 原材料编号 @@ -99,7 +103,7 @@ namespace DOAN.Service.MES.product workorder.MaterialCode = currentCell_12?.ToString(); if (currentCell_12 == null || string.IsNullOrEmpty(workorder.MaterialCode)) { - continue; + throw new Exception($"{row + 1}行【材料编码】不可为空"); } //6 原材料材质 @@ -109,18 +113,10 @@ namespace DOAN.Service.MES.product //7 炉号 ICell currentCell_14 = currentRow.GetCell(7); workorder.StoveCode = currentCell_14?.ToString(); - if (currentCell_14 == null || string.IsNullOrEmpty(workorder.StoveCode)) - { - continue; - } //8 图号 ICell currentCell_15 = currentRow.GetCell(8); workorder.DrawingCode = currentCell_15?.ToString(); - if (currentCell_15 == null || string.IsNullOrEmpty(workorder.DrawingCode)) - { - continue; - } //9 版本 ICell currentCell_16 = currentRow.GetCell(9); @@ -301,7 +297,7 @@ namespace DOAN.Service.MES.product workorder.productionName = currentCell_01?.ToString(); if (currentCell_01 == null || string.IsNullOrEmpty(workorder.productionName)) { - continue; + throw new Exception($"{row + 1}行【主体品名】不可为空"); } //01 成品型号 @@ -309,7 +305,7 @@ namespace DOAN.Service.MES.product workorder.productionCode = currentCell_02?.ToString(); if (currentCell_02 == null || string.IsNullOrEmpty(workorder.productionCode)) { - continue; + throw new Exception($"{row + 1}行【主体型号】不可为空"); } //02 单位 @@ -319,13 +315,17 @@ namespace DOAN.Service.MES.product //3 计划数量 ICell currentCell_07 = currentRow.GetCell(3); workorder.PlanNum = (int)currentCell_07?.NumericCellValue; + if (currentCell_07 == null || workorder.PlanNum < 0) + { + workorder.PlanNum = 0; + } //4 原材料名称 ICell currentCell_11 = currentRow.GetCell(4); workorder.MaterialName = currentCell_11?.ToString(); if (currentCell_11 == null || string.IsNullOrEmpty(workorder.MaterialName)) { - continue; + throw new Exception($"{row + 1}行【材料型号】不可为空"); } //5 原材料编号 @@ -333,32 +333,20 @@ namespace DOAN.Service.MES.product workorder.MaterialCode = currentCell_12?.ToString(); if (currentCell_12 == null || string.IsNullOrEmpty(workorder.MaterialCode)) { - continue; + throw new Exception($"{row + 1}行【材料编码】不可为空"); } //6 材质 ICell currentCell_13 = currentRow.GetCell(6); workorder.MaterialtextureCode = currentCell_13?.ToString(); - if (currentCell_13 == null || string.IsNullOrEmpty(workorder.MaterialtextureCode)) - { - continue; - } //7 炉号 ICell currentCell_14 = currentRow.GetCell(7); workorder.StoveCode = currentCell_14?.ToString(); - if (currentCell_14 == null || string.IsNullOrEmpty(workorder.StoveCode)) - { - continue; - } //8 图号 ICell currentCell_15 = currentRow.GetCell(8); workorder.DrawingCode = currentCell_15?.ToString(); - if (currentCell_15 == null || string.IsNullOrEmpty(workorder.DrawingCode)) - { - continue; - } //9 版本 ICell currentCell_16 = currentRow.GetCell(9); @@ -368,6 +356,10 @@ namespace DOAN.Service.MES.product ICell cell17 = currentRow.GetCell(10); // 将单元格的数字值转换为DateTime workorder.InstructionDate = cell17.DateCellValue.Value; + if(cell17 == null) + { + workorder.InstructionDate = dateValue; + } // 11 车间code ICell currentCell_18 = currentRow.GetCell(11); @@ -491,7 +483,7 @@ namespace DOAN.Service.MES.product } catch (Exception ex) { - return -1; + throw new Exception(ex.Message); } } @@ -501,6 +493,7 @@ namespace DOAN.Service.MES.product result = Context.Insertable(workorderList).ExecuteCommand(); }); + return result; } }