|
@@ -77,7 +77,7 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
[ActionPermissionFilter(Permission = "business:sapdeliverrecord:add")]
|
|
|
- [Log(Title = "接口管理/SAP交验单记录表", BusinessType = BusinessType.INSERT)]
|
|
|
+ [Log(Title = "接口管理/SAP交验单记录表", BusinessType = BusinessType.INSERT)]
|
|
|
public IActionResult AddSapDeliverRecord([FromBody] SapDeliverRecordDto parm)
|
|
|
{
|
|
|
if (parm == null)
|
|
@@ -147,15 +147,22 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
|
|
|
{
|
|
|
return SUCCESS("导入失败。<br/><br/>导入交验单文件错误。文件不是xls文件也不是xlsx文件。");
|
|
|
}
|
|
|
- //if (!dataSet.Tables[0].Rows[0][0].ToString().Contains("北京七星华创"))
|
|
|
- //{
|
|
|
- // return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[0].TableName}】中<br/>表头为:{dataSet.Tables[0].Rows[0][0]}<br/>请确认文件无误。");
|
|
|
- //}
|
|
|
+ //获取列头
|
|
|
+ Dictionary<string, int> colHeaders = new();
|
|
|
+ for (int j = 0; j < dataSet.Tables[1].Columns.Count; j++)
|
|
|
+ {
|
|
|
+ string colHeader = dataSet.Tables[1].Rows[0][j].ToString().Trim();
|
|
|
+ colHeaders.TryAdd(colHeader, j);
|
|
|
+ }
|
|
|
//通过交验单号,验证是否以存在交验单
|
|
|
- string checkDeliverNo = dataSet.Tables[1].Rows[1][2].ToString().Trim();
|
|
|
+ if (!colHeaders.TryGetValue("CHKNO", out int colHead_chkNo))
|
|
|
+ {
|
|
|
+ return SUCCESS($"导入失败。<br/>未找到交验单号,请确认文件无误。");
|
|
|
+ }
|
|
|
+ string checkDeliverNo = dataSet.Tables[1].Rows[1][colHead_chkNo].ToString().Trim();
|
|
|
if (string.IsNullOrEmpty(checkDeliverNo))
|
|
|
{
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中<br/>C列交验单号有误。");
|
|
|
+ return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中<br/>第{colHead_chkNo}列交验单号有误。");
|
|
|
}
|
|
|
var response = _SapDeliverRecordService.GetList(
|
|
|
new SapDeliverRecordQueryDto { DeliverNo = checkDeliverNo });
|
|
@@ -168,6 +175,8 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
|
|
|
//var SheetNames = stream.GetSheetNames();
|
|
|
//list = stream.Query(sheetName: SheetNames[1]).ToList();
|
|
|
|
|
|
+ //定义要获取的列头
|
|
|
+ string[] myColHeader = { "CHKNO","ERNAM", "ITMNO", "PSPID", "EBELN", "MATNR", "MAKTX", "TXZ01", "MENGE", "CHKNG" ,"ZPPIMPLV"};
|
|
|
|
|
|
List<SapDeliverRecord> sapDeliverRecords = new();
|
|
|
//实例化交验单表对象
|
|
@@ -176,74 +185,80 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
|
|
|
{
|
|
|
//row中空单元格会转化为空字符串而不是null
|
|
|
SapDeliverRecord sapDeliverRecord = new();
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][2].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行C列,交验单编号有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapDeliverRecord.DeliverNo = dataSet.Tables[1].Rows[i][2].ToString().Trim();//*
|
|
|
- sapDeliverRecord.CheckName = dataSet.Tables[1].Rows[i][32].ToString().Trim();
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][14]!.ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行O列,生产令号有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapDeliverRecord.BomNo = dataSet.Tables[1].Rows[i][14].ToString().Trim();//*
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][3].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行D列,行项目有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapDeliverRecord.RowNo = Convert.ToInt32(dataSet.Tables[1].Rows[i][3]);//*
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][15].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行P列,采购订单号有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapDeliverRecord.PurchaseOrder = dataSet.Tables[1].Rows[i][15].ToString().Trim();//*
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][17].ToString().Trim()))
|
|
|
+ foreach (string str in myColHeader)
|
|
|
{
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行R列,物料编码有误。");
|
|
|
+ int index = -1;
|
|
|
+ if (colHeaders.TryGetValue(str,out index))
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][index].ToString().Trim()))
|
|
|
+ {
|
|
|
+ if (str == "ERNAM")
|
|
|
+ {
|
|
|
+ sapDeliverRecord.CheckName = dataSet.Tables[1].Rows[i][index].ToString().Trim();
|
|
|
+ }
|
|
|
+ else if (str == "PSPID")
|
|
|
+ {
|
|
|
+ sapDeliverRecord.BomNo = dataSet.Tables[1].Rows[i][index].ToString().Trim();
|
|
|
+ }
|
|
|
+ else if (str == "ZPPIMPLV")
|
|
|
+ {
|
|
|
+
|
|
|
+ sapDeliverRecord.KeyFlag = false;//*
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】第{i}行{index}列,{str}内容有误。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ switch (str)
|
|
|
+ {
|
|
|
+ case "CHKNO":
|
|
|
+ sapDeliverRecord.DeliverNo = dataSet.Tables[1].Rows[i][index].ToString().Trim();//*
|
|
|
+ break;
|
|
|
+ case "ERNAM":
|
|
|
+ sapDeliverRecord.CheckName = dataSet.Tables[1].Rows[i][index].ToString().Trim();
|
|
|
+ break;
|
|
|
+ case "ITMNO":
|
|
|
+ sapDeliverRecord.RowNo = Convert.ToInt32(dataSet.Tables[1].Rows[i][index]);//*
|
|
|
+ break;
|
|
|
+ case "PSPID":
|
|
|
+ sapDeliverRecord.BomNo = dataSet.Tables[1].Rows[i][index].ToString().Trim();
|
|
|
+ break;
|
|
|
+ case "EBELN":
|
|
|
+ sapDeliverRecord.PurchaseOrder = dataSet.Tables[1].Rows[i][index].ToString().Trim();//*
|
|
|
+ break;
|
|
|
+ case "MATNR":
|
|
|
+ sapDeliverRecord.MaterialCode = dataSet.Tables[1].Rows[i][index].ToString().Trim();//*
|
|
|
+ break;
|
|
|
+ case "MAKTX":
|
|
|
+ sapDeliverRecord.MaterialName = dataSet.Tables[1].Rows[i][index].ToString().Trim();//*
|
|
|
+ break;
|
|
|
+ case "TXZ01":
|
|
|
+ sapDeliverRecord.MaterialSpec = dataSet.Tables[1].Rows[i][index].ToString().Trim();//*
|
|
|
+ break;
|
|
|
+ case "MENGE":
|
|
|
+ sapDeliverRecord.Qty = Convert.ToInt32(dataSet.Tables[1].Rows[i][index]);//*
|
|
|
+ break;
|
|
|
+ case "CHKNG":
|
|
|
+ sapDeliverRecord.SpotCheckQty = Convert.ToInt32(dataSet.Tables[1].Rows[i][index]);//*
|
|
|
+ break;
|
|
|
+ case "ZPPIMPLV":
|
|
|
+ sapDeliverRecord.KeyFlag = true;//*
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
- sapDeliverRecord.MaterialCode = dataSet.Tables[1].Rows[i][17].ToString().Trim();//*
|
|
|
-
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][18].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行S列,物料名称有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapDeliverRecord.MaterialName = dataSet.Tables[1].Rows[i][18].ToString().Trim();//*
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][19].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行T列,规格型号/图号有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapDeliverRecord.MaterialSpec = dataSet.Tables[1].Rows[i][19].ToString().Trim();//*
|
|
|
|
|
|
sapDeliverRecord.Category = category;//*
|
|
|
- if (category == "外协件")//所有外协件默认都是关键件
|
|
|
- {
|
|
|
- sapDeliverRecord.KeyFlag = true;//*//非空
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- sapDeliverRecord.KeyFlag = true;//此处应读取交验单中的关键件列数据。
|
|
|
- }
|
|
|
-
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][21].ToString().Trim()))
|
|
|
- {
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行V列,物料数量有误。");
|
|
|
- }
|
|
|
- else
|
|
|
- sapDeliverRecord.Qty = Convert.ToInt32(dataSet.Tables[1].Rows[i][21]);//*
|
|
|
- if (string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][23].ToString().Trim()))
|
|
|
+ if (category == "外购件"&&!sapDeliverRecord.KeyFlag)//外购件,且非关键件则不导入,跳过
|
|
|
{
|
|
|
- return SUCCESS($"导入失败。<br/><br/>导入Excel的【{dataSet.Tables[1].TableName}】中{i + 1}行X列,抽检数量有误。");
|
|
|
+ continue;
|
|
|
}
|
|
|
- else
|
|
|
- sapDeliverRecord.SpotCheckQty = Convert.ToInt32(dataSet.Tables[1].Rows[i][23]);//*
|
|
|
|
|
|
//sapDeliverRecord.CheckQty = string.IsNullOrEmpty(dataSet.Tables[1].Rows[i][27].ToString().Trim()) ? 0 : Convert.ToInt32(dataSet.Tables[1].Rows[i][27].ToString().Trim());
|
|
|
//sapDeliverRecord.InstoreResult = 99;//*//非空 模拟数据
|
|
@@ -300,7 +315,7 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
|
|
|
string msg = _SapDeliverRecordService.ImportDatas(sapDeliverRecords);
|
|
|
|
|
|
//TODO 业务逻辑,自行插入数据到db
|
|
|
- return SUCCESS("交验单导入成功!");
|
|
|
+ return SUCCESS(msg);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -353,7 +368,7 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
|
|
|
return SUCCESS(response);
|
|
|
}
|
|
|
[HttpGet("GetSapDeliverRecordSumList")]
|
|
|
- public IActionResult GetSapDeliverRecordSumList([FromQuery] SapDeliverRecordSumQueryDto parm)
|
|
|
+ public IActionResult GetSapDeliverRecordSumList([FromQuery] SapDeliverRecordSumQueryDto parm)
|
|
|
{
|
|
|
var response = _SapDeliverRecordService.GetSapDeliverRecordSumList(parm);
|
|
|
return SUCCESS(response);
|