Browse Source

上架后退货申请PDA

dev_DY_CC
lvzb 1 year ago
parent
commit
04eede5bac
  1. 73
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnRequestController.cs
  2. 10
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/PdaHostAutoMapperProfile.cs
  3. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/IPurchaseReturnRequestAppService.cs
  4. 56
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/Inputs/PurchaseReturnRequestPdaInput.cs
  5. 19
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs
  6. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAutoMapperProfile.cs
  7. 21
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/PurchaseReturnRequests/PurchaseReturnRequestManager.cs

73
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnRequestController.cs

@ -0,0 +1,73 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Pda.Models;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
[ApiController]
[Route($"{PdaHostConst.ROOT_ROUTE}store/purchase-return-request")]
public class PurchaseReturnRequestController : AbpController
{
private readonly IPurchaseReturnRequestAppService _purchaseReturnRequestAppService;
private readonly ITransactionTypeAppService _transactionTypeAppService;
public PurchaseReturnRequestController(IPurchaseReturnRequestAppService purchaseReturnRequestAppService,
ITransactionTypeAppService transactionTypeAppService
)
{
_purchaseReturnRequestAppService = purchaseReturnRequestAppService;
_transactionTypeAppService = transactionTypeAppService;
}
/// <summary>
/// 创建退货申请
/// </summary>
[HttpPost("create-many")]
public virtual async Task CreateManyAsync(List<PurchaseReturnRequestPdaInput> input)
{
List<PurchaseReturnRequestEditInput> entitys = new List<PurchaseReturnRequestEditInput>();
var groups = input.GroupBy(r => r.AsnNumber).ToList();
foreach (var group in groups)
{
var list = group.ToList();
var entity = ObjectMapper.Map<PurchaseReturnRequestPdaInput, PurchaseReturnRequestEditInput>(list[0]);
await SetRequestAutoPropertiesAsync(entity).ConfigureAwait(false);
entity.Details = new List<PurchaseReturnRequestDetailInput>();
foreach (var item in list)
{
var detail = ObjectMapper.Map<PurchaseReturnRequestPdaInput, PurchaseReturnRequestDetailInput>(list[0]);
entity.Details.Add(detail);
}
entitys.Add(entity);
}
await _purchaseReturnRequestAppService.CreateManyAsync(entitys).ConfigureAwait(false); ;
}
/// <summary>
/// 赋值Request业务属性
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
private async Task SetRequestAutoPropertiesAsync(PurchaseReturnRequestEditInput entity)
{
var tranType = await _transactionTypeAppService.GetByTransTypeAsync(EnumTransType.PurchaseReturn, EnumTransSubType.None).ConfigureAwait(false);
Check.NotNull(tranType, "事务类型", "事务类型不存在");
entity.AutoCompleteJob = tranType.AutoCompleteJob;
entity.AutoSubmit = tranType.AutoSubmitRequest;
entity.AutoAgree = tranType.AutoAgreeRequest;
entity.AutoHandle = tranType.AutoHandleRequest;
entity.DirectCreateNote = tranType.DirectCreateNote;
}
}

10
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/PdaHostAutoMapperProfile.cs

@ -2,6 +2,7 @@ using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Wms.Pda.Controllers.Jobs;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Pda;
@ -19,6 +20,15 @@ public class PdaHostAutoMapperProfile : Profile
.Ignore(x => x.TimeWindow)
.Ignore(x => x.SupplierName)
;
CreateMap<PurchaseReturnRequestPdaInput, PurchaseReturnRequestEditInput>()
.Ignore(x => x.ReturnType)
.Ignore(x => x.ReturnTime)
.Ignore(x => x.ActiveDate)
.Ignore(x => x.Details)
.Ignore(x => x.TenantId)
.Ignore(x => x.Remark)
.Ignore(x => x.ExtraProperties);
CreateMap<PurchaseReturnRequestPdaInput, PurchaseReturnRequestDetailInput>();
}
}

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/IPurchaseReturnRequestAppService.cs

