yanjinhui
3 天以前 7ec2fdc761acd483a621c590fae3a60af7b464ba
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/InventoryInfoService.cs
@@ -25,82 +25,6 @@
        }
        public IRepository<Dt_InventoryInfo> Repository => BaseDal;
        public WebResponseContent GetExpiredAndlow()
        {
            try
            {
                // èŽ·å–å½“å‰æ—¶é—´ï¼ˆåªå–æ—¥æœŸéƒ¨åˆ†ï¼Œå¿½ç•¥æ—¶é—´ï¼‰
                DateTime currentDate = DateTime.Today;
                // è®¡ç®—30天后的日期
                DateTime thresholdDate = currentDate.AddDays(30);
                // æŸ¥æ‰¾åº“存中所有商品
                var inventoryList = BaseDal.QueryData();
                var expiredSoonList = new List<object>();
                foreach (var item in inventoryList)
                {
                    // æ£€æŸ¥ValidityPeriod是否为空
                    if (string.IsNullOrEmpty(item.ValidityPeriod))
                        continue;
                    // ä½¿ç”¨ç²¾ç¡®æ ¼å¼è§£æž "2037-10-02"
                    if (DateTime.TryParseExact(item.ValidityPeriod.Trim(), "yyyy-MM-dd",
                        System.Globalization.CultureInfo.InvariantCulture,
                        System.Globalization.DateTimeStyles.None, out DateTime expiryDate))
                    {
                        // è®¡ç®—剩余天数(只比较日期部分)
                        double daysRemaining = (expiryDate - currentDate).TotalDays;
                        // æ£€æŸ¥æ˜¯å¦åœ¨30天内(包括已过期的)
                        if (daysRemaining <= 30)
                        {
                            expiredSoonList.Add(new
                            {
                                MaterielCode = item.MaterielCode ?? "",
                                BatchNo = item.BatchNo ?? "",
                                ValidityPeriod = item.ValidityPeriod,
                                ExpiryDate = expiryDate.ToString("yyyy-MM-dd"),
                            });
                        }
                    }
                    else
                    {
                        // è®°å½•解析失败的记录(用于调试)
                        Console.WriteLine($"无法解析效期: {item.ValidityPeriod}");
                    }
                }
                // æŒ‰å‰©ä½™å¤©æ•°å‡åºæŽ’列(即将过期的排前面)
                var sortedList = expiredSoonList.OrderBy(x =>
                {
                    var days = (int)((dynamic)x).DaysRemaining;
                    return days;
                }).ToList();
                return new WebResponseContent
                {
                    Status = true,
                    Message = $"发现 {sortedList.Count} ä¸ªå•†å“å°†åœ¨30天内过期",
                    Data = new
                    {
                        TotalCount = sortedList.Count,
                        ExpiredCount = sortedList.Count(x => ((dynamic)x).DaysRemaining < 0),
                        WarningCount = sortedList.Count(x => ((dynamic)x).DaysRemaining >= 0),
                        CheckDate = currentDate.ToString("yyyy-MM-dd"),
                        Items = sortedList
                    }
                };
            }
            catch (Exception ex)
            {
                return new WebResponseContent
                {
                    Status = false,
                    Message = $"获取效期数据失败: {ex.Message}"
                };
            }
        }
        /// <summary>
        /// èŽ·å–åº“å­˜
@@ -114,33 +38,30 @@
                List<object> lists = new List<object>();
                #region å†·å†»åº“
                string WareCodeLD = WarehouseEnum.冷冻库.ObjToInt().ToString("000");
                List<Dt_InventoryInfo> inventoryInfosLD = BaseDal.QueryData(x => x.WarehouseCode == WareCodeLD);
                object LDQty = new
                var LDQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeLD).Sum(x => x.StockQuantity));
                lists.Add(new
                {
                    name = WarehouseEnum.冷冻库.ObjToString(),
                    count = inventoryInfosLD.Sum(x => x.StockQuantity).ObjToInt()
                };
                lists.Add(LDQty);
                    count = LDQty
                });
                #endregion
                #region éº»ç²¾åº“
                string WareCodeMJ = WarehouseEnum.麻精库.ObjToInt().ToString("000");
                List<Dt_InventoryInfo> inventoryInfosMJ = BaseDal.QueryData(x => x.WarehouseCode == WareCodeMJ);
                object MJQty = new
                var MJQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeMJ).Sum(x => x.StockQuantity));
                lists.Add(new
                {
                    name = WarehouseEnum.麻精库.ObjToString(),
                    count = inventoryInfosMJ.Sum(x => x.StockQuantity).ObjToInt()
                };
                lists.Add(MJQty);
                    count = MJQty
                });
                #endregion
                #region å¤§ä»¶åº“
                string WareCodeDJ = WarehouseEnum.大件库.ObjToInt().ToString("000");
                List<Dt_InventoryInfo> inventoryInfosDJ = BaseDal.QueryData(x => x.WarehouseCode == WareCodeDJ);
                object DJQty = new
                var DJQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeDJ).Sum(x => x.StockQuantity));
                lists.Add(new
                {
                    name = WarehouseEnum.大件库.ObjToString(),
                    count = inventoryInfosDJ.Sum(x => x.StockQuantity).ObjToInt()
                };
                lists.Add(DJQty);
                    count = DJQty
                });
                #endregion
                content.OK(data: lists);
            }
@@ -152,6 +73,6 @@
        }
    }
}