Basf_TCC11/HJGL/FineUIPro.Web/WelderManage/WelderManage.aspx.cs

899 lines
37 KiB
C#
Raw Normal View History

2024-05-08 16:27:28 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using AspNet = System.Web.UI.WebControls;
using System.Text;
using BLL;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
namespace FineUIPro.Web.WelderManage
{
public partial class WelderManage : PageBase
{
//定义变量
/// <summary>
/// 上传预设的虚拟路径
/// </summary>
private string initPath = Const.ExcelUrl;
/// <summary>
/// 错误集合
/// </summary>
public static string errorInfos = string.Empty;
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
this.BindGrid();
}
}
#region
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT Welder.WelderId, Welder.WelderCode, Welder.WelderName, Welder.UnitId,Welder.Birthday,
DATEDIFF(YEAR,Welder.Birthday,GETDATE()) AS Age,
(CASE WHEN Welder.Sex=1 THEN '男' ELSE '女' END) AS Sex,
Welder.IdentityCard, Welder.CertificateNum, Welder.CertificateValidity,
Welder.WelderLevel, Welder.Remark,Unit.UnitName,
(CASE WHEN Welder.IsOnDuty=1 THEN '是' ELSE '否' END) AS IsOnDuty
FROM Welder_Welder AS Welder
LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = Welder.UnitId WHERE 1=1";
List<SqlParameter> parms = new List<SqlParameter>();
if (!string.IsNullOrEmpty(this.txtWelderCode.Text))
{
strSql += " and Welder.WelderCode LIKE @WelderCode";
parms.Add(new SqlParameter("@WelderCode", "%" + this.txtWelderCode.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtWelderName.Text))
{
strSql += " and Welder.WelderName LIKE @WelderName";
parms.Add(new SqlParameter("@WelderName", "%" + this.txtWelderName.Text.Trim() + "%"));
}
SqlParameter[] parameter = parms.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = dt.Rows.Count;
var table = this.GetPagedDataTable(Grid1, dt);
Grid1.DataSource = table;
Grid1.DataBind();
}
/// <summary>
/// 改变索引事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
/// <summary>
/// 分页下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
BindGrid();
}
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#endregion
#region
/// <summary>
/// 增加按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
if (GetButtonPower(Const.BtnAdd))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WelderManageEdit.aspx", "新增 - ")));
}
else
{
Alert.ShowInTop(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
this.EditData();
}
/// <summary>
/// 右键编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
this.EditData();
}
/// <summary>
/// 编辑数据方法
/// </summary>
private void EditData()
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
return;
}
////双击事件 编辑权限有:编辑页面,无:查看页面 或者状态是完成时查看页面
if (GetButtonPower(Const.BtnModify))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WelderManageEdit.aspx?WelderId={0}", Grid1.SelectedRowID, "编辑 - ")));
}
else if (GetButtonPower(Const.BtnSee))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WelderManageView.aspx?WelderId={0}", Grid1.SelectedRowID, "查看 - ")));
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 右键删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (GetButtonPower(Const.BtnDelete))
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
string strShowNotify = string.Empty;
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var welder = BLL.WelderService.GetWelderById(rowID);
if (welder != null)
{
string cont = judgementDelete(rowID);
if (string.IsNullOrEmpty(cont))
{
BLL.WelderService.DeleteWelderById(rowID);
BLL.Sys_LogService.AddLog(Const.System_1, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.WelderManageMenuId, Const.BtnDelete, rowID);
}
else
{
strShowNotify += Resources.Lan.WelderManage + "" + welder.WelderCode + cont;
}
}
}
if (!string.IsNullOrEmpty(strShowNotify))
{
Alert.ShowInTop(strShowNotify, MessageBoxIcon.Warning);
}
else
{
BindGrid();
ShowNotify(Resources.Lan.DeletedSuccessfully, MessageBoxIcon.Success);
}
}
}
else
{
Alert.ShowInTop(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
return;
}
}
#region
/// <summary>
/// 判断是否可以删除
/// </summary>
/// <returns></returns>
private string judgementDelete(string id)
{
string content = string.Empty;
if (Funs.DB.Welder_ProjectWelder.FirstOrDefault(x => x.WelderId == id) != null)
{
content += "已在【项目焊工】中使用,不能删除!";
}
if (Funs.DB.Pipeline_WeldJoint.FirstOrDefault(x => x.BackingWelderId == id) != null)
{
content += "已在【焊接信息】中使用,不能删除!";
}
return content;
}
#endregion
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnQuery_Click(object sender, EventArgs e)
{
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 查看按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnView_Click(object sender, EventArgs e)
{
if (GetButtonPower(Const.BtnSee))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WelderManageView.aspx?WelderId={0}", Grid1.SelectedRowID, "查看 - ")));
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 获取性别
/// </summary>
/// <param name="sex"></param>
/// <returns></returns>
protected string ConvertSex(object sex)
{
if (sex != null)
{
if (sex.ToString() == "1")
{
return Resources.Lan.Male;
}
else if (sex.ToString() == "2")
{
return Resources.Lan.Female;
}
}
return null;
}
/// <summary>
/// 获取是否在岗
/// </summary>
/// <param name="isOnduty"></param>
/// <returns></returns>
protected string ConvertIsOnDuty(object isOnduty)
{
if (isOnduty != null)
{
if (Convert.ToBoolean(isOnduty) == true)
{
return Resources.Lan.Yes;
}
else if (Convert.ToBoolean(isOnduty) == false)
{
return Resources.Lan.No;
}
}
return null;
}
#endregion
#region
/// <summary>
/// 打印按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnPrint_Click(object sender, EventArgs e)
{
if (GetButtonPower(Const.BtnPrint))
{
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("WelderPrint.aspx?WelderId={0}", Grid1.SelectedRowID, "打印 - ")));
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "焊工基本信息.xlsx";
string strSql = @"SELECT Welder.WelderId, Welder.WelderCode, Welder.WelderName, Welder.UnitId,
Welder.Birthday,(CASE WHEN Welder.Sex=1 THEN '男' ELSE '女' END) AS Sex,
2024-07-01 09:29:35 +08:00
Welder.IdentityCard, Welder.CertificateNum, Welder.CertificateValidity,
2024-05-08 16:27:28 +08:00
Welder.WelderLevel, Welder.Remark,Unit.UnitName,Welder.IsOnDuty
FROM Welder_Welder AS Welder LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = Welder.UnitId
WHERE 1=1 ";
DataTable dt = SQLHelper.RunSqlGetTable(strSql);
if (dt.Rows.Count > 0)
{
int rowIndex = 0;
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false);
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("焊工基本信息");
#region
ws.SetColumnWidth(0, 6 * 256);
ws.SetColumnWidth(1, 10 * 256);
ws.SetColumnWidth(2, 20 * 256);
ws.SetColumnWidth(3, 12 * 256);
ws.SetColumnWidth(4, 19 * 256);
ws.SetColumnWidth(5, 20 * 256);
ws.SetColumnWidth(6, 27 * 256);
ws.SetColumnWidth(7, 12 * 256);
ws.SetColumnWidth(8, 11 * 256);
ws.SetColumnWidth(9, 11 * 256);
ws.SetColumnWidth(10, 14 * 256);
ws.SetColumnWidth(11, 18 * 256);
#endregion
#region
ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 3, style, 0, 11, true);
//行0
CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex, 0, 11);
ws.AddMergedRegion(region);
2024-07-01 09:29:35 +08:00
ws.GetRow(rowIndex).GetCell(0).SetCellValue("巴斯夫广东一体化丁辛醇OXO\r\n焊工信息登记表");
2024-05-08 16:27:28 +08:00
ws.GetRow(rowIndex).GetCell(0).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16);
//行1
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 11);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue($"时间:{DateTime.Now.ToString("yyyy-MM-dd")}");
ws.GetRow(rowIndex + 1).GetCell(0).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Right, 10);
//行3
ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("序号");
ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("焊工姓名");
ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("考试中心焊工号");
2024-07-01 09:29:35 +08:00
ws.GetRow(rowIndex + 2).GetCell(3).SetCellValue("CC11焊工号");
2024-05-08 16:27:28 +08:00
ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("身份证号");
ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("焊工证号");
ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("合格项目");
ws.GetRow(rowIndex + 2).GetCell(7).SetCellValue("考试时间");
ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("考试项目");
ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("是否合格");
ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue("在场状态");
ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("备注");
#endregion
#region
if (dt.Rows.Count > 0)
{
rowIndex += 3;
var welderIds = GetColumnValues<string>(dt, "WelderId");
var weldlerList = Funs.DB.Welder_WelderQualify.Where(x => welderIds.Contains(x.WelderId)).ToList();
for (int i = 0; i < dt.Rows.Count; i++)
{
int num = 0;
var itemWelders = weldlerList.Where(x => x.WelderId == dt.Rows[i]["WelderId"].ToString()).ToList();
if (itemWelders.Count > 0)
{
num = itemWelders.Count - 1;
ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + num, style, 0, 11);
2024-07-01 09:29:35 +08:00
if (num > 0)
{
//合并单元格
region = new CellRangeAddress(rowIndex, rowIndex + num, 0, 0);
ws.AddMergedRegion(region);
region = new CellRangeAddress(rowIndex, rowIndex + num, 1, 1);
ws.AddMergedRegion(region);
region = new CellRangeAddress(rowIndex, rowIndex + num, 2, 2);
ws.AddMergedRegion(region);
region = new CellRangeAddress(rowIndex, rowIndex + num, 3, 3);
ws.AddMergedRegion(region);
region = new CellRangeAddress(rowIndex, rowIndex + num, 4, 4);
ws.AddMergedRegion(region);
region = new CellRangeAddress(rowIndex, rowIndex + num, 5, 5);
ws.AddMergedRegion(region);
region = new CellRangeAddress(rowIndex, rowIndex + num, 10, 10);
ws.AddMergedRegion(region);
region = new CellRangeAddress(rowIndex, rowIndex + num, 11, 11);
ws.AddMergedRegion(region);
}
2024-05-08 16:27:28 +08:00
int j = 0;
foreach (var item in itemWelders)
{
int datanum = rowIndex + j;
//合格项目
ws.GetRow(datanum).GetCell(6).SetCellValue(item.QualifiedProjectCode);
//考试时间
ws.GetRow(datanum).GetCell(7).SetCellValue(item.CheckDate != null ? item.CheckDate.Value.ToString("yyyy-MM-dd") : string.Empty);
//考试项目
ws.GetRow(datanum).GetCell(8).SetCellValue(item.ExamProject);
//是否合格
string passStr = "否";
if (item.IsPass != null)
{
passStr = item.IsPass.Value ? "是" : "否";
}
ws.GetRow(datanum).GetCell(9).SetCellValue(passStr);
j++;
}
}
else
{
ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style, 0, 11);
}
//序号
ws.GetRow(rowIndex).GetCell(0).SetCellValue(i + 1);
//焊工姓名
ws.GetRow(rowIndex).GetCell(1).SetCellValue(dt.Rows[i]["WelderName"].ToString());
//考试中心焊工号
ws.GetRow(rowIndex).GetCell(2).SetCellValue(dt.Rows[i]["WelderLevel"].ToString());
//CC7焊工号
ws.GetRow(rowIndex).GetCell(3).SetCellValue(dt.Rows[i]["WelderCode"].ToString());
//身份证号
ws.GetRow(rowIndex).GetCell(4).SetCellValue(dt.Rows[i]["IdentityCard"].ToString());
//焊工证号
ws.GetRow(rowIndex).GetCell(5).SetCellValue(dt.Rows[i]["CertificateNum"].ToString());
//在场状态
string isOnDutyStr = string.Empty;
if (dt.Rows[i]["IsOnDuty"] != null)
{
isOnDutyStr = dt.Rows[i]["IsOnDuty"].ToString() == "1" ? "在场" : "离场";
}
ws.GetRow(rowIndex).GetCell(10).SetCellValue(isOnDutyStr);
//备注
ws.GetRow(rowIndex).GetCell(11).SetCellValue(dt.Rows[i]["Remark"].ToString());
rowIndex += 1 + num;
}
}
#endregion
ws.SetMargin(MarginType.LeftMargin, 0.3);
ws.SetMargin(MarginType.RightMargin, 0.2);
ws.PrintSetup.Landscape = true;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = System.IO.File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("焊工基本信息.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
}
/// <summary>
/// 导出方法
/// </summary>
/// <param name="grid"></param>
/// <returns></returns>
private string GetGridTableHtml(Grid grid)
{
StringBuilder sb = new StringBuilder();
grid.PageSize = 10000;
BindGrid();
this.Grid1.Columns[9].Hidden = true;
this.Grid1.Columns[10].Hidden = true;
sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
sb.AppendFormat("<td>{0}</td>", column.HeaderText);
}
sb.Append("</tr>");
foreach (GridRow row in grid.Rows)
{
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
string html = row.Values[column.ColumnIndex].ToString();
sb.AppendFormat("<td>{0}</td>", html);
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
#endregion
#region
/// <summary>
/// 模板下载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDownLoad_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + Const.WelderInfoTemplateUrl;
string filePath = Const.WelderInfoTemplateUrl;
string fileName = Path.GetFileName(filePath);
FileInfo info = new FileInfo(uploadfilepath);
long fileSize = info.Length;
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.ContentType = "excel/plain";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("Content-Length", fileSize.ToString().Trim());
Response.TransmitFile(uploadfilepath, 0, fileSize);
Response.End();
//PageContext.RegisterStartupScript(Confirm.GetShowReference("确定要下载焊工信息导入模板?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
}
/// <summary>
/// 下载导入模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
{
if (e.EventArgument == "Confirm_OK")
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + Const.WelderInfoTemplateUrl;
string filePath = Const.WelderInfoTemplateUrl;
string fileName = Path.GetFileName(filePath);
FileInfo info = new FileInfo(uploadfilepath);
long fileSize = info.Length;
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.ContentType = "excel/plain";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("Content-Length", fileSize.ToString().Trim());
Response.TransmitFile(uploadfilepath, 0, fileSize);
Response.End();
}
}
#endregion
protected void btnImport_Click(object sender, EventArgs e)
{
string message = string.Empty;
errorInfos = string.Empty;
try
{
if (this.fileUpload.HasFile == false)
{
ShowNotify("请选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string IsXls = Path.GetExtension(this.fileUpload.FileName).ToString().Trim().ToLower();
if (IsXls != ".xls" && IsXls != ".xlsx")
{
ShowNotify("只能选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + initPath;
if (!Directory.Exists(initFullPath))
{
Directory.CreateDirectory(initFullPath);
}
//指定上传文件名称
this.hidFileName.Text = BLL.Funs.GetNewFileName() + IsXls;
//上传文件路径
string filePath = initFullPath + this.hidFileName.Text;
//文件上传服务器
this.fileUpload.PostedFile.SaveAs(filePath);
//文件上传服务器后的名称
string fileName = rootPath + initPath + this.hidFileName.Text;
//读取Excel
DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out errorInfos, true);
//验证Excel读取是否有误
if (!string.IsNullOrEmpty(errorInfos))
{
ShowNotify(errorInfos, MessageBoxIcon.Warning);
return;
}
if (ds.Tables.Count > 0)
{
List<Model.Welder_Welder> welderList = new List<Model.Welder_Welder>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Model.Welder_Welder welder = new Model.Welder_Welder();
#region
string welderId = SQLHelper.GetNewID(typeof(Model.Welder_Welder));
welder.WelderId = welderId;
if (ds.Tables[0].Rows[i]["焊工姓名"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊工姓名"].ToString()))
{
welder.WelderName = ds.Tables[0].Rows[i]["焊工姓名"].ToString();
}
else
{
errorInfos += (i + 2) + "行, 焊工姓名不能为空!</br>";
}
string insId = string.Empty;
if (ds.Tables[0].Rows[i]["焊工号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊工号"].ToString()))
{
if (!BLL.WelderService.IsExisWelderCode(welderId, ds.Tables[0].Rows[i]["焊工号"].ToString()))
{
welder.WelderCode = ds.Tables[0].Rows[i]["焊工号"].ToString();
}
else
{
errorInfos += (i + 2) + "行, 焊工号已存在!</br>";
}
}
else
{
errorInfos += (i + 2) + "行, 焊工号不能为空!</br>";
}
if (ds.Tables[0].Rows[i]["所属单位"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["所属单位"].ToString()))
{
var unit = from x in Funs.DB.Base_Unit
where x.UnitName == ds.Tables[0].Rows[i]["所属单位"].ToString()
select x;
if (unit.Count() > 0)
{
welder.UnitId = unit.First().UnitId;
}
else
{
errorInfos += (i + 2) + "行, 所属单位不存在!</br>";
}
}
else
{
errorInfos += (i + 2) + "行, 所属单位不能为空!</br>";
}
if (ds.Tables[0].Rows[i]["性别"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["性别"].ToString()))
{
if (ds.Tables[0].Rows[i]["性别"].ToString() == "男")
{
welder.Sex = "1";
}
else if (ds.Tables[0].Rows[i]["性别"].ToString() == "女")
{
welder.Sex = "2";
}
else
{
errorInfos += (i + 2) + "行, 性别填写不规范,请填写男或女!</br>";
}
}
if (ds.Tables[0].Rows[i]["出生日期"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["出生日期"].ToString()))
{
try
{
DateTime b = Convert.ToDateTime(ds.Tables[0].Rows[i]["出生日期"].ToString());
welder.Birthday = b;
}
catch
{
errorInfos += (i + 2) + "行,出生日期格式不正确!</br>";
}
}
if (ds.Tables[0].Rows[i]["身份证号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["身份证号"].ToString()))
{
if (ds.Tables[0].Rows[i]["身份证号"].ToString().Length == 18)
{
welder.IdentityCard = ds.Tables[0].Rows[i]["身份证号"].ToString();
welder.CertificateNum = ds.Tables[0].Rows[i]["身份证号"].ToString();
}
else
{
errorInfos += (i + 2) + "行,身份证号格式不正确!</br>";
}
}
else
{
errorInfos += (i + 2) + "行,身份证号不能为空!</br>";
}
if (ds.Tables[0].Rows[i]["备注"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["备注"].ToString()))
{
welder.Remark = ds.Tables[0].Rows[i]["备注"].ToString();
}
welder.IsOnDuty = true;
#endregion
welderList.Add(welder);
}
// 数据验证错误,返回
if (!string.IsNullOrEmpty(errorInfos))
{
ShowNotify(errorInfos, MessageBoxIcon.Warning, 10000);
return;
}
else
{
if (welderList.Count > 0)
{
Funs.DB.Welder_Welder.InsertAllOnSubmit(welderList);
Funs.DB.SubmitChanges();
ShowNotify("焊工信息导入成功!", MessageBoxIcon.Success);
this.BindGrid();
}
//foreach (var item in welderList)
//{
// BLL.WelderService.AddWelder(item);
//}
//PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
else
{
ShowAlert("没有数据!", MessageBoxIcon.Warning);
return;
}
}
catch (Exception ex)
{
ShowAlert("'" + ex.Message + "'", MessageBoxIcon.Warning);
}
}
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private bool GetButtonPower(string button)
{
return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.WelderManageMenuId, button);
}
#endregion
#region
/// <summary>
/// 获取某一列的所有值
/// </summary>
/// <typeparam name="T">列数据类型</typeparam>
/// <param name="dtSource">数据表</param>
/// <param name="filedName">列名</param>
/// <returns></returns>
public static List<T> GetColumnValues<T>(DataTable dtSource, string filedName)
{
return (from r in dtSource.AsEnumerable() select r.Field<T>(filedName)).ToList<T>();
}
/// <summary>
/// 行和列
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRow(XSSFSheet ws, XSSFWorkbook hssfworkbook, int sRows, int eRows, ICellStyle style, int cStart, int cEnd, bool istitle = false)
{
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
if (istitle)
{
ws.GetRow(i).HeightInPoints =
i == sRows ? 49.75f :
i == (sRows + 1) ? 13.75f :
38f;
}
else
{
ws.GetRow(i).HeightInPoints = 38f;
}
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).GetCell(j).CellStyle = style;
}
}
return ws;
}
#endregion
}
}