优化物料导入功能,完善报错信息
This commit is contained in:
@@ -145,7 +145,7 @@ namespace DOAN.Service.BZFM
|
||||
/// <returns></returns>
|
||||
public ImportResultDto Importmaterial(IFormFile formFile, string username)
|
||||
{
|
||||
|
||||
string message = "导入成功";
|
||||
// TODO 1.构建空的待导入数据集合MmMaterialExcelDto,多余部分删除
|
||||
List<MmMaterialExcelDto> materialList = new();
|
||||
// TODO 2.使用NPOI读取Excel内容,填充到MmMaterialExcelDto集合中,注意列的对应关系,id不要忘,且跳过标题行,目前需要从第2行开始读取注意修改row
|
||||
@@ -172,84 +172,67 @@ namespace DOAN.Service.BZFM
|
||||
|
||||
//01 物料标号
|
||||
NPOI.SS.UserModel.ICell currentCell_01 = currentRow.GetCell(1);
|
||||
material.Type = currentCell_01?.ToString();
|
||||
if (currentCell_01 == null || string.IsNullOrEmpty(material.Type))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
material.Type = currentCell_01?.ToString() ?? string.Empty;
|
||||
|
||||
//02物料编码
|
||||
NPOI.SS.UserModel.ICell currentCell_02 = currentRow.GetCell(2);
|
||||
|
||||
material.MaterialCode = currentCell_02?.ToString();
|
||||
if (
|
||||
currentCell_02 == null
|
||||
|| string.IsNullOrEmpty(material.MaterialCode)
|
||||
)
|
||||
{
|
||||
continue;
|
||||
message = $"物料编码不可为空,第{row + 1}行";
|
||||
break;
|
||||
}
|
||||
|
||||
//03物料名称
|
||||
NPOI.SS.UserModel.ICell currentCell_03 = currentRow.GetCell(3);
|
||||
|
||||
material.MaterialName = currentCell_03?.ToString();
|
||||
if (
|
||||
currentCell_03 == null
|
||||
|| string.IsNullOrEmpty(material.MaterialName)
|
||||
)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
material.MaterialName = currentCell_03?.ToString() ?? string.Empty;
|
||||
|
||||
//04规格
|
||||
NPOI.SS.UserModel.ICell currentCell_04 = currentRow.GetCell(4);
|
||||
|
||||
material.Specification = currentCell_04?.ToString();
|
||||
material.Specification = currentCell_04?.ToString() ?? string.Empty;
|
||||
|
||||
//05 类型编码
|
||||
NPOI.SS.UserModel.ICell currentCell_05 = currentRow.GetCell(5);
|
||||
|
||||
material.CategoryCode = currentCell_05?.ToString();
|
||||
if (
|
||||
currentCell_05 == null
|
||||
|| string.IsNullOrEmpty(material.CategoryCode)
|
||||
)
|
||||
{
|
||||
continue;
|
||||
message = $"类型编码不可为空,第{row + 1}行";
|
||||
break;
|
||||
}
|
||||
|
||||
//06 类型名称
|
||||
NPOI.SS.UserModel.ICell currentCell_06 = currentRow.GetCell(6);
|
||||
|
||||
material.CategoryName = currentCell_06?.ToString();
|
||||
if (
|
||||
currentCell_06 == null
|
||||
|| string.IsNullOrEmpty(material.CategoryName)
|
||||
)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
material.CategoryName = currentCell_06?.ToString() ?? string.Empty;
|
||||
//07 单位
|
||||
NPOI.SS.UserModel.ICell currentCell_07 = currentRow.GetCell(7);
|
||||
|
||||
material.Unit = currentCell_07?.ToString();
|
||||
|
||||
material.Unit = currentCell_07?.ToString() ?? string.Empty;
|
||||
//08 供应商编码
|
||||
NPOI.SS.UserModel.ICell currentCell_08 = currentRow.GetCell(8);
|
||||
|
||||
material.SupplierCode = currentCell_08?.ToString();
|
||||
material.SupplierCode = currentCell_08?.ToString() ?? string.Empty;
|
||||
//09 供应商名称
|
||||
NPOI.SS.UserModel.ICell currentCell_09 = currentRow.GetCell(9);
|
||||
|
||||
material.SupplierName = currentCell_09?.ToString();
|
||||
|
||||
//10 状态
|
||||
material.SupplierName = currentCell_09?.ToString() ?? string.Empty;
|
||||
//10 安全库存
|
||||
NPOI.SS.UserModel.ICell currentCell_10 = currentRow.GetCell(10);
|
||||
|
||||
material.Status = currentCell_10?.ToString();
|
||||
|
||||
material.SafetyStock = (int)currentCell_10?.NumericCellValue;
|
||||
//11 状态
|
||||
NPOI.SS.UserModel.ICell currentCell_11 = currentRow.GetCell(11);
|
||||
material.Status = currentCell_11?.ToString() ?? "启用";
|
||||
//12 创建时间
|
||||
NPOI.SS.UserModel.ICell currentCell_12 = currentRow.GetCell(12);
|
||||
material.CreatedTime = currentCell_12?.DateCellValue ?? DateTime.Now;
|
||||
//13 更新时间
|
||||
NPOI.SS.UserModel.ICell currentCell_13 = currentRow.GetCell(13);
|
||||
material.UpdatedTime = currentCell_13?.DateCellValue ?? DateTime.Now;
|
||||
//14 描述
|
||||
NPOI.SS.UserModel.ICell currentCell_14 = currentRow.GetCell(14);
|
||||
material.Description = currentCell_14?.ToString() ?? "Excel导入";
|
||||
materialList.Add(material);
|
||||
}
|
||||
}
|
||||
@@ -267,14 +250,15 @@ namespace DOAN.Service.BZFM
|
||||
|
||||
var x = Context
|
||||
.Storageable(materialList)
|
||||
.SplitInsert(it => !it.Any())
|
||||
.WhereColumns(it => it.Id) //如果不是主键可以这样实现(多字段it=>new{it.x1,it.x2})
|
||||
//.SplitInsert(it => !it.Any())
|
||||
//.WhereColumns(it => it.Id) //如果不是主键可以这样实现(多字段it=>new{it.x1,it.x2})
|
||||
.ToStorage();
|
||||
var result = x.AsUpdateable.ExecuteCommand(); //插入可插入部分;
|
||||
var result = x.AsInsertable.ExecuteCommand();
|
||||
var result2 = x.AsUpdateable.IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand(); //插入可插入部分;
|
||||
|
||||
var importResult = new ImportResultDto
|
||||
{
|
||||
Message = "导入完成",
|
||||
Message = message,
|
||||
Inserted = x.InsertList.Count,
|
||||
Updated = x.UpdateList.Count,
|
||||
ErrorCount = x.ErrorList.Count,
|
||||
|
||||
Reference in New Issue
Block a user