225 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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
 | |
|     {
 | |
|         /// <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;
 | |
| 
 | |
|             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;
 | |
|             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  月份选择事件
 | |
|         /// <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);
 | |
|                 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 增加按钮事件
 | |
|         /// <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
 | |
|     }
 | |
| } |