1、项目级看板补充月计划完成情况和周计划完成情况
This commit is contained in:
@@ -107,6 +107,8 @@ namespace FineUIPro.Web.common
|
||||
|
||||
var treeTask = GetTreeAsync();
|
||||
var personTask = GetPersonAsync();
|
||||
var weekJdtjTask = GetWeekJDAsync();
|
||||
var monthJdtjTask = GetMonthJDAsync();
|
||||
var otherTasks = new List<Task>
|
||||
{
|
||||
BindSafetyStatisticsAsync(), // 安全统计模块
|
||||
@@ -150,6 +152,9 @@ namespace FineUIPro.Web.common
|
||||
|
||||
Tree = await treeTask;
|
||||
Person = await personTask;
|
||||
|
||||
WeekJdtjHtml = await weekJdtjTask;
|
||||
MonthJdtjHtml = await monthJdtjTask;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -466,9 +471,10 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetCompletedNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId);
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -478,9 +484,10 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetConstructionNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = Project_HSSEData_HSSEService.GetConstructionNum(ProjectId);
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = Project_HSSEData_HSSEService.GetConstructionNum(ProjectId);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -489,15 +496,16 @@ namespace FineUIPro.Web.common
|
||||
/// </summary>
|
||||
protected async Task<int> getEarlyWarningCounts()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
int allCount = 0;
|
||||
var getPersonQualitys = from x in Funs.DB.QualityAudit_PersonQuality
|
||||
join y in Funs.DB.SitePerson_Person on x.PersonId equals y.PersonId
|
||||
where x.LimitDate.HasValue && x.LimitDate < DateTime.Now && y.ProjectId == ProjectId
|
||||
select x;
|
||||
//// 预警人数
|
||||
allCount = getPersonQualitys.Count();
|
||||
return allCount;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
int allCount = 0;
|
||||
var getPersonQualitys = from x in Funs.DB.QualityAudit_PersonQuality
|
||||
join y in Funs.DB.SitePerson_Person on x.PersonId equals y.PersonId
|
||||
where x.LimitDate.HasValue && x.LimitDate < DateTime.Now && y.ProjectId == ProjectId
|
||||
select x;
|
||||
//// 预警人数
|
||||
allCount = getPersonQualitys.Count();
|
||||
return allCount;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -507,9 +515,10 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetFinishedNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId);
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -519,17 +528,18 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetJxyjNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
int result = 0;
|
||||
//机具报验的到期提醒和过期提醒记录数加一起
|
||||
////机具报验的到期提醒数
|
||||
//var num1 = Funs.DB.Comprehensive_InspectionMachine.Where(x => x.IsOnSite == true && DateTime.Now < x.NextTestDate && x.ProjectId == ProjectId
|
||||
// && ((DateTime)x.NextTestDate).AddDays(-15) < DateTime.Now).Count();
|
||||
//过期提醒记录数
|
||||
var num2 = Funs.DB.Comprehensive_InspectionMachine.Where(x => x.IsOnSite == true && x.NextTestDate < DateTime.Now && x.ProjectId == ProjectId).Count();
|
||||
//result = num1 + num2;
|
||||
result = num2;
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
int result = 0;
|
||||
//机具报验的到期提醒和过期提醒记录数加一起
|
||||
////机具报验的到期提醒数
|
||||
//var num1 = Funs.DB.Comprehensive_InspectionMachine.Where(x => x.IsOnSite == true && DateTime.Now < x.NextTestDate && x.ProjectId == ProjectId
|
||||
// && ((DateTime)x.NextTestDate).AddDays(-15) < DateTime.Now).Count();
|
||||
//过期提醒记录数
|
||||
var num2 = Funs.DB.Comprehensive_InspectionMachine.Where(x => x.IsOnSite == true && x.NextTestDate < DateTime.Now && x.ProjectId == ProjectId).Count();
|
||||
//result = num1 + num2;
|
||||
result = num2;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -539,9 +549,10 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetSuperCompletedNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId);
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -551,9 +562,10 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetSuperConstructionNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = Project_HSSEData_HSSEService.GetSuperConstructionNum(ProjectId);
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = Project_HSSEData_HSSEService.GetSuperConstructionNum(ProjectId);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -563,9 +575,10 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetSuperFinishedNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId);
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -575,9 +588,10 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetSuperTrainPersonNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = Project_HSSEData_HSSEService.GetSuperTrainPersonNum(ProjectId);
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = Project_HSSEData_HSSEService.GetSuperTrainPersonNum(ProjectId);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -587,9 +601,10 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> GetTrainPersonNum()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = Project_HSSEData_HSSEService.GetTrainPersonNum(ProjectId);
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = Project_HSSEData_HSSEService.GetTrainPersonNum(ProjectId);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -663,7 +678,7 @@ namespace FineUIPro.Web.common
|
||||
protected int WrokCount0;
|
||||
protected int WrokCount1;
|
||||
protected int WrokCount2;
|
||||
protected int WrokCount3;
|
||||
protected int WrokCount3;
|
||||
protected async Task getWork()
|
||||
{
|
||||
|
||||
@@ -675,7 +690,7 @@ namespace FineUIPro.Web.common
|
||||
var WrokCount1 = getWrokCount1();
|
||||
var WrokCount2 = getWrokCount2();
|
||||
var WrokCount3 = getWrokCount3();
|
||||
await Task.WhenAll( AllWrokCount0, AllWrokCount1, AllWrokCount2, AllWrokCount3, WrokCount0, WrokCount1, WrokCount2, WrokCount3);
|
||||
await Task.WhenAll(AllWrokCount0, AllWrokCount1, AllWrokCount2, AllWrokCount3, WrokCount0, WrokCount1, WrokCount2, WrokCount3);
|
||||
this.AllWrokCount0 = await AllWrokCount0;
|
||||
this.AllWrokCount1 = await AllWrokCount1;
|
||||
this.AllWrokCount2 = await AllWrokCount2;
|
||||
@@ -690,18 +705,18 @@ namespace FineUIPro.Web.common
|
||||
{
|
||||
var query = from lm in Funs.DB.License_LicenseManager
|
||||
|
||||
join lt in Funs.DB.Base_LicenseType on lm.LicenseTypeId equals lt.LicenseTypeId into ltJoin
|
||||
from licenseType in ltJoin.DefaultIfEmpty()
|
||||
|
||||
select new LicenseDto
|
||||
{
|
||||
ProjectId= lm.ProjectId,
|
||||
LicenseTypeName = licenseType.LicenseTypeName ?? "",
|
||||
WorkStatesStr = lm.WorkStates == "1" ? "待开工" :
|
||||
lm.WorkStates == "2" ? "作业中" :
|
||||
lm.WorkStates == "3" ? "已关闭" :
|
||||
lm.WorkStates == "-1" ? "已取消" : ""
|
||||
};
|
||||
join lt in Funs.DB.Base_LicenseType on lm.LicenseTypeId equals lt.LicenseTypeId into ltJoin
|
||||
from licenseType in ltJoin.DefaultIfEmpty()
|
||||
|
||||
select new LicenseDto
|
||||
{
|
||||
ProjectId = lm.ProjectId,
|
||||
LicenseTypeName = licenseType.LicenseTypeName ?? "",
|
||||
WorkStatesStr = lm.WorkStates == "1" ? "待开工" :
|
||||
lm.WorkStates == "2" ? "作业中" :
|
||||
lm.WorkStates == "3" ? "已关闭" :
|
||||
lm.WorkStates == "-1" ? "已取消" : ""
|
||||
};
|
||||
return query;
|
||||
}
|
||||
protected async Task<int> getAllCount()
|
||||
@@ -709,38 +724,42 @@ namespace FineUIPro.Web.common
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId).ToList().Count;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected async Task<int> getALLWrokCount0()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
protected async Task<int> getALLWrokCount1()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证").ToList().Count;
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
protected async Task<int> getALLWrokCount2()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证").ToList().Count;
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
protected async Task<int> getALLWrokCount3()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId
|
||||
&& x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证").ToList().Count;
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId
|
||||
&& x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -755,31 +774,35 @@ namespace FineUIPro.Web.common
|
||||
/// <returns></returns>
|
||||
protected async Task<int> getWrokCount0()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
protected async Task<int> getWrokCount1()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
protected async Task<int> getWrokCount2()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
protected async Task<int> getWrokCount3()
|
||||
{
|
||||
return await Task.Run(() => {
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId
|
||||
&& x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
|
||||
return result;
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId
|
||||
&& x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
#endregion 作业许可
|
||||
@@ -1118,6 +1141,7 @@ namespace FineUIPro.Web.common
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected async Task<string> GetTreeAsync()
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
@@ -1159,6 +1183,134 @@ namespace FineUIPro.Web.common
|
||||
|
||||
#endregion 赢得值曲线
|
||||
|
||||
#region 进度统计
|
||||
|
||||
protected string WeekJdtjHtml;
|
||||
//protected string WeekJdtjHead = "<div class=\"th-p\" >序号</div><div class=\"th-p\" >单位</div><div class=\"th-p\"><p>上周完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div><div class=\"th-p\"><p>累计完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div>";
|
||||
protected string WeekJdtjHead = "<div class=\"th-p\" >单位</div><div class=\"th-p\"><p>上周完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div><div class=\"th-p\"><p>累计完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div>";
|
||||
|
||||
protected string MonthJdtjHtml;
|
||||
//protected string MonthJdtjHead = "<div class=\"th-p\">序号</div><div class=\"th-p\">单位</div><div class=\"th-p\"><p>上月完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div><div class=\"th-p\"><p>累计完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div>";
|
||||
protected string MonthJdtjHead = "<div class=\"th-p\">单位</div><div class=\"th-p\"><p>上月完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div><div class=\"th-p\"><p>累计完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div>";
|
||||
|
||||
/// <summary>
|
||||
/// 周进度完成情况
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task<string> GetWeekJDAsync()
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
string weekGridHtml = string.Empty;
|
||||
//获取当前时间所在周信息
|
||||
var lastWeek = WeekPlanService.GetLastWeekPlan(this.CurrUser.LoginProjectId);
|
||||
////根据当前时间获取上一个周计划信息
|
||||
//var lastWeekItem = WeekItemService.GetWeekItemByDateNow(this.CurrUser.LoginProjectId);
|
||||
if (lastWeek != null)
|
||||
{
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
//1、获取本项目周进度计划中所有责任单位Id
|
||||
var units = (from x in db.JDGL_WeekPlan
|
||||
join y in db.Base_Unit on x.UnitId equals y.UnitId
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId && x.EndDate <= lastWeek.EndDate
|
||||
orderby x.UnitId
|
||||
select new { x.UnitId, y.UnitName }).Distinct().ToList();
|
||||
//2、获取当前项目指定周所有计划
|
||||
var allWeekPlans = (from x in db.JDGL_WeekPlan
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == lastWeek.WeekNo
|
||||
orderby x.UnitId
|
||||
select x).ToList();
|
||||
//3、获取当前项目所有周计划
|
||||
var allPlans = (from x in db.JDGL_WeekPlan
|
||||
join y in db.Base_Unit on x.UnitId equals y.UnitId
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId && x.EndDate <= lastWeek.EndDate
|
||||
orderby x.UnitId
|
||||
select x).ToList();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int index = 1;
|
||||
foreach (var unit in units)
|
||||
{
|
||||
double weekPlanNum = allWeekPlans.Where(x => x.UnitId == unit.UnitId).Count();
|
||||
double weekPlanOkNum = allWeekPlans.Where(x => x.UnitId == unit.UnitId && x.IsOK == true).Count();
|
||||
double weekRate = weekPlanNum > 0 ? Math.Round((weekPlanOkNum / weekPlanNum) * 100, 2) : 0;
|
||||
double allWeekPlanNum = allPlans.Where(x => x.UnitId == unit.UnitId).Count();
|
||||
double allWeekPlanOkNum = allPlans.Where(x => x.UnitId == unit.UnitId && x.IsOK == true).Count();
|
||||
double allWeekRate = allWeekPlanNum > 0 ? Math.Round((allWeekPlanOkNum / allWeekPlanNum) * 100, 2) : 0;
|
||||
sb.Append("<div class=\"row\">");
|
||||
//sb.Append($"<div class=\"tr\" >{index}</div>");
|
||||
sb.Append($"<div class=\"tr\" >{unit.UnitName}</div>");
|
||||
sb.Append($"<div class=\"tr\" ><p><span>{weekPlanNum}</span><span>{weekPlanOkNum}</span><span>{weekRate}%</span></p></div>");
|
||||
sb.Append($"<div class=\"tr\" ><p><span>{allWeekPlanNum}</span><span>{allWeekPlanOkNum}</span><span>{allWeekRate}%</span></p></div>");
|
||||
sb.Append("</div>");
|
||||
index++;
|
||||
}
|
||||
weekGridHtml = sb.ToString();
|
||||
}
|
||||
return weekGridHtml;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 月进度完成情况
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task<string> GetMonthJDAsync()
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
string monthGridHtml = string.Empty;
|
||||
//统计月份信息
|
||||
DateTime months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-01");
|
||||
if (DateTime.Now.Day < 26)
|
||||
{
|
||||
months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.AddMonths(-1).Month.ToString() + "-01");
|
||||
}
|
||||
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
//1、获取本项目月进度计划中所有责任单位Id
|
||||
var units = (from x in db.JDGL_MonthPlan
|
||||
join y in db.Base_Unit on x.UnitId equals y.UnitId
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId && x.Months <= months
|
||||
orderby x.UnitId
|
||||
select new { x.UnitId, y.UnitName }).Distinct().ToList();
|
||||
//2、获取当前项目指定月所有计划
|
||||
var allMonthPlans = (from x in db.JDGL_MonthPlan
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId && x.Months == months
|
||||
orderby x.UnitId
|
||||
select x).ToList();
|
||||
//3、获取当前项目所有月计划
|
||||
var allPlans = (from x in db.JDGL_MonthPlan
|
||||
join y in db.Base_Unit on x.UnitId equals y.UnitId
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId && x.Months <= months
|
||||
orderby x.UnitId
|
||||
select x).ToList();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int index = 1;
|
||||
foreach (var unit in units)
|
||||
{
|
||||
double monthPlanNum = allMonthPlans.Where(x => x.UnitId == unit.UnitId).Count();
|
||||
double monthPlanOkNum = allMonthPlans.Where(x => x.UnitId == unit.UnitId && x.RealDate != null).Count();
|
||||
double monthRate = monthPlanNum > 0 ? Math.Round((monthPlanOkNum / monthPlanNum) * 100, 2) : 0;
|
||||
double allMonthPlanNum = allPlans.Where(x => x.UnitId == unit.UnitId).Count();
|
||||
double allMonthPlanOkNum = allPlans.Where(x => x.UnitId == unit.UnitId && x.RealDate != null).Count();
|
||||
double allMonthRate = allMonthPlanNum > 0 ? Math.Round((allMonthPlanOkNum / allMonthPlanNum) * 100, 2) : 0;
|
||||
sb.Append("<div class=\"row\">");
|
||||
//sb.Append($"<div class=\"tr\" >{index}</div>");
|
||||
sb.Append($"<div class=\"tr\" >{unit.UnitName}</div>");
|
||||
sb.Append($"<div class=\"tr\" ><p><span>{monthPlanNum}</span><span>{monthPlanOkNum}</span><span>{monthRate}%</span></p></div>");
|
||||
sb.Append($"<div class=\"tr\" ><p><span>{allMonthPlanNum}</span><span>{allMonthPlanOkNum}</span><span>{allMonthRate}%</span></p></div>");
|
||||
sb.Append("</div>");
|
||||
index++;
|
||||
}
|
||||
monthGridHtml = sb.ToString();
|
||||
return monthGridHtml;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 人力情况
|
||||
|
||||
protected string Person
|
||||
@@ -1277,20 +1429,20 @@ namespace FineUIPro.Web.common
|
||||
+ "</div>";
|
||||
}*/
|
||||
var result = (from x in Funs.DB.License_LicenseManager
|
||||
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId into units
|
||||
from unit in units.DefaultIfEmpty()
|
||||
join z in Funs.DB.WBS_UnitWork on x.WorkAreaId equals z.UnitWorkId into areas
|
||||
from area in areas.DefaultIfEmpty()
|
||||
join w in Funs.DB.Base_LicenseType on x.LicenseTypeId equals w.LicenseTypeId
|
||||
where x.ProjectId == ProjectId
|
||||
select new
|
||||
{
|
||||
x.LicenseManagerCode,
|
||||
WorkAreaName=area.UnitWorkName,
|
||||
w.LicenseTypeName,
|
||||
x.IsHighRisk,
|
||||
unit.ShortUnitName
|
||||
})
|
||||
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId into units
|
||||
from unit in units.DefaultIfEmpty()
|
||||
join z in Funs.DB.WBS_UnitWork on x.WorkAreaId equals z.UnitWorkId into areas
|
||||
from area in areas.DefaultIfEmpty()
|
||||
join w in Funs.DB.Base_LicenseType on x.LicenseTypeId equals w.LicenseTypeId
|
||||
where x.ProjectId == ProjectId
|
||||
select new
|
||||
{
|
||||
x.LicenseManagerCode,
|
||||
WorkAreaName = area.UnitWorkName,
|
||||
w.LicenseTypeName,
|
||||
x.IsHighRisk,
|
||||
unit.ShortUnitName
|
||||
})
|
||||
.AsEnumerable() // 后续操作在内存中进行
|
||||
.Select(x => new
|
||||
{
|
||||
@@ -1299,7 +1451,7 @@ namespace FineUIPro.Web.common
|
||||
x.LicenseTypeName,
|
||||
GfxType = x.IsHighRisk == true ? "风险作业" : "非高风险",
|
||||
ShortUnitName = x.ShortUnitName ?? ""
|
||||
}).ToList();
|
||||
}).ToList();
|
||||
var sb = new StringBuilder();
|
||||
foreach (var item in result)
|
||||
{
|
||||
@@ -1507,7 +1659,7 @@ namespace FineUIPro.Web.common
|
||||
//总计
|
||||
//计划值
|
||||
//累计计划值
|
||||
//累计实际值
|
||||
//累计实际值
|
||||
|
||||
private async Task getCNEN()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user