RepositoryTask.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using NPOI.SS.Formula.Functions;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Linq.Expressions;
  7. using System.Text;
  8. using wms.dto;
  9. using wms.dto.request.hj;
  10. using wms.dto.request.hj.dto;
  11. using wms.sqlsugar.model;
  12. using wms.sqlsugar.model.hj;
  13. using wms.util.Check;
  14. using static wms.dto.request.hj.dto.ReportResponse;
  15. namespace wms.sqlsugar
  16. {
  17. /// <summary>
  18. /// 创建仓储
  19. /// </summary>
  20. /// <typeparam name="T"></typeparam>
  21. public class RepositoryTask<T> : SimpleClient<T> where T : class, new()
  22. {
  23. public RepositoryTask()
  24. {
  25. //固定数据库用法
  26. base.Context = SqlSugarHelper.Db.GetConnectionScopeWithAttr<T>();
  27. //动态库用法一般用于维护数据库连接字符串根据用法
  28. //if (!SqlSugarHelper.Db.IsAnyConnection("用户读出来的数据库ConfigId"))
  29. //{
  30. // SqlSugarHelper.Db.AddConnection(new ConnectionConfig() { 数据库读出来信息 });
  31. //}
  32. //base.Context = SqlSugarHelper.Db.GetConnectionScope("用户读出来的数据库ConfigId");
  33. }
  34. public T InsertReturnEntity(T t)
  35. {
  36. return base.Context.Insertable(t).ExecuteReturnEntity();
  37. }
  38. public int InsertableSplitTable(T t)
  39. {
  40. return base.Context.Insertable(t).SplitTable().ExecuteCommand();
  41. }
  42. /// <summary>
  43. /// 该方法默认不更新CreatedUserId,CreatedTime
  44. /// </summary>
  45. /// <param name="entity"></param>
  46. /// <returns></returns>
  47. public bool UpdateEntity(T entity)
  48. {
  49. return base.Context.Updateable(entity).IgnoreColumns(new string[] { "AddWho", "AddTime" }).ExecuteCommand() > 0;
  50. }
  51. public bool UpdateModelColumns(Expression<Func<T, T>> Columns, Expression<Func<T, bool>> WhereExpression)
  52. {
  53. return base.Update(Columns, WhereExpression);
  54. }
  55. public bool UpdateSplitTableModelColumns(Expression<Func<T, T>> Columns, Expression<Func<T, bool>> WhereExpression)
  56. {
  57. return base.Context.Updateable<T>().SetColumns(Columns).Where(WhereExpression).SplitTable(x => x.Take(2)).ExecuteCommand() > 0;
  58. }
  59. public T GetModelByExpression(Expression<Func<T, bool>> WhereExpression)
  60. {
  61. return base.GetSingle(WhereExpression);
  62. }
  63. public List<hjSysConfig> GetTunList(TunnelRequest request)
  64. {
  65. var list = base.Context.Queryable<hjSysConfig>()
  66. .WhereIF(!string.IsNullOrEmpty(request.WareHouse), p => p.Default2 == request.WareHouse)
  67. .WhereIF(!string.IsNullOrEmpty(request.Tunnel), p => p.Default1 == request.Tunnel)
  68. .ToList();
  69. return list;
  70. }
  71. public bool UpdateTunStatu(long id, string statu, long userId)
  72. {
  73. return base.Context.Updateable<hjSysConfig>().SetColumns(it => new hjSysConfig()
  74. {
  75. SContent = statu,
  76. EditTime = DateTime.Now
  77. }).Where(it => it.Id == id).ExecuteCommand() > 0;
  78. }
  79. }
  80. }