CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanEdit.aspx.cs

500 lines
22 KiB
C#

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.JDGL.Check
{
public partial class WeekPlanEdit : 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)
{
string weekNo = string.Empty;
if (!string.IsNullOrEmpty(Request.Params["WeekNo"]))
{
weekNo = Request.Params["WeekNo"];
}
UnitWorkService.InitUnitWorkList2(drpUnitWork, this.CurrUser.LoginProjectId, false);
CNProfessionalService.InitCNProfessional(drpMajor, false);
BLL.ProjectUnitService.InitUnitDropDownList2(drpUnitId, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
UserService.Init(drpDutyPerson, CurrUser.LoginProjectId, false);
UnitWorkService.InitUnitWorkList2(drpUnitWork2, this.CurrUser.LoginProjectId, false);
CNProfessionalService.InitCNProfessional(drpMajor2, false);
BLL.ProjectUnitService.InitUnitDropDownList2(drpUnitId2, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
UserService.Init(drpDutyPerson2, CurrUser.LoginProjectId, false);
this.txtWeekNo.Text = weekNo;
var weekPlan = Funs.DB.JDGL_WeekPlan.FirstOrDefault(x => x.WeekNo == this.txtWeekNo.Text);
if (weekPlan != null)
{
if (weekPlan.StartDate != null)
{
this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", weekPlan.StartDate);
}
if (weekPlan.EndDate != null)
{
this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", weekPlan.EndDate);
}
var lastWeekPlan = (from x in Funs.DB.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.StartDate < weekPlan.StartDate orderby x.StartDate descending select x).FirstOrDefault();
if (lastWeekPlan != null)
{
BindGrid2(lastWeekPlan.WeekNo);
if (lastWeekPlan.WeekNo != "0")
{
this.Toolbar1.Hidden = true;
this.Grid2.Columns[9].Hidden = true;
}
}
else
{
this.Toolbar1.Hidden = false;
this.Grid2.Columns[9].Hidden = false;
}
}
else
{
this.txtStartDate.Text = string.Empty;
this.txtEndDate.Text = string.Empty;
var lastWeekPlan = (from x in Funs.DB.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId orderby x.StartDate descending select x).FirstOrDefault();
if (lastWeekPlan != null)
{
BindGrid2(lastWeekPlan.WeekNo);
this.Toolbar1.Hidden = true;
this.Grid2.Columns[9].Hidden = true;
}
else
{
this.Toolbar1.Hidden = false;
this.Grid2.Columns[9].Hidden = false;
}
}
BindGrid();
}
}
/// <summary>
/// 加载Grid
/// </summary>
private void BindGrid()
{
string weekNo = this.txtWeekNo.Text.Trim();
Model.SGGLDB db = Funs.DB;
Grid1.DataSource = from x in db.JDGL_WeekPlan
where x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == weekNo
orderby x.SortIndex
select new
{
x.WeekPlanId,
x.ProjectId,
x.WeekNo,
x.StartDate,
x.EndDate,
UnitWork = (from y in db.WBS_UnitWork where y.UnitWorkId == x.UnitWork select y.UnitWorkName).First(),
Major = (from y in db.Base_CNProfessional where y.CNProfessionalId == x.Major select y.ProfessionalName).First(),
UnitId = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).First(),
x.WorkContent,
x.PlanDate,
DutyPerson = (from y in db.Sys_User where y.UserId == x.DutyPerson select y.UserName).First(),
IsOK = ConvertIsOK(x.IsOK),
x.Remark,
};
Grid1.DataBind();
}
private void BindGrid2(string weekNo)
{
Model.SGGLDB db = Funs.DB;
Grid2.DataSource = from x in db.JDGL_WeekPlan
where x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == weekNo
orderby x.SortIndex
select new
{
x.WeekPlanId,
x.ProjectId,
x.WeekNo,
x.StartDate,
x.EndDate,
UnitWork = (from y in db.WBS_UnitWork where y.UnitWorkId == x.UnitWork select y.UnitWorkName).First(),
Major = (from y in db.Base_CNProfessional where y.CNProfessionalId == x.Major select y.ProfessionalName).First(),
UnitId = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).First(),
x.WorkContent,
x.PlanDate,
DutyPerson = (from y in db.Sys_User where y.UserId == x.DutyPerson select y.UserName).First(),
IsOK = ConvertIsOK(x.IsOK),
x.Remark,
};
Grid2.DataBind();
}
private string ConvertIsOK(bool? isOK)
{
string str = string.Empty;
if (isOK != null)
{
if (isOK == true)
{
str = "已完成";
}
else
{
str = "未完成";
}
}
return str;
}
#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.txtWeekNo.Text))
{
ShowNotify("请输入周号!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrEmpty(this.txtStartDate.Text))
{
ShowNotify("请选择开始日期!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrEmpty(this.txtEndDate.Text))
{
ShowNotify("请选择结束日期!", MessageBoxIcon.Warning);
return;
}
SaveData(true);
}
private void SaveData(bool bl)
{
string weekNo = this.txtWeekNo.Text.Trim();
DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
var list = GetDetails();
Model.SGGLDB db = Funs.DB;
var unitWorks = from x in db.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId select x;
var cns = from x in db.Base_CNProfessional select x;
var units = from x in db.Base_Unit select x;
var users = from x in db.Sys_User select x;
BLL.WeekPlanService.DeleteAllWeekPlan(this.CurrUser.LoginProjectId, weekNo);
int i = 1;
foreach (var item in list)
{
Model.JDGL_WeekPlan WeekPlan = new Model.JDGL_WeekPlan();
WeekPlan.WeekPlanId = SQLHelper.GetNewID(typeof(Model.JDGL_WeekPlan));
WeekPlan.ProjectId = this.CurrUser.LoginProjectId;
WeekPlan.WeekNo = weekNo;
WeekPlan.StartDate = startDate;
WeekPlan.EndDate = endDate;
if (unitWorks.FirstOrDefault(x => x.UnitWorkName == item.UnitWork) != null)
{
WeekPlan.UnitWork = unitWorks.FirstOrDefault(x => x.UnitWorkName == item.UnitWork).UnitWorkId;
}
if (cns.FirstOrDefault(x => x.ProfessionalName == item.Major) != null)
{
WeekPlan.Major = cns.FirstOrDefault(x => x.ProfessionalName == item.Major).CNProfessionalId;
}
var unit = units.FirstOrDefault(x => x.UnitName == item.UnitId);
if (unit != null)
{
WeekPlan.UnitId = unit.UnitId;
}
WeekPlan.WorkContent = item.WorkContent;
WeekPlan.PlanDate = item.PlanDate;
var user = users.FirstOrDefault(x => x.UserName == item.DutyPerson);
if (user != null)
{
WeekPlan.DutyPerson = user.UserId;
}
WeekPlan.IsOK = item.IsOK;
WeekPlan.Remark = item.Remark;
WeekPlan.CompileMan = this.CurrUser.UserId;
WeekPlan.CompileDate = DateTime.Now;
WeekPlan.SortIndex = i;
BLL.WeekPlanService.AddWeekPlan(WeekPlan);
i++;
}
var list2 = GetDetails2();
int j = 1;
string lastWeekNo = "0";
foreach (var item in list2)
{
Model.JDGL_WeekPlan WeekPlan = new Model.JDGL_WeekPlan();
WeekPlan.WeekPlanId = item.WeekPlanId;
WeekPlan.ProjectId = this.CurrUser.LoginProjectId;
WeekPlan.WeekNo = lastWeekNo;
WeekPlan.StartDate = startDate.AddDays(-7);
WeekPlan.EndDate = endDate.AddDays(-7);
if (unitWorks.FirstOrDefault(x => x.UnitWorkName == item.UnitWork) != null)
{
WeekPlan.UnitWork = unitWorks.FirstOrDefault(x => x.UnitWorkName == item.UnitWork).UnitWorkId;
}
if (cns.FirstOrDefault(x => x.ProfessionalName == item.Major) != null)
{
WeekPlan.Major = cns.FirstOrDefault(x => x.ProfessionalName == item.Major).CNProfessionalId;
}
var unit = units.FirstOrDefault(x => x.UnitName == item.UnitId);
if (unit != null)
{
WeekPlan.UnitId = unit.UnitId;
}
WeekPlan.WorkContent = item.WorkContent;
WeekPlan.PlanDate = item.PlanDate;
var user = users.FirstOrDefault(x => x.UserName == item.DutyPerson);
if (user != null)
{
WeekPlan.DutyPerson = user.UserId;
}
WeekPlan.IsOK = item.IsOK;
WeekPlan.Remark = item.Remark;
WeekPlan.CompileMan = this.CurrUser.UserId;
WeekPlan.CompileDate = DateTime.Now;
WeekPlan.SortIndex = j;
var oldWeekPlan = BLL.WeekPlanService.GetWeekPlanById(WeekPlan.WeekPlanId);
if (oldWeekPlan == null)
{
BLL.WeekPlanService.AddWeekPlan(WeekPlan);
}
else
{
BLL.WeekPlanService.UpdateWeekPlan(WeekPlan);
}
j++;
}
//foreach (JObject mergedRow in Grid2.GetMergedData())
//{
// JObject values = mergedRow.Value<JObject>("values");
// int a = mergedRow.Value<int>("index");
// Model.JDGL_WeekPlan ql = BLL.WeekPlanService.GetWeekPlanById(Grid2.Rows[a].RowID);
// if (!string.IsNullOrEmpty(values.Value<string>("IsOK")))
// {
// ql.IsOK = values.Value<string>("IsOK") == "已完成" ? true : false;
// }
// ql.Remark = values.Value<string>("Remark");
// BLL.WeekPlanService.UpdateWeekPlan(ql);
//}
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_WeekPlan ql = new Model.JDGL_WeekPlan();
ql.WeekPlanId = SQLHelper.GetNewID();
list.Add(ql);
Model.SGGLDB db = Funs.DB;
Grid1.DataSource = from x in list
select new
{
x.WeekPlanId,
x.ProjectId,
x.WeekNo,
x.StartDate,
x.EndDate,
x.UnitWork,
x.Major,
x.UnitId,
x.WorkContent,
x.PlanDate,
x.DutyPerson,
IsOK = ConvertIsOK(x.IsOK),
x.Remark,
};
Grid1.DataBind();
}
/// <summary>
/// 增加按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew2_Click(object sender, EventArgs e)
{
var list = GetDetails2();
Model.JDGL_WeekPlan ql = new Model.JDGL_WeekPlan();
ql.WeekPlanId = SQLHelper.GetNewID();
list.Add(ql);
Model.SGGLDB db = Funs.DB;
Grid2.DataSource = from x in list
select new
{
x.WeekPlanId,
x.ProjectId,
x.WeekNo,
x.StartDate,
x.EndDate,
x.UnitWork,
x.Major,
x.UnitId,
x.WorkContent,
x.PlanDate,
x.DutyPerson,
IsOK = ConvertIsOK(x.IsOK),
x.Remark,
};
Grid2.DataBind();
}
private List<Model.JDGL_WeekPlan> GetDetails()
{
List<Model.JDGL_WeekPlan> list = new List<Model.JDGL_WeekPlan>();
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
Model.JDGL_WeekPlan ql = new Model.JDGL_WeekPlan();
ql.WeekPlanId = Grid1.Rows[i].RowID;
ql.UnitWork = values.Value<string>("UnitWork");
ql.Major = values.Value<string>("Major");
ql.UnitId = values.Value<string>("UnitId");
ql.WorkContent = values.Value<string>("WorkContent");
ql.PlanDate = Funs.GetNewDateTime(values.Value<string>("PlanDate"));
ql.DutyPerson = values.Value<string>("DutyPerson");
if (!string.IsNullOrEmpty(values.Value<string>("IsOK")))
{
ql.IsOK = values.Value<string>("IsOK") == "已完成" ? true : false;
}
ql.Remark = values.Value<string>("Remark");
list.Add(ql);
}
return list;
}
private List<Model.JDGL_WeekPlan> GetDetails2()
{
List<Model.JDGL_WeekPlan> list = new List<Model.JDGL_WeekPlan>();
foreach (JObject mergedRow in Grid2.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
Model.JDGL_WeekPlan ql = new Model.JDGL_WeekPlan();
ql.WeekPlanId = Grid2.Rows[i].RowID;
ql.UnitWork = values.Value<string>("UnitWork");
ql.Major = values.Value<string>("Major");
ql.UnitId = values.Value<string>("UnitId");
ql.WorkContent = values.Value<string>("WorkContent");
ql.PlanDate = Funs.GetNewDateTime(values.Value<string>("PlanDate"));
ql.DutyPerson = values.Value<string>("DutyPerson");
if (!string.IsNullOrEmpty(values.Value<string>("IsOK")))
{
ql.IsOK = values.Value<string>("IsOK") == "已完成" ? true : false;
}
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 WeekPlanId = Grid1.DataKeys[e.RowIndex][0].ToString();
var list = GetDetails();
if (e.CommandName == "del")//删除
{
var Report = list.FirstOrDefault(x => x.WeekPlanId == WeekPlanId);
if (Report != null)
{
list.Remove(Report);
}
Model.SGGLDB db = Funs.DB;
Grid1.DataSource = from x in list
select new
{
x.WeekPlanId,
x.ProjectId,
x.WeekNo,
x.StartDate,
x.EndDate,
x.UnitWork,
x.Major,
x.UnitId,
x.WorkContent,
x.PlanDate,
x.DutyPerson,
IsOK = ConvertIsOK(x.IsOK),
x.Remark,
};
this.Grid1.DataBind();
}
}
/// <summary>
/// Grid行点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid2_RowCommand(object sender, GridCommandEventArgs e)
{
string WeekPlanId = Grid2.DataKeys[e.RowIndex][0].ToString();
var list = GetDetails2();
if (e.CommandName == "del")//删除
{
var Report = list.FirstOrDefault(x => x.WeekPlanId == WeekPlanId);
if (Report != null)
{
list.Remove(Report);
}
Model.SGGLDB db = Funs.DB;
Grid2.DataSource = from x in list
select new
{
x.WeekPlanId,
x.ProjectId,
x.WeekNo,
x.StartDate,
x.EndDate,
x.UnitWork,
x.Major,
x.UnitId,
x.WorkContent,
x.PlanDate,
x.DutyPerson,
IsOK = ConvertIsOK(x.IsOK),
x.Remark,
};
this.Grid2.DataBind();
}
}
#endregion
}
}