From 6a12303ee262393cea7e24366bbeb1f9dbf5c74c Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Tue, 7 May 2024 16:53:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20Kitting=E5=8F=AB=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseDatas/ItemContainerController.cs | 33 +++++++ .../IssueJobs/KittingIssueJobsController.cs | 5 +- .../IssueRequest/KittingRequestController.cs | 92 ++++++++++++++++++- .../IItemContainerAppService.cs | 1 + .../ItemContainers/ItemContainerAppService.cs | 9 +- .../DTOs/KittingIssueJobDTO.cs | 1 + 6 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/ItemContainerController.cs diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/ItemContainerController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/ItemContainerController.cs new file mode 100644 index 000000000..ac9c15b66 --- /dev/null +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/ItemContainerController.cs @@ -0,0 +1,33 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; +using Win_in.Sfs.Basedata.Application.Contracts; + +namespace Win_in.Sfs.Wms.Pda.Controllers.BaseDatas; + +/// +/// +[ApiController] +[Route($"{PdaHostConst.ROOT_ROUTE}item-container")] +public class ItemContainerController : AbpController +{ + private readonly IItemContainerAppService _itemContainerAppService; + + public ItemContainerController(IItemContainerAppService itemContainerAppService) + { + _itemContainerAppService = itemContainerAppService; + } + + /// + /// 根据名称获取物品 + /// + /// + /// + [HttpGet("by-item")] + public virtual async Task GetListByItemNameAsync(string itemCode) + { + var dto = await _itemContainerAppService.GetByItemCodeAsync(itemCode).ConfigureAwait(false); + + return dto; + } +} diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/KittingIssueJobsController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/KittingIssueJobsController.cs index 3fbf6cd31..85558bfe0 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/KittingIssueJobsController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/KittingIssueJobsController.cs @@ -23,9 +23,10 @@ public class KittingIssueJobsController : AbpController private readonly IUserWorkGroupAppService _userWorkGroupAppService; - public KittingIssueJobsController(IKittingIssueJobAppService kittingIssueJobAppService) + public KittingIssueJobsController(IKittingIssueJobAppService kittingIssueJobAppService, IUserWorkGroupAppService userWorkGroupAppService) { _kittingIssueJobAppService = kittingIssueJobAppService; + _userWorkGroupAppService = userWorkGroupAppService; } /// @@ -134,7 +135,7 @@ public class KittingIssueJobsController : AbpController } /// - /// 获取盘点任务详情 + /// 获取任务详情 /// /// /// diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueRequest/KittingRequestController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueRequest/KittingRequestController.cs index 5dd161872..c24e85e69 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueRequest/KittingRequestController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueRequest/KittingRequestController.cs @@ -1,6 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Volo.Abp; +using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; +using Win_in.Sfs.Auth.Application.Contracts; +using Win_in.Sfs.Shared.Domain; +using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Pda.Controllers.Stores; @@ -14,12 +22,16 @@ public class KittingRequestController : AbpController { private readonly IKittingIssueRequestAppService _kittingIssueRequestAppService; + private readonly IUserWorkGroupAppService _userWorkGroupAppService; + /// /// /// - public KittingRequestController(IKittingIssueRequestAppService kittingIssueRequestAppService) + public KittingRequestController(IKittingIssueRequestAppService kittingIssueRequestAppService, + IUserWorkGroupAppService userWorkGroupAppService) { _kittingIssueRequestAppService = kittingIssueRequestAppService; + _userWorkGroupAppService = userWorkGroupAppService; } /// @@ -32,4 +44,82 @@ public class KittingRequestController : AbpController { await _kittingIssueRequestAppService.CreateAndHandleAsync(input).ConfigureAwait(false); } + + /// + /// + /// + /// + /// + /// + [HttpPost("list")] + public virtual async Task> GetListAsync(int pageSize, int pageIndex, + bool isFinished) + { + var status = new List(); + if (isFinished) + { + status.Add((int)EnumRequestStatus.Completed); + } + else + { + status.Add((int)EnumRequestStatus.Partial); + status.Add((int)EnumRequestStatus.Handling); + status.Add((int)EnumRequestStatus.New); + } + + var jsonStatus = JsonSerializer.Serialize(status); + + var request = new SfsStoreRequestInputBase + { + MaxResultCount = pageSize, + SkipCount = (pageIndex - 1) * pageSize, + Sorting = $"{nameof(ContainerJobDTO.CreationTime)} ASC", + Condition = new Condition + { + Filters = new List { new(nameof(ContainerJobDTO.JobStatus), jsonStatus, "In") } + } + }; + + var list = await _kittingIssueRequestAppService.GetPagedListByFilterAsync(request, true).ConfigureAwait(false); + + return list; + } + + /// + /// + /// + [HttpPost("handle/{id}")] + public virtual async Task HandleAsync(Guid id) + { + await _kittingIssueRequestAppService.HandleAsync(id).ConfigureAwait(false); + } + + /// + /// 根据Job Number 获取盘点任务列表 + /// + /// + /// + [HttpGet("by-number/{requestNumber}")] + public virtual async Task> GetByNumberAsync(string requestNumber) + { + var jobDto = await _kittingIssueRequestAppService.GetByNumberAsync(requestNumber).ConfigureAwait(false); + if (jobDto == null) + { + throw new UserFriendlyException($"未找到编号为 {requestNumber} 的请求"); + } + + return jobDto; + } + + /// + /// 获取任务详情 + /// + /// + /// + [HttpGet("{id}")] + public virtual async Task> GetAsync(Guid id) + { + var result = await _kittingIssueRequestAppService.GetAsync(id).ConfigureAwait(false); + return Ok(result); + } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/IItemContainerAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/IItemContainerAppService.cs index 783e1ab02..4acdf4457 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/IItemContainerAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/IItemContainerAppService.cs @@ -8,4 +8,5 @@ public interface IItemContainerAppService : ISfsBaseDataAppServiceBase> GetListByItemCodeAsync(string itemCode); Task UpsertAndItemBasicUomAsync(string itemCode,decimal stdPackQty); + Task GetByItemCodeAsync(string itemCode); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs index 4c21b2851..0c77e19ed 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp; using Volo.Abp.Caching; using Volo.Abp.Domain.Repositories; +using Volo.Abp.ObjectMapping; using Volo.Abp.Uow; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Domain; @@ -81,7 +82,6 @@ public class ItemContainerAppService return dtos; } - protected override async Task ValidateImportModelAsync(ItemContainerImportInput importInput, List validationRresult) { await base.CheckItemBasicPackUomAsync(importInput.ItemCode, importInput.BasicUom, validationRresult).ConfigureAwait(false); @@ -97,4 +97,11 @@ public class ItemContainerAppService await _repository.UpsertAsync(entity).ConfigureAwait(false); await ItemBasicAppService.UpsertStdPackQtyAsync(itemCode, stdPackQty).ConfigureAwait(false); } + + [HttpPut("get-by-item")] + public async Task GetByItemCodeAsync(string itemCode) + { + var entity = await _repository.FindAsync(p => p.ItemCode == itemCode).ConfigureAwait(false); + return ObjectMapper.Map(entity); + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/KittingIssueJobs/DTOs/KittingIssueJobDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/KittingIssueJobs/DTOs/KittingIssueJobDTO.cs index 17ed6fcb3..2141ce1d8 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/KittingIssueJobs/DTOs/KittingIssueJobDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/KittingIssueJobs/DTOs/KittingIssueJobDTO.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using Microsoft.EntityFrameworkCore; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;