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
488c42ff39
  1. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/FawtygAutoMapperProfile.cs
  2. 7
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnRequestController.cs
  3. 9
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Boms/IBomAppService.cs
  4. 7
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs
  5. 30
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
  6. 7
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs
  7. 6
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecImportInput.cs
  8. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs
  9. 16
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs
  10. 66
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs
  11. 23
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAutoMapperProfile.cs
  12. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs
  13. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/ExtMethod.cs
  14. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/SplitPackings/NodeTypeEnum.cs
  15. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/SplitPackings/OprTypeEnum.cs
  16. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Win_in.Sfs.Basedata.Domain.Shared.csproj
  17. 20
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs
  18. 9
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/IBomManager.cs
  19. 27
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs
  20. 9
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecRepository.cs
  21. 49
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRec.cs
  22. 56
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs
  23. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContext.cs
  24. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContextModelCreatingExtensions.cs
  25. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataEntityFrameworkCoreModule.cs
  26. 4
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/IBasedataDbContext.cs
  27. 3605
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Migrations/20240223065132_base.Designer.cs
  28. 1603
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Migrations/20240223065132_base.cs
  29. 3603
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Migrations/BasedataDbContextModelSnapshot.cs
  30. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCode/PositionCodeDbContextModelCreatingExtensions.cs
  31. 8
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs
  32. 11
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecEfCoreRepository.cs
  33. 4
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Win_in.Sfs.Basedata.EntityFrameworkCore.csproj
  34. 8
      be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/IInventoryLabelAppService.cs
  35. 57
      be/Modules/Label/src/Win_in.Sfs.Label.Application/InventoryLabels/InventoryLabelAppService.cs
  36. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ItemTransformNotes/Inputs/ItemTransformNoteEditInput.cs
  37. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/PurchaseReceiptNotes/DTOs/PurchaseReceiptNoteDetailDTO.cs
  38. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/PurchaseReceiptNotes/IPurchaseReceiptNoteAppService.cs
  39. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/RecycledMaterialReceiptNotes/IRecycledMaterialReceiptNoteAppService.cs
  40. 17
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
  41. 19
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/ItemTransformNotes/ItemTransformNoteAppService.cs
  42. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/ItemTransformNotes/ItemTransformNoteAutoMapperProfile.cs
  43. 31
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs
  44. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAutoMapperProfile.cs
  45. 34
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/RecycledMaterialReceiptNotes/RecycledMaterialReceiptNoteAppService.cs
  46. 16
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs
  47. 42
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAppService.cs
  48. 17
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAutoMapperProfile.cs
  49. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
  50. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/ISplitPackingRecManager.cs
  51. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/ISplitPackingRecRepository.cs
  52. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Win_in.Sfs.Wms.Store.Domain.csproj
  53. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/IStoreDbContext.cs
  54. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/SplitPackings/SplitPackingRecEfCoreRepository.cs
  55. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContext.cs
  56. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContextModelCreatingExtensions.cs
  57. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs
  58. 161
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/ItemTransformNoteEventHandler.cs
  59. 36
      build/src/docker/publish/conf/settings/appsettings.Development.json

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/FawtygAutoMapperProfile.cs

@ -86,7 +86,7 @@ public class FawtygAutoMapperProfile : Profile
CreateMap<SupplierAsnDetailExchangeDto, InventoryLabelEditInput>()
.ForMember(x => x.Code, y => y.MapFrom(d => d.PackingCode))
.ForMember(x => x.LabelType, y => y.MapFrom(d => EnumLabelType.PurchaseLabel))
.ForMember(x => x.LabelType, y => y.MapFrom(d => Label.Domain.Shared.EnumLabelType.PurchaseLabel))
.ForMember(x => x.LabelStatus, y => y.MapFrom(d => LabelStatus.Enable))
.Ignore(x => x.FullBarcodeString)
.Ignore(x => x.RecommendLocationCode)

7
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnRequestController.cs

@ -33,7 +33,7 @@ public class PurchaseReturnRequestController : AbpController
/// 创建退货申请
/// </summary>
[HttpPost("create-many")]
public virtual async Task CreateManyAsync(List<PurchaseReturnRequestPdaInput> input)
public virtual async Task<ActionResult> CreateManyAsync(List<PurchaseReturnRequestPdaInput> input)
{
List<PurchaseReturnRequestEditInput> entitys = new List<PurchaseReturnRequestEditInput>();
var groups = input.GroupBy(r => r.AsnNumber).ToList();
@ -50,8 +50,9 @@ public class PurchaseReturnRequestController : AbpController
}
entitys.Add(entity);
}
await _purchaseReturnRequestAppService.CreateManyAsync(entitys).ConfigureAwait(false); ;
}
await _purchaseReturnRequestAppService.CreateManyAsync(entitys).ConfigureAwait(false);
return Ok();
}
/// <summary>
/// 赋值Request业务属性

9
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Boms/IBomAppService.cs

@ -33,4 +33,13 @@ public interface IBomAppService
Task<List<Bom>> GetListOfComponentAsync(string component);
Task AddOrUpsertListAsync(List<BomEditInput> inputs);
Task UpsertAsyncByInterface(BomEditInput input);
/// <summary>
/// 根据总成号、总成数量取所有子物料及其汇总数量
/// </summary>
/// <param name="productCode">总成号</param>
/// <param name="productNum">总成数量</param>
/// <returns></returns>
Task<List<BomDTO>> GetMaterialTotalQtyAsync(string productCode, int productNum);
}

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs

@ -5,10 +5,11 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Label.Domain.Shared;
using Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
namespace Win_in.Sfs.Basedata.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.SplitPackings;
public class SplitPackingRecDTO : SfsBaseDataDTOBase
{
/// <summary>

30
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Basedata.Application.Contracts;
public interface ISplitPackingRecAppService
: ISfsBaseDataAppServiceBase<SplitPackingRecDTO, SfsBaseDataRequestInputBase, SplitPackingRecEditInput>
{
Task<bool> BatchInsertAsync(List<SplitPackingRecEditInput> inputs);
/// <summary>
/// 取每个目标箱码的最后一条拆箱记录
/// </summary>
/// <param name="toPackingCodeList">目标箱码列表</param>
/// <returns></returns>
Task<List<SplitPackingRecDTO>> GetListByToPackingCode(List<string> toPackingCodeList);
/// <summary>
/// 取每个源标箱码的“操作状态=其它”的拆箱记录
/// </summary>
/// <param name="fromPackingCodeList">源标箱码列表</param>
/// <returns></returns>
Task<List<SplitPackingRecDTO>> GetListByFromPackingCode(List<string> fromPackingCodeList);
}

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs

@ -5,11 +5,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Label.Domain.Shared;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
namespace Win_in.Sfs.Wms.Store.SplitPackings;
namespace Win_in.Sfs.Basedata.Application.Contracts;
public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase
{

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/Inputs/SplitPackingRecImportInput.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecImportInput.cs

@ -4,11 +4,11 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.SplitPackings.Inputs;
namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "拆箱记录")]
public class SplitPackingRecImportInput : SfsStoreImportInputBase
public class SplitPackingRecImportInput : SfsBaseDataImportInputBase
{
}

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

