提交代码

This commit is contained in:
2023-10-18 09:40:57 +08:00
parent 5a9ebc9ade
commit 0352efa746
16 changed files with 997 additions and 21 deletions
@@ -483,6 +483,7 @@ namespace BLL
proNames.Add(pro.Value);
}
}
proNames = proNames.Distinct().ToList();
IQueryable<Model.PHTGL_ContractTrack> getContractTracks = from x in db.PHTGL_ContractTrack
where x.ProjectId == projectId && contractNoList.Contains(x.ContractId) && proNames.Contains(x.MajorName)
orderby x.ProjectCode, x.ProjectName
@@ -682,6 +683,226 @@ namespace BLL
return table;
}
}
/// <summary>
/// 获取模拟树表格
/// </summary>
/// <returns></returns>
public static DataTable GetMonthProjectAllTreeDataTable(string projectId, string IsOut, List<string> contractNoList, List<string> professionalList, List<string> workPostIds, List<string> machineIds, DateTime startDate, DateTime endDate)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
var pros = BLL.PHTGL_QuantityService.GetMajorItems();
List<string> proNames = new List<string>();
foreach (var item in professionalList)
{
var pro = pros.FirstOrDefault(x => x.Text == item);
if (pro != null)
{
proNames.Add(pro.Value);
}
}
proNames = proNames.Distinct().ToList();
IQueryable<Model.PHTGL_ContractTrack> getContractTracks = from x in db.PHTGL_ContractTrack
where x.ProjectId == projectId && contractNoList.Contains(x.ContractId) && proNames.Contains(x.MajorName)
orderby x.ProjectCode, x.ProjectName
select x;
var personLogIds = (from x in db.ZHGL_ConstructionLog
where x.ProjectId == projectId && x.CompileDate >= startDate && x.CompileDate < endDate
orderby x.CompileDate descending
select x.ConstructionLogId).ToList();
IQueryable<Model.ZHGL_ConstructionLogWorkEfficiency> workEfficiencys = from x in db.ZHGL_ConstructionLogWorkEfficiency
where personLogIds.Contains(x.ConstructionLogId)
select x;
var unitWorks = (from x in getContractTracks
select new { MainItemCode = x.MainItemCode, MainItemName = x.MainItemName }).Distinct().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("ProjectCode", typeof(String)));
table.Columns.Add(new DataColumn("ProjectName", typeof(String)));
table.Columns.Add(new DataColumn("UnitOfMeasurement", typeof(String)));
table.Columns.Add(new DataColumn("PhysicalCompletionQuantity", typeof(String)));
table.Columns.Add(new DataColumn("MaterialConsumption", typeof(String)));
table.Columns.Add(new DataColumn("ShowId", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours0", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency0", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours1", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency1", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours2", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency2", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours3", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency3", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours4", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency4", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours5", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency5", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours6", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency6", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours7", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency7", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours8", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency8", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours9", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency9", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours10", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency10", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours11", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency11", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours12", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency12", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours13", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency13", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours14", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency14", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours15", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency15", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours16", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency16", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours17", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency17", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours18", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency18", typeof(String)));
table.Columns.Add(new DataColumn("PersonConsumeHours19", typeof(String)));
table.Columns.Add(new DataColumn("PersonWorkEfficiency19", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours0", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency0", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours1", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency1", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours2", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency2", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours3", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency3", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours4", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency4", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours5", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency5", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours6", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency6", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours7", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency7", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours8", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency8", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours9", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency9", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours10", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency10", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours11", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency11", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours12", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency12", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours13", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency13", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours14", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency14", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours15", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency15", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours16", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency16", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours17", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency17", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours18", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency18", typeof(String)));
table.Columns.Add(new DataColumn("MachineConsumeHours19", typeof(String)));
table.Columns.Add(new DataColumn("MachineWorkEfficiency19", typeof(String)));
DataRow row;
int a = 1;
foreach (var unitWork in unitWorks)
{
row = table.NewRow();
row[0] = unitWork.MainItemCode;
row[1] = a;
row[2] = string.Empty;
row[3] = unitWork.MainItemName;
table.Rows.Add(row);
int b = 1;
foreach (var proName in proNames)
{
row = table.NewRow();
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 = 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)
{
var we = workEfficiencys.FirstOrDefault(x => x.ContractTrackId == item.Id);
if (we != null)
{
row[5] = we.PhysicalCompletionQuantity;
row[6] = we.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[8 + i * 2] = decimal.Round(d, 2);
if (we.PhysicalCompletionQuantity != null && we.PhysicalCompletionQuantity > 0)
{
row[9 + i * 2] = decimal.Round(Convert.ToDecimal(we.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 (we.PhysicalCompletionQuantity != null && we.PhysicalCompletionQuantity > 0)
{
row[49 + i * 2] = decimal.Round(Convert.ToDecimal(we.PhysicalCompletionQuantity / d), 2);
}
}
}
}
}
table.Rows.Add(row);
c++;
}
b++;
}
a++;
}
return table;
}
}
}
public class PHTGL_ContractTrackDtoIn
{