Browse Source

Merge branch 'dev_DY_CC' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_DY_CC

dev_DY_CC
郑勃旭 1 year ago
parent
commit
98cd16a94b
  1. 12
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/OutgoingFromWmsWorker.cs
  2. 204
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ThirdLocationJobController.cs
  3. 38
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/ThirdLocationNoteController.cs
  4. 51
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/ThirdLocationRequestController.cs
  5. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/ILocationAppService.cs
  6. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PurchasePrices/IPurchasePriceSheetAppService.cs
  7. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAppService.cs
  8. 8
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Locations/LocationAppService.cs
  9. 12
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PurchasePrices/PurchasePriceSheetAppService.cs
  10. 3
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain.Acl/ErpLocationItem/IErpLocationItemAclService.cs
  11. 1
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransType.cs
  12. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ExchangeDatas/IExchangeDataAppService.cs
  13. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ThirdLocationJobs/DTOs/ThirdLocationJobDetailDTO.cs
  14. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ThirdLocationJobs/Inputs/ThirdLocationJobDetailInput.cs
  15. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/CustomerProductionReturnNotes/Inputs/CustomerProductionReturnNoteEditInput.cs
  16. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDTO.cs
  17. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/Inputs/ThirdLocationRequestDetailInput.cs
  18. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/Inputs/ThirdLocationRequestImportInput.cs
  19. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreWithDetailsAppServiceBase.cs
  20. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ExchangeDatas/ExchangeDataAppService.cs
  21. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/CustomerProductionReturnNotes/CustomerProductionReturnNoteAppService.cs
  22. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PutawayNotes/PutawayNoteAppService.cs
  23. 28
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs
  24. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAppService.cs
  25. 36
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Acl/ErpLocationItem/ErpLocationItemAclService.cs
  26. 10
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Acl/ErpLocationItem/IErpLocationItemAclService.cs
  27. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Acl/Win_in.Sfs.Wms.Store.Domain.Acl.csproj
  28. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/ExchangeDatas/ExchangeDataManager.cs
  29. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobManagerBase.cs
  30. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/ThirdLocationJobs/ThirdLocationJobDetail.cs
  31. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/ThirdLocationNotes/ThirdLocationNoteDetail.cs
  32. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestDetail.cs
  33. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/ThirdLocationJobs/ThirdLocationJobDbContextModelCreatingExtensions.cs
  34. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/ThirdLocationRequests/ThirdLocationRequestDbContextModelCreatingExtensions.cs
  35. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/ThirdLocationRequestAutoMapperProfile.cs
  36. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Bases/StoreEventHandlerBase.cs
  37. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ThirdLocationRequestEventHandler.cs
  38. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/CustomerProductionReturnNoteEventHandler.cs
  39. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/MesNoteEventHandler.cs

12
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/OutgoingFromWmsWorker.cs

@ -47,7 +47,17 @@ public class OutgoingFromWmsWorker : AsyncPeriodicBackgroundWorkerBase
//var exchangeDataList = await exchangeDataAppService.GetAllListByFilterAsync(input).ConfigureAwait(false);
var exchangeDataList = await exchangeDataAppService.GetToBeProcessedListAsync(batchSize).ConfigureAwait(false);
var outgoingFromWmsList = objectMapper.Map<List<ExchangeDataDTO>, List<OutgoingFromWms>>(exchangeDataList);
await outgoingFromWmsManager.CreateManyAsync(outgoingFromWmsList).ConfigureAwait(false);
try
{
await outgoingFromWmsManager.CreateManyAsync(outgoingFromWmsList).ConfigureAwait(false);
await exchangeDataAppService.UpdateManyAsync(exchangeDataList).ConfigureAwait(false);
}
catch (System.Exception ex)
{
throw ex;
}
}
}

204
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ThirdLocationJobController.cs

