BaseInvService.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. using SqlSugar;
  2. using wms.sqlsugar.model.sx;
  3. using WMS.BZModels;
  4. using WMS.Info;
  5. using WMS.BZSqlSugar;
  6. using WMS.BZModels.Dto.SX.BillInvDtos;
  7. using WMS.BZModels.Models.SX;
  8. namespace WMS.BZServices.SX
  9. {
  10. public class BaseInvService
  11. {
  12. private readonly Repository<BillInvnow> _billInvnowrepository;
  13. public BaseInvService(Repository<BillInvnow> billInvnowrepository)
  14. {
  15. _billInvnowrepository = billInvnowrepository;
  16. }
  17. public PagedInfo<BillInvNowDto> GetPageList(Pagination pagination, BillInvNowQueryDto billInvNowQueryDto)
  18. {
  19. ISugarQueryable<BillInvNowDto> sugarQueryable = GetQueryable(billInvNowQueryDto);
  20. var list = sugarQueryable.ToPage(pagination);
  21. return list;
  22. }
  23. public PagedInfo<BillInvNowDto> GetPageList2(Pagination pagination, BillInvNowQueryDto2 billInvNowQueryDto)
  24. {
  25. ISugarQueryable<BillInvNowDto> sugarQueryable = GetQueryable2(billInvNowQueryDto);
  26. var list = sugarQueryable.ToPage(pagination);
  27. return list;
  28. }
  29. public IList<BillInvNowDto> GetList(BillInvNowQueryDto billInvNowQueryDto)
  30. {
  31. ISugarQueryable<BillInvNowDto> sugarQueryable = GetQueryable(billInvNowQueryDto);
  32. var list = sugarQueryable.ToList();
  33. return list;
  34. }
  35. private ISugarQueryable<BillInvNowDto> GetQueryable(BillInvNowQueryDto billInvNowQueryDto)
  36. {
  37. var predicate = Expressionable.Create<BillInvnow, BaseWarecell, BaseWarehouse>();
  38. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.KeyWord), (billInvnow, warecell, warehouse) => billInvnow.RFIDBarCode.Contains(billInvNowQueryDto.KeyWord) || billInvnow.ContGrpBarCode.Contains(billInvNowQueryDto.KeyWord) || billInvnow.MatCode.Contains(billInvNowQueryDto.KeyWord) || billInvnow.MatName.Contains(billInvNowQueryDto.KeyWord) || billInvnow.InvBarCode.Contains(billInvNowQueryDto.KeyWord));
  39. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Id), (billInvnow, warecell, warehouse) => billInvnow.Id.ToString().Contains(billInvNowQueryDto.Id));
  40. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.WarehouseId), (billInvnow, warecell, warehouse) => billInvnow.WarehouseId.ToString().Contains(billInvNowQueryDto.WarehouseId));
  41. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ContGrpId), (billInvnow, warecell, warehouse) => billInvnow.ContGrpId.ToString().Contains(billInvNowQueryDto.ContGrpId));
  42. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.EquContGrpId), (billInvnow, warecell, warehouse) => billInvnow.ContGrpId.ToString().Equals(billInvNowQueryDto.EquContGrpId));
  43. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.MatCode), (billInvnow, warecell, warehouse) => billInvnow.MatCode.Contains(billInvNowQueryDto.MatCode));
  44. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.MatName), (billInvnow, warecell, warehouse) => billInvnow.MatName.Contains(billInvNowQueryDto.MatName));
  45. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.RFIDBarCode), (billInvnow, warecell, warehouse) => billInvnow.RFIDBarCode.Contains(billInvNowQueryDto.RFIDBarCode));
  46. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.InvBarCode), (billInvnow, warecell, warehouse) => billInvnow.InvBarCode.Contains(billInvNowQueryDto.InvBarCode));
  47. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutRow), (billInvnow, warecell, warehouse) => billInvnow.PutRow.Equals(billInvNowQueryDto.PutRow));
  48. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutCol), (billInvnow, warecell, warehouse) => billInvnow.PutCol.Equals(billInvNowQueryDto.PutCol));
  49. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutLayer), (billInvnow, warecell, warehouse) => billInvnow.PutLayer.Equals(billInvNowQueryDto.PutLayer));
  50. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Grade), (billInvnow, warecell, warehouse) => billInvnow.Grade.Contains(billInvNowQueryDto.Grade));
  51. predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.OneInTimeBegin.HasValue, (billInvnow, warecell, warehouse) => billInvnow.OneInTime >= billInvNowQueryDto.OneInTimeBegin);
  52. predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.OneInTimeEnd.HasValue, (billInvnow, warecell, warehouse) => billInvnow.OneInTime <= billInvNowQueryDto.OneInTimeEnd);
  53. predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.ProductTimeBegin.HasValue, (billInvnow, warecell, warehouse) => billInvnow.ProductTime >= billInvNowQueryDto.ProductTimeBegin);
  54. predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.ProductTimeEnd.HasValue, (billInvnow, warecell, warehouse) => billInvnow.ProductTime <= billInvNowQueryDto.ProductTimeEnd);
  55. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Tunnel), (billInvnow, warecell, warehouse) => warecell.Tunnel.Equals(billInvNowQueryDto.Tunnel));
  56. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Code), (billInvnow, warecell, warehouse) => warecell.Code.Contains(billInvNowQueryDto.Code));
  57. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsSurplus), (billInvnow, warecell, warehouse) => billInvnow.IsSurplus.Equals(billInvNowQueryDto.IsSurplus));
  58. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsRework), (billInvnow, warecell, warehouse) => billInvnow.IsRework.Equals(billInvNowQueryDto.IsRework));
  59. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsFail), (billInvnow, warecell, warehouse) => billInvnow.IsFail.Equals(billInvNowQueryDto.IsFail));
  60. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsFast), (billInvnow, warecell, warehouse) => billInvnow.IsFast.Equals(billInvNowQueryDto.IsFast));
  61. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsBack), (billInvnow, warecell, warehouse) => billInvnow.IsBack.Equals(billInvNowQueryDto.IsBack));
  62. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsBlack), (billInvnow, warecell, warehouse) => billInvnow.IsBlack.Equals(billInvNowQueryDto.IsBlack));
  63. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsControlpanel), (billInvnow, warecell, warehouse) => billInvnow.IsControlpanel.Equals(billInvNowQueryDto.IsControlpanel));
  64. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTorsChk), (billInvnow, warecell, warehouse) => billInvnow.IsTorsChk.Equals(billInvNowQueryDto.IsTorsChk));
  65. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsCore), (billInvnow, warecell, warehouse) => billInvnow.IsCore.Equals(billInvNowQueryDto.IsCore));
  66. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.WbGroupCode), (billInvnow, warecell, warehouse) => billInvnow.WbGroupCode.Contains(billInvNowQueryDto.WbGroupCode));
  67. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.SolderCount), (billInvnow, warecell, warehouse) => billInvnow.SolderCount.ToString().Contains(billInvNowQueryDto.SolderCount));
  68. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.HoldTime), (billInvnow, warecell, warehouse) => billInvnow.HoldTime.ToString().Contains(billInvNowQueryDto.HoldTime));
  69. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Wind), (billInvnow, warecell, warehouse) => billInvnow.Wind.ToString().Contains(billInvNowQueryDto.Wind));
  70. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.TorsChkQty), (billInvnow, warecell, warehouse) => billInvnow.TorsChkQty.Equals(billInvNowQueryDto.TorsChkQty));
  71. //if (!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut) && billInvNowQueryDto?.IsTimeOut == "0")
  72. //{
  73. // predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut), (billInvnow, warecell, warehouse) => (DateTime.Now - billInvnow.ProductTime).TotalHours <= 72 && billInvnow.InDocsNo.ToLower().Contains("cha"));
  74. //}
  75. //else
  76. if (!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut) && billInvNowQueryDto?.IsTimeOut == "1")
  77. {
  78. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut), (billInvnow, warecell, warehouse) => (billInvnow.ProductMachCode.Contains("R") && billInvnow.OneInTime < DateTime.Now.AddHours(-72)) || (!billInvnow.ProductMachCode.Contains("R") && billInvnow.ProductTime < DateTime.Now.AddHours(-72)));
  79. }
  80. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ExecStateCode), (billInvnow, warecell, warehouse) => billInvnow.ExecStateCode.Equals(billInvNowQueryDto.ExecStateCode));
  81. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ContGrpType), (billInvnow, warecell, warehouse) => billInvnow.ContGrpType.Equals(billInvNowQueryDto.ContGrpType));
  82. if (!string.IsNullOrEmpty(billInvNowQueryDto?.InvStateCode))
  83. {
  84. var enums = (InvState)Enum.ToObject(typeof(InvState), Convert.ToInt32(billInvNowQueryDto?.InvStateCode));
  85. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.InvStateCode), (billInvnow, warecell, warehouse) => billInvnow.InvStateCode.Equals(enums.ToString()));
  86. }
  87. var sugarQueryable = _billInvnowrepository.Context.Queryable<BillInvnow, BaseWarecell, BaseWarehouse>((billInvnow, warecell, warehouse) => new object[] {
  88. JoinType.Left,billInvnow.ContGrpId == warecell.ContGrpId && billInvnow.WarehouseId ==warecell.WarehouseId ,
  89. JoinType.Left, billInvnow.WarehouseId==warehouse.Id, JoinType.Left, warecell.WarehouseId==warehouse.Id}).Where(predicate.ToExpression())
  90. .Select((billInvnow, warecell, warehouse) => new BillInvNowDto
  91. {
  92. Id = billInvnow.Id.ToString(),
  93. WarehouseId = billInvnow.WarehouseId.ToString(),
  94. WarehouseName = warehouse.Name,
  95. ContGrpId = billInvnow.ContGrpId.ToString(),
  96. ContGrpBarCode = billInvnow.ContGrpBarCode,
  97. ContGrpType = (int)billInvnow.ContGrpType,
  98. BoxBarCode = billInvnow.BoxBarCode,
  99. BomDocsNo = billInvnow.BomDocsNo,
  100. BomMatId = billInvnow.BomMatId.ToString(),
  101. BomMatCode = billInvnow.BomMatCode,
  102. BomMatName = billInvnow.BomMatName,
  103. BomSetId = billInvnow.BomSetId.ToString(),
  104. ExecStateCode = billInvnow.ExecStateCode,
  105. InvStateCode = billInvnow.InvStateCode,
  106. ExecDocsNo = billInvnow.ExecDocsNo,
  107. ExecDocsRowNo = billInvnow.ExecDocsRowNo,
  108. ExecDocsTypeCode = billInvnow.ExecDocsTypeCode,
  109. InvInOut = (int)billInvnow.InvInOut,
  110. ExecWho = billInvnow.ExecWho,
  111. ExecTime = billInvnow.ExecTime,
  112. PutRow = billInvnow.PutRow,
  113. PutCol = billInvnow.PutCol,
  114. PutLayer = billInvnow.PutLayer,
  115. InvBarCode = billInvnow.InvBarCode,
  116. InDocsNo = billInvnow.InDocsNo,
  117. InDocsRowNo = billInvnow.InDocsRowNo,
  118. SuppCode = billInvnow.SuppCode,
  119. SuppName = billInvnow.SuppName,
  120. CustCode = billInvnow.CustCode,
  121. CustName = billInvnow.CustName,
  122. MatId = billInvnow.MatId.ToString(),
  123. MatCode = billInvnow.MatCode,
  124. MatName = billInvnow.MatName,
  125. TolWQty = billInvnow.TolWQty,
  126. NetWQty = billInvnow.NetWQty,
  127. TareWQty = billInvnow.TareWQty,
  128. LengthQty = billInvnow.LengthQty,
  129. CaQty = billInvnow.CaQty,
  130. SolderQty = billInvnow.SolderQty,
  131. ContUsageQty = billInvnow.ContUsageQty,
  132. BatchNo = billInvnow.BatchNo,
  133. ProductTime = billInvnow.ProductTime,
  134. OneInTime = billInvnow.OneInTime,
  135. RodBarCode = billInvnow.RodBarCode,
  136. HWBarCode = billInvnow.HWBarCode,
  137. RFIDBarCode = billInvnow.RFIDBarCode,
  138. CLBarCode = billInvnow.CLBarCode,
  139. HWTypeCode = billInvnow.HWTypeCode,
  140. BoilerNo = billInvnow.BoilerNo,
  141. PackNo = billInvnow.PackNo,
  142. BrandNo = billInvnow.BrandNo,
  143. ExecStd = billInvnow.ExecStd,
  144. LicenceCode = billInvnow.LicenceCode,
  145. IsSurplus = billInvnow.IsSurplus,
  146. IsRework = billInvnow.IsRework,
  147. IsBlack = billInvnow.IsBlack,
  148. IsCore = billInvnow.IsCore,
  149. IsFast = billInvnow.IsFast,
  150. IsFail = billInvnow.IsFail,
  151. FailReason = billInvnow.FailReason,
  152. SilkTypeCode = billInvnow.SilkTypeCode,
  153. Grade = billInvnow.Grade,
  154. IsBack = billInvnow.IsBack,
  155. BackReason = billInvnow.BackReason,
  156. IsTorsChk = billInvnow.IsTorsChk,
  157. TorsChkQty = billInvnow.TorsChkQty,
  158. TorsChkTime = billInvnow.TorsChkTime,
  159. TorsChkValue = billInvnow.TorsChkValue,
  160. TorsChkMachCode = billInvnow.TorsChkMachCode,
  161. ProcessDocsCode = billInvnow.ProcessDocsCode,
  162. ProductMachCode = billInvnow.ProductMachCode,
  163. ProductLineNo = billInvnow.ProductLineNo,
  164. Wind = billInvnow.Wind,
  165. AddWho = billInvnow.AddWho,
  166. AddTime = billInvnow.AddTime,
  167. EditWho = billInvnow.EditWho,
  168. EditTime = billInvnow.EditTime,
  169. Size = billInvnow.Size,
  170. Memo = billInvnow.Memo,
  171. Tunnel = warecell.Tunnel,
  172. Code = warecell.Code,
  173. CellState = warecell.IsStop,
  174. SolderCount = billInvnow.SolderCount,
  175. HoldTime = billInvnow.HoldTime,
  176. IsControlpanel = billInvnow.IsControlpanel,
  177. WbGroupCode = billInvnow.WbGroupCode,
  178. SkuCode = billInvnow.SkuCode,
  179. PreStock = billInvnow.PreStock,
  180. TorsChkChord = billInvnow.TorsChkChord,
  181. TorsChkChordIsGood = billInvnow.TorsChkChordIsGood,
  182. TorsChkFlatness = billInvnow.TorsChkFlatness,
  183. TorsChkFlatnessIsGood = billInvnow.TorsChkFlatnessIsGood,
  184. TorsChkStation = billInvnow.TorsChkStation,
  185. TorsChkValueIsGood = billInvnow.TorsChkValueIsGood,
  186. }).MergeTable();
  187. return sugarQueryable;
  188. }
  189. private ISugarQueryable<BillInvNowDto> GetQueryable2(BillInvNowQueryDto2 billInvNowQueryDto)
  190. {
  191. var predicate = Expressionable.Create<BillInvnow, VPBoxDocSku>();
  192. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.KeyWord), (billInvnow, pbox) => billInvnow.RFIDBarCode.Contains(billInvNowQueryDto.KeyWord) || billInvnow.ContGrpBarCode.Contains(billInvNowQueryDto.KeyWord) || billInvnow.MatCode.Contains(billInvNowQueryDto.KeyWord) || billInvnow.MatName.Contains(billInvNowQueryDto.KeyWord) || billInvnow.InvBarCode.Contains(billInvNowQueryDto.KeyWord));
  193. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Id), (billInvnow,pbox) => billInvnow.Id.ToString().Contains(billInvNowQueryDto.Id));
  194. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.WarehouseId), (billInvnow,pbox) => billInvnow.WarehouseId.ToString().Contains(billInvNowQueryDto.WarehouseId));
  195. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ContGrpId), (billInvnow,pbox) => billInvnow.ContGrpId.ToString().Contains(billInvNowQueryDto.ContGrpId));
  196. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.EquContGrpId), (billInvnow,pbox) => billInvnow.ContGrpId.ToString().Equals(billInvNowQueryDto.EquContGrpId));
  197. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.MatCode), (billInvnow,pbox) => billInvnow.MatCode.Contains(billInvNowQueryDto.MatCode));
  198. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.MatName), (billInvnow,pbox) => billInvnow.MatName.Contains(billInvNowQueryDto.MatName));
  199. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.RFIDBarCode), (billInvnow,pbox) => billInvnow.RFIDBarCode.Contains(billInvNowQueryDto.RFIDBarCode));
  200. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.InvBarCode), (billInvnow,pbox) => billInvnow.InvBarCode.Contains(billInvNowQueryDto.InvBarCode));
  201. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutRow), (billInvnow,pbox) => billInvnow.PutRow.Equals(billInvNowQueryDto.PutRow));
  202. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutCol), (billInvnow,pbox) => billInvnow.PutCol.Equals(billInvNowQueryDto.PutCol));
  203. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutLayer), (billInvnow,pbox) => billInvnow.PutLayer.Equals(billInvNowQueryDto.PutLayer));
  204. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Grade), (billInvnow,pbox) => billInvnow.Grade.Contains(billInvNowQueryDto.Grade));
  205. //predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.OneInTimeBegin.HasValue, (billInvnow,pbox) => billInvnow.OneInTime >= billInvNowQueryDto.OneInTimeBegin);
  206. //predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.OneInTimeEnd.HasValue, (billInvnow,pbox) => billInvnow.OneInTime <= billInvNowQueryDto.OneInTimeEnd);
  207. //predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.ProductTimeBegin.HasValue, (billInvnow,pbox) => billInvnow.ProductTime >= billInvNowQueryDto.ProductTimeBegin);
  208. //predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.ProductTimeEnd.HasValue, (billInvnow,pbox) => billInvnow.ProductTime <= billInvNowQueryDto.ProductTimeEnd);
  209. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Tunnel), (billInvnow,pbox) => warecell.Tunnel.Equals(billInvNowQueryDto.Tunnel));
  210. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Code), (billInvnow,pbox) => warecell.Code.Contains(billInvNowQueryDto.Code));
  211. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsSurplus), (billInvnow,pbox) => billInvnow.IsSurplus.Equals(billInvNowQueryDto.IsSurplus));
  212. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsRework), (billInvnow,pbox) => billInvnow.IsRework.Equals(billInvNowQueryDto.IsRework));
  213. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsFail), (billInvnow,pbox) => billInvnow.IsFail.Equals(billInvNowQueryDto.IsFail));
  214. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsFast), (billInvnow,pbox) => billInvnow.IsFast.Equals(billInvNowQueryDto.IsFast));
  215. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsBack), (billInvnow,pbox) => billInvnow.IsBack.Equals(billInvNowQueryDto.IsBack));
  216. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsBlack), (billInvnow,pbox) => billInvnow.IsBlack.Equals(billInvNowQueryDto.IsBlack));
  217. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsControlpanel), (billInvnow,pbox) => billInvnow.IsControlpanel.Equals(billInvNowQueryDto.IsControlpanel));
  218. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTorsChk), (billInvnow,pbox) => billInvnow.IsTorsChk.Equals(billInvNowQueryDto.IsTorsChk));
  219. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsCore), (billInvnow,pbox) => billInvnow.IsCore.Equals(billInvNowQueryDto.IsCore));
  220. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.WbGroupCode), (billInvnow, pbox) => billInvnow.WbGroupCode == billInvNowQueryDto.WbGroupCode);
  221. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.SolderCount), (billInvnow,pbox) => billInvnow.SolderCount.ToString().Contains(billInvNowQueryDto.SolderCount));
  222. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.HoldTime), (billInvnow,pbox) => billInvnow.HoldTime.ToString().Contains(billInvNowQueryDto.HoldTime));
  223. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Wind), (billInvnow, pbox) => billInvnow.Wind.ToString() == billInvNowQueryDto.Wind);
  224. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.SkuCode), (billInvnow, pbox) => pbox.SkuCode.ToString().Contains(billInvNowQueryDto.SkuCode));
  225. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.HwTypeCode), (billInvnow, pbox) => billInvnow.HWTypeCode.ToString().Contains(billInvNowQueryDto.HwTypeCode));
  226. //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.TorsChkQty), (billInvnow,pbox) => billInvnow.TorsChkQty.Equals(billInvNowQueryDto.TorsChkQty));
  227. //if (!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut) && billInvNowQueryDto?.IsTimeOut == "0")
  228. //{
  229. // predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut), (billInvnow,pbox) => (DateTime.Now - billInvnow.ProductTime).TotalHours <= 72 && billInvnow.InDocsNo.ToLower().Contains("cha"));
  230. //}
  231. //else
  232. if (!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut) && billInvNowQueryDto?.IsTimeOut == "1")
  233. {
  234. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut), (billInvnow, pbox) => (billInvnow.ProductMachCode.Contains("R") && billInvnow.OneInTime < DateTime.Now.AddHours(-72)) || (!billInvnow.ProductMachCode.Contains("R") && billInvnow.ProductTime < DateTime.Now.AddHours(-72)));
  235. }
  236. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ExecStateCode), (billInvnow, pbox) => billInvnow.ExecStateCode.Equals(billInvNowQueryDto.ExecStateCode));
  237. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ContGrpType), (billInvnow, pbox) => billInvnow.ContGrpType.Equals(billInvNowQueryDto.ContGrpType));
  238. if (!string.IsNullOrEmpty(billInvNowQueryDto?.InvStateCode))
  239. {
  240. var enums = (InvState)Enum.ToObject(typeof(InvState), Convert.ToInt32(billInvNowQueryDto?.InvStateCode));
  241. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.InvStateCode), (billInvnow, pbox) => billInvnow.InvStateCode.Equals(enums.ToString()));
  242. }
  243. var sugarQueryable = _billInvnowrepository.Context.Queryable<BillInvnow, VPBoxDocSku>((billInvnow, pbox) => new object[] {
  244. JoinType.Inner, billInvnow.InDocsNo.StartsWith(pbox.DocsNo)
  245. }).Where(predicate.ToExpression()).Where((billInvnow, pbox) => billInvnow.InvStateCode == "InvEcecState_In")
  246. .Select((billInvnow, pbox) => new BillInvNowDto
  247. {
  248. Id = billInvnow.Id.ToString(),
  249. WarehouseId = billInvnow.WarehouseId.ToString(),
  250. //WarehouseName = warehouse.Name,
  251. ContGrpId = billInvnow.ContGrpId.ToString(),
  252. ContGrpBarCode = billInvnow.ContGrpBarCode,
  253. ContGrpType = (int)billInvnow.ContGrpType,
  254. BoxBarCode = billInvnow.BoxBarCode,
  255. BomDocsNo = billInvnow.BomDocsNo,
  256. BomMatId = billInvnow.BomMatId.ToString(),
  257. BomMatCode = billInvnow.BomMatCode,
  258. BomMatName = billInvnow.BomMatName,
  259. BomSetId = billInvnow.BomSetId.ToString(),
  260. ExecStateCode = billInvnow.ExecStateCode,
  261. InvStateCode = billInvnow.InvStateCode,
  262. ExecDocsNo = billInvnow.ExecDocsNo,
  263. ExecDocsRowNo = billInvnow.ExecDocsRowNo,
  264. ExecDocsTypeCode = billInvnow.ExecDocsTypeCode,
  265. InvInOut = (int)billInvnow.InvInOut,
  266. ExecWho = billInvnow.ExecWho,
  267. ExecTime = billInvnow.ExecTime,
  268. PutRow = billInvnow.PutRow,
  269. PutCol = billInvnow.PutCol,
  270. PutLayer = billInvnow.PutLayer,
  271. InvBarCode = billInvnow.InvBarCode,
  272. InDocsNo = billInvnow.InDocsNo,
  273. InDocsRowNo = billInvnow.InDocsRowNo,
  274. SuppCode = billInvnow.SuppCode,
  275. SuppName = billInvnow.SuppName,
  276. CustCode = billInvnow.CustCode,
  277. CustName = billInvnow.CustName,
  278. MatId = billInvnow.MatId.ToString(),
  279. MatCode = billInvnow.MatCode,
  280. MatName = billInvnow.MatName,
  281. TolWQty = billInvnow.TolWQty,
  282. NetWQty = billInvnow.NetWQty,
  283. TareWQty = billInvnow.TareWQty,
  284. LengthQty = billInvnow.LengthQty,
  285. CaQty = billInvnow.CaQty,
  286. SolderQty = billInvnow.SolderQty,
  287. ContUsageQty = billInvnow.ContUsageQty,
  288. BatchNo = billInvnow.BatchNo,
  289. ProductTime = billInvnow.ProductTime,
  290. OneInTime = billInvnow.OneInTime,
  291. RodBarCode = billInvnow.RodBarCode,
  292. HWBarCode = billInvnow.HWBarCode,
  293. RFIDBarCode = billInvnow.RFIDBarCode,
  294. CLBarCode = billInvnow.CLBarCode,
  295. HWTypeCode = billInvnow.HWTypeCode,
  296. BoilerNo = billInvnow.BoilerNo,
  297. PackNo = billInvnow.PackNo,
  298. BrandNo = billInvnow.BrandNo,
  299. ExecStd = billInvnow.ExecStd,
  300. LicenceCode = billInvnow.LicenceCode,
  301. IsSurplus = billInvnow.IsSurplus,
  302. IsRework = billInvnow.IsRework,
  303. IsBlack = billInvnow.IsBlack,
  304. IsCore = billInvnow.IsCore,
  305. IsFast = billInvnow.IsFast,
  306. IsFail = billInvnow.IsFail,
  307. FailReason = billInvnow.FailReason,
  308. SilkTypeCode = billInvnow.SilkTypeCode,
  309. Grade = billInvnow.Grade,
  310. IsBack = billInvnow.IsBack,
  311. BackReason = billInvnow.BackReason,
  312. IsTorsChk = billInvnow.IsTorsChk,
  313. TorsChkQty = billInvnow.TorsChkQty,
  314. TorsChkTime = billInvnow.TorsChkTime,
  315. TorsChkValue = billInvnow.TorsChkValue,
  316. TorsChkMachCode = billInvnow.TorsChkMachCode,
  317. ProcessDocsCode = billInvnow.ProcessDocsCode,
  318. ProductMachCode = billInvnow.ProductMachCode,
  319. ProductLineNo = billInvnow.ProductLineNo,
  320. Wind = billInvnow.Wind,
  321. AddWho = billInvnow.AddWho,
  322. AddTime = billInvnow.AddTime,
  323. EditWho = billInvnow.EditWho,
  324. EditTime = billInvnow.EditTime,
  325. Size = billInvnow.Size,
  326. Memo = billInvnow.Memo,
  327. //Tunnel = warecell.Tunnel,
  328. //Code = warecell.Code,
  329. //CellState = warecell.IsStop,
  330. SolderCount = billInvnow.SolderCount,
  331. HoldTime = billInvnow.HoldTime,
  332. IsControlpanel = billInvnow.IsControlpanel,
  333. WbGroupCode = billInvnow.WbGroupCode,
  334. SkuCode = pbox.SkuCode,
  335. PreStock = billInvnow.PreStock,
  336. TorsChkChord = billInvnow.TorsChkChord,
  337. TorsChkChordIsGood = billInvnow.TorsChkChordIsGood,
  338. TorsChkFlatness = billInvnow.TorsChkFlatness,
  339. TorsChkFlatnessIsGood = billInvnow.TorsChkFlatnessIsGood,
  340. TorsChkStation = billInvnow.TorsChkStation,
  341. TorsChkValueIsGood = billInvnow.TorsChkValueIsGood,
  342. });
  343. return sugarQueryable;
  344. }
  345. public List<EnumEntity> InvStateList()
  346. {
  347. return BZModels.Extensions.EnumToList<InvState>();
  348. }
  349. public List<EnumEntity> TaskStatusList()
  350. {
  351. return BZModels.Extensions.EnumToList<BZModels.SXTaskStatus>();
  352. }
  353. public List<EnumEntity> TaskTypeList()
  354. {
  355. return BZModels.Extensions.EnumToList<TaskType>();
  356. }
  357. public List<EnumEntity2> TaskBusTypeList()
  358. {
  359. return BZModels.Extensions.EnumToListDesc<SxTaskBusType>();
  360. }
  361. public List<EnumEntity> AGVTaskTypeList()
  362. {
  363. return BZModels.Extensions.EnumToList<AGVTaskType>();
  364. }
  365. public List<EnumEntity> FackbeekTypeList()
  366. {
  367. return BZModels.Extensions.EnumToList<FackbeekType>();
  368. }
  369. public List<EnumEntity> AGVTaskStatus()
  370. {
  371. return BZModels.Extensions.EnumToList<AGVTaskStatus>();
  372. }
  373. public List<EnumEntity> ContGrpTypeList()
  374. {
  375. return BZModels.Extensions.EnumToList<ContGrpType>();
  376. }
  377. public List<EnumEntity2> DocTypeList()
  378. {
  379. return BZModels.Extensions.EnumToListIdDesc<DocType>();
  380. }
  381. public List<EnumEntity> DocStateList()
  382. {
  383. return BZModels.Extensions.EnumToList<DocState>();
  384. }
  385. public List<EnumEntity> LocationStateList()
  386. {
  387. return BZModels.Extensions.EnumToList<LocationState>();
  388. }
  389. public List<EnumEntity> AutoManualOutTypeList()
  390. {
  391. return BZModels.Extensions.EnumToList<AutoManualOutType>();
  392. }
  393. }
  394. }