Browse Source

非生产 领料 非生产退料

集成Redis
郑渤旭[Irelia] 2 years ago
parent
commit
235f2c93c8
  1. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/UnplannedReceiptNotes/UnplannedReceiptNoteAutoMapperProfile.cs
  2. 301
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs
  3. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAutoMapperProfile.cs
  4. 302
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs
  5. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/UnplannedReceiptNotes/UnplannedReceiptNoteAutoMapperProfile.cs

@ -21,5 +21,14 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.TenantId) .Ignore(x => x.TenantId)
.Ignore(x => x.Number) .Ignore(x => x.Number)
.Ignore(x => x.Id); .Ignore(x => x.Id);
CreateMap<UnplannedReceiptNoteEditInput, UnplannedReceiptNote>()
.IgnoreAuditedObjectProperties()
.Ignore(x => x.TenantId)
.Ignore(x => x.Number)
.Ignore(x => x.Id)
.Ignore(x => x.Remark)
.Ignore(x => x.ExtraProperties)
;
} }
} }

301
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs

@ -20,16 +20,189 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
{ {
private readonly IDepartmentAppService _departmentApp; private readonly IDepartmentAppService _departmentApp;
private readonly IUnplannedIssueRequestManager _unplannedIssueRequestManager; private readonly IUnplannedIssueRequestManager _unplannedIssueRequestManager;
private readonly IBalanceAppService _balanceAppService;
private readonly IDepartmentAppService _departmentAppService;
public UnplannedIssueRequestForDongyangAppService(IUnplannedIssueRequestRepository repository, public UnplannedIssueRequestForDongyangAppService(IUnplannedIssueRequestRepository repository,
IUnplannedIssueRequestManager unplannedIssueRequestManager, IUnplannedIssueRequestManager unplannedIssueRequestManager,
IDepartmentAppService departmentApp IDepartmentAppService departmentApp, IBalanceAppService balanceAppService, IDepartmentAppService departmentAppService) : base(repository, unplannedIssueRequestManager)
) : base(repository, unplannedIssueRequestManager)
{ {
_unplannedIssueRequestManager = unplannedIssueRequestManager; _unplannedIssueRequestManager = unplannedIssueRequestManager;
_departmentApp = departmentApp; _departmentApp = departmentApp;
_balanceAppService = balanceAppService;
_departmentAppService = departmentAppService;
} }
/// <summary>
/// 用来重写 导入数据时可以加工数据
/// </summary>
/// <param name="dictionary"></param>
/// <returns></returns>
protected override async Task<Dictionary<UnplannedIssueRequest, EntityState>> ImportProcessingEntityAsync(Dictionary<UnplannedIssueRequest, EntityState> dictionary)
{
var addList = dictionary.Where(p => p.Value == EntityState.Added).Select(p => p.Key);
foreach (var unplannedIssueRequest in addList)
{
unplannedIssueRequest.Worker = CurrentUser.GetUserName();
unplannedIssueRequest.CreatorId = CurrentUser.Id;
await SetRequestAutoPropertiesAsync(unplannedIssueRequest).ConfigureAwait(false);
await SetEntityPropertiesAsync(unplannedIssueRequest).ConfigureAwait(false);
foreach (var detail in unplannedIssueRequest.Details)
{
await SetDetailPropertiesAsync(detail).ConfigureAwait(false);
}
}
return dictionary;
}
#region 赋值
/// <summary>
/// 赋值详情
/// </summary>
/// <param name="detail"></param>
/// <returns></returns>
private async Task SetDetailPropertiesAsync(UnplannedIssueRequestDetail detail)
{
var itemBasic = await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false);
if (itemBasic != null)
{
detail.ItemCode = itemBasic.Code;
detail.ItemName = itemBasic.Name;
detail.ItemDesc1 = itemBasic.Desc1;
detail.ItemDesc2 = itemBasic.Desc2;
detail.StdPackQty = itemBasic.StdPackQty;
detail.Uom = itemBasic.BasicUom;
}
var location = await LocationAclService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false);
if (location != null)
{
detail.WarehouseCode = location.WarehouseCode;
detail.LocationErpCode = location.ErpLocationCode;
detail.LocationGroup = location.LocationGroupCode;
detail.LocationArea = location.AreaCode;
detail.LocationCode = location.Code;
}
var balance = await _balanceAppService.GetByItemLocationAndPackingAsync(
string.Empty,
detail.ItemCode,
detail.LocationCode).ConfigureAwait(false);
if (balance != null)
{
detail.SupplierBatch = balance.SupplierBatch;
detail.ArriveDate = balance.ArriveDate;
detail.ProduceDate = balance.ProduceDate;
detail.ExpireDate = balance.ExpireDate;
detail.Lot = balance.Lot;
detail.ContainerCode = balance.ContainerCode;
detail.PackingCode = balance.PackingCode;
detail.Qty = balance.Qty;
detail.Status = balance.Status;
}
//if (!string.IsNullOrEmpty(detail))
//{
// var dict = await DictAppService.GetByCodeAsync(nameof(input.OnceBusiCode)).ConfigureAwait(false);
// if (dict.Items != null && dict.Items.Count > 0)
// {
// var item = dict.Items.FirstOrDefault(t => t.Code == input.OnceBusiCode);
// Check.NotNull(item, "次交易码", "次交易码不存在");
// detail.SetProperty("OnceBusiCode", item.Code);
// detail.SetProperty("OnceBusiName", item.Name);
// }
//}
//if (!string.IsNullOrEmpty(input.CaseCode))
//{
// var dict = await DictAppService.GetByCodeAsync(nameof(input.CaseCode)).ConfigureAwait(false);
// if (dict.Items != null && dict.Items.Count > 0)
// {
// var item = dict.Items.FirstOrDefault(t => t.Code == input.CaseCode);
// Check.NotNull(item, "专案代码", "专案代码不存在");
// detail.SetProperty("CaseCode", item.Code);
// detail.SetProperty("CaseName", item.Name);
// }
//}
//if (!string.IsNullOrEmpty(input.ProjCapacityCode))
//{
// var dict = await DictAppService.GetByCodeAsync(nameof(input.ProjCapacityCode)).ConfigureAwait(false);
// if (dict.Items != null && dict.Items.Count > 0)
// {
// var item = dict.Items.FirstOrDefault(t => t.Code == input.ProjCapacityCode);
// Check.NotNull(item, "项目分类代码", "项目分类代码不存在");
// detail.SetProperty("ProjCapacityCode", item.Code);
// detail.SetProperty("ProjCapacityName", item.Name);
// }
//}
}
/// <summary>
/// 赋值主记录
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
private async Task SetEntityPropertiesAsync(UnplannedIssueRequest entity)
{
var userName = CurrentUser.GetUserName();
var department = await _departmentAppService.GetByUsernameAsync(userName).ConfigureAwait(false);
if (department != null)
{
entity.DeptCode = department.Code;
entity.DeptName = department.Name;
}
entity.Worker = userName;
entity.BuildDate = DateTime.Now;
await SetRequestAutoPropertiesAsync(entity).ConfigureAwait(false);
}
/// <summary>
/// 赋值业务事务
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
private async Task SetRequestAutoPropertiesAsync(UnplannedIssueRequest entity)
{
var tranType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.UnplannedIssue, EnumTransSubType.None).ConfigureAwait(false);
Check.NotNull(tranType, "事务类型", "事务类型不存在");
entity.AutoCompleteJob = tranType.AutoCompleteJob;
entity.AutoSubmit = tranType.AutoSubmitRequest;
entity.AutoAgree = tranType.AutoAgreeRequest;
entity.AutoHandle = tranType.AutoHandleRequest;
entity.DirectCreateNote = tranType.DirectCreateNote;
}
#endregion
#region 校验
protected async Task<BalanceDTO> CheckBalanceAsync(UnplannedIssueRequestImportInput importInput, List<ValidationResult> validationRresult) protected async Task<BalanceDTO> CheckBalanceAsync(UnplannedIssueRequestImportInput importInput, List<ValidationResult> validationRresult)
{ {
var balance = await BalanceAclService.GetByItemLocationAndPackingAsync( var balance = await BalanceAclService.GetByItemLocationAndPackingAsync(
@ -155,127 +328,5 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
} }
} }
protected override Func<UnplannedIssueRequestImportInput, object> GetEntityExpression() #endregion
{
return p => (1);
}
protected override async Task ValidateImportEntityAsync(UnplannedIssueRequestImportInput input, UnplannedIssueRequest entity, List<ValidationResult> validationRresult)
{
foreach (var detail in entity.Details)
{
var itemBasic = await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false);
if (itemBasic != null)
{
detail.ItemName = itemBasic.Name;
detail.ItemDesc1 = itemBasic.Desc1;
detail.ItemDesc2 = itemBasic.Desc2;
detail.StdPackQty = itemBasic.StdPackQty;
}
var location = await LocationAclService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false);
if (location != null)
{
detail.LocationErpCode = location.ErpLocationCode;
detail.WarehouseCode = location.WarehouseCode;
}
// var balance = await this._balanceApp.GetByPackingCodeAsync(input.PackingCode);
var balance = await BalanceAclService.GetByItemLocationAndPackingAsync(
string.Empty,
input.ItemCode,
input.LocationCode).ConfigureAwait(false);
if (balance != null)
{
detail.SupplierBatch = balance.SupplierBatch;
detail.ArriveDate = balance.ArriveDate;
detail.ProduceDate = balance.ProduceDate;
detail.ExpireDate = balance.ExpireDate;
detail.Lot = balance.Lot;
detail.ContainerCode = balance.ContainerCode;
detail.PackingCode = balance.PackingCode;
detail.Qty = input.Qty;
detail.Status = balance.Status;
}
if (!string.IsNullOrEmpty(input.OnceBusiCode))
{
var dict = await DictAppService.GetByCodeAsync(nameof(input.OnceBusiCode)).ConfigureAwait(false);
if (dict.Items != null && dict.Items.Count > 0)
{
var item = dict.Items.FirstOrDefault(t => t.Code == input.OnceBusiCode);
Check.NotNull(item, "次交易码", "次交易码不存在");
detail.SetProperty("OnceBusiCode", item.Code);
detail.SetProperty("OnceBusiName", item.Name);
}
}
if (!string.IsNullOrEmpty(input.CaseCode))
{
var dict = await DictAppService.GetByCodeAsync(nameof(input.CaseCode)).ConfigureAwait(false);
if (dict.Items != null && dict.Items.Count > 0)
{
var item = dict.Items.FirstOrDefault(t => t.Code == input.CaseCode);
Check.NotNull(item, "专案代码", "专案代码不存在");
detail.SetProperty("CaseCode", item.Code);
detail.SetProperty("CaseName", item.Name);
}
}
if (!string.IsNullOrEmpty(input.ProjCapacityCode))
{
var dict = await DictAppService.GetByCodeAsync(nameof(input.ProjCapacityCode)).ConfigureAwait(false);
if (dict.Items != null && dict.Items.Count > 0)
{
var item = dict.Items.FirstOrDefault(t => t.Code == input.ProjCapacityCode);
Check.NotNull(item, "项目分类代码", "项目分类代码不存在");
detail.SetProperty("ProjCapacityCode", item.Code);
detail.SetProperty("ProjCapacityName", item.Name);
}
}
}
}
protected override async Task<bool> ValidateImportEntities(Dictionary<UnplannedIssueRequest, EntityState> dicts)
{
foreach (var entity in dicts.Keys)
{
var userName = CurrentUser.GetUserName();
var department = await _departmentApp.GetByUsernameAsync(userName).ConfigureAwait(false);
if (department != null)
{
entity.DeptCode = department.Code;
entity.DeptName = department.Name;
}
entity.Worker = userName;
entity.BuildDate = DateTime.Now;
var tranType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.UnplannedIssue, EnumTransSubType.None).ConfigureAwait(false);
Check.NotNull(tranType, "事务类型", "事务类型不存在");
entity.AutoCompleteJob = tranType.AutoCompleteJob;
entity.AutoSubmit = tranType.AutoSubmitRequest;
entity.AutoAgree = tranType.AutoAgreeRequest;
entity.AutoHandle = tranType.AutoHandleRequest;
entity.DirectCreateNote = tranType.DirectCreateNote;
}
return await base.ValidateImportEntities(dicts).ConfigureAwait(false);
}
} }

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAutoMapperProfile.cs

@ -59,6 +59,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.ContainerCode) .Ignore(x => x.ContainerCode)
.Ignore(x => x.Lot) .Ignore(x => x.Lot)
.Ignore(x => x.Status) .Ignore(x => x.Status)
.Ignore(x => x.Number); .Ignore(x => x.Number)
;
} }
} }

302
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Data; using Volo.Abp.Data;
using Win_in.Sfs.Auth.Application.Contracts; using Win_in.Sfs.Auth.Application.Contracts;
@ -29,75 +29,160 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
_departmentApp = departmentApp; _departmentApp = departmentApp;
} }
protected virtual async Task<(List<UnplannedReceiptRequest> entites, List<UnplannedReceiptRequest> deleteEntities)> BuildImportDataAsync(ImportResult<UnplannedReceiptRequestImportInput> importResult, EnumImportMethod importMethod = EnumImportMethod.Update, bool isAllowPartImport = false) /// <summary>
/// 用来重写 导入数据时可以加工数据
/// </summary>
/// <param name="dictionary"></param>
/// <returns></returns>
protected override async Task<Dictionary<UnplannedReceiptRequest, EntityState>> ImportProcessingEntityAsync(Dictionary<UnplannedReceiptRequest, EntityState> dictionary)
{ {
if (importResult.Data.Any(t => t.ReportStatus == EnumImportReportStatus.Failed)) var addList = dictionary.Where(p => p.Value == EntityState.Added).Select(p => p.Key);
foreach (var unplannedIssueRequest in addList)
{ {
if (!isAllowPartImport) unplannedIssueRequest.Worker = CurrentUser.GetUserName();
unplannedIssueRequest.CreatorId = CurrentUser.Id;
await SetRequestAutoPropertiesAsync(unplannedIssueRequest).ConfigureAwait(false);
await SetEntityPropertiesAsync(unplannedIssueRequest).ConfigureAwait(false);
foreach (var detail in unplannedIssueRequest.Details)
{ {
return (null, null); await SetDetailPropertiesAsync(detail).ConfigureAwait(false);
} }
} }
var entites = new List<UnplannedReceiptRequest>(); return dictionary;
}
var details = new List<UnplannedReceiptRequestDetail>(); #region 赋值
var deleteEntites = new List<UnplannedReceiptRequest>(); /// <summary>
/// 赋值详情
/// </summary>
/// <param name="detail"></param>
/// <returns></returns>
private async Task SetDetailPropertiesAsync(UnplannedReceiptRequestDetail detail)
{
var itemBasic = await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false);
var entityExpression = GetEntityExpression(); if (itemBasic != null)
{
detail.ItemName = itemBasic.Name;
detail.ItemDesc1 = itemBasic.Desc1;
detail.ItemDesc2 = itemBasic.Desc2;
detail.StdPackQty = itemBasic.StdPackQty;
detail.Uom = itemBasic.BasicUom;
}
var groupList = importResult.Data.ToList().GroupBy(entityExpression).Distinct().ToList(); var location = await LocationAclService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false);
foreach (var group in groupList) if (location != null)
{ {
var input = group.FirstOrDefault(); detail.LocationErpCode = location.ErpLocationCode;
detail.WarehouseCode = location.WarehouseCode;
detail.LocationArea = location.AreaCode;
detail.LocationGroup = location.LocationGroupCode;
}
var inputDetails = group.ToList(); detail.Lot = string.Empty;
detail.ContainerCode = string.Empty;
detail.PackingCode = string.Empty;
detail.Status = EnumInventoryStatus.OK;
if (!inputDetails.Any(t => t.ReportStatus == EnumImportReportStatus.Failed)) //if (!string.IsNullOrEmpty(detail.OnceBusiCode))
{ //{
var exist = await GetEntityAsync(input).ConfigureAwait(false); // var dict = await DictAclService.GetByCodeAsync(nameof(input.OnceBusiCode)).ConfigureAwait(false);
var entity = ObjectMapper.Map<UnplannedReceiptRequestImportInput, UnplannedReceiptRequest>(input); // if (dict.Items != null && dict.Items.Count > 0)
// {
// var item = dict.Items.FirstOrDefault(t => t.Code == input.OnceBusiCode);
await SetEntityPropertiesAsync(entity, input).ConfigureAwait(false); // Check.NotNull(item, "次交易码", "次交易码不存在");
switch (importMethod) // detail.SetProperty("OnceBusiCode", item.Code);
{ // detail.SetProperty("OnceBusiName", item.Name);
case EnumImportMethod.Update: // }
if (exist != null) //}
{
entity.SetId(exist.Id);
}
break;
case EnumImportMethod.Replace:
if (exist != null)
{
deleteEntites.Add(exist);
}
break;
}
foreach (var inputDetail in inputDetails) //if (!string.IsNullOrEmpty(input.CaseCode))
{ //{
var detail = ObjectMapper.Map<UnplannedReceiptRequestImportInput, UnplannedReceiptRequestDetail>(inputDetail); // var dict = await DictAclService.GetByCodeAsync(nameof(input.CaseCode)).ConfigureAwait(false);
detail.SetIdAndNumber(GuidGenerator, entity.Id, entity.Number); // if (dict.Items != null && dict.Items.Count > 0)
// {
// var item = dict.Items.FirstOrDefault(t => t.Code == input.CaseCode);
await SetDetailPropertiesAsync(detail, inputDetail).ConfigureAwait(false); // Check.NotNull(item, "专案代码", "专案代码不存在");
entity.AddDetail(detail);
}
entites.Add(entity); // detail.SetProperty("CaseCode", item.Code);
} // detail.SetProperty("CaseName", item.Name);
// }
//}
//if (!string.IsNullOrEmpty(input.ProjCapacityCode))
//{
// var dict = await DictAclService.GetByCodeAsync(nameof(input.ProjCapacityCode)).ConfigureAwait(false);
// if (dict.Items != null && dict.Items.Count > 0)
// {
// var item = dict.Items.FirstOrDefault(t => t.Code == input.ProjCapacityCode);
// Check.NotNull(item, "项目分类代码", "项目分类代码不存在");
// detail.SetProperty("ProjCapacityCode", item.Code);
// detail.SetProperty("ProjCapacityName", item.Name);
// }
//}
}
/// <summary>
/// 赋值主记录
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
private async Task SetEntityPropertiesAsync(UnplannedReceiptRequest entity)
{
var userName = CurrentUser.GetUserName();
var department = await _departmentApp.GetByUsernameAsync(userName).ConfigureAwait(false);
if (department != null)
{
entity.DeptCode = department.Code;
entity.DeptName = department.Name;
} }
return (entites, deleteEntites); entity.Worker = userName;
entity.BuildDate = DateTime.Now;
await SetRequestAutoPropertiesAsync(entity).ConfigureAwait(false);
} }
protected async Task<BalanceDTO> CheckBalanceAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult) /// <summary>
/// 赋值业务事务
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
private async Task SetRequestAutoPropertiesAsync(UnplannedReceiptRequest entity)
{
var tranType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.UnplannedReceipt, EnumTransSubType.None).ConfigureAwait(false);
Check.NotNull(tranType, "事务类型", "事务类型不存在");
entity.AutoCompleteJob = tranType.AutoCompleteJob;
entity.AutoSubmit = tranType.AutoSubmitRequest;
entity.AutoAgree = tranType.AutoAgreeRequest;
entity.AutoHandle = tranType.AutoHandleRequest;
entity.DirectCreateNote = tranType.DirectCreateNote;
}
#endregion
#region 校验
protected virtual async Task<BalanceDTO> CheckBalanceAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult)
{ {
var balance = await BalanceAclService.GetByItemLocationAndPackingAsync( var balance = await BalanceAclService.GetByItemLocationAndPackingAsync(
string.Empty, string.Empty,
@ -118,7 +203,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
return balance; return balance;
} }
protected async Task CheckCaseCodeAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult) protected virtual async Task CheckCaseCodeAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult)
{ {
if (!string.IsNullOrEmpty(importInput.CaseCode)) if (!string.IsNullOrEmpty(importInput.CaseCode))
{ {
@ -161,7 +246,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
//} //}
} }
protected async Task<ItemBasicDTO> CheckItemBasicAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult) protected virtual async Task<ItemBasicDTO> CheckItemBasicAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult)
{ {
var item = await ItemBasicAclService.GetByCodeAsync(importInput.ItemCode).ConfigureAwait(false); var item = await ItemBasicAclService.GetByCodeAsync(importInput.ItemCode).ConfigureAwait(false);
if (item == null) if (item == null)
@ -176,7 +261,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
return item; return item;
} }
protected async Task<LocationDTO> CheckLocationAsync(string locationCode, List<ValidationResult> validationRresult) protected virtual async Task<LocationDTO> CheckLocationAsync(string locationCode, List<ValidationResult> validationRresult)
{ {
var location = await LocationAclService.GetByCodeAsync(locationCode).ConfigureAwait(false); var location = await LocationAclService.GetByCodeAsync(locationCode).ConfigureAwait(false);
if (location == null) if (location == null)
@ -186,7 +271,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
return location; return location;
} }
protected async Task CheckOnceBusiCodeAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult) protected virtual async Task CheckOnceBusiCodeAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult)
{ {
if (!string.IsNullOrEmpty(importInput.OnceBusiCode)) if (!string.IsNullOrEmpty(importInput.OnceBusiCode))
{ {
@ -208,7 +293,8 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
} }
} }
} }
protected async Task CheckProjCapacityCodeAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult)
protected virtual async Task CheckProjCapacityCodeAsync(UnplannedReceiptRequestImportInput importInput, List<ValidationResult> validationRresult)
{ {
var dict = await DictAclService.GetByCodeAsync(nameof(importInput.ProjCapacityCode)).ConfigureAwait(false); var dict = await DictAclService.GetByCodeAsync(nameof(importInput.ProjCapacityCode)).ConfigureAwait(false);
if (dict == null) if (dict == null)
@ -227,7 +313,8 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
} }
} }
} }
protected async Task<TransactionTypeDTO> CheckTransactionTypeAsync(EnumTransType enumTransType, List<ValidationResult> validationRresult)
protected virtual async Task<TransactionTypeDTO> CheckTransactionTypeAsync(EnumTransType enumTransType, List<ValidationResult> validationRresult)
{ {
var transactionType = await TransactionTypeAclService.GetByTransTypeAsync(enumTransType, EnumTransSubType.None).ConfigureAwait(false); var transactionType = await TransactionTypeAclService.GetByTransTypeAsync(enumTransType, EnumTransSubType.None).ConfigureAwait(false);
if (transactionType == null) if (transactionType == null)
@ -237,116 +324,5 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
return transactionType; return transactionType;
} }
protected override Func<UnplannedReceiptRequestImportInput, object> GetEntityExpression() #endregion
{
return p => (1);
}
protected virtual async Task ImportDataAsync(List<UnplannedReceiptRequest> entites, List<UnplannedReceiptRequest> deleteEntities)
{
await _unplannedReceiptRequestManager.ImportDataAsync(entites, deleteEntities).ConfigureAwait(false);
}
private async Task SetDetailPropertiesAsync(UnplannedReceiptRequestDetail detail, UnplannedReceiptRequestImportInput input)
{
var itemBasic = await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false);
if (itemBasic != null)
{
detail.ItemName = itemBasic.Name;
detail.ItemDesc1 = itemBasic.Desc1;
detail.ItemDesc2 = itemBasic.Desc2;
detail.StdPackQty = itemBasic.StdPackQty;
}
var location = await LocationAclService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false);
if (location != null)
{
detail.LocationErpCode = location.ErpLocationCode;
detail.WarehouseCode = location.WarehouseCode;
detail.Lot = string.Empty;
detail.ContainerCode = string.Empty;
}
detail.PackingCode = string.Empty;
detail.Status = EnumInventoryStatus.OK;
if (!string.IsNullOrEmpty(input.OnceBusiCode))
{
var dict = await DictAclService.GetByCodeAsync(nameof(input.OnceBusiCode)).ConfigureAwait(false);
if (dict.Items != null && dict.Items.Count > 0)
{
var item = dict.Items.FirstOrDefault(t => t.Code == input.OnceBusiCode);
Check.NotNull(item, "次交易码", "次交易码不存在");
detail.SetProperty("OnceBusiCode", item.Code);
detail.SetProperty("OnceBusiName", item.Name);
}
}
if (!string.IsNullOrEmpty(input.CaseCode))
{
var dict = await DictAclService.GetByCodeAsync(nameof(input.CaseCode)).ConfigureAwait(false);
if (dict.Items != null && dict.Items.Count > 0)
{
var item = dict.Items.FirstOrDefault(t => t.Code == input.CaseCode);
Check.NotNull(item, "专案代码", "专案代码不存在");
detail.SetProperty("CaseCode", item.Code);
detail.SetProperty("CaseName", item.Name);
}
}
if (!string.IsNullOrEmpty(input.ProjCapacityCode))
{
var dict = await DictAclService.GetByCodeAsync(nameof(input.ProjCapacityCode)).ConfigureAwait(false);
if (dict.Items != null && dict.Items.Count > 0)
{
var item = dict.Items.FirstOrDefault(t => t.Code == input.ProjCapacityCode);
Check.NotNull(item, "项目分类代码", "项目分类代码不存在");
detail.SetProperty("ProjCapacityCode", item.Code);
detail.SetProperty("ProjCapacityName", item.Name);
}
}
}
private async Task SetEntityPropertiesAsync(UnplannedReceiptRequest entity, UnplannedReceiptRequestImportInput input)
{
var userName = CurrentUser.GetUserName();
var department = await _departmentApp.GetByUsernameAsync(userName).ConfigureAwait(false);
if (department != null)
{
entity.DeptCode = department.Code;
entity.DeptName = department.Name;
}
entity.Worker = userName;
entity.BuildDate = DateTime.Now;
await SetRequestAutoPropertiesAsync(entity).ConfigureAwait(false);
}
private async Task SetRequestAutoPropertiesAsync(UnplannedReceiptRequest entity)
{
var tranType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.UnplannedReceipt, EnumTransSubType.None).ConfigureAwait(false);
Check.NotNull(tranType, "事务类型", "事务类型不存在");
entity.AutoCompleteJob = tranType.AutoCompleteJob;
entity.AutoSubmit = tranType.AutoSubmitRequest;
entity.AutoAgree = tranType.AutoAgreeRequest;
entity.AutoHandle = tranType.AutoHandleRequest;
entity.DirectCreateNote = tranType.DirectCreateNote;
}
} }

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs

@ -219,6 +219,7 @@ public class CountPlanManager : SfsStoreRequestManagerBase<CountPlan, CountPlanD
ItemDesc1 = inventory.ItemDesc1, ItemDesc1 = inventory.ItemDesc1,
ItemDesc2 = inventory.ItemDesc2, ItemDesc2 = inventory.ItemDesc2,
ItemCode = inventory.ItemCode, ItemCode = inventory.ItemCode,
Uom =inventory.Uom,
// 排序批次 // 排序批次
Lot = inventory.Lot, Lot = inventory.Lot,
// 批次 // 批次
@ -231,9 +232,11 @@ public class CountPlanManager : SfsStoreRequestManagerBase<CountPlan, CountPlanD
LocationArea = inventory.LocationArea, LocationArea = inventory.LocationArea,
LocationCode = inventory.LocationCode, LocationCode = inventory.LocationCode,
LocationErpCode = inventory.LocationErpCode, LocationErpCode = inventory.LocationErpCode,
LocationGroup = inventory.LocationGroup,
WarehouseCode = inventory.WarehouseCode, WarehouseCode = inventory.WarehouseCode,
// 库存状态 // 库存状态
Status = inventory.Status, Status = inventory.Status,
StdPackQty = inventory.StdPackQty,
}; };
return detail; return detail;

Loading…
Cancel
Save