| | |
| | | code = ""; |
| | | List<DataTable> excelTable = new List<DataTable>(); |
| | | excelTable = ImportExcel.ExcelToTableList(FileCode); |
| | | |
| | | |
| | | return Message; |
| | | } |
| | | #endregion |
| | |
| | | #endregion |
| | | |
| | | #region【Excel模板上传验证,存货档案模板】 |
| | | public static string Eight(string FileCode, out string code) |
| | | public static string Eight(List<DataTable> excelTable, out string code) |
| | | { |
| | | string Message = ""; |
| | | code = ""; |
| | | DataTable excelTable = new DataTable(); |
| | | excelTable = ImportExcel.ExcelToTable(FileCode); |
| | | if (excelTable.Columns.Count != 11) |
| | | if (excelTable.Count != 2) |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "导入模板不符合规范,请检查sheet数"; |
| | | return Message; |
| | | |
| | | } |
| | | else if (excelTable.Columns[0].ColumnName != "序号") |
| | | else if (excelTable[0].Columns.Count != 3) |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货分类模板不符合规范,请检查列名字段数"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[1].ColumnName != "物料编码(唯一)") |
| | | else if (excelTable[1].Columns.Count != 12) |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货档案模板不符合规范,请检查列名字段数"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[2].ColumnName != "物料名称") |
| | | else if (excelTable[0].Columns[0].ColumnName != "*存货分类编号(唯一)") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货分类型模板:表头信息不符合规范,第1列应为{*存货分类编号(唯一)}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[3].ColumnName != "物料规格") |
| | | else if (excelTable[0].Columns[1].ColumnName != "*存货分类型名称") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货分类型模板:表头信息不符合规范,第2列应为{*存货分类型名称}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[4].ColumnName != "主单位") |
| | | else if (excelTable[0].Columns[2].ColumnName != "上级编码") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货分类型模板:表头信息不符合规范,第3列应为{上级编码}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[5].ColumnName != "辅单位") |
| | | else if (excelTable[1].Columns[0].ColumnName != "*存货编号(唯一)") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第1列应为{*存货编号(唯一)}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[6].ColumnName != "辅/主") |
| | | else if (excelTable[1].Columns[1].ColumnName != "*存货名称") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第2列应为{*存货名称}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[7].ColumnName != "物料类别") |
| | | else if (excelTable[1].Columns[2].ColumnName != "规格型号") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第3列应为{规格型号}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[8].ColumnName != "仓库名称") |
| | | else if (excelTable[1].Columns[3].ColumnName != "*存货分类编码") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第4列应为{*存货分类编码}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[9].ColumnName != "库存下限") |
| | | else if (excelTable[1].Columns[4].ColumnName != "*状态") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第5列应为{*状态}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable.Columns[10].ColumnName != "库存上限") |
| | | else if (excelTable[1].Columns[5].ColumnName != "*计量方式") |
| | | { |
| | | code = "300"; |
| | | Message = "模板不符合规范,请检查列名"; |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第6列应为{*计量方式}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[6].ColumnName != "*计量单位/组编码") |
| | | { |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第7列应为{*计量单位/组编码}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[7].ColumnName != "所属仓库编码") |
| | | { |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第8列应为{所属仓库编码}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[8].ColumnName != "是否外购") |
| | | { |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第9列应为{是否外购}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[9].ColumnName != "是否销售") |
| | | { |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第10列应为{是否销售}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[10].ColumnName != "是否自制") |
| | | { |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第11列应为{是否自制}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[11].ColumnName != "是否生产消耗") |
| | | { |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第12列应为{是否生产消耗}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[12].ColumnName != "是否委外") |
| | | { |
| | | code = "301"; |
| | | Message = "存货档案模板:表头信息不符合规范,第13列应为{是否委外}"; |
| | | return Message; |
| | | } |
| | | else |
| | | { |
| | |
| | | #endregion |
| | | |
| | | #region【Excel模板上传验证,设备清单模板】 |
| | | public static string Nine(string FileCode, out string code) |
| | | public static string Nine(List<DataTable> excelTable, out string code) |
| | | { |
| | | string Message = ""; |
| | | code = ""; |
| | | List<DataTable> excelTable = new List<DataTable>(); |
| | | excelTable = ImportExcel.ExcelToTableList(FileCode); |
| | | if (excelTable.Count != 2) |
| | | { |
| | | code = "300"; |
| | | Message = "导入模板不符合规范,请检查Sheet数"; |
| | | code = "301"; |
| | | Message = "导入模板不符合规范,请检查sheet数"; |
| | | return Message; |
| | | |
| | | } |
| | | else if (excelTable[0].Columns.Count != 7) |
| | | else if (excelTable[0].Columns.Count != 3) |
| | | { |
| | | code = "300"; |
| | | Message = "设备清单模板(设备清单)不符合规范,请检查列名字段数"; |
| | | code = "301"; |
| | | Message = "设备类型模板不符合规范,请检查列名字段数"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[0].Columns[0].ColumnName != "序号") |
| | | else if (excelTable[1].Columns.Count != 6) |
| | | { |
| | | code = "300"; |
| | | Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{序号}"; |
| | | code = "301"; |
| | | Message = "设备清单模板不符合规范,请检查列名字段数"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[0].Columns[1].ColumnName != "设备编号(唯一)") |
| | | else if (excelTable[0].Columns[0].ColumnName != "*设备类型编号(唯一)") |
| | | { |
| | | code = "300"; |
| | | Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备编号(唯一)}"; |
| | | code = "301"; |
| | | Message = "设备类型模板:表头信息不符合规范,第1列应为{*设备类型编号(唯一)}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[0].Columns[2].ColumnName != "设备名称") |
| | | else if (excelTable[0].Columns[1].ColumnName != "*设备类型名称") |
| | | { |
| | | code = "300"; |
| | | Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备名称}"; |
| | | code = "301"; |
| | | Message = "设备类型模板:表头信息不符合规范,第2列应为{*设备类型名称}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[0].Columns[3].ColumnName != "投入日期") |
| | | else if (excelTable[0].Columns[2].ColumnName != "描述") |
| | | { |
| | | code = "300"; |
| | | Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{投入日期}"; |
| | | code = "301"; |
| | | Message = "设备类型模板:表头信息不符合规范,第3列应为{描述}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[0].Columns[4].ColumnName != "车间编码") |
| | | else if (excelTable[1].Columns[0].ColumnName != "*设备编号(唯一)") |
| | | { |
| | | code = "300"; |
| | | Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{车间编码}"; |
| | | code = "301"; |
| | | Message = "设备清单模板:表头信息不符合规范,第1列应为{*设备编号(唯一)}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[0].Columns[5].ColumnName != "使用状态") |
| | | else if (excelTable[1].Columns[1].ColumnName != "*设备名称") |
| | | { |
| | | code = "300"; |
| | | Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{使用状态}"; |
| | | code = "301"; |
| | | Message = "设备清单模板:表头信息不符合规范,第2列应为{*设备名称}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[0].Columns[6].ColumnName != "稼动率(%)") |
| | | else if (excelTable[1].Columns[2].ColumnName != "所属组织编码") |
| | | { |
| | | code = "300"; |
| | | Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{稼动率(%)}"; |
| | | code = "301"; |
| | | Message = "设备清单模板:表头信息不符合规范,第3列应为{*所属组织编码}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[3].ColumnName != "*设备类型编码") |
| | | { |
| | | code = "301"; |
| | | Message = "设备清单模板:表头信息不符合规范,第4列应为{*设备类型编码}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[4].ColumnName != "*启用日期") |
| | | { |
| | | code = "301"; |
| | | Message = "设备清单模板:表头信息不符合规范,第5列应为{*启用日期}"; |
| | | return Message; |
| | | } |
| | | else if (excelTable[1].Columns[5].ColumnName != "*状态") |
| | | { |
| | | code = "301"; |
| | | Message = "设备清单模板:表头信息不符合规范,第6列应为{*状态}"; |
| | | return Message; |
| | | } |
| | | else |
| | | { |
| | |
| | | var dynamicParams = new DynamicParameters(); |
| | | DataTable dt; |
| | | List<ExcelErro> list = new List<ExcelErro>(); |
| | | |
| | | |
| | | if (list.Count > 0) |
| | | { |
| | | int index = 0; |
| | |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | else |
| | | else |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = (k + 1).ToString(); |
| | |
| | | } |
| | | if (excelTable[0].Rows[k][3].ToString().Trim() != null && excelTable[0].Rows[k][3].ToString().Trim() != "") |
| | | { |
| | | if (excelTable[0].Rows[k][3].ToString().Trim() == "自定义") |
| | | if (excelTable[0].Rows[k][3].ToString().Trim() == "自定义") |
| | | { |
| | | if (excelTable[0].Rows[k][4].ToString().Trim() == null && excelTable[0].Rows[k][4].ToString().Trim() == "") |
| | | { |
| | |
| | | erro.ErrorCont = "角色表:{数据范围}字段为:" + excelTable[1].Rows[k][3].ToString().Trim() + "时,{数据权限}字段不能为空"; |
| | | list.Add(erro); |
| | | } |
| | | else |
| | | else |
| | | { |
| | | //判断数据权限编码是否合理 |
| | | if (excelTable[0].Rows[k][4].ToString().Trim() != null && excelTable[0].Rows[k][4].ToString().Trim() != "") |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //往来单位表 |
| | | for (int k = 0; k < excelTable[1].Rows.Count; k++) |
| | | { |
| | |
| | | sql = @"select * from TSecStck where code=@code"; |
| | | dynamicParams.Add("@code", excelTable[0].Rows[k][2].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count<= 0) |
| | | if (dt.Rows.Count <= 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | |
| | | #endregion |
| | | |
| | | #region【Excel上传数据验证,存货档案】 |
| | | public static List<ExcelErro> EightData(string FileCode, out string StuCode, out string message, out int count) |
| | | public static List<ExcelErro> EightData(List<DataTable> excelTable, out string StuCode, out string message, out int count) |
| | | { |
| | | message = ""; |
| | | StuCode = ""; |
| | | count = 0; |
| | | string sql = ""; |
| | | DataTable dt; |
| | | List<ExcelErro> list = new List<ExcelErro>(); |
| | | |
| | | return list; |
| | | } |
| | | #endregion |
| | | |
| | | #region【Excel上传数据验证,设备清单】 |
| | | public static List<ExcelErro> NineData(string FileCode, out string StuCode, out string message, out int count) |
| | | { |
| | | message = ""; |
| | | StuCode = ""; |
| | | count = 0; |
| | | string sql = ""; |
| | | var dynamicParams = new DynamicParameters(); |
| | | DataTable dt; |
| | | List<ExcelErro> list = new List<ExcelErro>(); |
| | | DataTable excelTable = new DataTable(); |
| | | list = ImportExcel.ExcelToTableErro(FileCode); //验证Excel数据必填字段是否为空、唯一字段是否重复 |
| | | excelTable = ImportExcel.ExcelToTable(FileCode); //获取Excel数据 |
| | | //设备清单表 |
| | | for (int k = 0; k < excelTable.Rows.Count; k++) |
| | | list = ImportExcel.InportExcelToTableListErro(excelTable); //验证Excel数据必填字段是否为空、唯一字段是否重复 |
| | | //存货分类表 |
| | | for (int j = 0; j < excelTable[0].Rows.Count; j++) |
| | | { |
| | | if (excelTable.Rows[k][1].ToString().Trim() != null && excelTable.Rows[k][1].ToString().Trim() != "") |
| | | if (excelTable[0].Rows[j][0].ToString().Trim() != null && excelTable[0].Rows[j][0].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TEqpInfo where code=@code"; |
| | | dynamicParams.Add("@code", excelTable.Rows[k][1].ToString().Trim()); |
| | | sql = @"select * from TMateriel_Class where code=@code"; |
| | | dynamicParams.Add("@code", excelTable[0].Rows[j][0].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{设备编号(唯一)}"; |
| | | erro.ErrorCont = "设备表:{设备编号(唯一)}字段" + excelTable.Rows[k][1].ToString().Trim() + "已存在"; |
| | | erro.ErrorField = "{*存货分类编号(唯一)}"; |
| | | erro.ErrorCont = "存货分类表:{*存货分类编号(唯一)}字段" + excelTable[0].Rows[j][0].ToString().Trim() + "已存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | if (excelTable[0].Rows[j][1].ToString().Trim() != null && excelTable[0].Rows[j][1].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TMateriel_Class where name=@name"; |
| | | dynamicParams.Add("@name", excelTable[0].Rows[j][1].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*存货分类名称}"; |
| | | erro.ErrorCont = "存货分类表:{*存货分类名称}字段" + excelTable[0].Rows[j][1].ToString().Trim() + "已存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | if (excelTable[0].Rows[j][2].ToString().Trim() != null && excelTable[0].Rows[j][2].ToString().Trim() != "") |
| | | { |
| | | // 使用Lambda表达式判断父级ID是否合理 |
| | | bool isParentIdValid = excelTable[0].AsEnumerable() |
| | | .Any(r => Convert.ToString(r["*存货分类编号(唯一)"]) == excelTable[0].Rows[j][2].ToString().Trim()); // 假设ID列名为Id |
| | | |
| | | // 如果父级ID不合理,则输出 |
| | | if (!isParentIdValid) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{上级编码}"; |
| | | erro.ErrorCont = "存货分类表:{上级编码}字段:" + excelTable[0].Rows[j][2].ToString().Trim() + " 不合理"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | } |
| | | //车间判断 |
| | | for (int m = 0; m < excelTable.Rows.Count; m++) |
| | | |
| | | |
| | | //存货表 |
| | | for (int k = 0; k < excelTable[1].Rows.Count; k++) |
| | | { |
| | | if (excelTable.Rows[m][4].ToString().Trim() != null && excelTable.Rows[m][4].ToString().Trim() != "") |
| | | if (excelTable[1].Rows[k][0].ToString().Trim() != null && excelTable[1].Rows[k][0].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TOrganization where org_code=@code and description='W'"; |
| | | dynamicParams.Add("@code", excelTable.Rows[m][4].ToString().Trim()); |
| | | sql = @"select * from TMateriel_Info where partcode=@partcode"; |
| | | dynamicParams.Add("@partcode", excelTable[1].Rows[k][0].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count <= 0) |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{车间编码}"; |
| | | erro.ErrorCont = "设备表:{车间编码}字段" + excelTable.Rows[m][4].ToString().Trim() + "不存在"; |
| | | erro.ErrorField = "{*存货编号(唯一)}"; |
| | | erro.ErrorCont = "存货档案表:{*存货编号(唯一)}字段" + excelTable[1].Rows[k][0].ToString().Trim() + "已存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | if (excelTable[1].Rows[k][1].ToString().Trim() != null && excelTable[1].Rows[k][1].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TMateriel_Info where partname=@partname"; |
| | | dynamicParams.Add("@partname", excelTable[1].Rows[k][1].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*存货名称}"; |
| | | erro.ErrorCont = "存货档案表:{*存货名称}字段" + excelTable[1].Rows[k][1].ToString().Trim() + "已存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | if (excelTable[1].Rows[k][5].ToString().Trim() != null && excelTable[5].Rows[k][1].ToString().Trim() != "") |
| | | { |
| | | switch (excelTable[1].Rows[k][5].ToString().Trim()) |
| | | { |
| | | case "S": //单计量 |
| | | //判断计量单位是否为单计量 |
| | | if (excelTable[1].Rows[k][6].ToString().Trim() != null && excelTable[1].Rows[k][6].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TUnit where code=@code and isSingleUnit='1'"; |
| | | dynamicParams.Add("@code", excelTable[1].Rows[k][6].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count <= 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*计量单位/组编码}"; |
| | | erro.ErrorCont = "存货档案表:{*计量单位/组编码}字段" + excelTable[1].Rows[k][6].ToString().Trim() + "不是有效的单计量单位"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | break; |
| | | case "M": //多计量 |
| | | //判断计量单位是否为多计量 |
| | | if (excelTable[1].Rows[k][6].ToString().Trim() != null && excelTable[1].Rows[k][6].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TUnitGroup where code=@code"; |
| | | dynamicParams.Add("@code", excelTable[1].Rows[k][6].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count <= 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*计量单位/组编码}"; |
| | | erro.ErrorCont = "存货档案表:{*计量单位/组编码}字段" + excelTable[1].Rows[k][6].ToString().Trim() + "不是有效的多计量单位组"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | if (excelTable[1].Rows[k][7].ToString().Trim() != null && excelTable[1].Rows[k][7].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TSecStck where code=@code"; |
| | | dynamicParams.Add("@code", excelTable[1].Rows[k][7].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count<=0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{所属仓库编码}"; |
| | | erro.ErrorCont = "存货档案表:{所属仓库编码}字段" + excelTable[1].Rows[k][7].ToString().Trim() + "不是有效的仓库编码"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | } |
| | | //判断子表外键不存在于主表主键中的数据 |
| | | var dt3 = from r in excelTable[1].AsEnumerable() |
| | | where !( |
| | | from rr in excelTable[0].AsEnumerable() |
| | | select rr.Field<string>("*存货分类编号(唯一)") |
| | | ).Contains(r.Field<string>("*存货分类编码")) |
| | | select r; |
| | | List<DataRow> listRow = dt3.ToList(); |
| | | if (listRow.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*存货分类编码}"; |
| | | erro.ErrorCont = "存货档案表:{*存货分类编码}字段中有值在存货分类表:{*存货分类编号(唯一)}中不存在"; |
| | | list.Add(erro); |
| | | } |
| | | if (list.Count > 0) |
| | | { |
| | |
| | | { |
| | | StuCode = "200"; |
| | | message = "数据验证成功"; |
| | | count = excelTable.Rows.Count; |
| | | count = excelTable[0].Rows.Count + excelTable[1].Rows.Count; |
| | | } |
| | | return list; |
| | | } |
| | | #endregion |
| | | |
| | | #region【Excel上传数据验证,设备清单】 |
| | | public static List<ExcelErro> NineData(List<DataTable> excelTable, out string StuCode, out string message, out int count) |
| | | { |
| | | message = ""; |
| | | StuCode = ""; |
| | | count = 0; |
| | | string sql = ""; |
| | | DataTable dt; |
| | | var dynamicParams = new DynamicParameters(); |
| | | List<ExcelErro> list = new List<ExcelErro>(); |
| | | list = ImportExcel.InportExcelToTableListErro(excelTable); //验证Excel数据必填字段是否为空、唯一字段是否重复 |
| | | //设备类型表 |
| | | for (int j = 0; j < excelTable[0].Rows.Count; j++) |
| | | { |
| | | if (excelTable[0].Rows[j][0].ToString().Trim() != null && excelTable[0].Rows[j][0].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TEqpType where code=@code"; |
| | | dynamicParams.Add("@code", excelTable[0].Rows[j][0].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*设备类型编号(唯一)}"; |
| | | erro.ErrorCont = "设备类型表:{*设备类型编号(唯一)}字段" + excelTable[0].Rows[j][0].ToString().Trim() + "已存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | if (excelTable[0].Rows[j][1].ToString().Trim() != null && excelTable[0].Rows[j][1].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TEqpType where name=@name"; |
| | | dynamicParams.Add("@name", excelTable[0].Rows[j][1].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*设备类型名称}"; |
| | | erro.ErrorCont = "设备类型表:{*设备类型名称}字段" + excelTable[0].Rows[j][1].ToString().Trim() + "已存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //设备表 |
| | | for (int k = 0; k < excelTable[1].Rows.Count; k++) |
| | | { |
| | | if (excelTable[1].Rows[k][0].ToString().Trim() != null && excelTable[1].Rows[k][0].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TEqpInfo where code=@code"; |
| | | dynamicParams.Add("@code", excelTable[1].Rows[k][0].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*设备编号(唯一)}"; |
| | | erro.ErrorCont = "设备表:{*设备编号(唯一)}字段" + excelTable[1].Rows[k][0].ToString().Trim() + "已存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | if (excelTable[1].Rows[k][1].ToString().Trim() != null && excelTable[1].Rows[k][1].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TEqpInfo where name=@name"; |
| | | dynamicParams.Add("@name", excelTable[1].Rows[k][1].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*设备名称}"; |
| | | erro.ErrorCont = "设备表:{*设备名称}字段" + excelTable[1].Rows[k][1].ToString().Trim() + "已存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | if (excelTable[1].Rows[k][2].ToString().Trim() != null && excelTable[1].Rows[k][2].ToString().Trim() != "") |
| | | { |
| | | sql = @"select * from TOrganization where torg_code=@torg_code"; |
| | | dynamicParams.Add("@torg_code", excelTable[1].Rows[k][2].ToString().Trim()); |
| | | dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count<=0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*所属组织编码}"; |
| | | erro.ErrorCont = "设备表:{*所属组织编码}字段" + excelTable[1].Rows[k][2].ToString().Trim() + "不存在"; |
| | | list.Add(erro); |
| | | } |
| | | } |
| | | } |
| | | //判断子表外键不存在于主表主键中的数据 |
| | | var dt3 = from r in excelTable[1].AsEnumerable() |
| | | where !( |
| | | from rr in excelTable[0].AsEnumerable() |
| | | select rr.Field<string>("*设备类型编号(唯一)") |
| | | ).Contains(r.Field<string>("*设备类型编码")) |
| | | select r; |
| | | List<DataRow> listRow = dt3.ToList(); |
| | | if (listRow.Count > 0) |
| | | { |
| | | ExcelErro erro = new ExcelErro(); |
| | | erro.RoeNumber = "/"; |
| | | erro.ErrorField = "{*设备类型编码}"; |
| | | erro.ErrorCont = "设备表:{*设备类型编码}字段中有值在设备类型表:{*设备类型编号(唯一)}中不存在"; |
| | | list.Add(erro); |
| | | } |
| | | if (list.Count > 0) |
| | | { |
| | | int index = 0; |
| | | foreach (ExcelErro item in list) |
| | | { |
| | | index++; |
| | | item.Seq = index.ToString(); |
| | | } |
| | | StuCode = "301"; |
| | | message = "数据验证失败"; |
| | | } |
| | | else |
| | | { |
| | | StuCode = "200"; |
| | | message = "数据验证成功"; |
| | | count = excelTable[0].Rows.Count + excelTable[1].Rows.Count; |
| | | } |
| | | return list; |
| | | } |
| | |
| | | #endregion |
| | | |
| | | #region【Excel数据上传,分组管理】 |
| | | public static string TwoSubmit(List<DataTable> excelTable, User us, out string StuCode) |
| | | public static string TwoSubmit(List<DataTable> excelTable, User us, out string StuCode) |
| | | { |
| | | string message = ""; |
| | | StuCode = ""; |
| | |
| | | idparent = excelTable[0].Rows[k][2].ToString().Trim(), |
| | | lm_user = us.usercode, |
| | | lm_date = DateTime.Now.ToString(), |
| | | data_sources="MES" |
| | | data_sources = "MES" |
| | | } |
| | | }); |
| | | } |
| | |
| | | addr = excelTable[1].Rows[i][6].ToString().Trim(), |
| | | lm_user = us.usercode, |
| | | lm_date = DateTime.Now.ToString(), |
| | | data_sources="MES" |
| | | data_sources = "MES" |
| | | } |
| | | }); |
| | | } |
| | |
| | | description = excelTable[0].Rows[i][4].ToString().Trim(), |
| | | lm_user = us.usercode, |
| | | lm_date = DateTime.Now.ToString(), |
| | | data_sources="MES" |
| | | data_sources = "MES" |
| | | } |
| | | }); |
| | | } |
| | |
| | | #endregion |
| | | |
| | | #region【Excel数据上传,存货档案】 |
| | | public static string EightSubmit(string FileCode, string User, out string StuCode) |
| | | public static string EightSubmit(List<DataTable> excelTable, User us, out string StuCode) |
| | | { |
| | | string message = ""; |
| | | StuCode = ""; |
| | | string sql = ""; |
| | | List<object> list = new List<object>(); |
| | | var dynamicParams = new DynamicParameters(); |
| | | try |
| | | { |
| | | list.Clear(); |
| | | //导入存货类型 |
| | | for (int k = 0; k < excelTable[0].Rows.Count; k++) |
| | | { |
| | | sql = @"insert into TMateriel_Class(code,name,idparent,lm_user,lm_date,data_sources) |
| | | values(@code,@name,@idparent,@lm_user,@lm_date,@data_sources)"; |
| | | list.Add(new |
| | | { |
| | | str = sql, |
| | | parm = new |
| | | { |
| | | code = excelTable[0].Rows[k][0].ToString().Trim(), |
| | | name = excelTable[0].Rows[k][1].ToString().Trim(), |
| | | idparent = excelTable[0].Rows[k][2].ToString().Trim(), |
| | | lm_user = us.usercode, |
| | | lm_date = DateTime.Now.ToString(), |
| | | data_sources = "MES" |
| | | } |
| | | }); |
| | | } |
| | | //导入存货档案 |
| | | for (int i = 0; i < excelTable[1].Rows.Count; i++) |
| | | { |
| | | string idunitgroup="", idunit = "", idnounit = ""; |
| | | int isSingleUnit = 0; |
| | | if (excelTable[1].Rows[i][5].ToString().Trim() == "S") |
| | | { |
| | | isSingleUnit = 1; |
| | | idunit = excelTable[1].Rows[i][6].ToString().Trim(); |
| | | } |
| | | if (excelTable[1].Rows[i][5].ToString().Trim() == "M") |
| | | { |
| | | sql = @"select T.code,T.name,T.isMainUnit from TUnitGroup G |
| | | inner join TUnit T on G.code=T.idunitgroup |
| | | where G.code=@code"; |
| | | dynamicParams.Add("@code", excelTable[1].Rows[i][6].ToString().Trim()); |
| | | var dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | idunitgroup = excelTable[1].Rows[i][6].ToString().Trim(); |
| | | idunit = dt.AsEnumerable().Where(row => row.Field<string>("isMainUnit") =="1").Select(row => row.Field<string>("code")).FirstOrDefault(); |
| | | idnounit = dt.AsEnumerable().Where(row => row.Field<string>("isMainUnit") == "0").Select(row => row.Field<string>("code")).FirstOrDefault(); |
| | | } |
| | | |
| | | sql = @"insert into TMateriel_Info(partcode,partname,partspec,idunit,idunitgroup,isSingleUnit,idSubUnitByReport,idUnitByStock, |
| | | idUnitByPurchase,idUnitBySale,idunitbymanufacture,idinventoryclass,isPurchase,isSale,isMadeSelf,isMaterial,isMadeRequest, |
| | | idwarehouse,status,lm_user,lm_date,data_sources) |
| | | values(@partcode,@partname,@partspec,@idunit,@idunitgroup,@isSingleUnit,@idSubUnitByReport,@idUnitByStock, |
| | | @idUnitByPurchase,@idUnitBySale,@idunitbymanufacture,@idinventoryclass,@isPurchase,@isSale,@isMadeSelf,@isMaterial,@isMadeRequest, |
| | | @idwarehouse,@status,@lm_user,@lm_date,@data_sources)"; |
| | | list.Add(new |
| | | { |
| | | str = sql, |
| | | parm = new |
| | | { |
| | | partcode = excelTable[1].Rows[i][0].ToString().Trim(), |
| | | partname = excelTable[1].Rows[i][1].ToString().Trim(), |
| | | partspec = excelTable[1].Rows[i][2].ToString().Trim(), |
| | | idunit = idunit, |
| | | idunitgroup = idunitgroup, |
| | | isSingleUnit = isSingleUnit, |
| | | idSubUnitByReport = idnounit, |
| | | idUnitByStock = idunit, |
| | | idUnitByPurchase = idunit, |
| | | idUnitBySale = idunit, |
| | | idunitbymanufacture = idunit, |
| | | idinventoryclass = excelTable[1].Rows[i][3].ToString().Trim(), |
| | | isPurchase = excelTable[1].Rows[i][8].ToString().Trim(), |
| | | isSale = excelTable[1].Rows[i][9].ToString().Trim(), |
| | | isMadeSelf = excelTable[1].Rows[i][10].ToString().Trim(), |
| | | isMaterial = excelTable[1].Rows[i][11].ToString().Trim(), |
| | | isMadeRequest = excelTable[1].Rows[i][12].ToString().Trim(), |
| | | idwarehouse = excelTable[1].Rows[i][7].ToString().Trim(), |
| | | status = excelTable[1].Rows[i][4].ToString().Trim(), |
| | | lm_user = us.usercode, |
| | | lm_date = DateTime.Now.ToString(), |
| | | data_sources = "MES" |
| | | } |
| | | }); |
| | | } |
| | | bool aa = DapperHelper.DoTransaction(list); |
| | | if (aa) |
| | | { |
| | | StuCode = "200"; |
| | | message = "导入成功!"; |
| | | } |
| | | else |
| | | { |
| | | StuCode = "300"; |
| | | message = "导入失败!"; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | |
| | | #endregion |
| | | |
| | | #region【Excel数据上传,设备清单】 |
| | | public static string NineSubmit(string FileCode, string User, out string StuCode) |
| | | public static string NineSubmit(List<DataTable> excelTable, User us, out string StuCode) |
| | | { |
| | | string message = ""; StuCode = ""; |
| | | string message = ""; |
| | | StuCode = ""; |
| | | string sql = ""; |
| | | List<object> list = new List<object>(); |
| | | var dynamicParams = new DynamicParameters(); |
| | | try |
| | | { |
| | | list.Clear(); |
| | | DataTable excelTable = new DataTable(); |
| | | excelTable = ImportExcel.ExcelToTable(FileCode); |
| | | //导入设备清单 |
| | | for (int k = 0; k < excelTable.Rows.Count; k++) |
| | | //导入设备类型 |
| | | for (int k = 0; k < excelTable[0].Rows.Count; k++) |
| | | { |
| | | sql = @"select * from TEqpInfo where code=@eqp_code"; |
| | | dynamicParams.Add("@eqp_code", excelTable.Rows[k][1].ToString().Trim()); |
| | | DataTable dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | continue; |
| | | } |
| | | sql = @"insert into TEqpInfo(code,name,wksp_code,input_date,operation_ration,enable,opc_uom,lm_user,lm_date) |
| | | values(@devicecode,@devicename,@workshop,@importdate,@ratio,@status,@uom,@lm_user,@lm_date)"; |
| | | sql = @"insert into TEqpType(code,name,lm_user,lm_date,remark) |
| | | values(@code,@name,@lm_user,@lm_date,@remark)"; |
| | | list.Add(new |
| | | { |
| | | str = sql, |
| | | parm = new |
| | | { |
| | | devicecode = excelTable.Rows[k][1].ToString().Trim(), |
| | | devicename = excelTable.Rows[k][2].ToString().Trim(), |
| | | workshop = excelTable.Rows[k][4].ToString().Trim(), |
| | | importdate = excelTable.Rows[k][3].ToString().Trim(), |
| | | ratio = excelTable.Rows[k][6].ToString().Trim(), |
| | | status = excelTable.Rows[k][5].ToString().Trim(), |
| | | uom = "台", |
| | | lm_user = User, |
| | | code = excelTable[0].Rows[k][0].ToString().Trim(), |
| | | name = excelTable[0].Rows[k][1].ToString().Trim(), |
| | | lm_user = us.usercode, |
| | | lm_date = DateTime.Now.ToString(), |
| | | idparent = excelTable[0].Rows[k][2].ToString().Trim() |
| | | } |
| | | }); |
| | | } |
| | | //导入设备 |
| | | for (int i = 0; i < excelTable[1].Rows.Count; i++) |
| | | { |
| | | sql = @"insert into TEqpInfo(code,name,torg_code,eqptype_code,input_date,operation_ration,enable,opc_uom,lm_user,lm_date) |
| | | values(@code,@name,@torg_code,@eqptype_code,@input_date,@operation_ration,@enable,@opc_uom,@lm_user,@lm_date)"; |
| | | list.Add(new |
| | | { |
| | | str = sql, |
| | | parm = new |
| | | { |
| | | code = excelTable[1].Rows[i][0].ToString().Trim(), |
| | | name = excelTable[1].Rows[i][1].ToString().Trim(), |
| | | torg_code = excelTable[1].Rows[i][2].ToString().Trim(), |
| | | eqptype_code = excelTable[1].Rows[i][3].ToString().Trim(), |
| | | input_date = excelTable[1].Rows[i][4].ToString().Trim(), |
| | | operation_ration = "100", |
| | | enable = excelTable[1].Rows[i][5].ToString().Trim(), |
| | | opc_uom = "台", |
| | | lm_user = us.usercode, |
| | | lm_date = DateTime.Now.ToString() |
| | | } |
| | | }); |