From 912ddae8c551824033d7501ba30cc03f9d9349f6 Mon Sep 17 00:00:00 2001 From: Carl Date: Thu, 8 Jan 2026 11:45:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 35 ++++++++++++++++ .vscode/tasks.json | 41 +++++++++++++++++++ .../MmMaterialController.cs | 2 +- .../Material/IService/IMmMaterialService.cs | 2 +- .../MES/Material/MmMaterialService.cs | 19 ++++----- 5 files changed, 85 insertions(+), 14 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..82bc678 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + // 使用 IntelliSense 找出 C# 调试存在哪些属性 + // 将悬停用于现有属性的说明 + // 有关详细信息,请访问 https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md。 + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // 如果已更改目标框架,请确保更新程序路径。 + "program": "${workspaceFolder}/DOAN.Admin.WebApi/bin/Debug/net8.0/DOAN.Admin.WebApi.dll", + "args": [], + "cwd": "${workspaceFolder}/DOAN.Admin.WebApi", + "stopAtEntry": false, + // 启用在启动 ASP.NET Core 时启动 Web 浏览器。有关详细信息: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+(https?://\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..ed58208 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,41 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/DOAN.Admin.WebApi/DOAN.Admin.WebApi.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/DOAN.Admin.WebApi/DOAN.Admin.WebApi.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/DOAN.Admin.WebApi/DOAN.Admin.WebApi.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/DOAN.Admin.WebApi/Controllers/MES/Material/productionMaterial/MmMaterialController.cs b/DOAN.Admin.WebApi/Controllers/MES/Material/productionMaterial/MmMaterialController.cs index 5454370..517089c 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/Material/productionMaterial/MmMaterialController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/Material/productionMaterial/MmMaterialController.cs @@ -138,7 +138,7 @@ namespace DOAN.Admin.WebApi.Controllers.BZFM { return SUCCESS(null); } - int response = _MmMaterialService.Importmaterial(formFile, HttpContext.GetName()); + ImportResultDto response = _MmMaterialService.Importmaterial(formFile, HttpContext.GetName()); return SUCCESS(response); } diff --git a/DOAN.Service/MES/Material/IService/IMmMaterialService.cs b/DOAN.Service/MES/Material/IService/IMmMaterialService.cs index 0bbb8ac..410b7be 100644 --- a/DOAN.Service/MES/Material/IService/IMmMaterialService.cs +++ b/DOAN.Service/MES/Material/IService/IMmMaterialService.cs @@ -28,7 +28,7 @@ namespace DOAN.Service.BZFM.IBZFMService /// /// /// - int Importmaterial(IFormFile formFile, string username); + ImportResultDto Importmaterial(IFormFile formFile, string username); public PagedInfo SelectMaterialList(MmMaterialQueryDto material, PagerInfo pager); diff --git a/DOAN.Service/MES/Material/MmMaterialService.cs b/DOAN.Service/MES/Material/MmMaterialService.cs index cb239af..aca121c 100644 --- a/DOAN.Service/MES/Material/MmMaterialService.cs +++ b/DOAN.Service/MES/Material/MmMaterialService.cs @@ -147,14 +147,7 @@ namespace DOAN.Service.BZFM { // TODO 1.构建空的待导入数据集合MmMaterialExcelDto,多余部分删除 - int result = 0; - List materialList = new(); - DateTime dateValue = DateTime.MinValue; - // 获取 产品代号 - List ProductCodeList = Context - .Queryable() - .Where(it => it.Type == "type") - .ToList(); + List materialList = new(); // TODO 2.使用NPOI读取Excel内容,填充到MmMaterialExcelDto集合中,注意列的对应关系,id不要忘,且跳过标题行,目前需要从第2行开始读取注意修改row using (var stream = formFile.OpenReadStream()) { @@ -167,8 +160,6 @@ namespace DOAN.Service.BZFM IRow secondRow = sheet.GetRow(1); NPOI.SS.UserModel.ICell cell = secondRow.GetCell(0); - // 将单元格的数字值转换为DateTime - dateValue = cell.DateCellValue.Value; #region 读取excel // 遍历每一行 @@ -179,6 +170,10 @@ namespace DOAN.Service.BZFM { MmMaterial material = new MmMaterial(); + //00 ID + NPOI.SS.UserModel.ICell currentCell_00 = currentRow.GetCell(0); + material.Id = (int)currentCell_00?.NumericCellValue; + //01 物料标号 NPOI.SS.UserModel.ICell currentCell_01 = currentRow.GetCell(1); material.Type = currentCell_01?.ToString(); @@ -295,7 +290,7 @@ namespace DOAN.Service.BZFM } catch (Exception ex) { - //return -1; + return -1; } @@ -303,7 +298,7 @@ namespace DOAN.Service.BZFM // TODO 3.调用SplitInsert方法实现导入操作,注意主键列的配置(建议优化为,ID相同则修改,不同则新增) var x = Context - .Storageable(material) + .Storageable(materialList) .SplitInsert(it => !it.Any()) .WhereColumns(it => new { it.Id, it.MaterialCode }) //如果不是主键可以这样实现(多字段it=>new{it.x1,it.x2}) .ToStorage();