| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							| 
									
										
										
										
											2024-05-05 17:08:38 +08:00
										 |  |  |  | using System.IO; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | using System.Linq; | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  | using System.Text; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | using System.Web.UI.WebControls; | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  | using BLL; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | namespace FineUIPro.Web.CQMS.ProcessControl | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public partial class CheckManStatistics : PageBase | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         public DateTime StartDate; | 
					
						
							|  |  |  |  |         public DateTime EndDate; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public int SunNumber; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-05 17:08:38 +08:00
										 |  |  |  |         private static List<Model.NCRStatisc> StatisticsList = new List<Model.NCRStatisc>(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// <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() | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2024-05-05 17:08:38 +08:00
										 |  |  |  |             //List<Model.NCRStatisc> StatisticsList = new List<Model.NCRStatisc>(); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             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); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             //统计所给时间段的全部数量 | 
					
						
							| 
									
										
										
										
											2021-06-21 14:10:40 +08:00
										 |  |  |  |             List<Model.ProcessControl_InspectionManagement> managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, string.Empty, StartDate, DateTime.Now, false); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             List<string> compileMans = managementListSunNumber.Select(x => x.CompileMan).Distinct().ToList(); | 
					
						
							|  |  |  |  |             foreach (var item in compileMans) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Model.Sys_User user = BLL.UserService.GetUserByUserId(item); | 
					
						
							|  |  |  |  |                 if (user != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     Model.NCRStatisc Statistics = new Model.NCRStatisc(); | 
					
						
							|  |  |  |  |                     Statistics.WorkName = user.UserName; | 
					
						
							|  |  |  |  |                     Statistics.CheckNum = managementListSunNumber.Where(x => x.CompileMan == 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) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2024-05-05 17:08:38 +08:00
										 |  |  |  |             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") + ")"); | 
					
						
							|  |  |  |  |                 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 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); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |