| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | 
							- using SqlSugar;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using wms.sqlsugar.model.sx;
 
- using WMS.BZModels;
 
- using WMS.BZModels.Dto;
 
- using WMS.BZSqlSugar;
 
- namespace WMS.BZServices.SX
 
- {
 
-     public class AdminDesktopHomeService
 
-     {
 
-         private readonly Repository<WCS_TaskOld> _wcstaskoldrepository;
 
-         private readonly Repository<BillInvnow> _billInvnowrepository;
 
-         public AdminDesktopHomeService(Repository<WCS_TaskOld> wcstaskoldrepository, Repository<BillInvnow> billInvnowrepository)
 
-         {
 
-             _wcstaskoldrepository = wcstaskoldrepository;
 
-             _billInvnowrepository = billInvnowrepository;
 
-         }
 
-         /// <summary>
 
-         /// 今日出入库统计
 
-         /// </summary>
 
-         public TodayTaskInOutPieDto GetTodayTaskInOutPie(DateTime todaystart, DateTime todayend)
 
-         {
 
-             TodayTaskInOutPieDto todayTaskInOutPieDto = new TodayTaskInOutPieDto();
 
-             var valuenames = new List<ValueName<int>>();
 
-             var lists = TaskInOutQueryable(todaystart, todayend).ToList();
 
-             foreach (var item in BZModels.Extensions.EnumToList<TaskType>().Where(o => new int[] { 2, 1, 3 }.Contains(o.id)))
 
-             {
 
-                 var task = lists.FirstOrDefault(o => o.Type == item.id);
 
-                 if (task != null)
 
-                 {
 
-                     valuenames.Add(new ValueName<int>() { Value = task.Count, Name = item.text });
 
-                     todayTaskInOutPieDto.Total += task.Count;
 
-                 }
 
-                 else
 
-                 {
 
-                     valuenames.Add(new ValueName<int>() { Value = 0, Name = item.text });
 
-                 }
 
-             }
 
-             todayTaskInOutPieDto.Tasks = valuenames;
 
-             return todayTaskInOutPieDto;
 
-         }
 
-         /// <summary>
 
-         /// 近七天任务动态
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         public Models Get7daysTaskBar(DateTime start, DateTime end)
 
-         {
 
-             Models models = new Models() { Series = new List<Series>() };
 
-             var lists = TaskInOutQueryable(start, end).ToList();
 
-             models.XAxis = new string[7]; //lists.OrderBy(o => o.CreateTime).Select(o => o.CreateTime.ToString("M-dd")).Distinct().ToArray();
 
-             int[] Outints = new int[7];
 
-             int[] EnterDepots = new int[7];
 
-             int[] TransferDepots = new int[7];
 
-             for (int i = 0; i < (end - start).TotalDays; i++)
 
-             {
 
-                 var date = start.AddDays(i);
 
-                 models.XAxis[i] = date.ToString("M-d");
 
-                 Outints[i] = lists.OrderBy(o => o.CreateTime).Where(o => o.Type == (int)TaskType.OutDepot && o.CreateTime.Date == date.Date).Select(o => o.Count).FirstOrDefault(0);
 
-                 EnterDepots[i] = lists.OrderBy(o => o.CreateTime).Where(o => o.Type == (int)TaskType.EnterDepot && o.CreateTime.Date == date.Date).Select(o => o.Count).FirstOrDefault(0);
 
-                 TransferDepots[i] = lists.OrderBy(o => o.CreateTime).Where(o => o.Type == (int)TaskType.TransferDepot && o.CreateTime.Date == date.Date).Select(o => o.Count).FirstOrDefault(0);
 
-             }
 
-             models.Series.Add(new Series { Name = "出库", Data = Outints });
 
-             models.Series.Add(new Series { Name = "入库", Data = EnterDepots });
 
-             models.Series.Add(new Series { Name = "移库", Data = TransferDepots });
 
-             return models;
 
-         }
 
-         public ISugarQueryable<TaskInOutDto> TaskInOutQueryable(DateTime? start, DateTime? end)
 
-         {
 
-             var predicate = Expressionable.Create<WCS_TaskOld>();
 
-             predicate = predicate.And(m => m.Status == (int)BZModels.TaskStatus.Finish);
 
-             predicate = predicate.AndIF(start.HasValue && start.Value != DateTime.MinValue, m => m.EditTime >= start.Value.Date);
 
-             predicate = predicate.AndIF(end.HasValue && end.Value != DateTime.MinValue, m => m.EditTime <= DateTime.Parse(end.Value.Date.ToString("yyyy-MM-dd") + " 23:59:59"));
 
-             var sugarQueryable = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).SplitTable(tabs => tabs.Take(3))
 
-                  .Select(it => new
 
-                  {
 
-                      Type = it.Type,
 
-                      CreateTime = it.EditTime.Date
 
-                  })
 
-                  .MergeTable()//将查询结果转成一个表
 
-                  .GroupBy(o => new { o.Type, o.CreateTime })
 
-                  .Select(it => new TaskInOutDto { Count = SqlFunc.AggregateCount(it.Type), Type = it.Type, CreateTime = it.CreateTime });
 
-             return sugarQueryable;
 
-         }
 
-         /// <summary>
 
-         /// 24小时内任务动态
 
-         /// </summary>
 
-         /// <param name="start"></param>
 
-         /// <param name="end"></param>
 
-         /// <returns></returns>
 
-         public Models GettodaysHourTask(DateTime start, DateTime end)
 
-         {
 
-             Models models = new Models() { Series = new List<Series>() };
 
-             var predicate = Expressionable.Create<WCS_TaskOld>();
 
-             predicate = predicate.And(m => m.Status == (int)BZModels.TaskStatus.Finish);
 
-             predicate = predicate.AndIF(start != DateTime.MinValue, m => m.EditTime >= start.Date);
 
-             predicate = predicate.AndIF(end != DateTime.MinValue, m => m.EditTime <= DateTime.Parse(end.Date.ToString("yyyy-MM-dd") + " 23:59:59"));
 
-             var sugarQueryable = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).SplitTable(tabs => tabs.Take(3))
 
-                  .Select(it => new
 
-                  {
 
-                      Type = it.Type,
 
-                      Hour = it.EditTime.Hour
 
-                  })
 
-                  .MergeTable()//将查询结果转成一个表
 
-                  .GroupBy(o => new { o.Type, o.Hour })
 
-                  .Select(it => new TaskInOutDto { Count = SqlFunc.AggregateCount(it.Type), Type = it.Type, Hour = it.Hour });
 
-             var lists = sugarQueryable.ToList();
 
-             models.XAxis = new string[24]; //lists.OrderBy(o => o.Hour).Select(o => o.Hour.ToString()).Distinct().ToArray();
 
-             int[] Outints = new int[24];
 
-             int[] EnterDepots = new int[24];
 
-             int[] TransferDepots = new int[24];
 
-             //for (int i = 0; i < models.XAxis.Length; i++)
 
-             //{
 
-             //    var Outqty = lists.Where(o => o.Type == (int)TaskType.OutDepot && o.Hour.ToString() == models.XAxis[i]).Select(o => o.Count).FirstOrDefault(0);
 
-             //    Outints[i] = Outqty;
 
-             //    var EnterDepotqty = lists.Where(o => o.Type == (int)TaskType.EnterDepot && o.Hour.ToString() == models.XAxis[i]).Select(o => o.Count).FirstOrDefault(0);
 
-             //    EnterDepots[i] = EnterDepotqty;
 
-             //    var TransferDepotqty = lists.Where(o => o.Type == (int)TaskType.TransferDepot && o.Hour.ToString() == models.XAxis[i]).Select(o => o.Count).FirstOrDefault(0);
 
-             //    TransferDepots[i] = TransferDepotqty;
 
-             //}
 
-             for (int i = 0; i < 24; i++)
 
-             {
 
-                 models.XAxis[i] = i.ToString();
 
-                 var Outqty = lists.Where(o => o.Type == (int)TaskType.OutDepot && o.Hour == i).Select(o => o.Count).FirstOrDefault(0);
 
-                 Outints[i] = Outqty;
 
-                 var EnterDepotqty = lists.Where(o => o.Type == (int)TaskType.EnterDepot && o.Hour == i).Select(o => o.Count).FirstOrDefault(0);
 
-                 EnterDepots[i] = EnterDepotqty;
 
-                 var TransferDepotqty = lists.Where(o => o.Type == (int)TaskType.TransferDepot && o.Hour == i).Select(o => o.Count).FirstOrDefault(0);
 
-                 TransferDepots[i] = TransferDepotqty;
 
-             }
 
-             models.Series.Add(new Series { Name = "出库", Data = Outints });
 
-             models.Series.Add(new Series { Name = "入库", Data = EnterDepots });
 
-             models.Series.Add(new Series { Name = "移库", Data = TransferDepots });
 
-             return models;
 
-         }
 
-         public List<ValueName<decimal>> GetMatWeightCategory()
 
-         {
 
-             var valuenames = new List<ValueName<decimal>>();
 
-             var lists = _billInvnowrepository.Queryable()
 
-                .Select(it => new
 
-                {
 
-                    matname = it.MatName,
 
-                    tolwqty = SqlFunc.AggregateSum(it.TolWQty)
 
-                })
 
-                .GroupBy(o => o.matname).OrderByDescending(o => o.tolwqty).ToList();
 
-             decimal total = 0;
 
-             for (int i = 0; i < lists.Count; i++)
 
-             {
 
-                 if (i < 5)
 
-                 {
 
-                     valuenames.Add(new ValueName<decimal> { Value = lists[i].tolwqty, Name = lists[i].matname });
 
-                 }
 
-                 else
 
-                 {
 
-                     total += lists[i].tolwqty;
 
-                 }
 
-             }
 
-             valuenames.Add(new ValueName<decimal> { Value = total, Name = "其他" });
 
-             return valuenames;
 
-         }
 
-     }
 
- }
 
 
  |