diff --git a/SGGL/BLL/PHTGL/ContractCompile/PhtglContracttrackService .cs b/SGGL/BLL/PHTGL/ContractCompile/PhtglContracttrackService .cs
index 7e1a3aa5..32643bc9 100644
--- a/SGGL/BLL/PHTGL/ContractCompile/PhtglContracttrackService .cs
+++ b/SGGL/BLL/PHTGL/ContractCompile/PhtglContracttrackService .cs
@@ -956,11 +956,15 @@ namespace BLL
where personLogIds.Contains(x.ConstructionLogId)
select x;
var unitWorks = (from x in getContractTracks
- select new { MainItemCode = x.MainItemCode, MainItemName = x.MainItemName }).Distinct().ToList();
+ select new { MainItemCode = x.MainItemCode, MainItemName = x.MainItemName }).Distinct().OrderBy(x => x.MainItemCode).ToList();
DataTable table = new DataTable();
table.Columns.Add(new DataColumn("Id", typeof(String)));
table.Columns.Add(new DataColumn("Code", typeof(String)));
+ table.Columns.Add(new DataColumn("MainItemCode", typeof(String)));
+ table.Columns.Add(new DataColumn("MainItemName", typeof(String)));
+ table.Columns.Add(new DataColumn("MajorCode", typeof(String)));
+ table.Columns.Add(new DataColumn("MajorName", typeof(String)));
table.Columns.Add(new DataColumn("ProjectCode", typeof(String)));
table.Columns.Add(new DataColumn("ProjectName", typeof(String)));
table.Columns.Add(new DataColumn("UnitOfMeasurement", typeof(String)));
@@ -1054,7 +1058,7 @@ namespace BLL
row = table.NewRow();
row[0] = unitWork.MainItemCode;
row[1] = a;
- row[2] = string.Empty;
+ row[2] = unitWork.MainItemCode;
row[3] = unitWork.MainItemName;
table.Rows.Add(row);
int b = 1;
@@ -1064,84 +1068,186 @@ namespace BLL
row[0] = unitWork.MainItemCode + b.ToString();
row[1] = a + "." + b;
row[2] = string.Empty;
- row[3] = proName;
- table.Rows.Add(row);
- int c = 1;
- var contractTracks = getContractTracks.Where(x => x.MainItemCode == unitWork.MainItemCode && x.MajorName == proName);
- foreach (Model.PHTGL_ContractTrack item in contractTracks)
+ row[3] = string.Empty;
+ var pro = pros.FirstOrDefault(x => x.Value == proName);
+ if (pro != null)
{
- row = table.NewRow();
- row[0] = item.Id;
- row[1] = a + "." + b + "." + c;
- row[2] = item.ProjectCode;
- row[3] = item.ProjectName;
- row[4] = item.UnitOfMeasurement;
- row[7] = item.Id;
- if (workEfficiencys.Count() > 0)
+ row[4] = pro.Text;
+ }
+ row[5] = proName;
+ table.Rows.Add(row);
+ var subProjects = (from x in getContractTracks
+ where x.MainItemCode == unitWork.MainItemCode && x.MajorName == proName && x.SubProject != null
+ select x.SubProject).Distinct().ToList();
+ if (subProjects.Count == 0) //未填分部工程
+ {
+ int c = 1;
+ var contractTracks = getContractTracks.Where(x => x.MainItemCode == unitWork.MainItemCode && x.MajorName == proName).OrderBy(x => x.SerialNumber);
+ foreach (Model.PHTGL_ContractTrack item in contractTracks)
{
- var we = (from x in workEfficiencys
- where x.ContractTrackId == item.Id
- select new { x.ConstructionLogId, x.ContractTrackId, x.PhysicalCompletionQuantity, x.MaterialConsumption }).Distinct().ToList();
- decimal physicalCompletionQuantity = 0, materialConsumption = 0;
- if (we.Count() > 0)
+ row = table.NewRow();
+ row[0] = item.Id;
+ row[1] = a + "." + b + "." + c;
+ row[6] = item.ProjectCode;
+ row[7] = item.ProjectName;
+ row[8] = item.UnitOfMeasurement;
+ row[11] = item.Id;
+ if (workEfficiencys.Count() > 0)
{
- foreach (var w in we)
+ var we = (from x in workEfficiencys
+ where x.ContractTrackId == item.Id
+ select new { x.ConstructionLogId, x.ContractTrackId, x.PhysicalCompletionQuantity, x.MaterialConsumption }).Distinct().ToList();
+ decimal physicalCompletionQuantity = 0, materialConsumption = 0;
+ if (we.Count() > 0)
{
- physicalCompletionQuantity += w.PhysicalCompletionQuantity ?? 0;
- materialConsumption += w.MaterialConsumption ?? 0;
- }
- row[5] = physicalCompletionQuantity;
- row[6] = materialConsumption;
- }
- for (int i = 0; i < workPostIds.Count; i++)
- {
- var workEfficiencyList = workEfficiencys.Where(x => x.Type == "Person" && x.TypeId == workPostIds[i] && x.ContractTrackId == item.Id);
- if (workEfficiencyList.Count() > 0)
- {
- decimal d = 0;
- foreach (var workEfficiency in workEfficiencyList)
+ foreach (var w in we)
{
- if (workEfficiency.ConsumeHours != null)
+ physicalCompletionQuantity += w.PhysicalCompletionQuantity ?? 0;
+ materialConsumption += w.MaterialConsumption ?? 0;
+ }
+ row[9] = physicalCompletionQuantity;
+ row[10] = materialConsumption;
+ }
+ for (int i = 0; i < workPostIds.Count; i++)
+ {
+ var workEfficiencyList = workEfficiencys.Where(x => x.Type == "Person" && x.TypeId == workPostIds[i] && x.ContractTrackId == item.Id);
+ if (workEfficiencyList.Count() > 0)
+ {
+ decimal d = 0;
+ foreach (var workEfficiency in workEfficiencyList)
{
- d += decimal.Round(Convert.ToDecimal(workEfficiency.ConsumeHours), 2);
+ if (workEfficiency.ConsumeHours != null)
+ {
+ d += decimal.Round(Convert.ToDecimal(workEfficiency.ConsumeHours), 2);
+ }
+ }
+ if (d > 0)
+ {
+ row[12 + i * 2] = decimal.Round(d, 2);
+ if (physicalCompletionQuantity > 0)
+ {
+ row[13 + i * 2] = decimal.Round(Convert.ToDecimal(physicalCompletionQuantity / d), 2);
+ }
}
}
- if (d > 0)
+ }
+ for (int i = 0; i < machineIds.Count; i++)
+ {
+ var workEfficiencyList = workEfficiencys.Where(x => x.Type == "Machine" && x.TypeId == machineIds[i] && x.ContractTrackId == item.Id);
+ if (workEfficiencyList.Count() > 0)
{
- row[8 + i * 2] = decimal.Round(d, 2);
- if (physicalCompletionQuantity > 0)
+ decimal d = 0;
+ foreach (var workEfficiency in workEfficiencyList)
{
- row[9 + i * 2] = decimal.Round(Convert.ToDecimal(physicalCompletionQuantity / d), 2);
- }
- }
- }
- }
- for (int i = 0; i < machineIds.Count; i++)
- {
- var workEfficiencyList = workEfficiencys.Where(x => x.Type == "Machine" && x.TypeId == machineIds[i] && x.ContractTrackId == item.Id);
- if (workEfficiencyList.Count() > 0)
- {
- decimal d = 0;
- foreach (var workEfficiency in workEfficiencyList)
- {
- if (workEfficiency.ConsumeHours != null)
- {
- d += decimal.Round(Convert.ToDecimal(workEfficiency.ConsumeHours), 2);
- }
- }
- if (d > 0)
- {
- row[48 + i * 2] = decimal.Round(d, 2);
- if (physicalCompletionQuantity > 0)
- {
- row[49 + i * 2] = decimal.Round(Convert.ToDecimal(physicalCompletionQuantity / d), 2);
+ if (workEfficiency.ConsumeHours != null)
+ {
+ d += decimal.Round(Convert.ToDecimal(workEfficiency.ConsumeHours), 2);
+ }
+ }
+ if (d > 0)
+ {
+ row[52 + i * 2] = decimal.Round(d, 2);
+ if (physicalCompletionQuantity > 0)
+ {
+ row[53 + i * 2] = decimal.Round(Convert.ToDecimal(physicalCompletionQuantity / d), 2);
+ }
}
}
}
}
+ table.Rows.Add(row);
+ c++;
+ }
+ }
+ else //存在分部工程
+ {
+ int c = 1;
+ foreach (var subProject in subProjects)
+ {
+ row = table.NewRow();
+ row[0] = unitWork.MainItemCode + b.ToString() + c.ToString();
+ row[1] = a + "." + b + "." + c;
+ row[7] = subProject;
+ table.Rows.Add(row);
+ int f = 1;
+ var contractTracks = getContractTracks.Where(x => x.MainItemCode == unitWork.MainItemCode && x.MajorName == proName && x.SubProject == subProject).OrderBy(x => x.SerialNumber);
+ foreach (Model.PHTGL_ContractTrack item in contractTracks)
+ {
+ row = table.NewRow();
+ row[0] = item.Id;
+ row[1] = a + "." + b + "." + c + "." + f;
+ row[6] = item.ProjectCode;
+ row[7] = item.ProjectName;
+ row[8] = item.UnitOfMeasurement;
+ row[11] = item.Id;
+ if (workEfficiencys.Count() > 0)
+ {
+ var we = (from x in workEfficiencys
+ where x.ContractTrackId == item.Id
+ select new { x.ConstructionLogId, x.ContractTrackId, x.PhysicalCompletionQuantity, x.MaterialConsumption }).Distinct().ToList();
+ decimal physicalCompletionQuantity = 0, materialConsumption = 0;
+ if (we.Count() > 0)
+ {
+ foreach (var w in we)
+ {
+ physicalCompletionQuantity += w.PhysicalCompletionQuantity ?? 0;
+ materialConsumption += w.MaterialConsumption ?? 0;
+ }
+ row[9] = physicalCompletionQuantity;
+ row[10] = materialConsumption;
+ }
+ for (int i = 0; i < workPostIds.Count; i++)
+ {
+ var workEfficiencyList = workEfficiencys.Where(x => x.Type == "Person" && x.TypeId == workPostIds[i] && x.ContractTrackId == item.Id);
+ if (workEfficiencyList.Count() > 0)
+ {
+ decimal d = 0;
+ foreach (var workEfficiency in workEfficiencyList)
+ {
+ if (workEfficiency.ConsumeHours != null)
+ {
+ d += decimal.Round(Convert.ToDecimal(workEfficiency.ConsumeHours), 2);
+ }
+ }
+ if (d > 0)
+ {
+ row[12 + i * 2] = decimal.Round(d, 2);
+ if (physicalCompletionQuantity > 0)
+ {
+ row[13 + i * 2] = decimal.Round(Convert.ToDecimal(physicalCompletionQuantity / d), 2);
+ }
+ }
+ }
+ }
+ for (int i = 0; i < machineIds.Count; i++)
+ {
+ var workEfficiencyList = workEfficiencys.Where(x => x.Type == "Machine" && x.TypeId == machineIds[i] && x.ContractTrackId == item.Id);
+ if (workEfficiencyList.Count() > 0)
+ {
+ decimal d = 0;
+ foreach (var workEfficiency in workEfficiencyList)
+ {
+ if (workEfficiency.ConsumeHours != null)
+ {
+ d += decimal.Round(Convert.ToDecimal(workEfficiency.ConsumeHours), 2);
+ }
+ }
+ if (d > 0)
+ {
+ row[52 + i * 2] = decimal.Round(d, 2);
+ if (physicalCompletionQuantity > 0)
+ {
+ row[53 + i * 2] = decimal.Round(Convert.ToDecimal(physicalCompletionQuantity / d), 2);
+ }
+ }
+ }
+ }
+ }
+ table.Rows.Add(row);
+ f++;
+ }
+ c++;
}
- table.Rows.Add(row);
- c++;
}
b++;
}
diff --git a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackComparison.aspx b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackComparison.aspx
index 18568252..8ec0b75c 100644
--- a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackComparison.aspx
+++ b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackComparison.aspx
@@ -107,7 +107,7 @@
+ FieldType="String" HeaderText="子分部工程" TextAlign="Left" HeaderTextAlign="Center">
@@ -141,13 +141,13 @@
+ FieldType="String" HeaderText="全费用固定综合单价(元)" TextAlign="Left" HeaderTextAlign="Center" EnableColumnEdit="False">
+ FieldType="String" HeaderText="其中:主材费(元)" TextAlign="Left" HeaderTextAlign="Center">
diff --git a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackList.aspx b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackList.aspx
index 6ddfd618..1e221109 100644
--- a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackList.aspx
+++ b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackList.aspx
@@ -111,7 +111,7 @@
+ FieldType="String" HeaderText="子分部工程" TextAlign="Left" HeaderTextAlign="Center">
diff --git a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractWBS.aspx b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractWBS.aspx
index e4974a14..34f26861 100644
--- a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractWBS.aspx
+++ b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractWBS.aspx
@@ -105,7 +105,7 @@
+ FieldType="String" HeaderText="子分部工程" TextAlign="Left" HeaderTextAlign="Center">
diff --git a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractWBS.aspx.cs b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractWBS.aspx.cs
index bb75b6f2..64686ba1 100644
--- a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractWBS.aspx.cs
+++ b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractWBS.aspx.cs
@@ -176,7 +176,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
- object[] ID = Grid1.DataKeys[Grid1.SelectedRowIndex];
+ string ID = Grid1.SelectedRow.DataKeys[0].ToString();
var model = BLL.PhtglContractTrackService.GetPHTGL_ContractTrackById(ID[0].ToString());
if (model != null) ///已上报时不能删除
{
diff --git a/SGGL/FineUIPro.Web/PZHGL/InformationProject/ConstructionLogWorkEfficiency.aspx b/SGGL/FineUIPro.Web/PZHGL/InformationProject/ConstructionLogWorkEfficiency.aspx
index e44234cc..d8463909 100644
--- a/SGGL/FineUIPro.Web/PZHGL/InformationProject/ConstructionLogWorkEfficiency.aspx
+++ b/SGGL/FineUIPro.Web/PZHGL/InformationProject/ConstructionLogWorkEfficiency.aspx
@@ -40,13 +40,13 @@
-
-
-
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/PZHGL/InformationProject/MonthConstructionLogWorkEfficiencySum.aspx b/SGGL/FineUIPro.Web/PZHGL/InformationProject/MonthConstructionLogWorkEfficiencySum.aspx
index e92cd227..461cd6d0 100644
--- a/SGGL/FineUIPro.Web/PZHGL/InformationProject/MonthConstructionLogWorkEfficiencySum.aspx
+++ b/SGGL/FineUIPro.Web/PZHGL/InformationProject/MonthConstructionLogWorkEfficiencySum.aspx
@@ -44,6 +44,18 @@
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/PZHGL/InformationProject/ProjectConstructionLogWorkEfficiency.aspx b/SGGL/FineUIPro.Web/PZHGL/InformationProject/ProjectConstructionLogWorkEfficiency.aspx
index 5b63028d..ad6e8801 100644
--- a/SGGL/FineUIPro.Web/PZHGL/InformationProject/ProjectConstructionLogWorkEfficiency.aspx
+++ b/SGGL/FineUIPro.Web/PZHGL/InformationProject/ProjectConstructionLogWorkEfficiency.aspx
@@ -37,13 +37,13 @@
-
-