| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  | using BLL; | 
					
						
							|  |  |  |  | using Newtonsoft.Json.Linq; | 
					
						
							| 
									
										
										
										
											2025-03-24 14:21:16 +08:00
										 |  |  |  | using NPOI.SS.Formula.Functions; | 
					
						
							| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							| 
									
										
										
										
											2025-03-24 14:21:16 +08:00
										 |  |  |  | using System.Data; | 
					
						
							|  |  |  |  | using System.Data.SqlClient; | 
					
						
							| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | using System.Web; | 
					
						
							|  |  |  |  | using System.Web.UI; | 
					
						
							|  |  |  |  | using System.Web.UI.WebControls; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace FineUIPro.Web.JDGL.Check | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public partial class MonthPlanEdit : PageBase | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 项目id | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public string ProjectId | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return (string)ViewState["ProjectId"]; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             set | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ViewState["ProjectId"] = value; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         protected void Page_Load(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (!IsPostBack) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 DateTime months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-01"); | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(Request.Params["Months"])) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     months = Convert.ToDateTime(Request.Params["Months"] + "-01"); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 BLL.ProjectUnitService.InitUnitDropDownList2(drpUnitId, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false); | 
					
						
							|  |  |  |  |                 UserService.Init(drpDutyPerson, CurrUser.LoginProjectId, false); | 
					
						
							|  |  |  |  |                 this.txtMonth.Text = string.Format("{0:yyyy-MM}", months); | 
					
						
							|  |  |  |  |                 BindGrid(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 加载Grid | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         private void BindGrid() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             DateTime months = Convert.ToDateTime(this.txtMonth.Text + "-01"); | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							| 
									
										
										
										
											2025-03-24 14:21:16 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             string strSql = @"select 
 | 
					
						
							|  |  |  |  |                                 mplan.MonthPlanId,mplan.ProjectId,mplan.Months,mplan.NodeContent,mplan.PlanDate,mplan.RealDate,mplan.Remark,unit.UnitName as UnitId | 
					
						
							|  |  |  |  |                                 ,DutyPerson = STUFF((SELECT ',' + p.UserName FROM dbo.Sys_User as p where PATINDEX('%,' + RTRIM(p.UserId) + ',%', ',' + mplan.DutyPerson + ',') > 0 FOR XML PATH('')), 1, 1,'')  | 
					
						
							|  |  |  |  |                                 from JDGL_MonthPlan as mplan  | 
					
						
							|  |  |  |  |                                 left join Base_Unit as unit on unit.UnitId = mplan.UnitId | 
					
						
							|  |  |  |  |                             where mplan.ProjectId = @ProjectId ";
 | 
					
						
							|  |  |  |  |             List<SqlParameter> listStr = new List<SqlParameter>(); | 
					
						
							|  |  |  |  |             listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             strSql += " and mplan.Months = @months"; | 
					
						
							|  |  |  |  |             listStr.Add(new SqlParameter("@months", months)); | 
					
						
							|  |  |  |  |             strSql += " order by mplan.SortIndex "; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             SqlParameter[] parameter = listStr.ToArray(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); | 
					
						
							|  |  |  |  |             Grid1.RecordCount = tb.Rows.Count; | 
					
						
							|  |  |  |  |             Grid1.DataSource = tb; | 
					
						
							| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  |             Grid1.DataBind(); | 
					
						
							| 
									
										
										
										
											2025-03-24 14:21:16 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             //Grid1.DataSource = from x in db.JDGL_MonthPlan | 
					
						
							|  |  |  |  |             //                   where x.ProjectId == this.CurrUser.LoginProjectId && x.Months == months | 
					
						
							|  |  |  |  |             //                   orderby x.SortIndex | 
					
						
							|  |  |  |  |             //                   select new | 
					
						
							|  |  |  |  |             //                   { | 
					
						
							|  |  |  |  |             //                       x.MonthPlanId, | 
					
						
							|  |  |  |  |             //                       x.ProjectId, | 
					
						
							|  |  |  |  |             //                       x.Months, | 
					
						
							|  |  |  |  |             //                       UnitId = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName, | 
					
						
							|  |  |  |  |             //                       x.NodeContent, | 
					
						
							|  |  |  |  |             //                       x.PlanDate, | 
					
						
							|  |  |  |  |             //                       DutyPerson = db.Sys_User.First(y => y.UserId == x.DutyPerson).UserName, | 
					
						
							|  |  |  |  |             //                       x.RealDate, | 
					
						
							|  |  |  |  |             //                       x.Remark, | 
					
						
							|  |  |  |  |             //                   }; | 
					
						
							|  |  |  |  |             //Grid1.DataBind(); | 
					
						
							| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region  月份选择事件 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 月份选择事件 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void txtMonths_TextChanged(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             BindGrid(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         protected void btnSave_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (string.IsNullOrEmpty(this.txtMonth.Text)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ShowNotify("请选择月份!", MessageBoxIcon.Warning); | 
					
						
							| 
									
										
										
										
											2024-05-15 09:03:19 +08:00
										 |  |  |  |                 return; | 
					
						
							| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             SaveData(true); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         private void SaveData(bool bl) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             DateTime months = Convert.ToDateTime(this.txtMonth.Text + "-01"); | 
					
						
							|  |  |  |  |             var list = GetDetails(); | 
					
						
							|  |  |  |  |             var units = from x in Funs.DB.Base_Unit select x; | 
					
						
							|  |  |  |  |             var users = from x in Funs.DB.Sys_User select x; | 
					
						
							|  |  |  |  |             BLL.MonthPlanService.DeleteAllMonthPlan(this.CurrUser.LoginProjectId, months); | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             int i = 1; | 
					
						
							|  |  |  |  |             foreach (var item in list) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Model.JDGL_MonthPlan MonthPlan = new Model.JDGL_MonthPlan(); | 
					
						
							|  |  |  |  |                 MonthPlan.MonthPlanId = SQLHelper.GetNewID(typeof(Model.JDGL_MonthPlan)); | 
					
						
							|  |  |  |  |                 MonthPlan.ProjectId = this.CurrUser.LoginProjectId; | 
					
						
							|  |  |  |  |                 MonthPlan.Months = months; | 
					
						
							|  |  |  |  |                 var unit = units.FirstOrDefault(x => x.UnitName == item.UnitId); | 
					
						
							|  |  |  |  |                 if (unit != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     MonthPlan.UnitId = unit.UnitId; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 MonthPlan.NodeContent = item.NodeContent; | 
					
						
							|  |  |  |  |                 MonthPlan.PlanDate = item.PlanDate; | 
					
						
							| 
									
										
										
										
											2025-03-24 14:21:16 +08:00
										 |  |  |  |                 var dutyPersons = item.DutyPerson.Split(','); | 
					
						
							|  |  |  |  |                 string dutyPersonIds = string.Empty; | 
					
						
							|  |  |  |  |                 foreach (var dutyPerson in dutyPersons) | 
					
						
							| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2025-03-24 14:21:16 +08:00
										 |  |  |  |                     var user = users.FirstOrDefault(x => x.UserName == dutyPerson); | 
					
						
							|  |  |  |  |                     if (user != null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         dutyPersonIds = !string.IsNullOrWhiteSpace(dutyPersonIds) ? $"{dutyPersonIds},{user.UserId}" : user.UserId; | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2025-03-24 14:21:16 +08:00
										 |  |  |  |                 MonthPlan.DutyPerson = dutyPersonIds; | 
					
						
							|  |  |  |  |                 //var user = users.FirstOrDefault(x => x.UserName == item.DutyPerson); | 
					
						
							|  |  |  |  |                 //if (user != null) | 
					
						
							|  |  |  |  |                 //{ | 
					
						
							|  |  |  |  |                 //    MonthPlan.DutyPerson = user.UserId; | 
					
						
							|  |  |  |  |                 //} | 
					
						
							| 
									
										
										
										
											2024-05-10 15:46:52 +08:00
										 |  |  |  |                 MonthPlan.RealDate = item.RealDate; | 
					
						
							|  |  |  |  |                 MonthPlan.Remark = item.Remark; | 
					
						
							|  |  |  |  |                 MonthPlan.CompileMan = this.CurrUser.UserId; | 
					
						
							|  |  |  |  |                 MonthPlan.CompileDate = DateTime.Now; | 
					
						
							|  |  |  |  |                 MonthPlan.SortIndex = i; | 
					
						
							|  |  |  |  |                 BLL.MonthPlanService.AddMonthPlan(MonthPlan); | 
					
						
							|  |  |  |  |                 i++; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             ShowNotify("保存成功!", MessageBoxIcon.Success); | 
					
						
							|  |  |  |  |             PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 增加按钮事件 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 增加按钮事件 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void btnNew_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var list = GetDetails(); | 
					
						
							|  |  |  |  |             Model.JDGL_MonthPlan ql = new Model.JDGL_MonthPlan(); | 
					
						
							|  |  |  |  |             ql.MonthPlanId = SQLHelper.GetNewID(); | 
					
						
							|  |  |  |  |             list.Add(ql); | 
					
						
							|  |  |  |  |             Grid1.DataSource = list; | 
					
						
							|  |  |  |  |             Grid1.DataBind(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         private List<Model.JDGL_MonthPlan> GetDetails() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<Model.JDGL_MonthPlan> list = new List<Model.JDGL_MonthPlan>(); | 
					
						
							|  |  |  |  |             foreach (JObject mergedRow in Grid1.GetMergedData()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 JObject values = mergedRow.Value<JObject>("values"); | 
					
						
							|  |  |  |  |                 int i = mergedRow.Value<int>("index"); | 
					
						
							|  |  |  |  |                 Model.JDGL_MonthPlan ql = new Model.JDGL_MonthPlan(); | 
					
						
							|  |  |  |  |                 ql.MonthPlanId = Grid1.Rows[i].RowID; | 
					
						
							|  |  |  |  |                 ql.UnitId = values.Value<string>("UnitId"); | 
					
						
							|  |  |  |  |                 ql.NodeContent = values.Value<string>("NodeContent"); | 
					
						
							|  |  |  |  |                 ql.PlanDate = Funs.GetNewDateTime(values.Value<string>("PlanDate")); | 
					
						
							|  |  |  |  |                 ql.DutyPerson = values.Value<string>("DutyPerson"); | 
					
						
							|  |  |  |  |                 ql.RealDate = Funs.GetNewDateTime(values.Value<string>("RealDate")); | 
					
						
							|  |  |  |  |                 ql.Remark = values.Value<string>("Remark"); | 
					
						
							|  |  |  |  |                 list.Add(ql); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return list; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 行点击事件 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// Grid行点击事件 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string monthPlanId = Grid1.DataKeys[e.RowIndex][0].ToString(); | 
					
						
							|  |  |  |  |             var list = GetDetails(); | 
					
						
							|  |  |  |  |             if (e.CommandName == "del")//删除 | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var Report = list.FirstOrDefault(x => x.MonthPlanId == monthPlanId); | 
					
						
							|  |  |  |  |                 if (Report != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     list.Remove(Report); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 this.Grid1.DataSource = list; | 
					
						
							|  |  |  |  |                 this.Grid1.DataBind(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |