服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-04-10 5d639c50896850ee8065ee9b54b986dffd4593e2
Tiger.Business/WMS/T100ToWMS/MaterialInfoBusiness.cs
@@ -15,8 +15,6 @@
using Tiger.Model.DTO;
using Tiger.Model.Entitys.MES;
using Tiger.Model.Entitys.WMS.DTOS;
using Web.Core.Entities.Response;
using Web.Core.DataBase;
namespace Tiger.Business
{
@@ -2009,63 +2007,5 @@
            return num;
        }
        /// <summary>
        /// 获取超期物料信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task<PageListModel<MaterialInfoDTO>> GetExtendedMaterialAsync(PageInput<NullDTO> input)
        {
            var DB = Biz.DataSource["WMS57"].Client;
            #region 获取所有的条码有效期信息
            var data = await DB.Queryable<WMS_ITEM, BAS_ITEM>((a, b) => new object[]
            {
                JoinType.Left, a.ITEM_CODE == b.ITEM_CODE
            }).Where((a, b) => b.VALIDITY_DAYS != 0 && a.STATUS <= 40)
            .OrderByDescending((a, b) => a.CREATE_TIME)
            .Select((a, b) => new MaterialInfoDTO()
            {
                AUTH_ORG = a.AUTH_ORG,
                SN = a.SN,
                Item_Code = a.ITEM_CODE,
                PROD_DATE = a.PROD_DATE,
                VALIDITY_DAYS = b.VALIDITY_DAYS,
                DepositDays = b.DepositDays,
                PostponeDays = a.PostponeDays,
                CreateTime = a.CREATE_TIME
            }).ToListAsync();
            #endregion 获取所有的条码有效期信息
            var msg = new List<MaterialInfoDTO>();
            foreach (var item in data)
            {
                // 生产日期 + 有效期  + 延期时长   超过了当前日期,就表示已超期
                if (item.PROD_DATE?.AddDays(item.VALIDITY_DAYS.ToDouble()).AddDays(item.PostponeDays.ToDouble()) <= DateTime.Now)
                {
                    var days = (DateTime.Now - item.PROD_DATE?.AddDays(item.VALIDITY_DAYS.ToDouble()).AddDays(item.PostponeDays.ToDouble())).Value.Days;// 计算剩余有效期天数
                    item.OverdueDays = days;
                    msg.Add(item);
                }
            }
            #region 手动分页
            input.PageIndex = input.PageIndex < 1 ? 0 : input.PageIndex - 1;
            var pagelist = msg.Skip(input.PageIndex * input.PageRows).Take(input.PageRows).ToList();// 获取分页数据
            #endregion 手动分页
            var model = new PageListModel<MaterialInfoDTO>()
            {
                PageList = pagelist,
                Total = msg.Count()
            };
            return model;
        }
    }
}