@ -50,7 +50,7 @@ public partial class BasedataApplicationAutoMapperProfile : Profile
WorkGroupAutoMapperProfile();
WorkShopAutoMapperProfile();
EquipmentAutoMapperProfile();
EquipmentAreaAutoMapperProfile();
SplitPackingRecAutoMapperProfile();
KittingAutoMapperProfile();
}
}

16
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs

@ -182,4 +182,20 @@ public class BomAppService :
await base.CheckProductAsync(importInput.Product, validationRresult).ConfigureAwait(false);
await base.CheckComponentAndComponentQtyAsync(importInput.Component, importInput.ComponentQty, validationRresult).ConfigureAwait(false);
}
/// <summary>
/// 根据总成号、总成数量取所有子物料及其汇总数量
/// </summary>
/// <param name="productCode">总成号</param>
/// <param name="productNum">总成数量</param>
/// <returns></returns>
[HttpGet("get-material-total-qty")]
public virtual async Task<List<BomDTO>> GetMaterialTotalQtyAsync(string productCode, int productNum)
{
var entities = await _bomManager.GetMaterialTotalQtyAsync(productCode, productNum).ConfigureAwait(false);
return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities);
}
}

66
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs

@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Components;
using Volo.Abp.Caching;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
namespace Win_in.Sfs.Basedata.Application;
/// <summary>
/// 拆箱记录
/// </summary>
//[Authorize]
[Route($"{BasedataConsts.RootPath}split-packing-rec")]
public class SplitPackingRecAppService :
SfsBaseDataAppServiceBase<SplitPackingRec, SplitPackingRecDTO, SfsBaseDataRequestInputBase, SplitPackingRecEditInput
, SplitPackingRecImportInput>
, ISplitPackingRecAppService
{
private readonly ISplitPackingRecManager _splitPackingRecManager;
public SplitPackingRecAppService(ISplitPackingRecRepository repository
,ISplitPackingRecManager splitPackingRecManager
,IDistributedCache<SplitPackingRecDTO> cache
) : base(repository, cache)
{
_splitPackingRecManager = splitPackingRecManager;
}
public async Task<bool> BatchInsertAsync(List<SplitPackingRecEditInput> inputs)
{
List<SplitPackingRec> lst = ObjectMapper.Map<List<SplitPackingRecEditInput>, List<SplitPackingRec>>(inputs);
bool ret = await _splitPackingRecManager.BatchInsertAsync(lst).ConfigureAwait(false);
return ret;
}
/// <summary>
/// 取每个目标箱码的最后一条拆箱记录
/// </summary>
/// <param name="toPackingCodeList">目标箱码列表</param>
/// <returns></returns>
public async Task<List<SplitPackingRecDTO>> GetListByToPackingCode(List<string> toPackingCodeList)
{
var lst = await _splitPackingRecManager.GetListByToPackingCode(toPackingCodeList).ConfigureAwait(false);
List<SplitPackingRecDTO> ret = ObjectMapper.Map<List<SplitPackingRec>, List<SplitPackingRecDTO>>(lst);
return ret;
}
/// <summary>
/// 取每个源标箱码的“操作状态=其它”的拆箱记录
/// </summary>
/// <param name="fromPackingCodeList">源标箱码列表</param>
/// <returns></returns>
public async Task<List<SplitPackingRecDTO>> GetListByFromPackingCode(List<string> fromPackingCodeList)
{
var lst = await _splitPackingRecManager.GetListByFromPackingCode(fromPackingCodeList).ConfigureAwait(false);
List<SplitPackingRecDTO> ret = ObjectMapper.Map<List<SplitPackingRec>, List<SplitPackingRecDTO>>(lst);
return ret;
}
}

23
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAutoMapperProfile.cs

