From e7859909b364cac1409aee1e3f62e4c3b8c82052 Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Tue, 28 May 2024 11:38:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E5=8F=98=E6=9B=B4=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9Kitting=E7=BB=84=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Kittings/DTOs/KittingDetailDTO.cs | 3 ++ .../Kittings/Inputs/KittingDetailInput.cs | 3 +- .../Kittings/Inputs/KittingImportInput.cs | 5 +- .../Kittings/KittingDetail.cs | 3 ++ .../Chassis/DTOs/ChassisDTO.cs | 6 +++ .../Chassis/Inputs/ChassisEditInput.cs | 6 +++ .../Chassis/Inputs/ChassisImportInput.cs | 6 +++ .../DTOs/ChassisOperationSequenceSearchDTO.cs | 10 +++- .../IChassisOperationSequenceAppService.cs | 3 ++ .../ChassisOperationSequenceAppService.cs | 52 ++++++++++++++++++- .../KittingPackagingNoteAppService.cs | 4 +- .../Chassis/Chassis.cs | 6 +++ 12 files changed, 99 insertions(+), 8 deletions(-) diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDetailDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDetailDTO.cs index ead0d67b6..694434bdb 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDetailDTO.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDetailDTO.cs @@ -52,6 +52,9 @@ public class KittingDetailDTO: AuditedEntityDto, IMultiTenant, IRemark [Display(Name = "配置")] public string Conf { set; get; } + [Display(Name = "配置")] + public string Configuration { get; set; } + public Guid? TenantId { set; get; } public string Remark { get; set; } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingDetailInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingDetailInput.cs index 6ee7c36bf..1e036718a 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingDetailInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingDetailInput.cs @@ -32,7 +32,8 @@ public class KittingDetailInput: EntityDto, IMultiTenant, IRemark [Display(Name = "描述2")] public string ItemDesc2 { set; get; } - + [Display(Name = "配置")] + public string Configuration { get; set; } /// /// 物品名称 diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs index 4cc7888cb..decc1584c 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs @@ -42,12 +42,13 @@ public class KittingImportInput : SfsBaseDataImportInputBase [Display(Name = "物品名称")] public string ItemName { get; set; } + [Display(Name = "配置")] + public string Configuration { get; set; } + - - /// /// 数量 diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs index 503d1d025..853ba5629 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs @@ -34,6 +34,9 @@ public class KittingDetail : AuditedEntity, IMultiTenant, IRemark [Display(Name = "物品名称")] public string ItemName { get; set; } + [Display(Name = "配置")] + public string Configuration { get; set; } + /// /// 包装数量 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/DTOs/ChassisDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/DTOs/ChassisDTO.cs index 04352fd9b..c670e0b79 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/DTOs/ChassisDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/DTOs/ChassisDTO.cs @@ -53,4 +53,10 @@ public class ChassisDTO : SfsBasicDTOBase public string ItemDesc1 { get; set; } public string ItemDesc2 { get; set; } + + /// + /// 配置号 + /// + [Display(Name = "配置号")] + public string Configuration { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisEditInput.cs index f4510380e..96dc1b2a5 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisEditInput.cs @@ -53,4 +53,10 @@ public class ChassisEditInput public string ItemDesc1 { get; set; } public string ItemDesc2 { get; set; } + + /// + /// 配置号 + /// + [Display(Name = "配置号")] + public string Configuration { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisImportInput.cs index cfa5d46e1..9fb2ec144 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisImportInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisImportInput.cs @@ -56,4 +56,10 @@ public class ChassisImportInput : SfsStoreImportInputBase public string ItemDesc1 { get; set; } public string ItemDesc2 { get; set; } + + /// + /// 配置号 + /// + [Display(Name = "配置号")] + public string Configuration { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceSearchDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceSearchDTO.cs index 772db2964..bdb5f04fd 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceSearchDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceSearchDTO.cs @@ -1,13 +1,19 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; +using Win_in.Sfs.Basedata.Domain; namespace Win_in.Sfs.Wms.Store.Application.Contracts; public class ChassisOperationSequenceSearchDTO { - public List ChassisOperationItemCode { get; set; }=new List(); + public List ChassisNumberList { get; set; } - public List KittingItemCode { get; set; } = new List(); + /// + /// Kitting组包Bom的物品号 + /// + [Display(Name = "Kitting组包Bom的物品号")] + public string ItemCode { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs index dbc631dc4..5ea6dad94 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; @@ -27,4 +28,6 @@ public interface IChassisOperationSequenceAppService /// Task> GetListWithNextCountAsync(int count, string kittingCode, CancellationToken cancellationToken = default); + + Task> GetBomWithKittingBomAsync(Dictionary dictChassisItemCode,string kittingCode); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs index e1708ab9a..7d340a04e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs @@ -1,10 +1,12 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Application.Dtos; +using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts; @@ -25,9 +27,11 @@ public class ChassisOperationSequenceAppService private new readonly IChassisOperationSequenceRepository _repository; private readonly IChassisOperationSequenceManager _manager; private readonly IChassisAppService _chassisAppService; + private readonly IKittingAppService _kittingAppService; + private readonly IBomAppService _bomAppService; public ChassisOperationSequenceAppService( - IChassisOperationSequenceRepository repository, IChassisOperationSequenceManager manager, IChassisAppService chassisAppService) : base(repository) + IChassisOperationSequenceRepository repository, IChassisOperationSequenceManager manager, IChassisAppService chassisAppService, IKittingAppService kittingAppService, IBomAppService bomAppService) : base(repository) { base.CreatePolicyName = ChassisOperationSequencePermissions.Create; base.UpdatePolicyName = ChassisOperationSequencePermissions.Update; @@ -36,6 +40,8 @@ public class ChassisOperationSequenceAppService _repository = repository; _manager = manager; _chassisAppService = chassisAppService; + _kittingAppService = kittingAppService; + _bomAppService = bomAppService; } /// @@ -99,9 +105,51 @@ public class ChassisOperationSequenceAppService return await _chassisAppService.GetPagedListByFilterAsync(requestInput,false, cancellationToken).ConfigureAwait(false); } - public async Task<> GetBomWithKittingBom() + [HttpPost("get-list-with-kitting-bom-chassis-bom")] + public async Task> GetBomWithKittingBomAsync(Dictionary dictChassisItemCode,string kittingCode) { + //dictChassisItemCode key是底盘号 value是总成 + //获取KittingCode用的ItemCode + var kittingDto =await _kittingAppService.GetByCodeAsync(kittingCode).ConfigureAwait(false); + var kittingItemCodeList = new List(); + foreach (var detail in kittingDto.Details) + { + kittingItemCodeList.Add(detail.ItemCode); + } + + //用来存储所有底盘的BOM 只查询一次 + var chassisBomItemCodeList= new Dictionary>(); + foreach (var dict in dictChassisItemCode) + { + var bomDtos = await _bomAppService.GetBomTreeByCodeAsync(dict.Value).ConfigureAwait(false); + var chassisItemCodeBomList = new List(); + foreach (var dto in bomDtos) + { + chassisItemCodeBomList.Add(dto.Component); + } + + chassisBomItemCodeList.Add(dict.Key, chassisItemCodeBomList); + } + + //要求显示根据总成做主条件 + var listChassisOperationSequenceSearchList=new List(); + foreach (var itemCode in kittingItemCodeList) + { + var listChassisOperationSequenceSearchDto =new ChassisOperationSequenceSearchDTO(); + + listChassisOperationSequenceSearchDto.ItemCode = itemCode; + + foreach (var dict in chassisBomItemCodeList) + { + if (dict.Value.Contains(itemCode)) + { + listChassisOperationSequenceSearchDto.ChassisNumberList.Add(dict.Key); + } + } + } + + return listChassisOperationSequenceSearchList; } #region 无用 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs index e4a232f71..f8fb2d4d4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs @@ -81,7 +81,9 @@ public class KittingPackagingNoteAppService var hasItemCode= kittingItemCodeList.Intersect(chassisItemCode).ToList(); if (hasItemCode == null || hasItemCode.Count < 1) { - throw new UserFriendlyException($"请检查Bom和Kitting代码【{input.KittingCode}】中的Kitting物品关系是否一致"); + //应该不需要返回,因为底盘中可能存在不需要打包的 + return null; + //throw new UserFriendlyException($"请检查Bom和Kitting代码【{input.KittingCode}】中的Kitting物品关系是否一致"); } foreach (var itemCode in hasItemCode) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Chassis/Chassis.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Chassis/Chassis.cs index 0bd12d807..54009a1db 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Chassis/Chassis.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Chassis/Chassis.cs @@ -54,4 +54,10 @@ public class Chassis : SfsAggregateRootBase public string ItemDesc1 { get; set; } public string ItemDesc2 { get; set; } + + /// + /// 配置号 + /// + [Display(Name = "配置号")] + public string Configuration { get; set; } }