Browse Source

修改 叫料按箱 判断

dev_DY_CC
郑勃旭 12 months ago
parent
commit
0439bad4a7
  1. 16
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/InspectJobs/DTOs/InspectJobDetailManyDTO.cs
  2. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/InspectJobs/IInspectJobAppService.cs
  3. 42
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs
  4. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobManager.cs
  5. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/AssembleIssueRequestEventHandler.cs
  6. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/CoatingIssueRequestEventHandler.cs
  7. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/InjectionIssueRequestEventHandler.cs
  8. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/KittingIssueRequestEventHandler.cs

16
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/InspectJobs/DTOs/InspectJobDetailManyDTO.cs

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Domain.Shared.Enums.Inspect;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class InspectJobDetailManyDTO : InspectJobDetailDTO
, IHasPoLine
, IHasInspectUser
, IHasReceiveQty
{
public string GuidList { get; set; }
}

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/InspectJobs/IInspectJobAppService.cs

@ -55,8 +55,7 @@ public interface IInspectJobAppService
/// 批量设置质检状态
/// </summary>
/// <param name="id"></param>
/// <param name="detailIdList"></param>
/// <param name="detailDto"></param>
/// <param name="detailManyDto"></param>
/// <returns></returns>
Task<InspectJobDTO> SetManyDetailStatusAsync(Guid id, List<Guid> detailIdList, InspectJobDetailDTO detailDto);
Task<InspectJobDTO> SetManyDetailStatusAsync(Guid id, InspectJobDetailManyDTO detailManyDto);
}

42
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs

@ -6,11 +6,8 @@ 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.Shared.Domain.Shared.Enums.Inspect;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
@ -66,7 +63,8 @@ public class InspectJobAppService
var summaryDetail = ObjectMapper.Map<InspectJobCompleteSummaryDetailInput, InspectJobSummaryDetail>(input);
var entity = await _inspectJobManager.CompleteSummaryDetailStatusAsync(id, summaryDetailId, summaryDetail, CurrentUser).ConfigureAwait(false);
var entity = await _inspectJobManager
.CompleteSummaryDetailStatusAsync(id, summaryDetailId, summaryDetail, CurrentUser).ConfigureAwait(false);
return ObjectMapper.Map<InspectJobSummaryDetail, InspectJobSummaryDetailDTO>(entity);
}
@ -102,7 +100,8 @@ public class InspectJobAppService
/// <param name="detailDto"></param>
/// <returns></returns>
[HttpPost("set-detail-nook-status/{id}")]
public virtual async Task<InspectJobSummaryDetailDTO> SetDetailNoOkStatusAsync(Guid id, InspectJobDetailDTO detailDto)
public virtual async Task<InspectJobSummaryDetailDTO> SetDetailNoOkStatusAsync(Guid id,
InspectJobDetailDTO detailDto)
{
var entity = ObjectMapper.Map<InspectJobDetailDTO, InspectJobDetail>(detailDto);
@ -142,18 +141,28 @@ public class InspectJobAppService
}
/// <summary>
/// 批量设置质检状态
/// 批量设置质检状态
/// </summary>
/// <param name="id"></param>
/// <param name="detailIdList"></param>
/// <param name="detailDto"></param>
/// <param name="detailManyDto"></param>
/// <returns></returns>
[HttpPost("Set-Many-Detail-Status")]
public virtual async Task<InspectJobDTO> SetManyDetailStatusAsync(Guid id, List<Guid> detailIdList, InspectJobDetailDTO detailDto)
public virtual async Task<InspectJobDTO> SetManyDetailStatusAsync(Guid id, InspectJobDetailManyDTO detailManyDto)
{
var guidstr = detailManyDto.GuidList;
var guidstrList = guidstr.Split(',');
var guidList = new List<Guid>();
foreach (var guidStr in guidstrList)
{
guidList.Add(Guid.Parse(guidStr));
}
var detailDto = (InspectJobDetailDTO)detailManyDto;
var entityDetail = ObjectMapper.Map<InspectJobDetailDTO, InspectJobDetail>(detailDto);
var entity=await _inspectJobManager.SetManyDetailStatusAsync(id,detailIdList, entityDetail).ConfigureAwait(false);
var entity = await _inspectJobManager.SetManyDetailStatusAsync(id, guidList, entityDetail)
.ConfigureAwait(false);
return ObjectMapper.Map<InspectJob, InspectJobDTO>(entity);
}
@ -175,7 +184,9 @@ public class InspectJobAppService
[HttpPost("get-job/by-detail-packing")]
public virtual async Task<InspectJobDTO> GetInspectNoteDetailByPackingCodeAsync(string packingCode)
{
var entity = (await _repository.GetListAsync(p => p.Details.Any(y => y.PackingCode == packingCode), true).ConfigureAwait(false)).FirstOrDefault();
var entity =
(await _repository.GetListAsync(p => p.Details.Any(y => y.PackingCode == packingCode), true)
.ConfigureAwait(false)).FirstOrDefault();
var dto = ObjectMapper.Map<InspectJob, InspectJobDTO>(entity);
@ -183,18 +194,21 @@ public class InspectJobAppService
}
/// <summary>
/// 保存拆箱时涉及的明细修改
/// 保存拆箱时涉及的明细修改
/// </summary>
/// <returns></returns>
[HttpPost("save-detail-split-packing")]
public virtual async Task<InspectJobDTO> 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.ReceiveQty == input.FromQty*/
var job = await _repository.FindAsync(p => p.Number == input.Number).ConfigureAwait(false);
var detail =
job.Details.FirstOrDefault(p =>
p.PackingCode == input.FromPackingCode); /* && p.ReceiveQty == input.FromQty*/
if (detail == null)
{
throw new UserFriendlyException($"根据PackingCode={input.FromPackingCode}取InspectDetail表为空!");
}
//插入目标箱
var newDetail = CommonHelper.CloneObj(detail);
newDetail.SetId(GuidGenerator.Create());

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobManager.cs

