yl
2023-06-30 6fe3d6fc4e93f4cf31dc02d4f0cbc48d56c249b7
VueWebApi/Tools/ImportExcelData.cs
@@ -27,7 +27,7 @@
                return Message;
            }
            else if (excelTable[0].Columns.Count != 4)
            else if (excelTable[0].Columns.Count != 5)
            {
                code = "300";
                Message = "用户班组模板不符合规范,请检查列名字段数";
@@ -45,19 +45,25 @@
                Message = "用户班组模板:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[0].Columns[1].ColumnName != "班组编号(唯一)")
            else if (excelTable[0].Columns[1].ColumnName != "组织编码")
            {
                code = "300";
                Message = "用户班组模板:表头信息不符合规范,第2列应为{组织编码}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "班组编号(唯一)")
            {
                code = "300";
                Message = "用户班组模板:表头信息不符合规范,第2列应为{班组编号(唯一)}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "班组名称")
            else if (excelTable[0].Columns[3].ColumnName != "班组名称")
            {
                code = "300";
                Message = "用户班组模板:表头信息不符合规范,第3列应为{班组名称}";
                return Message;
            }
            else if (excelTable[0].Columns[3].ColumnName != "班组描述")
            else if (excelTable[0].Columns[4].ColumnName != "班组描述")
            {
                code = "300";
                Message = "用户班组模板:表头信息不符合规范,第4列应为{班组描述}";
@@ -146,13 +152,13 @@
                return Message;
            }
            else if (excelTable[0].Columns.Count != 3)
            else if (excelTable[0].Columns.Count != 4)
            {
                code = "300";
                Message = "角色类型模板不符合规范,请检查列名字段数";
                return Message;
            }
            else if (excelTable[1].Columns.Count != 5)
            else if (excelTable[1].Columns.Count != 6)
            {
                code = "300";
                Message = "模板角色清单不符合规范,请检查列名字段数";
@@ -164,13 +170,19 @@
                Message = "角色类型模板:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[0].Columns[1].ColumnName != "角色类型编号(唯一)")
            else if (excelTable[0].Columns[1].ColumnName != "组织编码")
            {
                code = "300";
                Message = "角色类型模板:表头信息不符合规范,第1列应为{组织编码}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "角色类型编号(唯一)")
            {
                code = "300";
                Message = "角色类型模板:表头信息不符合规范,第2列应为{角色类型编号(唯一)}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "角色类型名称")
            else if (excelTable[0].Columns[3].ColumnName != "角色类型名称")
            {
                code = "300";
                Message = "角色类型模板:表头信息不符合规范,第3列应为{角色类型名称}";
@@ -182,25 +194,31 @@
                Message = "角色清单模板:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[1].Columns[1].ColumnName != "角色编号(唯一)")
            else if (excelTable[1].Columns[1].ColumnName != "组织编码")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第1列应为{组织编码}";
                return Message;
            }
            else if (excelTable[1].Columns[2].ColumnName != "角色编号(唯一)")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第2列应为{角色编号(唯一)}";
                return Message;
            }
            else if (excelTable[1].Columns[2].ColumnName != "角色姓名")
            else if (excelTable[1].Columns[3].ColumnName != "角色姓名")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第3列应为{角色姓名}";
                return Message;
            }
            else if (excelTable[1].Columns[3].ColumnName != "角色类型编码")
            else if (excelTable[1].Columns[4].ColumnName != "角色类型编码")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第4列应为{角色类型编码}";
                return Message;
            }
            else if (excelTable[1].Columns[4].ColumnName != "角色描述")
            else if (excelTable[1].Columns[5].ColumnName != "角色描述")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第5列应为{角色描述}";
@@ -569,23 +587,13 @@
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToThreeTableList(FileCode);
            if (excelTable.Count != 6)
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "导入模板不符合规范,请检查Sheet数";
            }
            else if (excelTable[0].Columns.Count != 4)
            {
                code = "300";
                Message = "设备清单模板(设备类型)不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 5)
            {
                code = "300";
                Message = "设备清单模板(设备组)不符合规范,请检查列名字段数";
            }
            else if (excelTable[2].Columns.Count != 9)
            else if (excelTable[0].Columns.Count != 7)
            {
                code = "300";
                Message = "设备清单模板(设备清单)不符合规范,请检查列名字段数";
@@ -593,89 +601,34 @@
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "设备清单模板(设备类型):表头信息不符合规范,第1列应为{序号}";
            }
            else if (excelTable[0].Columns[1].ColumnName != "设备类型编号(唯一)")
            {
                code = "300";
                Message = "设备清单模板(设备类型):表头信息不符合规范,第2列应为{设备类型编号(唯一)}";
            }
            else if (excelTable[0].Columns[2].ColumnName != "设备类型名称")
            {
                code = "300";
                Message = "设备清单模板(设备类型):表头信息不符合规范,第3列应为{设备类型名称}";
            }
            else if (excelTable[0].Columns[3].ColumnName != "设备类型描述")
            {
                code = "300";
                Message = "设备清单模板(设备类型):表头信息不符合规范,第4列应为{设备类型描述}";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第1列应为{序号}";
            }
            else if (excelTable[1].Columns[1].ColumnName != "设备组编号(唯一)")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第2列应为{设备组编号(唯一)}";
            }
            else if (excelTable[1].Columns[2].ColumnName != "设备组名称")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第3列应为{设备组名称}";
            }
            else if (excelTable[1].Columns[3].ColumnName != "设备类型编号")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第4列应为{设备类型编号}";
            }
            else if (excelTable[1].Columns[4].ColumnName != "设备组描述")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第5列应为{设备组描述}";
            }
            else if (excelTable[2].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{序号}";
            }
            else if (excelTable[2].Columns[1].ColumnName != "设备编号(唯一)")
            else if (excelTable[0].Columns[1].ColumnName != "设备编号(唯一)")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备编号(唯一)}";
            }
            else if (excelTable[2].Columns[2].ColumnName != "设备名称")
            else if (excelTable[0].Columns[2].ColumnName != "设备名称")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备名称}";
            }
            else if (excelTable[2].Columns[3].ColumnName != "设备类型编号")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备类型编号}";
            }
            else if (excelTable[2].Columns[4].ColumnName != "设备组编号")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备组编号}";
            }
            else if (excelTable[2].Columns[5].ColumnName != "投入日期")
            else if (excelTable[0].Columns[3].ColumnName != "投入日期")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{投入日期}";
            }
            else if (excelTable[2].Columns[6].ColumnName != "生产车间")
            else if (excelTable[0].Columns[4].ColumnName != "车间编码")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{生产车间}";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{车间编码}";
            }
            else if (excelTable[2].Columns[7].ColumnName != "使用状态")
            else if (excelTable[0].Columns[5].ColumnName != "使用状态")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{使用状态}";
            }
            else if (excelTable[2].Columns[8].ColumnName != "稼动率(%)")
            else if (excelTable[0].Columns[6].ColumnName != "稼动率(%)")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{稼动率(%)}";
