331 lines
12 KiB
C#
331 lines
12 KiB
C#
using BLL;
|
|
using BLL.Common;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
|
|
namespace FineUIPro.Web.ManHours
|
|
{
|
|
public partial class ManHoursStatistics : PageBase
|
|
{
|
|
string dis = "";
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
string strSql = @" SELECT * FROM Sys_ActualManHourMonthSet where CONVERT(INT,Years)=" + DateTime.Now.Year + " and DepartId is null and Person=0";
|
|
DataTable dt = SQLHelper.GetDataTableRunText(strSql, null);
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
string json = JsonHelper.DataTableToJSON(dt);
|
|
ActualManHour.Value = json;
|
|
}
|
|
BindDeptTree("");
|
|
BindGrid("D1@770DF268-7955-4E8E-9A47-95595B3E614C");
|
|
}
|
|
}
|
|
|
|
#region 查询
|
|
protected void TextBox_TextChanged(object sender, EventArgs e)
|
|
{
|
|
string UserName = txtUserName.Text;
|
|
BindDeptTree(UserName);
|
|
}
|
|
#endregion
|
|
|
|
#region Grid1行选择事件
|
|
/// <summary>
|
|
/// Grid行选择事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_RowSelect(object sender, GridRowSelectEventArgs e)
|
|
{
|
|
string eProjectId = this.Grid1.SelectedRowID;
|
|
if (!string.IsNullOrEmpty(eProjectId))
|
|
{
|
|
BindGrid2(eProjectId);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
public void BindGrid2(string paramet)
|
|
{
|
|
try
|
|
{
|
|
string sId = "";
|
|
int Layer = 0;
|
|
if (!string.IsNullOrEmpty(paramet))
|
|
{
|
|
Layer = 1;
|
|
sId = paramet;
|
|
}
|
|
SqlParameter[] parameter = new SqlParameter[]
|
|
{
|
|
new SqlParameter("@Layer",Layer),
|
|
new SqlParameter("@sId",sId),
|
|
new SqlParameter("@Start",""),
|
|
new SqlParameter("@End","")
|
|
};
|
|
DataSet ds = SQLHelper.RunProcedure("Proc_NewManHoursStatisticsChild", parameter, "t");
|
|
DataTable table1 = ds.Tables[0];
|
|
Grid2.RecordCount = table1.Rows.Count;
|
|
//table1 = GetFilteredTable(Grid2.FilteredData, table1);
|
|
var table = this.GetPagedDataTable(Grid2, table1);
|
|
Grid2.DataSource = table;
|
|
Grid2.DataBind();
|
|
OutputSummaryData2(table1);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
|
|
public void BindGrid(string paramet)
|
|
{
|
|
hidjson.Value = "";
|
|
int Layer = 0;
|
|
string sId = "";
|
|
string DepartId = "";
|
|
string[] sIdArr = paramet.Split('@');
|
|
string Start = DateTime.Now.AddYears(-3).ToString("yyyyMM");
|
|
string End = DateTime.Now.ToString("yyyyMM");
|
|
string strSql1 = @" SELECT * FROM Sys_ActualManHourMonthSet where Years in ('" + (DateTime.Now.Year-1)+"','" +( DateTime.Now.Year-2 )+ "','" + DateTime.Now.Year + "') and DepartId='770DF268-7955-4E8E-9A47-95595B3E614C'";
|
|
DataTable dt1 = SQLHelper.GetDataTableRunText(strSql1, null);
|
|
if (dt1 != null && dt1.Rows.Count > 0)
|
|
{
|
|
string json = JsonHelper.DataTableToJSON(dt1);
|
|
hidchildJson.Value = json;
|
|
}
|
|
try
|
|
{
|
|
if (sIdArr[0].ToString() == "UD")
|
|
{
|
|
Layer = 1;
|
|
sId = sIdArr[1].ToString();
|
|
DepartId = sIdArr[2].ToString();
|
|
|
|
}
|
|
if (sIdArr[0].ToString() == "D1")
|
|
{
|
|
Layer = 2;
|
|
sId = sIdArr[1].ToString();
|
|
}
|
|
if (sIdArr[0].ToString() == "D2")
|
|
{
|
|
Layer = 3;
|
|
sId = sIdArr[1].ToString();
|
|
}
|
|
SqlParameter[] parameter = new SqlParameter[]
|
|
{
|
|
new SqlParameter("@Layer",Layer),
|
|
new SqlParameter("@sId",sId),
|
|
new SqlParameter("@Start",Start),
|
|
new SqlParameter("@End",End),
|
|
new SqlParameter("@DepartId",DepartId),
|
|
|
|
};
|
|
DataSet ds = SQLHelper.RunProcedure("Proc_NewManHoursStatistics", parameter, "t");
|
|
DataTable table1 = ds.Tables[0];
|
|
DataTable table2 = ds.Tables[1];
|
|
Grid1.RecordCount = table1.Rows.Count;
|
|
//table1 = GetFilteredTable(Grid1.FilteredData, table1);
|
|
var table = this.GetPagedDataTable(Grid1, table1);
|
|
Grid1.DataSource = table;
|
|
Grid1.DataBind();
|
|
OutputSummaryData(table1);
|
|
|
|
|
|
string json = JsonHelper.DataTableToJSON(table2);
|
|
hidjson.Value = json;
|
|
Grid2.DataSource = table2;
|
|
Grid2.DataBind();
|
|
OutputSummaryData2(table2);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
|
|
private void OutputSummaryData(DataTable table)
|
|
{
|
|
DataTable source = table;
|
|
float ManHoursTotal = 0.0f;
|
|
float HoursTotal = 0.0f;
|
|
foreach (DataRow row in source.Rows)
|
|
{
|
|
ManHoursTotal += Convert.ToInt32(row["ManHours"]);
|
|
HoursTotal += Convert.ToInt32(row["Hours"]);
|
|
}
|
|
JObject summary = new JObject();
|
|
summary.Add("ManHours", ManHoursTotal.ToString("F2"));
|
|
summary.Add("Hours", HoursTotal.ToString("F2"));
|
|
|
|
Grid1.SummaryData = summary;
|
|
}
|
|
|
|
private void OutputSummaryData2(DataTable table)
|
|
{
|
|
DataTable source = table;
|
|
float TaskPlanTotal = 0.0f;
|
|
float TaskActualTotal = 0.0f;
|
|
float NoPlannedTotal = 0.0f;
|
|
foreach (DataRow row in source.Rows)
|
|
{
|
|
TaskPlanTotal += Convert.ToInt32(row["TaskPlan"]);
|
|
TaskActualTotal += Convert.ToInt32(row["TaskActual"]);
|
|
NoPlannedTotal += Convert.ToInt32(row["NoPlanned"]);
|
|
}
|
|
JObject summary = new JObject();
|
|
summary.Add("TaskPlan", TaskPlanTotal.ToString("F2"));
|
|
summary.Add("TaskActual", TaskActualTotal.ToString("F2"));
|
|
summary.Add("NoPlanned", NoPlannedTotal.ToString("F2"));
|
|
Grid2.SummaryData = summary;
|
|
|
|
}
|
|
/// <summary>
|
|
/// 加载部门人员
|
|
/// </summary>
|
|
private void BindDeptTree(string UserName)
|
|
{
|
|
this.tvUser.Nodes.Clear();
|
|
try
|
|
{
|
|
// string strSql = @"SELECT distinct DepartId,DepartCode,DepartName,IsPost FROM View_Sys_Users where SupCheckItem='0'";
|
|
string strSql = "SELECT [DepartId] ,[DepartCode],[DepartName],SupCheckItem FROM [Base_Depart] where SupCheckItem='0' and DepartCode='CTE' order by DepartCode";
|
|
DataTable table = SQLHelper.GetDataTableRunText(strSql, null);
|
|
for (int i = 0; i < table.Rows.Count; i++)
|
|
{
|
|
TreeNode node = new TreeNode();
|
|
node.Text = table.Rows[i]["DepartName"].ToString();
|
|
node.NodeID = "D1@" + table.Rows[i]["DepartId"].ToString();
|
|
node.Expanded = true;
|
|
node.EnableClickEvent = true;
|
|
this.tvUser.Nodes.Add(node);
|
|
BindDeptNodeTwo(node, table.Rows[i]["DepartId"].ToString(), UserName);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Alert.ShowInParent(ex.ToString());
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="DTnode"></param>
|
|
/// <param name="DepartId"></param>
|
|
private void BindDeptNodeTwo(TreeNode DTnode, string DepartId, string UserName)
|
|
{
|
|
string strSql = @"SELECT [DepartId] ,[DepartCode],[DepartName] ,[SupCheckItem] FROM [Base_Depart] where SupCheckItem=@SupCheckItem";
|
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|
listStr.Add(new SqlParameter("@SupCheckItem", DepartId));
|
|
SqlParameter[] parameter = listStr.ToArray();
|
|
DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|
for (int i = 0; i < table.Rows.Count; i++)
|
|
{
|
|
TreeNode node = new TreeNode();
|
|
node.Text = table.Rows[i]["DepartName"].ToString();
|
|
node.NodeID = "D2@" + table.Rows[i]["DepartId"].ToString();
|
|
node.Expanded = true;
|
|
node.EnableClickEvent = true;
|
|
DTnode.Nodes.Add(node);//把指定的节点添加到控件中
|
|
BindDeptNodeThree(node, table.Rows[i]["DepartId"].ToString(), UserName);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="DTnode"></param>
|
|
/// <param name="DepartId"></param>
|
|
private void BindDeptNodeThree(TreeNode DTnode, string DepartId, string UserName)
|
|
{
|
|
try
|
|
{
|
|
string strSql = @"SELECT UserId,UserCode,UserName,DepartId,DepartCode,DepartName,RoleId,RoleName,IsPost FROM View_Sys_Users WHERE DepartId=@DepartId";
|
|
//SqlParameter[] parameter = new SqlParameter[]
|
|
// {
|
|
// new SqlParameter("@DepartId",DepartId)
|
|
// };
|
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|
listStr.Add(new SqlParameter("@DepartId", DepartId));
|
|
if (!string.IsNullOrEmpty(UserName))
|
|
{
|
|
strSql += " AND UserName=@UserName ";
|
|
listStr.Add(new SqlParameter("@UserName", UserName));
|
|
}
|
|
SqlParameter[] parameter = listStr.ToArray();
|
|
DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|
for (int i = 0; i < table.Rows.Count; i++)
|
|
{
|
|
TreeNode node = new TreeNode();
|
|
node.Text = table.Rows[i]["UserName"].ToString();
|
|
node.NodeID = "UD@" + table.Rows[i]["UserId"].ToString() + "@" + table.Rows[i]["DepartId"].ToString();
|
|
node.Expanded = true;
|
|
node.EnableClickEvent = true;
|
|
DTnode.Nodes.Add(node);//把指定的节点添加到控件中
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Alert.ShowInParent(ex.ToString());
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
|
{
|
|
Grid1.PageIndex = e.NewPageIndex;
|
|
BindGrid(dis);
|
|
}
|
|
/// <summary>
|
|
/// 分页
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e)
|
|
{
|
|
Grid1.PageIndex = e.NewPageIndex;
|
|
BindGrid(dis);
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 分页显示条数下拉框
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
//Grid1.PageSize = Convert.ToInt32(this.ddlPageSize.SelectedValue);
|
|
//BindGrid(dis);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 树节点选择
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void tvUser_NodeCommand(object sender, FineUIPro.TreeCommandEventArgs e)
|
|
{
|
|
dis = e.Node.NodeID.ToString();
|
|
BindGrid(e.Node.NodeID.ToString());
|
|
}
|
|
}
|
|
} |