From dc708ece0dce875d0d296ba56f8b59ae6f392e27 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 22 三月 2024 09:56:13 +0800
Subject: [PATCH] 1.生产进度报表查询参数删减 2.新工单带出历史最新一次工序信息查询接口修改
---
VueWebCoreApi/Tools/ImportExcel.cs | 89 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 87 insertions(+), 2 deletions(-)
diff --git a/VueWebCoreApi/Tools/ImportExcel.cs b/VueWebCoreApi/Tools/ImportExcel.cs
index a3c206b..fca0173 100644
--- a/VueWebCoreApi/Tools/ImportExcel.cs
+++ b/VueWebCoreApi/Tools/ImportExcel.cs
@@ -1148,7 +1148,7 @@
{
mes.code = "300";
- mes.Message = "鏂囦欢鏁版嵁涓嶈兘涓虹┖锛�";
+ mes.message = "鏂囦欢鏁版嵁涓嶈兘涓虹┖锛�";
}
}
@@ -1211,7 +1211,7 @@
if (table.Rows.Count <= 0)
{
mes.code = "300";
- mes.Message = "涓诲瓙琛ㄦ枃浠朵腑鏁版嵁涓嶈兘涓虹┖锛�";
+ mes.message = "涓诲瓙琛ㄦ枃浠朵腑鏁版嵁涓嶈兘涓虹┖锛�";
}
}
}
@@ -1273,5 +1273,90 @@
return table.Rows.Count;
}
#endregion
+
+
+ #region
+ public static List<ExcelErro> InportExcelToTableListErro(List<DataTable> excelTable)
+ {
+ List<ExcelErro> list = new List<ExcelErro>();
+ for (int i = 0; i < excelTable.Count; i++)
+ {
+ var emptyColumn = excelTable[i].Columns.Cast<DataColumn>().FirstOrDefault(
+ column => column.ColumnName.Contains("*") && excelTable[i].AsEnumerable().Any(row => row.IsNull(column))
+ );
+
+ if (emptyColumn != null)
+ {
+ int columnIndex = excelTable[i].Columns.IndexOf(emptyColumn);
+ int rowIndex = excelTable[i].AsEnumerable().ToList().FindIndex(row => row.IsNull(emptyColumn));
+ ExcelErro erro = new ExcelErro();
+ erro.RoeNumber = (rowIndex + 1).ToString();
+ erro.ErrorField = emptyColumn.ColumnName;
+ erro.ErrorCont = "妯℃澘琛ㄥご甯�*鐨勫垪涓瓨鍦ㄧ┖鍊�,绗�" + (rowIndex + 1).ToString() + "琛�,蹇呭~瀛楁锛�" + emptyColumn.ColumnName + "涓虹┖";
+ list.Add(erro);
+ }
+ if (excelTable[i].Columns.Cast<DataColumn>().Any(column => column.ColumnName.Contains("M")))
+ {
+ // 鍏堟寜鐓у垪鍚嶅寘鍚�"M"鏍囪瘑鐨勫垪鍒嗙粍
+ var mColumns = excelTable[i].Columns.Cast<DataColumn>()
+ .Where(c => c.ColumnName.Contains("M"))
+ .ToList();
+
+ var groups = excelTable[i].AsEnumerable()
+ .GroupBy(r => string.Join("-", mColumns.Select(c => r[c])));
+
+ foreach (var group in groups)
+ {
+ // 鍒ゆ柇鍒楀悕鍖呭惈"鍞竴"鏍囪瘑鐨勫垪鐨勫垪鍊兼槸鍚﹂噸澶�
+ var uniqueColumnName = excelTable[i].Columns.Cast<DataColumn>()
+ .Where(c => c.ColumnName.Contains("鍞竴"))
+ .Select(c => c.ColumnName)
+ .FirstOrDefault();
+
+ var duplicateUniqueValues = group
+ .GroupBy(r => r[uniqueColumnName])
+ .Where(g => g.Count() > 1)
+ .Select(g => g.Key);
+
+ foreach (var value in duplicateUniqueValues)
+ {
+ ExcelErro erro = new ExcelErro();
+ erro.RoeNumber = "/";
+ erro.ErrorField = mColumns[0].ToString();
+ erro.ErrorCont = "妯℃澘琛ㄥご瀛楁銆�"+ mColumns[0].ToString() + "銆戜笅鐨勫��:"+ group.Key + ",瀵瑰簲甯�(鍞竴)鐨勫垪涓瓨鍦ㄩ噸澶嶅�间负锛�"+value+"";
+ list.Add(erro);
+ }
+ }
+ }
+ else
+ {
+ var duplicateColumn = excelTable[i].Columns.Cast<DataColumn>().FirstOrDefault(
+ column => column.ColumnName.Contains("鍞竴") && excelTable[i].AsEnumerable().GroupBy(row => row[column]).Any(group => group.Count() > 1));
+ if (duplicateColumn != null)
+ {
+ int columnIndex = excelTable[i].Columns.IndexOf(duplicateColumn);
+ var duplicateRows = excelTable[i].AsEnumerable()
+ .Where(row => row[duplicateColumn] != DBNull.Value)
+ .GroupBy(row => row[duplicateColumn])
+ .Where(group => group.Count() > 1)
+ .SelectMany(group => group.ToList())
+ .ToList();
+ foreach (var row in duplicateRows)
+ {
+ ExcelErro erro = new ExcelErro();
+ erro.RoeNumber = excelTable[i].Rows.IndexOf(row).ToString();
+ erro.ErrorField = duplicateColumn.ColumnName;
+ erro.ErrorCont = "妯℃澘琛ㄥご甯�(鍞竴)鐨勫垪涓瓨鍦ㄩ噸澶嶅��,绗�" + excelTable[i].Rows.IndexOf(row).ToString() + "琛�,蹇呭~瀛楁锛�" + duplicateColumn.ColumnName + "閲嶅";
+ list.Add(erro);
+
+ }
+ }
+ }
+
+
+ }
+ return list;
+ }
+ #endregion
}
}
--
Gitblit v1.9.3