示例#1
0
        /// <summary>
        /// 月度计划统计图
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public MonthPlanReportModel GetMonthPlanReport(HomeRequest request)
        {
            var retData   = new MonthPlanReportModel();
            var monthList = GetPlanDataList(request);

            if (!monthList.Any())
            {
                return(retData);
            }
            List <string> demandNumList = monthList.Select(p => p.DemandPlanCode).ToList();
            var           bpn           = monthList.Where(p => p.BatchPlanNum != null).Select(p => p.BatchPlanNum).Distinct().ToList();

            demandNumList.AddRange(bpn);
            var batchList = GetBatchNeedList(request, demandNumList);

            if (batchList.Any())
            {
                monthList.ForEach(x =>
                {
                    var batchWeight = batchList.Where(p => p.DemandPlanCode == x.DemandPlanCode || p.DemandPlanCode == x.BatchPlanNum).Sum(p => p.TotalWeight);
                    x.BatchWeight   = batchWeight;
                });
            }
            retData = GetMonthPlanLab(monthList);
            return(retData);
        }
示例#2
0
        private MonthPlanReportModel GetMonthPlanLab(List <PlanDataModel> monthList)
        {
            var retData = new MonthPlanReportModel();

            if (!monthList.Any())
            {
                return(retData);
            }
            retData.TotalCount = monthList.GroupBy(p => p.WorkAreaCode).Count();
            //计划不足
            retData.TooFewCount = monthList.Where(p => p.RetWeight < 0 && (p.RetWeight < -(p.TotalWeight * ((decimal)0.1)))).GroupBy(p => p.WorkAreaCode).Count();
            //计划过多
            retData.TooMuchCount = monthList.Where(p => p.BatchWeight > 0 && p.RetWeight > 0 && (p.RetWeight > (p.TotalWeight * ((decimal)0.1)))).GroupBy(p => p.WorkAreaCode).Count();
            //计划合理
            //retData.EqualCount = monthList.Count(p => p.RetWeight <= (p.TotalWeight * ((decimal)0.1)) || p.RetWeight >= -(p.TotalWeight * ((decimal)0.1)));
            //超时未提交
            retData.OverTime = monthList.Where(p => p.InsertTime.Day > 19).GroupBy(p => p.WorkAreaCode).Count();
            retData.pCode    = monthList[0].BranchCode;
            return(retData);
        }