2025-11-11 11:09:49 +08:00
using BLL ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Data.SqlClient ;
using System.Linq ;
namespace FineUIPro.Web.JDGL.SGManPower
{
public partial class SGWarningDetailsEdit : PageBase
{
#region 定 义 项
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get { return ( string ) ViewState [ "ProjectId" ] ; }
set { ViewState [ "ProjectId" ] = value ; }
}
public string UnitId
{
get = > ( string ) ViewState [ "UnitId" ] ;
set = > ViewState [ "UnitId" ] = value ;
}
public string UnitWorkId
{
get = > ( string ) ViewState [ "UnitWorkId" ] ;
set = > ViewState [ "UnitWorkId" ] = value ;
}
public string WorkPostId
{
get = > ( string ) ViewState [ "WorkPostId" ] ;
set = > ViewState [ "WorkPostId" ] = value ;
}
public string StartTime
{
get = > ( string ) ViewState [ "StartTime" ] ;
set = > ViewState [ "StartTime" ] = value ;
}
public string EndTime
{
get = > ( string ) ViewState [ "EndTime" ] ;
set = > ViewState [ "EndTime" ] = value ;
}
private static string Version = "1" ;
#endregion
#region 加 载 页 面
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load ( object sender , EventArgs e )
{
if ( ! IsPostBack )
{
this . ProjectId = this . CurrUser . LoginProjectId ;
// 判断projectId参数是否为空
if ( ! string . IsNullOrEmpty ( Request . Params [ "projectId" ] ) )
{
this . ProjectId = Request . Params [ "projectId" ] ;
}
Funs . DropDownPageSize ( this . ddlPageSize ) ;
ddlPageSize . SelectedValue = Grid1 . PageSize . ToString ( ) ;
BLL . UnitService . GetUnit ( this . drpUnit , this . ProjectId , true ) ; //单位
this . txtStartTime . Text = string . Format ( "{0:yyyy-MM-dd}" , DateTime . Now . AddDays ( - 30 ) ) ;
this . txtEndTime . Text = string . Format ( "{0:yyyy-MM-dd}" , DateTime . Now . AddDays ( 30 ) ) ;
WorkPostService . InitWorkPostDropDownList ( this . drpWorkPost , true ) ; //岗位
UnitWorkService . InitUnitWorkDownList ( drpUnitWork , this . ProjectId , true ) ; //单位工程(装置)
this . UnitId = Request . Params [ "unitId" ] ;
this . UnitWorkId = Request . Params [ "unitWorkId" ] ;
this . WorkPostId = Request . Params [ "workPostId" ] ;
this . StartTime = Request . Params [ "startTime" ] ;
this . EndTime = Request . Params [ "endTime" ] ;
if ( ! string . IsNullOrEmpty ( this . UnitId ) )
{
this . drpUnit . SelectedValue = UnitId ;
}
if ( ! string . IsNullOrEmpty ( this . UnitWorkId ) )
{
this . drpUnitWork . SelectedValue = UnitWorkId ;
}
if ( ! string . IsNullOrEmpty ( this . WorkPostId ) )
{
this . drpWorkPost . SelectedValue = WorkPostId ;
}
if ( ! string . IsNullOrEmpty ( this . StartTime ) )
{
this . txtStartTime . Text = StartTime ;
}
if ( ! string . IsNullOrEmpty ( this . EndTime ) )
{
this . txtEndTime . Text = EndTime ;
}
var sgMan = Funs . DB . JDGL_SGManPower . Where ( x = > x . ProjectId = = this . ProjectId ) . OrderByDescending ( x = > x . Version )
. FirstOrDefault ( ) ;
if ( sgMan ! = null )
{
Version = sgMan . Version ;
}
// 绑定表格
BindGrid ( ) ;
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid ( )
{
string strSql =
@ "SELECT
2025-12-05 14:37:05 +08:00
p . Id ,
p . ProjectId ,
p . UnitId ,
p . UnitWorkId ,
p . WorkPostId ,
p . Version ,
p . Quantity ,
p . PlanDate ,
ISNULL ( a . num , 0 ) AS num ,
( CASE WHEN p . Quantity > 0 AND ABS ( CAST ( ( p . Quantity - ISNULL ( a . num , 0 ) ) AS FLOAT ) / p . Quantity ) > 0.1
THEN ABS ( CAST ( ( p . Quantity - ISNULL ( a . num , 0 ) ) AS FLOAT ) / p . Quantity )
ELSE 0 end ) as Bias
FROM JDGL_SGManPower p
LEFT JOIN ( SELECT ProjectId , UnitId , WorkPostId , IntoOutTime , WorkAreaId , num FROM SitePerson_Checking_Statistics ) a ON p . ProjectId = a . ProjectId
AND p . UnitId = a . UnitId
AND p . WorkPostId = a . WorkPostId
AND p . PlanDate = a . IntoOutTime
AND ( CHARINDEX ( ',' + p . UnitWorkId + ',' , ',' + ISNULL ( a . WorkAreaId , ' ' ) + ',' ) > 0 OR ( ISNULL ( a . WorkAreaId , ' ' ) = ' ' AND ISNULL ( p . UnitWorkId , ' ' ) = ' ' ) ) where p . Version = ' " + Version + " ' ";
2025-11-11 11:09:49 +08:00
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
if ( ! string . IsNullOrEmpty ( this . ProjectId ) )
{
strSql + = " AND p.ProjectId = @ProjectId " ;
listStr . Add ( new SqlParameter ( "@ProjectId" , this . ProjectId ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . drpUnit . SelectedValue ) & & this . drpUnit . SelectedValue ! = "null" )
{
strSql + = " AND p.UnitId = @UnitId " ;
listStr . Add ( new SqlParameter ( "@UnitId" , this . drpUnit . SelectedValue ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . drpUnitWork . SelectedValue ) & & this . drpUnitWork . SelectedValue ! = "null" )
{
strSql + = " AND p.UnitWorkId = @UnitWorkId " ;
listStr . Add ( new SqlParameter ( "@UnitWorkId" , this . drpUnitWork . SelectedValue ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . drpWorkPost . SelectedValue ) & & this . drpWorkPost . SelectedValue ! = "null" )
{
strSql + = " AND p.WorkPostId = @WorkPostId " ;
listStr . Add ( new SqlParameter ( "@WorkPostId" , this . drpWorkPost . SelectedValue ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtStartTime . Text ) )
{
strSql + = " AND p.PlanDate >= @StartTime " ;
listStr . Add ( new SqlParameter ( "@StartTime" , Convert . ToDateTime ( this . txtStartTime . Text ) ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtEndTime . Text ) )
{
strSql + = " AND p.PlanDate <= @EndTime " ;
listStr . Add ( new SqlParameter ( "@EndTime" , Convert . ToDateTime ( this . txtEndTime . Text ) ) ) ;
}
strSql + = " ORDER BY p.PlanDate, p.UnitId, p.UnitWorkId, p.WorkPostId" ;
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
Grid1 . RecordCount = tb . Rows . Count ;
var table = this . GetPagedDataTable ( Grid1 , tb ) ;
Grid1 . DataSource = table ;
Grid1 . DataBind ( ) ;
}
#endregion
#region 分 页 、 关 闭 窗 口
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange ( object sender , GridPageEventArgs e )
{
Grid1 . PageIndex = e . NewPageIndex ;
BindGrid ( ) ;
}
/// <summary>
/// 分页显示条数下拉框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged ( object sender , EventArgs e )
{
Grid1 . PageSize = Convert . ToInt32 ( ddlPageSize . SelectedValue ) ;
BindGrid ( ) ;
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort ( object sender , FineUIPro . GridSortEventArgs e )
{
BindGrid ( ) ;
}
#endregion
#region 格 式 化 字 符 串
/// <summary>
/// 格式化受伤情况
/// </summary>
/// <param name="injury"></param>
/// <returns></returns>
protected string ConvertWorkPostName ( object workPostId )
{
string name = string . Empty ;
if ( workPostId ! = null )
{
name = BLL . WorkPostService . getWorkPostNameById ( workPostId . ToString ( ) ) ;
}
return name ;
}
protected string ConvertUnitName ( object unitId )
{
string name = string . Empty ;
if ( unitId ! = null )
{
name = UnitService . GetUnitNameByUnitId ( unitId ) ;
}
return name ;
}
/// <summary>
/// 格式化受伤情况
/// </summary>
/// <param name="injury"></param>
/// <returns></returns>
protected string ConvertUnitWorkName ( object unitWorkId )
{
string name = string . Empty ;
if ( unitWorkId ! = null )
{
name = BLL . UnitWorkService . GetNameById ( unitWorkId . ToString ( ) ) ;
}
return name ;
}
#endregion
#region 查 询 事 件
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnQuery_OnClick ( object sender , EventArgs e )
{
if ( drpUnit . SelectedValue ! = Const . _Null & & ! string . IsNullOrEmpty ( drpUnit . SelectedValue ) )
{
UnitId = drpUnit . SelectedValue ;
}
if ( drpUnitWork . SelectedValue ! = Const . _Null & & ! string . IsNullOrEmpty ( drpUnitWork . SelectedValue ) )
{
UnitWorkId = drpUnitWork . SelectedValue ;
}
if ( drpWorkPost . SelectedValue ! = Const . _Null & & ! string . IsNullOrEmpty ( drpWorkPost . SelectedValue ) )
{
WorkPostId = drpWorkPost . SelectedValue ;
}
if ( ! string . IsNullOrEmpty ( this . txtStartTime . Text ) )
{
StartTime = this . txtStartTime . Text ;
}
if ( ! string . IsNullOrEmpty ( this . txtStartTime . Text ) )
{
EndTime = this . txtEndTime . Text ;
}
this . BindGrid ( ) ;
}
#endregion
}
}