@ -0,0 +1,204 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Polly.Caching;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
using Win_in.Sfs.Auth.Application.Contracts;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.Jobs;
/// <summary>
///
/// </summary>
[ApiController]
[Route($"{PdaHostConst.ROOT_ROUTE}job/third-location")]
public class ThirdLocationJobController : AbpController
{
private readonly IThirdLocationJobAppService _thirdLocationJobAppService;
private readonly IUserWorkGroupAppService _userWorkGroupAppService;
private readonly IDictAppService _dictApp;
/// <summary>
///
/// </summary>
/// <param name="thirdLocationJobAppService"></param>
/// <param name="userWorkGroupAppService"></param>
public ThirdLocationJobController(
IThirdLocationJobAppService thirdLocationJobAppService,
IDictAppService dictApp
, IUserWorkGroupAppService userWorkGroupAppService)
{
_userWorkGroupAppService = userWorkGroupAppService;
_thirdLocationJobAppService = thirdLocationJobAppService;
_dictApp = dictApp;
}
/// <summary>
/// 获取任务详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("{id}")]
public virtual async Task<ActionResult<ThirdLocationJobDTO>> GetAsync(Guid id)
{
var result = await _thirdLocationJobAppService.GetAsync(id).ConfigureAwait(false);
return Ok(result);
}
/// <summary>
/// 获取列表 筛选
/// </summary>
/// <param name="sfsRequestDTO"></param>
/// <returns></returns>
[HttpPost("list")]
public virtual async Task<PagedResultDto<ThirdLocationJobDTO>> GetListAsync(SfsJobRequestInputBase sfsRequestDTO)
{
var list = await _thirdLocationJobAppService.GetPagedListByFilterAsync(sfsRequestDTO, true).ConfigureAwait(false);
return list;
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <returns></returns>
[HttpGet("list")]
public virtual async Task<PagedResultDto<ThirdLocationJobDTO>> GetListAsync(int pageSize, int pageIndex, bool isFinished)
{
var dtos = await _dictApp.GetByCodeAsync("ContainerSpecificationsType").ConfigureAwait(false);
var status = new List<int>();
if (isFinished == true)
{
status.Add((int)EnumJobStatus.Done);
}
else
{
status.Add((int)EnumJobStatus.Open);
}
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
{
MaxResultCount = pageSize,
SkipCount = (pageIndex - 1) * pageSize,
Sorting = $"{nameof(ThirdLocationJobDTO.CreationTime)} ASC",
Condition = new Condition
{
Filters = new List<Filter>
{
new(nameof(ThirdLocationJobDTO.JobStatus),jsonStatus,"In")
}
}
};
var list = await _thirdLocationJobAppService.GetPagedListByFilterAsync(request, true).ConfigureAwait(false);
return list;
}
/// <summary>
/// 根据Job Number 获取任务列表
/// </summary>
/// <param name="jobNumber"></param>
/// <returns></returns>
[HttpGet("by-number/{jobNumber}")]
public virtual async Task<ActionResult<ThirdLocationJobDTO>> GetByNumberAsync(string jobNumber)
{
var jobDto = await _thirdLocationJobAppService.GetByNumberAsync(jobNumber).ConfigureAwait(false);
if (jobDto == null)
{
throw new UserFriendlyException($"未找到编号为 {jobNumber} 的任务");
}
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
if (!wlgCodes.Contains(jobDto.WorkGroupCode))
{
return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
}
if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.AcceptUserId != CurrentUser.Id)
{
return new NotFoundObjectResult($"任务正在被 {jobDto.AcceptUserName} 处理");
}
return jobDto;
}
/// <summary>
/// 获取任务数量
/// </summary>
/// <returns></returns>
[HttpGet("count")]
public virtual async Task<ActionResult<long>> CountAsync()
{
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
{
Sorting = $"{nameof(ThirdLocationJobDTO.Priority)} ASC",
Condition = new Condition
{
Filters = new List<Filter>
{
new(nameof(ThirdLocationJobDTO.WorkGroupCode),jsonCodes,"In"),
new(nameof(ThirdLocationJobDTO.JobStatus),jsonStatus,"In")
}
}
};
var count = await _thirdLocationJobAppService.GetCountByFilterAsync(request).ConfigureAwait(false);
return Ok(count);
}
/// <summary>
/// 承接任务
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("take/{id}")]
public virtual async Task TakeAsync(Guid id)
{
await _thirdLocationJobAppService.AcceptAsync(id).ConfigureAwait(false);
}
/// <summary>
/// 取消承接任务
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("cancel-take/{id}")]
public virtual async Task CancelTakeAsync(Guid id)
{
await _thirdLocationJobAppService.CancelAcceptAsync(id).ConfigureAwait(false);
}
/// <summary>
/// 执行任务
/// </summary>
/// <param name="id"></param>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost("finish/{id}")]
public virtual async Task FinishAsync(Guid id, [FromBody] ThirdLocationJobDTO dto)
{
await _thirdLocationJobAppService.CompleteAsync(id, dto).ConfigureAwait(false);
}
}

38
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/ThirdLocationNoteController.cs

@ -0,0 +1,38 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
/// <summary>
///
/// </summary>
[ApiController]
[Route($"{PdaHostConst.ROOT_ROUTE}store/third-location-note")]
public class ThirdLocationNoteController : AbpController
{
private readonly IThirdLocationNoteAppService _thirdLocationNoteAppService;
/// <summary>
///
/// </summary>
/// <param name="thirdLocationNoteAppService"></param>
public ThirdLocationNoteController(IThirdLocationNoteAppService thirdLocationNoteAppService)
{
_thirdLocationNoteAppService = thirdLocationNoteAppService;
}
/// <summary>
/// 创建器具转移记录
/// </summary>
/// <param name="input">CreateInput</param>
/// <returns></returns>
[HttpPost("")]
public virtual async Task CreateAsync(ThirdLocationNoteEditInput input)
{
await _thirdLocationNoteAppService.CreateAsync(input).ConfigureAwait(false);
}
}

51
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/ThirdLocationRequestController.cs

@ -0,0 +1,51 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
/// <summary>
///三方库库移请求
/// </summary>
[ApiController]
[Route($"{PdaHostConst.ROOT_ROUTE}store/third-location-request")]
public class ThirdLocationRequestController : AbpController
{
private readonly IThirdLocationRequestAppService _thirdLocationRequestAppService;
/// <summary>
///
/// </summary>
/// <param name="ThirdLocationRequestAppService"></param>
public ThirdLocationRequestController(IThirdLocationRequestAppService ThirdLocationRequestAppService)
{
_thirdLocationRequestAppService = ThirdLocationRequestAppService;
}
/// <summary>
/// 三方库库移申请
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("")]
public virtual async Task CreateAsync(ThirdLocationRequestEditInput input)
{
_ = await _thirdLocationRequestAppService.CreateAsync(input).ConfigureAwait(false);
}
/// <summary>
/// 根据number获取三方库库移申请详情
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
[HttpGet("{number}")]
public virtual async Task<ActionResult<ThirdLocationRequestDTO>> GetAsync(string number)
{
var result = await _thirdLocationRequestAppService.GetByNumberAsync(number).ConfigureAwait(false);
return Ok(result);
}
}

3
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Locations/ILocationAppService.cs

@ -31,6 +31,5 @@ public interface ILocationAppService
Task<List<LocationDTO>> GetListByManyCodes(List<string> codes);
Task<List<LocationDTO>> GetListByTypesAndErpCodeAsync(List<EnumLocationType> types, string erpCode);
Task<List<LocationDTO>> GetListByTypesAndErpCodeAsync(List<EnumLocationType> types, string erpCode,string locCode);
Task<List<LocationDTO>> GetListByErpLocationCodes(List<string> ErpLocationCodes);
}

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PurchasePrices/IPurchasePriceSheetAppService.cs

@ -5,6 +5,7 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
public interface IPurchasePriceSheetAppService : ISfsBaseDataAppServiceBase<PurchasePriceSheetDTO, SfsBaseDataRequestInputBase, PurchasePriceSheetEditInput>
{
Task<bool> CheckPurPriceAsync(string supplierCode, string itemCode);
Task<PurchasePriceSheetDTO> GetByItemCodeAsync(string itemCode,string supplierCode);
Task UpsertAsyncByInterface(PurchasePriceSheetEditInput input);
}

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAppService.cs

@ -61,7 +61,7 @@ public class ErpLocationItemAppService
if(entity != null)
{
throw new UserFriendlyException($"物品{input.ItemCode}和储位{input.ErpLocationCode} 对应关系已存在");
throw new UserFriendlyException($"物品 {input.ItemCode} 和储位 {input.ErpLocationCode} 对应关系已存在");
}
return await base.CreateAsync(input).ConfigureAwait(false);

8
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Locations/LocationAppService.cs

@ -202,7 +202,15 @@ public class LocationAppService
return dtos;
}
[HttpPost("get-list-by-erplocation-codes")]
public virtual async Task<List<LocationDTO>> GetListByErpLocationCodes(List<string> ErpLocationCodes)
{
var entitys = await _repository.GetListAsync(p => ErpLocationCodes.Contains(p.ErpLocationCode)).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<Domain.Location>, List<LocationDTO>>(entitys);
return dtos;
}
[HttpGet("get-all")]
//[Authorize(LocationPermissions.Default)]
public virtual async Task<List<LocationDTO>> GetAllAsync()

12
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PurchasePrices/PurchasePriceSheetAppService.cs

@ -41,4 +41,16 @@ public class PurchasePriceSheetAppService : SfsBaseDataAppServiceBase<PurchasePr
var entity = ObjectMapper.Map<PurchasePriceSheetEditInput, PurchasePriceSheet>(input);
await _repository.UpsertAsyncByInterface(entity).ConfigureAwait(false);
}
/// <summary>
/// 判断是否有采购价格
/// </summary>
/// <returns></returns>
[HttpPost("check-purprice")]
public virtual async Task<bool> CheckPurPriceAsync( string supplierCode, string itemCode)
{
bool result = false;
var entitys = await _repository.GetListAsync(p => p.SupplierCode == supplierCode && p.ItemCode == itemCode && p.SupplierCode == supplierCode, true).ConfigureAwait(false);
if (entitys.Count != 0) result = true;
return result;
}
}

3
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain.Acl/ErpLocationItem/IErpLocationItemAclService.cs

@ -1,9 +1,10 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Win_in.Sfs.Basedata.Application.Contracts;
namespace Win_in.Sfs.Wms.Inventory.Domain.Acl.ErpLocationItem;
public interface IErpLocationItemAclService
public interface IErpLocationItemAclService : ITransientDependency
{
Task<ErpLocationItemDTO> GetFirstAsync(string itemCode, string locationCode);
}

1
be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransType.cs

@ -97,6 +97,7 @@ public enum EnumTransType
[Display(Name = "新版库内转移")]
TransferLib = 68,
/// <summary>
/// 库间调拨

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ExchangeDatas/IExchangeDataAppService.cs

@ -14,4 +14,5 @@ public interface IExchangeDataAppService
Task<List<ExchangeDataDTO>> GetToBeProcessedListPostAsync(int batchSize);
Task<List<ExchangeDataDTO>> GetToBeProcessedListOnlyReadAsync(int batchSize);
Task<List<ExchangeDataDTO>> UpdateStatusByIdListAsync(List<Guid> list);
Task<List<ExchangeDataDTO>> UpdateManyAsync(List<ExchangeDataDTO> dtos);
}

