2025-04-10 19:04:56 +08:00
using BLL ;
using NPOI.SS.Formula.Functions ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Data.SqlClient ;
using System.Linq ;
namespace FineUIPro.Web.DataShow
{
public partial class JDWeekDetail : PageBase
{
#region 项 目 主 键
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return ( string ) ViewState [ "ProjectId" ] ;
}
set
{
ViewState [ "ProjectId" ] = value ;
}
}
public string WeekNo
{
get
{
return ( string ) ViewState [ "WeekNo" ] ;
}
set
{
ViewState [ "WeekNo" ] = value ;
}
}
#endregion
protected void Page_Load ( object sender , EventArgs e )
{
if ( ! IsPostBack )
{
this . ProjectId = this . CurrUser . LoginProjectId ;
if ( ! string . IsNullOrEmpty ( Request . Params [ "projectId" ] ) & & Request . Params [ "projectId" ] ! = this . CurrUser . LoginProjectId )
{
this . ProjectId = Request . Params [ "projectId" ] ;
}
Model . SGGLDB db = Funs . DB ;
2025-04-18 16:59:01 +08:00
var lastWeek = ( from x in db . JDGL_WeekPlan where x . ProjectId = = this . ProjectId & & DateTime . Now > ( ( DateTime ) x . EndDate ) . AddDays ( 1 ) orderby x . EndDate descending select x ) . FirstOrDefault ( ) ;
2025-04-10 19:04:56 +08:00
2025-04-18 16:59:01 +08:00
this . WeekNo = lastWeek ! = null ? lastWeek . WeekNo : string . Empty ;
this . InitDropDownList ( ) ;
2025-04-10 19:04:56 +08:00
BindGrid ( ) ;
}
}
2025-04-18 16:59:01 +08:00
/// <summary>
/// 初始化下拉框
/// </summary>
private void InitDropDownList ( )
{
WeekItemService . InitWeekItemDropDownList ( this . drpWeekNo , this . ProjectId , false ) ;
if ( ! string . IsNullOrWhiteSpace ( this . WeekNo ) )
{
var item = WeekItemService . GetWeekItemByProjectIdAndWeekNo ( this . ProjectId , int . Parse ( this . WeekNo ) ) ;
if ( item ! = null )
{
this . drpWeekNo . SelectedValue = item . WeekNo . ToString ( ) ;
this . txtStartDate . Text = string . Format ( "{0:yyyy-MM-dd}" , item . StartDate ) ;
this . txtEndDate . Text = string . Format ( "{0:yyyy-MM-dd}" , item . EndDate ) ;
}
}
else
{
//获取当前时间所在周号,存在默认选中当前时间点所在周,否则选择最后一个周
var item = WeekItemService . GetWeekItemByDateNow ( this . ProjectId ) ;
if ( item ! = null )
{ //存在默认选中当前时间点所在周
this . drpWeekNo . SelectedValue = item . WeekNo . ToString ( ) ;
this . txtStartDate . Text = string . Format ( "{0:yyyy-MM-dd}" , item . StartDate ) ;
this . txtEndDate . Text = string . Format ( "{0:yyyy-MM-dd}" , item . EndDate ) ;
}
else
{
var items = WeekItemService . GetWeekItemList ( this . ProjectId ) ;
if ( items . Any ( ) )
{ //否则选择最后一个周
item = items . First ( ) ;
this . drpWeekNo . SelectedValue = item . WeekNo . ToString ( ) ;
this . txtStartDate . Text = string . Format ( "{0:yyyy-MM-dd}" , item . StartDate ) ;
this . txtEndDate . Text = string . Format ( "{0:yyyy-MM-dd}" , item . EndDate ) ;
}
}
}
}
/// <summary>
/// 周号选择触发事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void drpWeekNo_SelectedIndexChanged ( object sender , EventArgs e )
{
string weekNo = this . drpWeekNo . SelectedValue ;
this . WeekNo = weekNo ;
var item = BLL . WeekItemService . GetWeekItemByProjectIdAndWeekNo ( this . ProjectId , int . Parse ( weekNo ) ) ;
if ( item ! = null )
{
this . drpWeekNo . SelectedValue = item . WeekNo . ToString ( ) ;
this . txtStartDate . Text = string . Format ( "{0:yyyy-MM-dd}" , item . StartDate ) ;
this . txtEndDate . Text = string . Format ( "{0:yyyy-MM-dd}" , item . EndDate ) ;
}
BindGrid ( ) ;
}
2025-04-10 19:04:56 +08:00
/// <summary>
/// 加载Grid
/// </summary>
private void BindGrid ( )
{
DataTable tb = BindData ( ) ;
Grid1 . RecordCount = tb . Rows . Count ;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this . GetPagedDataTable ( Grid1 , tb ) ;
Grid1 . DataSource = table ;
Grid1 . DataBind ( ) ;
}
/// <summary>
/// 加载数据
/// </summary>
/// <returns></returns>
private DataTable BindData ( )
{
string strSql = @"select mp.*,u.UnitName,uw.UnitWorkName,cn.ProfessionalName,case mp.IsOK when 1 then '已完成' when 0 then '未完成' else '' end as IsOKStr
,DutyPersonName = STUFF((SELECT ',' + p.UserName FROM dbo.Sys_User as p where PATINDEX('%,' + RTRIM(p.UserId) + ',%', ',' + mp.DutyPerson + ',') > 0 FOR XML PATH('')), 1, 1,'')
from [dbo].[JDGL_WeekPlan] mp
left join Base_Unit u on u.UnitId=mp.UnitId
left join WBS_UnitWork uw on uw.UnitWorkId=mp.UnitWork
left join Base_CNProfessional cn on cn.CNProfessionalId=mp.Major
where mp.ProjectId=@ProjectId and mp.WeekNo=@WeekNo order by mp.SortIndex" ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
listStr . Add ( new SqlParameter ( "@ProjectId" , this . ProjectId ) ) ;
listStr . Add ( new SqlParameter ( "@WeekNo" , this . WeekNo ) ) ;
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
return tb ;
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox2_TextChanged ( object sender , EventArgs e )
{
this . BindGrid ( ) ;
}
#region 表 排 序 、 分 页 、 关 闭 窗 口
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange ( object sender , GridPageEventArgs e )
{
BindGrid ( ) ;
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort ( object sender , GridSortEventArgs e )
{
BindGrid ( ) ;
}
#endregion
}
}