|
|
@ -638,13 +638,30 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts |
|
|
|
//[Authorize(SettleAccountPermissions.SettleAccounts.Default)]
|
|
|
|
public async Task<string> ExcelImport([FromForm] IFormFileCollection files, string version) |
|
|
|
{ |
|
|
|
|
|
|
|
var checkList = new List<ErrorExportDto>(); |
|
|
|
ExportImporter _exportImporter = new ExportImporter(); |
|
|
|
var result = await _exportImporter.ExtendExcelOfSheetOneImport<WmsSharePartOutPutDetial>(files, _excelImportService); |
|
|
|
//检验1:导入模板中的第一页签数据不能为空
|
|
|
|
if (result == null || result.Count == 0) |
|
|
|
{ |
|
|
|
checkList.Add(new ErrorExportDto(version, "大众备件出库单导入", string.Empty, string.Empty, string.Empty, string.Empty, "导入模板中第一页签没有数据,请检查!", string.Empty)); |
|
|
|
} |
|
|
|
if (checkList.Count > 0) |
|
|
|
{ |
|
|
|
return await ExportErrorReportAsync(checkList); |
|
|
|
} |
|
|
|
|
|
|
|
if (result == null) |
|
|
|
//检验2:导入模板中的结算数据是否为0
|
|
|
|
foreach (var itm in result) |
|
|
|
{ |
|
|
|
if (itm.Qty == 0) |
|
|
|
{ |
|
|
|
checkList.Add(new ErrorExportDto(version, "大众备件出库单导入", string.Empty, string.Empty, string.Empty, string.Empty, string.Format("导入模板中物料号{0}结算数量为0,影响出库请检查!", itm.MaterialCode), string.Empty)); |
|
|
|
} |
|
|
|
} |
|
|
|
if (checkList.Count > 0) |
|
|
|
{ |
|
|
|
throw new BusinessException("导入的模板中没有数据,不能为空,请检查!"); |
|
|
|
return await ExportErrorReportAsync(checkList); |
|
|
|
} |
|
|
|
|
|
|
|
var result90 = await _exportImporter.ExtendExcelOfSheetOneImport<WmsSharePart90OutPutDetial>(files, _excelImportService); |
|
|
@ -689,6 +706,20 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts |
|
|
|
} |
|
|
|
_lst.AddRange(_lsCopy.ToArray()); |
|
|
|
|
|
|
|
//检验3:导入模板中的SAP编号不能重复,按其汇总出库
|
|
|
|
var _isRepeatOfReportList = _lst.GroupBy(x => new { x.MaterialCode, x.Version }).Select(p => new { Count = p.Count(), MaterialCode = p.Key.MaterialCode }); |
|
|
|
foreach (var itm in _isRepeatOfReportList) |
|
|
|
{ |
|
|
|
if (itm.Count > 1) |
|
|
|
{ |
|
|
|
checkList.Add(new ErrorExportDto(version, "大众备件出库单导入", string.Empty, string.Empty, string.Empty, string.Empty, string.Format("导入模板中的物料编码{0}有重复!", itm.MaterialCode), string.Empty)); |
|
|
|
} |
|
|
|
} |
|
|
|
if (checkList.Count > 0) |
|
|
|
{ |
|
|
|
return await ExportErrorReportAsync(checkList); |
|
|
|
} |
|
|
|
|
|
|
|
//var _ls1 = _lst.Where(p => p.ParentMaterialCode == p.MaterialCode).ToList();
|
|
|
|
var outPutDetail = await _wmsRepository.Where(p => p.Version == version).ToListAsync(); |
|
|
|
|
|
|
@ -701,7 +732,7 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts |
|
|
|
|
|
|
|
var errList = error.GroupBy(p => new { p.BillNum }).Select(p => new { BillNum = p.Key.BillNum, Number = p.Sum(itm => itm.Qty) }); |
|
|
|
|
|
|
|
var checkList = new List<ErrorExportDto>(); |
|
|
|
|
|
|
|
foreach (var itm in errList) |
|
|
|
{ |
|
|
|
checkList.Add(new ErrorExportDto() { Message = string.Format("出库单号:{0}重复记录数:{1}条", itm.BillNum, itm.Number) }); |
|
|
@ -771,6 +802,21 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts |
|
|
|
} |
|
|
|
_lst.AddRange(_lsCopy.ToArray()); |
|
|
|
|
|
|
|
//检验3:导入模板中的订单号+物料号不能重复
|
|
|
|
var _isRepeatOfReportList = _lst.GroupBy(x => new { x.MaterialCode,x.OrderBillNum, x.Version }).Select(p => new { Count = p.Count(), MaterialCode = p.Key.MaterialCode, OrderBillNum =p.Key.OrderBillNum}); |
|
|
|
foreach (var itm in _isRepeatOfReportList) |
|
|
|
{ |
|
|
|
if (itm.Count > 1) |
|
|
|
{ |
|
|
|
checkList.Add(new ErrorExportDto(version, "大众备件出库单导入", string.Empty, string.Empty, string.Empty, string.Empty, string.Format("导入模板中订单号{0}组合物料号{1}有重复,请检查!!",itm.OrderBillNum, itm.MaterialCode), string.Empty)); |
|
|
|
} |
|
|
|
} |
|
|
|
if (checkList.Count > 0) |
|
|
|
{ |
|
|
|
return await ExportErrorReportAsync(checkList); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var outPutDetail = await _wmsRepository90.Where(p => p.Version == version).ToListAsync(); |
|
|
|
|
|
|
|
|
|
|
@ -784,7 +830,6 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts |
|
|
|
|
|
|
|
var errList = error.GroupBy(p => new { p.BillNum }).Select(p => new { BillNum = p.Key.BillNum, Number = p.Sum(itm => itm.Qty) }); |
|
|
|
|
|
|
|
var checkList = new List<ErrorExportDto>(); |
|
|
|
foreach (var itm in errList) |
|
|
|
{ |
|
|
|
checkList.Add(new ErrorExportDto() { Message = string.Format("出库单号:{0}重复记录数:{1}条", itm.BillNum, itm.Number) }); |
|
|
|