WCSPalletizingService.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. using Org.BouncyCastle.Crypto;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using wms.sqlsugar.model.fj;
  9. using WMS.BZModels;
  10. using WMS.BZModels.Dto.FJ.WCSPalletizingDtos;
  11. using WMS.BZSqlSugar;
  12. using WMS.Info;
  13. using WMS.Util;
  14. namespace WMS.BZServices.FJ
  15. {
  16. public class WCSPalletizingService
  17. {
  18. private readonly Repository<WCSPalletizing> _WCSPalletizingRepository;
  19. private readonly Repository<BaseWarehouse> _wareHouserepository;
  20. public WCSPalletizingService(Repository<WCSPalletizing> wCSPalletizingRepository, Repository<BaseWarehouse> wareHouserepository)
  21. {
  22. _WCSPalletizingRepository = wCSPalletizingRepository;
  23. _wareHouserepository = wareHouserepository;
  24. }
  25. public PagedInfo<WCSPalletizingDto> GetPageList(Pagination pagination, WCSPalletizingQueryDto wcsPalletizingQueryDto)
  26. {
  27. var predicate = Expressionable.Create<WCSPalletizing>();
  28. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.KeyWord), m => m.Code.ToString().Contains(wcsPalletizingQueryDto.KeyWord) || m.PalleCode.Contains(wcsPalletizingQueryDto.KeyWord) || m.TaskId.ToString().Contains(wcsPalletizingQueryDto.KeyWord)
  29. || m.ProMaterCode.Contains(wcsPalletizingQueryDto.KeyWord) || m.MatCodeList.Contains(wcsPalletizingQueryDto.KeyWord) || m.DeviceCode.ToString() == wcsPalletizingQueryDto.KeyWord);
  30. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.TaskId), m => m.TaskId.ToString().Contains(wcsPalletizingQueryDto.TaskId));
  31. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.PalleCode), m => m.PalleCode.Contains(wcsPalletizingQueryDto.PalleCode));
  32. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.Code), m => m.Code.Contains(wcsPalletizingQueryDto.Code));
  33. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.ProMaterCode), m => m.ProMaterCode.Contains(wcsPalletizingQueryDto.ProMaterCode));
  34. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.PalletizingStation), m => m.PalletizingStation.Contains(wcsPalletizingQueryDto.PalletizingStation));
  35. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.CountQty), m => m.CountQty.ToString().Contains(wcsPalletizingQueryDto.CountQty));
  36. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.TpTypeCode), m => m.TpTypeCode.Contains(wcsPalletizingQueryDto.TpTypeCode));
  37. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.LayerCountQty), m => m.LayerCountQty.ToString().Contains(wcsPalletizingQueryDto.LayerCountQty));
  38. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.Finish), m => m.Finish.Equals(wcsPalletizingQueryDto.Finish));
  39. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.MatCodeList), m => m.MatCodeList.Contains(wcsPalletizingQueryDto.MatCodeList));
  40. predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.WarehouseCode), m => m.WarehouseCode.Equals(wcsPalletizingQueryDto.WarehouseCode));
  41. predicate = predicate.AndIF(wcsPalletizingQueryDto != null && wcsPalletizingQueryDto.AddTimeFrom.HasValue, m => m.AddTime >= wcsPalletizingQueryDto.AddTimeFrom);
  42. predicate = predicate.AndIF(wcsPalletizingQueryDto != null && wcsPalletizingQueryDto.AddTimeTo.HasValue, m => m.AddTime <= wcsPalletizingQueryDto.AddTimeTo);
  43. var list = _WCSPalletizingRepository.Queryable().Where(predicate.ToExpression()).ToPage<WCSPalletizing, WCSPalletizingDto>(pagination);
  44. var wareHouses = _wareHouserepository.Queryable().Where(o => o.IsStop == 0).ToList();
  45. list.Result.ForEach(o =>
  46. {
  47. o.WarehouseName = wareHouses.FirstOrDefault(v => v.Code == o.WarehouseCode)?.Name ?? "";
  48. });
  49. return list;
  50. }
  51. public void UpdateFinish(List<string> ids, string userId, int state)
  52. {
  53. if (!ids.Any())
  54. {
  55. throw new ArgumentException("没有选择任务!");
  56. }
  57. var list = _WCSPalletizingRepository.Queryable().Where(o => ids.Contains(o.Id.ToString())).ToList();
  58. if (!list.Any())
  59. {
  60. throw new ArgumentException("没有找到该任务!");
  61. }
  62. bool isfinish = state == 1;
  63. foreach (var id in list)
  64. {
  65. _WCSPalletizingRepository.UseTranAction(() =>
  66. {
  67. _WCSPalletizingRepository.AsUpdateable().With("WITH(ROWLOCK,UPDLOCK)").SetColumns(p => new WCSPalletizing()
  68. {
  69. Finish = isfinish,
  70. }).Where(p => p.Id == id.Id).ExecuteCommand();
  71. });
  72. }
  73. }
  74. public void UpdatePalleCode(List<string> ids, string userId, string palleCode)
  75. {
  76. if (!ids.Any())
  77. {
  78. throw new ArgumentException("没有选择任务!");
  79. }
  80. var list = _WCSPalletizingRepository.Queryable().Where(o => ids.Contains(o.Id.ToString())).ToList();
  81. if (!list.Any())
  82. {
  83. throw new ArgumentException("没有找到该任务!");
  84. }
  85. foreach (var id in list)
  86. {
  87. _WCSPalletizingRepository.UseTranAction(() =>
  88. {
  89. _WCSPalletizingRepository.AsUpdateable().With("WITH(ROWLOCK,UPDLOCK)").SetColumns(p => new WCSPalletizing()
  90. {
  91. PalleCode = palleCode,
  92. }).Where(p => p.Id == id.Id).ExecuteCommand();
  93. });
  94. }
  95. }
  96. public void PalletizingStation(List<string> Ids, string userId)
  97. {
  98. if (Ids == null || !Ids.Any())
  99. {
  100. throw new ArgumentException("没有选择跺型数据!");
  101. }
  102. var list = _WCSPalletizingRepository.Queryable().Where(o => Ids.Contains(o.Id.ToString())).ToList();
  103. if (!list.Any())
  104. {
  105. throw new ArgumentException("没有找到该任务!");
  106. }
  107. var listids = list.Select(o => o.Id).ToList();
  108. _WCSPalletizingRepository.UseTranAction(() =>
  109. {
  110. _WCSPalletizingRepository.AsUpdateable().With("WITH(ROWLOCK,UPDLOCK)").SetColumns(p => new WCSPalletizing()
  111. {
  112. PalletizingStation = null,
  113. }).Where(p => listids.Contains(p.Id)).ExecuteCommand();
  114. });
  115. }
  116. }
  117. }