12
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ThirdLocationJobs/DTOs/ThirdLocationJobDetailDTO.cs

@ -9,10 +9,16 @@ public class ThirdLocationJobDetailDTO : SfsJobRecommendFromDetailDTOBase, IHasT
{
/// <summary>
/// 请求库位
/// 来源库位
/// </summary>
[Display(Name = "请求库位")]
public string RequestLocationCode { get; set; }
[Display(Name = "来源库位")]
public string FromLocationCode { get; set; }
/// <summary>
/// 来源库区
/// </summary>
[Display(Name = "来源库区")]
public string FromLocationArea { get; set; }
/// <summary>
/// 到库位

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ThirdLocationJobs/Inputs/ThirdLocationJobDetailInput.cs

@ -9,12 +9,20 @@ public class ThirdLocationJobDetailInput : SfsJobRecommendFromDetailInputBase, I
{
/// <summary>
/// 请求库位
/// 来源库位
/// </summary>
[Display(Name = "请求库位")]
[Display(Name = "来源库位")]
[Required(ErrorMessage = "{0}是必填项")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string RequestLocationCode { get; set; }
public string FromLocationCode { get; set; }
/// <summary>
/// 来源库区
/// </summary>
[Display(Name = "来源库位")]
[Required(ErrorMessage = "{0}是必填项")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string FromLocationArea { get; set; }
/// <summary>
/// 到库位

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/CustomerProductionReturnNotes/Inputs/CustomerProductionReturnNoteEditInput.cs

@ -35,7 +35,7 @@ public class CustomerProductionReturnNoteEditInput : SfsStoreCreateOrUpdateInput
/// 退库记录单号
/// </summary>
[Display(Name = "退库记录单号")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string Number { get; set; }
/// <summary>

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDTO.cs

@ -37,4 +37,9 @@ public class ThirdLocationRequestDTO : SfsStoreRequestDTOBase<ThirdLocationReque
/// </summary>
[Display(Name = "目标ERP储位")]
public string ToLocationErpCode { get; set; }
/// <summary>
/// 来源库区
/// </summary>
public string FromLocationArea { get; set; }
}

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/Inputs/ThirdLocationRequestDetailInput.cs

@ -14,6 +14,13 @@ public class ThirdLocationRequestDetailInput : SfsStoreDetailWithQtyInputBase
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ToLocationCode { get; set; }
/// <summary>
/// 来源库位
/// </summary>
[Display(Name = "来源库位")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string FromLocationCode { get; set; }
/// <summary>
/// 来源库区
/// </summary>

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/Inputs/ThirdLocationRequestImportInput.cs

@ -31,10 +31,17 @@ public class ThirdLocationRequestImportInput : SfsStoreImportInputBase
[Required]
public string ToLocationCode { get; set; }
/// <summary>
/// 来源库位
/// </summary>
[Display(Name = "来源库位")]
[Required]
public string FromLocationCode { get; set; }
/// <summary>
/// 来源库区
/// </summary>
[Display(Name = "调出库区")]
[Display(Name = "来源库区")]
[Required]
public string FromLocationArea { get; set; }

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreWithDetailsAppServiceBase.cs

@ -12,6 +12,7 @@ using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Acl.Balance;
using Win_in.Sfs.Wms.Store.Domain.Acl.DataExportTask;
using Win_in.Sfs.Wms.Store.Domain.Acl.Dict;
using Win_in.Sfs.Wms.Store.Domain.Acl.ErpLocationItem;
using Win_in.Sfs.Wms.Store.Domain.Acl.File;
using Win_in.Sfs.Wms.Store.Domain.Acl.ItemBasic;
using Win_in.Sfs.Wms.Store.Domain.Acl.Location;
@ -54,7 +55,8 @@ public abstract class SfsStoreWithDetailsAppServiceBase<TEntity, TEntityDto, TRe
protected IItemBasicAclService ItemBasicAclService =>
LazyServiceProvider.LazyGetRequiredService<IItemBasicAclService>();
protected IErpLocationItemAclService ErpLocationItemAclService =>
LazyServiceProvider.LazyGetRequiredService<IErpLocationItemAclService>();
protected ILocationAclService LocationAclService =>
LazyServiceProvider.LazyGetRequiredService<ILocationAclService>();

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ExchangeDatas/ExchangeDataAppService.cs

@ -142,4 +142,18 @@ public class ExchangeDataAppService
var dtos = ObjectMapper.Map<List<ExchangeData>, List<ExchangeDataDTO>>(resultList);
return dtos;
}
[HttpPost("update-many")]
public virtual async Task<List<ExchangeDataDTO>> UpdateManyAsync(List<ExchangeDataDTO> dtos)
{
var list = ObjectMapper.Map<List<ExchangeDataDTO>, List<ExchangeData>>(dtos);
list.ForEach(p =>
{
p.Status = EnumExchangeDataStatus.Success;
p.ReadTime = Clock.Now;
p.Reader = "DataExchange.Agent";
});
await _repository.UpdateManyAsync(list).ConfigureAwait(false);
return dtos;
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/CustomerProductionReturnNotes/CustomerProductionReturnNoteAppService.cs

@ -43,8 +43,6 @@ public class CustomerProductionReturnNoteAppService :
itm.FromLocationCode = "HOLD";
itm.FromStatus = EnumInventoryStatus.OK;
itm.ToStatus=EnumInventoryStatus.OK;
}

13
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PutawayNotes/PutawayNoteAppService.cs

@ -17,6 +17,7 @@ using Win_in.Sfs.Wms.Store.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application;
using System.Linq;
using Win_in.Sfs.Basedata.Application.Contracts;
[Authorize]
[Route($"{StoreConsts.RootPath}putaway-note")]
@ -29,18 +30,21 @@ public class PutawayNoteAppService :
private readonly IPurchaseReceiptNoteAppService _purchaseReceiptNoteAppService;
public readonly IInspectJobAppService _inspectJobAppService;
public readonly IPurchaseOrderManager _purchaseOrderManager;
public readonly IPurchasePriceSheetAppService _purchasePriceSheetAppService;
public PutawayNoteAppService(
IPutawayNoteRepository repository,
IPutawayNoteManager putawayNoteManager,
IPurchaseReceiptNoteAppService purchaseReceiptNoteAppService,
IInspectJobAppService inspectJobAppService,
IPurchaseOrderManager purchaseOrderManager) : base(repository)
IPurchaseOrderManager purchaseOrderManager,
IPurchasePriceSheetAppService purchasePriceSheetAppService ) : base(repository)
{
_putawayNoteManager = putawayNoteManager;
_purchaseReceiptNoteAppService = purchaseReceiptNoteAppService;
_inspectJobAppService = inspectJobAppService;
_purchaseOrderManager = purchaseOrderManager;
_purchasePriceSheetAppService = purchasePriceSheetAppService;
}
/// <summary>
@ -59,7 +63,12 @@ public class PutawayNoteAppService :
var isClosed = await _purchaseOrderManager.CheckIsCloseAsync(input.Number,input.SupplierCode, detail.ItemCode).ConfigureAwait(false);
if (isClosed)
{
throw new UserFriendlyException($"零件名称【{detail.ItemCode}】的订单明细行以关闭无法执行采购上价!");
throw new UserFriendlyException($"零件名称【{detail.ItemCode}】的订单明细行以关闭无法执行采购上架!");
}
var isprice = await _purchasePriceSheetAppService.CheckPurPriceAsync(input.SupplierCode, detail.ItemCode).ConfigureAwait(false);
if (isClosed)
{
throw new UserFriendlyException($"供应商【{input.SupplierCode}】零件名称【{detail.ItemCode}】无采购价格无法执行采购上架!");
}
var purchasereDetail = await _purchaseReceiptNoteAppService
.GetDetailByItemAndPackingAsync(detail.ItemCode, detail.ToPackingCode).ConfigureAwait(false);

28
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs

@ -28,17 +28,20 @@ public class PurchaseOrderAppService :
private readonly IPurchaseOrderManager _purchaseOrderManager;
private readonly ISupplierAppService _supplierAppService;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly ILocationAppService _locationAppService;
public PurchaseOrderAppService(
IPurchaseOrderRepository repository,
IPurchaseOrderManager purchaseOrderManager,
ISupplierAppService supplierAppService,
IItemBasicAppService itemBasicAppService) : base(repository)
IItemBasicAppService itemBasicAppService
, ILocationAppService locationAppService) : base(repository)
{
_repository = repository;
_purchaseOrderManager = purchaseOrderManager;
_supplierAppService = supplierAppService;
_itemBasicAppService = itemBasicAppService;
_locationAppService = locationAppService;
base.CreatePolicyName = PurchaseOrderPermissions.Create;
base.UpdatePolicyName = PurchaseOrderPermissions.Update;
base.DeletePolicyName = PurchaseOrderPermissions.Delete;
@ -56,6 +59,15 @@ public class PurchaseOrderAppService :
{
var ImportData = dictionary.Select(p => p.Key);
#region 校验ERP库位是否存在
var allTempErpLocationCode = ImportData.Select(p => p.Details.Select(p => p.LocationErpCode).ToList()).ToList();
var allErpLocationCode = new List<string>();
allTempErpLocationCode.ForEach(p => { allErpLocationCode.AddRange(p); });
var erpLocations = await CheckErpLocationCodeAsync(allErpLocationCode).ConfigureAwait(false);
#endregion
var supplierDtos = new List<SupplierDTO>();
#region 校验供应商
@ -190,7 +202,21 @@ public class PurchaseOrderAppService :
return result;
}
private async Task<List<LocationDTO>> CheckErpLocationCodeAsync(List<string> erpLocationCodes)
{
erpLocationCodes = erpLocationCodes.Distinct().ToList();
var result = await _locationAppService.GetListByErpLocationCodes(erpLocationCodes).ConfigureAwait(false);
var resultcode = result.Select(r => r.ErpLocationCode).Distinct();
foreach (var code in erpLocationCodes)
{
if (resultcode.All(p => p != code))
{
throw new UserFriendlyException($"ERP储位代码【{code}】不存在");
}
}
return result;
}
#endregion

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAppService.cs

@ -86,7 +86,7 @@ public class ThirdLocationRequestAppService : SfsStoreRequestAppServiceBase<Thir
{
if (item.Qty <= 0)
{
throw new UserFriendlyException($"{item.ItemCode} 物的需求量必须大于0");
throw new UserFriendlyException($"{item.ItemCode} 物的需求量必须大于0");
}
}
@ -94,6 +94,7 @@ public class ThirdLocationRequestAppService : SfsStoreRequestAppServiceBase<Thir
{
var toLocationDto = await _locationAppService.GetByCodeAsync(detailInput.ToLocationCode).ConfigureAwait(false);
CheckLocation(toLocationDto, detailInput.ToLocationCode);
var itemBasicDto = await _itemBasicAppService.GetByCodeAsync(detailInput.ItemCode).ConfigureAwait(false);
CheckItemBasic(itemBasicDto, detailInput.ItemCode);
@ -101,12 +102,7 @@ public class ThirdLocationRequestAppService : SfsStoreRequestAppServiceBase<Thir
detailInput.ToLocationErpCode = toLocationDto.ErpLocationCode;
}
//input.AutoSubmit = true;
//input.AutoAgree = true;
//input.AutoHandle = true;
//input.AutoCompleteJob = false;
//input.DirectCreateNote = false;
await SetRequestAutoPropertiesAsync(input).ConfigureAwait(false);
@ -333,9 +329,9 @@ public class ThirdLocationRequestAppService : SfsStoreRequestAppServiceBase<Thir
throw new UserFriendlyException($"库位代码为【{LocationCode}】不存在");
}
if (LocationDto.Type != EnumLocationType.WIP)
if (LocationDto.Type != EnumLocationType.THIRDPARTY)
{
throw new UserFriendlyException($"库位代码【{LocationCode}】不是【{EnumLocationType.WIP.GetDisplayName()}】类型");
throw new UserFriendlyException($"库位代码【{LocationCode}】不是【{EnumLocationType.THIRDPARTY.GetDisplayName()}】类型");
}
}

36
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Acl/ErpLocationItem/ErpLocationItemAclService.cs

@ -0,0 +1,36 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Caching;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Application;
namespace Win_in.Sfs.Wms.Store.Domain.Acl.ErpLocationItem;
public class ErpLocationItemAclService
: AclServiceBase, IErpLocationItemAclService
{
private readonly IErpLocationItemAppService _appService;
private readonly IDistributedCache<ErpLocationItemDTO> _cache;
public ErpLocationItemAclService(
IErpLocationItemAppService appService
, IDistributedCache<ErpLocationItemDTO> cache
)
{
_appService = appService;
_cache = cache;
}
public virtual async Task<ErpLocationItemDTO> GetFirstAsync(string itemCode, string locationCode)
{
var dto = await _cache.GetOrAddItemAsync(
$"{itemCode}:{locationCode}",
async () => await GetFromAppServiceAsync(itemCode, locationCode).ConfigureAwait(false),
CacheMinutes).ConfigureAwait(false);
return dto;
}
private async Task<ErpLocationItemDTO> GetFromAppServiceAsync(string itemCode, string locationCode)
{
return await _appService.CheckItemErpLocationIsAvailable(itemCode, locationCode).ConfigureAwait(false);
}
}

10
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Acl/ErpLocationItem/IErpLocationItemAclService.cs

@ -0,0 +1,10 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Win_in.Sfs.Basedata.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Domain.Acl.ErpLocationItem;
public interface IErpLocationItemAclService : ITransientDependency
{
Task<ErpLocationItemDTO> GetFirstAsync(string itemCode, string locationCode);
}

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Acl/Win_in.Sfs.Wms.Store.Domain.Acl.csproj

@ -18,5 +18,9 @@
<ProjectReference Include="..\..\..\Shared\src\Win_in.Sfs.Shared.Application\Win_in.Sfs.Shared.Application.csproj" />
<ProjectReference Include="..\Win_in.Sfs.Wms.Store.Domain.Shared\Win_in.Sfs.Wms.Store.Domain.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="ErpLocationItem\" />
</ItemGroup>
</Project>

12
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/ExchangeDatas/ExchangeDataManager.cs

@ -43,14 +43,14 @@ public class ExchangeDataManager : DomainService, IExchangeDataManager
.Take(batchSize)
.ToListAsync().ConfigureAwait(false);
foreach (var entity in entities)
{
//foreach (var entity in entities)
//{
entity.Status = EnumExchangeDataStatus.Success;
entity.ReadTime = Clock.Now;
entity.Reader = "DataExchange.Agent";
// entity.Status = EnumExchangeDataStatus.Success;
// entity.ReadTime = Clock.Now;
// entity.Reader = "DataExchange.Agent";
}
//}
return entities;
}

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobManagerBase.cs

