FIFOStrategyService.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using wms.dto.response.hj;
  2. using wms.service.IService;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using wms.service.Service.StrategyService;
  8. namespace wms.service.Service
  9. {
  10. /// <summary>
  11. /// 先入先出策略
  12. /// </summary>
  13. public class FIFOStrategyService : IWorkStrategyService
  14. {
  15. public List<LocationForStrategyInfo> Filter(List<LocationForStrategyInfo> listLocation)
  16. {
  17. if (listLocation == null || !listLocation.Any())
  18. {
  19. return listLocation;
  20. }
  21. //List<LocationForStrategyInfo> list = null;
  22. if (_isContainer)
  23. {
  24. listLocation.Sort(new LocationForStrategyInfoComparer("LastInTime"));
  25. }
  26. else
  27. {
  28. //listLocation.Sort(new LocationForStrategyInfoComparer("InTime"));//按照实际入库时间
  29. listLocation.Sort(new LocationForStrategyInfoComparer("ProductTime"));//按照生产时间先进先出
  30. }
  31. if (_days > 0)
  32. {
  33. //根据天数进行处理结果集
  34. }
  35. return listLocation.ToList();
  36. }
  37. private int _days { get; set; }
  38. private bool _isContainer { get; set; }
  39. private FIFOStrategyService() { }
  40. /// <summary>
  41. /// 几天认为是一个同等时间点
  42. /// </summary>
  43. /// <param name="days"></param>
  44. public FIFOStrategyService(int days, bool isContainer)
  45. {
  46. _days = days;
  47. _isContainer = isContainer;
  48. }
  49. }
  50. }