@ -358,11 +358,10 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail>
{
var entity = await Repository.FindAsync(id).ConfigureAwait(false);
var detailList = entity.Details.Where(p => detailIdList.Contains(p.Id)).ToList();
detailList.ForEach(detail =>
foreach (var detailId in detailIdList)
{
switch (detail.DetailInspectStatus)
var detail = entity.Details.Find(p => p.Id == detailId);
switch (inspectJobDetail.DetailInspectStatus)
{
case EnumDetailInspectStatus.DefaultOK:
detail.DetailInspectStatus = EnumDetailInspectStatus.DefaultOK;
@ -403,7 +402,7 @@ public class InspectJobManager : SfsJobManagerBase<InspectJob, InspectJobDetail>
detail.CrackQty = 0;
break;
}
});
}
await SetSummaryAllQtyAsync(entity).ConfigureAwait(false);

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/AssembleIssueRequestEventHandler.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/AssembleIssueRequestEventHandler.cs

@ -339,6 +339,8 @@ public class AssembleIssueRequestEventHandler
{
var inputJobs = new List<AssembleIssueJobEditInput>();
var jobs = await _assembleIssueJobAppService.GetByRequestNumberAsync(assembleIssueRequest.Number).ConfigureAwait(false);
//已用的库存的集合
useBalanceList = useBalanceList;
@ -347,7 +349,7 @@ public class AssembleIssueRequestEventHandler
//当前零件的集合
var inputDetails = assembleIssueRequestDetailList;
//获取请求下 这个零件和这个库位一个需要多少箱
var sumBoxQty = inputDetails.Sum(p => p.BoxQty - p.IssuedQty);
var sumBoxQty = inputDetails.Sum(p => p.BoxQty -jobs.Count);
//获取生产线
var productionLineDto = await _productionLineAppService
.GetByLocationCodeAsync(inputDetails.First().ToLocationCode).ConfigureAwait(false);

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CoatingIssueRequestEventHandler.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/CoatingIssueRequestEventHandler.cs

@ -338,6 +338,8 @@ public class CoatingIssueRequestEventHandler
{
var inputJobs = new List<CoatingIssueJobEditInput>();
var jobs = await _coatingIssueJobAppService.GetByRequestNumberAsync(coatingIssueRequest.Number).ConfigureAwait(false);
//已用的库存的集合
useBalanceList = useBalanceList;
@ -346,7 +348,7 @@ public class CoatingIssueRequestEventHandler
//当前零件的集合
var inputDetails = coatingIssueRequestDetailList;
//获取请求下 这个零件和这个库位一个需要多少箱
var sumBoxQty = inputDetails.Sum(p => p.BoxQty - p.IssuedQty);
var sumBoxQty = inputDetails.Sum(p => p.BoxQty - jobs.Count);
//获取生产线
var productionLineDto = await _productionLineAppService
.GetByLocationCodeAsync(inputDetails.First().ToLocationCode).ConfigureAwait(false);

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/InjectionIssueRequestEventHandler.cs

@ -338,6 +338,8 @@ public class InjectionIssueRequestEventHandler
{
var inputJobs = new List<InjectionIssueJobEditInput>();
var jobs=await _injectionIssueJobAppService.GetByRequestNumberAsync(injectionIssueRequest.Number).ConfigureAwait(false);
//已用的库存的集合
useBalanceList = useBalanceList;
@ -345,8 +347,8 @@ public class InjectionIssueRequestEventHandler
{
//当前零件的集合
var inputDetails = injectionIssueRequestDetailList;
//获取请求下 这个零件和这个库位一需要多少箱
var sumBoxQty = inputDetails.Sum(p => p.BoxQty - p.IssuedQty);
//获取请求下 这个零件和这个库位一需要多少箱
var sumBoxQty = inputDetails.Sum(p => p.BoxQty - jobs.Count);
//获取生产线
var productionLineDto = await _productionLineAppService
.GetByLocationCodeAsync(inputDetails.First().ToLocationCode).ConfigureAwait(false);

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/KittingIssueRequestEventHandler.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/KittingIssueRequestEventHandler.cs

@ -15,6 +15,7 @@ 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 static Win_in.Sfs.Wms.Store.Domain.Shared.StoreSettings;
namespace Win_in.Sfs.Wms.Store.Event.BusinessRequest;
@ -338,6 +339,8 @@ public class KittingIssueRequestEventHandler
{
var inputJobs = new List<KittingIssueJobEditInput>();
var jobs = await _kittingIssueJobAppService.GetByRequestNumberAsync(kittingIssueRequest.Number).ConfigureAwait(false);
//已用的库存的集合
useBalanceList = useBalanceList;
@ -346,7 +349,7 @@ public class KittingIssueRequestEventHandler
//当前零件的集合
var inputDetails = kittingIssueRequestDetailList;
//获取请求下 这个零件和这个库位一个需要多少箱
var sumBoxQty = inputDetails.Sum(p => p.BoxQty - p.IssuedQty);
var sumBoxQty = inputDetails.Sum(p => p.BoxQty - jobs.Count);
//获取生产线
var productionLineDto = await _productionLineAppService
.GetByLocationCodeAsync(inputDetails.First().ToLocationCode).ConfigureAwait(false);
Loading…
Cancel
Save