From 285015f236f14bd882f5851bca3a20275ca61e4f Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Wed, 6 Mar 2024 10:41:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=99=A8=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Equipments/EquipmentAppService.cs | 54 ++++++++++++++++++- .../EquipmentAreaAutoMapperProfile.cs | 1 + .../Equipments/EquipmentAutoMapperProfile.cs | 2 + .../Equipments/EquipmentRecordAppService.cs | 36 ++++++++++--- .../StoreEntityFrameworkCoreModule.cs | 1 + 5 files changed, 86 insertions(+), 8 deletions(-) diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAppService.cs index 6a734a07d..a93db8119 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAppService.cs @@ -1,11 +1,13 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.IO; using System.Linq; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Volo.Abp; using Volo.Abp.Application.Dtos; @@ -15,6 +17,8 @@ using Volo.Abp.Validation; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; +using Win_in.Sfs.Shared.Application.Contracts; +using Win_in.Sfs.Shared.Application.Contracts.ExportAndImport; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; @@ -29,14 +33,17 @@ public class EquipmentAppService //private readonly ItemValidator _itemValidator; private readonly IEquipmentManager _manager; private new readonly IEquipmentRepository _repository; - + private readonly IExportImportService _importService; + public EquipmentAppService( IEquipmentRepository repository, IDistributedCache cache, + IExportImportService importService, // ItemValidator itemValidator, IEquipmentManager manager) : base(repository, cache) { + _importService=importService; _repository = repository; //_itemValidator = itemValidator; _manager = manager; @@ -52,7 +59,52 @@ public class EquipmentAppService { await Task.CompletedTask.ConfigureAwait(false); } + //public override async Task ImportAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file) + //{ + // List errors = new List(); + // using var ms = new MemoryStream(); + // await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false); + // var inputFileBytes = ms.GetAllBytes(); + // var dtos=_importService.Import(inputFileBytes).ToList(); + // var list=ObjectMapper.Map, List>(dtos); + + + + + + // foreach (var itm in list) + // { + // itm.SetId(GuidGenerator.Create()); + // itm.Code = string.Format("{0}{1}", "Q", itm.Code); + + // } + + + + + // ////var bytes = result.FileContents; + // ////result.FileContents = null; + // ////HttpContextAccessor.HttpContext.Response.Headers.AccessControlExposeHeaders = "X-Response"; + // ////HttpContextAccessor.HttpContext.Response.Headers.Add("X-Response", + // //// JsonSerializer.Serialize(new { result.ExceptionMessage, result.FileName, result.FileCode, result })); + + // ////Console.WriteLine(@"导入错误信息:" + result.ExceptionMessage); + + // ////var resultAction = new TestResult(bytes, ExportImportService.ContentType) { FileDownloadName = result.FileName }; + // ////resultAction.errorNum = result.ErrorNum; + // ////resultAction.successNum = resultAction.successNum; + // //return resultAction; + + + + + + + + + // // return base.ImportAsync(requestInput, file); + //} //protected ICategoryAppService _categoryApp => LazyServiceProvider.LazyGetRequiredService(); //protected IItemCategoryAppService _itemCategoryApp => LazyServiceProvider.LazyGetRequiredService(); diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAreaAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAreaAutoMapperProfile.cs index 34507c831..503434c56 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAreaAutoMapperProfile.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAreaAutoMapperProfile.cs @@ -19,6 +19,7 @@ public partial class BasedataApplicationAutoMapperProfile : Profile .Ignore(x => x.Remark) .Ignore(x => x.ExtraProperties) .Ignore(x => x.ConcurrencyStamp) + ; //CreateMap() diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAutoMapperProfile.cs index fec39f919..0f2899506 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAutoMapperProfile.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentAutoMapperProfile.cs @@ -19,6 +19,8 @@ public partial class BasedataApplicationAutoMapperProfile : Profile .Ignore(x => x.Remark) .Ignore(x => x.ExtraProperties) .Ignore(x => x.ConcurrencyStamp) + .ForMember(p =>p.Code, p => p.MapFrom(q =>"Q" +q.Code)) + ; //CreateMap() diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Equipments/EquipmentRecordAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Equipments/EquipmentRecordAppService.cs index df6bf8b6a..56a246d0c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Equipments/EquipmentRecordAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Equipments/EquipmentRecordAppService.cs @@ -23,7 +23,7 @@ namespace Win_in.Sfs.Wms.Store.Application; [Authorize] [Route($"{StoreConsts.RootPath}EquipmentRecord")] public class EquipmentRecordAppService - : SfsCrudAppServiceBase , IEquipmentRecordAppService @@ -42,32 +42,54 @@ public class EquipmentRecordAppService _manager = manager; _repository = repository; } - + /// + /// 没用 + /// + /// + /// + /// + /// + [HttpPost("addDetail")] public Task AddDetailListAsync(Guid id, List list) { throw new NotImplementedException(); } - + /// + /// 没用 + /// + [HttpPost("check")] public Task CheckStatusAsync(string number) { throw new NotImplementedException(); } - + /// + /// 没用 + /// + [HttpPost("getlist")] public Task> GetDetailListAsync(Guid id, SfsStoreRequestInputBase requestInput) { throw new NotImplementedException(); } - + /// + /// 没用 + /// + [HttpPost("updateDetail")] public Task UpdateDetailAsync(Guid id, Guid detailId, EquipmentRecordDTO updateDTO) { throw new NotImplementedException(); } - + /// + /// 没用 + /// + [HttpPost("upsertAsync")] public Task UpsertAsync(EquipmentRecordEditInput input) { throw new NotImplementedException(); } - + /// + /// 没用 + /// + [HttpPost("withDetil")] Task ISfsReadOnlyWithDetailsAppService.GetDetailAsync(Guid id, Guid detailId) { throw new NotImplementedException(); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs index 0a5316749..2b05879e9 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs @@ -32,6 +32,7 @@ public class StoreEntityFrameworkCoreModule : AbpModule context.Services.AddTransient(); context.Services.AddTransient(); context.Services.AddTransient(); + context.Services.AddTransient(); #endregion From b807b19b42add275f2e1946786327fa03e633b23 Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Wed, 6 Mar 2024 13:30:34 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8B=86=E7=AE=B1=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BasedataPermissionDefinitionProvider.cs | 1 + .../SplitPackingRecPermissions.cs | 20 +++++++++++++++++++ .../SplitPackingRecAppService.cs | 13 +++++++----- 3 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/SplitPackingRecPermissions.cs diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Permissions/BasedataPermissionDefinitionProvider.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Permissions/BasedataPermissionDefinitionProvider.cs index 58fb44e62..761725ba0 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Permissions/BasedataPermissionDefinitionProvider.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Permissions/BasedataPermissionDefinitionProvider.cs @@ -30,6 +30,7 @@ public class BasedataPermissionDefinitionProvider : PermissionDefinitionProvider basedataGroup.AddSalePriceSheetPermission(); basedataGroup.AddShiftPermission(); basedataGroup.AddStdCostPriceSheetPermission(); + basedataGroup.AddSplitPackingRecPermission(); basedataGroup.AddUomPermission(); basedataGroup.AddItemBasicPermission(); basedataGroup.AddItemCategoryPermission(); diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/SplitPackingRecPermissions.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/SplitPackingRecPermissions.cs new file mode 100644 index 000000000..7d51981ad --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/SplitPackingRecPermissions.cs @@ -0,0 +1,20 @@ +using Volo.Abp.Authorization.Permissions; +using Win_in.Sfs.Basedata.Domain; + +namespace Win_in.Sfs.Basedata.Application.Contracts; + +public static class SplitPackingRecPermissions +{ + public const string Default = BasedataPermissions.GroupName + "." + nameof(SplitPackingRec); + public const string Create = Default + "." + BasedataPermissions.CreateStr; + public const string Update = Default + "." + BasedataPermissions.UpdateStr; + public const string Delete = Default + "." + BasedataPermissions.DeleteStr; + + public static void AddSplitPackingRecPermission(this PermissionGroupDefinition permissionGroup) + { + var SplitPackingRecPermission = permissionGroup.AddPermission(Default, BasedataPermissionDefinitionProvider.L(nameof(SplitPackingRec))); + SplitPackingRecPermission.AddChild(Create, BasedataPermissionDefinitionProvider.L(BasedataPermissions.CreateStr)); + SplitPackingRecPermission.AddChild(Update, BasedataPermissionDefinitionProvider.L(BasedataPermissions.UpdateStr)); + SplitPackingRecPermission.AddChild(Delete, BasedataPermissionDefinitionProvider.L(BasedataPermissions.DeleteStr)); + } +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs index 9a12c4c3b..fc87385c9 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs @@ -1,9 +1,7 @@ -using System; using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Mvc; using Volo.Abp.Caching; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Domain; @@ -14,7 +12,7 @@ namespace Win_in.Sfs.Basedata.Application; /// /// 拆箱记录 /// -//[Authorize] +[Authorize] [Route($"{BasedataConsts.RootPath}split-packing-rec")] public class SplitPackingRecAppService : SfsBaseDataAppServiceBase cache ) : base(repository, cache) { + base.CreatePolicyName = StdCostPriceSheetPermissions.Create; + base.UpdatePolicyName = StdCostPriceSheetPermissions.Update; + base.DeletePolicyName = StdCostPriceSheetPermissions.Delete; _splitPackingRecManager = splitPackingRecManager; } - + [HttpPost("batch-insert")] public async Task BatchInsertAsync(List inputs) { List lst = ObjectMapper.Map, List>(inputs); @@ -43,6 +44,7 @@ public class SplitPackingRecAppService : /// /// 目标箱码列表 /// + [HttpGet("by-to-packing-code")] public async Task> GetListByToPackingCode(List toPackingCodeList) { var lst = await _splitPackingRecManager.GetListByToPackingCode(toPackingCodeList).ConfigureAwait(false); @@ -55,6 +57,7 @@ public class SplitPackingRecAppService : /// /// 源标箱码列表 /// + [HttpGet("by-from-packing-code")] public async Task> GetListByFromPackingCode(List fromPackingCodeList) { var lst = await _splitPackingRecManager.GetListByFromPackingCode(fromPackingCodeList).ConfigureAwait(false); From 8148d1dfcca23a68789f5ae959f8a3f8b5f45d94 Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Wed, 6 Mar 2024 13:33:38 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=8A=A03=E4=B8=AA=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=9A=84=E6=8B=86=E7=AE=B1=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Stores/TransferNoteController.cs | 28 ++++ .../Commons/CommonHelper.cs | 8 ++ .../Jobs/InspectJobs/IInspectJobAppService.cs | 7 + .../Jobs/IssueJobs/IIssueJobAppService.cs | 7 + .../IPurchaseReceiptJobAppService.cs | 15 ++ .../TransferNotes/ITransferNoteAppService.cs | 24 ++++ .../SplitPacking_UpdateJobDetailInput.cs | 38 +++++ .../IPurchaseReceiptRequestAppService.cs | 17 +++ .../Jobs/InspectJobs/InspectJobAppService.cs | 34 +++++ .../Jobs/IssueJobs/IssueJobAppService.cs | 32 +++++ .../PurchaseReceiptJobAppService.cs | 48 +++++++ .../TransferNotes/TransferNoteAppService.cs | 136 +++++++++++++----- .../PurchaseReceiptRequestAppService.cs | 46 ++++++ .../Jobs/InspectJobs/InspectJob.cs | 1 + .../Jobs/InspectJobs/InspectJobDetail.cs | 7 + .../Jobs/IssueJobs/IssueJobDetail.cs | 4 + .../IPurchaseReceiptJobManager.cs | 4 + .../PurchaseReceiptJobDetail.cs | 7 + .../PurchaseReceiptJobManager.cs | 12 ++ .../PurchaseReceiptRequestDetail.cs | 7 + 20 files changed, 450 insertions(+), 32 deletions(-) create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferNotes/Inputs/SplitPacking_UpdateJobDetailInput.cs diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferNoteController.cs index 87891bec2..dfcc5ce45 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferNoteController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferNoteController.cs @@ -156,4 +156,32 @@ public class TransferNoteController : AbpController return await _transferNoteAppService.SplitPackingAsync(transferNoteEditInput).ConfigureAwait(false); } + /// + /// 采购收货拆箱,同时更新、插入PurchaseReceipt任务表、申请表 + /// + /// + /// + /// + [HttpPost("split-packing-purchase-receipt")] + public async Task SplitPacking_PurchaseReceiptAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) + { + var ret = await _transferNoteAppService.SplitPacking_PurchaseReceiptAsync(transferNoteEditInput, updateJobDetailInput).ConfigureAwait(false); + return ret; + } + + /// + /// 发料拆箱,同时更新、插入Inspect任务表(没有找到申请表//??) + /// + /// + /// + /// + [HttpPost("split-packing-issue")] + public async Task SplitPacking_IssueAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) + { + var ret = await _transferNoteAppService.SplitPacking_IssueAsync(transferNoteEditInput, updateJobDetailInput).ConfigureAwait(false); + return ret; + } + + + } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs index 4f8e1c8b5..1859b5324 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs @@ -20,4 +20,12 @@ public sealed class CommonHelper var ret = JsonConvert.DeserializeObject(json); return ret; } + + public static DateTime CurTime + { + get + { + return DateTime.Now; + } + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/InspectJobs/IInspectJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/InspectJobs/IInspectJobAppService.cs index 2bc8a2f43..65fe5830a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/InspectJobs/IInspectJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/InspectJobs/IInspectJobAppService.cs @@ -43,4 +43,11 @@ public interface IInspectJobAppService Task CancelByInspectRequestAsync(string inspectRequestNumber); Task GetInspectNoteDetailByPackingCodeAsync(string packingCode); + + /// + /// 保存拆箱时涉及的明细修改 + /// + /// + Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input); + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/IIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/IIssueJobAppService.cs index 1b9ad5f7d..306f0df4e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/IIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/IIssueJobAppService.cs @@ -16,4 +16,11 @@ public interface IIssueJobAppService bool includeDetails = false, CancellationToken cancellationToken = default); Task> GetByRequestNumberAsync(string requestNumber); + + /// + /// 保存拆箱时涉及的明细修改 + /// + /// + Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input); + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobAppService.cs index 027134838..921906b69 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobAppService.cs @@ -46,4 +46,19 @@ public interface IPurchaseReceiptJobAppService /// /// Task> GetListBySupplierCodeOnTodayAsync(string supplierCode); + + /// + /// 根据number取列表 + /// + /// + /// + Task> GetListByNumberAsync(string number); + + /// + /// 保存拆箱时涉及的明细修改 + /// + /// + Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input); + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferNotes/ITransferNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferNotes/ITransferNoteAppService.cs index fc797cf4f..aceb3662a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferNotes/ITransferNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferNotes/ITransferNoteAppService.cs @@ -63,4 +63,28 @@ public interface ITransferNoteAppService : Task> GetSplitPackingTransferListAsync( SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false, CancellationToken cancellationToken = default); + + /// + /// 采购收货拆箱,同时更新、插入PurchaseReceipt任务表、申请表 + /// + /// + /// + /// + Task SplitPacking_PurchaseReceiptAsync(TransferNoteEditInput transferNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput); + + /// + /// 质检拆箱,同时更新、插入Inspect任务表(不更新申请表) + /// + /// + /// + /// + Task SplitPacking_InspectAsync(TransferNoteEditInput transferNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput); + + /// + /// 发料拆箱,同时更新、插入Inspect任务表(没有找到申请表//??) + /// + /// + /// + /// + Task SplitPacking_IssueAsync(TransferNoteEditInput transferNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferNotes/Inputs/SplitPacking_UpdateJobDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferNotes/Inputs/SplitPacking_UpdateJobDetailInput.cs new file mode 100644 index 000000000..61a8befe6 --- /dev/null +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferNotes/Inputs/SplitPacking_UpdateJobDetailInput.cs @@ -0,0 +1,38 @@ +using System.ComponentModel.DataAnnotations; + +namespace Win_in.Sfs.Wms.Store.Application.Contracts; + +/// +/// +/// +public class SplitPacking_UpdateJobDetailInput +{ + /// + /// 主表number + /// + [Required(ErrorMessage = "{0}是必填项")] + public string Number { get; set; } + /// + /// 子表from标签 + /// + [Required(ErrorMessage = "{0}是必填项")] + public string FromPackingCode { get; set; } + /// + /// from数量 + /// + [Required(ErrorMessage = "{0}是必填项")] + [Range(1, 99999, ErrorMessage = "{0}值范围在1至99999之间")] + public decimal FromQty { get; set; } + /// + /// 子表的to标签 + /// + [Required(ErrorMessage = "{0}是必填项")] + public string ToPackingCode { get; set; } + /// + /// to数量 + /// + [Required(ErrorMessage = "{0}是必填项")] + [Range(1, 99999, ErrorMessage = "{0}值范围在1至99999之间")] + public decimal ToQty { get; set; } + +} diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs index 8cb796843..9bb0ff309 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs @@ -39,4 +39,21 @@ public interface IPurchaseReceiptRequestAppService /// Task UpdatePurchaseReceiptRequestAsync(string number, EnumRequestStatus enumRequestStatus); + + /// + /// 根据number取列表 + /// + /// + /// + Task> GetListByNumberAsync(string number); + + /// + /// 保存拆箱时涉及的明细修改 + /// + /// + /// + Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input, string packingCode); + + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs index 1f534b9e1..677079a54 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs @@ -4,7 +4,9 @@ using System.Text.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Volo.Abp; using Volo.Abp.ObjectMapping; +using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.FileStorage.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; @@ -160,6 +162,38 @@ public class InspectJobAppService return dto; } + /// + /// 保存拆箱时涉及的明细修改 + /// + /// + [HttpPost("save-detail-split-packing")] + public virtual async Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input) + { + InspectJob job = await _repository.FindAsync(p => p.Number == input.Number).ConfigureAwait(false); + InspectJobDetail detail = job.Details.FirstOrDefault(p => p.PackingCode == input.FromPackingCode && p.InspectQty == input.FromQty); + if (detail == null) + { + throw new UserFriendlyException($"根据PackingCode={input.FromPackingCode}取InspectDetail表为空!"); + } + //插入目标箱 + var newDetail = CommonHelper.CloneObj(detail); + newDetail.SetId(GuidGenerator.Create()); + newDetail.PackingCode = input.ToPackingCode; + newDetail.ReceiveQty = input.ToQty; + newDetail.InspectQty = input.ToQty; + newDetail.GoodQty = input.ToQty; + //newDetail.CreationTime = CommonHelper.CurTime; + job.Details.Add(newDetail); + //修改源箱 + detail.ReceiveQty = input.FromQty - input.ToQty; + detail.InspectQty = input.FromQty - input.ToQty; + detail.GoodQty = input.FromQty - input.ToQty; + var entity = await _repository.UpdateAsync(job).ConfigureAwait(false); + var ret = ObjectMapper.Map(entity); + return ret; + } + + //[HttpPost("pick-inspect")] //public virtual async Task AddPickInspectJobAsync(InspectJobCreateInput input) //{ diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/IssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/IssueJobAppService.cs index 6ec183a2b..6439fc1e8 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/IssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/IssueJobAppService.cs @@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.ObjectMapping; +using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Wms.Store.Application.Contracts; @@ -159,6 +160,37 @@ public class IssueJobAppService return ObjectMapper.Map, List>(entitys); } + /// + /// 保存拆箱时涉及的明细修改 + /// + /// + [HttpPost("save-detail-split-packing")] + public virtual async Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input) + { + var job = await _repository.FindAsync(p => p.Number == input.Number).ConfigureAwait(false); + IssueJobDetail detail = job.Details.FirstOrDefault(p => p.HandledPackingCode == input.FromPackingCode && p.HandledQty == input.FromQty); + if (detail == null) + { + throw new UserFriendlyException($"根据HandledPackingCode={input.FromPackingCode}取IssueJobDetail表为空!"); + } + //插入目标箱 + var newDetail = CommonHelper.CloneObj(detail); + newDetail.SetId(GuidGenerator.Create()); + newDetail.RecommendPackingCode = input.ToPackingCode; + newDetail.RecommendQty = input.ToQty; + newDetail.HandledPackingCode = input.ToPackingCode; + newDetail.HandledQty = input.ToQty; + //newDetail.CreationTime = CommonHelper.CurTime; + job.Details.Add(newDetail); + //修改源箱 + detail.RecommendQty = input.FromQty - input.ToQty; + detail.HandledQty = input.FromQty - input.ToQty; + var entity = await _repository.UpdateAsync(job).ConfigureAwait(false); + var ret = ObjectMapper.Map(entity); + return ret; + } + + /* /// /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobAppService.cs index 2c646ae7e..75d502fb6 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobAppService.cs @@ -5,7 +5,9 @@ using System.Text.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Volo.Abp; using Volo.Abp.ObjectMapping; +using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.FileStorage.Application.Contracts; using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Wms.Store.Application.Contracts; @@ -214,6 +216,52 @@ public class PurchaseReceiptJobAppService : return dto; } + /// + /// 根据number取列表 + /// + /// + /// + [HttpGet("get-list-by-number")] + public async Task> GetListByNumberAsync(string number) + { + var entity = await _repository.GetListAsync(itm => itm.Number == number).ConfigureAwait(false); + var dto = ObjectMapper.Map, List>(entity); + return dto; + } + + /// + /// 保存拆箱时涉及的明细修改 + /// + /// + [HttpPost("save-detail-split-packing")] + public virtual async Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input) + { + var job = await _repository.FindAsync(p => p.Number == input.Number).ConfigureAwait(false); + PurchaseReceiptJobDetail detail = job.Details.FirstOrDefault(p => p.HandledPackingCode == input.FromPackingCode && p.HandledQty == input.FromQty); + if (detail == null) + { + throw new UserFriendlyException($"根据HandledPackingCode={input.FromPackingCode}取ReceiptRequestDetail表为空!"); + } + //插入目标箱 + var newDetail = CommonHelper.CloneObj(detail); + newDetail.SetId(GuidGenerator.Create()); + newDetail.RecommendPackingCode = input.ToPackingCode; + newDetail.RecommendQty = input.ToQty; + newDetail.HandledPackingCode = input.ToPackingCode; + newDetail.HandledQty = input.ToQty; + //newDetail.CreationTime = CommonHelper.CurTime; + job.Details.Add(newDetail); + //修改源箱 + detail.RecommendQty = input.FromQty - input.ToQty; + detail.HandledQty = input.FromQty - input.ToQty; + var entity = await _repository.UpdateAsync(job).ConfigureAwait(false); + var ret = ObjectMapper.Map(entity); + return ret; + } + + + + ///// ///// 取消请求 ///// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs index 3188e6c7b..f2ee44369 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs @@ -33,18 +33,32 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase private readonly IBalanceAppService _balanceAppService; private readonly ILocationAppService _locationAppService; private readonly ISplitPackingRecAppService _splitPackingRecAppService; + private readonly IPurchaseReceiptJobAppService _purchaseReceiptJobAppService; + private readonly IPurchaseReceiptRequestAppService _purchaseReceiptRequestAppService; //采购收货 + private readonly IInspectJobAppService _inspectJobAppService; //质检 + private readonly IIssueJobAppService _issueJobAppService; //发料 + + public TransferNoteAppService( ITransferNoteRepository repository, ITransferNoteManager transferNoteManager, IBalanceAppService balanceAppService, ILocationAppService locationAppService, - ISplitPackingRecAppService splitPackingRecAppService) : base(repository) + ISplitPackingRecAppService splitPackingRecAppService, + IPurchaseReceiptJobAppService purchaseReceiptJobAppService, + IPurchaseReceiptRequestAppService purchaseReceiptRequestAppService, + IInspectJobAppService inspectJobAppService, + IIssueJobAppService issueJobAppService) : base(repository) { _transferNoteManager = transferNoteManager; _balanceAppService = balanceAppService; _locationAppService = locationAppService; _splitPackingRecAppService = splitPackingRecAppService; + _purchaseReceiptJobAppService = purchaseReceiptJobAppService; + _purchaseReceiptRequestAppService = purchaseReceiptRequestAppService; + _inspectJobAppService = inspectJobAppService; + _issueJobAppService = issueJobAppService; } #region 东阳使用 @@ -126,36 +140,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase public async Task SplitPackingAsync(TransferNoteEditInput transferNoteEditInput) { //插入拆箱记录表 - foreach (var inputDetail in transferNoteEditInput.Details) - { - List recLst = new List(); - SplitPackingRecEditInput packRec = new SplitPackingRecEditInput(); - packRec.OprType = OprTypeEnum.SplitBox; - packRec.FromPackingCode = inputDetail.FromPackingCode; - //packRec.FromTopPackingCode = inputDetail.; - packRec.FromStdPackQty = inputDetail.StdPackQty; - packRec.FromUom = inputDetail.Uom; - packRec.FromQty = inputDetail.Qty; - packRec.ToPackingCode = inputDetail.ToPackingCode; - //packRec.ToTopPackingCode = inputDetail.; - packRec.ToStdPackQty = inputDetail.StdPackQty; - packRec.ToUom = inputDetail.Uom; - packRec.ToQty = inputDetail.Qty; - packRec.ItemCode = inputDetail.ItemCode; - packRec.ItemName = inputDetail.ItemName; - packRec.ItemDesc1 = inputDetail.ItemDesc1; - packRec.ItemDesc2 = inputDetail.ItemDesc2; - packRec.FromLot = inputDetail.FromLot; - packRec.ToLot = inputDetail.ToLot; - //packRec.PurchaseInfo_PoNumber = inputDetail.; // 采购订单 - //packRec.PurchaseInfo_AsnNumber = inputDetail.; //供应商发货单 - //packRec.ArrivalNoticNumber = inputDetail.; //到货通知 - //packRec.TaskOrderNumber = inputDetail.; //任务单 - //packRec.ReceiptRecNumber = inputDetail.; //收货记录单 - //packRec.PutOnShelfNumber = inputDetail.; //上架单 - recLst.Add(packRec); - await _splitPackingRecAppService.BatchInsertAsync(recLst).ConfigureAwait(false); - } + await WriteSplitPackingRec(transferNoteEditInput).ConfigureAwait(false); //更新库存 transferNoteEditInput.Type = EnumTransSubType.Transfer_SplitPacking.ToString(); return await CreateAsync(transferNoteEditInput).ConfigureAwait(false); @@ -389,5 +374,92 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase return dto; } - + /// + /// 插入拆箱记录表 + /// + /// + /// + private async Task WriteSplitPackingRec(TransferNoteEditInput transferNoteEditInput) + { + List recLst = new List(); + foreach (var inputDetail in transferNoteEditInput.Details) + { + SplitPackingRecEditInput packRec = new SplitPackingRecEditInput(); + packRec.OprType = OprTypeEnum.SplitBox; + packRec.FromPackingCode = inputDetail.FromPackingCode; + //packRec.FromTopPackingCode = inputDetail.; + packRec.FromStdPackQty = inputDetail.StdPackQty; + packRec.FromUom = inputDetail.Uom; + packRec.FromQty = inputDetail.Qty; + packRec.ToPackingCode = inputDetail.ToPackingCode; + //packRec.ToTopPackingCode = inputDetail.; + packRec.ToStdPackQty = inputDetail.StdPackQty; + packRec.ToUom = inputDetail.Uom; + packRec.ToQty = inputDetail.Qty; + packRec.ItemCode = inputDetail.ItemCode; + packRec.ItemName = inputDetail.ItemName; + packRec.ItemDesc1 = inputDetail.ItemDesc1; + packRec.ItemDesc2 = inputDetail.ItemDesc2; + packRec.FromLot = inputDetail.FromLot; + packRec.ToLot = inputDetail.ToLot; + //packRec.PurchaseInfo_PoNumber = inputDetail.; // 采购订单 + //packRec.PurchaseInfo_AsnNumber = inputDetail.; //供应商发货单 + //packRec.ArrivalNoticNumber = inputDetail.; //到货通知 + //packRec.TaskOrderNumber = inputDetail.; //任务单 + //packRec.ReceiptRecNumber = inputDetail.; //收货记录单 + //packRec.PutOnShelfNumber = inputDetail.; //上架单 + recLst.Add(packRec); + } + var ret = await _splitPackingRecAppService.BatchInsertAsync(recLst).ConfigureAwait(false); + return ret; + } + + /// + /// 采购收货拆箱,同时更新、插入PurchaseReceipt任务表、申请表 + /// + /// + /// + /// + [HttpPost("split-packing-purchase-receipt")] + public async Task SplitPacking_PurchaseReceiptAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) + { + var jobRet = await _purchaseReceiptJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput).ConfigureAwait(false); + var requestRet = await _purchaseReceiptRequestAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput, jobRet.PurchaseReceiptRequestNumber).ConfigureAwait(false); + bool ret = await WriteSplitPackingRec(transferNoteEditInput).ConfigureAwait(false); //采购收货-目检-拆箱时,还没有入库,不涉及库存操作 + return ret; + } + + /// + /// 质检拆箱,同时更新、插入Inspect任务表(不更新申请表) + /// + /// + /// + /// + [HttpPost("split-packing-inspect")] + public async Task SplitPacking_InspectAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) + { + var jobRet = await _inspectJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput).ConfigureAwait(false); + var ret = await SplitPackingAsync(transferNoteEditInput).ConfigureAwait(false); //库存操作 + return ret; + } + + /// + /// 发料拆箱,同时更新、插入Inspect任务表(没有找到申请表//??) + /// + /// + /// + /// + [HttpPost("split-packing-issue")] + public async Task SplitPacking_IssueAsync(TransferNoteEditInput transferNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput) + { + var jobRet = await _issueJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput).ConfigureAwait(false); + var ret = await SplitPackingAsync(transferNoteEditInput).ConfigureAwait(false); //库存操作 + return ret; + } + + + + + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs index 59210677d..2c0039268 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs @@ -4,9 +4,11 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Volo.Abp; using Volo.Abp.ObjectMapping; using Volo.Abp.Uow; using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Label.Application.Contracts; using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Wms.Store.Application.Contracts; @@ -142,4 +144,48 @@ public class PurchaseReceiptRequestAppService : { throw new NotImplementedException(); } + + /// + /// 根据number取列表 + /// + /// + /// + [HttpGet("get-list-by-number")] + public async Task> GetListByNumberAsync(string number) + { + var entity = await _repository.GetListAsync(itm => itm.Number == number).ConfigureAwait(false); + var dto = ObjectMapper.Map, List>(entity); + return dto; + } + + /// + /// 保存拆箱时涉及的明细修改 + /// + /// + /// + /// + [HttpGet("save-detail-split-packing")] + public virtual async Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input, string packingCode) + { + var request = await _repository.FindAsync(p => p.Number == packingCode).ConfigureAwait(false); + PurchaseReceiptRequestDetail detail = request.Details.FirstOrDefault(p => p.PackingCode == input.FromPackingCode && p.Qty == input.FromQty); + if (detail == null) + { + throw new UserFriendlyException($"根据PackingCode={input.FromPackingCode}取ReceiptRequestDetail表为空!"); + } + //插入目标箱 + var newDetail = CommonHelper.CloneObj(detail); + newDetail.SetId(GuidGenerator.Create()); + newDetail.PackingCode = input.ToPackingCode; + newDetail.Qty = input.ToQty; + //newDetail.CreationTime = CommonHelper.CurTime; + request.Details.Add(newDetail); + //修改源箱 + detail.Qty = input.FromQty - input.ToQty; + var entity = await _repository.UpdateAsync(request).ConfigureAwait(false); + var ret = ObjectMapper.Map(entity); + return ret; + } + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJob.cs index 8e4165387..4f5a09fad 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJob.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJob.cs @@ -144,4 +144,5 @@ public class InspectJob : SfsJobAggregateRootBase { Number = number; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobDetail.cs index 07b445d27..85d50803d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobDetail.cs @@ -1,3 +1,4 @@ +using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Win_in.Sfs.Shared.Domain; @@ -115,4 +116,10 @@ public class InspectJobDetail : SfsJobDetailEntityBase /// [Display(Name = "其他属性Json")] public string OtherPropertyJson { get; set; } + + public virtual void SetId(Guid id) + { + this.Id = id; + } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/IssueJobDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/IssueJobDetail.cs index 3e426bfa8..160e7d6f3 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/IssueJobDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/IssueJobDetail.cs @@ -101,4 +101,8 @@ public class IssueJobDetail : SfsJobRecommendFromDetailEntityBase, IHasToLocatio /// public EnumRecommendType RecommendType { get; set; } + public void SetId(Guid id) + { + this.Id = id; + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobManager.cs index 5976b0943..914b42d92 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobManager.cs @@ -1,5 +1,9 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + namespace Win_in.Sfs.Wms.Store.Domain; public interface IPurchaseReceiptJobManager : IJobManager { + Task> GetListByNumberAsync(string number); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobDetail.cs index 7ffb4d379..fb1d28694 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobDetail.cs @@ -59,4 +59,11 @@ public class PurchaseReceiptJobDetail : SfsJobRecommendToDetailEntityBase, IHasP [Display(Name = "供应商包装")] public decimal SupplierPackQty { get; set; } + public void SetId(Guid id) + { + this.Id = id; + } + + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobManager.cs index 11d85fc8d..f87404a63 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/PurchaseReceiptJobs/PurchaseReceiptJobManager.cs @@ -110,4 +110,16 @@ public class PurchaseReceiptJobManager : SfsJobManagerBase c.Details.Any(p => p.RecommendPackingCode == packingCode) && c.JobStatus != EnumJobStatus.Closed && c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false); } + + /// + /// 根据number取列表 + /// + /// + /// + public async Task> GetListByNumberAsync(string number) + { + var result = await Repository.GetListAsync(c => c.Number == number).ConfigureAwait(false); + return result; + } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestDetail.cs index 0bc5acf14..a15477c2a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestDetail.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestDetail.cs @@ -1,3 +1,4 @@ +using System; using System.ComponentModel.DataAnnotations; using Win_in.Sfs.Shared.Domain; @@ -35,4 +36,10 @@ public class PurchaseReceiptRequestDetail : SfsStoreDetailWithLotPackingQtyEntit /// [Display(Name = "推荐ERP储位")] public string RecommendErpCode { get; set; } + + + public void SetId(Guid id) + { + this.Id = Id; + } }