@ -0,0 +1,23 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
namespace Win_in.Sfs.Basedata.Application;
public partial class BasedataApplicationAutoMapperProfile : Profile
{
private void SplitPackingRecAutoMapperProfile()
{
CreateMap<SplitPackingRec, SplitPackingRecDTO>();
CreateMap<SplitPackingRecEditInput, SplitPackingRec>()
.Ignore(t => t.FromTopPackingCode)
.Ignore(t => t.ToTopPackingCode)
.Ignore(t => t.LastModificationTime)
.Ignore(t => t.LastModifierId)
.Ignore(t => t.CreationTime)
.Ignore(t => t.CreatorId)
.Ignore(t => t.ConcurrencyStamp)
.Ignore(t => t.Id);
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Shared/Commons/CommonHelper.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs

@ -5,7 +5,7 @@ using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace Win_in.Sfs.Wms.Store.Commons;
namespace Win_in.Sfs.Basedata.Domain.Shared;
public sealed class CommonHelper
{
/// <summary>

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Shared/Commons/ExtMethod.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/ExtMethod.cs

@ -5,7 +5,7 @@ using System.Linq;
using System.Reflection;
using System.Text;
namespace Win_in.Sfs.Wms.Store.Commons;
namespace Win_in.Sfs.Basedata.Domain.Shared;
public static class ExtMethod
{
#region string

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Shared/SplitPackings/NodeTypeEnum.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/SplitPackings/NodeTypeEnum.cs

@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
namespace Win_in.Sfs.Basedata.Domain.Shared;
public enum NodeTypeEnum
{
ToBox = 1,

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain.Shared/SplitPackings/OprTypeEnum.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/SplitPackings/OprTypeEnum.cs

@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
namespace Win_in.Sfs.Basedata.Domain.Shared;
public enum OprTypeEnum
{
/// <summary>

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Win_in.Sfs.Basedata.Domain.Shared.csproj

@ -9,6 +9,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Volo.Abp.Validation" Version="5.3.5" />
</ItemGroup>

20
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs

@ -193,4 +193,24 @@ public class BomManager : DomainService, IBomManager
{
return await _repository.GetListAsync(p => p.Component == component).ConfigureAwait(false);
}
/// <summary>
/// 根据总成号、总成数量取所有子物料及其汇总数量
/// </summary>
/// <param name="productCode">总成号</param>
/// <param name="productNum">总成数量</param>
/// <returns></returns>
public virtual async Task<List<Bom>> GetMaterialTotalQtyAsync(string productCode, int productNum)
{
if (productNum < 1)
{
throw new UserFriendlyException("productNum参数值必须大于等于1");
}
var lst = await _repository.GetListAsync(p => p.Product == productCode).ConfigureAwait(false);
foreach (var item in lst)
{
item.ComponentQty = item.ComponentQty * productNum;
}
return lst;
}
}

9
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/IBomManager.cs

@ -32,4 +32,13 @@ public interface IBomManager : IDomainService, IBulkImportService<Bom>
Task<List<Bom>> GetListOfProductAsync(string product);
Task<List<Bom>> GetListWithPhantomItemAsync(string productItemCode, string mfgOp, DateTime validTime, bool onlyFromProductionPlan);
/// <summary>
/// 根据总成号、总成数量取所有子物料及其汇总数量
/// </summary>
/// <param name="productCode">总成号</param>
/// <param name="productNum">总成数量</param>
/// <returns></returns>
Task<List<Bom>> GetMaterialTotalQtyAsync(string productCode, int productNum);
}

27
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Services;
namespace Win_in.Sfs.Basedata.Domain;
public interface ISplitPackingRecManager : IDomainService
{
Task<bool> BatchInsertAsync(List<SplitPackingRec> input);
/// <summary>
/// 取每个目标箱码的最后一条拆箱记录
/// </summary>
/// <param name="toPackingCodeList">目标箱码列表</param>
/// <returns></returns>
Task<List<SplitPackingRec>> GetListByToPackingCode(List<string> toPackingCodeList);
/// <summary>
/// 取每个源标箱码的“操作状态=其它”的拆箱记录
/// </summary>
/// <param name="fromPackingCodeList">源标箱码列表</param>
/// <returns></returns>
Task<List<SplitPackingRec>> GetListByFromPackingCode(List<string> fromPackingCodeList);
}

9
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecRepository.cs

@ -0,0 +1,9 @@
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Basedata.Domain;
public interface ISplitPackingRecRepository : ISfsBaseDataRepositoryBase<SplitPackingRec>
{
}

49
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRec.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRec.cs

@ -1,17 +1,16 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Win_in.Sfs.Label.Domain.Shared;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
namespace Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Basedata.Domain;
/// <summary>
/// 采购标签
/// </summary>
public class SplitPackingRec : SfsAggregateRootBase
public class SplitPackingRec : SfsBaseDataAggregateRootBase
, IHasItem
{
/// <summary>
@ -143,3 +142,45 @@ public class SplitPackingRec : SfsAggregateRootBase
public EnumLabelType LabelType { get; set; }
}
/// <summary>
/// 标签类别
/// </summary>
public enum EnumLabelType
{
/// <summary>
/// 空枚举
/// </summary>
[Display(Name = "未定义")]
None = 0,
/// <summary>
/// 采购标签
/// </summary>
[Display(Name = "采购标签")]
PurchaseLabel = 1,
/// <summary>
/// 生产标签
/// </summary>
[Display(Name = "生产标签")]
ProductionLabel = 2,
/// <summary>
/// 销售标签
/// </summary>
[Display(Name = "销售标签")]
SaleLabel = 3,
/// <summary>
/// 托盘标签
/// </summary>
[Display(Name = "托盘标签")]
PalletLabel = 4,
/// <summary>
/// 盘点标签
/// </summary>
[Display(Name = "盘点标签")]
CountLabel = 5,
}

56
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/SplitPackingRecManager.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs

@ -1,18 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.Domain.Services;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Label.Domain;
using Win_in.Sfs.Wms.Store.Commons;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared.SplitPackings;
using Win_in.Sfs.Basedata.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.SplitPackings;
namespace Win_in.Sfs.Basedata.Domain;
public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
{
private readonly ISplitPackingRecRepository _repository;
@ -102,6 +98,54 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
return true;
}
/// <summary>
/// 取每个目标箱码的最后一条拆箱记录
/// </summary>
/// <param name="toPackingCodeList">目标箱码列表</param>
/// <returns></returns>
public async Task<List<SplitPackingRec>> GetListByToPackingCode(List<string> toPackingCodeList)
{
List<SplitPackingRec> ret = new List<SplitPackingRec>();
List<SplitPackingRec> lst = await _repository.GetListAsync(
itm => toPackingCodeList.Contains(itm.ToPackingCode)
&& itm.OprType == OprTypeEnum.SplitBox).ConfigureAwait(false);
foreach (string toCode in toPackingCodeList)
{
var obj = lst.Where(itm => itm.ToPackingCode == toCode)
.OrderByDescending(itm => itm.CreationTime).FirstOrDefault();
if (obj != null)
{
ret.Add(obj);
}
}
return ret;
}
/// <summary>
/// 取每个源标箱码的“操作状态=其它”的拆箱记录
/// </summary>
/// <param name="fromPackingCodeList">源标箱码列表</param>
/// <returns></returns>
public async Task<List<SplitPackingRec>> GetListByFromPackingCode(List<string> fromPackingCodeList)
{
List<SplitPackingRec> ret = new List<SplitPackingRec>();
List<SplitPackingRec> lst = await _repository.GetListAsync(
itm => fromPackingCodeList.Contains(itm.FromPackingCode)
&& itm.OprType == OprTypeEnum.SplitBox).ConfigureAwait(false);
foreach (string fromCode in fromPackingCodeList)
{
var obj = lst.Where(itm => itm.FromPackingCode == fromCode && itm.OprType == OprTypeEnum.Other)
.OrderByDescending(itm => itm.CreationTime).FirstOrDefault();
if (obj != null)
{
ret.Add(obj);
}
}
return ret;
}
/// <summary>
/// 取顶级箱码
/// </summary>

3
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContext.cs

@ -56,6 +56,9 @@ public class BasedataDbContext : AbpDbContext<BasedataDbContext>, IBasedataDbCon
public DbSet<PositionCode> PositionCodes { get; set; }
public DbSet<Equipment> Equipments { get; set; }
public DbSet<SplitPackingRec> SplitPackingRecs { get; set; }
public BasedataDbContext(DbContextOptions<BasedataDbContext> options)
: base(options)
{

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContextModelCreatingExtensions.cs

@ -67,7 +67,7 @@ public static class BasedataDbContextModelCreatingExtensions
//设置decimal的默认小数位数
builder.ConfigurePrecisionOfDecimal();
builder.ConfigurePositionCode(options);
builder.ConfigureEquipmentArea(options);
builder.ConfigureSplitPackingRec(options);
builder.ConfigureKitting(options);
}

3
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataEntityFrameworkCoreModule.cs

@ -69,7 +69,8 @@ public class BasedataEntityFrameworkCoreModule : AbpModule
context.Services.AddTransient<IItemGuideBookRepository, ItemGuideBookEfCoreRepository>();
context.Services.AddTransient<IDocumentSettingRepository, DocumentSettingEfCoreRepository>();
context.Services.AddTransient<IEquipmentRepository, EquipmentEfCoreRepository>();
context.Services.AddTransient<IEquipmentAreaRepository, EquipmentAreaEfCoreRepository>();
context.Services.AddTransient<IEquipmentAreaRepository, EquipmentAreaEfCoreRepository>();
context.Services.AddTransient<ISplitPackingRecRepository, SplitPackingRecEfCoreRepository>();
context.Services.AddTransient<IKittingRepository, KittingEfCoreRepository>();
ConfigureEntity();
}

4
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/IBasedataDbContext.cs

@ -50,4 +50,8 @@ public interface IBasedataDbContext : IEfCoreDbContext
public DbSet<SupplierTimeWindow> SupplierTimeWindows { get; }
public DbSet<ErpLocation> ErpLocation { get; }
public DbSet<CustomerAddress> CustomerAddresses { get; }
public DbSet<SplitPackingRec> SplitPackingRecs { get; set; }
}

3605
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Migrations/20240223065132_base.Designer.cs

File diff suppressed because it is too large

1603
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Migrations/20240223065132_base.cs

File diff suppressed because it is too large

3603
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Migrations/BasedataDbContextModelSnapshot.cs

File diff suppressed because it is too large

3
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCode/PositionCodeDbContextModelCreatingExtensions.cs

@ -24,6 +24,9 @@ public static class PositionCodeDbContextModelCreatingExtensions
b.Property(q => q.LocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.PartCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.PartName).HasMaxLength(SfsPropertyConst.NameLength);
b.Property(q => q.LocationName).HasMaxLength(SfsPropertyConst.NameLength);
b.Property(q => q.Type).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
//Relations
//None

8
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs

@ -1,15 +1,13 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.Modeling;
using Win_in.Sfs.Label.Domain;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.EntityFrameworkCore;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore;
namespace Win_in.Sfs.Basedata.EntityFrameworkCore;
public static class SplitPackingRecDbContextModelCreatingExtensions
{
public static void ConfigureSplitPackingRec(this ModelBuilder builder, StoreModelBuilderConfigurationOptions options)
public static void ConfigureSplitPackingRec(this ModelBuilder builder, BasedataModelBuilderConfigurationOptions options)
{
builder.Entity<SplitPackingRec>(b =>
{

11
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecEfCoreRepository.cs

@ -0,0 +1,11 @@
using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Basedata.Domain;
namespace Win_in.Sfs.Basedata.EntityFrameworkCore;
public class SplitPackingRecEfCoreRepository : SfsBaseDataEfCoreRepositoryBase<BasedataDbContext, SplitPackingRec>, ISplitPackingRecRepository
{
public SplitPackingRecEfCoreRepository(IDbContextProvider<BasedataDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}

4
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Win_in.Sfs.Basedata.EntityFrameworkCore.csproj

@ -30,8 +30,4 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
</Project>

8
be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/IInventoryLabelAppService.cs

@ -20,4 +20,12 @@ public interface IInventoryLabelAppService
/// <param name="inputs"></param>
/// <returns></returns>
Task<List<InventoryLabelDto>> CreateManyByNoCodeAsync(List<InventoryLabelEditInput> inputs);
/// <summary>
/// Code需要自己生成 传入 否则无法赋值 完整条码
/// </summary>
/// <param name="inputs"></param>
/// <returns></returns>
Task<List<InventoryLabelDto>> CreateManyByNoCode_NewAsync(List<InventoryLabelEditInput> inputs);
}

57
be/Modules/Label/src/Win_in.Sfs.Label.Application/InventoryLabels/InventoryLabelAppService.cs

@ -12,6 +12,7 @@ using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Label.Application.Contracts;
using Win_in.Sfs.Label.Domain;
using Win_in.Sfs.Label.Domain.Shared;
@ -37,6 +38,8 @@ public class InventoryLabelAppService
private readonly ISupplierAppService _supplierAppService;
private readonly ISupplierItemAppService _supplierItemAppService;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly ISplitPackingRecAppService _splitPackingRecAppService;
public InventoryLabelAppService(
IInventoryLabelRepository repository, ILabelDefinitionManager labelDefinitionManager
@ -44,6 +47,7 @@ public class InventoryLabelAppService
, IItemPackAppService itemPackAppService
, ISupplierItemAppService supplierItemAppService
, IItemBasicAppService itemBasicAppService
, ISplitPackingRecAppService splitPackingRecAppService
) : base(repository)
{
_repository = repository;
@ -52,6 +56,7 @@ public class InventoryLabelAppService
_itemPackAppService = itemPackAppService;
_supplierItemAppService = supplierItemAppService;
_itemBasicAppService = itemBasicAppService;
_splitPackingRecAppService = splitPackingRecAppService;
}
[HttpPost("")]
@ -133,6 +138,58 @@ public class InventoryLabelAppService
return ObjectMapper.Map<List<InventoryLabel>, List<InventoryLabelDto>>(entitys);
}
/// <summary>
/// Code需要自己生成 传入 否则无法赋值 完整条码
/// </summary>
/// <param name="inputs"></param>
/// <returns></returns>
[HttpPost("create-many-no-code-new")]
[UnitOfWork]
public virtual async Task<List<InventoryLabelDto>> CreateManyByNoCode_NewAsync(List<InventoryLabelEditInput> inputs)
{
#region 插入拆箱记录表
foreach (var inputObj in inputs)
{
List<SplitPackingRecEditInput> recLst = new List<SplitPackingRecEditInput>();
SplitPackingRecEditInput packRec = new SplitPackingRecEditInput();
packRec.OprType = OprTypeEnum.Other;
packRec.FromPackingCode = inputObj.Code;
//packRec.FromTopPackingCode = inventoryLabelObj.Code;
packRec.FromStdPackQty = inputObj.StdPackQty;
packRec.FromUom = inputObj.Uom;
packRec.FromQty = inputObj.Qty;
packRec.ToPackingCode = inputObj.Code;
//packRec.ToTopPackingCode = inventoryLabelObj.Code;
packRec.ToStdPackQty = inputObj.StdPackQty;
packRec.ToUom = inputObj.Uom;
packRec.ToQty = inputObj.Qty;
packRec.ItemCode = inputObj.ItemCode;
packRec.ItemName = inputObj.ItemName;
packRec.ItemDesc1 = inputObj.ItemDesc1;
packRec.ItemDesc2 = inputObj.ItemDesc2;
packRec.FromLot = inputObj.Lot;
packRec.ToLot = inputObj.Lot;
packRec.PurchaseInfo_PoNumber = inputObj.PoNumber; // 采购订单
packRec.PurchaseInfo_AsnNumber = inputObj.AsnNumber; //供应商发货单
packRec.ArrivalNoticNumber = null; //到货通知
packRec.TaskOrderNumber = null; //任务单
packRec.ReceiptRecNumber = null; //收货记录单
packRec.PutOnShelfNumber = null; //上架单
recLst.Add(packRec);
bool bo = await _splitPackingRecAppService.BatchInsertAsync(recLst).ConfigureAwait(false);
if (bo == false)
{
throw new UserFriendlyException("调用插入拆箱记录表方法时返回假!");
}
}
#endregion
var entitys = ObjectMapper.Map<List<InventoryLabelEditInput>, List<InventoryLabel>>(inputs);
await _repository.InsertManyAsync(entitys).ConfigureAwait(false);
return ObjectMapper.Map<List<InventoryLabel>, List<InventoryLabelDto>>(entitys);
}
[HttpPost("generate-and-create")]
[UnitOfWork]
public virtual async Task<InventoryLabelDto> GenerateAndCreateAsync(InventoryLabelWithoutCodeCreateInput input)

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ItemTransformNotes/Inputs/ItemTransformNoteEditInput.cs

@ -33,5 +33,10 @@ public class ItemTransformNoteEditInput : SfsStoreCreateOrUpdateInputBase
/// </summary>
[Display(Name = "明细列表")]
public List<ItemTransformNoteDetailInput> Details { get; set; } = new List<ItemTransformNoteDetailInput>();
/// <summary>
/// 混拌料入库数据
/// </summary>
public List<RecycledMaterialReceiptNoteDetailInput> RecDetails { get; set; } = new List<RecycledMaterialReceiptNoteDetailInput>();
#endregion
}

13
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/PurchaseReceiptNotes/DTOs/PurchaseReceiptNoteDetailDTO.cs

@ -57,3 +57,16 @@ public class PurchaseReceiptNoteDetailDTO : SfsStoreRecommendToDetailWithLotPack
public decimal SupplierPackQty { get; set; }
}
public class PurchaseReceiptNoteDetail_ExtDTO : PurchaseReceiptNoteDetailDTO
{
/// <summary>
/// 拆箱的源箱码
/// </summary>
public string FromPackingCode { get; set; }
/// <summary>
/// 拆箱的目标箱码
/// </summary>
public string ToPackingCode { get; set; }
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/PurchaseReceiptNotes/IPurchaseReceiptNoteAppService.cs

@ -32,7 +32,7 @@ public interface IPurchaseReceiptNoteAppService :
/// 获取详情 不合格
/// </summary>
/// <returns></returns>
Task<List<PurchaseReceiptNoteDetailDTO>> GetDetailListByNoOkAsync(Guid id);
Task<List<PurchaseReceiptNoteDetail_ExtDTO>> GetDetailListByNoOkAsync(Guid id);
/// <summary>
/// 获取详情 未收货

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/RecycledMaterialReceiptNotes/IRecycledMaterialReceiptNoteAppService.cs

@ -6,4 +6,5 @@ public interface IRecycledMaterialReceiptNoteAppService
: ISfsStoreMasterReadOnlyAppServiceBase<RecycledMaterialReceiptNoteDTO, SfsStoreRequestInputBase, RecycledMaterialReceiptNoteDetailDTO, SfsStoreRequestInputBase>
{
Task<RecycledMaterialReceiptNoteDTO> CreateAsync(RecycledMaterialReceiptNoteEditInput input);
Task<RecycledMaterialReceiptNoteDTO> NewCreateAsync(RecycledMaterialReceiptNoteEditInput input);
}

17
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs

@ -1,17 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.SplitPackings;
public interface ISplitPackingRecAppService
: ISfsStoreAppServiceBase<SplitPackingRecDTO, SfsBaseDataRequestInputBase, SplitPackingRecEditInput>
{
Task<bool> BatchInsertAsync(List<SplitPackingRecEditInput> inputs);
}

19
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/ItemTransformNotes/ItemTransformNoteAppService.cs

@ -20,13 +20,16 @@ public class ItemTransformNoteAppService :
{
private readonly IItemTransformNoteManager _ItemTransformNoteManager;
private readonly ILocationCapacityAppService _locationCapacityAppService;
private readonly IRecycledMaterialReceiptNoteAppService _recycledMaterialReceiptNoteAppService;
public ItemTransformNoteAppService(IItemTransformNoteRepository repository,
IItemTransformNoteManager ItemTransformNoteManager,
ILocationCapacityAppService locationCapacityAppService) : base(repository)
ILocationCapacityAppService locationCapacityAppService,
IRecycledMaterialReceiptNoteAppService recycledMaterialReceiptNoteAppService) : base(repository)
{
_ItemTransformNoteManager = ItemTransformNoteManager;
_locationCapacityAppService = locationCapacityAppService;
_recycledMaterialReceiptNoteAppService = recycledMaterialReceiptNoteAppService;
}
[HttpPost("")]
@ -41,4 +44,18 @@ public class ItemTransformNoteAppService :
return dto;
}
[HttpPost("new-create")]
//[Authorize(ItemTransformNotePermissions.Create)]
public async Task<ItemTransformNoteDTO> NewCreateAsync(ItemTransformNoteEditInput input)
{
var entity = ObjectMapper.Map<ItemTransformNoteEditInput, ItemTransformNote>(input);
await _ItemTransformNoteManager.CreateAsync(entity).ConfigureAwait(false);
var recInput = ObjectMapper.Map<ItemTransformNoteEditInput, RecycledMaterialReceiptNoteEditInput>(input);
await _recycledMaterialReceiptNoteAppService.NewCreateAsync(recInput).ConfigureAwait(false);
var dto = ObjectMapper.Map<ItemTransformNote, ItemTransformNoteDTO>(entity);
return dto;
}
}

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/ItemTransformNotes/ItemTransformNoteAutoMapperProfile.cs

@ -30,7 +30,12 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.Number)
.Ignore(x => x.Id)
.Ignore(x=>x.ExtraProperties)
.Ignore(x => x.Remark)
;
.Ignore(x => x.Remark);
CreateMap<ItemTransformNoteEditInput, RecycledMaterialReceiptNoteEditInput>()
.ForMember(x => x.Details, y => y.MapFrom(d => d.RecDetails))
.Ignore(x => x.TenantId)
.Ignore(x => x.Number)
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.Remark);
}
}

