| 
									
										
										
										
											2025-04-10 19:04:56 +08:00
										 |  |  |  | using BLL; | 
					
						
							|  |  |  |  | using NPOI.SS.Formula.Functions; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Data; | 
					
						
							|  |  |  |  | using System.Data.SqlClient; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace FineUIPro.Web.DataShow | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public partial class JDWeekDetail : PageBase | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         #region 项目主键 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 项目主键 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public string ProjectId | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return (string)ViewState["ProjectId"]; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             set | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ViewState["ProjectId"] = value; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public string WeekNo | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return (string)ViewState["WeekNo"]; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             set | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ViewState["WeekNo"] = value; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |         protected void Page_Load(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (!IsPostBack) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 this.ProjectId = this.CurrUser.LoginProjectId; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(Request.Params["projectId"]) && Request.Params["projectId"] != this.CurrUser.LoginProjectId) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     this.ProjectId = Request.Params["projectId"]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 Model.SGGLDB db = Funs.DB; | 
					
						
							| 
									
										
										
										
											2025-04-18 16:59:01 +08:00
										 |  |  |  |                 var lastWeek = (from x in db.JDGL_WeekPlan where x.ProjectId == this.ProjectId && DateTime.Now > ((DateTime)x.EndDate).AddDays(1) orderby x.EndDate descending select x).FirstOrDefault(); | 
					
						
							| 
									
										
										
										
											2025-04-10 19:04:56 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-18 16:59:01 +08:00
										 |  |  |  |                 this.WeekNo = lastWeek != null ? lastWeek.WeekNo : string.Empty; | 
					
						
							|  |  |  |  |                 this.InitDropDownList(); | 
					
						
							| 
									
										
										
										
											2025-04-10 19:04:56 +08:00
										 |  |  |  |                 BindGrid(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-18 16:59:01 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  初始化下拉框 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         private void InitDropDownList() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             WeekItemService.InitWeekItemDropDownList(this.drpWeekNo, this.ProjectId, false); | 
					
						
							|  |  |  |  |             if (!string.IsNullOrWhiteSpace(this.WeekNo)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var item = WeekItemService.GetWeekItemByProjectIdAndWeekNo(this.ProjectId, int.Parse(this.WeekNo)); | 
					
						
							|  |  |  |  |                 if (item != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     this.drpWeekNo.SelectedValue = item.WeekNo.ToString(); | 
					
						
							|  |  |  |  |                     this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", item.StartDate); | 
					
						
							|  |  |  |  |                     this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", item.EndDate); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 //获取当前时间所在周号,存在默认选中当前时间点所在周,否则选择最后一个周 | 
					
						
							|  |  |  |  |                 var item = WeekItemService.GetWeekItemByDateNow(this.ProjectId); | 
					
						
							|  |  |  |  |                 if (item != null) | 
					
						
							|  |  |  |  |                 {//存在默认选中当前时间点所在周 | 
					
						
							|  |  |  |  |                     this.drpWeekNo.SelectedValue = item.WeekNo.ToString(); | 
					
						
							|  |  |  |  |                     this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", item.StartDate); | 
					
						
							|  |  |  |  |                     this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", item.EndDate); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     var items = WeekItemService.GetWeekItemList(this.ProjectId); | 
					
						
							|  |  |  |  |                     if (items.Any()) | 
					
						
							|  |  |  |  |                     {//否则选择最后一个周 | 
					
						
							|  |  |  |  |                         item = items.First(); | 
					
						
							|  |  |  |  |                         this.drpWeekNo.SelectedValue = item.WeekNo.ToString(); | 
					
						
							|  |  |  |  |                         this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", item.StartDate); | 
					
						
							|  |  |  |  |                         this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", item.EndDate); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 周号选择触发事件 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void drpWeekNo_SelectedIndexChanged(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string weekNo = this.drpWeekNo.SelectedValue; | 
					
						
							|  |  |  |  |             this.WeekNo = weekNo; | 
					
						
							|  |  |  |  |             var item = BLL.WeekItemService.GetWeekItemByProjectIdAndWeekNo(this.ProjectId, int.Parse(weekNo)); | 
					
						
							|  |  |  |  |             if (item != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 this.drpWeekNo.SelectedValue = item.WeekNo.ToString(); | 
					
						
							|  |  |  |  |                 this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", item.StartDate); | 
					
						
							|  |  |  |  |                 this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", item.EndDate); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             BindGrid(); | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-04-10 19:04:56 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 加载Grid | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         private void BindGrid() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             DataTable tb = BindData(); | 
					
						
							|  |  |  |  |             Grid1.RecordCount = tb.Rows.Count; | 
					
						
							|  |  |  |  |             //tb = GetFilteredTable(Grid1.FilteredData, tb); | 
					
						
							|  |  |  |  |             var table = this.GetPagedDataTable(Grid1, tb); | 
					
						
							|  |  |  |  |             Grid1.DataSource = table; | 
					
						
							|  |  |  |  |             Grid1.DataBind(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 加载数据 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         private DataTable BindData() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string strSql = @"select mp.*,u.UnitName,uw.UnitWorkName,cn.ProfessionalName,case mp.IsOK when 1 then '已完成' when 0 then '未完成' else '' end as IsOKStr 
 | 
					
						
							|  |  |  |  | ,DutyPersonName = STUFF((SELECT ',' + p.UserName FROM dbo.Sys_User as p where PATINDEX('%,' + RTRIM(p.UserId) + ',%', ',' + mp.DutyPerson + ',') > 0 FOR XML PATH('')), 1, 1,'')  | 
					
						
							|  |  |  |  | from [dbo].[JDGL_WeekPlan] mp | 
					
						
							|  |  |  |  | left join Base_Unit u on u.UnitId=mp.UnitId | 
					
						
							|  |  |  |  | left join WBS_UnitWork uw on uw.UnitWorkId=mp.UnitWork | 
					
						
							|  |  |  |  | left join Base_CNProfessional cn on cn.CNProfessionalId=mp.Major | 
					
						
							|  |  |  |  | where mp.ProjectId=@ProjectId and mp.WeekNo=@WeekNo order by mp.SortIndex";
 | 
					
						
							|  |  |  |  |             List<SqlParameter> listStr = new List<SqlParameter>(); | 
					
						
							|  |  |  |  |             listStr.Add(new SqlParameter("@ProjectId", this.ProjectId)); | 
					
						
							|  |  |  |  |             listStr.Add(new SqlParameter("@WeekNo", this.WeekNo)); | 
					
						
							|  |  |  |  |             SqlParameter[] parameter = listStr.ToArray(); | 
					
						
							|  |  |  |  |             DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); | 
					
						
							|  |  |  |  |             return tb; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 查询 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void TextBox2_TextChanged(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             this.BindGrid(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 表排序、分页、关闭窗口 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 分页 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             BindGrid(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 排序 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void Grid1_Sort(object sender, GridSortEventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             BindGrid(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |