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
|
|
}
|
|
} |