PTDataService.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using wms.dataservice.IDataSetvice;
  5. using wms.sqlsugar.model.pt;
  6. using wms.sqlsugar;
  7. using SqlSugar;
  8. using wms.dto.request.pt.dto;
  9. using wms.dto.response.pt.dto;
  10. using wms.dto;
  11. using System.Linq;
  12. namespace wms.dataservice.DataService
  13. {
  14. public class PTDataService: IPTDataService
  15. {
  16. Repository<ptBaseWareLocation> _baseWareLocationrepository => new Repository<ptBaseWareLocation>();
  17. Repository<ptBillDocsinfo> _billDocument => new Repository<ptBillDocsinfo>();
  18. public List<string> GetStockByEquip(string code)
  19. {
  20. var list = _baseWareLocationrepository.Context.Queryable<ptBaseWareLocation, ptBillInvnow>((location, stock) => new object[]
  21. {
  22. JoinType.Inner, stock.ContGrpId == location.ContGrpId,
  23. })
  24. .Where((location, stock) => stock.InvStateCode == InvState.InvEcecState_BuildUp.ToString())
  25. .WhereIF(!string.IsNullOrEmpty(code), (location, stock) => location.Code.Contains(code))
  26. .Select((location, stock) => stock.HWBarCode).ToList();
  27. return list;
  28. }
  29. public (List<PtDocumentsResponse>, int) GetPageDocumentsList(PtDocumentsRequest request)
  30. {
  31. int count = 0;
  32. var list = _billDocument.Context.Queryable<ptBillDocsinfo, ptBaseWarehouse>((document, house) => new object[]
  33. {
  34. JoinType.Left, document.WarehouseId == house.Id
  35. })
  36. .WhereIF(!string.IsNullOrEmpty(request.DocsNo), (document, house) => document.DocsNo.Contains(request.DocsNo))
  37. .WhereIF(!string.IsNullOrEmpty(request.ReqNo), (document, house) => document.ReqNo.Contains(request.ReqNo))
  38. .WhereIF(!string.IsNullOrEmpty(request.StateCode), (document, house) => document.StateNum == int.Parse(request.StateCode))
  39. .WhereIF(!string.IsNullOrEmpty(request.TypeCode), (document, house) => document.Type == request.TypeCode)
  40. .Select((document, house) => new PtDocumentsResponse()
  41. {
  42. Id = document.Id,
  43. WarehouseCode = house.Code,
  44. DocNo = document.DocsNo,
  45. ReqNo = document.ReqNo,
  46. TypeCode = document.Type.ToString(),
  47. StateCode = document.StateNum.ToString(),
  48. DownQty = document.DownQty,
  49. //DownErrReason = document.DownErrReason,
  50. //Remark = document.Remark,
  51. AddWho = document.AddWho,
  52. EditWho = document.EditWho,
  53. AddTime = document.AddTime,
  54. EditTime = document.EditTime
  55. })
  56. .ToPageList(request.PageIndex, request.PageSize, ref count);
  57. //list = list.Skip((request.PageIndex - 1) * request.PageSize).Take(request.PageSize).ToList();
  58. return (list.ToList(), count);
  59. }
  60. public (List<PtDocumentsdetailList>, int) GetDocumentDetailListByDocsNo(PtDocumentsRequest request)
  61. {
  62. int count = 0;
  63. var list = _billDocument.Context.Queryable<ptBillDocument, ptBillBarcode, ptBaseMater, ptBillInvnow, ptBaseWareLocation>((document, barcode, mater, container, location) => new object[]
  64. {
  65. JoinType.Inner, document.DocNo == barcode.InDocsNo,
  66. JoinType.Inner, barcode.MatId == mater.Id,
  67. JoinType.Inner, barcode.RFIDBarCode == container.RFIDBarCode,
  68. JoinType.Inner, container.ContGrpId == location.ContGrpId
  69. })
  70. .Where((document, barcode, mater, container, location) => container.InvStateCode == InvState.InvEcecState_In.ToString() && location.StateNum == LocationState.LocationState_Full.GetHashCode()
  71. )
  72. .WhereIF(!string.IsNullOrEmpty(request.DocsNo), (document, barcode, mater, container, location) => document.DocNo.Contains(request.DocsNo))
  73. .WhereIF(!string.IsNullOrEmpty(request.Rfid), (document, barcode, mater, container, location) => container.RFIDBarCode.Contains(request.Rfid))
  74. .WhereIF(!string.IsNullOrEmpty(request.location), (document, barcode, mater, container, location) => location.Code.Contains(request.location))
  75. .Select((document, barcode, mater, container, location) => new PtDocumentsdetailList()
  76. {
  77. WarehouseCode = location.WarehouseCode,
  78. MatCode = mater.Code,
  79. MatName = mater.Name,
  80. Location = location.Code,
  81. RFIDBarCode = barcode.RFIDBarCode,
  82. RodBarCode = container.RodBarCode,
  83. IsFast = barcode.IsFast,
  84. InvBarCode = container.InvBarCode,
  85. BoilerNo = container.BoilerNo,
  86. PackNo = container.PackNo,
  87. ProductTime = barcode.ProductTime,
  88. CaQty = barcode.CaQty,
  89. State = container.ExecStateCode,
  90. Qty = barcode.TotalWtQty
  91. })
  92. .ToPageList(request.PageIndex, request.PageSize, ref count);
  93. //list = list.Skip((request.PageIndex - 1) * request.PageSize).Take(request.PageSize).ToList();
  94. return (list.ToList(), count);
  95. }
  96. }
  97. }