@ -21,6 +21,7 @@ using Win_in.Sfs.Message.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Event;
using Win_in.Sfs.Wms.Store.Domain.Acl.ErpLocationItem;
using Win_in.Sfs.Wms.Store.Domain.Acl.Balance;
using Win_in.Sfs.Wms.Store.Domain.Acl.DocumentSettings;
using Win_in.Sfs.Wms.Store.Domain.Acl.ItemBasic;
@ -52,6 +53,8 @@ public abstract class SfsJobManagerBase<TEntity, TDetailEntity>
protected IItemBasicAclService ItemBasicAclService => LazyServiceProvider.LazyGetRequiredService<IItemBasicAclService>();
protected IErpLocationItemAclService ErpLocationItemAclService => LazyServiceProvider.LazyGetRequiredService<IErpLocationItemAclService>();
protected IBalanceAclService BalanceAclService => LazyServiceProvider.LazyGetRequiredService<IBalanceAclService>();
protected ITransactionTypeAclService TransactionTypeAclService => LazyServiceProvider.LazyGetRequiredService<ITransactionTypeAclService>();

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/ThirdLocationJobs/ThirdLocationJobDetail.cs

@ -7,9 +7,14 @@ namespace Win_in.Sfs.Wms.Store.Domain;
public class ThirdLocationJobDetail : SfsJobRecommendFromDetailEntityBase, IHasToLocation
{
/// <summary>
/// 请求库位
/// 来源库位
/// </summary>
public string RequestLocationCode { get; set; }
public string FromLocationCode { get; set; }
/// <summary>
/// 来源库区
/// </summary>
public string FromLocationArea { get; set; }
/// <summary>
/// 到库位

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/ThirdLocationNotes/ThirdLocationNoteDetail.cs

@ -7,7 +7,7 @@ public class ThirdLocationNoteDetail : SfsStoreRecommendFromDetailWithFromToEnti
{
/// <summary>
/// 发时间
/// 发时间
/// </summary>
public DateTime IssueTime { get; set; }

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestDetail.cs

@ -35,10 +35,17 @@ public class ThirdLocationRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasT
/// </summary>
public string ToWarehouseCode { get; set; }
/// <summary>
/// 来源库位
/// </summary>
public string FromLocationCode { get; set; }
/// <summary>
/// 来源库区
/// </summary>
public string FromLocationArea { get; set; }
// /// <summary>
// /// 在途库库位

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/ThirdLocationJobs/ThirdLocationJobDbContextModelCreatingExtensions.cs

@ -48,7 +48,8 @@ public static class ThirdLocationJobDbContextModelCreatingExtensions
b.Property(q => q.ToWarehouseCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ToLocationArea).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ToLocationGroup).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.RequestLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.FromLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.FromLocationArea).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.WorkStation).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.Operation).HasMaxLength(SfsPropertyConst.CodeLength);

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/ThirdLocationRequests/ThirdLocationRequestDbContextModelCreatingExtensions.cs

@ -46,6 +46,8 @@ public static class ThirdLocationRequestDbContextModelCreatingExtensions
b.Property(q => q.ToWarehouseCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ToLocationArea).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ToLocationGroup).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.FromLocationCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.FromLocationArea).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ExpiredTime).IsRequired();
b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.WorkStation).HasMaxLength(SfsPropertyConst.CodeLength);

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/ThirdLocationRequestAutoMapperProfile.cs

@ -35,7 +35,7 @@ public partial class StoreEventAutoMapperProfile : Profile
;
CreateMap<ThirdLocationRequestDetail, ThirdLocationJobDetailInput>()
.ForMember(x => x.RequestLocationCode, y => y.MapFrom(d => d.ToLocationCode))
.ForMember(x => x.FromLocationCode, y => y.MapFrom(d => d.FromLocationCode))
.Ignore(x => x.RecommendFromLocationArea)
.Ignore(x => x.RecommendFromLocationGroup)
.Ignore(x => x.HandledFromLocationArea)
@ -99,7 +99,7 @@ public partial class StoreEventAutoMapperProfile : Profile
.Ignore(x => x.ToLocationArea)
.Ignore(x => x.ToLocationGroup)
.Ignore(x => x.HandledFromWarehouseCode)
.Ignore(x => x.RequestLocationCode)
.Ignore(x => x.FromLocationCode)
.Ignore(x => x.ToLocationCode)
.Ignore(x => x.ProdLine)
.Ignore(x => x.WorkStation)
@ -123,12 +123,13 @@ public partial class StoreEventAutoMapperProfile : Profile
.Ignore(x => x.PlanBeginTime)
.Ignore(x => x.PlannedSplitRule)
.Ignore(x => x.DeliveryQty)
.Ignore(x => x.RequestLocationCode)
.Ignore(x => x.FromLocationCode)
.Ignore(x => x.ToLocationCode)
.Ignore(x => x.ProdLine)
.Ignore(x => x.WorkStation)
.Ignore(x => x.PositionCode)
.Ignore(x => x.RecommendType)
.Ignore(x => x.FromLocationArea)
.IgnoreIHasRecommendAndHandledFrom();
}

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Bases/StoreEventHandlerBase.cs

@ -10,6 +10,7 @@ using Volo.Abp.Timing;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain.Acl.Balance;
using Win_in.Sfs.Wms.Store.Domain.Acl.ErpLocationItem;
using Win_in.Sfs.Wms.Store.Domain.Acl.ItemBasic;
using Win_in.Sfs.Wms.Store.Domain.Acl.Location;
using Win_in.Sfs.Wms.Store.Domain.Acl.TransactionType;
@ -40,5 +41,7 @@ public abstract class StoreEventHandlerBase : ITransientDependency
protected IItemBasicAclService ItemBasicAclService => LazyServiceProvider.LazyGetRequiredService<IItemBasicAclService>();
protected IErpLocationItemAclService ErpLocationItemAclService => LazyServiceProvider.LazyGetRequiredService<IErpLocationItemAclService>();
protected IDatabase RedisDB;
}

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ThirdLocationRequestEventHandler.cs

@ -120,7 +120,7 @@ public class ThirdLocationRequestEventHandler
{
var jobs = new List<ThirdLocationJobEditInput>();
var transactionType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.Issue, EnumTransSubType.None).ConfigureAwait(false);//库存事务
var transactionType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.TransferLib, EnumTransSubType.Transfer_Warehouse).ConfigureAwait(false);//库存事务
var toLocationCodes = thirdLocationRequest.Details.Select(p => p.ToLocationCode).Distinct().ToList();//所有发送库位的集合
var toLocations = await _locationAppService.GetByCodesAsync(toLocationCodes).ConfigureAwait(false);//所有库位的集合
@ -245,7 +245,7 @@ public class ThirdLocationRequestEventHandler
//ProductionLineDTO prodLine = await _productionLineAppService.GetByLocationGroupCodeAsync(toLocationGroupCode).ConfigureAwait(false);
var detail = ObjectMapper.Map<BalanceDTO, ThirdLocationJobDetailInput>(balance);
detail.RequestLocationCode = thirdLocationRequestDetail.ToLocationCode;
detail.FromLocationCode = thirdLocationRequestDetail.FromLocationCode;
detail.WorkStation = thirdLocationRequestDetail.WorkStation;
detail.ExpiredTime = thirdLocationRequestDetail.ExpiredTime;
detail.PositionCode = thirdLocationRequestDetail.PositionCode;
@ -271,6 +271,7 @@ public class ThirdLocationRequestEventHandler
detail.ToLocationErpCode = thirdLocationRequestDetail.ToLocationErpCode;
detail.ToLocationArea = thirdLocationRequestDetail.ToLocationArea;
detail.ToWarehouseCode = thirdLocationRequestDetail.ToWarehouseCode;
detail.FromLocationArea = thirdLocationRequestDetail.FromLocationArea;
//detail.ProdLine = prodLine == null ? toLocationGroupCode : prodLine.Code;
detail.ProdLine = toLocationGroupCode;

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/CustomerProductionReturnNoteEventHandler.cs

