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