using SqlSugar; using wms.sqlsugar.model.sx; using WMS.BZModels; using WMS.Info; using WMS.BZSqlSugar; using WMS.BZModels.Dto.SX.BillInvDtos; using WMS.BZModels.Models.SX; namespace WMS.BZServices.SX { public class BaseInvService { private readonly Repository _billInvnowrepository; public BaseInvService(Repository billInvnowrepository) { _billInvnowrepository = billInvnowrepository; } public PagedInfo GetPageList(Pagination pagination, BillInvNowQueryDto billInvNowQueryDto) { ISugarQueryable sugarQueryable = GetQueryable(billInvNowQueryDto); var list = sugarQueryable.ToPage(pagination); return list; } public PagedInfo GetPageList2(Pagination pagination, BillInvNowQueryDto2 billInvNowQueryDto) { ISugarQueryable sugarQueryable = GetQueryable2(billInvNowQueryDto); var list = sugarQueryable.ToPage(pagination); return list; } public IList GetList(BillInvNowQueryDto billInvNowQueryDto) { ISugarQueryable sugarQueryable = GetQueryable(billInvNowQueryDto); var list = sugarQueryable.ToList(); return list; } private ISugarQueryable GetQueryable(BillInvNowQueryDto billInvNowQueryDto) { var predicate = Expressionable.Create(); 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)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Id), (billInvnow, warecell, warehouse) => billInvnow.Id.ToString().Contains(billInvNowQueryDto.Id)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.WarehouseId), (billInvnow, warecell, warehouse) => billInvnow.WarehouseId.ToString().Contains(billInvNowQueryDto.WarehouseId)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ContGrpId), (billInvnow, warecell, warehouse) => billInvnow.ContGrpId.ToString().Contains(billInvNowQueryDto.ContGrpId)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.EquContGrpId), (billInvnow, warecell, warehouse) => billInvnow.ContGrpId.ToString().Equals(billInvNowQueryDto.EquContGrpId)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.MatCode), (billInvnow, warecell, warehouse) => billInvnow.MatCode.Contains(billInvNowQueryDto.MatCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.MatName), (billInvnow, warecell, warehouse) => billInvnow.MatName.Contains(billInvNowQueryDto.MatName)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.RFIDBarCode), (billInvnow, warecell, warehouse) => billInvnow.RFIDBarCode.Contains(billInvNowQueryDto.RFIDBarCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.InvBarCode), (billInvnow, warecell, warehouse) => billInvnow.InvBarCode.Contains(billInvNowQueryDto.InvBarCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutRow), (billInvnow, warecell, warehouse) => billInvnow.PutRow.Equals(billInvNowQueryDto.PutRow)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutCol), (billInvnow, warecell, warehouse) => billInvnow.PutCol.Equals(billInvNowQueryDto.PutCol)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutLayer), (billInvnow, warecell, warehouse) => billInvnow.PutLayer.Equals(billInvNowQueryDto.PutLayer)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Grade), (billInvnow, warecell, warehouse) => billInvnow.Grade.Contains(billInvNowQueryDto.Grade)); predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.OneInTimeBegin.HasValue, (billInvnow, warecell, warehouse) => billInvnow.OneInTime >= billInvNowQueryDto.OneInTimeBegin); predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.OneInTimeEnd.HasValue, (billInvnow, warecell, warehouse) => billInvnow.OneInTime <= billInvNowQueryDto.OneInTimeEnd); predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.ProductTimeBegin.HasValue, (billInvnow, warecell, warehouse) => billInvnow.ProductTime >= billInvNowQueryDto.ProductTimeBegin); predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.ProductTimeEnd.HasValue, (billInvnow, warecell, warehouse) => billInvnow.ProductTime <= billInvNowQueryDto.ProductTimeEnd); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Tunnel), (billInvnow, warecell, warehouse) => warecell.Tunnel.Equals(billInvNowQueryDto.Tunnel)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Code), (billInvnow, warecell, warehouse) => warecell.Code.Contains(billInvNowQueryDto.Code)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsSurplus), (billInvnow, warecell, warehouse) => billInvnow.IsSurplus.Equals(billInvNowQueryDto.IsSurplus)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsRework), (billInvnow, warecell, warehouse) => billInvnow.IsRework.Equals(billInvNowQueryDto.IsRework)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsFail), (billInvnow, warecell, warehouse) => billInvnow.IsFail.Equals(billInvNowQueryDto.IsFail)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsFast), (billInvnow, warecell, warehouse) => billInvnow.IsFast.Equals(billInvNowQueryDto.IsFast)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsBack), (billInvnow, warecell, warehouse) => billInvnow.IsBack.Equals(billInvNowQueryDto.IsBack)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsBlack), (billInvnow, warecell, warehouse) => billInvnow.IsBlack.Equals(billInvNowQueryDto.IsBlack)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsControlpanel), (billInvnow, warecell, warehouse) => billInvnow.IsControlpanel.Equals(billInvNowQueryDto.IsControlpanel)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTorsChk), (billInvnow, warecell, warehouse) => billInvnow.IsTorsChk.Equals(billInvNowQueryDto.IsTorsChk)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsCore), (billInvnow, warecell, warehouse) => billInvnow.IsCore.Equals(billInvNowQueryDto.IsCore)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.WbGroupCode), (billInvnow, warecell, warehouse) => billInvnow.WbGroupCode.Contains(billInvNowQueryDto.WbGroupCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.SolderCount), (billInvnow, warecell, warehouse) => billInvnow.SolderCount.ToString().Contains(billInvNowQueryDto.SolderCount)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.HoldTime), (billInvnow, warecell, warehouse) => billInvnow.HoldTime.ToString().Contains(billInvNowQueryDto.HoldTime)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Wind), (billInvnow, warecell, warehouse) => billInvnow.Wind.ToString().Contains(billInvNowQueryDto.Wind)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.TorsChkQty), (billInvnow, warecell, warehouse) => billInvnow.TorsChkQty.Equals(billInvNowQueryDto.TorsChkQty)); //if (!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut) && billInvNowQueryDto?.IsTimeOut == "0") //{ // predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut), (billInvnow, warecell, warehouse) => (DateTime.Now - billInvnow.ProductTime).TotalHours <= 72 && billInvnow.InDocsNo.ToLower().Contains("cha")); //} //else if (!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut) && billInvNowQueryDto?.IsTimeOut == "1") { 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))); } predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ExecStateCode), (billInvnow, warecell, warehouse) => billInvnow.ExecStateCode.Equals(billInvNowQueryDto.ExecStateCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ContGrpType), (billInvnow, warecell, warehouse) => billInvnow.ContGrpType.Equals(billInvNowQueryDto.ContGrpType)); if (!string.IsNullOrEmpty(billInvNowQueryDto?.InvStateCode)) { var enums = (InvState)Enum.ToObject(typeof(InvState), Convert.ToInt32(billInvNowQueryDto?.InvStateCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.InvStateCode), (billInvnow, warecell, warehouse) => billInvnow.InvStateCode.Equals(enums.ToString())); } var sugarQueryable = _billInvnowrepository.Context.Queryable((billInvnow, warecell, warehouse) => new object[] { JoinType.Left,billInvnow.ContGrpId == warecell.ContGrpId && billInvnow.WarehouseId ==warecell.WarehouseId , JoinType.Left, billInvnow.WarehouseId==warehouse.Id, JoinType.Left, warecell.WarehouseId==warehouse.Id}).Where(predicate.ToExpression()) .Select((billInvnow, warecell, warehouse) => new BillInvNowDto { Id = billInvnow.Id.ToString(), WarehouseId = billInvnow.WarehouseId.ToString(), WarehouseName = warehouse.Name, ContGrpId = billInvnow.ContGrpId.ToString(), ContGrpBarCode = billInvnow.ContGrpBarCode, ContGrpType = (int)billInvnow.ContGrpType, BoxBarCode = billInvnow.BoxBarCode, BomDocsNo = billInvnow.BomDocsNo, BomMatId = billInvnow.BomMatId.ToString(), BomMatCode = billInvnow.BomMatCode, BomMatName = billInvnow.BomMatName, BomSetId = billInvnow.BomSetId.ToString(), ExecStateCode = billInvnow.ExecStateCode, InvStateCode = billInvnow.InvStateCode, ExecDocsNo = billInvnow.ExecDocsNo, ExecDocsRowNo = billInvnow.ExecDocsRowNo, ExecDocsTypeCode = billInvnow.ExecDocsTypeCode, InvInOut = (int)billInvnow.InvInOut, ExecWho = billInvnow.ExecWho, ExecTime = billInvnow.ExecTime, PutRow = billInvnow.PutRow, PutCol = billInvnow.PutCol, PutLayer = billInvnow.PutLayer, InvBarCode = billInvnow.InvBarCode, InDocsNo = billInvnow.InDocsNo, InDocsRowNo = billInvnow.InDocsRowNo, SuppCode = billInvnow.SuppCode, SuppName = billInvnow.SuppName, CustCode = billInvnow.CustCode, CustName = billInvnow.CustName, MatId = billInvnow.MatId.ToString(), MatCode = billInvnow.MatCode, MatName = billInvnow.MatName, TolWQty = billInvnow.TolWQty, NetWQty = billInvnow.NetWQty, TareWQty = billInvnow.TareWQty, LengthQty = billInvnow.LengthQty, CaQty = billInvnow.CaQty, SolderQty = billInvnow.SolderQty, ContUsageQty = billInvnow.ContUsageQty, BatchNo = billInvnow.BatchNo, ProductTime = billInvnow.ProductTime, OneInTime = billInvnow.OneInTime, RodBarCode = billInvnow.RodBarCode, HWBarCode = billInvnow.HWBarCode, RFIDBarCode = billInvnow.RFIDBarCode, CLBarCode = billInvnow.CLBarCode, HWTypeCode = billInvnow.HWTypeCode, BoilerNo = billInvnow.BoilerNo, PackNo = billInvnow.PackNo, BrandNo = billInvnow.BrandNo, ExecStd = billInvnow.ExecStd, LicenceCode = billInvnow.LicenceCode, IsSurplus = billInvnow.IsSurplus, IsRework = billInvnow.IsRework, IsBlack = billInvnow.IsBlack, IsCore = billInvnow.IsCore, IsFast = billInvnow.IsFast, IsFail = billInvnow.IsFail, FailReason = billInvnow.FailReason, SilkTypeCode = billInvnow.SilkTypeCode, Grade = billInvnow.Grade, IsBack = billInvnow.IsBack, BackReason = billInvnow.BackReason, IsTorsChk = billInvnow.IsTorsChk, TorsChkQty = billInvnow.TorsChkQty, TorsChkTime = billInvnow.TorsChkTime, TorsChkValue = billInvnow.TorsChkValue, TorsChkMachCode = billInvnow.TorsChkMachCode, ProcessDocsCode = billInvnow.ProcessDocsCode, ProductMachCode = billInvnow.ProductMachCode, ProductLineNo = billInvnow.ProductLineNo, Wind = billInvnow.Wind, AddWho = billInvnow.AddWho, AddTime = billInvnow.AddTime, EditWho = billInvnow.EditWho, EditTime = billInvnow.EditTime, Size = billInvnow.Size, Memo = billInvnow.Memo, Tunnel = warecell.Tunnel, Code = warecell.Code, CellState = warecell.IsStop, SolderCount = billInvnow.SolderCount, HoldTime = billInvnow.HoldTime, IsControlpanel = billInvnow.IsControlpanel, WbGroupCode = billInvnow.WbGroupCode, SkuCode = billInvnow.SkuCode, PreStock = billInvnow.PreStock, TorsChkChord = billInvnow.TorsChkChord, TorsChkChordIsGood = billInvnow.TorsChkChordIsGood, TorsChkFlatness = billInvnow.TorsChkFlatness, TorsChkFlatnessIsGood = billInvnow.TorsChkFlatnessIsGood, TorsChkStation = billInvnow.TorsChkStation, TorsChkValueIsGood = billInvnow.TorsChkValueIsGood, }).MergeTable(); return sugarQueryable; } private ISugarQueryable GetQueryable2(BillInvNowQueryDto2 billInvNowQueryDto) { var predicate = Expressionable.Create(); 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)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Id), (billInvnow,pbox) => billInvnow.Id.ToString().Contains(billInvNowQueryDto.Id)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.WarehouseId), (billInvnow,pbox) => billInvnow.WarehouseId.ToString().Contains(billInvNowQueryDto.WarehouseId)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ContGrpId), (billInvnow,pbox) => billInvnow.ContGrpId.ToString().Contains(billInvNowQueryDto.ContGrpId)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.EquContGrpId), (billInvnow,pbox) => billInvnow.ContGrpId.ToString().Equals(billInvNowQueryDto.EquContGrpId)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.MatCode), (billInvnow,pbox) => billInvnow.MatCode.Contains(billInvNowQueryDto.MatCode)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.MatName), (billInvnow,pbox) => billInvnow.MatName.Contains(billInvNowQueryDto.MatName)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.RFIDBarCode), (billInvnow,pbox) => billInvnow.RFIDBarCode.Contains(billInvNowQueryDto.RFIDBarCode)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.InvBarCode), (billInvnow,pbox) => billInvnow.InvBarCode.Contains(billInvNowQueryDto.InvBarCode)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutRow), (billInvnow,pbox) => billInvnow.PutRow.Equals(billInvNowQueryDto.PutRow)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutCol), (billInvnow,pbox) => billInvnow.PutCol.Equals(billInvNowQueryDto.PutCol)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.PutLayer), (billInvnow,pbox) => billInvnow.PutLayer.Equals(billInvNowQueryDto.PutLayer)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Grade), (billInvnow,pbox) => billInvnow.Grade.Contains(billInvNowQueryDto.Grade)); //predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.OneInTimeBegin.HasValue, (billInvnow,pbox) => billInvnow.OneInTime >= billInvNowQueryDto.OneInTimeBegin); //predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.OneInTimeEnd.HasValue, (billInvnow,pbox) => billInvnow.OneInTime <= billInvNowQueryDto.OneInTimeEnd); //predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.ProductTimeBegin.HasValue, (billInvnow,pbox) => billInvnow.ProductTime >= billInvNowQueryDto.ProductTimeBegin); //predicate = predicate.AndIF(billInvNowQueryDto != null && billInvNowQueryDto.ProductTimeEnd.HasValue, (billInvnow,pbox) => billInvnow.ProductTime <= billInvNowQueryDto.ProductTimeEnd); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Tunnel), (billInvnow,pbox) => warecell.Tunnel.Equals(billInvNowQueryDto.Tunnel)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Code), (billInvnow,pbox) => warecell.Code.Contains(billInvNowQueryDto.Code)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsSurplus), (billInvnow,pbox) => billInvnow.IsSurplus.Equals(billInvNowQueryDto.IsSurplus)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsRework), (billInvnow,pbox) => billInvnow.IsRework.Equals(billInvNowQueryDto.IsRework)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsFail), (billInvnow,pbox) => billInvnow.IsFail.Equals(billInvNowQueryDto.IsFail)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsFast), (billInvnow,pbox) => billInvnow.IsFast.Equals(billInvNowQueryDto.IsFast)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsBack), (billInvnow,pbox) => billInvnow.IsBack.Equals(billInvNowQueryDto.IsBack)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsBlack), (billInvnow,pbox) => billInvnow.IsBlack.Equals(billInvNowQueryDto.IsBlack)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsControlpanel), (billInvnow,pbox) => billInvnow.IsControlpanel.Equals(billInvNowQueryDto.IsControlpanel)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTorsChk), (billInvnow,pbox) => billInvnow.IsTorsChk.Equals(billInvNowQueryDto.IsTorsChk)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsCore), (billInvnow,pbox) => billInvnow.IsCore.Equals(billInvNowQueryDto.IsCore)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.WbGroupCode), (billInvnow, pbox) => billInvnow.WbGroupCode == billInvNowQueryDto.WbGroupCode); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.SolderCount), (billInvnow,pbox) => billInvnow.SolderCount.ToString().Contains(billInvNowQueryDto.SolderCount)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.HoldTime), (billInvnow,pbox) => billInvnow.HoldTime.ToString().Contains(billInvNowQueryDto.HoldTime)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.Wind), (billInvnow, pbox) => billInvnow.Wind.ToString() == billInvNowQueryDto.Wind); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.SkuCode), (billInvnow, pbox) => pbox.SkuCode.ToString().Contains(billInvNowQueryDto.SkuCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.HwTypeCode), (billInvnow, pbox) => billInvnow.HWTypeCode.ToString().Contains(billInvNowQueryDto.HwTypeCode)); //predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.TorsChkQty), (billInvnow,pbox) => billInvnow.TorsChkQty.Equals(billInvNowQueryDto.TorsChkQty)); //if (!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut) && billInvNowQueryDto?.IsTimeOut == "0") //{ // predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut), (billInvnow,pbox) => (DateTime.Now - billInvnow.ProductTime).TotalHours <= 72 && billInvnow.InDocsNo.ToLower().Contains("cha")); //} //else if (!string.IsNullOrEmpty(billInvNowQueryDto?.IsTimeOut) && billInvNowQueryDto?.IsTimeOut == "1") { 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))); } predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ExecStateCode), (billInvnow, pbox) => billInvnow.ExecStateCode.Equals(billInvNowQueryDto.ExecStateCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.ContGrpType), (billInvnow, pbox) => billInvnow.ContGrpType.Equals(billInvNowQueryDto.ContGrpType)); if (!string.IsNullOrEmpty(billInvNowQueryDto?.InvStateCode)) { var enums = (InvState)Enum.ToObject(typeof(InvState), Convert.ToInt32(billInvNowQueryDto?.InvStateCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billInvNowQueryDto?.InvStateCode), (billInvnow, pbox) => billInvnow.InvStateCode.Equals(enums.ToString())); } var sugarQueryable = _billInvnowrepository.Context.Queryable((billInvnow, pbox) => new object[] { JoinType.Inner, billInvnow.InDocsNo.StartsWith(pbox.DocsNo) }).Where(predicate.ToExpression()).Where((billInvnow, pbox) => billInvnow.InvStateCode == "InvEcecState_In") .Select((billInvnow, pbox) => new BillInvNowDto { Id = billInvnow.Id.ToString(), WarehouseId = billInvnow.WarehouseId.ToString(), //WarehouseName = warehouse.Name, ContGrpId = billInvnow.ContGrpId.ToString(), ContGrpBarCode = billInvnow.ContGrpBarCode, ContGrpType = (int)billInvnow.ContGrpType, BoxBarCode = billInvnow.BoxBarCode, BomDocsNo = billInvnow.BomDocsNo, BomMatId = billInvnow.BomMatId.ToString(), BomMatCode = billInvnow.BomMatCode, BomMatName = billInvnow.BomMatName, BomSetId = billInvnow.BomSetId.ToString(), ExecStateCode = billInvnow.ExecStateCode, InvStateCode = billInvnow.InvStateCode, ExecDocsNo = billInvnow.ExecDocsNo, ExecDocsRowNo = billInvnow.ExecDocsRowNo, ExecDocsTypeCode = billInvnow.ExecDocsTypeCode, InvInOut = (int)billInvnow.InvInOut, ExecWho = billInvnow.ExecWho, ExecTime = billInvnow.ExecTime, PutRow = billInvnow.PutRow, PutCol = billInvnow.PutCol, PutLayer = billInvnow.PutLayer, InvBarCode = billInvnow.InvBarCode, InDocsNo = billInvnow.InDocsNo, InDocsRowNo = billInvnow.InDocsRowNo, SuppCode = billInvnow.SuppCode, SuppName = billInvnow.SuppName, CustCode = billInvnow.CustCode, CustName = billInvnow.CustName, MatId = billInvnow.MatId.ToString(), MatCode = billInvnow.MatCode, MatName = billInvnow.MatName, TolWQty = billInvnow.TolWQty, NetWQty = billInvnow.NetWQty, TareWQty = billInvnow.TareWQty, LengthQty = billInvnow.LengthQty, CaQty = billInvnow.CaQty, SolderQty = billInvnow.SolderQty, ContUsageQty = billInvnow.ContUsageQty, BatchNo = billInvnow.BatchNo, ProductTime = billInvnow.ProductTime, OneInTime = billInvnow.OneInTime, RodBarCode = billInvnow.RodBarCode, HWBarCode = billInvnow.HWBarCode, RFIDBarCode = billInvnow.RFIDBarCode, CLBarCode = billInvnow.CLBarCode, HWTypeCode = billInvnow.HWTypeCode, BoilerNo = billInvnow.BoilerNo, PackNo = billInvnow.PackNo, BrandNo = billInvnow.BrandNo, ExecStd = billInvnow.ExecStd, LicenceCode = billInvnow.LicenceCode, IsSurplus = billInvnow.IsSurplus, IsRework = billInvnow.IsRework, IsBlack = billInvnow.IsBlack, IsCore = billInvnow.IsCore, IsFast = billInvnow.IsFast, IsFail = billInvnow.IsFail, FailReason = billInvnow.FailReason, SilkTypeCode = billInvnow.SilkTypeCode, Grade = billInvnow.Grade, IsBack = billInvnow.IsBack, BackReason = billInvnow.BackReason, IsTorsChk = billInvnow.IsTorsChk, TorsChkQty = billInvnow.TorsChkQty, TorsChkTime = billInvnow.TorsChkTime, TorsChkValue = billInvnow.TorsChkValue, TorsChkMachCode = billInvnow.TorsChkMachCode, ProcessDocsCode = billInvnow.ProcessDocsCode, ProductMachCode = billInvnow.ProductMachCode, ProductLineNo = billInvnow.ProductLineNo, Wind = billInvnow.Wind, AddWho = billInvnow.AddWho, AddTime = billInvnow.AddTime, EditWho = billInvnow.EditWho, EditTime = billInvnow.EditTime, Size = billInvnow.Size, Memo = billInvnow.Memo, //Tunnel = warecell.Tunnel, //Code = warecell.Code, //CellState = warecell.IsStop, SolderCount = billInvnow.SolderCount, HoldTime = billInvnow.HoldTime, IsControlpanel = billInvnow.IsControlpanel, WbGroupCode = billInvnow.WbGroupCode, SkuCode = pbox.SkuCode, PreStock = billInvnow.PreStock, TorsChkChord = billInvnow.TorsChkChord, TorsChkChordIsGood = billInvnow.TorsChkChordIsGood, TorsChkFlatness = billInvnow.TorsChkFlatness, TorsChkFlatnessIsGood = billInvnow.TorsChkFlatnessIsGood, TorsChkStation = billInvnow.TorsChkStation, TorsChkValueIsGood = billInvnow.TorsChkValueIsGood, }); return sugarQueryable; } public List InvStateList() { return BZModels.Extensions.EnumToList(); } public List TaskStatusList() { return BZModels.Extensions.EnumToList(); } public List TaskTypeList() { return BZModels.Extensions.EnumToList(); } public List TaskBusTypeList() { return BZModels.Extensions.EnumToListDesc(); } public List AGVTaskTypeList() { return BZModels.Extensions.EnumToList(); } public List FackbeekTypeList() { return BZModels.Extensions.EnumToList(); } public List AGVTaskStatus() { return BZModels.Extensions.EnumToList(); } public List ContGrpTypeList() { return BZModels.Extensions.EnumToList(); } public List DocTypeList() { return BZModels.Extensions.EnumToListIdDesc(); } public List DocStateList() { return BZModels.Extensions.EnumToList(); } public List LocationStateList() { return BZModels.Extensions.EnumToList(); } public List AutoManualOutTypeList() { return BZModels.Extensions.EnumToList(); } } }