Browse Source

立体库修改操作人,退货BUG

dev_DY_CC
赵新宇 6 months ago
parent
commit
28121cec23
  1. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs
  2. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReturnJobs/IPurchaseReturnJobAppService.cs
  3. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/IPurchaseReturnRequestAppService.cs
  4. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs
  5. 10
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs
  6. 88
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReturnJobs/PurchaseReturnJobAppService.cs
  7. 34
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs
  8. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs
  9. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs

@ -25,6 +25,10 @@ public class ZuPanEditInput : EntityDto
[Display(Name = "由1.2接口中获取富维东阳MES提供的来源位置")]
public string FromLocationCode { get; set; }
}
/*
{

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReturnJobs/IPurchaseReturnJobAppService.cs

@ -6,4 +6,5 @@ public interface IPurchaseReturnJobAppService
: ISfsJobAppServiceBase<PurchaseReturnJobDTO, SfsJobRequestInputBase, PurchaseReturnJobCheckInput, PurchaseReturnJobEditInput>
{
Task CancelByPurchaseReturnRequestAsync(string purchaseReturnRequestNumber);
Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber);
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/IPurchaseReturnRequestAppService.cs

@ -10,4 +10,6 @@ public interface IPurchaseReturnRequestAppService
{
Task<List<PurchaseReturnRequestDTO>> CreateManyAsync(List<PurchaseReturnRequestEditInput> inputs);
Task UpdateStatusByJobAsync(string requestNumber);
}

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs

@ -36,7 +36,7 @@ public class GaoTongAppService : ApplicationService, IGaoTongAppService
private readonly UnitOfWorkManager _unitOfWorkManager;
public GaoTongAppService(
IBalanceAppService balanceAppService
IBalanceAppService balanceAppService
, ITransferNoteAppService transferNoteAppService
, CurrentUser currentUser
, IItemBasicAppService itemBasicAppService
@ -72,7 +72,7 @@ public class GaoTongAppService : ApplicationService, IGaoTongAppService
TransferNoteEditInput transferNoteEditInput = new TransferNoteEditInput();
transferNoteEditInput.TenantId = null;
transferNoteEditInput.Remark = String.Empty;
transferNoteEditInput.Worker = _currentUser.UserName;
transferNoteEditInput.Worker = "LITIKU";
transferNoteEditInput.ActiveDate = CommonHelper.CurTime;
transferNoteEditInput.Type = EnumTransSubType.Transfer_Coating.ToString(); //喷涂完工转储
transferNoteEditInput.UseOnTheWayLocation = false;
@ -188,9 +188,10 @@ public class GaoTongAppService : ApplicationService, IGaoTongAppService
}
TransferNoteEditInput transferNoteEditInput = new TransferNoteEditInput();
transferNoteEditInput.TenantId = null;
transferNoteEditInput.Remark = String.Empty;
transferNoteEditInput.Worker = _currentUser.UserName;
transferNoteEditInput.Worker ="LITIKU";
transferNoteEditInput.ActiveDate = CommonHelper.CurTime;
//transferNoteEditInput.Type = EnumTransSubType.Depot_Out.ToString(); //喷涂完工转储
transferNoteEditInput.UseOnTheWayLocation = false;

10
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs

@ -578,6 +578,13 @@ public class AssembleIssueJobAppService
}
var dtos = ObjectMapper.Map<List<AssembleIssueJob>, List<AssembleIssueJobDTO>>(entities);
if (input.Jobs.Count != entities.Count)
{
errors.Add("立体库提交出库任务和WMS任务不符,请核对! \n");
@ -585,6 +592,7 @@ public class AssembleIssueJobAppService
foreach (var itm in dtos)
{
var first = jobs.FirstOrDefault(p => p.JobNumber == itm.Number);
var itmDetails = itm.Details.ToList();
var details = new List<AssembleIssueJobDetailDTO>();
@ -662,7 +670,7 @@ public class AssembleIssueJobAppService
Data = json
};
}
itm.Worker = "LITIKU";
itm.Details = details;
// await CompleteAsync(itm.Id, itm).ConfigureAwait(false);
_logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json + "立体库任务完成");

88
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReturnJobs/PurchaseReturnJobAppService.cs

@ -1,6 +1,11 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.ObjectMapping;
using Volo.Abp;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
@ -16,11 +21,16 @@ public class PurchaseReturnJobAppService
{
private readonly IPurchaseReturnJobManager _purchaseReturnJobManager;
private readonly IPurchaseReturnRequestAppService _purchaseReturnRequestAppService;
public PurchaseReturnJobAppService(
IPurchaseReturnRequestAppService purchaseReturnRequestAppService,
IPurchaseReturnJobRepository repository, IPurchaseReturnJobManager purchaseReturnJobManager)
: base(repository, purchaseReturnJobManager)
{
_purchaseReturnJobManager = purchaseReturnJobManager;
_purchaseReturnRequestAppService= purchaseReturnRequestAppService;
}
[HttpPost("cancel-by-request-number/{purchaseReturnRequestNumber}")]
@ -34,6 +44,84 @@ public class PurchaseReturnJobAppService
}
}
/// <summary>
/// 根据申请单号判断下面的任务是否都是完成或取消
/// </summary>
/// <returns></returns>
[HttpPost("is-all-job-over-by-request-number")]
public async Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber)
{
var jobs = await _repository.GetListAsync(p => p.PurchaseReturnRequestNumber == requestNumber)
.ConfigureAwait(false);
if (jobs.Any(p =>
p.JobStatus == EnumJobStatus.Open || p.JobStatus == EnumJobStatus.Partial ||
p.JobStatus == EnumJobStatus.Doing || p.JobStatus == EnumJobStatus.Wait))
{
return false;
}
return true;
}
private async Task UpdateRequestStatusAsync(string requestNumber)
{
await _purchaseReturnRequestAppService.UpdateStatusByJobAsync(requestNumber).ConfigureAwait(false);
}
[HttpPost("handle/{id}")]
public override async Task<PurchaseReturnJobDTO> CompleteAsync(Guid id, PurchaseReturnJobDTO dto)
{
var job = await _repository.GetAsync(id).ConfigureAwait(false);
var handleDto = new PurchaseReturnJobDTO();
var handleEntity = ObjectMapper.Map<PurchaseReturnJobDTO, PurchaseReturnJob>(dto);
var handleResult =
await _purchaseReturnJobManager.CompleteAsync(handleEntity, CurrentUser).ConfigureAwait(false);
handleDto = ObjectMapper.Map<PurchaseReturnJob, PurchaseReturnJobDTO>(handleResult);
if (job.JobStatus is EnumJobStatus.Closed or EnumJobStatus.Cancelled or EnumJobStatus.None
or EnumJobStatus.Done) //需要考虑下 多次提交的问题 所以不判断 进行中
{
throw new UserFriendlyException($"任务状态错误:编号为【{job.Number}】的任务已经【{job.JobStatus.GetDisplayName()}】");
}
handleResult.CompleteUserName = dto.Worker;
handleResult.JobStatus = EnumJobStatus.Done;
job = await _repository.UpdateAsync(handleResult).ConfigureAwait(false);
await UpdateRequestStatusAsync(job.PurchaseReturnRequestNumber).ConfigureAwait(false);
return handleDto;
//var job = await _repository.GetAsync(id).ConfigureAwait(false);
//if (job.JobStatus is EnumJobStatus.Closed or EnumJobStatus.Cancelled or EnumJobStatus.None or EnumJobStatus.Done)//需要考虑下 多次提交的问题 所以不判断 进行中
//{
// throw new UserFriendlyException($"任务状态错误:编号为【{job.Number}】的任务已经【{job.JobStatus.GetDisplayName()}】");
//}
//var handleEntity = ObjectMapper.Map<TEntityDto, TEntity>(dto);
//var handleResult = await _jobManager.CompleteAsync(handleEntity, CurrentUser).ConfigureAwait(false);
//var handleDto = ObjectMapper.Map<TEntity, TEntityDto>(handleResult);
//return handleDto;
}
/*
[HttpPost("accept")]
public override async Task AcceptAsync(string jobNumber)

34
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs

@ -40,6 +40,7 @@ public class PurchaseReturnRequestAppService :
private readonly IPurchaseReturnRequestManager _purchaseReturnRequestManager;
private readonly IPurchaseOrderAppService _purchaseOrderAppService;
private readonly IBalanceAppService _balanceAppService;
private readonly IPurchaseReturnJobAppService _purchaseReturnJobAppService;
public PurchaseReturnRequestAppService(
IPurchaseReturnRequestRepository repository,
IPurchaseReturnRequestManager purchaseReturnRequestManager,
@ -47,6 +48,10 @@ public class PurchaseReturnRequestAppService :
ILocationAppService locationAppService,
ITransactionTypeAppService transactionTypeAppService,
IPurchaseOrderAppService purchaseOrderAppService,
IPurchaseReturnJobAppService purchaseReturnJobAppService,
IBalanceAppService balanceAppService) : base(repository, purchaseReturnRequestManager)
{
_purchaseReturnRequestManager = purchaseReturnRequestManager;
@ -55,7 +60,7 @@ public class PurchaseReturnRequestAppService :
_transactionTypeAppService = transactionTypeAppService;
_purchaseOrderAppService = purchaseOrderAppService;
_balanceAppService = balanceAppService;
_purchaseReturnJobAppService = purchaseReturnJobAppService;
base.CreatePolicyName = PurchaseReturnRequestPermissions.Create;
base.UpdatePolicyName = PurchaseReturnRequestPermissions.Update;
base.DeletePolicyName = PurchaseReturnRequestPermissions.Delete;
@ -127,6 +132,11 @@ public class PurchaseReturnRequestAppService :
var locationDto= await _locationAppService.GetByCodeAsync(balanceDto.LocationCode).ConfigureAwait(false);
CheckLocation(locationDto, balanceDto);
var purchaseOrderDto = await _purchaseOrderAppService.GetByNumberAsync(labelDto.PoNumber).ConfigureAwait(false);
purchaseOrderDto = await _purchaseOrderAppService.GetAsync(purchaseOrderDto.Id).ConfigureAwait(false);
CheckPurchaseOrder(purchaseOrderDto, labelDto);
@ -279,8 +289,30 @@ public class PurchaseReturnRequestAppService :
{
throw new UserFriendlyException($"标签为【{detail.PackingCode}】不存在");
}
else
{
if (string.IsNullOrEmpty(labelDto.PoNumber))
{
throw new UserFriendlyException("标签无订单号!");
}
}
}
[HttpPost("update-status-by-job")]
public virtual async Task UpdateStatusByJobAsync(string requestNumber)
{
var flag = await _purchaseReturnJobAppService.IsAllJobOverByRequestNumberAsync(requestNumber).ConfigureAwait(false);
if (flag)
{
var request = await _repository.FindAsync(p => p.Number == requestNumber).ConfigureAwait(false);
request.RequestStatus = EnumRequestStatus.Completed;
await _repository.UpdateAsync(request).ConfigureAwait(false);
}
}
#endregion
#endregion

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs

@ -105,7 +105,7 @@ public class PurchaseReturnRequestEventHandler
job.JobType = EnumJobType.PurchaseReturnJob;
job.JobStatus = EnumJobStatus.Open;
job.IsAutoComplete = request.AutoCompleteJob;
job.WorkGroupCode = location.WorkGroupCode;
job.Details = new List<PurchaseReturnJobDetailInput>();

13
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs

@ -29,8 +29,10 @@ public class PurchaseReturnNoteEventHandler
private readonly IPurchaseOrderAppService _purchaseOrderAppService;
private readonly IInventoryLabelAppService _inventoryLabelAppService;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly IPurchaseReturnJobAppService _purchaseReturnJobApp;
public PurchaseReturnNoteEventHandler(
IPurchaseReturnJobAppService purchaseReturnJobApp,
IPurchaseReturnRequestAppService purchaseReturnRequestApp
, IPurchaseOrderAppService purchaseOrderAppService,
IInventoryLabelAppService inventoryLabelAppService,
@ -49,10 +51,13 @@ public class PurchaseReturnNoteEventHandler
await AddTransactionsAsync(entity).ConfigureAwait(false);
//更新采购退货请求状态
if (!string.IsNullOrEmpty(entity.PurchaseReturnRequestNumber))
{
await _purchaseReturnRequestApp.CompleteByNumberAsync(entity.PurchaseReturnRequestNumber).ConfigureAwait(false);
}
//if (!string.IsNullOrEmpty(entity.PurchaseReturnRequestNumber))
//{
// await _purchaseReturnRequestApp.CompleteByNumberAsync(entity.PurchaseReturnRequestNumber).ConfigureAwait(false);
//}
//更新订单已收货数量
await UpdatePurchaseOrderAsync(entity).ConfigureAwait(false);

Loading…
Cancel
Save