FxInventoryCore.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using WMS.Info;
  8. using WMS.Util;
  9. namespace WMS.Core.ServiceCore
  10. {
  11. public class FxInventoryCore
  12. {
  13. /// <summary>
  14. /// 获取分页数据
  15. /// <summary>
  16. /// <returns></returns>
  17. public IEnumerable<dynamic> GetInventoryPageList(Pagination pagination, string queryJson)
  18. {
  19. SqlSugarClient client = null;
  20. try
  21. {
  22. client = SysDbCore.GetDbCtx();
  23. int count = 0;
  24. var queryParam = queryJson.ToJObject();
  25. var db = client.Queryable<BILL_INVENTORY>();
  26. //单据日期
  27. if (!queryParam["Btime"].IsEmpty() && !queryParam["Etime"].IsEmpty())
  28. {
  29. db.Where(ord => ord.F_addTime >= queryParam["Btime"].ToDate() && ord.F_addTime <= queryParam["Etime"].ToDate());
  30. }
  31. if (!queryParam["F_matNo"].IsEmpty())
  32. {
  33. string matNo = queryParam["F_matNo"].ToString();
  34. db.Where(ord => ord.F_matNo.Contains(matNo));
  35. }
  36. if (!queryParam["F_trayNo"].IsEmpty())
  37. {
  38. string trayNo = queryParam["F_trayNo"].ToString();
  39. db.Where(ord => ord.F_trayNo.Contains(trayNo));
  40. }
  41. if (!queryParam["F_boxNo"].IsEmpty())
  42. {
  43. string boxNo = queryParam["F_boxNo"].ToString();
  44. db.Where(ord => ord.F_boxNo.Contains(boxNo));
  45. }
  46. if (!queryParam["F_uidOrBox"].IsEmpty())
  47. {
  48. string boxNo = queryParam["F_uidOrBox"].ToString();
  49. db.Where(ord => ord.F_boxNo.Contains(boxNo)|| ord.F_uid.Contains(boxNo));
  50. }
  51. if (!queryParam["F_projectNo"].IsEmpty())
  52. {
  53. string projectNo = queryParam["F_projectNo"].ToString();
  54. db.Where(ord => ord.F_projectNo.Contains(projectNo));
  55. }
  56. if (!queryParam["F_matType"].IsEmpty())
  57. {
  58. string matType = queryParam["F_matType"].ToString();
  59. db.Where(ord => ord.F_matType == FuncStr.NullToInt(matType));
  60. }
  61. if (pagination.sord.ToUpper() != "ASC")
  62. {
  63. pagination.sidx = pagination.sidx + " DESC";
  64. }
  65. // (case when regexp_substr(ord.F_NO,'[^_]+',1,2) is null then ord.F_NO else regexp_substr(ord.F_NO,'[^_]+',1,2) end)
  66. var list = db.OrderBy(pagination.sidx).Select<dynamic>(@"
  67. [F_no],
  68. [F_warehouseNo],
  69. [F_projectNo],
  70. [F_matNo],
  71. [F_matName],
  72. [F_matType],
  73. [F_quantity],
  74. [F_lockQty],
  75. [F_trayNo],
  76. [F_boxNo],
  77. [F_batchNo],
  78. [F_memo],
  79. [F_addUserNo],
  80. [F_addTime]").ToPageList(pagination.page, pagination.rows, ref count);
  81. pagination.records = count;
  82. return list;
  83. }
  84. catch (Exception ex)
  85. {
  86. throw ex;
  87. }
  88. finally
  89. {
  90. client.Dispose();
  91. }
  92. }
  93. /// <summary>
  94. /// 获取分页数据
  95. /// <summary>
  96. /// <returns></returns>
  97. public IEnumerable<dynamic> GetCheckInventoryPageList(Pagination pagination, string queryJson)
  98. {
  99. SqlSugarClient client = null;
  100. try
  101. {
  102. client = SysDbCore.GetDbCtx();
  103. int count = 0;
  104. var queryParam = queryJson.ToJObject();
  105. var db = client.Queryable<BILL_INVENTORY, BASE_LOCATION>((inv, loc) => new object[] { JoinType.Inner, inv.F_trayNo == loc.F_trayNo }).Where((inv, loc) => loc.F_status == (int)EWareCellState.Stored);
  106. if (!queryParam["matNo"].IsEmpty())
  107. {
  108. string matNo = queryParam["matNo"].ToString();
  109. db.Where((inv, loc) => inv.F_matNo.Contains(matNo));
  110. }
  111. if (!queryParam["trayNo"].IsEmpty())
  112. {
  113. string trayNo = queryParam["trayNo"].ToString();
  114. db.Where((inv, loc) => inv.F_trayNo.Contains(trayNo));
  115. }
  116. if (!queryParam["matType"].IsEmpty())
  117. {
  118. string matType = queryParam["matType"].ToString();
  119. db.Where((inv, loc) => inv.F_matType == FuncStr.NullToInt(matType));
  120. }
  121. pagination.sidx = $"inv.{pagination.sidx }";
  122. if (pagination.sord.ToUpper() != "ASC")
  123. {
  124. pagination.sidx = $"{pagination.sidx } DESC";
  125. }
  126. var list = db.OrderBy(pagination.sidx).Select<dynamic>(@"
  127. inv.[F_no],
  128. inv.[F_warehouseNo],
  129. inv.[F_projectNo],
  130. inv.[F_matNo],
  131. inv.[F_matName],
  132. inv.[F_matType],
  133. inv.[F_quantity],
  134. inv.[F_lockQty],
  135. inv.[F_trayNo],
  136. inv.[F_boxNo],
  137. inv.[F_batchNo],
  138. inv.[F_memo],
  139. inv.[F_addUserNo],
  140. inv.[F_addTime]").ToPageList(pagination.page, pagination.rows, ref count);
  141. pagination.records = count;
  142. return list;
  143. }
  144. catch (Exception ex)
  145. {
  146. throw ex;
  147. }
  148. finally
  149. {
  150. client.Dispose();
  151. }
  152. }
  153. }
  154. }