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 StatisticsList = new List(); /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindGvInspectionManagement(); } } /// /// 查询按钮 /// /// /// protected void btnSearch_Click(object sender, EventArgs e) { BindGvInspectionManagement(); } #region 绑定GridView /// /// 绑定 /// /// public void BindGvInspectionManagement() { StatisticsList = new List(); 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 managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, string.Empty, StartDate, DateTime.Now, false); var checkMans = managementListSunNumber.Select(x => x.AcceptanceCheckMan.Split(',').ToList()); List compileMans = new List(); 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 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 /// /// 导出 /// /// /// 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); } } } }