SGGL_SHJ/SGGL/FineUIPro.Web/PZHGL/InformationProject/MonthConstructionLogWorkEff...

198 lines
8.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.PZHGL.InformationProject
{
public partial class MonthConstructionLogWorkEfficiencySum : PageBase
{
/// <summary>
/// 加载表头
/// </summary>
protected void Page_Init(object sender, EventArgs e)
{
InitGrid();
}
#region
/// <summary>
/// 表头
/// </summary>
private void InitGrid()
{
Model.SGGLDB db = Funs.DB;
var workEfficiencys = from x in db.ZHGL_ConstructionLogWorkEfficiency
join y in db.ZHGL_ConstructionLog on x.ConstructionLogId equals y.ConstructionLogId
where y.ProjectId == this.CurrUser.LoginProjectId
select x;
List<string> workPostIds = (from x in workEfficiencys
where x.Type == "Person"
select x.TypeId).Distinct().ToList();
List<string> machineIds = (from x in workEfficiencys
where x.Type == "Machine"
select x.TypeId).Distinct().ToList();
GroupField gf1 = new GroupField();
gf1.ColumnID = "Person";
gf1.HeaderText = "人工消耗工·h";
gf1.HeaderTextAlign = TextAlign.Center;
for (int i = 0; i < workPostIds.Count; i++)
{
GroupField gf = new GroupField();
gf.ColumnID = "Person" + i.ToString();
gf.HeaderText = BLL.WorkPostService.getWorkPostNameById(workPostIds[i]);
gf.HeaderTextAlign = TextAlign.Center;
RenderField rd1 = new RenderField();
rd1.ColumnID = "PersonConsumeHours" + i.ToString();
rd1.Width = Unit.Pixel(100);
rd1.DataField = "PersonConsumeHours" + i.ToString();
rd1.FieldType = FieldType.Double;
rd1.HeaderText = "消耗工时";
rd1.HeaderTextAlign = TextAlign.Center;
gf.Columns.Add(rd1);
RenderField rd2 = new RenderField();
rd2.ColumnID = "PersonWorkEfficiency" + i.ToString();
rd2.Width = Unit.Pixel(100);
rd2.DataField = "PersonWorkEfficiency" + i.ToString();
rd2.FieldType = FieldType.Double;
rd2.HeaderText = "工效";
rd2.HeaderTextAlign = TextAlign.Center;
gf.Columns.Add(rd2);
gf1.Columns.Add(gf);
}
Grid1.Columns.Add(gf1);
GroupField gf2 = new GroupField();
gf2.ColumnID = "Machine";
gf2.HeaderText = "机械消耗台·h";
gf2.HeaderTextAlign = TextAlign.Center;
for (int i = 0; i < machineIds.Count; i++)
{
GroupField gf = new GroupField();
gf.ColumnID = "Machine" + i.ToString();
gf.HeaderText = BLL.SpecialEquipmentService.GetSpecialEquipmentNameById(machineIds[i]);
gf.HeaderTextAlign = TextAlign.Center;
RenderField rd1 = new RenderField();
rd1.ColumnID = "MachineConsumeHours" + i.ToString();
rd1.Width = Unit.Pixel(100);
rd1.DataField = "MachineConsumeHours" + i.ToString();
rd1.FieldType = FieldType.Double;
rd1.HeaderText = "消耗台时";
rd1.HeaderTextAlign = TextAlign.Center;
gf.Columns.Add(rd1);
RenderField rd2 = new RenderField();
rd2.ColumnID = "MachineWorkEfficiency" + i.ToString();
rd2.Width = Unit.Pixel(100);
rd2.DataField = "MachineWorkEfficiency" + i.ToString();
rd2.FieldType = FieldType.Double;
rd2.HeaderText = "工效";
rd2.HeaderTextAlign = TextAlign.Center;
gf.Columns.Add(rd2);
gf2.Columns.Add(gf);
}
Grid1.Columns.Add(gf2);
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.txtMonth.Text = string.Format("{0:yyyy-MM}", DateTime.Now);
GetData();
}
}
#endregion
private void GetData()
{
Model.SGGLDB db = Funs.DB;
DateTime startDate = Funs.GetNewDateTimeOrNow(this.txtMonth.Text.Trim() + "-01");
DateTime endDate = startDate.AddMonths(1);
string contractNo = string.Empty, professional = string.Empty;
var personLogs = from x in db.ZHGL_ConstructionLog
where x.ProjectId == this.CurrUser.LoginProjectId && x.CompileDate >= startDate && x.CompileDate < endDate
orderby x.CompileDate descending
select x;
if (personLogs.Count() > 0)
{
foreach (var personLog in personLogs)
{
if (!string.IsNullOrEmpty(personLog.ContractNo))
{
contractNo += "," + personLog.ContractNo;
}
if (!string.IsNullOrEmpty(personLog.Professional))
{
professional += "," + personLog.Professional;
}
}
}
List<string> contractNoList = Funs.GetStrListByStr(contractNo, ',');
List<string> professionalList = Funs.GetStrListByStr(professional, ',');
var workEfficiencys = from x in db.ZHGL_ConstructionLogWorkEfficiency
join y in db.ZHGL_ConstructionLog on x.ConstructionLogId equals y.ConstructionLogId
where y.ProjectId == this.CurrUser.LoginProjectId
select x;
List<string> workPostIds = (from x in workEfficiencys
where x.Type == "Person"
select x.TypeId).Distinct().ToList();
List<string> machineIds = (from x in workEfficiencys
where x.Type == "Machine"
select x.TypeId).Distinct().ToList();
DataTable table = BLL.PhtglContractTrackService.GetMonthProjectAllTreeDataTable(this.CurrUser.LoginProjectId, string.Empty, contractNoList, professionalList, workPostIds, machineIds, startDate, endDate);
Grid1.DataSource = table;
Grid1.DataBind();
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
if (string.IsNullOrEmpty(this.Grid1.Rows[i].DataKeys[2].ToString()))
{
foreach (GridColumn column in Grid1.Columns)
{
if (column.ColumnIndex != 0 && column.ColumnIndex != 1 && column.ColumnIndex != 2)
{
if (column.ColumnIndex > 5)
{
GroupField gf1 = column as GroupField;
foreach (var column1 in gf1.Columns)
{
GroupField gf2 = column1 as GroupField;
foreach (var column2 in gf2.Columns)
{
this.Grid1.Rows[i].CellCssClasses[column2.ColumnIndex] = "f-grid-cell-uneditable";
}
}
}
else
{
this.Grid1.Rows[i].CellCssClasses[column.ColumnIndex] = "f-grid-cell-uneditable";
}
}
}
}
}
}
protected void txtMonth_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtMonth.Text.Trim()))
{
GetData();
}
else
{
Grid1.DataSource = null;
Grid1.DataBind();
Alert.ShowInTop("请选择月份!", MessageBoxIcon.Warning);
}
}
}
}