提交代码

This commit is contained in:
高飞 2023-10-25 14:07:29 +08:00
parent 4081eac5ed
commit ac817b3cdd
9 changed files with 206 additions and 76 deletions

View File

@ -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++;
}

View File

@ -107,7 +107,7 @@
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="SubItemProject" DataField="SubItemProject" SortField="SubItemProject" EnableColumnEdit="False"
FieldType="String" HeaderText="分项工程" TextAlign="Left" HeaderTextAlign="Center">
FieldType="String" HeaderText="子分部工程" TextAlign="Left" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox7" runat="server" Required="true"></f:TextBox>
</Editor>
@ -141,13 +141,13 @@
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="TotalCostFixedComprehensiveUnitPrice" DataField="TotalCostFixedComprehensiveUnitPrice" SortField="TotalCostFixedComprehensiveUnitPrice"
FieldType="String" HeaderText="全费用固定综合单价" TextAlign="Left" HeaderTextAlign="Center" EnableColumnEdit="False">
FieldType="String" HeaderText="全费用固定综合单价(元)" TextAlign="Left" HeaderTextAlign="Center" EnableColumnEdit="False">
<Editor>
<f:TextBox ID="TextBox12" runat="server" Required="true"></f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="MainMaterialCost" DataField="MainMaterialCost" SortField="MainMaterialCost" EnableColumnEdit="False"
FieldType="String" HeaderText="主材费" TextAlign="Left" HeaderTextAlign="Center">
FieldType="String" HeaderText="其中:主材费(元)" TextAlign="Left" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox13" runat="server" Required="true"></f:TextBox>
</Editor>

View File

@ -111,7 +111,7 @@
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="SubItemProject" DataField="SubItemProject" SortField="SubItemProject"
FieldType="String" HeaderText="分项工程" TextAlign="Left" HeaderTextAlign="Center">
FieldType="String" HeaderText="子分部工程" TextAlign="Left" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox7" runat="server" Required="true"></f:TextBox>
</Editor>

View File

@ -105,7 +105,7 @@
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="SubItemProject" DataField="SubItemProject" SortField="SubItemProject" EnableColumnEdit="False"
FieldType="String" HeaderText="分项工程" TextAlign="Left" HeaderTextAlign="Center">
FieldType="String" HeaderText="子分部工程" TextAlign="Left" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox7" runat="server" Required="true"></f:TextBox>
</Editor>

View File

@ -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) ///已上报时不能删除
{

View File

@ -40,13 +40,13 @@
<f:RenderField Width="75px" ColumnID="Code" DataField="Code" FieldType="String" EnableLock="true" Locked="true"
HeaderText="序号" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MainItemCode" DataField="MainItemCode" SortField="MainItemCode" EnableLock="true" Locked="true"
<f:RenderField Width="65px" ColumnID="MainItemCode" DataField="MainItemCode" SortField="MainItemCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="主项号" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MainItemName" DataField="MainItemName" SortField="MainItemName" EnableLock="true" Locked="true"
FieldType="String" HeaderText="主项名称" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MajorCode" DataField="MajorCode" SortField="MajorCode" EnableLock="true" Locked="true"
<f:RenderField Width="60px" ColumnID="MajorCode" DataField="MajorCode" SortField="MajorCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="专业代码" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MajorName" DataField="MajorName" SortField="MajorName" EnableLock="true" Locked="true"

View File

@ -35,9 +35,21 @@
</f:Toolbar>
</Toolbars>
<Columns>
<f:RenderField Width="60px" ColumnID="Code" DataField="Code" FieldType="String" EnableLock="true" Locked="true"
<f:RenderField Width="75px" ColumnID="Code" DataField="Code" FieldType="String" EnableLock="true" Locked="true"
HeaderText="序号" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="65px" ColumnID="MainItemCode" DataField="MainItemCode" SortField="MainItemCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="主项号" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MainItemName" DataField="MainItemName" SortField="MainItemName" EnableLock="true" Locked="true"
FieldType="String" HeaderText="主项名称" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="60px" ColumnID="MajorCode" DataField="MajorCode" SortField="MajorCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="专业代码" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MajorName" DataField="MajorName" SortField="MajorName" EnableLock="true" Locked="true"
FieldType="String" HeaderText="专业工程名称" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="ProjectCode" DataField="ProjectCode" SortField="ProjectCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="项目编码" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>

View File

@ -44,6 +44,18 @@
<f:RenderField Width="60px" ColumnID="Code" DataField="Code" FieldType="String" EnableLock="true" Locked="true"
HeaderText="序号" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="65px" ColumnID="MainItemCode" DataField="MainItemCode" SortField="MainItemCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="主项号" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MainItemName" DataField="MainItemName" SortField="MainItemName" EnableLock="true" Locked="true"
FieldType="String" HeaderText="主项名称" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="60px" ColumnID="MajorCode" DataField="MajorCode" SortField="MajorCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="专业代码" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MajorName" DataField="MajorName" SortField="MajorName" EnableLock="true" Locked="true"
FieldType="String" HeaderText="专业工程名称" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="ProjectCode" DataField="ProjectCode" SortField="ProjectCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="项目编码" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>

View File

@ -37,13 +37,13 @@
<f:RenderField Width="75px" ColumnID="Code" DataField="Code" FieldType="String" EnableLock="true" Locked="true"
HeaderText="序号" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MainItemCode" DataField="MainItemCode" SortField="MainItemCode" EnableLock="true" Locked="true"
<f:RenderField Width="65" ColumnID="MainItemCode" DataField="MainItemCode" SortField="MainItemCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="主项号" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MainItemName" DataField="MainItemName" SortField="MainItemName" EnableLock="true" Locked="true"
FieldType="String" HeaderText="主项名称" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MajorCode" DataField="MajorCode" SortField="MajorCode" EnableLock="true" Locked="true"
<f:RenderField Width="60px" ColumnID="MajorCode" DataField="MajorCode" SortField="MajorCode" EnableLock="true" Locked="true"
FieldType="String" HeaderText="专业代码" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MajorName" DataField="MajorName" SortField="MajorName" EnableLock="true" Locked="true"