WarehouseService.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. using DapperORMCore.Context.DataContext;
  2. using DapperORMCore.Model.CoreModel;
  3. using DapperORMCore.Repository.IRepositorys;
  4. using DapperORMCore.String.Consts;
  5. using Microsoft.Extensions.Configuration;
  6. using NXWMS.IService.NXWMS.Base;
  7. using NXWMS.Model.AppModels.Condition;
  8. using NXWMS.Model.AppModels.Condition.Base;
  9. using NXWMS.Model.AppModels.Condition.SysSettings;
  10. using NXWMS.Model.AppModels.Result.Base;
  11. using NXWMS.Model.AppModels.Result.SysSettings;
  12. using NXWMS.Model.Common;
  13. using NXWMS.String.Enums;
  14. using System;
  15. using System.Collections.Generic;
  16. using System.Data;
  17. using System.Linq;
  18. using System.Text;
  19. using WestDistance.DapperORM.Repository.Repositorys;
  20. namespace NXWMS.Service.NXWMS.Base
  21. {
  22. /// <summary>
  23. /// 区域服务
  24. /// </summary>
  25. [AutoInject(typeof(IWarehouseService), InjectType.Scope)]
  26. public class WarehouseService : ServiceBase, IWarehouseService
  27. {
  28. /// <summary>
  29. /// 系统操作仓储中转
  30. /// </summary>
  31. private IDataRepositoryContext _dataContext;
  32. /// <summary>
  33. /// SQL节点仓储
  34. /// </summary>
  35. private ISQLNodeRepository _iSQLNodeRepository;
  36. /// <summary>
  37. /// 配置
  38. /// </summary>
  39. private IConfiguration _configuration;
  40. public WarehouseService(IDataRepositoryContext dataRepositoryContext, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository)
  41. {
  42. this._dataContext = dataRepositoryContext;
  43. this._configuration = configuration;
  44. this._iSQLNodeRepository = iSQLNodeRepository;
  45. }
  46. public OperateResultInfo Add(WarehouseCondition info)
  47. {
  48. throw new NotImplementedException();
  49. }
  50. public OperateResultInfo Deleted(WarehouseCondition info)
  51. {
  52. throw new NotImplementedException();
  53. }
  54. public OperateResultInfo Edit(WarehouseCondition info)
  55. {
  56. throw new NotImplementedException();
  57. }
  58. public OperateResultInfo<PageQueryResultInfo<WarehouseResult>> GetList(WarehouseSearchCondition info)
  59. {
  60. var sqlAndBuilder = new StringBuilder();
  61. var sqlOrBuilder = new StringBuilder();
  62. var sql = $@"SELECT
  63. CreateName = (SELECT USER_NAME FROM SYS_USER A WHERE A.USER_ID=CREATE_BY),
  64. UpdateName = (SELECT USER_NAME FROM SYS_USER B WHERE B.USER_ID=UPDATE_BY),
  65. UsedFlagName = {_iSQLNodeRepository.GetEnumIntCaseString<UsedFlag>("USED_FLAG")},
  66. {info.ItemSQL} FROM BAS_WAREHOUSE WHERE 1=1 AND DEL_FLAG = 0 ";
  67. sqlAndBuilder = info.Id != null ?
  68. info.Id > 0 ?
  69. sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("REGION_ID", info.Id, DBOperationString._Equal)) :
  70. sqlAndBuilder : sqlAndBuilder;
  71. sqlAndBuilder = info.IsUsed == null ?
  72. sqlAndBuilder :
  73. sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("USED_FLAG", info.IsUsed, DBOperationString._Equal));
  74. sqlAndBuilder = string.IsNullOrWhiteSpace(info.WarehouseCode) ?
  75. sqlAndBuilder :
  76. sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("WAREHOUSE_CODE", info.WarehouseCode, DBOperationString._ContainIn));
  77. sql = sql + (sqlAndBuilder.Length > 0 ? _iSQLNodeRepository.GetAndString(sqlAndBuilder, false) : "");
  78. IEnumerable<WarehouseResult> result;
  79. IEnumerable<WarehouseResult> totalResult;
  80. totalResult = new DataRepository<WarehouseResult>(_dataContext).Query(sql);
  81. if (info.PageIndex == 0 || info.PageSize == 0)
  82. {
  83. result = totalResult.ToList();
  84. }
  85. else
  86. {
  87. result = new DataRepository<WarehouseResult>(_dataContext).QueryPage(sql,
  88. "CREATE_TIME", info.PageSize, info.PageIndex, true);
  89. }
  90. return SuccessStatus(new PageQueryResultInfo<WarehouseResult>
  91. {
  92. RowData = result,
  93. PageConditionInfo = info,
  94. TotalCount = totalResult.Count(),
  95. TotalPageCount = (int)Math.Ceiling((double)totalResult.Count() / info.PageSize)
  96. });
  97. }
  98. public OperateResultInfo Remove(WarehouseCondition info)
  99. {
  100. throw new NotImplementedException();
  101. }
  102. }
  103. }