入库任务

This commit is contained in:
tongfei
2023-10-27 10:56:04 +08:00
parent ba067eb76a
commit fad33c0d31
8 changed files with 546 additions and 6 deletions

View File

@@ -35,6 +35,7 @@ namespace Microsoft.Extensions.DependencyInjection
services.AddTransient<ITransactionRepositories, TransactionRepositories>();
services.AddTransient<IInStockRepositories, InStockRepositories>();
services.AddTransient<IInStockTaskRepositories, InStockTaskRepositories>();
services.AddTransient<IChangeBoxRecordRepositories, ChangeBoxRecordRepositories>();
services.AddTransient<IMoveBoxRecordRepositories, MoveBoxRecordRepositories>();

View File

@@ -0,0 +1,81 @@
using AutoMapper;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core;
using WMS.Web.Core.Dto;
using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Infrastructure;
using WMS.Web.Repositories.Configuration;
namespace WMS.Web.Repositories
{
/// <summary>
/// 入库任务表-仓储
/// </summary>
public class InStockTaskRepositories: IInStockTaskRepositories
{
private readonly IMapper _mapper;
private readonly IServiceProvider _serviceProvider;
private readonly RepositoryDbContext _context;
public InStockTaskRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider)
{
_context = context;
_mapper = mapper;
_serviceProvider = serviceProvider;
}
/// <summary>
/// 列表-分页
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
public async Task<ResultPagedList<InStockTaskQueryResponse>> GetPagedList(InStockTaskQueryRequest dto)
{
var query = _context.InStockTaskDetails
.GroupJoin(_context.InStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
.Where(adv => 1 == 1);
if (!string.IsNullOrEmpty(dto.SourceBillNo))
query = query.Where(w => EF.Functions.Like(w.detail.SourceBillNo, "%" + dto.SourceBillNo + "%"));
var response = new ResultPagedList<InStockTaskQueryResponse>();
int total = await query.CountAsync();
response.TotalCount = total;
var list = await query.Select(s => new InStockTaskQueryResponse()
{
Id = s.order.Id,
DetailsId = s.detail.Id,
BillNo = s.order.BillNo,
Type = s.order.Type.GetRemark(),
Status=s.order.Status.GetRemark(),
SourceBillNo = s.detail.SourceBillNo,
Supplier = "",
Org = "",
MaterialName = "",
MaterialNumber = "",
Specifications = "",
FactoryPrice=s.detail.FactoryPrice,
Stock = "",
AccruedQty = s.detail.AccruedQty,
ReceiveQty = s.detail.ReceiveQty,
RealityQty = s.detail.RealityQty,
Receiver = "",
ReceiveTime=s.order.ReceiveTime,
Operator="",
OperateTime=s.order.OperateTime,
CreateTime = s.detail.CreateTime,
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
response.Data = list;
return response;
}
}
}