CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs

558 lines
21 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Aspose.Words.Tables;
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.Comprehensive
{
public partial class InspectionPerson : PageBase
{
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();
BLL.UnitService.InitUnitDownList(this.sdrpUnitId, this.CurrUser.LoginProjectId, true);
BLL.PostService.InitPostDownList(this.sdrpPost, true);
BindGrid();
}
}
/// <summary>
/// 数据绑定
/// </summary>
public void BindGrid()
{
string strSql = @"select InspectionPersonId, InspectionPersonCode, PersonName, Status,
CertificateNumber, QualifiedProjectCode, ValidityDate, ApprovalTime,
DepartureTime, AttachUrl,CompileMan, CompileDate,
IsOnSite, UnitWorkId,U.UnitName,CN.ProfessionalName ,P.PostName,C.RemarkCode
from Comprehensive_InspectionPerson C
left join Base_Unit U on C.UnitId=U.UnitId
left join Base_CNProfessional CN on C.CNProfessionalId=CN.CNProfessionalId
left join Base_Post P on C.PostId=P.PostId
where C.ProjectId = @ProjectId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
if (sdrpUnitId.SelectedValue != BLL.Const._Null)
{
strSql += " AND C.UnitId=@UnitId";
listStr.Add(new SqlParameter("@UnitId", sdrpUnitId.SelectedValue));
}
if (sdrpPost.SelectedValue != BLL.Const._Null)
{
strSql += " AND C.PostId=@PostId";
listStr.Add(new SqlParameter("@PostId", sdrpPost.SelectedValue));
}
if (!string.IsNullOrEmpty(this.stxtPersonName.Text.Trim()))
{
strSql += " AND PersonName like @PersonName";
listStr.Add(new SqlParameter("@PersonName", "%" + this.stxtPersonName.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region
/// <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_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 新增按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectionPersonEdit.aspx", "编辑 - ")));
}
#endregion
#region
/// <summary>
/// 右键编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuModify_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectionPersonEdit.aspx?InspectionPersonId={0}", Grid1.SelectedRowID, "编辑 - ")));
}
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnMenuModify_Click(sender, e);
}
#endregion
#region
/// <summary>
/// 右键删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDel_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var InspectionPerson = BLL.InspectionPersonService.GetInspectionPersonById(rowID);
if (InspectionPerson != null)
{
BLL.InspectionPersonService.DeleteInspectionPerson(rowID);
}
}
BindGrid();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region
/// <summary>
/// 获取单位工程名称
/// </summary>
/// <param name="CarryUnitWorks"></param>
/// <returns></returns>
protected string ConvertUnitWork(object CarryUnitWorks)
{
string CarryUnitWorkName = string.Empty;
if (CarryUnitWorks != null)
{
string[] Ids = CarryUnitWorks.ToString().Split(',');
foreach (string t in Ids)
{
var UnitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(t);
if (UnitWork != null)
{
CarryUnitWorkName += UnitWork.UnitWorkName + ",";
}
}
}
if (CarryUnitWorkName != string.Empty)
{
return CarryUnitWorkName.Substring(0, CarryUnitWorkName.Length - 1);
}
else
{
return "";
}
}
#endregion
#region
/// <summary>
/// 导入按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImport_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("InspectionPersonDataIn.aspx", "导入 - ")));
}
#endregion
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower()
{
if (Request.Params["value"] == "0")
{
return;
}
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.InspectionPersonMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuModify.Hidden = false;
this.Grid1.EnableRowDoubleClickEvent = true;
}
else
{
this.Grid1.EnableRowDoubleClickEvent = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDel.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnImport.Hidden = false;
}
}
}
#endregion
/// <summary>
/// Grid行绑定
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PreRowDataBound(object sender, GridPreRowEventArgs e)
{
// 如果绑定到 DataTable那么这里的 DataItem 就是 DataRowView
DataRowView row = e.DataItem as DataRowView;
LinkButtonField lbfAction1 = Grid1.FindColumn("lbfAction1") as LinkButtonField;
if (row["PostName"].ToString() == "焊工")
{
lbfAction1.Enabled = true;
}
else
{
lbfAction1.Enabled = false;
}
}
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
DataRowView row = e.DataItem as DataRowView;
string ValidityDate = row["ValidityDate"].ToString();
if (!string.IsNullOrEmpty(ValidityDate))
{
if (DateTime.Compare(DateTime.Parse(ValidityDate).AddDays(-15), DateTime.Now) < 0)
{
// Grid1.Rows[e.RowIndex].RowCssClass = "Red";
//过期为红色
e.RowCssClass = "Red";
}
}
else
{
e.RowCssClass = "Yellow";
}
//离场人员为灰色
string DepartureTime = row["DepartureTime"].ToString();
string IsOnSite = row["IsOnSite"].ToString();
if (!string.IsNullOrEmpty(DepartureTime) || IsOnSite == "False")
{
e.RowCssClass = "Gray";
}
}
/// <summary>
/// Grid行点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "Action1")
{
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("PersonItem.aspx?InspectionPersonId={0}", Grid1.SelectedRowID, "编辑 - ")));
}
}
//public static string ConvertState(object Status)
//{
// if (Status != null)
// {
// if (Status.ToString().Trim() == BLL.Const.Comprehensive_ReCompile)
// {
// return "重报";
// }
// else if (Status.ToString().Trim() == BLL.Const.Comprehensive_ReJect)
// {
// return "驳回";
// }
// else if (Status.ToString().Trim() == BLL.Const.Comprehensive_Compile)
// {
// return "编制";
// }
// else if (Status.ToString().Trim() == BLL.Const.Comprehensive_Audit)
// {
// return "待审批";
// }
// else if (Status.ToString().Trim() == BLL.Const.Comprehensive_Complete)
// {
// return "审批完成";
// }
// }
// return "编制";
//}
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.InspectionPersonDataInUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = (from x in Funs.DB.Comprehensive_InspectionPerson
where x.ProjectId == this.CurrUser.LoginProjectId
select x);
if (this.sdrpUnitId.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.UnitId == this.sdrpUnitId.SelectedValue);
}
if (sdrpPost.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.PostId == this.sdrpPost.SelectedValue);
}
if (!string.IsNullOrEmpty(this.stxtPersonName.Text.Trim()))
{
lists = lists.Where(x => x.PersonName.Contains(this.stxtPersonName.Text.Trim()));
}
lists = lists.OrderBy(x => x.RemarkCode);
if (lists != null)
{
string projectName = BLL.ProjectService.GetShortNameByProjectId(this.CurrUser.LoginProjectId);
newUrl = uploadfilepath.Replace("人员报验导入模板", "人员报验(" + projectName + DateTime.Now.ToString("yyyyMMdd") + "");
File.Copy(uploadfilepath, newUrl);
// 第一步:读取文件流
NPOI.SS.UserModel.IWorkbook workbook;
using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read))
{
//workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
cellStyle.WrapText = true;//自动换行
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 2;
foreach (var item in lists)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(BLL.UnitService.GetUnitNameByUnitId(item.UnitId));//报验单位
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionPersonCode);//报验编号
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.PersonName);//姓名
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
string proName = string.Empty;
var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId);
if (cnp != null)
{
proName = cnp.ProfessionalName;
}
cell.SetCellValue(proName);//专业
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
string unitWork = string.Empty;
if (!string.IsNullOrEmpty(item.UnitWorkId))
{
unitWork = ConvertUnitWork(item.UnitWorkId);
}
cell.SetCellValue(unitWork);//单位工程名称
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
string postName = string.Empty;
if (!string.IsNullOrEmpty(item.PostId))
{
var post = BLL.PostService.GetPostById(item.PostId);
if (post != null)
{
postName = post.PostName;
}
}
cell.SetCellValue(postName);//工种
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.CertificateNumber);//证书编号
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.QualifiedProjectCode);//合格项目代号(级别)
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ValidityDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ValidityDate) : "");//有效期
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ApprovalTime.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ApprovalTime) : "");//批准时间
cell = row.CreateCell(10);
cell.CellStyle = cellStyle;
string isO = string.Empty;
if (item.IsOnSite == true)//是否在场
{
isO = "是";
}
else
{
isO = "否";
}
cell.SetCellValue(isO);
cell = row.CreateCell(11);
cell.CellStyle = cellStyle;
string isT = string.Empty;
if (item.IsTrain == true)//是否培训
{
isT = "是";
}
else
{
isT = "否";
}
cell.SetCellValue(isT);
cell = row.CreateCell(12);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.DepartureTime.HasValue ? string.Format("{0:yyyy-MM-dd}", item.DepartureTime) : "");//离场时间
cell = row.CreateCell(13);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Remark);//备注
cell = row.CreateCell(14);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.RemarkCode.HasValue ? item.RemarkCode.ToString() : "");//标志编号
i++;
}
// 第三步:写入文件流
using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write))
{
workbook.Write(stream);
workbook.Close();
}
string fileName = Path.GetFileName(newUrl);
FileInfo info = new FileInfo(newUrl);
long fileSize = info.Length;
Response.Clear();
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", fileSize.ToString());
Response.TransmitFile(newUrl, 0, fileSize);
Response.Flush();
Response.Close();
File.Delete(newUrl);
}
else
{
Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning);
}
}
#endregion
}
}