31
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs

@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
@ -21,13 +22,16 @@ public class PurchaseReceiptNoteAppService :
IPurchaseReceiptNoteAppService
{
private readonly IPurchaseReceiptNoteManager _purchaseReceiptNoteManager;
private readonly ISplitPackingRecAppService _splitPackingRecAppService;
public PurchaseReceiptNoteAppService(
IPurchaseReceiptNoteRepository repository
, IPurchaseReceiptNoteManager purchaseReceiptNoteManager
, ISplitPackingRecAppService splitPackingRecAppService
) : base(repository)
{
_purchaseReceiptNoteManager = purchaseReceiptNoteManager;
_splitPackingRecAppService = splitPackingRecAppService;
}
[HttpPost("get-list-by-po/{poNumber}")]
@ -74,11 +78,34 @@ public class PurchaseReceiptNoteAppService :
/// </summary>
/// <returns></returns>
[HttpGet("detail-no-ok/{id}")]
public virtual async Task<List<PurchaseReceiptNoteDetailDTO>> GetDetailListByNoOkAsync(Guid id)
public virtual async Task<List<PurchaseReceiptNoteDetail_ExtDTO>> GetDetailListByNoOkAsync(Guid id)
{
var entity = await _repository.FindAsync(p => p.Id == id).ConfigureAwait(false);
return ObjectMapper.Map<List<PurchaseReceiptNoteDetail>, List<PurchaseReceiptNoteDetailDTO>>(entity.Details
var lst = ObjectMapper.Map<List<PurchaseReceiptNoteDetail>, List<PurchaseReceiptNoteDetail_ExtDTO>>(entity.Details
.Where(p => p.PurchaseReceiptInspectStatus == EnumPurchaseReceiptInspect.NOK).ToList());
if (lst.Count == 0)
{
return lst;
}
#region 从拆箱记录表中取源箱码、目标箱码赋值给结果列表
List<string> strLst = lst.Select(itm => itm.PackingCode).Distinct().ToList();
List<SplitPackingRecDTO> splitPackingRecLst = await _splitPackingRecAppService.GetListByToPackingCode(strLst).ConfigureAwait(false);
foreach (var item in lst)
{
var obj = splitPackingRecLst.FirstOrDefault(itm => itm.FromPackingCode == item.PackingCode);
if (obj != null)
{
item.FromPackingCode = obj.FromPackingCode;
item.ToPackingCode = obj.ToPackingCode;
}
}
#endregion
return lst;
}
/// <summary>

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAutoMapperProfile.cs

@ -16,6 +16,12 @@ public partial class StoreApplicationAutoMapperProfile : Profile
CreateMap<PurchaseReceiptNoteDetail, PurchaseReceiptNoteDetailDTO>()
.ReverseMap();
CreateMap<PurchaseReceiptNoteDetail, PurchaseReceiptNoteDetail_ExtDTO>()
.Ignore(x => x.FromPackingCode)
.Ignore(x => x.ToPackingCode)
.ReverseMap();
CreateMap<PurchaseReceiptNoteDetailInput, PurchaseReceiptNoteDetail>()
.IgnoreAuditedObjectProperties()
.Ignore(x => x.MasterID)

34
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/RecycledMaterialReceiptNotes/RecycledMaterialReceiptNoteAppService.cs

@ -78,4 +78,38 @@ public class RecycledMaterialReceiptNoteAppService :
return ObjectMapper.Map<RecycledMaterialReceiptNote, RecycledMaterialReceiptNoteDTO>(entity);
}
/// <summary>
/// 新增实体
/// </summary>
/// <param name="input">CreateInput</param>
[HttpPost("new-create")]
public async Task<RecycledMaterialReceiptNoteDTO> NewCreateAsync(RecycledMaterialReceiptNoteEditInput input)
{
var entity = ObjectMapper.Map<RecycledMaterialReceiptNoteEditInput, RecycledMaterialReceiptNote>(input);
entity.Number = string.IsNullOrEmpty(input.Number)
? await GenerateNumberAsync(nameof(RecycledMaterialReceiptNote), input.ActiveDate)
.ConfigureAwait(false)
: input.Number;
entity.SetId(GuidGenerator.Create());
foreach (var detail in entity.Details)
{
var detailNumber = await GenerateNumberAsync(nameof(RecycledMaterialReceiptNote), input.ActiveDate)
.ConfigureAwait(false);
detail.SetIdAndNumber(GuidGenerator, entity.Id, detailNumber);
var locationDto = await _locationAppService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false);
detail.LocationErpCode = locationDto.ErpLocationCode;
detail.LocationArea = locationDto.AreaCode;
detail.LocationGroup = locationDto.LocationGroupCode;
detail.WarehouseCode = locationDto.WarehouseCode;
var itemBasicDto = await _itemBasicAppService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false);
detail.StdPackQty = itemBasicDto.StdPackQty;
detail.Uom = itemBasicDto.BasicUom;
}
entity = await _repository.InsertAsync(entity).ConfigureAwait(false);
return ObjectMapper.Map<RecycledMaterialReceiptNote, RecycledMaterialReceiptNoteDTO>(entity);
}
}

