Basf_FCL/FCL/FineUIPro.Web/SES/SSR.aspx.cs

724 lines
29 KiB
C#

using BLL;
using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.SES
{
public partial class SSR : PageBase
{
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
// 表头过滤
FilterDataRowItem = FilterDataRowItemImplement;
if (!IsPostBack)
{
GetButtonPower();//权限设置
btnNew.OnClientClick = Window1.GetShowReference("SSREdit.aspx") + "return false;";
btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("Please select at least one item!");
btnDelete.ConfirmText = String.Format("Are you sure you want to delete the selected &nbsp;<b><script>{0}</script></b>&nbsp;rows?", Grid1.GetSelectedCountReference());
this.drpContractAdmin.DataTextField = "UserName";
this.drpContractAdmin.DataValueField = "UserId";
this.drpContractAdmin.DataSource = BLL.Sys_UserService.getUserListByRoleId(BLL.Const.Role_ContractAdministratorId, true);
this.drpContractAdmin.DataBind();
//Funs.FineUIPleaseSelect(this.drpContractAdmin);
drpContractAdmin.Items.Insert(0, new FineUIPro.ListItem("Search by Contract Admin", BLL.Const._Null));
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
BindGrid();
}
else if (GetRequestEventArgument() == "FilterChange")
{
BindGrid();
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = @"select ssr.[SSRId], ssr.[SES_No],
(CASE WHEN ssr.WorkOrder IS NOT NULL AND ssr.Op IS NOT NULL
THEN ssr.WorkOrder + '-' + ssr.Op
ELSE (ISNULL(ssr.WorkOrder,'') + ISNULL(ssr.Op,'')) END) AS WorkOrderOp,
(CASE WHEN ssr.Network IS NOT NULL AND ssr.Nop IS NOT NULL
THEN ssr.Network + '-' + ssr.Nop
ELSE (ISNULL(ssr.Network,'') + ISNULL(ssr.Nop,'')) END) AS NetworkOp,
ssr.[RequisitionerId], ssr.[RequisitionerName],
ssr.[DepartmentId], ssr.[DepartmentName],
CONVERT(varchar(10),ssr.SubmmisionDate,23) AS SubmmisionDate,
CONVERT(nvarchar(30),ssr.ReturnDate,20) AS ReturnDate,
CONVERT(nvarchar(10),ssr.CompletionDate,23) as CompletionDate,
ssr.[ContractNo], ssr.[Address],ssr.[Remark],
CONVERT(nvarchar(30), ssr.InputDate,20) as InputDate,
ssr.[IsRetruned],ssr.[RetrunDuration],
(CASE WHEN ssr.SubmmisionDate IS NOT NULL THEN
(CASE WHEN ssr.ReturnDate IS NOT NULL THEN DATEDIFF(DAY,ssr.SubmmisionDate,ssr.ReturnDate)
ELSE DATEDIFF(DAY,ssr.SubmmisionDate,GETDATE()) END)
ELSE NULL END) AS NotRetrunDuration,
u.UserName AS ContractAdmin,ssr.ReturnStatus
from SSR ssr
LEFT JOIN dbo.Sys_User u ON u.UserId = ssr.ContractAdmin
WHERE 1=1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
//if (!string.IsNullOrEmpty(this.txtFO.Text.Trim()))
//{
// strSql += " AND FO LIKE @foNo";
// listStr.Add(new SqlParameter("@foNo", "%" + this.txtFO.Text.Trim() + "%"));
//}
if (!string.IsNullOrEmpty(this.txtSES_NO.Text.Trim()))
{
strSql += " AND ssr.SES_No LIKE @SES_No";
listStr.Add(new SqlParameter("@SES_No", "%" + this.txtSES_NO.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.reternDate.Text.Trim()))
{
strSql += " AND CONVERT(nvarchar(10),ssr.ReturnDate,23)=@ReturnDate";
listStr.Add(new SqlParameter("@ReturnDate", this.reternDate.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.txtInputDate.Text.Trim()))
{
strSql += " AND CONVERT(nvarchar(10),ssr.InputDate,23)=@InputDate";
listStr.Add(new SqlParameter("@InputDate", this.txtInputDate.Text.Trim()));
}
if (drpContractAdmin.SelectedValue != Const._Null)
{
strSql += " AND ssr.ContractAdmin=@ContractAdmin";
listStr.Add(new SqlParameter("@ContractAdmin", drpContractAdmin.SelectedValue));
}
if (drpStatus.SelectedValue != "0")
{
strSql += " AND ssr.ReturnStatus=@ReturnStatus";
listStr.Add(new SqlParameter("@ReturnStatus", drpStatus.SelectedValue));
}
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 Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 根据表头信息过滤列表数据
/// </summary>
/// <param name="sourceObj"></param>
/// <param name="fillteredOperator"></param>
/// <param name="fillteredObj"></param>
/// <param name="column"></param>
/// <returns></returns>
private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, object fillteredObj, string column)
{
bool valid = false;
if (column == "SES_No")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "WorkOrderOp")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "NetworkOp")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "RequisitionerName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "DepartmentName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "SubmmisionDate")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "CompletionDate")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "ContractNo")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "Address")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "InputDate")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "NotRetrunDuration")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "ReturnDate")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "ReturnStatus")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "Remark")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
return valid;
}
#endregion
#region
/// <summary>
/// 批量删除数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDelete_Click(object sender, EventArgs e)
{
this.DeleteData();
}
/// <summary>
/// 右键删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
this.DeleteData();
}
/// <summary>
/// 删除方法
/// </summary>
private void DeleteData()
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int i in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[i][0].ToString();
var ssr = BLL.SSRService.GetSSRById(rowID);
if (ssr != null)
{
if (judgementDelete(rowID, false))
{
BLL.SSRService.DeleteSSRById(rowID);
}
}
}
BindGrid();
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Delete SSR");
ShowNotify("Deleted successfully!");
}
}
#endregion
#region
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
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)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Text_TextChanged(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnEdit_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInParent("Please select at least one record!");
return;
}
string Id = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SSREdit.aspx?SSRId={0}", Id, "编辑 - ")));
}
/// <summary>
/// 右键编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
btnEdit_Click(null, null);
}
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnEdit_Click(null, null);
}
#endregion
#region
/// <summary>
/// 判断是否可以删除
/// </summary>
/// <returns></returns>
private bool judgementDelete(string id, bool isShow)
{
string content = string.Empty;
//if (Funs.DB.Sys_User.FirstOrDefault(x => x.RoleId == id) != null)
//{
// content = "This role is already in use in [user information] and cannot be deleted!";
//}
if (string.IsNullOrEmpty(content))
{
return true;
}
else
{
if (isShow)
{
Alert.ShowInTop(content);
}
return false;
}
}
#endregion
#region
/// <summary>
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnExport_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//模板文件
string TempletFileName = rootPath + "SSR_collection.xlsx";
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "out.xlsx";
FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read);
XSSFWorkbook hssfworkbook = new XSSFWorkbook(file);
#region FC_List
XSSFSheet reportModel = (XSSFSheet)hssfworkbook.GetSheet("SSR_Collection");
IDataFormat dataformat = hssfworkbook.CreateDataFormat();
ICellStyle styleQfw = hssfworkbook.CreateCellStyle();
styleQfw.DataFormat = dataformat.GetFormat("#,##0.00");
ICellStyle styleDate = hssfworkbook.CreateCellStyle();
styleDate.DataFormat = dataformat.GetFormat("yyyy/m/d");
ICellStyle styleTime = hssfworkbook.CreateCellStyle();
styleTime.DataFormat = dataformat.GetFormat("yyyy/m/d HH:mm:ss");
XSSFFont cs_content_Font = (XSSFFont)hssfworkbook.CreateFont(); //创建字体
cs_content_Font.FontName = "sans-serif";//字体
cs_content_Font.FontHeightInPoints = 10; //字体大小
Grid1.PageSize = 1000000;
BindGrid();
if (Grid1.Rows.Count() > 0)
{
for(int i=1;i<= Grid1.Rows.Count();i++)
{
if (reportModel.GetRow(i) == null) reportModel.CreateRow(i);
#region
//SES No
if (reportModel.GetRow(i).GetCell(0) == null) reportModel.GetRow(i).CreateCell(0);
reportModel.GetRow(i).GetCell(0).SetCellValue(Grid1.Rows[i-1].Values[0].ToString());
//reportModel.GetRow(i).GetCell(0).CellStyle.SetFont(cs_content_Font);//将字体绑定到样式
//Work order-op.
if (reportModel.GetRow(i).GetCell(1) == null) reportModel.GetRow(i).CreateCell(1);
reportModel.GetRow(i).GetCell(1).SetCellValue(Grid1.Rows[i - 1].Values[1].ToString());
// Network-op
if (reportModel.GetRow(i).GetCell(2) == null) reportModel.GetRow(i).CreateCell(2);
reportModel.GetRow(i).GetCell(2).SetCellValue(Grid1.Rows[i - 1].Values[2].ToString());
//Requisitioner
if (reportModel.GetRow(i).GetCell(3) == null) reportModel.GetRow(i).CreateCell(3);
reportModel.GetRow(i).GetCell(3).SetCellValue(Grid1.Rows[i - 1].Values[3].ToString());
//Department
if (reportModel.GetRow(i).GetCell(4) == null) reportModel.GetRow(i).CreateCell(4);
reportModel.GetRow(i).GetCell(4).SetCellValue(Grid1.Rows[i - 1].Values[4].ToString());
//Claim Sheet Receive
if (reportModel.GetRow(i).GetCell(5) == null) reportModel.GetRow(i).CreateCell(5);
if (Grid1.Rows[i - 1].Values[5] != null && Grid1.Rows[i - 1].Values[5].ToString() != "")
{
reportModel.GetRow(i).GetCell(5).SetCellValue((DateTime)Convert.ToDateTime(Grid1.Rows[i - 1].Values[5].ToString()));
reportModel.GetRow(i).GetCell(5).CellStyle = styleDate;
}
//Completion Date
if (reportModel.GetRow(i).GetCell(6) == null) reportModel.GetRow(i).CreateCell(6);
if (Grid1.Rows[i - 1].Values[6] != null && Grid1.Rows[i - 1].Values[6].ToString() != "")
{
reportModel.GetRow(i).GetCell(6).SetCellValue((DateTime)Convert.ToDateTime(Grid1.Rows[i - 1].Values[6].ToString()));
reportModel.GetRow(i).GetCell(6).CellStyle = styleDate;
}
//Contract No.
if (reportModel.GetRow(i).GetCell(7) == null) reportModel.GetRow(i).CreateCell(7);
reportModel.GetRow(i).GetCell(7).SetCellValue(Grid1.Rows[i - 1].Values[7].ToString());
//Address
if (reportModel.GetRow(i).GetCell(8) == null) reportModel.GetRow(i).CreateCell(8);
reportModel.GetRow(i).GetCell(8).SetCellValue(Grid1.Rows[i - 1].Values[8].ToString());
//Entry Date
if (reportModel.GetRow(i).GetCell(9) == null) reportModel.GetRow(i).CreateCell(9);
if (Grid1.Rows[i - 1].Values[9] != null && Grid1.Rows[i - 1].Values[9].ToString() != "")
{
reportModel.GetRow(i).GetCell(9).SetCellValue((DateTime)Convert.ToDateTime(Grid1.Rows[i - 1].Values[9].ToString()));
reportModel.GetRow(i).GetCell(9).CellStyle = styleTime;
}
//Contract Admin
if (reportModel.GetRow(i).GetCell(10) == null) reportModel.GetRow(i).CreateCell(10);
reportModel.GetRow(i).GetCell(10).SetCellValue(Grid1.Rows[i - 1].Values[10].ToString());
//Not return day
if (reportModel.GetRow(i).GetCell(11) == null) reportModel.GetRow(i).CreateCell(11);
reportModel.GetRow(i).GetCell(11).SetCellValue(Grid1.Rows[i - 1].Values[11].ToString());
//Return Date
if (reportModel.GetRow(i).GetCell(12) == null) reportModel.GetRow(i).CreateCell(12);
reportModel.GetRow(i).GetCell(12).SetCellValue(Grid1.Rows[i - 1].Values[12].ToString());
//Return Status
if (reportModel.GetRow(i).GetCell(13) == null) reportModel.GetRow(i).CreateCell(13);
reportModel.GetRow(i).GetCell(13).SetCellValue(Grid1.Rows[i - 1].Values[13].ToString());
//Remark
if (reportModel.GetRow(i).GetCell(14) == null) reportModel.GetRow(i).CreateCell(14);
reportModel.GetRow(i).GetCell(14).SetCellValue(Grid1.Rows[i - 1].Values[14].ToString());
#endregion
}
}
#endregion
reportModel.ForceFormulaRecalculation = true;
using (FileStream filess = 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=SSR_collection_" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
#endregion
#region
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.SSRMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnEdit.Hidden = false;
this.btnMenuEdit.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnDelete.Hidden = false;
this.btnMenuDelete.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnReturn.Hidden = false;
this.Grid1.EnableRowDoubleClickEvent = true;
}
else
{
this.Grid1.EnableRowDoubleClickEvent = false;
}
}
}
#endregion
#region
/// <summary>
/// 取回日期
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReturn_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int i in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[i][0].ToString();
Model.SSR ssr = BLL.SSRService.GetSSRById(rowID);
if (ssr != null)
{
//if (ssr.ReturnDate == null)
//{
ssr.ReturnDate = DateTime.Now;
ssr.IsRetruned = true;
BLL.SSRService.UpdateSSRRetrunDate(ssr);
//}
}
}
ShowNotify("Save successfully!", MessageBoxIcon.Success);
this.BindGrid();
}
}
#endregion
/// <summary>
/// 查看
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuView_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInParent("Please select at least one record!");
return;
}
string Id = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SSREdit.aspx?SSRId={0}&view=1", Id, "编辑 - ")));
}
}
}