CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs

191 lines
8.2 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 System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using BLL;
namespace FineUIPro.Web.CQMS.ProcessControl
{
public partial class CheckManStatistics : PageBase
{
public DateTime StartDate;
public DateTime EndDate;
public int SunNumber;
private static List<Model.NCRStatisc> StatisticsList = new List<Model.NCRStatisc>();
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGvInspectionManagement();
}
}
/// <summary>
/// 查询按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGvInspectionManagement();
}
#region GridView
/// <summary>
/// 绑定
/// </summary>
/// <param name="cNProfessionalId"></param>
public void BindGvInspectionManagement()
{
StatisticsList = new List<Model.NCRStatisc>();
Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
StartDate = Convert.ToDateTime(project.StartDate);
EndDate = DateTime.Now;
if (!string.IsNullOrEmpty(this.txtStartTime.Text))
{
StartDate = Convert.ToDateTime(this.txtStartTime.Text);
}
if (!string.IsNullOrEmpty(this.txtEndTime.Text))
{
EndDate = Convert.ToDateTime(this.txtEndTime.Text);
}
//统计所给时间段的全部数量
List<Model.ProcessControl_InspectionManagement> managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, string.Empty, StartDate, DateTime.Now, false);
var checkMans = managementListSunNumber.Select(x => x.AcceptanceCheckMan.Split(',').ToList());
List<string> compileMans = new List<string>();
foreach (var item in checkMans)
{
string id = item.FirstOrDefault().Trim();
compileMans.Add(id);
}
checkMans= managementListSunNumber.Select(x => x.AcceptanceCheckMan.Split('、').ToList());
foreach (var item in checkMans)
{
string name = item.FirstOrDefault().Trim();
compileMans.Add(name);
}
//List<string> compileMans = managementListSunNumber.Select(x => x.CompileMan).Distinct().ToList();
foreach (var item in compileMans.Distinct())
{
Model.NCRStatisc Statistics = new Model.NCRStatisc();
Model.Sys_User user = BLL.UserService.GetUserByUserId(item);//新数据保存的用户Id
if (user != null)
{
Statistics.WorkName = user.UserName;
Statistics.CheckNum = managementListSunNumber.Where(x => x.AcceptanceCheckMan == item).Count();
StatisticsList.Add(Statistics);
}
else
{
Model.Sys_User u = BLL.UserService.GetUserByUserName(item);//老数据保存的姓名
if (u!=null)
{
Statistics.WorkName = u.UserName;
Statistics.CheckNum = managementListSunNumber.Where(x => x.AcceptanceCheckMan == item).Count();
StatisticsList.Add(Statistics);
}
}
}
Model.NCRStatisc StatisticsLast = new Model.NCRStatisc();
StatisticsLast.WorkName = "合计";
StatisticsLast.CheckNum = managementListSunNumber.Count();
StatisticsList.Add(StatisticsLast);
this.gvCheckManStatistics.DataSource = StatisticsList;
this.gvCheckManStatistics.DataBind();
}
#endregion
/// <summary>
/// 导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.CheckManStatisticsTemlUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
if (StatisticsList != null)
{
string projectName = BLL.ProjectService.GetShortNameByProjectId(this.CurrUser.LoginProjectId);
newUrl = uploadfilepath.Replace("检查人检查次数统计模板", "检查人检查次数统计(" + projectName + DateTime.Now.ToString("yyyyMMdd") + "");
if (File.Exists(newUrl))
{
File.Delete(newUrl);
}
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 StatisticsList)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.WorkName);//姓名
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.CheckNum);//检查次数
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);
}
}
}
}