CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/CQMS/Check/JointCheckStatistics.aspx.cs

499 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 BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.CQMS.Check
{
public partial class JointCheckStatistics : PageBase
{
/// <summary>
/// 项目id
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Funs.FineUIPleaseSelect(drpState);
Funs.FineUIPleaseSelect(drpQuestionType);
QualityQuestionTypeService.InitQualityQuestionTypeDownList(drpQuestionType, true);
UnitService.InitUnitDropDownList(drpSponsorUnit, this.CurrUser.LoginProjectId, true);//施工单位
UnitWorkService.InitUnitWorkDownList(drpUnitWork, this.CurrUser.LoginProjectId, true);//单位工程
CNProfessionalService.InitCNProfessionalDownList(drpCNProfessional, true);//专业
this.drpCheckType.DataTextField = "Text";
this.drpCheckType.DataValueField = "Value";
this.drpCheckType.DataSource = BLL.JointCheckService.GetCheckTypeList2();
this.drpCheckType.DataBind();
BindGrid();
}
}
public void BindGrid()
{
this.ProjectId = this.CurrUser.LoginProjectId;
string strSql = @"select * from View_Check_JointCheckDetail where 1=1";
List<SqlParameter> listStr = new List<SqlParameter>();
strSql += " AND ProjectId = @ProjectId";
listStr.Add(new SqlParameter("@ProjectId", this.ProjectId));
if (drpSponsorUnit.SelectedValue != BLL.Const._Null && drpSponsorUnit.SelectedValue != null)
{
strSql += " AND UnitId = @UnitId";
listStr.Add(new SqlParameter("@UnitId", this.drpSponsorUnit.SelectedValue));
}
if (!string.IsNullOrEmpty(txtStartTime.Text.Trim()))
{
strSql += " AND CheckDate >= @CheckDate";
listStr.Add(new SqlParameter("@CheckDate", txtStartTime.Text.Trim() + " 00:00:00"));
}
if (!string.IsNullOrEmpty(txtEndTime.Text.Trim()))
{
strSql += " AND CheckDate <= @CheckDateE";
listStr.Add(new SqlParameter("@CheckDateE", txtEndTime.Text.Trim() + " 23:59:59"));
}
if (drpUnitWork.SelectedValue != BLL.Const._Null && drpUnitWork.SelectedValue != null)
{
strSql += " AND UnitWorkId = @UnitWorkId";
listStr.Add(new SqlParameter("@UnitWorkId", this.drpUnitWork.SelectedValue));
}
if (drpCNProfessional.SelectedValue != BLL.Const._Null && drpCNProfessional.SelectedValue != null)
{
strSql += " AND CNProfessionalCode = @CNProfessionalCode";
listStr.Add(new SqlParameter("@CNProfessionalCode", this.drpCNProfessional.SelectedValue));
}
if (drpCheckType.SelectedValue != BLL.Const._Null && drpCheckType.SelectedValue != null && drpCheckType.SelectedValue != "")
{
strSql += " AND CheckType = @CheckType";
listStr.Add(new SqlParameter("@CheckType", this.drpCheckType.SelectedValue));
}
if (drpState.SelectedValue != Const._Null)
{
if (drpState.SelectedValue == "1") //已闭合
{
strSql += " AND OK='1' ";
}
else //未闭合
{
strSql += " AND OK='0'";
}
}
if (drpQuestionType.SelectedValue != Const._Null)
{
strSql += " AND QuestionType=@QuestionType";
listStr.Add(new SqlParameter("@QuestionType", drpQuestionType.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();
}
/// <summary>
/// 把状态转换代号为文字形式
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected string ConvertState(object JointCheckDetailId)
{
Model.Check_JointCheckDetail jointCheckDetail = BLL.JointCheckDetailService.GetJointCheckDetailByJointCheckDetailId(JointCheckDetailId.ToString());
if (jointCheckDetail != null)
{
if (!string.IsNullOrEmpty(jointCheckDetail.State))
{
string state = jointCheckDetail.State;
if (state == BLL.Const.JointCheck_ReCompile)
{
return "重新整理";
}
else if (state == BLL.Const.JointCheck_Compile)
{
return "编制";
}
else if (state == BLL.Const.JointCheck_Audit1)
{
return "分包专业工程师回复";
}
else if (state == BLL.Const.JointCheck_Audit2)
{
return "分包负责人确认";
}
else if (state == BLL.Const.JointCheck_Audit3)
{
return "总包专业工程师确认";
}
else if (state == BLL.Const.JointCheck_Audit4)
{
return "总包质量经理确认";
}
else if (state == BLL.Const.JointCheck_Complete)
{
return "审批完成";
}
else if (state == BLL.Const.JointCheck_Audit1R)
{
return "分包专工重新回复";
}
else
{
return "";
}
}
else
{
return "";
}
//string state = BLL.JointCheckService.GetJointCheck(jointCheckDetail.JointCheckId).State;
}
else
{
string state = BLL.CheckControlService.GetCheckControl(JointCheckDetailId.ToString()).State;
if (state == BLL.Const.CheckControl_ReCompile)
{
return "重新整理";
}
else if (state == BLL.Const.CheckControl_Compile)
{
return "编制";
}
else if (state == BLL.Const.CheckControl_Audit1)
{
return "总包负责人审批";
}
else if (state == BLL.Const.CheckControl_Audit2)
{
return "分包专业工程师回复";
}
else if (state == BLL.Const.CheckControl_Audit3)
{
return "分包负责人审批";
}
else if (state == BLL.Const.CheckControl_Audit4)
{
return "总包专业工程师确认";
}
else if (state == BLL.Const.CheckControl_Audit5)
{
return "总包负责人审批";
}
else if (state == BLL.Const.CheckControl_Complete)
{
return "审批完成";
}
else if (state == BLL.Const.CheckControl_ReCompile2)
{
return "分包专业工程师重新回复";
}
else
{
return "";
}
}
}
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
string itemId = Grid1.DataKeys[e.RowIndex][0].ToString();
Model.Check_JointCheck jointCheck1 = JointCheckService.GetJointCheck(itemId);
if (e.CommandName == "ReAttachUrl")
{
if (jointCheck1 != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/JointCheck&type=-1", itemId + "r", "查看 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CheckControl&type=-1", itemId + "r", "查看 - ")));
}
}
if (e.CommandName == "attchUrl")
{
if (jointCheck1 != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/JointCheck&type=-1", itemId, "查看 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CheckControl&type=-1", itemId, "查看 - ")));
}
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGrid();
}
protected void btnRset_Click(object sender, EventArgs e)
{
drpSponsorUnit.SelectedIndex = 0;
drpCheckType.SelectedIndex = 0;
drpCNProfessional.SelectedIndex = 0;
drpUnitWork.SelectedIndex = 0;
drpState.SelectedIndex = 0;
drpQuestionType.SelectedIndex = 0;
txtStartTime.Text = "";
txtEndTime.Text = "";
BindGrid();
}
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
#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.JointCheckStatisticsTemlUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = from x in Funs.DB.View_Check_JointCheckDetail where x.ProjectId == this.CurrUser.LoginProjectId select x;
if (drpSponsorUnit.SelectedValue != BLL.Const._Null && drpSponsorUnit.SelectedValue != null)
{
lists = lists.Where(x => x.UnitId == this.drpSponsorUnit.SelectedValue);
}
if (!string.IsNullOrEmpty(txtStartTime.Text.Trim()))
{
lists = lists.Where(x => x.CheckDate >= Funs.GetNewDateTime(txtStartTime.Text.Trim() + " 00:00:00"));
}
if (!string.IsNullOrEmpty(txtEndTime.Text.Trim()))
{
lists = lists.Where(x => x.CheckDate <= Funs.GetNewDateTime(txtEndTime.Text.Trim() + " 23:59:59"));
}
if (drpUnitWork.SelectedValue != BLL.Const._Null && drpUnitWork.SelectedValue != null)
{
lists = lists.Where(x => x.UnitWorkId == this.drpUnitWork.SelectedValue);
}
if (drpCNProfessional.SelectedValue != BLL.Const._Null && drpCNProfessional.SelectedValue != null)
{
lists = lists.Where(x => x.CNProfessionalCode == this.drpCNProfessional.SelectedValue);
}
if (drpCheckType.SelectedValue != BLL.Const._Null && drpCheckType.SelectedValue != null && drpCheckType.SelectedValue != "")
{
lists = lists.Where(x => x.CheckType == this.drpCheckType.SelectedValue);
}
if (drpState.SelectedValue != Const._Null)
{
if (drpState.SelectedValue == "1") //已闭合
{
lists = lists.Where(x => x.OK == '1');
}
else //未闭合
{
lists = lists.Where(x => x.OK == '0');
}
}
if (drpQuestionType.SelectedValue != Const._Null)
{
lists = lists.Where(x => x.QuestionType == this.drpQuestionType.SelectedValue);
}
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;
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle();
cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font0 = workbook.CreateFont();
font0.FontHeightInPoints = 12;
font0.IsBold = true;
cellStyle0.SetFont(font0);
// 第二步:创建新数据行
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.CheckDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.CheckDate) : "");
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.CheckTypeStr);
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.UnitWorkName);
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ProfessionalName);
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.QuestionTypeStr);
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.CheckSite);
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.QuestionDef);
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.HandleWay);
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
string s = string.Empty;
if (!string.IsNullOrEmpty(item.JointCheckDetailId))
{
s = ConvertState(item.JointCheckDetailId);
}
cell.SetCellValue(s);
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);
}
}
#pragma warning disable CS0108 // “PersonList.GetGridTableHtml(Grid)”隐藏继承的成员“PageBase.GetGridTableHtml(Grid)”。如果是有意隐藏,请使用关键字 new。
// /// <summary>
// /// 导出方法
// /// </summary>
// /// <param name="grid"></param>
// /// <returns></returns>
// private string GetGridTableHtml(Grid grid)
//#pragma warning restore CS0108 // “PersonList.GetGridTableHtml(Grid)”隐藏继承的成员“PageBase.GetGridTableHtml(Grid)”。如果是有意隐藏,请使用关键字 new。
// {
// StringBuilder sb = new StringBuilder();
// 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)
// {
// if (column.ColumnID != "AttchUrl" && column.ColumnID != "ReAttachUrl")
// {
// 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)
// {
// if (column.ColumnID != "AttchUrl" && column.ColumnID != "ReAttachUrl")
// {
// string html = row.Values[column.ColumnIndex].ToString();
// if (column.ColumnID == "tfPageIndex")
// {
// html = (row.FindControl("lblPageIndex") as AspNet.Label).Text;
// }
// if (column.ColumnID == "lbState")
// {
// html = (row.FindControl("lbState") as AspNet.Label).Text;
// }
// //sb.AppendFormat("<td>{0}</td>", html);
// sb.AppendFormat("<td style='vnd.ms-excel.numberformat:@;width:140px;'>{0}</td>", html);
// }
// }
// sb.Append("</tr>");
// }
// sb.Append("</table>");
// return sb.ToString();
// }
#endregion
}
}