using SqlSugar; using System.Collections.Generic; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_Core.HttpContextUser; using WIDESEA_Core.Utilities; using WIDESEA_DTO.Stock; using WIDESEA_IStockService; using WIDESEA_Model.Models; namespace WIDESEA_StockService { public partial class StockInfoDetailService : ServiceBase>, IStockInfoDetailService { public StockInfoDetailService(IRepository BaseDal, IRepository stockinfoRepository) : base(BaseDal) { _stockinfoRepository = stockinfoRepository; } public IRepository _stockinfoRepository; public IRepository Repository => BaseDal; public bool ExistBarcodes(string barcode) { return BaseDal.QueryFirst(x => x.Barcode == barcode) != null; } public bool ExistBarcodes(List barcodes) { return BaseDal.QueryFirst(x => !string.IsNullOrEmpty(x.Barcode) && barcodes.Contains(x.Barcode)) != null; } public PageGridData GetPageData2(PageDataOptions options) { // 1. 获取基础分页数据 ISugarQueryable sugarQueryable1 = BaseDal.Db.Queryable(); ISugarQueryable sugarQueryable = BaseDal.Db.Queryable(); if (!string.IsNullOrEmpty(options.Wheres)) { try { List searchParametersList = options.Wheres.DeserializeObject>(); if (searchParametersList?.Any() == true) { foreach (var param in searchParametersList) { if (param.Name.Equals(nameof(Dt_StockInfo.PalletCode).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(param.Value?.ToString())) { string palletCode = param.Value.ToString().Trim(); var targetStock = _stockinfoRepository.QueryFirst(x => x.PalletCode == palletCode); if (targetStock != null) { sugarQueryable1 = sugarQueryable1.Where(x => x.StockId == targetStock.Id); } break; } } } } catch (Exception ex) { } } EntityProperties.ValidatePageOptions(options, ref sugarQueryable1); ISugarQueryable list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.Id == b.StockId).Select((b, a) => new StockInfoDetailWithPalletDto { Id = b.Id, StockId = b.StockId, MaterielCode = b.MaterielCode, MaterielName = b.MaterielName, OrderNo = b.OrderNo, BatchNo = b.BatchNo, ProductionDate = b.ProductionDate, EffectiveDate = b.EffectiveDate, SerialNumber = b.SerialNumber, StockQuantity = b.StockQuantity, OutboundQuantity = b.OutboundQuantity, Status = b.Status, Unit = b.Unit, InboundOrderRowNo = b.InboundOrderRowNo, SupplyCode = b.SupplyCode, WarehouseCode = b.WarehouseCode, Barcode = b.Barcode, BusinessType = b.BusinessType, Remark = b.Remark, Creater = b.Creater, CreateDate = b.CreateDate, Modifier = b.Modifier, ModifyDate = b.ModifyDate, PalletCode = a.PalletCode??"无托盘编号" }); int totalCount = 0; var stockViewDTOs = list.ToPageList(options.Page, options.Rows, ref totalCount); return new PageGridData(totalCount, stockViewDTOs); } } }