@ -1,3 +1,5 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -7,5 +9,5 @@ public interface IPurchaseReturnRequestAppService
, ISfsCheckStatusAppService
{
Task<List<PurchaseReturnRequestDTO>> CreateManyAsync(List<PurchaseReturnRequestEditInput> inputs);
}

56
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/Inputs/PurchaseReturnRequestPdaInput.cs

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DocumentFormat.OpenXml.Wordprocessing;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class PurchaseReturnRequestPdaInput : SfsStoreDetailWithLotPackingQtyLocationStatusInputBase, IHasPoLine
{
/// <summary>
/// 收货单号
/// </summary>
[Display(Name = "收货单号")]
public string RpNumber { get; set; }
/// <summary>
/// 发货单号
/// </summary>
[Display(Name = "发货单号")]
public string AsnNumber { get; set; }
/// <summary>
/// 订单号
/// </summary>
[Display(Name = "订单号")]
public string PoNumber { get; set; }
/// <summary>
/// 供应商代码
/// </summary>
[Display(Name = "供应商代码")]
public string SupplierCode { get; set; }
/// <summary>
/// 退货类型
/// </summary>
[Display(Name = "退货类型")]
public EnumPurchaseReturnType ReturnType { get; set; } = EnumPurchaseReturnType.AfterPuton;
/// <summary>
/// 订单行
/// </summary>
[Display(Name = "订单行")]
public string PoLine { get; set; }
/// <summary>
/// 供应商包装
/// </summary>
[Display(Name = "供应商包装")]
public decimal SupplierPackQty { get; set; }
}

19
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs

@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Label.Application.Contracts;
using Win_in.Sfs.Label.Domain;
@ -77,6 +78,24 @@ public class PurchaseReturnRequestAppService :
return dto;
}
/// <summary>
/// 【创建】采购退货申请(批量)
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("create-many")]
public async Task<List<PurchaseReturnRequestDTO>> CreateManyAsync(List<PurchaseReturnRequestEditInput> inputs)
{
var entitys = ObjectMapper.Map< List<PurchaseReturnRequestEditInput>, List< PurchaseReturnRequest> >(inputs);
await _purchaseReturnRequestManager.CreateManyAsync(entitys).ConfigureAwait(false);
var dto = ObjectMapper.Map< List<PurchaseReturnRequest>, List< PurchaseReturnRequestDTO> >(entitys);
return dto;
}
[HttpPost("check-status")]
public virtual async Task CheckStatusAsync(string number)
{

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAutoMapperProfile.cs

@ -20,7 +20,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.TenantId)
.Ignore(x => x.Number)
.Ignore(x => x.Id);
CreateMap<PurchaseReturnRequestEditInput, PurchaseReturnRequest>();
CreateMap<PurchaseReturnRequestImportInput, PurchaseReturnRequest>()
.Ignore(x => x.ReturnType)
.Ignore(x => x.ReturnTime)

21
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/PurchaseReturnRequests/PurchaseReturnRequestManager.cs

@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Uow;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Domain;
@ -15,7 +16,25 @@ public class PurchaseReturnRequestManager : SfsStoreRequestManagerBase<PurchaseR
{
_repository = repository;
}
public override async Task<List<PurchaseReturnRequest>> CreateManyAsync(List<PurchaseReturnRequest> entities)
{
var results = new List<PurchaseReturnRequest>();
foreach (var entity in entities)
{
entity.SetIdAndNumberWithDetails(GuidGenerator, await GenerateNumberAsync(typeof(PurchaseReturnRequest).Name, entity.ActiveDate).ConfigureAwait(false));
PurchaseReturnRequest result;
if (entity.AutoSubmit)
{
result = await SubmitAsync(entity).ConfigureAwait(false);
}
else
{
result = await Repository.InsertAsync(entity).ConfigureAwait(false);
}
results.Add(result);
}
return entities;
}
/// <summary>
/// 执行导入
/// </summary>

Loading…
Cancel
Save