16
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs

@ -9,13 +9,13 @@ using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain.Shared;
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;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
using Win_in.Sfs.Wms.Store.SplitPackings;
namespace Win_in.Sfs.Wms.Store.Application;
@ -32,19 +32,19 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase
private readonly ITransferNoteManager _transferNoteManager;
private readonly IBalanceAppService _balanceAppService;
private readonly ILocationAppService _locationAppService;
private readonly ISplitPackingRecManager _splitPackingRecManager;
private readonly ISplitPackingRecAppService _splitPackingRecAppService;
public TransferNoteAppService(
ITransferNoteRepository repository,
ITransferNoteManager transferNoteManager,
IBalanceAppService balanceAppService,
ILocationAppService locationAppService,
ISplitPackingRecManager splitPackingRecManager) : base(repository)
ISplitPackingRecAppService splitPackingRecAppService) : base(repository)
{
_transferNoteManager = transferNoteManager;
_balanceAppService = balanceAppService;
_locationAppService = locationAppService;
_splitPackingRecManager = splitPackingRecManager;
_splitPackingRecAppService = splitPackingRecAppService;
}
#region 东阳使用
@ -128,9 +128,9 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase
//插入拆箱记录表
foreach (var inputDetail in transferNoteEditInput.Details)
{
List<SplitPackingRec> recLst = new List<SplitPackingRec>();
SplitPackingRec packRec = new SplitPackingRec();
packRec.OprType = Domain.Shared.SplitPackings.OprTypeEnum.SplitBox;
List<SplitPackingRecEditInput> recLst = new List<SplitPackingRecEditInput>();
SplitPackingRecEditInput packRec = new SplitPackingRecEditInput();
packRec.OprType = OprTypeEnum.SplitBox;
packRec.FromPackingCode = inputDetail.FromPackingCode;
//packRec.FromTopPackingCode = inputDetail.;
packRec.FromStdPackQty = inputDetail.StdPackQty;
@ -154,7 +154,7 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase
//packRec.ReceiptRecNumber = inputDetail.; //收货记录单
//packRec.PutOnShelfNumber = inputDetail.; //上架单
recLst.Add(packRec);
await _splitPackingRecManager.BatchInsertAsync(recLst).ConfigureAwait(false);
await _splitPackingRecAppService.BatchInsertAsync(recLst).ConfigureAwait(false);
}
//更新库存
transferNoteEditInput.Type = EnumTransSubType.Transfer_SplitPacking.ToString();

