|
@@ -194,55 +194,104 @@ namespace ZR.Admin.WebApi.Controllers.OutStore
|
|
|
|
|
|
List<SapOutTaskRecord> sapOutTaskRecords = new();
|
|
|
//实例化交验单表对象
|
|
|
+ //获取列头
|
|
|
+ Dictionary<string, int> colHeaders = new();
|
|
|
+ for (int j = 0; j < dataSet.Tables[0].Columns.Count; j++)
|
|
|
+ {
|
|
|
+ string colHeader = dataSet.Tables[0].Rows[0][j].ToString().Trim();
|
|
|
+ colHeaders.TryAdd(colHeader, j);
|
|
|
+ }
|
|
|
+ //定义要获取的列头
|
|
|
+ string[] myColHeader = {"领料单号","WBS元素","物料","材料名称","规格型号", "计量单位", "数量"};
|
|
|
for (int i = 1; i < dataSet.Tables[0].Rows.Count; i++)
|
|
|
//去除第一行标题行
|
|
|
{
|
|
|
+ //如果行有内容,列肯定有内容,所以不判断colHeader元素数量
|
|
|
//row中空单元格会转化为空字符串而不是null
|
|
|
SapOutTaskRecord sapOutTaskRecord = new();
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][1].ToString().Trim()))
|
|
|
+ foreach (string str in myColHeader)
|
|
|
{
|
|
|
- return SUCCESS($"导入失败。<br/><br/>{i + 1}行B列,领料单号有误。");
|
|
|
+ int index = -1;
|
|
|
+ switch (str)
|
|
|
+ {
|
|
|
+ case "领料单号":
|
|
|
+ if (colHeaders.TryGetValue("领料单号", out index))
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][index].ToString().Trim()))
|
|
|
+ {
|
|
|
+ return SUCCESS($"导入失败。<br/><br/>领料单号有误。");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ sapOutTaskRecord.OutTaskNo = dataSet.Tables[0].Rows[i][index].ToString().Trim();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "WBS元素":
|
|
|
+ if (colHeaders.TryGetValue("WBS元素", out index))
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][index]!.ToString().Trim()))
|
|
|
+ {
|
|
|
+ return SUCCESS($"导入失败。<br/><br/>WBS元素有误。");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ sapOutTaskRecord.BomNo = dataSet.Tables[0].Rows[i][index].ToString().Trim();//*
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "物料":
|
|
|
+ if (colHeaders.TryGetValue("物料", out index))
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][index].ToString().Trim()))
|
|
|
+ {
|
|
|
+ return SUCCESS($"导入失败。<br/><br/>物料(编码)有误。");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ sapOutTaskRecord.MaterialCode = dataSet.Tables[0].Rows[i][index].ToString().Trim();//*
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "材料名称":
|
|
|
+ if (colHeaders.TryGetValue("材料名称", out index))
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][index].ToString().Trim()))
|
|
|
+ {
|
|
|
+ return SUCCESS($"导入失败。<br/><br/>材料名称有误。");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ sapOutTaskRecord.MaterialName = dataSet.Tables[0].Rows[i][index].ToString().Trim();//*
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "规格型号":
|
|
|
+ if (colHeaders.TryGetValue("规格型号", out index))
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][index].ToString().Trim()))
|
|
|
+ {
|
|
|
+ return SUCCESS($"导入失败。<br/><br/>规格型号/图号有误。");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ sapOutTaskRecord.MaterialSpec = dataSet.Tables[0].Rows[i][index].ToString().Trim();//*
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "计量单位":
|
|
|
+ if (colHeaders.TryGetValue("计量单位", out index))
|
|
|
+ {
|
|
|
+ sapOutTaskRecord.Unit = dataSet.Tables[0].Rows[i][index].ToString().Trim();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "数量":
|
|
|
+ if (colHeaders.TryGetValue("数量", out index))
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][index].ToString().Trim()))
|
|
|
+ {
|
|
|
+ return SUCCESS($"导入失败。<br/><br/>物料数量有误。");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ sapOutTaskRecord.Qty = Convert.ToInt32(dataSet.Tables[0].Rows[i][index]);//*
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
- sapOutTaskRecord.OutTaskNo = dataSet.Tables[0].Rows[i][1].ToString().Trim();//*
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][9]!.ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>{i + 1}行J列,WBS元素有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapOutTaskRecord.BomNo = dataSet.Tables[0].Rows[i][9].ToString().Trim();//*
|
|
|
-
|
|
|
sapOutTaskRecord.Category = "";//暂时没用,给个空字符串
|
|
|
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][7].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>{i + 1}行H列,物料编码有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapOutTaskRecord.MaterialCode = dataSet.Tables[0].Rows[i][7].ToString().Trim();//*
|
|
|
-
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][20].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>{i + 1}行U列,物料名称有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapOutTaskRecord.MaterialName = dataSet.Tables[0].Rows[i][20].ToString().Trim();//*
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][19].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>{i + 1}行T列,规格型号/图号有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapOutTaskRecord.MaterialSpec = dataSet.Tables[0].Rows[i][19].ToString().Trim();//*
|
|
|
-
|
|
|
- sapOutTaskRecord.Unit= dataSet.Tables[0].Rows[i][11].ToString().Trim();
|
|
|
-
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[0].Rows[i][12].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>{i + 1}行M列,物料数量有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapOutTaskRecord.Qty = Convert.ToInt32(dataSet.Tables[0].Rows[i][12]);//*
|
|
|
-
|
|
|
sapOutTaskRecord.OutQty = 0;
|
|
|
|
|
|
sapOutTaskRecord.CreateBy = HttpContext.GetName();
|
|
@@ -255,7 +304,7 @@ namespace ZR.Admin.WebApi.Controllers.OutStore
|
|
|
string msg = _SapOutTaskRecordService.ImportDatas(sapOutTaskRecords);
|
|
|
|
|
|
//TODO 业务逻辑,自行插入数据到db
|
|
|
- return SUCCESS("交验单导入成功!");
|
|
|
+ return SUCCESS("出库任务单导入成功!");
|
|
|
}
|
|
|
|
|
|
|