| | |
| | | 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 |
| | | { |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |