创建采购订单接口

This commit is contained in:
橙子
2023-01-04 20:50:10 +08:00
parent e03e584684
commit 7d578ce363
13 changed files with 126 additions and 21 deletions

View File

@@ -14,12 +14,17 @@ using Yi.Framework.Service.Base.Crud;
namespace Yi.Framework.Service.ERP
{
public class PurchaseService : CrudAppService<PurchaseEntity, PurchaseGetListOutput, long, PurchaseCreateUpdateInput>, IPurchaseService
public class PurchaseService : CrudAppService<PurchaseEntity, PurchaseGetListOutput, long, PurchaseCreateInput, PurchaseUpdateInput>, IPurchaseService
{
public PurchaseService(IRepository<PurchaseEntity> repository, IMapper mapper) : base(repository, mapper)
private readonly ISugarUnitOfWork<UnitOfWork> _unitOfWork;
private readonly IPurchaseDetailsService _purchaseDetailsService;
public PurchaseService(IRepository<PurchaseEntity> repository, IMapper mapper, ISugarUnitOfWork<UnitOfWork> unitOfWork,
IPurchaseDetailsService purchaseDetailsService) : base(repository, mapper)
{
_unitOfWork = unitOfWork;
_purchaseDetailsService = purchaseDetailsService;
}
public async Task<PageModel<List<PurchaseGetListOutput>>> PageListAsync(PurchaseCreateUpdateInput input, PageParModel page)
public async Task<PageModel<List<PurchaseGetListOutput>>> PageListAsync(PurchaseGetListInput input, PageParModel page)
{
RefAsync<int> totalNumber = 0;
var data = await Repository._DbQueryable
@@ -28,5 +33,23 @@ namespace Yi.Framework.Service.ERP
.ToPageListAsync(page.PageNum, page.PageSize, totalNumber);
return new PageModel<List<PurchaseGetListOutput>> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) };
}
public override async Task<PurchaseGetListOutput> CreateAsync(PurchaseCreateInput input)
{
using (var uow = _unitOfWork.CreateContext())
{
var entity = await MapToEntityAsync(input);
entity.PaidMoney = 0;
entity.TotalMoney = input.PurchaseDetails.Sum(u => u.UnitPrice * u.TotalNumber);
entity.PurchaseState = PurchaseStateEnum.Build;
TryToSetTenantId(entity);
var purchaseId = await Repository.InsertReturnSnowflakeIdAsync(entity);
await _purchaseDetailsService.CreateAsync(input.PurchaseDetails);
}
return null;
}
}
}