42
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAppService.cs

@ -1,42 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Components;
using Win_in.Sfs.Wms.Store.Application;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
using Win_in.Sfs.Wms.Store.SplitPackings.Inputs;
namespace Win_in.Sfs.Wms.Store.SplitPackings;
/// <summary>
/// 拆箱记录
/// </summary>
//[Authorize]
[Route($"{StoreConsts.RootPath}split-packing-rec")]
public class SplitPackingRecAppService :
SfsStoreAppServiceBase<SplitPackingRec, SplitPackingRecDTO, SfsStoreRequestInputBase, SplitPackingRecEditInput
, SplitPackingRecImportInput>
//, ISplitPackingRecAppService
{
private readonly ISplitPackingRecManager _splitPackingRecManager;
public SplitPackingRecAppService(
ISplitPackingRecRepository repository,
ISplitPackingRecManager splitPackingRecManager
) : base(repository)
{
_splitPackingRecManager = splitPackingRecManager;
}
public async Task<bool> BatchInsertAsync(List<SplitPackingRecEditInput> inputs)
{
List<SplitPackingRec> lst = ObjectMapper.Map<List<SplitPackingRecEditInput>, List<SplitPackingRec>>(inputs);
bool ret = await _splitPackingRecManager.BatchInsertAsync(lst).ConfigureAwait(false);
return ret;
}
}

