1
heshaofeng
77 分钟以前 8d54aef9335f78f76a8f1509341023bba773d357
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/BigGreenService/BigGreenService.cs
@@ -65,13 +65,14 @@
            var unInBound = _inboundRepository.Db.Queryable<Dt_InboundOrder>().Where(x => targetInStatus.Contains(x.OrderStatus) && x.CreateDate.ToString("MM-dd") == DateTime.Now.ToString("MM-dd")).Count();
            //计算库位利用率
            var freeLocation = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Select(x=>x.Id).Count();
            var totalLocation = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Select(x=>x.Id).Count();
            var inStockLocation = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Where(x => x.LocationStatus == (int)LocationStatusEnum.InStock).Count();
            int totalLocation = freeLocation + inStockLocation;
            decimal locationUtilizationRate = totalLocation == 0
                ? 0
                : Math.Round((decimal)inStockLocation / totalLocation, 4) * 100;
            //禁用货位
            var disableLocation = _locationInfoRepository.QueryData(x=>x.EnableStatus == (int)EnableStatusEnum.Disable).Count();
            //计算入库任务和出库任务完成数量
            var inboundCount = _taskHtyRepository.Db.Queryable<Dt_Task_Hty>().Where(x => x.TaskType >= 500 && x.TaskType < 900 && x.CreateDate.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")).Count();
            var outboundCount = _taskHtyRepository.Db.Queryable<Dt_Task_Hty>().Where(x => x.TaskType >= 100 && x.TaskType < 500 && x.CreateDate.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")).Count();
@@ -102,7 +103,9 @@
                FreeStockPallet = freeStockPallet,
                CompleteTask = completeTask,
                NearExpirationList = nearExpirationList,
                UnInBoundOrderCount = unInBound
                UnInBoundOrderCount = unInBound,
                TotalLocation = totalLocation,
                DisableLocation = disableLocation
            };
            return WebResponseContent.Instance.OK(data: bigGreenData);
        }
@@ -165,22 +168,46 @@
        public List<SimpleStatisticsDTO> SimpleStatistics()
        {
            var targetStatuses = new List<int>
            {
                (int)InOrderStatusEnum.入库中,
                (int)InOrderStatusEnum.未开始,
                (int)OutOrderStatusEnum.未开始,
                (int)OutOrderStatusEnum.出库中
            };
            var inboundList = _inboundRepository.QueryData(x => x.CreateDate.ToString("MM-dd") == DateTime.Now.ToString("MM-dd") && targetStatuses.Contains(x.OrderStatus)).ToList();
            var outboundList = _outBoundOrderRepository.QueryData(x => x.CreateDate.ToString("MM-dd") == DateTime.Now.ToString("MM-dd") && targetStatuses.Contains(x.OrderStatus)).ToList();
            var today = DateTime.Now.Date;
            var threeDaysAgo = today.AddDays(-3);
            var stats = new List<SimpleStatisticsDTO> { new SimpleStatisticsDTO
            {
                inboundOrders =inboundList,
                outboundOrders = outboundList
            } };
            return stats;
            var targetStatuses = new List<int> { (int)InOrderStatusEnum.入库中, (int)InOrderStatusEnum.未开始,
                                         (int)OutOrderStatusEnum.未开始, (int)OutOrderStatusEnum.出库中 };
            var failReturnStatuses = new List<int> {4,2};
            var inboundToday = QueryInboundOrders(today, today, targetStatuses);
            var outboundToday = QueryOutboundOrders(today, today, targetStatuses);
            var inboundFail3Days = QueryInboundOrders(threeDaysAgo, today, failReturnStatuses, isReturnStatus: true);
            var outboundFail3Days = QueryOutboundOrders(threeDaysAgo, today, failReturnStatuses, isReturnStatus: true);
            return new List<SimpleStatisticsDTO> { new()
    {
        inboundOrders = inboundToday,
        outboundOrders = outboundToday,
        inboundReturnFailOrders = inboundFail3Days,
        outboundReturnFailOrders = outboundFail3Days
    }};
        }
        private List<Dt_InboundOrder> QueryInboundOrders(DateTime startDate, DateTime endDate,
                                                      List<int> statusList, bool isReturnStatus = false)
        {
            return _inboundRepository.QueryData(x =>
                x.CreateDate.Date >= startDate &&
                x.CreateDate.Date <= endDate &&
                (isReturnStatus ? statusList.Contains(x.ReturnToMESStatus) : statusList.Contains(x.OrderStatus))).ToList();
        }
        private List<Dt_OutboundOrder> QueryOutboundOrders(DateTime startDate, DateTime endDate,
                                                        List<int> statusList, bool isReturnStatus = false)
        {
            return _outBoundOrderRepository.QueryData(x =>
                x.CreateDate.Date >= startDate &&
                x.CreateDate.Date <= endDate &&
                (isReturnStatus ? statusList.Contains(x.ReturnToMESStatus) : statusList.Contains(x.OrderStatus))).ToList();
        }
        /// <summary>
@@ -250,6 +277,9 @@
            public List<SimpleStatisticsDTO> CompleteTask { get; set; }
            public List<StockInfoDetailExtDTO> NearExpirationList { get; set; }
            public int TotalLocation { get; set; }
            public int DisableLocation { get; set; }
        }
        /// <summary>
@@ -278,6 +308,8 @@
        {
            public List<Dt_InboundOrder> inboundOrders { get; set; }
            public List<Dt_OutboundOrder> outboundOrders { get; set; }
            public List<Dt_InboundOrder> inboundReturnFailOrders { get; set; }
            public List<Dt_OutboundOrder> outboundReturnFailOrders { get; set; }
        }