1
This commit is contained in:
@@ -62,7 +62,7 @@ namespace FineUIPro.Web.common
|
||||
string hsseZGRate = "0";
|
||||
double generalRectificationRate = 0;
|
||||
|
||||
if (hsseData.GeneralClosedNum.HasValue && hsseData.GeneralNotClosedNum.HasValue)
|
||||
if (hsseData.GeneralClosedNum.HasValue && hsseData.GeneralClosedNum > 0 && hsseData.GeneralNotClosedNum.HasValue)
|
||||
{
|
||||
double total = hsseData.GeneralClosedNum.Value + hsseData.GeneralNotClosedNum.Value;
|
||||
if (total > 0)
|
||||
@@ -130,12 +130,12 @@ namespace FineUIPro.Web.common
|
||||
int inspectionPersonIsCheckOk = inspectionPersonList.Where(x => x.IsOnSite.HasValue && x.IsOnSite == true).Count();
|
||||
int inspectionMachineIsCheckOk = inspectionMachineList.Where(x => x.IsCheckOK.HasValue && x.IsCheckOK == true).Count();
|
||||
|
||||
double inspectionEquipmentRate = inspectionEquipmentIsCheckOk > 0 ? Math.Round((100 * (double)(inspectionEquipmentIsCheckOk / inspectionEquipment)), 2) : 0;
|
||||
double inspectionPersonRate = inspectionPersonIsCheckOk > 0 ? Math.Round((100 * (double)(inspectionPersonIsCheckOk / inspectionPerson)), 2) : 0;
|
||||
double inspectionMachineRate = inspectionMachineIsCheckOk > 0 ? Math.Round((100 * (double)(inspectionMachineIsCheckOk / inspectionMachine)), 2) : 0;
|
||||
double inspectionEquipmentRate = inspectionEquipmentIsCheckOk > 0 && inspectionEquipment > 0 ? Math.Round((100 * (double)(inspectionEquipmentIsCheckOk / inspectionEquipment)), 2) : 0;
|
||||
double inspectionPersonRate = inspectionPersonIsCheckOk > 0 && inspectionPerson > 0 ? Math.Round((100 * (double)(inspectionPersonIsCheckOk / inspectionPerson)), 2) : 0;
|
||||
double inspectionMachineRate = inspectionMachineIsCheckOk > 0 && inspectionMachine > 0 ? Math.Round((100 * (double)(inspectionMachineIsCheckOk / inspectionMachine)), 2) : 0;
|
||||
|
||||
string cqmsZGRate = "0";
|
||||
if (cqmsData.ProblemNum.HasValue && cqmsData.ProblemCompletedNum.HasValue)
|
||||
if (cqmsData.ProblemNum.HasValue && cqmsData.ProblemNum > 0 && cqmsData.ProblemCompletedNum.HasValue && cqmsData.ProblemCompletedNum > 0)
|
||||
{
|
||||
cqmsZGRate = String.Format("{0:N2}", 100 * cqmsData.ProblemCompletedNum.Value / cqmsData.ProblemNum.Value);
|
||||
}
|
||||
@@ -147,18 +147,18 @@ namespace FineUIPro.Web.common
|
||||
#region 质量验收数据
|
||||
|
||||
//关键工序合格率
|
||||
double keyProcessRate = cqmsData.KeyProcessOKNum > 0 ? Math.Round(100 * ((double)cqmsData.KeyProcessOKNum / (double)cqmsData.KeyProcessNum), 2) : 0;
|
||||
double keyProcessRate = cqmsData.KeyProcessOKNum > 0 && cqmsData.KeyProcessNum > 0 ? Math.Round(100 * ((double)cqmsData.KeyProcessOKNum / (double)cqmsData.KeyProcessNum), 2) : 0;
|
||||
//特殊工程合格率
|
||||
double specialProcessRate = cqmsData.SpecialProcessOKNum > 0 ? Math.Round(100 * ((double)cqmsData.SpecialProcessOKNum / (double)cqmsData.SpecialProcessNum), 2) : 0;
|
||||
double specialProcessRate = cqmsData.SpecialProcessOKNum > 0 && cqmsData.SpecialProcessNum > 0 ? Math.Round(100 * ((double)cqmsData.SpecialProcessOKNum / (double)cqmsData.SpecialProcessNum), 2) : 0;
|
||||
//隐蔽工程合格率
|
||||
double concealedWorksRate = cqmsData.ConcealedWorksOKNum > 0 ? Math.Round(100 * ((double)cqmsData.ConcealedWorksOKNum / (double)cqmsData.ConcealedWorksNum), 2) : 0;
|
||||
double concealedWorksRate = cqmsData.ConcealedWorksOKNum > 0 && cqmsData.ConcealedWorksNum > 0 ? Math.Round(100 * ((double)cqmsData.ConcealedWorksOKNum / (double)cqmsData.ConcealedWorksNum), 2) : 0;
|
||||
|
||||
//单位工程合格率
|
||||
double unitProjecProcessRate = cqmsData.UnitProjectAcceptNum > 0 ? Math.Round(100 * ((double)cqmsData.UnitProjectAcceptOKNum / (double)cqmsData.UnitProjectAcceptNum), 2) : 0;
|
||||
double unitProjecProcessRate = cqmsData.UnitProjectAcceptNum > 0 && cqmsData.UnitProjectAcceptNum > 0 ? Math.Round(100 * ((double)cqmsData.UnitProjectAcceptOKNum / (double)cqmsData.UnitProjectAcceptNum), 2) : 0;
|
||||
//分部工程合格率
|
||||
double subProjectProcessRate = cqmsData.SubProjectAcceptOKNum > 0 ? Math.Round(100 * ((double)cqmsData.SubProjectAcceptOKNum / (double)cqmsData.SubProjectAcceptNum), 2) : 0;
|
||||
double subProjectProcessRate = cqmsData.SubProjectAcceptOKNum > 0 && cqmsData.SubProjectAcceptNum > 0 ? Math.Round(100 * ((double)cqmsData.SubProjectAcceptOKNum / (double)cqmsData.SubProjectAcceptNum), 2) : 0;
|
||||
//分项工程合格率
|
||||
double subdivisionalWorksRate = cqmsData.SubdivisionalWorksAcceptOKNum > 0 ? Math.Round(100 * ((double)cqmsData.SubdivisionalWorksAcceptOKNum / (double)cqmsData.SubdivisionalWorksAcceptNum), 2) : 0;
|
||||
double subdivisionalWorksRate = cqmsData.SubdivisionalWorksAcceptOKNum > 0 && cqmsData.SubdivisionalWorksAcceptNum > 0 ? Math.Round(100 * ((double)cqmsData.SubdivisionalWorksAcceptOKNum / (double)cqmsData.SubdivisionalWorksAcceptNum), 2) : 0;
|
||||
|
||||
//验收数
|
||||
List<int> checkAccepts = new List<int>();
|
||||
@@ -206,43 +206,43 @@ namespace FineUIPro.Web.common
|
||||
#region 累计人工时
|
||||
//累计人工时
|
||||
var allProjectsDetails = (from detail in db.SitePerson_DayReportDetail
|
||||
join report in db.SitePerson_DayReport
|
||||
on detail.DayReportId equals report.DayReportId
|
||||
join unit in db.Base_Unit
|
||||
on detail.UnitId equals unit.UnitId
|
||||
join project in db.Base_Project
|
||||
on report.ProjectId equals project.ProjectId
|
||||
where BaseDataService.BeUnderConstructionList.Contains(report.ProjectId) &&
|
||||
report.CompileDate == (from r in db.SitePerson_DayReport
|
||||
where r.ProjectId == report.ProjectId
|
||||
select r.CompileDate).Max()
|
||||
orderby project.ShortName, unit.UnitCode
|
||||
select new
|
||||
{
|
||||
detail.DayReportDetailId,
|
||||
report.ProjectId,
|
||||
ProjectName = project.ShortName,
|
||||
unit.UnitName,
|
||||
detail.PersonWorkTime,
|
||||
// 当年累计
|
||||
YearPersonWorkTime = (from d in db.SitePerson_DayReportDetail
|
||||
join r in db.SitePerson_DayReport on d.DayReportId equals r.DayReportId
|
||||
where r.ProjectId == report.ProjectId
|
||||
&& d.UnitId == detail.UnitId
|
||||
&& r.CompileDate <= report.CompileDate
|
||||
&& r.CompileDate.Value.Year == report.CompileDate.Value.Year
|
||||
select d.PersonWorkTime ?? 0).Sum(),
|
||||
// 总累计
|
||||
TotalPersonWorkTime = (from d in db.SitePerson_DayReportDetail
|
||||
join r in db.SitePerson_DayReport on d.DayReportId equals r.DayReportId
|
||||
where r.ProjectId == report.ProjectId
|
||||
&& d.UnitId == detail.UnitId
|
||||
&& r.CompileDate <= report.CompileDate
|
||||
select d.PersonWorkTime ?? 0).Sum()
|
||||
}).ToList();
|
||||
join report in db.SitePerson_DayReport
|
||||
on detail.DayReportId equals report.DayReportId
|
||||
join unit in db.Base_Unit
|
||||
on detail.UnitId equals unit.UnitId
|
||||
join project in db.Base_Project
|
||||
on report.ProjectId equals project.ProjectId
|
||||
where BaseDataService.BeUnderConstructionList.Contains(report.ProjectId) &&
|
||||
report.CompileDate == (from r in db.SitePerson_DayReport
|
||||
where r.ProjectId == report.ProjectId
|
||||
select r.CompileDate).Max()
|
||||
orderby project.ShortName, unit.UnitCode
|
||||
select new
|
||||
{
|
||||
detail.DayReportDetailId,
|
||||
report.ProjectId,
|
||||
ProjectName = project.ShortName,
|
||||
unit.UnitName,
|
||||
detail.PersonWorkTime,
|
||||
// 当年累计
|
||||
YearPersonWorkTime = (from d in db.SitePerson_DayReportDetail
|
||||
join r in db.SitePerson_DayReport on d.DayReportId equals r.DayReportId
|
||||
where r.ProjectId == report.ProjectId
|
||||
&& d.UnitId == detail.UnitId
|
||||
&& r.CompileDate <= report.CompileDate
|
||||
&& r.CompileDate.Value.Year == report.CompileDate.Value.Year
|
||||
select d.PersonWorkTime ?? 0).Sum(),
|
||||
// 总累计
|
||||
TotalPersonWorkTime = (from d in db.SitePerson_DayReportDetail
|
||||
join r in db.SitePerson_DayReport on d.DayReportId equals r.DayReportId
|
||||
where r.ProjectId == report.ProjectId
|
||||
&& d.UnitId == detail.UnitId
|
||||
&& r.CompileDate <= report.CompileDate
|
||||
select d.PersonWorkTime ?? 0).Sum()
|
||||
}).ToList();
|
||||
// 计算所有项目累计人工时总和
|
||||
var totalManHour = allProjectsDetails.Sum(x => x.TotalPersonWorkTime);
|
||||
|
||||
|
||||
#endregion
|
||||
// 构造返回数据
|
||||
var returnData = new
|
||||
|
||||
Reference in New Issue
Block a user