WCSTaskOldService.cs 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using wms.sqlsugar.model.hj;
  7. using WMS.BZModels;
  8. using WMS.BZSqlSugar;
  9. using WMS.Info;
  10. using SqlSugar;
  11. using WMS.Util;
  12. using WMS.BZModels.Dto.HJ.BillInvDtos;
  13. using NPOI.SS.Formula.PTG;
  14. using WMS.BZModels.Dto.HJ.TaskDtos;
  15. using WMS.BZModels.Dto;
  16. using Mapster;
  17. namespace WMS.BZServices.HJ
  18. {
  19. public class WCSTaskOldService
  20. {
  21. private readonly Repository<WCS_TaskOld> _wcstaskoldrepository;
  22. private readonly Repository<WCS_AgvTaskInfo> _agvtaskoldrepository;
  23. public WCSTaskOldService(Repository<WCS_TaskOld> wcstaskoldrepository, Repository<WCS_AgvTaskInfo> agvtaskoldrepository)
  24. {
  25. _wcstaskoldrepository = wcstaskoldrepository;
  26. _agvtaskoldrepository = agvtaskoldrepository;
  27. }
  28. public PagedInfo<WCSTaskoldDto> GetPageList(Pagination pagination, WCSTaskoldQueryDto WCSTaskoldQueryDto)
  29. {
  30. ISugarQueryable<WCS_TaskOld> query = GetQueryable(WCSTaskoldQueryDto);
  31. var list = query.ToPage<WCS_TaskOld, WCSTaskoldDto>(pagination);
  32. return list;
  33. }
  34. private ISugarQueryable<WCS_TaskOld> GetQueryable(WCSTaskoldQueryDto WCSTaskoldQueryDto)
  35. {
  36. var predicate = Expressionable.Create<WCS_TaskOld>();
  37. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.ID), m => m.ID.ToString().Contains(WCSTaskoldQueryDto.ID));
  38. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.KeyWord), m => m.ID.ToString().Contains(WCSTaskoldQueryDto.KeyWord) || m.BarCode.Contains(WCSTaskoldQueryDto.KeyWord) || m.MaterialCode.Contains(WCSTaskoldQueryDto.KeyWord)
  39. || m.InvBarCode.Contains(WCSTaskoldQueryDto.KeyWord) || m.AddrFrom.Contains(WCSTaskoldQueryDto.KeyWord) || m.AddrTo.Contains(WCSTaskoldQueryDto.KeyWord) ||
  40. m.Floor.ToString() == WCSTaskoldQueryDto.KeyWord || m.Tunnel.Contains(WCSTaskoldQueryDto.KeyWord) || m.Device.Contains(WCSTaskoldQueryDto.KeyWord));
  41. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.BarCode), m => m.BarCode.Contains(WCSTaskoldQueryDto.BarCode));
  42. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.MaterialCode), m => m.MaterialCode.Contains(WCSTaskoldQueryDto.MaterialCode));
  43. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.AddrFrom), m => m.AddrFrom.Contains(WCSTaskoldQueryDto.AddrFrom));
  44. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.AddrTo), m => m.AddrTo.Contains(WCSTaskoldQueryDto.AddrTo));
  45. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.AddrNext), m => m.AddrNext.Contains(WCSTaskoldQueryDto.AddrNext));
  46. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.WmsTask), m => m.WmsTask.ToString().Contains(WCSTaskoldQueryDto.WmsTask));
  47. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.AgvTaskID), m => m.AgvTaskID.ToString().Contains(WCSTaskoldQueryDto.AgvTaskID));
  48. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Type), m => ((int)m.Type).Equals(WCSTaskoldQueryDto.Type));
  49. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Status), m => ((int)m.Status).Equals(WCSTaskoldQueryDto.Status));
  50. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.BusType), m => m.BusType.Equals(WCSTaskoldQueryDto.BusType));
  51. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Tunnel), m => m.Tunnel.Contains(WCSTaskoldQueryDto.Tunnel));
  52. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Floor), m => m.Floor.ToString().Contains(WCSTaskoldQueryDto.Floor));
  53. predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Device), m => m.Device.Contains(WCSTaskoldQueryDto.Device));
  54. predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.AddTimeFrom.HasValue, m => m.AddTime >= WCSTaskoldQueryDto.AddTimeFrom);
  55. predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.AddTimeTo.HasValue, m => m.AddTime <= WCSTaskoldQueryDto.AddTimeTo);
  56. predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.StartTimeBegin.HasValue, m => m.StartTime >= WCSTaskoldQueryDto.StartTimeBegin);
  57. predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.StartTimeEnd.HasValue, m => m.StartTime <= WCSTaskoldQueryDto.StartTimeEnd);
  58. predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.EndTimeBegin.HasValue, m => m.EndTime >= WCSTaskoldQueryDto.EndTimeBegin);
  59. predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.EndTimeEnd.HasValue, m => m.EndTime <= WCSTaskoldQueryDto.EndTimeEnd);
  60. predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.OutType.HasValue, m => m.OutType.Equals(WCSTaskoldQueryDto.OutType));
  61. predicate = predicate.AndIF((WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.ProdLine.HasValue), m => m.ProdLine.Equals(WCSTaskoldQueryDto.ProdLine));
  62. if (WCSTaskoldQueryDto != null && !string.IsNullOrWhiteSpace(WCSTaskoldQueryDto.AGVID))
  63. {
  64. var AGVIDs = _agvtaskoldrepository.Queryable().With(SqlWith.NoLock).Where(o => o.AgvID.Contains(WCSTaskoldQueryDto.AGVID)).SplitTable(p => p.Take(3)).Select(o => o.ID).ToList();
  65. if (AGVIDs != null && AGVIDs.Any())
  66. {
  67. predicate = predicate.And(m => AGVIDs.Contains(m.AgvTaskID.Value));
  68. }
  69. }
  70. var query = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).SplitTable(p => p.Take(3));
  71. if (WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.AddTimeFrom.HasValue)
  72. {
  73. var endtime = DateTime.Now;
  74. if (WCSTaskoldQueryDto.AddTimeTo.HasValue)
  75. {
  76. endtime = WCSTaskoldQueryDto.AddTimeTo.Value;
  77. }
  78. query = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).SplitTable(WCSTaskoldQueryDto.AddTimeFrom.Value, endtime);
  79. }
  80. return query;
  81. }
  82. public IList<WCSTaskoldDto> GetList(WCSTaskoldQueryDto WCSTaskoldQueryDto)
  83. {
  84. ISugarQueryable<WCS_TaskOld> sugarQueryable = GetQueryable(WCSTaskoldQueryDto);
  85. var list = sugarQueryable.ToList();
  86. return list.Adapt<List<WCSTaskoldDto>>();
  87. }
  88. public int GetTaskUnFinishCount()
  89. {
  90. var predicate = Expressionable.Create<WCS_TaskOld>();
  91. predicate = predicate.And(m => m.Status < (int)BZModels.TaskStatus.Finish);
  92. var count = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).SplitTable(tabs => tabs.Take(3)).Count();
  93. return count;
  94. }
  95. }
  96. }