@@ -1917,17 +1870,17 @@
            //主表
            for (int j = 0; j < excelTable[0].Rows.Count; j++)
            {
                if (excelTable[0].Rows[j][1].ToString().Trim() != null && excelTable[0].Rows[j][1].ToString().Trim() != "")
                if (excelTable[0].Rows[j][2].ToString().Trim() != null && excelTable[0].Rows[j][2].ToString().Trim() != "")
                {
                    sql = @"select *  from TGroup where group_code=@group_code";
                    dynamicParams.Add("@group_code", excelTable[0].Rows[j][1].ToString().Trim());
                    dynamicParams.Add("@group_code", excelTable[0].Rows[j][2].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() + "已存在";
                        erro.ErrorCont = "班组表:{班组编码(唯一)}字段" + excelTable[0].Rows[j][2].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
@@ -1945,7 +1898,7 @@
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{用户编码(唯一)}";
                        erro.ErrorCont = "用户表:{用户编码(唯一)}字段" + excelTable[1].Rows[k][2].ToString().Trim() + "已存在";
                        erro.ErrorCont = "用户表:{用户编码(唯一)}字段" + excelTable[1].Rows[k][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
@@ -1959,10 +1912,42 @@
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{组织编码}";
                        erro.ErrorCont = "用户表:{组织编码}字段" + excelTable[1].Rows[k][2].ToString().Trim() + "不存在";
                        erro.ErrorCont = "用户表:{组织编码}字段" + excelTable[1].Rows[k][7].ToString().Trim() + "不存在";
                        list.Add(erro);
                    }
                }
                if (excelTable[1].Rows[k][9].ToString().Trim() != null && excelTable[1].Rows[k][9].ToString().Trim() != "")
                {
                    sql = @"select torg_code  from TGroup where group_code=@group_code";
                    dynamicParams.Add("@group_code", excelTable[1].Rows[k][9].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt != null && dt.Rows.Count>0)
                    {
                        if (dt.Rows[0]["torg_code"].ToString()!= excelTable[1].Rows[k][7].ToString().Trim())
                        {
                            ExcelErro erro = new ExcelErro();
                            erro.RoeNumber = "/";
                            erro.ErrorField = "{用户组编码}";
                            erro.ErrorCont = "用户表:{用户组编码}字段" + excelTable[1].Rows[k][9].ToString().Trim() + " 不是组织编码:" + excelTable[1].Rows[k][7].ToString().Trim() + "下的用户组";
                            list.Add(erro);
                        }                    }
                }
            }
            //判断子表组织编码不存在于主表组织编码中的数据
            var dt2 = 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> listRow2 = dt2.ToList();
            if (listRow2.Count > 0)
            {
                ExcelErro erro = new ExcelErro();
                erro.RoeNumber = "/";
                erro.ErrorField = "{组织编码}";
                erro.ErrorCont = "用户表:{组织编码}字段中有值在班组表:{组织编码}中不存在";
                list.Add(erro);
            }
            //判断子表外键不存在于主表主键中的数据
            var dt3 = from r in excelTable[1].AsEnumerable()
@@ -2017,17 +2002,31 @@
            //主表
            for (int j = 0; j < excelTable[0].Rows.Count; j++)
            {
                if (excelTable[0].Rows[j][1].ToString().Trim() != null && excelTable[0].Rows[j][1].ToString().Trim() != "")
                if (excelTable[1].Rows[j][1].ToString().Trim() != null && excelTable[1].Rows[j][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TOrganization where org_code=@org_code";
                    dynamicParams.Add("@org_code", excelTable[1].Rows[j][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt == null || dt.Rows.Count <= 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{组织编码}";
                        erro.ErrorCont = "角色类型表:{组织编码}字段" + excelTable[1].Rows[j][1].ToString().Trim() + "不存在";
                        list.Add(erro);
                    }
                }
                if (excelTable[0].Rows[j][2].ToString().Trim() != null && excelTable[0].Rows[j][2].ToString().Trim() != "")
                {
                    sql = @"select *  from TRoleType where roletype_code=@roletype_code";
                    dynamicParams.Add("@roletype_code", excelTable[0].Rows[j][1].ToString().Trim());
                    dynamicParams.Add("@roletype_code", excelTable[0].Rows[j][2].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() + "已存在";
                        erro.ErrorCont = "班组表:{角色类型编码(唯一)}字段" + excelTable[0].Rows[j][2].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
@@ -2035,10 +2034,10 @@
            //子表
            for (int k = 0; k < excelTable[1].Rows.Count; k++)
            {
                if (excelTable[1].Rows[k][1].ToString().Trim() != null && excelTable[1].Rows[k][1].ToString().Trim() != "")
                if (excelTable[1].Rows[k][2].ToString().Trim() != null && excelTable[1].Rows[k][2].ToString().Trim() != "")
                {
                    sql = @"select *  from TRole where role_code=@role_code";
                    dynamicParams.Add("@role_code", excelTable[1].Rows[k][1].ToString().Trim());
                    dynamicParams.Add("@role_code", excelTable[1].Rows[k][2].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
@@ -2049,6 +2048,53 @@
                        list.Add(erro);
                    }
                }
                if (excelTable[1].Rows[k][1].ToString().Trim() != null && excelTable[1].Rows[k][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TOrganization where org_code=@org_code";
                    dynamicParams.Add("@org_code", excelTable[1].Rows[k][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt == null || 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][4].ToString().Trim() != null && excelTable[1].Rows[k][4].ToString().Trim() != "")
                {
                    sql = @"select torg_code  from TRoleType where roletype_code=@roletype_code";
                    dynamicParams.Add("@roletype_code", excelTable[1].Rows[k][4].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        if (dt.Rows[0]["torg_code"].ToString() != excelTable[1].Rows[k][1].ToString().Trim())
                        {
                            ExcelErro erro = new ExcelErro();
                            erro.RoeNumber = "/";
                            erro.ErrorField = "{角色类型编码}";
                            erro.ErrorCont = "角色表:{角色类型编码}字段" + excelTable[1].Rows[k][4].ToString().Trim() + " 不是组织编码:" + excelTable[1].Rows[k][1].ToString().Trim() + "下的角色组";
                            list.Add(erro);
                        }
                    }
                }
            }
            //判断子表组织编码不存在于主表组织编码中的数据
            var dt2 = 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> listRow2 = dt2.ToList();
            if (listRow2.Count > 0)
            {
                ExcelErro erro = new ExcelErro();
                erro.RoeNumber = "/";
                erro.ErrorField = "{组织编码}";
                erro.ErrorCont = "角色表:{组织编码}字段中有值在角色类型表:{组织编码}中不存在";
                list.Add(erro);
            }
            //判断子表外键不存在于主表主键中的数据
            var dt3 = from r in excelTable[1].AsEnumerable()
@@ -2277,103 +2323,41 @@
            var dynamicParams = new DynamicParameters();
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            List<DataTable> excelTable = new List<DataTable>();
            list = ImportExcel.ExcelToThreeTableListErro(FileCode);    //验证Excel数据必填字段是否为空、唯一字段是否重复
            excelTable = ImportExcel.ExcelToThreeTableList(FileCode);  //获取Excel数据
            //设备类型表,判断设备类型是否存在
            for (int i = 0; i < excelTable[0].Rows.Count; i++)
            {
                if (excelTable[0].Rows[i][1].ToString().Trim() != null && excelTable[0].Rows[i][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TEqpType where code=@code";
                    dynamicParams.Add("@code", excelTable[0].Rows[i][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[i][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
            }
            //设备组表,判断设备组是否存在
            for (int j = 0; j < excelTable[1].Rows.Count; j++)
            {
                if (excelTable[1].Rows[j][1].ToString().Trim() != null && excelTable[1].Rows[j][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TEqpGroup where code=@code";
                    dynamicParams.Add("@code", excelTable[1].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[1].Rows[j][1].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);
            }
            DataTable excelTable = new DataTable();
            list = ImportExcel.ExcelToTableErro(FileCode);    //验证Excel数据必填字段是否为空、唯一字段是否重复
            excelTable = ImportExcel.ExcelToTable(FileCode);  //获取Excel数据
            //设备清单表
            for (int k = 0; k < excelTable[2].Rows.Count; k++)
            for (int k = 0; k < excelTable.Rows.Count; k++)
            {
                if (excelTable[2].Rows[k][1].ToString().Trim() != null && excelTable[2].Rows[k][1].ToString().Trim() != "")
                if (excelTable.Rows[k][1].ToString().Trim() != null && excelTable.Rows[k][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TEqpInfo where code=@code";
                    dynamicParams.Add("@code", excelTable[2].Rows[k][1].ToString().Trim());
                    dynamicParams.Add("@code", excelTable.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[2].Rows[k][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                    //判断设备组是否对应正确的设备类型
                    var yourGetData = excelTable[1].AsEnumerable().Where<DataRow>(a => a["设备类型编号"].ToString() == excelTable[2].Rows[k][3].ToString().Trim()&& a["设备组编号(唯一)"].ToString() == excelTable[2].Rows[k][4].ToString().Trim());
                    if (yourGetData.Count() <= 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{设备类型编号}/{设备组编号}";
                        erro.ErrorCont = "设备表:{设备编号(唯一)}字段" + excelTable[2].Rows[k][1].ToString().Trim() + "对应{设备类型编号}:"+ excelTable[2].Rows[k][4].ToString().Trim() + "/{设备组编号}:"+ excelTable[2].Rows[k][4].ToString().Trim() + "与设备组清单中设置对不上";
                        erro.ErrorCont = "设备表:{设备编号(唯一)}字段" + excelTable.Rows[k][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
            }
            //车间判断
            for (int m = 0; m < excelTable[2].Rows.Count; m++)
            for (int m = 0; m < excelTable.Rows.Count; m++)
            {
                if (excelTable[2].Rows[m][6].ToString().Trim() != null && excelTable[2].Rows[m][6].ToString().Trim() != "")
                if (excelTable.Rows[m][4].ToString().Trim() != null && excelTable.Rows[m][4].ToString().Trim() != "")
                {
                    sql = @"select *  from TOrganization where org_name=@code and description='W'";
                    dynamicParams.Add("@code", excelTable[2].Rows[m][6].ToString().Trim());
                    sql = @"select *  from TOrganization where org_code=@code and description='W'";
                    dynamicParams.Add("@code", excelTable.Rows[m][4].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count<=0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{生产车间}";
                        erro.ErrorCont = "设备表:{生产车间}字段" + excelTable[2].Rows[m][6].ToString().Trim() + "不存在";
                        erro.ErrorField = "{车间编码}";
                        erro.ErrorCont = "设备表:{车间编码}字段" + excelTable.Rows[m][4].ToString().Trim() + "不存在";
                        list.Add(erro);
                    }
                }
@@ -2393,7 +2377,7 @@
            {
                StuCode = "200";
                message = "数据验证成功";
                count = excelTable[0].Rows.Count + excelTable[1].Rows.Count+excelTable[2].Rows.Count;
                count = excelTable.Rows.Count;
            }
            return list;
        }
@@ -3254,20 +3238,31 @@
                //导入班组
                for (int k = 0; k < excelTable[0].Rows.Count; k++)
                {
                    sql = @"insert into TGroup(group_code,group_name,description,lm_user,lm_date)
                            values(@group_code,@group_name,@description,@Operator,@CreateDate)";
                    list.Add(new
                    sql = @"select *   from TGroup where group_code=@group_code";
                    dynamicParams.Add("@group_code", excelTable[0].Rows[k][2].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        str = sql,
                        parm = new
                        continue;
                    }
                    else
                    {
                        sql = @"insert into TGroup(group_code,group_name,description,lm_user,lm_date,torg_code)
                            values(@group_code,@group_name,@description,@Operator,@CreateDate,@torg_code)";
                        list.Add(new
                        {
                            group_code = excelTable[0].Rows[k][1].ToString().Trim(),
                            group_name = excelTable[0].Rows[k][2].ToString().Trim(),
                            description = excelTable[0].Rows[k][3].ToString().Trim(),
                            CreateDate = DateTime.Now.ToString(),
                            Operator = User
                        }
                    });
                            str = sql,
                            parm = new
                            {
                                group_code = excelTable[0].Rows[k][2].ToString().Trim(),
                                group_name = excelTable[0].Rows[k][3].ToString().Trim(),
                                description = excelTable[0].Rows[k][4].ToString().Trim(),
                                CreateDate = DateTime.Now.ToString(),
                                Operator = User,
                                torg_code= excelTable[0].Rows[k][1].ToString().Trim()
                            }
                        });
                    }
                }
                //导入用户
                for (int i = 0; i < excelTable[1].Rows.Count; i++)
@@ -3292,7 +3287,13 @@
                        default:
                            break;
                    }
                    sql = @"select *   from TUser where usercode=@usercode";
                    dynamicParams.Add("@usercode", excelTable[1].Rows[i][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        continue;
                    }
                    sql = @"insert into TUser(usercode,username,password,enable,mobile,lm_date,email,lm_user,stu_torgcode,wagetype,usergroup_code) 
                            values(@UserCode,@UserName,@password,@Enable,@Mobile,@CreateDate,@Email,@Operator,@StuOrg,@wagetype,@usergroup_code)";
                    list.Add(new
@@ -3353,34 +3354,36 @@
                //导入角色类型
                for (int k = 0; k < excelTable[0].Rows.Count; k++)
                {
                    sql = @"insert into TRoleType(roletype_code,roletype_name)
                            values(@roletype_code,@roletype_name)";
                    sql = @"insert into TRoleType(roletype_code,roletype_name,torg_code)
                            values(@roletype_code,@roletype_name,@torg_code)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            roletype_code = excelTable[0].Rows[k][1].ToString().Trim(),
                            roletype_name = excelTable[0].Rows[k][2].ToString().Trim()
                            roletype_code = excelTable[0].Rows[k][2].ToString().Trim(),
                            roletype_name = excelTable[0].Rows[k][3].ToString().Trim(),
                            torg_code = excelTable[0].Rows[k][1].ToString().Trim()
                        }
                    });
                }
                //导入角色
                for (int i = 0; i < excelTable[1].Rows.Count; i++)
                {
                    sql = @"insert into TRole(role_code,role_name,roletype_code,description,lm_user,lm_date)
                            values(@role_code,@role_name,@roletype_code,@description,@Operator,@CreateDate)";
                    sql = @"insert into TRole(role_code,role_name,roletype_code,description,lm_user,lm_date,torg_code)
                            values(@role_code,@role_name,@roletype_code,@description,@Operator,@CreateDate,@torg_code)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            role_code = excelTable[1].Rows[i][1].ToString().Trim(),
                            role_name = excelTable[1].Rows[i][2].ToString().Trim(),
                            roletype_code = excelTable[1].Rows[i][3].ToString().Trim(),
                            description = excelTable[1].Rows[i][4].ToString().Trim(),
                            role_code = excelTable[1].Rows[i][2].ToString().Trim(),
                            role_name = excelTable[1].Rows[i][3].ToString().Trim(),
                            roletype_code = excelTable[1].Rows[i][4].ToString().Trim(),
                            description = excelTable[1].Rows[i][5].ToString().Trim(),
                            Operator = User,
                            CreateDate = DateTime.Now.ToString()
                            CreateDate = DateTime.Now.ToString(),
                            torg_code = excelTable[1].Rows[i][1].ToString().Trim()
                        }
                    });
                }
@@ -3612,77 +3615,37 @@
            try
            {
                list.Clear();
                List<DataTable> excelTable = new List<DataTable>();
                excelTable = ImportExcel.ExcelToThreeTableList(FileCode);
                //写入设备类型
                for (int i = 0; i < excelTable[0].Rows.Count; i++)
                {
                    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
                        {
                            code = excelTable[0].Rows[i][1].ToString().Trim(),
                            name = excelTable[0].Rows[i][2].ToString().Trim(),
                            lm_user = User,
                            lm_date = DateTime.Now.ToString(),
                            remark= excelTable[0].Rows[i][3].ToString().Trim()
                        }
                    });
                }
                //写入设备组
                for (int j = 0; j < excelTable[1].Rows.Count; j++)
                {
                    sql = @"insert into TEqpGroup(code,name,lm_user,lm_date,remark,eqptype_code)
                            values(@code,@name,@lm_user,@lm_date,@remark,@eqptype_code)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            code = excelTable[1].Rows[j][1].ToString().Trim(),
                            name = excelTable[1].Rows[j][2].ToString().Trim(),
                            lm_user = User,
                            lm_date = DateTime.Now.ToString(),
                            remark = excelTable[1].Rows[j][4].ToString().Trim(),
                            eqptype_code= excelTable[1].Rows[j][3].ToString().Trim()
                        }
                    });
                }
                DataTable excelTable = new DataTable();
                excelTable = ImportExcel.ExcelToTable(FileCode);
                //导入设备清单
                for (int k = 0; k < excelTable[2].Rows.Count; k++)
                for (int k = 0; k < excelTable.Rows.Count; k++)
                {
                    //获取车间编码
                    string sql0 = @"select org_code,org_name from TOrganization where org_name=@wkshp and description='W' and is_delete<>'1'";
                    dynamicParams.Add("@wkshp", excelTable[2].Rows[k][6].ToString());
                    var data = DapperHelper.selectdata(sql0, dynamicParams);
                    sql = @"insert into TEqpInfo(code,name,eqptype_code,eqpgroup_code,wksp_code,input_date,operation_ration,enable,opc_uom,lm_user,lm_date)
                            values(@devicecode,@devicename,@devicetype,@devicegroup,@workshop,@importdate,@ratio,@status,@uom,@lm_user,@lm_date)";
                    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)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            devicecode = excelTable[2].Rows[k][1].ToString().Trim(),
                            devicename = excelTable[2].Rows[k][2].ToString().Trim(),
                            devicetype = excelTable[2].Rows[k][3].ToString().Trim(),
                            devicegroup = excelTable[2].Rows[k][4].ToString().Trim(),
                            workshop = data.Rows[0]["org_code"].ToString().Trim(),
                            importdate = excelTable[2].Rows[k][5].ToString().Trim(),
                            ratio = excelTable[2].Rows[k][8].ToString().Trim(),
                            status = excelTable[2].Rows[k][7].ToString().Trim(),
                            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,
                            lm_date = DateTime.Now.ToString()
                        }
                    });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {