using System; using System.Collections.Generic; using System.Text; using wms.dataservice.IDataSetvice; using wms.sqlsugar.model.pt; using wms.sqlsugar; using SqlSugar; using wms.dto.request.pt.dto; using wms.dto.response.pt.dto; using wms.dto; using System.Linq; namespace wms.dataservice.DataService { public class PTDataService: IPTDataService { Repository _baseWareLocationrepository => new Repository(); Repository _billDocument => new Repository(); public List GetStockByEquip(string code) { var list = _baseWareLocationrepository.Context.Queryable((location, stock) => new object[] { JoinType.Inner, stock.ContGrpId == location.ContGrpId, }) .Where((location, stock) => stock.InvStateCode == InvState.InvEcecState_BuildUp.ToString()) .WhereIF(!string.IsNullOrEmpty(code), (location, stock) => location.Code.Contains(code)) .Select((location, stock) => stock.HWBarCode).ToList(); return list; } public (List, int) GetPageDocumentsList(PtDocumentsRequest request) { int count = 0; var list = _billDocument.Context.Queryable((document, house) => new object[] { JoinType.Left, document.WarehouseId == house.Id }) .WhereIF(!string.IsNullOrEmpty(request.DocsNo), (document, house) => document.DocsNo.Contains(request.DocsNo)) .WhereIF(!string.IsNullOrEmpty(request.ReqNo), (document, house) => document.ReqNo.Contains(request.ReqNo)) .WhereIF(!string.IsNullOrEmpty(request.StateCode), (document, house) => document.StateNum == int.Parse(request.StateCode)) .WhereIF(!string.IsNullOrEmpty(request.TypeCode), (document, house) => document.Type == request.TypeCode) .Select((document, house) => new PtDocumentsResponse() { Id = document.Id, WarehouseCode = house.Code, DocNo = document.DocsNo, ReqNo = document.ReqNo, TypeCode = document.Type.ToString(), StateCode = document.StateNum.ToString(), DownQty = document.DownQty, //DownErrReason = document.DownErrReason, //Remark = document.Remark, AddWho = document.AddWho, EditWho = document.EditWho, AddTime = document.AddTime, EditTime = document.EditTime }) .ToPageList(request.PageIndex, request.PageSize, ref count); //list = list.Skip((request.PageIndex - 1) * request.PageSize).Take(request.PageSize).ToList(); return (list.ToList(), count); } public (List, int) GetDocumentDetailListByDocsNo(PtDocumentsRequest request) { int count = 0; var list = _billDocument.Context.Queryable((document, barcode, mater, container, location) => new object[] { JoinType.Inner, document.DocNo == barcode.InDocsNo, JoinType.Inner, barcode.MatId == mater.Id, JoinType.Inner, barcode.RFIDBarCode == container.RFIDBarCode, JoinType.Inner, container.ContGrpId == location.ContGrpId }) .Where((document, barcode, mater, container, location) => container.InvStateCode == InvState.InvEcecState_In.ToString() && location.StateNum == LocationState.LocationState_Full.GetHashCode() ) .WhereIF(!string.IsNullOrEmpty(request.DocsNo), (document, barcode, mater, container, location) => document.DocNo.Contains(request.DocsNo)) .WhereIF(!string.IsNullOrEmpty(request.Rfid), (document, barcode, mater, container, location) => container.RFIDBarCode.Contains(request.Rfid)) .WhereIF(!string.IsNullOrEmpty(request.location), (document, barcode, mater, container, location) => location.Code.Contains(request.location)) .Select((document, barcode, mater, container, location) => new PtDocumentsdetailList() { WarehouseCode = location.WarehouseCode, MatCode = mater.Code, MatName = mater.Name, Location = location.Code, RFIDBarCode = barcode.RFIDBarCode, RodBarCode = container.RodBarCode, IsFast = barcode.IsFast, InvBarCode = container.InvBarCode, BoilerNo = container.BoilerNo, PackNo = container.PackNo, ProductTime = barcode.ProductTime, CaQty = barcode.CaQty, State = container.ExecStateCode, Qty = barcode.TotalWtQty }) .ToPageList(request.PageIndex, request.PageSize, ref count); //list = list.Skip((request.PageIndex - 1) * request.PageSize).Take(request.PageSize).ToList(); return (list.ToList(), count); } } }