BaseMatinfoService.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using WMS.BZModels;
  7. using WMS.Info;
  8. using WMS.BZSqlSugar;
  9. using wms.sqlsugar.model.sx;
  10. using WMS.BZModels.Dto.SX.BaseMatinfoDtos;
  11. using Mapster;
  12. namespace WMS.BZServices.SX
  13. {
  14. public class BaseMatinfoService
  15. {
  16. private readonly Repository<BaseMatinfo> _matinforepository;
  17. public BaseMatinfoService(Repository<BaseMatinfo> matinforepository)
  18. {
  19. _matinforepository = matinforepository;
  20. }
  21. public PagedInfo<BaseMatinfoDto> GetPageList(Pagination pagination, BaseMatinfoQueryDto basematinfoQueryDto)
  22. {
  23. var list = GetQueryable(basematinfoQueryDto)
  24. .ToPage<BaseMatinfo, BaseMatinfoDto>(pagination);
  25. return list;
  26. }
  27. private ISugarQueryable<BaseMatinfo> GetQueryable(BaseMatinfoQueryDto basematinfoQueryDto)
  28. {
  29. var predicate = Expressionable.Create<BaseMatinfo>();
  30. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.KeyWord), m => m.Code.Contains(basematinfoQueryDto.KeyWord));
  31. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.Code), m => m.Code.Contains(basematinfoQueryDto.Code));
  32. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.Name), m => m.Name.Contains(basematinfoQueryDto.Name));
  33. predicate = predicate.AndIF(basematinfoQueryDto?.HoldDuration > 0, m => m.HoldDuration == basematinfoQueryDto.HoldDuration);
  34. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.SpoolType), m => m.SpoolType.Contains(basematinfoQueryDto.SpoolType));
  35. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.ShortDesc), m => m.ShortDesc.Contains(basematinfoQueryDto.ShortDesc));
  36. var sugarQueryable = _matinforepository.Queryable().Where(predicate.ToExpression());
  37. return sugarQueryable;
  38. }
  39. public IList<BaseMatinfoDto> GetList(BaseMatinfoQueryDto baseMatinfoQueryDto)
  40. {
  41. var list = GetQueryable(baseMatinfoQueryDto).ToList().Adapt<List<BaseMatinfoDto>>();
  42. return list;
  43. }
  44. public void Save(LoginUserInfo loginUser, string keyValue, BaseMatinfo entity)
  45. {
  46. try
  47. {
  48. if (string.IsNullOrWhiteSpace(entity.Code))
  49. {
  50. throw new ArgumentException("物料编码不能为空");
  51. }
  52. if (keyValue.IsEmpty() || keyValue == "undefined")
  53. {
  54. var mat = _matinforepository.GetSingle(p => p.Code == entity.Code);
  55. if (mat != null)
  56. {
  57. throw new ArgumentException("物料编码已存在");
  58. }
  59. BaseMatinfo item = new BaseMatinfo()
  60. {
  61. WarehouseId = 1710853201663758336,
  62. AddWho = loginUser.UserNo,
  63. Code = entity.Code,
  64. EditWho = loginUser.UserNo,
  65. Name = entity.Name,
  66. ShortDesc = entity.ShortDesc,
  67. SpoolType = entity.SpoolType,
  68. SpoolCode = entity.SpoolCode,
  69. MatGrpId = 0,
  70. Description = entity.ShortDesc,
  71. Strength = entity.Strength,
  72. Plating = entity.Plating,
  73. PlatingWeight = entity.PlatingWeight,
  74. Linear = entity.Linear,
  75. IsHold = entity.IsHold,
  76. HoldDuration = entity.HoldDuration,
  77. Diameter = entity.Diameter
  78. };
  79. if (entity.SpoolCode == "BS60")
  80. {
  81. entity.SpoolType = "BS60工字轮";
  82. }
  83. else if (entity.SpoolCode == "BS40")
  84. {
  85. entity.SpoolType = "BS40工字轮";
  86. }
  87. else
  88. {
  89. entity.SpoolType = "BS80/33工字轮";
  90. }
  91. _matinforepository.Insert(item);
  92. }
  93. else
  94. {
  95. entity.WarehouseId = 1710853201663758336;
  96. entity.SpoolType = entity.SpoolType;
  97. entity.SpoolCode = entity.SpoolCode;
  98. entity.IsHold = entity.HoldDuration > 0 ? true : false;
  99. entity.HoldDuration = entity.HoldDuration;
  100. entity.Diameter = entity.Diameter;
  101. entity.Description = entity.ShortDesc;
  102. entity.EditTime = DateTime.Now;
  103. entity.EditWho = loginUser.UserNo;
  104. if (entity.SpoolCode == "BS60")
  105. {
  106. entity.SpoolType = "BS60工字轮";
  107. }
  108. else if (entity.SpoolCode == "BS40")
  109. {
  110. entity.SpoolType = "BS40工字轮";
  111. }
  112. else
  113. {
  114. entity.SpoolType = "BS80/33工字轮";
  115. }
  116. _matinforepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).Where(it => it.Code == keyValue).ExecuteCommand();
  117. }
  118. }
  119. catch (Exception ex)
  120. {
  121. throw ex;
  122. }
  123. }
  124. public void Delete(string ModuleNo)
  125. {
  126. try
  127. {
  128. _matinforepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand();
  129. }
  130. catch (Exception ex)
  131. {
  132. throw ex;
  133. }
  134. }
  135. }
  136. }