AgvTaskInfoService.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using WMS.BZModels;
  8. using WMS.Info;
  9. using wms.sqlsugar.model.pt;
  10. using WMS.BZSqlSugar;
  11. using WMS.Util;
  12. using WMS.BZModels.Dto.PT.TaskDtos;
  13. namespace WMS.BZServices.PT
  14. {
  15. public class AgvTaskInfoService
  16. {
  17. private readonly Repository<WCS_AgvTaskInfo> _agvtaskoldrepository;
  18. public AgvTaskInfoService(Repository<WCS_AgvTaskInfo> agvtaskoldrepository)
  19. {
  20. _agvtaskoldrepository = agvtaskoldrepository;
  21. }
  22. public PagedInfo<AgvTaskoldDto> GetPageList(Pagination pagination, AgvTaskoldQueryDto agvTaskoldQueryDto)
  23. {
  24. var predicate = Expressionable.Create<WCS_AgvTaskInfo>();
  25. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.KeyWord), m => m.ID.ToString().Contains(agvTaskoldQueryDto.KeyWord) || m.AgvID.Contains(agvTaskoldQueryDto.KeyWord)
  26. || m.Station.Contains(agvTaskoldQueryDto.KeyWord) || m.Position.Contains(agvTaskoldQueryDto.KeyWord));
  27. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.ID), m => m.ID.ToString().Contains(agvTaskoldQueryDto.ID));
  28. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.AgvID), m => m.AgvID.Contains(agvTaskoldQueryDto.AgvID));
  29. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Station), m => m.Station.Contains(agvTaskoldQueryDto.Station));
  30. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Position), m => m.Position.Contains(agvTaskoldQueryDto.Position));
  31. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.TaskType), m => m.TaskType.Equals(agvTaskoldQueryDto.TaskType));
  32. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.AgvStatus), m => m.AgvStatus.Equals(agvTaskoldQueryDto.AgvStatus));
  33. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Status), m => m.Status.Equals(agvTaskoldQueryDto.Status));
  34. predicate = predicate.And(p => p.Status < 99);
  35. var query = _agvtaskoldrepository.Queryable().Where(predicate.ToExpression()).SplitTable(p => p.Take(3));
  36. //if (agvTaskoldQueryDto != null && agvTaskoldQueryDto.AddTimeFrom.HasValue)
  37. //{
  38. // var endtime = DateTime.Now;
  39. // if (agvTaskoldQueryDto.AddTimeTo.HasValue)
  40. // {
  41. // endtime = agvTaskoldQueryDto.AddTimeTo.Value;
  42. // }
  43. // query = _agvtaskoldrepository.Queryable().Where(predicate.ToExpression()).SplitTable(AgvTaskoldQueryDto.AddTimeFrom.Value, endtime);
  44. //}
  45. var list = query.ToPage<WCS_AgvTaskInfo, AgvTaskoldDto>(pagination);
  46. return list;
  47. }
  48. public PagedInfo<AgvTaskoldDto> GetPageList1(Pagination pagination, AgvTaskoldQueryDto agvTaskoldQueryDto)
  49. {
  50. var predicate = Expressionable.Create<WCS_AgvTaskInfo>();
  51. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.KeyWord), m => m.ID.ToString().Contains(agvTaskoldQueryDto.KeyWord) || m.AgvID.Contains(agvTaskoldQueryDto.KeyWord)
  52. || m.Station.Contains(agvTaskoldQueryDto.KeyWord) || m.Position.Contains(agvTaskoldQueryDto.KeyWord));
  53. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.ID), m => m.ID.ToString().Contains(agvTaskoldQueryDto.ID));
  54. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.AgvID), m => m.AgvID.Contains(agvTaskoldQueryDto.AgvID));
  55. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Station), m => m.Station.Contains(agvTaskoldQueryDto.Station));
  56. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Position), m => m.Position.Contains(agvTaskoldQueryDto.Position));
  57. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.TaskType), m => m.TaskType.Equals(agvTaskoldQueryDto.TaskType));
  58. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.AgvStatus), m => m.AgvStatus.Equals(agvTaskoldQueryDto.AgvStatus));
  59. predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Status), m => m.Status.Equals(agvTaskoldQueryDto.Status));
  60. predicate = predicate.And(p => p.Status >= 99);
  61. var query = _agvtaskoldrepository.Queryable().Where(predicate.ToExpression()).SplitTable(p => p.Take(2));
  62. //if (agvTaskoldQueryDto != null && agvTaskoldQueryDto.AddTimeFrom.HasValue)
  63. //{
  64. // var endtime = DateTime.Now;
  65. // if (agvTaskoldQueryDto.AddTimeTo.HasValue)
  66. // {
  67. // endtime = agvTaskoldQueryDto.AddTimeTo.Value;
  68. // }
  69. // query = _agvtaskoldrepository.Queryable().Where(predicate.ToExpression()).SplitTable(AgvTaskoldQueryDto.AddTimeFrom.Value, endtime);
  70. //}
  71. var list = query.ToPage<WCS_AgvTaskInfo, AgvTaskoldDto>(pagination);
  72. return list;
  73. }
  74. public int GetTaskUnFinishCount()
  75. {
  76. var predicate = Expressionable.Create<WCS_AgvTaskInfo>();
  77. predicate = predicate.And(m => m.Status < (int)BZModels.TaskStatus.Finish);
  78. var count = _agvtaskoldrepository.Queryable().Where(predicate.ToExpression()).SplitTable(tabs => tabs.Take(3)).Count();
  79. return count;
  80. }
  81. public bool HandleTask(LoginUserInfo loginUser, string keyValue)
  82. {
  83. var agv = _agvtaskoldrepository.Queryable().SplitTable(tabs => tabs.Take(3)).First(o => o.ID.Equals(keyValue));
  84. if (agv == null)
  85. {
  86. throw BZSysExCore.ThrowFailException("没有数据。");
  87. }
  88. //agv.Status = (int)AGVTaskStatus.MissionCompleted;
  89. agv.AgvStatus = (int)AGVTaskStatus.MissionCompleted;
  90. agv.EditTime = DateTime.Now;
  91. agv.EditWho = "手动完成";
  92. var result = _agvtaskoldrepository.AsUpdateable(agv).UpdateColumns(o => new { o.Status, o.AgvStatus, o.EditTime, o.EditWho }).SplitTable(p => p.Take(3)).ExecuteCommand();
  93. return result > 0;
  94. }
  95. }
  96. }