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<Dt_StockInfoDetail, IRepository<Dt_StockInfoDetail>>, IStockInfoDetailService
|
{
|
public StockInfoDetailService(IRepository<Dt_StockInfoDetail> BaseDal, IRepository<Dt_StockInfo> stockinfoRepository) : base(BaseDal)
|
{
|
_stockinfoRepository = stockinfoRepository;
|
}
|
|
public IRepository<Dt_StockInfo> _stockinfoRepository;
|
public IRepository<Dt_StockInfoDetail> Repository => BaseDal;
|
|
public bool ExistBarcodes(string barcode)
|
{
|
return BaseDal.QueryFirst(x => x.Barcode == barcode) != null;
|
}
|
|
public bool ExistBarcodes(List<string> barcodes)
|
{
|
return BaseDal.QueryFirst(x => !string.IsNullOrEmpty(x.Barcode) && barcodes.Contains(x.Barcode)) != null;
|
}
|
|
public PageGridData<StockInfoDetailWithPalletDto> GetPageData2(PageDataOptions options)
|
{
|
// 1. 获取基础分页数据
|
ISugarQueryable<Dt_StockInfoDetail> sugarQueryable1 = BaseDal.Db.Queryable<Dt_StockInfoDetail>();
|
ISugarQueryable<Dt_StockInfo> sugarQueryable = BaseDal.Db.Queryable<Dt_StockInfo>();
|
|
if (!string.IsNullOrEmpty(options.Wheres))
|
{
|
try
|
{
|
List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
|
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<StockInfoDetailWithPalletDto> 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<StockInfoDetailWithPalletDto>(totalCount, stockViewDTOs);
|
|
}
|
|
}
|
}
|