BaseMatinfoService.cs 5.5 KB

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