17
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/SplitPackings/SplitPackingRecAutoMapperProfile.cs

@ -1,17 +0,0 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.SplitPackings;
namespace Win_in.Sfs.Wms.Store.Application;
public partial class StoreApplicationAutoMapperProfile : Profile
{
private void SplitPackingRecAutoMapperProfile()
{
CreateMap<SplitPackingRec, SplitPackingRecDTO>();
CreateMap<SplitPackingRecEditInput, SplitPackingRec>();
}
}

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs

@ -104,7 +104,6 @@ public partial class StoreApplicationAutoMapperProfile : Profile
#endregion
ExchangeDataAutoMapperProfile();
SplitPackingRecAutoMapperProfile();
}
}

13
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/ISplitPackingRecManager.cs

@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Services;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.SplitPackings;
public interface ISplitPackingRecManager : IDomainService
{
Task<bool> BatchInsertAsync(List<SplitPackingRec> input);
}

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/SplitPackings/ISplitPackingRecRepository.cs

@ -1,9 +0,0 @@
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Domain;
public interface ISplitPackingRecRepository : ISfsStoreRepositoryBase<SplitPackingRec>
{
}

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Win_in.Sfs.Wms.Store.Domain.csproj

@ -29,9 +29,6 @@
<ProjectReference Include="..\..\..\..\Hosts\Auth.Host\src\Win_in.Sfs.Auth.Application.Contracts\Win_in.Sfs.Auth.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\BaseData\src\Win_in.Sfs.Basedata.Application.Contracts\Win_in.Sfs.Basedata.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\FileStorage\src\Win_in.Sfs.FileStorage.Application.Contracts\Win_in.Sfs.FileStorage.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\Label\src\Win_in.Sfs.Label.Application.Contracts\Win_in.Sfs.Label.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\Label\src\Win_in.Sfs.Label.Domain.Shared\Win_in.Sfs.Label.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\Label\src\Win_in.Sfs.Label.Domain\Win_in.Sfs.Label.Domain.csproj" />
<ProjectReference Include="..\..\..\Shared\src\Win_in.Sfs.Shared.Domain\Win_in.Sfs.Shared.Domain.csproj" />
<ProjectReference Include="..\..\..\Shared\src\Win_in.Sfs.Shared.Event\Win_in.Sfs.Shared.Event.csproj" />
<ProjectReference Include="..\..\..\Shared\src\Win_in.Sfs.Shared.Framework\Win_in.Sfs.Shared.Framework.csproj" />

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/IStoreDbContext.cs

@ -105,7 +105,4 @@ public interface IStoreDbContext : IEfCoreDbContext
#endregion
public DbSet<ExchangeData> ExchangeDatas { get; }
public DbSet<SplitPackingRec> SplitPackingRecs { get; }
}

12
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/SplitPackings/SplitPackingRecEfCoreRepository.cs

@ -1,12 +0,0 @@
using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Label.Domain;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore;
public class SplitPackingRecEfCoreRepository : SfsStoreEfCoreRepositoryBase<StoreDbContext, SplitPackingRec>, ISplitPackingRecRepository
{
public SplitPackingRecEfCoreRepository(IDbContextProvider<StoreDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContext.cs

@ -105,8 +105,6 @@ public class StoreDbContext : AbpDbContext<StoreDbContext>, IStoreDbContext
public DbSet<ExchangeData> ExchangeDatas { get; set; }
public DbSet<SplitPackingRec> SplitPackingRecs { get; set; }
public StoreDbContext(DbContextOptions<StoreDbContext> options)
: base(options)
{

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContextModelCreatingExtensions.cs

@ -122,10 +122,6 @@ public static class StoreDbContextModelCreatingExtensions
//设置decimal的默认小数位数
builder.ConfigurePrecisionOfDecimal();
builder.ConfigureSplitPackingRec(options);
}
}

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs

@ -124,7 +124,6 @@ public class StoreEntityFrameworkCoreModule : AbpModule
#endregion
context.Services.AddTransient<IExchangeDataRepository, ExchangeDataEfCoreRepository>();
context.Services.AddTransient<ISplitPackingRecRepository, SplitPackingRecEfCoreRepository>();
}

