//// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
|
////
|
//// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
|
////
|
//// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
|
//using Admin.NET.Application.Entity;
|
//using Admin.NET.Application.Service.ReportCenter.WmsOtherReport.Dto;
|
//using System;
|
//using System.Collections.Generic;
|
//using System.Linq;
|
//using System.Text;
|
//using System.Threading.Tasks;
|
//using static SKIT.FlurlHttpClient.Wechat.Api.Models.SemanticSemproxySearchResponse.Types;
|
|
//namespace Admin.NET.Application;
|
///// <summary>
|
///// 工作台服务
|
///// </summary>
|
//[ApiDescriptionSettings(ApplicationConst.HomePageName, Order = 100)]
|
|
//public class WmsHomePageService : IDynamicApiController, ITransient
|
//{
|
// private readonly SqlSugarRepository<WmsOrderMovement> _rep;
|
// private readonly SqlSugarRepository<WmsStockQuan> _WmsStockQuanRep;
|
// private readonly SqlSugarRepository<WmsOrderMovementDetails> _WmsOrderMovementDetailsRep;
|
// private readonly SqlSugarRepository<V_WmsOrderMovementDetails> _v_wmsOrderMovementDetailsRep;
|
// private readonly SqlSugarRepository<WmsBaseCustomer> _BaseCustomerRep;
|
// private readonly SqlSugarRepository<WmsBaseMaterial> _wmsMaterialRep;
|
// private readonly SqlSugarRepository<WmsConfigNoRule> _WmsNoCreateRuleRep;
|
// private readonly SqlSugarRepository<WmsConfigSerialSN> _repSNRep;
|
// private readonly SqlSugarRepository<WmsConfigSerialRule> _repRuleDetailRep;
|
// private readonly SqlSugarRepository<WmsOrderDeliverDetails> _WmsOrderDeliverDetailsRep;
|
// private readonly SqlSugarRepository<WmsLogAction> _wareActionLogRep;
|
// private readonly WmsStockQuanService _wmsStockQuanService;
|
// private readonly SqlSugarRepository<WmsBaseBusinessType> _WmsBaseBusinessTypeRep;
|
// private readonly SqlSugarRepository<WmsBasePlace> _wmsPlaceRep;
|
// private readonly SqlSugarRepository<WmsBaseContainer> _wmsContainerRep;
|
// private readonly SqlSugarRepository<WmsContainerPlace> _wmsContainerPlace;
|
// private readonly SqlSugarRepository<v_wms_stock_quan> _v_wms_stock_quanRep;
|
// private readonly SqlSugarRepository<WmsOrderAsn> _wmsOrderAsnRep;
|
// private readonly SqlSugarRepository<WmsRecordReceivingDelivery> _wmsRecordReceivingDeliveryRep;
|
|
// public WmsHomePageService(
|
// SqlSugarRepository<WmsRecordReceivingDelivery> wmsRecordReceivingDeliveryRep,
|
// SqlSugarRepository<WmsOrderMovement> rep,
|
// SqlSugarRepository<WmsStockQuan> wmsStockQuanRep,
|
// SqlSugarRepository<WmsOrderMovementDetails> wmsOrderMovementDetailsRep,
|
// SqlSugarRepository<WmsBaseCustomer> baseCustomerRep,
|
// SqlSugarRepository<WmsBaseBusinessType> WmsBaseBusinessTypeRep,
|
// SqlSugarRepository<WmsConfigNoRule> wmsNoCreateRuleRep,
|
// SqlSugarRepository<WmsConfigSerialSN> repSNRep,
|
// SqlSugarRepository<WmsConfigSerialRule> repRuleDetailRep,
|
// SqlSugarRepository<WmsOrderDeliverDetails> WmsOrderDeliverDetailsRep
|
// , SqlSugarRepository<WmsLogAction> wareActionLogRep
|
//,
|
//WmsStockQuanService wmsStockQuanService,
|
//SqlSugarRepository<V_WmsOrderMovementDetails> v_wmsOrderMovementDetailsRep
|
// ,
|
// SqlSugarRepository<WmsBaseMaterial> WmsMaterial,
|
// SqlSugarRepository<WmsBaseBusinessType> WmsBaseBusinessType,
|
// SqlSugarRepository<WmsBasePlace> wmsPlaceRep,
|
// SqlSugarRepository<WmsBaseContainer> wmsContainerRep,
|
// SqlSugarRepository<WmsContainerPlace> wmsContainerPlace,
|
// SqlSugarRepository<v_wms_stock_quan> v_wms_stock_quanRep,
|
// SqlSugarRepository<WmsOrderAsn> wmsOrderAsnRep
|
|
// )
|
// {
|
// _wmsRecordReceivingDeliveryRep = wmsRecordReceivingDeliveryRep;
|
// _rep = rep;
|
// _WmsStockQuanRep = wmsStockQuanRep;
|
// _WmsOrderMovementDetailsRep = wmsOrderMovementDetailsRep;
|
// _BaseCustomerRep = baseCustomerRep;
|
// _WmsBaseBusinessTypeRep = WmsBaseBusinessTypeRep;
|
// _WmsNoCreateRuleRep = wmsNoCreateRuleRep;
|
// _repSNRep = repSNRep;
|
// _repRuleDetailRep = repRuleDetailRep;
|
// _WmsOrderDeliverDetailsRep = WmsOrderDeliverDetailsRep;
|
// _wareActionLogRep = wareActionLogRep;
|
// _wmsStockQuanService = wmsStockQuanService;
|
// _wmsMaterialRep = WmsMaterial;
|
// _WmsBaseBusinessTypeRep = WmsBaseBusinessType;
|
// _wmsPlaceRep = wmsPlaceRep;
|
// _wmsContainerRep = wmsContainerRep;
|
// _wmsContainerPlace = wmsContainerPlace;
|
// _v_wms_stock_quanRep = v_wms_stock_quanRep;
|
// _wmsOrderAsnRep = wmsOrderAsnRep;
|
// }
|
|
// /// <summary>
|
// /// 首页出入库数据查询
|
// /// </summary>
|
// /// <returns></returns>
|
// [HttpPost]
|
// [ApiDescriptionSettings(Name = "WmsHomePageQuery")]
|
// [Description("WmsHomePageService/WmsHomePageQuery")]
|
// public async Task<WmsHomePageOutput> WmsHomePageQuery()
|
// {
|
// var returnData = new WmsHomePageOutput();
|
// // 获取今天的日期
|
// DateTime today = DateTime.Today;
|
// var MovementOrderList = await _rep.AsQueryable().Where(u => u.CreateTime >= today && u.CreateTime < today.AddDays(1)).ToListAsync();
|
|
// returnData.OuttingPlaceNumber = MovementOrderList.Where(u => u.OrderType == OrderTypeEnum.下架单 && u.OrderStatus == OrderStatusEnum.已完成).ToList().Count();
|
// returnData.WarehousingNumber = MovementOrderList.Where(u => u.OrderType == OrderTypeEnum.上架单 && u.OrderStatus == OrderStatusEnum.已完成).ToList().Count();
|
// returnData.AllOuttingNumber = MovementOrderList.Where(u => u.OrderType == OrderTypeEnum.下架单 && u.OrderStatus != OrderStatusEnum.已关闭 && u.OrderStatus != OrderStatusEnum.已取消).ToList().Count();
|
// returnData.AllWarehousingNumber = MovementOrderList.Where(u => u.OrderType == OrderTypeEnum.上架单 && u.OrderStatus != OrderStatusEnum.已关闭 && u.OrderStatus != OrderStatusEnum.已取消).ToList().Count();
|
// returnData.AllOrderNumber = returnData.AllOuttingNumber + returnData.AllWarehousingNumber;
|
// return returnData;
|
// }
|
// /// <summary>
|
// /// 首页库位数据查询
|
// /// </summary>
|
// /// <returns></returns>
|
// [HttpPost]
|
// [ApiDescriptionSettings(Name = "WmsHomePlaceQuery")]
|
// [Description("WmsHomePageService/WmsHomePlaceQuery")]
|
// public async Task<WmsHomePagePlaceInfoOutput> WmsHomePlaceQuery()
|
// {
|
// var returnData = new WmsHomePagePlaceInfoOutput();
|
// var PlaceList = await _wmsPlaceRep.AsQueryable().Where(x => x.IsDelete == false && (x.IsVirtually == false || x.IsVirtually == null)).ToListAsync();
|
// var StockQueryList = await _v_wms_stock_quanRep.AsQueryable().ToListAsync();
|
// StockQueryList = StockQueryList.GroupBy(u => u.PlaceCode).Select(g => g.First()).ToList();//用库位号分组,去重
|
// returnData.ContainerPlaceNumber = StockQueryList.Where(p => p.MaterialTypeCode == ApplicationConst.DefaultContinerMaterialCode).ToList().Count();
|
// returnData.StockPlaceNumber = StockQueryList.Where(p => p.MaterialTypeCode != ApplicationConst.DefaultContinerMaterialCode).ToList().Count();
|
// returnData.EmptyPlaceNumber = PlaceList.Count - returnData.ContainerPlaceNumber - returnData.StockPlaceNumber;
|
// returnData.AllPlaceNumber = PlaceList.Count();
|
|
// returnData.EmptyPlacePercentage = $"{Math.Round((returnData.EmptyPlaceNumber / returnData.AllPlaceNumber), 4):P}";
|
// returnData.StockPlacePercentage = $"{Math.Round((returnData.StockPlaceNumber / returnData.AllPlaceNumber), 4):P}";
|
// returnData.ContainerPlacePercentage = $"{Math.Round((returnData.ContainerPlaceNumber / returnData.AllPlaceNumber), 4):P}";
|
|
// return returnData;
|
|
// }
|
|
// ///// <summary>
|
// ///// 最近7天收发货推移图
|
// ///// </summary>
|
// ///// <returns></returns>
|
// //[HttpPost]
|
// //[ApiDescriptionSettings(Name = "WmsTransitionDiagramQuery")]
|
// //[Description("WmsHomePageService/WmsTransitionDiagramQuery")]
|
// //public async Task<List<WmsTransitionDiagram>> WmsTransitionDiagramQuery()
|
// //{
|
// // // 获取当前时间
|
// // DateTime currentDate = DateTime.Now;
|
|
// // //DateTime lastWeekDay = currentDate.AddDays(-(int)currentDate.DayOfWeek - 3).Date;
|
// // //DateTime thisWeekDay = currentDate.AddDays(7 - (int)currentDate.DayOfWeek - 3).Date;
|
// // // 计算七天前的日期
|
// // DateTime lastWeekDay = currentDate.AddDays(-7).Date;
|
|
// // // 当前日期的前一天作为结束日期
|
// // DateTime thisWeekDay = currentDate.AddDays(+1).Date;
|
// // var WmsTransitionDiagramList = new List<WmsTransitionDiagram>();
|
// // var NewEmptyTransitionDiagramList = new List<WmsOrderAsn>();
|
// // var query = await _wmsOrderAsnRep.AsQueryable().Where(u => u.CreateTime >= lastWeekDay && u.CreateTime <= thisWeekDay).ToListAsync();
|
// // foreach (var item in query)
|
// // {
|
// // if (item.CreateTime == null) { NewEmptyTransitionDiagramList.Add(item); continue; }
|
// // item.CreateTime = new DateTime(item.CreateTime?.Year ?? 1999, item.CreateTime?.Month ?? 1, item.CreateTime?.Day ?? 1);
|
// // }
|
|
// // query.RemoveAll(n => NewEmptyTransitionDiagramList.Select(x => x.Id).Contains(n.Id));
|
// // // 使用 LINQ 的 GroupBy 方法,按照创建时间的日期分组
|
// // var groupedData = query.GroupBy(u => u.CreateTime)
|
// // .Select(group => new TransitionDiagramData
|
// // {
|
// // Date = (DateTime)group.Key,
|
// // DataListCount = group.Count()
|
// // }).ToList();
|
// // if (groupedData.Count(p => p.Date >= currentDate.Date) == 0)
|
// // {
|
// // var todayInfo = new TransitionDiagramData()
|
// // {
|
// // Date = currentDate.Date,
|
// // DataListCount = 0
|
// // };
|
// // groupedData.Add(todayInfo);
|
// // }
|
|
// // foreach (var item in groupedData)
|
// // {
|
// // var model = new WmsTransitionDiagram()
|
// // {
|
// // Day = item.Date.ToString("yyyy-MM-dd"),
|
// // ReceiptNumber = item.DataListCount
|
// // };
|
// // WmsTransitionDiagramList.Add(model);
|
// // }
|
// // return WmsTransitionDiagramList;
|
// //}
|
|
|
// /// <summary>
|
// /// 最近7天收发货推移图
|
// /// </summary>
|
// /// <param name="input"></param>
|
// /// <returns></returns>
|
// [HttpPost]
|
// [ApiDescriptionSettings(Name = "WmsTransitionDiagramQuery")]
|
// [Description("WmsHomePageService/WmsTransitionDiagramQuery")]
|
// public async Task<List<WmsTransitionDiagram>> WmsTransitionDiagramQuery()
|
// {
|
|
// List<WmsTransitionDiagram> outputlist = new List<WmsTransitionDiagram>();
|
// DateTime currentDate = DateTime.Today.AddDays(1);
|
// DateTime firstDate = DateTime.Today.AddDays(-6);
|
// // 查询在这一天内的出入库记录
|
// var recordsOfDay = await _wmsRecordReceivingDeliveryRep.AsQueryable().Where(r => r.CreateTime >= firstDate && r.CreateTime <= currentDate).ToListAsync();
|
|
|
// for (int i = 1; i < 8; i++)
|
// {
|
// DateTime startDate = currentDate.AddDays(-i);
|
// DateTime endDate = startDate.Date.AddDays(1).AddTicks(-1);
|
|
// // 查询在这一天内的出入库记录
|
// var items = recordsOfDay.Where(r => r.CreateTime >= startDate && r.CreateTime <= endDate).ToList();
|
|
// // 汇总出入库记录(这里假设你有合适的逻辑来汇总数据)
|
// var summary = new WmsTransitionDiagram
|
// {
|
// ReceiptNumber = items.Where(x => x.InOutFlag == InOutFlagEnum.入).ToList().Sum(x => x.Quantity),
|
// DeliveryNumber = items.Where(x => x.InOutFlag == InOutFlagEnum.出).ToList().Sum(x => x.Quantity),
|
// Day = startDate.Date.ToString("yyyy-MM-dd")
|
// };
|
|
// outputlist.Add(summary);
|
// }
|
|
|
// //排序
|
// outputlist = outputlist.OrderBy(x => x.Day).ToList();
|
|
// return outputlist;
|
// }
|
|
// public class TransitionDiagramData
|
// {
|
// public DateTime Date { get; set; }
|
// public decimal DataListCount { get; set; }
|
// }
|
|
//}
|