diff --git a/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql b/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql
index 97de80e01..a817dc41d 100644
--- a/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql
+++ b/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql
@@ -700,6 +700,7 @@ CREATE TABLE [Store_DeliverNote] (
[DeliverTime] datetime2 NOT NULL,
[DeliverRequestNumber] nvarchar(max) NULL,
[DeliverRequestType] nvarchar(64) NOT NULL,
+ [CountPrint] int NOT NULL,
[ExtraProperties] nvarchar(max) NULL,
[ConcurrencyStamp] nvarchar(40) NULL,
[CreationTime] datetime2 NOT NULL,
diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransSubType.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransSubType.cs
index c28220728..f99e6672e 100644
--- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransSubType.cs
+++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransSubType.cs
@@ -85,6 +85,12 @@ public enum EnumTransSubType
[Display(Name = "人工报废")]
Scrap_Manual = 3601,
+ ///
+ /// 完工报废
+ ///
+ [Display(Name = "完工报废")]
+ Scrap_Product = 3604,
+
///
/// 线边调整
///
diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumScrapType.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumScrapType.cs
index 28e91741f..87dfc09eb 100644
--- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumScrapType.cs
+++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumScrapType.cs
@@ -5,9 +5,9 @@ namespace Win_in.Sfs.Shared.Domain.Shared;
public enum EnumScrapType
{
///
- /// 人工报废
+ /// 人工报废(原料报废)
///
- [Display(Name = "人工报废")]
+ [Display(Name = "人工报废(原料报废)")]
Scrap_Manual = 3601,
///
@@ -15,4 +15,10 @@ public enum EnumScrapType
///
[Display(Name = "线边报废")]
Scrap_WIP = 3603,
+
+ ///
+ /// 完工报废
+ ///
+ [Display(Name = "完工报废")]
+ Scrap_Product = 3604,
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/DTOs/SfsJobRecommendFromDetailDTOBase.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/DTOs/SfsJobRecommendFromDetailDTOBase.cs
index e53cb5aee..e2161239f 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/DTOs/SfsJobRecommendFromDetailDTOBase.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/DTOs/SfsJobRecommendFromDetailDTOBase.cs
@@ -220,10 +220,13 @@ public abstract class SfsJobRecommendFromDetailDTOBase
HandledProduceDate = RecommendProduceDate;
HandledExpireDate = RecommendExpireDate;
HandledLot = RecommendLot;
+ HandledQty = RecommendQty;
+
HandledFromLocationCode = RecommendFromLocationCode;
HandledFromLocationErpCode = RecommendFromLocationErpCode;
-
- HandledQty = RecommendQty;
+ HandledFromLocationArea= RecommendFromLocationArea;
+ HandledFromWarehouseCode= RecommendFromWarehouseCode;
+ HandledFromLocationGroup = RecommendFromLocationGroup;
}
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ScrapRequests/Inputs/ScrapRequestImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ScrapRequests/Inputs/ScrapRequestImportInput.cs
index e2331a47f..85191a64c 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ScrapRequests/Inputs/ScrapRequestImportInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ScrapRequests/Inputs/ScrapRequestImportInput.cs
@@ -1,4 +1,6 @@
using System.ComponentModel.DataAnnotations;
+using DocumentFormat.OpenXml.Wordprocessing;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -7,11 +9,16 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ScrapRequestImportInput : SfsStoreImportInputBase
{
///
- /// 类型
+ /// 报废类型
///
- [Display(Name = "类型")]
- [Required]
- public EnumScrapType Type { get; set; }
+ [Display(Name = "报废类型")]
+ [Required(ErrorMessage = "{0}是必填项")]
+ [ImporterHeader(Name = "报废类型")]
+ [ExporterHeader(DisplayName = "报废类型")]
+ [ValueMapping("线边报废", EnumTransSubType.Scrap_WIP)]
+ [ValueMapping("原料报废", EnumTransSubType.Scrap_Manual)]
+ [ValueMapping("完工报废", EnumTransSubType.Scrap_Product)]
+ public string Type { get; set; }
///
/// 物料代码
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs
index 1f997794c..11691171d 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs
@@ -6,7 +6,9 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
using Volo.Abp;
+using Volo.Abp.Domain.Entities;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Label.Application.Contracts;
using Win_in.Sfs.Label.Domain;
@@ -14,6 +16,7 @@ using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
+using Win_in.Sfs.Wms.Inventory.Domain;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
@@ -30,18 +33,22 @@ public class PurchaseReturnRequestAppService :
SfsStoreRequestAppServiceBase
, IPurchaseReturnRequestAppService
{
- private readonly IPurchaseReturnRequestManager _purchaseReturnRequestManager;
-
private readonly IInventoryLabelAppService _inventoryLabelApp;
+ private readonly ILocationAppService _locationAppService;
+ private readonly ITransactionTypeAppService _transactionTypeAppService;
+ private readonly IPurchaseReturnRequestManager _purchaseReturnRequestManager;
public PurchaseReturnRequestAppService(
IPurchaseReturnRequestRepository repository,
IPurchaseReturnRequestManager purchaseReturnRequestManager,
- IInventoryLabelAppService inventoryLabelApp
- ) : base(repository, purchaseReturnRequestManager)
+ IInventoryLabelAppService inventoryLabelApp,
+ ILocationAppService locationAppService,
+ ITransactionTypeAppService transactionTypeAppService) : base(repository, purchaseReturnRequestManager)
{
_purchaseReturnRequestManager = purchaseReturnRequestManager;
- this._inventoryLabelApp = inventoryLabelApp;
+ _inventoryLabelApp = inventoryLabelApp;
+ _locationAppService = locationAppService;
+ _transactionTypeAppService = transactionTypeAppService;
base.CreatePolicyName = PurchaseReturnRequestPermissions.Create;
base.UpdatePolicyName = PurchaseReturnRequestPermissions.Update;
@@ -55,6 +62,102 @@ public class PurchaseReturnRequestAppService :
throw new NotImplementedException();
}
+ #region 东阳
+
+ protected override async Task> ImportProcessingEntityAsync(Dictionary dictionary)
+ {
+ var addList = dictionary.Where(p => p.Value == EntityState.Added).Select(p => p.Key);
+
+ foreach (var purchaseReturnRequest in addList)
+ {
+ await SetRequestAutoPropertiesAsync(purchaseReturnRequest).ConfigureAwait(false);
+ purchaseReturnRequest.Worker = CurrentUser.GetUserName();
+ purchaseReturnRequest.CreatorId = CurrentUser.Id;
+
+ foreach (var detail in purchaseReturnRequest.Details)
+ {
+ //通过箱标签 查找标签服务 构造其他字段
+ var labelDto = await _inventoryLabelApp.GetByCodeAsync(detail.PackingCode).ConfigureAwait(false);
+ var balanceDto = await BalanceAclService.GetByPackingCodeAsync(detail.PackingCode).ConfigureAwait(false);
+ var locationDto= await _locationAppService.GetByCodeAsync(balanceDto.LocationCode).ConfigureAwait(false);
+ purchaseReturnRequest.AsnNumber = labelDto.AsnNumber;
+ purchaseReturnRequest.RpNumber = labelDto.RpNumber;
+ purchaseReturnRequest.ReturnTime=DateTime.Now;
+ purchaseReturnRequest.SupplierCode= labelDto.SupplierCode;
+ purchaseReturnRequest.ReturnType = EnumPurchaseReturnType.AfterPuton;
+ purchaseReturnRequest.PoNumber = labelDto.PoNumber;
+ await SetDetailPropertiesAsync(detail, labelDto, balanceDto,locationDto).ConfigureAwait(false);
+ }
+ }
+
+ return dictionary;
+ }
+
+ ///
+ /// 赋值Request业务属性
+ ///
+ ///
+ ///
+ private async Task SetRequestAutoPropertiesAsync(PurchaseReturnRequest 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;
+ }
+
+ ///
+ /// 赋值详情
+ ///
+ ///
+ ///
+ ///
+ private async Task SetDetailPropertiesAsync(
+ PurchaseReturnRequestDetail detail,
+ InventoryLabelDto labelDto,
+ BalanceDTO balanceDto,
+ LocationDTO locationDto)
+ {
+ if (labelDto != null)
+ {
+ detail.PoNumber = labelDto.PoNumber;
+ }
+
+ if (balanceDto != null)
+ {
+ detail.PackingCode = balanceDto.PackingCode;
+ detail.ContainerCode = balanceDto.ContainerCode;
+
+ detail.WarehouseCode = locationDto.WarehouseCode;
+ detail.LocationCode = balanceDto.LocationCode;
+ detail.LocationErpCode = locationDto.ErpLocationCode;
+ detail.LocationArea = locationDto.AreaCode;
+ detail.LocationGroup = locationDto.LocationGroupCode;
+
+ detail.Status = balanceDto.Status;
+ detail.Lot = balanceDto.Lot;
+ detail.SupplierBatch = balanceDto.SupplierBatch;
+ detail.Uom = balanceDto.Uom;
+ detail.ArriveDate = balanceDto.ArriveDate;
+ detail.ProduceDate = balanceDto.ProduceDate;
+ detail.ExpireDate = balanceDto.ExpireDate;
+ detail.ItemName = balanceDto.ItemName;
+ detail.ItemDesc1 = balanceDto.ItemDesc1;
+ detail.ItemDesc2 = balanceDto.ItemDesc2;
+ detail.StdPackQty = balanceDto.StdPackQty;
+ detail.Qty = balanceDto.Qty;
+ }
+ }
+
+ #endregion
+
+ #region 校验
+
protected virtual async Task CheckImportInputBusinessAsync(PurchaseReturnRequestImportInput importInput, EnumImportMethod importMethod, List validationRresult)
{
//await base.CheckImportInputBusinessAsync(importInput, importMethod);
@@ -140,162 +243,6 @@ public class PurchaseReturnRequestAppService :
return transactionType;
}
- protected virtual async Task ImportDataAsync(List entites, List deleteEntities)
- {
- await _purchaseReturnRequestManager.ImportDataAsync(entites, deleteEntities).ConfigureAwait(false);
- }
-
- protected override Func GetEntityExpression()
- {
- return p => (1);
- }
-
- protected virtual async Task<(List entites, List deleteEntities)> BuildImportDataAsync(ImportResult importResult, EnumImportMethod importMethod = EnumImportMethod.Update, bool isAllowPartImport = false)
- {
- if (importResult.Data.Any(t => t.ReportStatus == EnumImportReportStatus.Failed))
- {
- if (!isAllowPartImport)
- {
- return (null, null);
- }
- }
-
- var entites = new List();
-
- var details = new List();
-
- var deleteEntites = new List();
-
- var entityExpression = GetEntityExpression();
-
- var groupList = importResult.Data.ToList().GroupBy(entityExpression).Distinct().ToList();
-
- foreach (var group in groupList)
- {
- var input = group.FirstOrDefault();
-
- var inputDetails = group.ToList();
-
- if (!inputDetails.Any(t => t.ReportStatus == EnumImportReportStatus.Failed))
- {
- var exist = await GetEntityAsync(input).ConfigureAwait(false);
-
- var entity = ObjectMapper.Map(input);
-
- await SetEntityPropertiesAsync(entity, input).ConfigureAwait(false);
-
- switch (importMethod)
- {
- case EnumImportMethod.Update:
- if (exist != null)
- {
- entity.SetId(exist.Id);
- }
- break;
- case EnumImportMethod.Replace:
- if (exist != null)
- {
- deleteEntites.Add(exist);
- }
- break;
- }
-
- foreach (var inputDetail in inputDetails)
- {
- var detail = ObjectMapper.Map(inputDetail);
-
- detail.SetIdAndNumber(GuidGenerator, entity.Id, entity.Number);
-
- await SetDetailPropertiesAsync(detail, inputDetail).ConfigureAwait(false);
- entity.AddDetail(detail);
- }
-
- entites.Add(entity);
- }
- }
-
- return (entites, deleteEntites);
- }
-
- private async Task SetDetailPropertiesAsync(
- PurchaseReturnRequestDetail detail,
- PurchaseReturnRequestImportInput input)
- {
- //通过箱标签 查找标签服务 构造其他字段
-
- var label = await _inventoryLabelApp.GetByCodeAsync(input.PackingCode).ConfigureAwait(false);
-
- if (label != null)
- {
- detail.PoNumber = label.PoNumber;
- }
-
- var balance = await BalanceAclService.GetByPackingCodeAsync(input.PackingCode).ConfigureAwait(false);
-
- if (balance != null)
- {
- detail.PackingCode = balance.PackingCode;
- detail.ContainerCode = balance.ContainerCode;
- detail.LocationCode = balance.LocationCode;
- detail.LocationErpCode = balance.LocationErpCode;
- detail.WarehouseCode = balance.WarehouseCode;
- detail.Status = balance.Status;
- detail.Lot = balance.Lot;
- detail.SupplierBatch = balance.SupplierBatch;
- detail.ArriveDate = balance.ArriveDate;
- detail.ProduceDate = balance.ProduceDate;
- detail.ExpireDate = balance.ExpireDate;
- detail.ItemName = balance.ItemName;
- detail.ItemDesc1 = balance.ItemDesc1;
- detail.ItemDesc2 = balance.ItemDesc2;
- detail.StdPackQty = balance.StdPackQty;
-
- detail.Qty = balance.Qty;
- }
- }
-
- private async Task SetEntityPropertiesAsync(PurchaseReturnRequest entity, PurchaseReturnRequestImportInput input)
- {
- entity.Worker = CurrentUser.GetUserName();
-
- //通过箱标签 查找标签服务 构造其他字段
-
- var label = await _inventoryLabelApp.GetByCodeAsync(input.PackingCode).ConfigureAwait(false);
-
- Check.NotNull(label, nameof(InventoryLabel));
-
- entity.RpNumber = label.RpNumber;
- entity.AsnNumber = label.AsnNumber;
- entity.PoNumber = label.PoNumber;
-
- var balance = await BalanceAclService.GetByPackingCodeAsync(input.PackingCode).ConfigureAwait(false);
-
- Check.NotNull(balance, nameof(BalanceDTO));
-
- //var order = await this._orderAppService.GetByNumberAsync(label.PoNumber);
-
- //Check.NotNull(order, nameof(PurchaseOrder));
-
- entity.SupplierCode = label.SupplierCode;
-
- entity.ReturnTime = DateTime.Now;
-
- await SetRequestAutoPropertiesAsync(entity).ConfigureAwait(false);
- }
-
- private async Task SetRequestAutoPropertiesAsync(PurchaseReturnRequest entity)
- {
- var tranType = await TransactionTypeAclService.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;
- }
-
///
/// 被 TransactionTypeHelper.CheckTransactionType()取代
///
@@ -375,4 +322,5 @@ public class PurchaseReturnRequestAppService :
}
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ScrapRequests/ScrapRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ScrapRequests/ScrapRequestAppService.cs
index 2c81b848c..be7623764 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ScrapRequests/ScrapRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ScrapRequests/ScrapRequestAppService.cs
@@ -66,11 +66,27 @@ public class ScrapRequestAppService : SfsStoreRequestAppServiceBase
{
scrapRequest.CreatorId = CurrentUser.Id;
scrapRequest.Worker = CurrentUser.Name;
-
- scrapRequest.Type = EnumTransSubType.Scrap_WIP.ToString();
scrapRequest.ActiveDate = DateTime.Now;
+ scrapRequest.Type = scrapRequest.Type;
+
+ EnumTransSubType enumTransSubType = 0;
+
+ if (scrapRequest.Type == "原料报废")
+ {
+ enumTransSubType = EnumTransSubType.Scrap_Manual;
+ }
+
+ if (scrapRequest.Type== "线边报废")
+ {
+ enumTransSubType = EnumTransSubType.Scrap_WIP;
+ }
+
+ if (scrapRequest.Type == "完工报废")
+ {
+ enumTransSubType = EnumTransSubType.Scrap_Product;
+ }
- await SetEntityPropertiesAsync(scrapRequest, EnumTransSubType.Scrap_WIP).ConfigureAwait(false);
+ await SetEntityPropertiesAsync(scrapRequest, enumTransSubType).ConfigureAwait(false);
foreach (var detail in scrapRequest.Details)
{
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReturnJobs/PurchaseReturnJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReturnJobs/PurchaseReturnJob.cs
index 8749782e5..03978c7a8 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReturnJobs/PurchaseReturnJob.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReturnJobs/PurchaseReturnJob.cs
@@ -78,14 +78,18 @@ public class PurchaseReturnJob : SfsJobAggregateRootBase
///
///
- public virtual async Task SetDetail(Guid id, string handledLocationCode, string handledLocationErpCode, string handledWarehouseCode, decimal handledQty,
+ public virtual async Task SetDetail(Guid id, string handledLocationCode, string handledLocationErpCode, string handledWarehouseCode,string handledFromLocationArea,string handledFromLocationGroup, decimal handledQty,
string handledSupplierBatch, DateTime handledArriveDate, DateTime handledProduceDate, DateTime handledExpireDate, string handledContainerCode, string handledLot, string handledPackingCode, string reason)
{
var detail = GetDetail(id);
detail.HandledFromLocationCode = handledLocationCode;
detail.HandledFromLocationErpCode = handledLocationErpCode;
+ detail.HandledFromLocationArea = handledFromLocationArea;
detail.HandledFromWarehouseCode = handledWarehouseCode;
+ detail.HandledFromLocationGroup = handledFromLocationGroup;
+
detail.HandledQty = handledQty;
+
detail.HandledSupplierBatch = handledSupplierBatch;
detail.HandledArriveDate = handledArriveDate;
detail.HandledProduceDate = handledProduceDate;
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReturnJobs/PurchaseReturnJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReturnJobs/PurchaseReturnJobManager.cs
index 081df3087..c375cbcfd 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReturnJobs/PurchaseReturnJobManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReturnJobs/PurchaseReturnJobManager.cs
@@ -35,13 +35,19 @@ public class PurchaseReturnJobManager : SfsJobManagerBase p.Id == detail.Id);
await entity.SetDetail(
detail.Id,
detail.HandledFromLocationCode,
detail.HandledFromLocationErpCode,
detail.HandledFromWarehouseCode,
+ detail.HandledFromLocationArea,
+ detail.HandledFromLocationGroup,
detail.HandledQty,
- detail.HandledSupplierBatch, detail.HandledArriveDate, detail.HandledProduceDate, detail.HandledExpireDate,
+ detail.HandledSupplierBatch,
+ detail.HandledArriveDate,
+ detail.HandledProduceDate,
+ detail.HandledExpireDate,
detail.HandledContainerCode,
detail.HandledLot,
detail.HandledPackingCode,
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/DeliverJobAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/DeliverJobAutoMapperProfile.cs
index 0622a13c0..065cc9c81 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/DeliverJobAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/DeliverJobAutoMapperProfile.cs
@@ -18,6 +18,7 @@ public partial class StoreEventAutoMapperProfile : Profile
.ForMember(x => x.JobNumber, y => y.MapFrom(d => d.Number))
.ForMember(x => x.ActiveDate, y => y.MapFrom(d => DateTime.Now))
.ForMember(x => x.Worker, y => y.MapFrom(d => d.CompleteUserName))
+ .Ignore(x=>x.CountPrint)
;
CreateMap()
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/DeliverRequestMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/DeliverRequestMapperProfile.cs
index 8cc67eb37..5dbb2df1b 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/DeliverRequestMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/DeliverRequestMapperProfile.cs
@@ -72,6 +72,7 @@ public partial class StoreEventAutoMapperProfile : Profile
CreateMap()
.ForMember(x => x.DeliverRequestNumber, y => y.MapFrom(d => d.Number)).Ignore(x => x.JobNumber)
+ .Ignore(x=>x.CountPrint)
.Ignore(x => x.Details);
CreateMap()
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/PurchaseReturnRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/PurchaseReturnRequestAutoMapperProfile.cs
index bbe21a42e..19215afb5 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/PurchaseReturnRequestAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/PurchaseReturnRequestAutoMapperProfile.cs
@@ -15,7 +15,7 @@ public partial class StoreEventAutoMapperProfile : Profile
CreateMap()
.ForMember(x => x.PurchaseReturnRequestNumber, y => y.MapFrom(d => d.Number))
- .Ignore(x => x.WarehouseCode)
+ .Ignore(x=>x.WarehouseCode)
.Ignore(x => x.IsAutoComplete)
.Ignore(x => x.JobType)
.Ignore(x => x.JobDescription)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs
index 00d4f1c96..59d9a65cd 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs
@@ -13,25 +13,57 @@ public class PurchaseReturnRequestEventHandler
: StoreEventHandlerBase
, ILocalEventHandler>
, ILocalEventHandler>
+ , ILocalEventHandler>
+ , ILocalEventHandler>>
{
private readonly IPurchaseReturnJobAppService _purchaseReturnJobAppService;
+ private readonly IPurchaseReturnRequestManager _purchaseReturnRequestManager;
public PurchaseReturnRequestEventHandler(
- IPurchaseReturnJobAppService purchaseReturnJobAppService
- )
+ IPurchaseReturnJobAppService purchaseReturnJobAppService,
+ IPurchaseReturnRequestManager purchaseReturnRequestManager)
{
_purchaseReturnJobAppService = purchaseReturnJobAppService;
+ _purchaseReturnRequestManager = purchaseReturnRequestManager;
}
- public virtual async Task HandleEventAsync(SfsHandledEntityEventData eventData)
- {
- var request = eventData.Entity;
- var jobCreateInputs = await BuildPurchaseReturnJobDetailAsync(request).ConfigureAwait(false);
+ ///
+ /// 创建后
+ ///
+ ///
+ ///
+ public virtual async Task HandleEventAsync(SfsCreatedEntityEventData eventData)
+ {
+ var entity = eventData.Entity;
+ if (entity.AutoSubmit)
+ {
+ await _purchaseReturnRequestManager.SubmitAsync(entity).ConfigureAwait(false);
+ }
+ }
- await _purchaseReturnJobAppService.CreateManyAsync(jobCreateInputs).ConfigureAwait(false);
+ ///
+ /// 批量创建后
+ ///
+ ///
+ ///
+ public virtual async Task HandleEventAsync(SfsCreatedEntityEventData> eventData)
+ {
+ var entitys = eventData.Entity;
+ foreach (var entity in entitys)
+ {
+ if (entity.AutoSubmit)
+ {
+ await _purchaseReturnRequestManager.SubmitAsync(entity).ConfigureAwait(false);
+ }
+ }
}
+ ///
+ /// 审批后
+ ///
+ ///
+ ///
public virtual async Task HandleEventAsync(SfsAbortedEntityEventData eventData)
{
var request = eventData.Entity;
@@ -39,6 +71,20 @@ public class PurchaseReturnRequestEventHandler
await _purchaseReturnJobAppService.CancelByPurchaseReturnRequestAsync(request.Number).ConfigureAwait(false);
}
+ ///
+ /// 执行后
+ ///
+ ///
+ ///
+ public virtual async Task HandleEventAsync(SfsHandledEntityEventData eventData)
+ {
+ var request = eventData.Entity;
+
+ var jobCreateInputs = await BuildPurchaseReturnJobDetailAsync(request).ConfigureAwait(false);
+
+ await _purchaseReturnJobAppService.CreateManyAsync(jobCreateInputs).ConfigureAwait(false);
+ }
+
#region 私有
private async Task> BuildPurchaseReturnJobDetailAsync(PurchaseReturnRequest request)
@@ -50,11 +96,11 @@ public class PurchaseReturnRequestEventHandler
foreach (var item in groupBy)
{
var location = await LocationAclService.GetByCodeAsync(item.Key).ConfigureAwait(false);
-
if (location != null)
{
//初始化
var job = ObjectMapper.Map(request);
+ job.WarehouseCode = location.WarehouseCode;
job.JobType = EnumJobType.PurchaseReturnJob;
job.JobStatus = EnumJobStatus.Open;
@@ -79,4 +125,5 @@ public class PurchaseReturnRequestEventHandler
}
#endregion
+
}