161
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/ItemTransformNoteEventHandler.cs

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.EventBus;
using Volo.Abp.Uow;
@ -28,10 +29,11 @@ public class ItemTransformNoteEventHandler
private async Task AddTransactionsAsync(ItemTransformNote note)
{
var inboundTransactions = new List<TransactionEditInput>();
inboundTransactions.AddRange(BuildTransactions(note));
var noTransactions = new List<TransactionEditInput>();
inboundTransactions.AddRange(NewBuildTransactions(note));//原料+混拌料
noTransactions.AddRange(BuildNoTransactions(note));//粉碎料
await TransactionAppService.AddManyAsync(inboundTransactions).ConfigureAwait(false);
await TransactionAppService.AddManyEmptyAsync(noTransactions).ConfigureAwait(false);
}
@ -46,14 +48,16 @@ public class ItemTransformNoteEventHandler
{
var inboundTransactions = new List<TransactionEditInput>();
var noTransactions = new List<TransactionEditInput>();
//如果要做库存事务汇总,可以修改此处
foreach (var note in notes)
{
inboundTransactions.AddRange(BuildTransactions(note));
inboundTransactions.AddRange(NewBuildTransactions(note));//原料+混拌料
noTransactions.AddRange(BuildNoTransactions(note));//粉碎料
}
await TransactionAppService.AddManyAsync(inboundTransactions).ConfigureAwait(false);
await TransactionAppService.AddManyEmptyAsync(noTransactions).ConfigureAwait(false);
}
private static List<TransactionEditInput> BuildTransactions(ItemTransformNote note)
@ -131,4 +135,151 @@ public class ItemTransformNoteEventHandler
return transactions;
}
/// <summary>
/// 新回收料库存方法
/// </summary>
/// <param name="note"></param>
/// <returns></returns>
private static List<TransactionEditInput> NewBuildTransactions(ItemTransformNote note)
{
var transactions = new List<TransactionEditInput>();
//根据调整记录,构造库存转移记录(只添加原料得)
foreach (var detail in note.Details.Where(r => r.Remark == "原料"))
{
var transactionOut = new TransactionEditInput()
{
Worker = note.Worker,
JobNumber = note.JobNumber,
DocNumber = note.Number,
TransType = Type,
TransSubType = SubType,
TransInOut = EnumTransInOut.Out,
LocationArea = detail.FromLocationArea,
LocationGroup = detail.FromLocationGroup,
LocationErpCode = detail.FromLocationErpCode,
PackingCode = detail.FromPackingCode,
ItemCode = detail.ItemCode,
Lot = detail.FromLot,
Status = detail.FromStatus,
WarehouseCode = detail.FromWarehouseCode,
LocationCode = detail.FromLocationCode,
ContainerCode = detail.FromContainerCode,
SupplierBatch = detail.FromSupplierBatch,
ArriveDate = detail.FromArriveDate,
ProduceDate = detail.FromProduceDate,
ExpireDate = detail.FromExpireDate,
ItemName = detail.ItemName,
ItemDesc1 = detail.ItemDesc1,
ItemDesc2 = detail.ItemDesc2,
Uom = detail.Uom,
Qty = -detail.FromQty,
};
transactions.Add(transactionOut);
}
//混拌料添加事务
var detailfirst = note.Details.First(r => r.Remark == "原料");
var transactionIn = new TransactionEditInput()
{
Worker = note.Worker,
JobNumber = note.JobNumber,
DocNumber = note.Number,
TransType = Type,
TransSubType = SubType,
TransInOut = EnumTransInOut.In,
PackingCode = detailfirst.ToPackingCode,
ItemCode = detailfirst.ToItemCode,
Lot = detailfirst.ToLot,
Status = detailfirst.ToStatus,
LocationArea = detailfirst.ToLocationArea,
LocationGroup = detailfirst.ToLocationGroup,
LocationErpCode = detailfirst.ToLocationErpCode,
WarehouseCode = detailfirst.ToWarehouseCode,
LocationCode = detailfirst.ToLocationCode,
ContainerCode = detailfirst.ToContainerCode,
SupplierBatch = detailfirst.ToSupplierBatch,
ArriveDate = detailfirst.ToArriveDate,
ProduceDate = detailfirst.ToProduceDate,
ExpireDate = detailfirst.ToExpireDate,
ItemName = detailfirst.ItemName,
ItemDesc1 = detailfirst.ItemDesc1,
ItemDesc2 = detailfirst.ItemDesc2,
Uom = detailfirst.Uom,
Qty = detailfirst.ToQty,
};
transactions.Add(transactionIn);
return transactions;
}
private static List<TransactionEditInput> BuildNoTransactions(ItemTransformNote note)
{
var transactions = new List<TransactionEditInput>();
//根据调整记录,构造库存转移记录(只添加原料得)
foreach (var detail in note.Details.Where(r => r.Remark != "原料"))
{
var transactionOut = new TransactionEditInput()
{
Worker = note.Worker,
JobNumber = note.JobNumber,
DocNumber = note.Number,
TransType = Type,
TransSubType = SubType,
TransInOut = EnumTransInOut.Out,
LocationArea = detail.FromLocationArea,
LocationGroup = detail.FromLocationGroup,
LocationErpCode = detail.FromLocationErpCode,
PackingCode = detail.FromPackingCode,
ItemCode = detail.ItemCode,
Lot = detail.FromLot,
Status = detail.FromStatus,
WarehouseCode = detail.FromWarehouseCode,
LocationCode = detail.FromLocationCode,
ContainerCode = detail.FromContainerCode,
SupplierBatch = detail.FromSupplierBatch,
ArriveDate = detail.FromArriveDate,
ProduceDate = detail.FromProduceDate,
ExpireDate = detail.FromExpireDate,
ItemName = detail.ItemName,
ItemDesc1 = detail.ItemDesc1,
ItemDesc2 = detail.ItemDesc2,
Uom = detail.Uom,
Qty = -detail.FromQty,
};
transactions.Add(transactionOut);
var transactionIn = new TransactionEditInput()
{
Worker = note.Worker,
JobNumber = note.JobNumber,
DocNumber = note.Number,
TransType = Type,
TransSubType = SubType,
TransInOut = EnumTransInOut.In,
LocationArea = detail.FromLocationArea,
LocationGroup = detail.FromLocationGroup,
LocationErpCode = detail.FromLocationErpCode,
PackingCode = detail.FromPackingCode,
ItemCode = detail.ItemCode,
Lot = detail.FromLot,
Status = detail.FromStatus,
WarehouseCode = detail.FromWarehouseCode,
LocationCode = detail.FromLocationCode,
ContainerCode = detail.FromContainerCode,
SupplierBatch = detail.FromSupplierBatch,
ArriveDate = detail.FromArriveDate,
ProduceDate = detail.FromProduceDate,
ExpireDate = detail.FromExpireDate,
ItemName = detail.ItemName,
ItemDesc1 = detail.ItemDesc1,
ItemDesc2 = detail.ItemDesc2,
Uom = detail.Uom,
Qty = detail.FromQty,
};
transactions.Add(transactionIn);
}
return transactions;
}
}

36
build/src/docker/publish/conf/settings/appsettings.Development.json

@ -74,24 +74,24 @@
// "Store": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;"
// },
"ConnectionStrings": {
"AbpAuditLogging": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBackgroundJobs": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBlobStoring": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpFeatureManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentity": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentityServer": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpPermissionManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpSettingManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpTenantManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Auth": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Basedata": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"FileStorage": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Inventory": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Job": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Label": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Message": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Store": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;"
"AbpAuditLogging": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBackgroundJobs": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBlobStoring": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpFeatureManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentity": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentityServer": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpPermissionManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpSettingManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpTenantManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Auth": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Basedata": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"FileStorage": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Inventory": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Job": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Label": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Message": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Store": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;"
},
"IdentityClients": {
"Default": {

Loading…
Cancel
Save