SGGL_SHJ/SGGL/FineUIPro.Web/HSSE/Hazard/ConstructionRisk.aspx.cs

785 lines
34 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 Model;
using NPOI.SS.Util;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.HSSE.Hazard
{
public partial class ConstructionRisk : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();//权限设置
this.InitTreeMenu();//加载树
}
}
#region
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
List<Base_Unit> units = null;
var user = Person_PersonsService.GetPerson_PersonsById(this.CurrUser.PersonId);
if (!string.IsNullOrEmpty(user.UnitId))
{
var projectUnit = BLL.ProjectUnitService.GetProjectUnitByUnitIdProjectId(this.CurrUser.LoginProjectId, user.UnitId);
if (projectUnit != null)
{
if (projectUnit.UnitType == BLL.Const.ProjectUnitType_1 || projectUnit.UnitType == BLL.Const.ProjectUnitType_3 || projectUnit.UnitType == BLL.Const.ProjectUnitType_4)
{
var ids = Funs.DB.HSSE_ConstructionRisk.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).Select(x => x.UnitId).Distinct().ToList();
units = (from x in Funs.DB.Base_Unit
where ids.Contains(x.UnitId)
select x).OrderBy(x => x.UnitCode).ToList();
}
else
{
units = (from x in Funs.DB.Base_Unit
where x.UnitId == this.CurrUser.UnitId
select x).ToList();
}
}
}
else if (user.UnitId == Const.UnitId_SEDIN || user.PersonId == Const.hfnbdId)
{
var ids = Funs.DB.HSSE_ConstructionRisk.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).Select(x => x.UnitId).Distinct().ToList();
units = (from x in Funs.DB.Base_Unit
where ids.Contains(x.UnitId)
select x).OrderBy(x => x.UnitCode).ToList();
}
if (units != null && units.Count > 0)
{
foreach (var unit in units)
{
TreeNode rootNode = new TreeNode();
rootNode.Text = unit.UnitName;
rootNode.NodeID = unit.UnitId;
rootNode.ToolTip = "单位";
rootNode.Expanded = false;
this.tvControlItem.Nodes.Add(rootNode);
this.BindNodes(rootNode);
}
}
}
#endregion
#region
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
this.InitTreeMenu();
this.BindGrid();
}
protected void Window2_Close(object sender, WindowCloseEventArgs e)
{
if (!string.IsNullOrEmpty(hdState.Text))
{
string[] strs = hdState.Text.Split('|');
if (strs[0] == "A")
{
var ids = Grid1.SelectedRowID.Split('|');
if (ids.Length > 1)
{
hdState.Text = "";
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../Check/RectifyNoticesAdd.aspx?ControlId={0}", strs[1], "编辑 - ")));
}
}
else if (strs[0] == "B")
{
var ids = Grid1.SelectedRowID.Split('|');
if (ids.Length > 1)
{
hdState.Text = "";
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../HiddenInspection/HiddenRectificationAdd.aspx?ControlId={0}", strs[1], "编辑 - ")));
}
}
}
this.InitTreeMenu();
this.BindGrid();
}
#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();
}
#endregion
#region
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// <summary>
/// 右键删除明细
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var ids = rowID.Split('|');
if (ids.Length >= 1)
{
var list = Funs.DB.HSSE_ConstructionRiskControl.Where(x => x.ConstructionRiskId == ids[0]).ToList();
Funs.DB.HSSE_ConstructionRiskControl.DeleteAllOnSubmit(list);
var approves = Funs.DB.HSSE_ConstructionRiskApprove.Where(x => x.ConstructionRiskId == ids[0]).ToList();
Funs.DB.HSSE_ConstructionRiskApprove.DeleteAllOnSubmit(approves);
var constructionRisk = Funs.DB.HSSE_ConstructionRisk.Where(x => x.ConstructionRiskId == ids[0]).FirstOrDefault();
Funs.DB.HSSE_ConstructionRisk.DeleteOnSubmit(constructionRisk);
Funs.DB.SubmitChanges();
}
}
ShowNotify("删除成功!", MessageBoxIcon.Success);
this.InitTreeMenu();
this.BindGrid();
}
#endregion
/// <summary>
/// 数据绑定
/// </summary>
private void BindGrid()
{
if (this.tvControlItem.SelectedNode != null && this.tvControlItem.SelectedNode.NodeID.Contains("|"))
{
var ids = this.tvControlItem.SelectedNode.NodeID.Split('|');
string strSql = @"select c.MainItemName, '' Id,*
,b.CheckResult"
+ @" from [dbo].[HSSE_ConstructionRisk] a left join [dbo].[HSSE_ConstructionRiskControl] b
on a.ConstructionRiskId =b.ConstructionRiskId left join ProjectData_MainItem c on a.WorkAreaId = c.MainItemId
where a.UnitId=@UnitId and a.DateWeek=@DateWeek order by a.[ConstructionContent],b.[ShowIndex]";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@UnitId", ids[0]));
listStr.Add(new SqlParameter("@DateWeek", ids[1]));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
foreach (DataRow row in tb.Rows)
{
row["Id"] = row["ConstructionRiskId"] + "|" + row["ControlId"];
}
Grid1.DataSource = tb;
Grid1.DataBind();
for (int i = 0; i < Grid1.Rows.Count; i++)
{
string rowID = Grid1.Rows[i].DataKeys[0].ToString().Split('|')[0];
var risk = BLL.ConstructionRiskListService.GetConstructionRisk(rowID);
if (risk != null)
{
if (risk.RiskLevel == "低风险")
{
Grid1.Rows[i].RowCssClass = "Blue";
}
else if (risk.RiskLevel == "一般风险")
{ //闭环
Grid1.Rows[i].RowCssClass = "Yellow";
}
else if (risk.RiskLevel == "较大风险")
{
Grid1.Rows[i].RowCssClass = "Orange";
}
else if (risk.RiskLevel == "重大风险")
{
Grid1.Rows[i].RowCssClass = " Red ";
}
}
}
}
else
{
Grid1.DataSource = null;
Grid1.DataBind();
}
}
#region
/// <summary>
/// 绑定树节点
/// </summary>
/// <param name="node"></param>
private void BindNodes(TreeNode node)
{
var DateWeek = (from x in Funs.DB.HSSE_ConstructionRisk
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.UnitId == node.NodeID
select new { x.DateWeek, x.DateA }).Distinct().ToList().OrderByDescending(x => x.DateA);
foreach (var d in DateWeek)
{
TreeNode newNode = new TreeNode();
newNode.Text = d.DateWeek; //string.Format("{0:yyyy-MM-dd}", d.AssessmentDate);
newNode.NodeID = node.NodeID + "|" + d.DateWeek;
newNode.EnableClickEvent = true;
newNode.ToolTip = "标签";
node.Nodes.Add(newNode);
}
}
#endregion
#region
private void GetButtonPower()
{
if (Request.Params["value"] == "0")
{
return;
}
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, BLL.Const.ConstructionRiskMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnImport.Hidden = false;
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDelete.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuModify.Hidden = false;
this.btnMenuCheck.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnAuditing))
{
this.btnMenuComplete.Hidden = false;
}
}
}
#endregion
#region
/// <summary>
/// 导入按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImport_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ConstructionRiskDataIn.aspx", "导入 - ")));
}
#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("ConstructionRiskEdit.aspx", "添加 - ")));
}
#endregion
protected void btnAudit_Click(object sender, EventArgs e)
{
//if (Grid1.SelectedRowIndexArray.Length == 0)
//{
// Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
// return;
//}
//foreach (int rowIndex in Grid1.SelectedRowIndexArray)
//{
// string rowID = Grid1.DataKeys[rowIndex][0].ToString();
// var ids = rowID.Split('|');
// if (ids.Length >= 1)
// {
// var r = Funs.DB.HSSE_ConstructionRisk.FirstOrDefault(x => x.ConstructionRiskId == ids[0]);
// if (r != null && r.States == "2")
// {
// r.States = "3";
// }
// }
//}
var r = Funs.DB.HSSE_ConstructionRisk.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == "2");
foreach (var item in r)
{
item.States = "3";
}
Funs.DB.SubmitChanges();
BindGrid();
}
#region TreeView
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand111(object sender, TreeCommandEventArgs e)
{
BindGrid();
}
#endregion
protected void btnMenuCheck_Click(object sender, EventArgs e)
{
var ids = Grid1.SelectedRowID.Split('|');
if (ids.Length > 1)
{
hdState.Text = "";
string id = ids[0];
var ins = BLL.ConstructionRiskListService.GetConstructionRisk(id);
if (ins != null)
{
if (ins.States == Const.ConstructionRisk_Complete)
{
Alert.ShowInTop("施工已完成,无需巡检!", MessageBoxIcon.Warning);
return;
}
else if (ins.States != BLL.Const.ConstructionRisk_Audit3)
{
Alert.ShowInTop("尚未实施,无法巡检!", MessageBoxIcon.Warning);
return;
}
else if (this.CurrUser.PersonId != ins.SubUnitDutyPerson && this.CurrUser.PersonId != ins.MainUnitDutyPerson && !ins.MainUnitCheckPerson.Contains(this.CurrUser.PersonId))
{
Alert.ShowInTop("只有分包责任人、总包责任人和总包核查人可以进行巡检!", MessageBoxIcon.Warning);
return;
}
}
PageContext.RegisterStartupScript(Window2.GetSaveStateReference(hdState.ClientID)
+ Window2.GetShowReference(String.Format("ConstructionRiskControlCheck.aspx?ConstructionRiskId={0}", id, "编辑 - ")));
}
}
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnMenuModify_Click(null, null);
}
#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;
}
var ids = Grid1.SelectedRowID.Split('|');
string id = ids[0];
var ins = BLL.ConstructionRiskListService.GetConstructionRisk(id);
if (ins != null)
{
if (ins.States.Equals(Const.ConstructionRisk_Audit3))
{
Alert.ShowInTop("实施中,无法编辑,请右键查看!", MessageBoxIcon.Warning);
return;
}
if (ins.States.Equals(Const.ConstructionRisk_Complete))
{
Alert.ShowInTop("施工已完成,无法编辑,请右键查看!", MessageBoxIcon.Warning);
return;
}
Model.HSSE_ConstructionRiskApprove approve = BLL.ConstructionRiskApproveService.GetConstructionRiskApproveByConstructionRiskId(id);
if (approve != null)
{
if (!string.IsNullOrEmpty(approve.ApproveMan))
{
if (this.CurrUser.PersonId == approve.ApproveMan || CurrUser.PersonId == Const.sysglyId)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ConstructionRiskEdit.aspx?ConstructionRiskId={0}", id, "编辑 - ")));
return;
}
else
{
Alert.ShowInTop("您不是当前办理人,无法编辑,请右键查看!", MessageBoxIcon.Warning);
return;
}
}
}
else
{
Alert.ShowInTop("您不是当前办理人,无法编辑,请右键查看!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 完成按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuComplete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
var ids = Grid1.SelectedRowID.Split('|');
string id = ids[0];
var ins = BLL.ConstructionRiskListService.GetConstructionRisk(id);
if (ins != null)
{
if (ins.States == Const.ConstructionRisk_Audit3)
{
if (this.CurrUser.PersonId == ins.MainUnitDutyPerson)
{
ins.States = Const.ConstructionRisk_Complete;
BLL.ConstructionRiskListService.UpdateConstructionRisk(ins);
BindGrid();
Alert.ShowInTop("操作成功!", MessageBoxIcon.Success);
return;
}
else
{
Alert.ShowInTop("只有总包责任人可以操作完成!", MessageBoxIcon.Warning);
return;
}
}
else if (ins.States == Const.ConstructionRisk_Complete)
{
Alert.ShowInTop("该记录已完成!", MessageBoxIcon.Warning);
return;
}
else
{
Alert.ShowInTop("该记录尚未实施,无法操作完成!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
}
#endregion
protected void btnMenuView_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
var ids = Grid1.SelectedRowID.Split('|');
string id = ids[0];
var ins = BLL.ConstructionRiskListService.GetConstructionRisk(id);
if (ins != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ConstructionRiskView.aspx?ConstructionRiskId={0}", id, "查看 - ")));
}
}
//<summary>
//获取办理人姓名
//</summary>
//<param name="state"></param>
//<returns></returns>
protected string ConvertMan(object Id)
{
if (Id != null)
{
var ids = Id.ToString().Split('|');
Model.HSSE_ConstructionRiskApprove a = BLL.ConstructionRiskApproveService.GetConstructionRiskApproveByConstructionRiskId(ids[0]);
if (a != null)
{
if (a.ApproveMan != null)
{
return BLL.Person_PersonsService.GetPersonsNameById(a.ApproveMan);
}
}
else
{
return "";
}
}
return "";
}
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
var ids = e.RowID.Split('|');
if (e.CommandName.Equals("CheckSee"))
{
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("ConstructionRiskCheckSee.aspx?ConstructionRiskId={0}", ids[0])));
}
}
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = string.Empty;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
string filePath = string.Empty;
initTemplatePath = Const.ConstructionRiskOutTemplateUrl;
uploadfilepath = rootPath + initTemplatePath;
Model.SGGLDB db = Funs.DB;
if (this.tvControlItem.SelectedNode != null && this.tvControlItem.SelectedNode.ToolTip == "标签")
{
string unitId = this.tvControlItem.SelectedNode.ParentNode.NodeID;
var risks = from x in db.HSSE_ConstructionRisk
join y in db.HSSE_ConstructionRiskControl on x.ConstructionRiskId equals y.ConstructionRiskId
where x.ProjectId == this.CurrUser.LoginProjectId && x.DateWeek == this.tvControlItem.SelectedNode.Text
orderby x.ConstructionContent, y.ShowIndex
select new
{
ControlId = y.ControlId,
ConstructionRiskId = x.ConstructionRiskId,
DateA = x.DateA,
DateZ = x.DateZ,
MainItemName = db.ProjectData_MainItem.First(a => a.MainItemId == x.WorkAreaId).MainItemName,
UnitName = db.Base_Unit.First(a => a.UnitId == x.UnitId).UnitName,
ConstructionContent = x.ConstructionContent,
RefLicense = x.RefLicense,
LicenseDes = x.LicenseDes,
RiskLevel = x.RiskLevel,
Measures = y.Measures,
SubUnitDutyPerson = db.Person_Persons.First(a => a.PersonId == x.SubUnitDutyPerson).PersonName,
MainUnitDutyPerson = db.Person_Persons.First(a => a.PersonId == x.MainUnitDutyPerson).PersonName,
MainUnitCheckPerson = Person_PersonsService.getPersonsNamesPersonIds(x.MainUnitCheckPerson),
};
var checkLists = from x in db.HSSE_ConstructionRiskCheck
join y in db.HSSE_ConstructionRisk on x.ConstructionRiskId equals y.ConstructionRiskId
where y.ProjectId == this.CurrUser.LoginProjectId
select x;
if (risks.Count() > 0)
{
string projectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId);
string date = string.Empty;
var r = risks.First();
if (r.DateA != null)
{
date = string.Format("{0:yyyy-MM-dd}", r.DateA);
}
newUrl = uploadfilepath.Replace(".xlsx", "(" + date + ")" + ".xlsx");
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);
}
// 创建单元格样式
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 = 14;
//font.FontHeightInPoints = (short)8.5;字号为小数时要转为short
cellStyle.SetFont(font);
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle2 = workbook.CreateCellStyle();
cellStyle2.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle2.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle2.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle2.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle2.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left;
cellStyle2.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
cellStyle2.WrapText = true;
cellStyle2.SetFont(font);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
int i = 0;
NPOI.SS.UserModel.IRow row;
NPOI.SS.UserModel.ICell cell;
row = sheet.GetRow(i);
cell = row.GetCell(0);
DateTime dateA = r.DateA.Value;
DateTime dateZ = r.DateZ.Value;
cell.SetCellValue(projectName + " 每周施工作业风险动态管控表(" + dateA.Month + "月" + dateA.Day + "日-" + dateZ.Month + "月" + dateZ.Day + "日" + "");
i = 3;
int a = 0;
int b = 0;
string oldId = string.Empty;
foreach (var item in risks)
{
i++;
b++;
if (oldId != item.ConstructionRiskId)
{
if (!string.IsNullOrEmpty(oldId)) //非第一行记录
{
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 0, 0));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 1, 1));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 2, 2));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 3, 3));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 4, 4));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 5, 5));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 6, 6));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 8, 8));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 9, 9));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 10, 10));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 11, 11));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i - 1, 12, 12));
}
oldId = item.ConstructionRiskId;
a++;
b = 1;
}
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(a.ToString());
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.MainItemName);
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.UnitName);
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ConstructionContent);
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.RefLicense);
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.LicenseDes);
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.RiskLevel);
cell = row.CreateCell(7);
cell.CellStyle = cellStyle2;
cell.SetCellValue(b.ToString() + "、" + item.Measures);
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.SubUnitDutyPerson);
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.MainUnitDutyPerson);
cell = row.CreateCell(10);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.MainUnitCheckPerson);
cell = row.CreateCell(11);
cell.CellStyle = cellStyle2;
var checks = checkLists.Where(x => x.ConstructionRiskId == item.ConstructionRiskId).OrderByDescending(x => x.CheckDate);
string checkResults = string.Empty;
string rectification = string.Empty;
foreach (var check in checks)
{
checkResults += string.Format("{0:yyyy-MM-dd}", check.CheckDate) + "" + check.CheckResult;
if (check.CheckResult == "不符合")
{
rectification += string.Format("{0:yyyy-MM-dd}", check.CheckDate) + "" + check.Rectification;
}
}
//row.Height = (short)(140 * checks.Count());
cell.SetCellValue(checkResults);
cell = row.CreateCell(12);
cell.CellStyle = cellStyle2;
cell.SetCellValue(rectification);
}
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 0, 0));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 1, 1));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 2, 2));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 3, 3));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 4, 4));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 5, 5));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 6, 6));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 8, 8));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 9, 9));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 10, 10));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 11, 11));
sheet.AddMergedRegion(new CellRangeAddress(i - b + 1, i, 12, 12));
// 第三步:写入文件流
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);
}
}
else
{
Alert.ShowInTop("请选择一周的记录,再点击导出!", MessageBoxIcon.Warning);
}
}
#endregion
}
}