质量大屏

This commit is contained in:
卢江海
2025-03-27 20:31:00 +08:00
parent 7c730550d0
commit 6ef5a5f189
2 changed files with 37 additions and 1 deletions

View File

@@ -40,15 +40,25 @@ namespace DOAN.Service.MES.SmartScreen.Quality
.AddHours(23)
.AddMinutes(59)
.AddSeconds(59);
var response = Queryable().ToList();
List<ProWorkorder> proWorkorders = Context.Queryable<ProWorkorder>().ToList();
List<ProWorkorder> proWorkordersMonth = proWorkorders.Where(o=>o.WorkorderDate>= firstDayOfMonth&& o.WorkorderDate<= lastDayOfMonth).ToList();
List<ProWorkorder> proWorkordersWeek = proWorkorders.Where(o => o.WorkorderDate >= startOfWeek && o.WorkorderDate <= endOfWeek).ToList();
List<ProWorkorder> proWorkordersUpperMonth = proWorkorders.Where(o => o.WorkorderDate >= firstDayOfMonth.AddMonths(-1) && o.WorkorderDate <= lastDayOfMonth.AddMonths(-1)).ToList();
List<ProWorkorder> proWorkordersUpperWeek = proWorkorders.Where(o => o.WorkorderDate >= startOfWeek.AddDays(-7) && o.WorkorderDate <= endOfWeek.AddDays(-7)).ToList();
qualityScreenHeadDto.MonthFQC = response.Where(o => o.CheckDatetime >= firstDayOfMonth && o.CheckDatetime <= lastDayOfMonth).Sum(o => o.Number);
qualityScreenHeadDto.WeekFQC = response.Where(o => o.CheckDatetime >= startOfWeek && o.CheckDatetime <= endOfWeek).Sum(o => o.Number);
int? UpperMonthFQC = response.Where(o => o.CheckDatetime >= firstDayOfMonth.AddMonths(-1) && o.CheckDatetime <= lastDayOfMonth.AddMonths(-1)).Sum(o => o.Number);
int? UpperWeekFQC = response.Where(o => o.CheckDatetime >= startOfWeek.AddDays(-7) && o.CheckDatetime <= endOfWeek.AddDays(-7)).Sum(o => o.Number);
double planSumMonth =Convert.ToDouble(proWorkordersMonth.Sum(o => o.PlanNum));
double numeratorMonth = planSumMonth - (double)qualityScreenHeadDto.MonthFQC;
double ratioMonth = numeratorMonth / (double)planSumMonth;
@@ -61,6 +71,20 @@ namespace DOAN.Service.MES.SmartScreen.Quality
string percentageWeek = ratioWeek.ToString("P2");
qualityScreenHeadDto.WeekPassRate= percentageWeek;
double planSumUpperMonth = Convert.ToDouble(proWorkordersUpperMonth.Sum(o => o.PlanNum));
double numeratorUpperMonth = planSumUpperMonth - (double)qualityScreenHeadDto.MonthFQC;
double ratioUpperMonth = numeratorUpperMonth / (double)planSumUpperMonth;
//string percentageUpperMonth = ratioUpperMonth.ToString("P2");
//qualityScreenHeadDto.MonthPassRate = percentageMonth;
double planSumUpperWeek = Convert.ToDouble(proWorkordersUpperWeek.Sum(o => o.PlanNum));
double numeratorUpperWeek = planSumUpperWeek - (double)qualityScreenHeadDto.WeekFQC;
double ratioUpperWeek = numeratorUpperWeek / (double)planSumUpperWeek;
//string percentageWeek = ratioWeek.ToString("P2");
//qualityScreenHeadDto.WeekPassRate = percentageWeek;
qualityScreenHeadDto.OnYearMonthPassRate = (ratioMonth - ratioUpperMonth).ToString("P2");
qualityScreenHeadDto.OnYearWeekPassRate = (ratioWeek - ratioUpperWeek).ToString("P2");
return qualityScreenHeadDto;
}
@@ -243,7 +267,15 @@ namespace DOAN.Service.MES.SmartScreen.Quality
decimal passnum = plannum - nopassnum;
EchartsSeriesData echartsSeriesData = new EchartsSeriesData();
echartsSeriesData.Name = dateitem.ToString("MM-dd");
echartsSeriesData.Value = passnum/ plannum;
if (plannum==0)
{
echartsSeriesData.Value =0;
}
else
{
echartsSeriesData.Value = passnum / plannum;
}
echartsSeriesDatas.Add(echartsSeriesData);
}