BasBinService.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. using System;
  2. using SqlSugar;
  3. using Infrastructure.Attribute;
  4. using ZR.Model;
  5. using ZR.Repository;
  6. using System.Linq;
  7. using System.Collections.Generic;
  8. using ZR.Model.System;
  9. using Infrastructure;
  10. using Infrastructure.Extensions;
  11. using ZR.Common;
  12. using ZR.Service.Business.IBusinessService.BaseSet;
  13. using ZR.Model.Dto.BaseSet;
  14. using ZR.Model.Models.BaseSet;
  15. namespace ZR.Service.Business
  16. {
  17. /// <summary>
  18. /// 基础资料/库位信息表Service业务层处理
  19. ///
  20. /// @author admin
  21. /// @date 2023-04-11
  22. /// </summary>
  23. [AppService(ServiceType = typeof(IBasBinService), ServiceLifetime = LifeTime.Transient)]
  24. public class BasBinService : BaseService<BasBin>, IBasBinService
  25. {
  26. #region 业务逻辑代码
  27. /// <summary>
  28. /// 查询基础资料/库位信息表列表
  29. /// </summary>
  30. /// <param name="parm"></param>
  31. /// <returns></returns>
  32. public PagedInfo<BasBinDto> GetList(BasBinQueryDto parm)
  33. {
  34. //开始拼装查询条件
  35. var predicate = Expressionable.Create<BasBin>();
  36. predicate.AndIF(parm.RegionId > 0, b => b.RegionId == parm.RegionId);
  37. predicate.AndIF(!string.IsNullOrEmpty(parm.BinCode), b => b.BinCode.Contains(parm.BinCode));
  38. predicate.AndIF(parm.BinRow > 0, b => b.BinRow == parm.BinRow);
  39. predicate.AndIF(parm.BinColumn > 0, b => b.BinColumn == parm.BinColumn);
  40. predicate.AndIF(parm.BinLayer > 0, b => b.BinLayer == parm.BinLayer);
  41. predicate.AndIF(!string.IsNullOrEmpty(parm.BinType), b => b.BinType.Equals(parm.BinType));
  42. predicate.AndIF(!string.IsNullOrEmpty(parm.Status), b => b.Status.Equals(parm.Status));
  43. //搜索条件查询语法参考Sqlsugar
  44. var response = Queryable()
  45. .LeftJoin<BasRegion>((b, region) => b.RegionId == region.RegionId)
  46. .Where(predicate.ToExpression())
  47. .Select((b,region)=>new BasBin
  48. {
  49. RegionId = b.RegionId.SelectAll(),
  50. RegionName =region.RegionName,
  51. RegionCode=region.RegionCode,
  52. })
  53. .ToPage<BasBin, BasBinDto>(parm);
  54. return response;
  55. }
  56. public List<BasBin> GetSelect(BasBinQueryDto parm)
  57. {
  58. //开始拼装查询条件
  59. var predicate = Expressionable.Create<BasBin>();
  60. predicate.AndIF(parm.RegionId > 0, b => b.RegionId == parm.RegionId);
  61. predicate.AndIF(!string.IsNullOrEmpty(parm.BinCode), b => b.BinCode.Contains(parm.BinCode));
  62. predicate.AndIF(parm.BinRow > 0, b => b.BinRow == parm.BinRow);
  63. predicate.AndIF(parm.BinColumn > 0, b => b.BinColumn == parm.BinColumn);
  64. predicate.AndIF(parm.BinLayer > 0, b => b.BinLayer == parm.BinLayer);
  65. predicate.AndIF(!string.IsNullOrEmpty(parm.BinType), b => b.BinType.Equals(parm.BinType));
  66. predicate.AndIF(!string.IsNullOrEmpty(parm.Status), b => b.Status.Equals(parm.Status));
  67. //搜索条件查询语法参考Sqlsugar
  68. var response = Queryable()
  69. .LeftJoin<BasRegion>((b, region) => b.RegionId == region.RegionId)
  70. .Where(predicate.ToExpression())
  71. .Select((b, region) => new BasBin
  72. {
  73. RegionId = b.RegionId.SelectAll(),
  74. RegionName = region.RegionName,
  75. RegionCode = region.RegionCode,
  76. })
  77. .ToList();
  78. return response;
  79. }
  80. /// <summary>
  81. /// 添加基础资料/库位信息表
  82. /// </summary>
  83. /// <param name="model"></param>
  84. /// <returns></returns>
  85. public int AddBasBin(BasBin model)
  86. {
  87. return Add(model, true);
  88. }
  89. /// <summary>
  90. /// 修改基础资料/库位信息表
  91. /// </summary>
  92. /// <param name="model"></param>
  93. /// <returns></returns>
  94. public int UpdateBasBin(BasBin model)
  95. {
  96. //var response = Update(w => w.BinId == model.BinId, it => new BasBin()
  97. //{
  98. // BinCode = model.BinCode,
  99. // BinName = model.BinName,
  100. // BinType = model.BinType,
  101. // RegionId = model.RegionId,
  102. // BinRow = model.BinRow,
  103. // BinColumn = model.BinColumn,
  104. // BinLayer = model.BinLayer,
  105. // Describe = model.Describe,
  106. // Visible = model.Visible,
  107. // Status = model.Status,
  108. // UpdateBy = model.UpdateBy,
  109. // UpdateTime = model.UpdateTime,
  110. // Remark = model.Remark,
  111. //});
  112. //return response;
  113. return Update(model, true);
  114. }
  115. /// <summary>
  116. /// 清空基础资料/库位信息表
  117. /// </summary>
  118. /// <returns></returns>
  119. public void TruncateBasBin()
  120. {
  121. Truncate();
  122. }
  123. /// <summary>
  124. /// 导入数据
  125. /// </summary>
  126. /// <param name="bins"></param>
  127. /// <returns></returns>
  128. public string ImportDatas(List<BasBin> bins)
  129. {
  130. bins.ForEach(x =>
  131. {
  132. x.CreateTime = DateTime.Now;
  133. x.Status = "0";
  134. x.Remark = "数据导入";
  135. });
  136. var x = Context.Storageable(bins)
  137. .SplitInsert(it => !it.Any())
  138. .ToStorage();
  139. var result = x.AsInsertable.ExecuteCommand();//插入可插入部分;
  140. string msg = string.Format(" 插入{0} 更新{1} 错误数据{2} 不计算数据{3} 删除数据{4},总共{5}",
  141. x.InsertList.Count,
  142. x.UpdateList.Count,
  143. x.ErrorList.Count,
  144. x.IgnoreList.Count,
  145. x.DeleteList.Count,
  146. x.TotalList.Count);
  147. //输出统计
  148. Console.WriteLine(msg);
  149. //输出错误信息
  150. foreach (var item in x.ErrorList)
  151. {
  152. Console.WriteLine("BinName为" + item.Item.BinName + " : " + item.StorageMessage);
  153. }
  154. return msg;
  155. }
  156. #endregion
  157. }
  158. }