using BLL; using Newtonsoft.Json.Linq; using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; 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 { /// /// 项目id /// 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(); } } /// /// 加载Grid /// private void BindGrid() { DateTime months = Convert.ToDateTime(this.txtMonth.Text + "-01"); Model.SGGLDB db = Funs.DB; 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 listStr = new List(); 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; Grid1.DataBind(); //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(); } #region 月份选择事件 /// /// 月份选择事件 /// /// /// 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); return; } 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; var dutyPersons = item.DutyPerson.Split(','); string dutyPersonIds = string.Empty; foreach (var dutyPerson in dutyPersons) { var user = users.FirstOrDefault(x => x.UserName == dutyPerson); if (user != null) { dutyPersonIds = !string.IsNullOrWhiteSpace(dutyPersonIds) ? $"{dutyPersonIds},{user.UserId}" : user.UserId; } } MonthPlan.DutyPerson = dutyPersonIds; //var user = users.FirstOrDefault(x => x.UserName == item.DutyPerson); //if (user != null) //{ // MonthPlan.DutyPerson = user.UserId; //} 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 增加按钮事件 /// /// 增加按钮事件 /// /// /// 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 GetDetails() { List list = new List(); foreach (JObject mergedRow in Grid1.GetMergedData()) { JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); Model.JDGL_MonthPlan ql = new Model.JDGL_MonthPlan(); ql.MonthPlanId = Grid1.Rows[i].RowID; ql.UnitId = values.Value("UnitId"); ql.NodeContent = values.Value("NodeContent"); ql.PlanDate = Funs.GetNewDateTime(values.Value("PlanDate")); ql.DutyPerson = values.Value("DutyPerson"); ql.RealDate = Funs.GetNewDateTime(values.Value("RealDate")); ql.Remark = values.Value("Remark"); list.Add(ql); } return list; } #endregion #region 行点击事件 /// /// Grid行点击事件 /// /// /// 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 } }