BaseMatinfoService.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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.cp;
  10. using WMS.BZModels.Dto.CP.BaseMatinfoDtos;
  11. namespace WMS.BZServices.CP
  12. {
  13. public class BaseMatinfoService
  14. {
  15. private readonly Repository<BaseMatinfo> _matinforepository;
  16. public BaseMatinfoService(Repository<BaseMatinfo> matinforepository)
  17. {
  18. _matinforepository = matinforepository;
  19. }
  20. public PagedInfo<BaseMatinfoDto> GetPageList(Pagination pagination, BaseMatinfoQueryDto basematinfoQueryDto)
  21. {
  22. if (pagination.sord.ToUpper() != "ASC")
  23. {
  24. pagination.sidx = pagination.sidx + " DESC";
  25. }
  26. if (pagination.sidx.IsEmpty())
  27. {
  28. pagination.sidx = "AddTime DESC";
  29. }
  30. var predicate = Expressionable.Create<BaseMatinfo>();
  31. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.KeyWord), m => m.Code.Contains(basematinfoQueryDto.KeyWord));
  32. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.Code), m => m.Code.Contains(basematinfoQueryDto.Code));
  33. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.Name), m => m.Name.Contains(basematinfoQueryDto.Name));
  34. predicate = predicate.AndIF(basematinfoQueryDto?.HoldDuration > 0, m => m.HoldDuration == basematinfoQueryDto.HoldDuration);
  35. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.SpoolType), m => m.SpoolType.Contains(basematinfoQueryDto.SpoolType));
  36. predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.ShortDesc), m => m.ShortDesc.Contains(basematinfoQueryDto.ShortDesc));
  37. var list = _matinforepository.Queryable().Where(predicate.ToExpression())
  38. //.OrderBy(pagination.sidx)
  39. .ToPage<BaseMatinfo, BaseMatinfoDto>(pagination);
  40. return list;
  41. }
  42. public void Save(LoginUserInfo loginUser, string keyValue, BaseMatinfo entity)
  43. {
  44. try
  45. {
  46. if (string.IsNullOrWhiteSpace(entity.Code))
  47. {
  48. throw new ArgumentException("物料编码不能为空");
  49. }
  50. if (keyValue.IsEmpty() || keyValue == "undefined")
  51. {
  52. var mat = _matinforepository.GetSingle(p => p.Code == entity.Code);
  53. if (mat != null)
  54. {
  55. throw new ArgumentException("物料编码已存在");
  56. }
  57. BaseMatinfo item = new BaseMatinfo()
  58. {
  59. WarehouseId = 1668442390064664576,
  60. AddWho = loginUser.UserNo,
  61. Code = entity.Code,
  62. EditWho = loginUser.UserNo,
  63. Name = entity.Name,
  64. ShortDesc = entity.ShortDesc,
  65. MatGrpId = 0,
  66. Description = entity.ShortDesc,
  67. Strength = entity.Strength,
  68. Plating = entity.Plating,
  69. PlatingWeight = entity.PlatingWeight,
  70. Linear = entity.Linear,
  71. IsHold = entity.IsHold,
  72. HoldDuration = entity.HoldDuration
  73. };
  74. _matinforepository.Insert(item);
  75. }
  76. else
  77. {
  78. entity.EditTime = DateTime.Now;
  79. entity.EditWho = loginUser.UserNo;
  80. _matinforepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).IgnoreColumns(it => it.WarehouseId).Where(it => it.Code == keyValue).ExecuteCommand();
  81. }
  82. }
  83. catch (Exception ex)
  84. {
  85. throw ex;
  86. }
  87. }
  88. public void Delete(string ModuleNo)
  89. {
  90. try
  91. {
  92. _matinforepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand();
  93. }
  94. catch (Exception ex)
  95. {
  96. throw ex;
  97. }
  98. }
  99. }
  100. }