@ -1,8 +1,11 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using DocumentFormat.OpenXml.Office2010.Excel;
using IdentityServer4.Models;
using Volo.Abp.EventBus;
using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Event;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
@ -79,9 +82,16 @@ public class CustomerProductionReturnNoteEventHandler
{
var transaction = ObjectMapper.Map<CustomerProductionReturnNoteDetail, TransactionEditInput>(detail);
transaction.PackingCode = (!string.IsNullOrEmpty(transaction.PackingCode) )? transaction.PackingCode :"NONE" ;
transaction.ContainerCode = (!string.IsNullOrEmpty(transaction.ContainerCode) )? transaction.ContainerCode :"NONE" ;
transaction.Lot = (!string.IsNullOrEmpty(transaction.Lot) )? transaction.Lot :"NONE" ;
transaction.LocationArea = (!string.IsNullOrEmpty(transaction.LocationArea) )? transaction.LocationArea :"NONE" ;
transaction.LocationGroup = (!string.IsNullOrEmpty(transaction.LocationGroup) )? transaction.LocationGroup :"NONE" ;
transaction.LocationErpCode = (!string.IsNullOrEmpty(transaction.LocationErpCode))? transaction.LocationErpCode :"NONE" ;
transaction.WarehouseCode = (!string.IsNullOrEmpty(transaction.WarehouseCode)) ? transaction.WarehouseCode : "NONE";
transaction.LocationErpCode = (!string.IsNullOrEmpty(transaction.LocationErpCode)) ? transaction.LocationErpCode : "NONE";
transaction.TransType = TransType;
transaction.TransInOut = TransInOut;
transaction.TransInOut = TransInOut;
transaction.Worker = CustomerProductionReturnNote.Worker;
transaction.DocNumber = CustomerProductionReturnNote.Number;
transaction.JobNumber = CustomerProductionReturnNote.JobNumber;

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/MesNoteEventHandler.cs

@ -51,6 +51,11 @@ public class MesNoteEventHandler
//}
//else
//{
var transferLogs = new List<TransferLogEditInput>();
foreach (var MesNote in MesNotes)
{

Loading…
Cancel
Save