Browse Source

更新

dev_DY_CC
赵新宇 1 year ago
parent
commit
0b137d4215
  1. 9
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs
  2. 20
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
  3. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs
  4. 78
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs
  5. 8
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs
  6. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs
  7. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/IChassisAppService.cs
  8. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceDTO.cs
  9. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs
  10. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceEditInput.cs
  11. 11
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceImportInput.cs
  12. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDTO.cs
  13. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDependentDetailDTO.cs
  14. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDetailDTO.cs
  15. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobDetailInput.cs
  16. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobEditInput.cs
  17. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/JisProductReceiptNotes/IJisProductReceiptNoteAppService.cs
  18. 24
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteChassisDetailDTO.cs
  19. 23
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs
  20. 44
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs
  21. 10
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/IKittingPackagingNoteAppService.cs
  22. 27
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteChassisDetailInput.cs
  23. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCheckInput.cs
  24. 29
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs
  25. 44
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs
  26. 26
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs
  27. 24
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs
  28. 21
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/KittingPackagingNotePermissions.cs
  29. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs
  30. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/DTOs/CountPlanDTO.cs
  31. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanCreateRequestInput.cs
  32. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanEditInput.cs
  33. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanImportInput.cs
  34. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/IInjectionIssueRequestAppService.cs
  35. 41
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Chassis/ChassisAppService.cs
  36. 36
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs
  37. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs
  38. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs
  39. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/IssueNotes/InjectionIssueNotes/InjectionIssueNoteAppService.cs
  40. 11
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/JisProductReceiptNotes/JisProductReceiptNoteAppService.cs
  41. 44
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs
  42. 15
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAutoMapperProfile.cs
  43. 38
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
  44. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/ChassisOperationSequence/ChassisOperationSequence.cs
  45. 40
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs
  46. 11
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteManager.cs
  47. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteRepository.cs
  48. 27
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs
  49. 19
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs
  50. 42
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
  51. 26
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteManager.cs
  52. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/IStoreDbContext.cs
  53. 31896
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.Designer.cs
  54. 958
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.cs
  55. 32112
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422032715_Added_KittingPackagingNoteV2.Designer.cs
  56. 137
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422032715_Added_KittingPackagingNoteV2.cs
  57. 1979
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/StoreDbContextModelSnapshot.cs
  58. 61
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs
  59. 11
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteEfCoreRepository.cs
  60. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContext.cs
  61. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContextModelCreatingExtensions.cs
  62. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs
  63. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Plans/CountPlanAutoMapperProfile.cs
  64. 61
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs

9
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs

@ -68,11 +68,13 @@ public class CountJobController : AbpController
/// </summary> /// </summary>
/// <param name="pageSize"></param> /// <param name="pageSize"></param>
/// <param name="pageIndex"></param> /// <param name="pageIndex"></param>
/// <param name="inventoryMode">1为有箱码2无箱码</param>
/// <returns></returns> /// <returns></returns>
[HttpGet("list")] [HttpGet("list")]
public virtual async Task<PagedResultDto<CountJobDTO>> GetListAsync(int pageSize, int pageIndex) public virtual async Task<PagedResultDto<CountJobDTO>> GetListAsync(int pageSize, int pageIndex,string inventoryMode)
{ {
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false); EnumInventoryMode mode = (EnumInventoryMode)Enum.Parse(typeof(EnumInventoryMode), inventoryMode);
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes); var jsonCodes = JsonSerializer.Serialize(wlgCodes);
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing }; var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
@ -88,7 +90,8 @@ public class CountJobController : AbpController
Filters = new List<Filter> Filters = new List<Filter>
{ {
new(nameof(CountJobDTO.WorkGroupCode),jsonCodes,"In"), new(nameof(CountJobDTO.WorkGroupCode),jsonCodes,"In"),
new(nameof(CountJobDTO.JobStatus),jsonStatus,"In") new(nameof(CountJobDTO.JobStatus),jsonStatus,"In"),
new(nameof(CountJobDTO.InventoryMode),mode.ToString())
} }
} }
}; };

20
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs

@ -1,6 +1,8 @@
using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.Stores; namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
@ -30,9 +32,10 @@ public class InjectionIssueRequestController : AbpController
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost("")] [HttpPost("")]
public virtual async Task CreateAsync(InjectionIssueRequestEditInput input) public virtual async Task<ActionResult<InjectionIssueRequestDTO>> CreateAsync(InjectionIssueRequestEditInput input)
{ {
_ = await _injectionRequestAppService.CreateAsync(input).ConfigureAwait(false); var result = await _injectionRequestAppService.CreateAsync(input).ConfigureAwait(false);
return Ok(result);
} }
/// <summary> /// <summary>
@ -48,4 +51,17 @@ public class InjectionIssueRequestController : AbpController
return Ok(result); return Ok(result);
} }
/// <summary>
/// 获取物品类别列表
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
[HttpGet("list/item-category")]
public virtual async Task<List<ItemBasicDTO>> GetItemCategoryListAsync()
{
var entities = await _injectionRequestAppService.GetItemCategoryListAsync().ConfigureAwait(false);
return entities;
}
} }

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs

@ -17,6 +17,7 @@ public interface IItemBasicAppService
void CheckItemIsAvailable(ItemBasicDTO itemBasicDTO); void CheckItemIsAvailable(ItemBasicDTO itemBasicDTO);
Task<List<ItemBasicDTO>> GetListByNameAsync(string name); Task<List<ItemBasicDTO>> GetListByNameAsync(string name);
Task<List<ItemBasicDTO>> GetCategoryListAsync();
Task<ItemBasicDTO> GetOrAddAsync(ItemBasicEditInput input); Task<ItemBasicDTO> GetOrAddAsync(ItemBasicEditInput input);

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

@ -2,10 +2,8 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks; using System.Threading.Tasks;
using DocumentFormat.OpenXml.Spreadsheet;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Repositories;
using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Application.Contracts;
@ -27,13 +25,13 @@ public class BomAppService :
private new readonly IBomRepository _repository; private new readonly IBomRepository _repository;
private readonly IBomManager _bomManager; private readonly IBomManager _bomManager;
private List<BomComponent> _bomList = new();
public BomAppService(IBomRepository repository public BomAppService(IBomRepository repository
, IBomManager bomManager , IBomManager bomManager
, IDistributedCache<BomDTO> cache , IDistributedCache<BomDTO> cache
) : base(repository, cache)
) : base(repository, cache)
{ {
_repository = repository; _repository = repository;
_bomManager = bomManager; _bomManager = bomManager;
@ -50,7 +48,7 @@ public class BomAppService :
public virtual async Task<List<BomDTO>> GetListAsync(string productItemCode, string mfgOp) public virtual async Task<List<BomDTO>> GetListAsync(string productItemCode, string mfgOp)
{ {
var entities = await _repository.GetListAsync(p => p.Product == productItemCode var entities = await _repository.GetListAsync(p => p.Product == productItemCode
// && p.MFGOp == mfgOp // && p.MFGOp == mfgOp
).ConfigureAwait(false); ).ConfigureAwait(false);
return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities); return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities);
} }
@ -58,7 +56,8 @@ public class BomAppService :
[HttpGet("list/for-preparation-plan")] [HttpGet("list/for-preparation-plan")]
public virtual async Task<List<BomDTO>> GetPlanListAsync(string productItemCode, string mfgOp) public virtual async Task<List<BomDTO>> GetPlanListAsync(string productItemCode, string mfgOp)
{ {
var entities = await _bomManager.GetListWithPhantomItemAsync(productItemCode, mfgOp, Clock.Now, true).ConfigureAwait(false); var entities = await _bomManager.GetListWithPhantomItemAsync(productItemCode, mfgOp, Clock.Now, true)
.ConfigureAwait(false);
return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities); return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities);
} }
@ -66,20 +65,23 @@ public class BomAppService :
[HttpGet("list/for-backflush")] [HttpGet("list/for-backflush")]
public virtual async Task<List<BomDTO>> GetBackFlushListAsync(string productItemCode, string mfgOp) public virtual async Task<List<BomDTO>> GetBackFlushListAsync(string productItemCode, string mfgOp)
{ {
var entities = await _bomManager.GetListWithPhantomItemAsync(productItemCode, mfgOp, Clock.Now, false).ConfigureAwait(false); var entities = await _bomManager.GetListWithPhantomItemAsync(productItemCode, mfgOp, Clock.Now, false)
.ConfigureAwait(false);
return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities); return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities);
} }
[HttpGet("get-by-productitemcode-sbs")] [HttpGet("get-by-productitemcode-sbs")]
public virtual async Task<List<BomDTO>> GetBomStepByStepAsync(string productItemCode, DateTime validTime, bool isStepByStep = true) public virtual async Task<List<BomDTO>> GetBomStepByStepAsync(string productItemCode, DateTime validTime,
bool isStepByStep = true)
{ {
var entities = await _bomManager.GetRecursiveListAsync(productItemCode, validTime, isStepByStep).ConfigureAwait(false); var entities = await _bomManager.GetRecursiveListAsync(productItemCode, validTime, isStepByStep)
.ConfigureAwait(false);
return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities); return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities);
} }
/// <summary> /// <summary>
/// 所有子物料号 /// 所有子物料号
/// </summary> /// </summary>
/// <param name="product"></param> /// <param name="product"></param>
/// <returns></returns> /// <returns></returns>
@ -90,7 +92,7 @@ public class BomAppService :
} }
/// <summary> /// <summary>
/// 所有父物料号 /// 所有父物料号
/// </summary> /// </summary>
/// <param name="component"></param> /// <param name="component"></param>
/// <returns></returns> /// <returns></returns>
@ -99,8 +101,9 @@ public class BomAppService :
{ {
return await _bomManager.GetListOfComponentAsync(component).ConfigureAwait(false); return await _bomManager.GetListOfComponentAsync(component).ConfigureAwait(false);
} }
/// <summary> /// <summary>
/// 获取bomtree /// 获取bomtree
/// </summary> /// </summary>
/// <param name="productCode"></param> /// <param name="productCode"></param>
/// <returns></returns> /// <returns></returns>
@ -113,8 +116,9 @@ public class BomAppService :
return dtos; return dtos;
} }
/// <summary> /// <summary>
/// 获取所有子物料关系 /// 获取所有子物料关系
/// </summary> /// </summary>
/// <param name="component"></param> /// <param name="component"></param>
/// <returns></returns> /// <returns></returns>
@ -134,11 +138,12 @@ public class BomAppService :
foreach (var dto in dtos) foreach (var dto in dtos)
{ {
var entities = (await _bomManager.GetListOfProductAsync(dto.Component).ConfigureAwait(false)) var entities = (await _bomManager.GetListOfProductAsync(dto.Component).ConfigureAwait(false))
.FindAll(t => t.Component != dto.Component); .FindAll(t => t.Component != dto.Component);
if (entities.Count > 0) if (entities.Count > 0)
{ {
dto.ComponentDTOs = await GetChildBomsAsync(ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities)).ConfigureAwait(false); dto.ComponentDTOs = await GetChildBomsAsync(ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities))
.ConfigureAwait(false);
} }
} }
@ -155,7 +160,6 @@ public class BomAppService :
entity.ComponentQty = input.ComponentQty; entity.ComponentQty = input.ComponentQty;
await _repository.UpsertAsync(entity).ConfigureAwait(false); await _repository.UpsertAsync(entity).ConfigureAwait(false);
return;
} }
[HttpPost("upsert-interface")] [HttpPost("upsert-interface")]
@ -166,18 +170,18 @@ public class BomAppService :
entity.ComponentQty = input.ComponentQty; entity.ComponentQty = input.ComponentQty;
await _repository.UpsertAsyncByInterface(entity); await _repository.UpsertAsyncByInterface(entity);
return;
} }
[HttpPost("add-upsert-lsit")] [HttpPost("add-upsert-lsit")]
public virtual async Task AddOrUpsertListAsync(List<BomEditInput> inputs) public virtual async Task AddOrUpsertListAsync(List<BomEditInput> inputs)
{ {
List<Bom> entitys = new List<Bom>(); var entitys = new List<Bom>();
foreach (var input in inputs) foreach (var input in inputs)
{ {
var oldBom = await _repository.FirstOrDefaultAsync(t => t.Product == input.Product && t.Component == input.Component).ConfigureAwait(false); var oldBom = await _repository
.FirstOrDefaultAsync(t => t.Product == input.Product && t.Component == input.Component)
.ConfigureAwait(false);
if (oldBom == null) if (oldBom == null)
{ {
@ -195,18 +199,20 @@ public class BomAppService :
entitys.Add(oldBom); entitys.Add(oldBom);
} }
} }
await _repository.BulkMergeAsync(entitys).ConfigureAwait(false); await _repository.BulkMergeAsync(entitys).ConfigureAwait(false);
return;
} }
protected override async Task ValidateImportModelAsync(BomImportInput importInput, List<ValidationResult> validationRresult) protected override async Task ValidateImportModelAsync(BomImportInput importInput,
List<ValidationResult> validationRresult)
{ {
await base.CheckProductAsync(importInput.Product, validationRresult).ConfigureAwait(false); await CheckProductAsync(importInput.Product, validationRresult).ConfigureAwait(false);
await base.CheckComponentAndComponentQtyAsync(importInput.Component, importInput.ComponentQty, validationRresult).ConfigureAwait(false); await CheckComponentAndComponentQtyAsync(importInput.Component, importInput.ComponentQty, validationRresult)
.ConfigureAwait(false);
} }
/// <summary> /// <summary>
/// 根据总成号、总成数量取所有子物料及其汇总数量 /// 根据总成号、总成数量取所有子物料及其汇总数量
/// </summary> /// </summary>
/// <param name="productCode">总成号</param> /// <param name="productCode">总成号</param>
/// <param name="productNum">总成数量</param> /// <param name="productNum">总成数量</param>
@ -216,31 +222,17 @@ public class BomAppService :
{ {
var entities = await _bomManager.GetMaterialTotalQtyAsync(productCode, productNum).ConfigureAwait(false); var entities = await _bomManager.GetMaterialTotalQtyAsync(productCode, productNum).ConfigureAwait(false);
return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities); return ObjectMapper.Map<List<Bom>, List<BomDTO>>(entities);
} }
[HttpPost("get_bom_sublist")] [HttpPost("get_bom_sublist")]
public async Task<List<BomComponentDTO>> GetSubcomponentsRecursiveList(List<BomComponentDTO> p_lst,
public async Task<List<BomComponentDTO>> GetSubcomponentsRecursiveList(List<BomComponentDTO> p_lst, EnumBomSelectedType p_type EnumBomSelectedType p_type
) )
{ {
var entities=ObjectMapper.Map<List<BomComponentDTO>, List<BomComponent>>(p_lst); var entities = ObjectMapper.Map<List<BomComponentDTO>, List<BomComponent>>(p_lst);
var list=await _bomManager.GetSubcomponentsRecursiveList(entities, p_type).ConfigureAwait(false); var list = await _bomManager.GetSubcomponentsRecursiveList(entities, p_type).ConfigureAwait(false);
var sublist = ObjectMapper.Map<List<BomComponent>, List<BomComponentDTO>>(list); var sublist = ObjectMapper.Map<List<BomComponent>, List<BomComponentDTO>>(list);
return sublist; return sublist;
} }
} }

8
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs

@ -122,6 +122,14 @@ public class ItemBasicAppService
return dtos; return dtos;
} }
[HttpGet("list-item-category")]
public virtual async Task<List<ItemBasicDTO>> GetCategoryListAsync()
{
var entities = await _repository.GetListAsync(c => !string.IsNullOrEmpty(c.Category)).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<ItemBasic>, List<ItemBasicDTO>>(entities);
return dtos;
}
[HttpGet("get-manage-type")] [HttpGet("get-manage-type")]
public virtual async Task<EnumItemManageType> GetManageTypeAsync(string itemCode) public virtual async Task<EnumItemManageType> GetManageTypeAsync(string itemCode)
{ {

3
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs

@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Domain.Repositories;
using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Basedata.Domain.Shared;
@ -48,7 +49,7 @@ public class ProductionLineAppService
[HttpPost("get-by-location")] [HttpPost("get-by-location")]
public virtual async Task<ProductionLineDTO> GetByLocationCodeAsync(string locationCode) public virtual async Task<ProductionLineDTO> GetByLocationCodeAsync(string locationCode)
{ {
var entity = await _repository.FindAsync(p => p.LocationCode == locationCode).ConfigureAwait(false); var entity = await _repository.FirstOrDefaultAsync(p => p.LocationCode == locationCode).ConfigureAwait(false);
if (entity == null) if (entity == null)
{ {
throw new UserFriendlyException($"【{locationCode}】库位不存在"); throw new UserFriendlyException($"【{locationCode}】库位不存在");

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/IChassisAppService.cs

@ -1,3 +1,6 @@
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Win_in.Sfs.Shared.Application.Contracts; using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -9,4 +12,10 @@ public interface IChassisAppService
ISfsCheckStatusAppService ISfsCheckStatusAppService
, ISfsUpsertAppService<ChassisEditInput> , ISfsUpsertAppService<ChassisEditInput>
{ {
/// <summary>
/// 平板或手持使用 按照底盘返回排序大于参数中20个的
/// </summary>
/// <returns></returns>
Task<PagedResultDto<ChassisDTO>> GetListWithNextCountAsync(long sortNumber,int count,
CancellationToken cancellationToken = default);
} }

8
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceDTO.cs

@ -1,8 +1,8 @@
using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Application.Contracts; using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
/// <summary> /// <summary>
/// 底盘执行位置序列 /// 底盘执行位置序列
/// </summary> /// </summary>
@ -10,10 +10,10 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ChassisOperationSequenceDTO : SfsBasicDTOBase public class ChassisOperationSequenceDTO : SfsBasicDTOBase
{ {
/// <summary> /// <summary>
/// kitting执行序列号 /// Kitting执行底盘序列位置
/// </summary> /// </summary>
[Display(Name = "kitting执行序列号")] [Display(Name = "Kitting执行底盘序列位置")]
public string KittingNumber { get; set; } public long ChassisSortNumber { get; set; }
/// <summary> /// <summary>
/// kitting代码 /// kitting代码

8
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs

@ -1,3 +1,4 @@
using System.Threading.Tasks;
using Win_in.Sfs.Shared.Application.Contracts; using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -9,4 +10,11 @@ public interface IChassisOperationSequenceAppService
ISfsCheckStatusAppService ISfsCheckStatusAppService
, ISfsUpsertAppService<ChassisOperationSequenceEditInput> , ISfsUpsertAppService<ChassisOperationSequenceEditInput>
{ {
/// <summary>
/// 修改底盘执行序列位置 根据 KitingCode
/// </summary>
/// <param name="kittingCode"></param>
/// <param name="newChassisSortNumber"></param>
/// <returns></returns>
Task UpdateChassisSortNumberByKittingCodeAsync(string kittingCode, long newChassisSortNumber);
} }

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceEditInput.cs

@ -1,4 +1,3 @@
using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -11,10 +10,10 @@ public class ChassisOperationSequenceEditInput
: SfsStoreCreateOrUpdateInputBase : SfsStoreCreateOrUpdateInputBase
{ {
/// <summary> /// <summary>
/// kitting执行序列号 /// Kitting执行底盘序列位置
/// </summary> /// </summary>
[Display(Name = "kitting执行序列号")] [Display(Name = "Kitting执行底盘序列位置")]
public string KittingNumber { get; set; } public long ChassisSortNumber { get; set; }
/// <summary> /// <summary>
/// kitting代码 /// kitting代码

11
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceImportInput.cs

@ -1,9 +1,4 @@
using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Application.Contracts.ExportAndImport;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -14,10 +9,10 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ChassisOperationSequenceImportInput : SfsStoreImportInputBase public class ChassisOperationSequenceImportInput : SfsStoreImportInputBase
{ {
/// <summary> /// <summary>
/// kitting执行序列号 /// Kitting执行底盘序列位置
/// </summary> /// </summary>
[Display(Name = "kitting执行序列号")] [Display(Name = "Kitting执行底盘序列位置")]
public string KittingNumber { get; set; } public long ChassisSortNumber { get; set; }
/// <summary> /// <summary>
/// kitting代码 /// kitting代码

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDTO.cs

@ -24,6 +24,12 @@ public class CountJobDTO : SfsJobDTOBase<CountJobDetailDTO>
[Display(Name = "盘点阶段")] [Display(Name = "盘点阶段")]
public EnumCountStage CountStage { get; set; } public EnumCountStage CountStage { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 盘点方式 /// 盘点方式
/// </summary> /// </summary>

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDependentDetailDTO.cs

@ -6,7 +6,11 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class CountJobDependentDetailDTO : SfsJobDetailDTOBase, IHasCountResult public class CountJobDependentDetailDTO : SfsJobDetailDTOBase, IHasCountResult
{ {
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 盘点标签 /// 盘点标签
/// </summary> /// </summary>

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDetailDTO.cs

@ -6,7 +6,11 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class CountJobDetailDTO : SfsJobDetailDTOBase, IHasCountResult public class CountJobDetailDTO : SfsJobDetailDTOBase, IHasCountResult
{ {
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 盘点标签 /// 盘点标签
/// </summary> /// </summary>

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobDetailInput.cs

@ -6,7 +6,11 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class CountJobDetailInput : SfsJobDetailInputBase, IHasCountResult public class CountJobDetailInput : SfsJobDetailInputBase, IHasCountResult
{ {
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 盘点标签 /// 盘点标签
/// </summary> /// </summary>

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobEditInput.cs

@ -8,6 +8,12 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class CountJobEditInput : SfsJobCreateUpdateInputBase, ISfsJobCreateInput<CountJobDetailInput> public class CountJobEditInput : SfsJobCreateUpdateInputBase, ISfsJobCreateInput<CountJobDetailInput>
{ {
#region Base #region Base
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 盘点模式 /// 盘点模式
/// </summary> /// </summary>

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/JisProductReceiptNotes/IJisProductReceiptNoteAppService.cs

@ -2,7 +2,12 @@ using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IJisProductReceiptNoteAppService : ISfsStoreMasterReadOnlyAppServiceBase<JisProductReceiptNoteDTO, SfsStoreRequestInputBase, JisProductReceiptNoteDetailDTO, SfsStoreRequestInputBase> public interface IJisProductReceiptNoteAppService :
ISfsStoreMasterReadOnlyAppServiceBase<
JisProductReceiptNoteDTO,
SfsStoreRequestInputBase,
JisProductReceiptNoteDetailDTO,
SfsStoreRequestInputBase>
{ {
Task<JisProductReceiptNoteDTO> CreateAsync(JisProductReceiptNoteEditInput input); Task<JisProductReceiptNoteDTO> CreateAsync(JisProductReceiptNoteEditInput input);
} }

24
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteChassisDetailDTO.cs

@ -0,0 +1,24 @@
using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteChassisDetailDTO : SfsStoreDetailDTOBase
{
/// <summary>
/// 底盘号
/// </summary>
[Display(Name = "底盘号")]
public string ChassisNumber { get; set; }
/// <summary>
/// Kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
/// <summary>
/// 底盘号排序序列
/// </summary>
[Display(Name = "底盘号排序序列")]
public long ChassisSortNumber { get; set; }
}

23
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs

@ -0,0 +1,23 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Entities;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
[Display(Name = "盘点任务")]
public class KittingPackagingNoteDTO : SfsStoreDTOBase<KittingPackagingNoteDetailDTO>
{
/// <summary>
/// kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
/// <summary>
/// 明细(记录每次扫的位置)
/// </summary>
public List<KittingPackagingNoteChassisDetail> DepDetails { get; set; } = new();
}

44
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs

@ -0,0 +1,44 @@
using System;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteDetailDTO : SfsStoreDetailDTOBase
{
/// <summary>
/// 物品代码
/// </summary>
[Display(Name = "物品代码")]
public string ItemCode { get; set; }
/// <summary>
/// 物品名称
/// </summary>
[Display(Name = "物品名称")]
public string ItemName { get; set; }
/// <summary>
/// 物品描述1
/// </summary>
[Display(Name = "物品描述1")]
public string ItemDesc1 { get; set; }
/// <summary>
/// 物品描述2
/// </summary>
[Display(Name = "物品描述2")]
public string ItemDesc2 { get; set; }
/// <summary>
/// 数量
/// </summary>
[Display(Name = "数量")]
public decimal Qty { get; set; }
/// <summary>
/// Kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
}

10
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/IKittingPackagingNoteAppService.cs

@ -0,0 +1,10 @@
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IKittingPackagingNoteAppService :
ISfsStoreMasterReadOnlyAppServiceBase<
KittingPackagingNoteDTO,
SfsStoreRequestInputBase,
KittingPackagingNoteDetailDTO,
SfsStoreRequestInputBase>
{
}

27
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteChassisDetailInput.cs

@ -0,0 +1,27 @@
using System;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteChassisDetailInput : SfsDetailInputBase
{
/// <summary>
/// 底盘号
/// </summary>
[Display(Name = "底盘号")]
public string ChassisNumber { get; set; }
/// <summary>
/// Kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
/// <summary>
/// 底盘号排序序列
/// </summary>
[Display(Name = "底盘号排序序列")]
public long ChassisSortNumber { get; set; }
}

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCheckInput.cs

@ -0,0 +1,6 @@
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteCheckInput : SfsJobCheckInputBase
{
}

29
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs

@ -0,0 +1,29 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
/// <summary>
/// 查询条件 DTO
/// </summary>
public class KittingPackagingNoteCreateRequestInput
{
/// <summary>
/// kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
/// <summary>
/// 明细(记录打包的明细)
/// </summary>
public List<KittingPackagingNoteDetail> Details { get; set; } = new();
/// <summary>
/// 明细(记录每次扫的位置)
/// </summary>
public List<KittingPackagingNoteChassisDetail> DepDetails { get; set; } = new();
}

44
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs

@ -0,0 +1,44 @@
using System;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteDetailInput : SfsStoreDetailInputBase
{
/// <summary>
/// 物品代码
/// </summary>
[Display(Name = "物品代码")]
public string ItemCode { get; set; }
/// <summary>
/// 物品名称
/// </summary>
[Display(Name = "物品名称")]
public string ItemName { get; set; }
/// <summary>
/// 物品描述1
/// </summary>
[Display(Name = "物品描述1")]
public string ItemDesc1 { get; set; }
/// <summary>
/// 物品描述2
/// </summary>
[Display(Name = "物品描述2")]
public string ItemDesc2 { get; set; }
/// <summary>
/// 数量
/// </summary>
[Display(Name = "数量")]
public decimal Qty { get; set; }
/// <summary>
/// Kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
}

26
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs

@ -0,0 +1,26 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteEditInput : SfsStoreCreateOrUpdateInputBase
{
/// <summary>
/// kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
/// <summary>
/// 明细(记录打包的明细)
/// </summary>
public List<KittingPackagingNoteDetailInput> Details { get; set; } = new();
/// <summary>
/// 明细(记录每次扫的位置)
/// </summary>
public List<KittingPackagingNoteChassisDetailInput> DepDetails { get; set; } = new();
}

24
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs

@ -0,0 +1,24 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteImportInput : SfsStoreImportInputBase
{
/// <summary>
/// kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
/// <summary>
/// 明细(记录打包的明细)
/// </summary>
public List<KittingPackagingNoteDetail> Details { get; set; } = new();
/// <summary>
/// 明细(记录每次扫的位置)
/// </summary>
public List<KittingPackagingNoteChassisDetail> DepDetails { get; set; } = new();
}

21
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/KittingPackagingNotePermissions.cs

@ -0,0 +1,21 @@
using Volo.Abp.Authorization.Permissions;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public static class KittingPackagingNotePermissions
{
public const string Default = StorePermissions.GroupName + "." + nameof(KittingPackagingNote);
public const string Create = Default + "." + StorePermissions.CreateStr;
public const string Update = Default + "." + StorePermissions.UpdateStr;
public const string Delete = Default + "." + StorePermissions.DeleteStr;
public static void AddKittingPackagingNotePermission(this PermissionGroupDefinition permissionGroup)
{
var countJobPermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(KittingPackagingNote)));
countJobPermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr));
countJobPermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr));
countJobPermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr));
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs

@ -98,6 +98,8 @@ public class StorePermissionDefinitionProvider : PermissionDefinitionProvider
storeGroup.AddChassisPermission(); storeGroup.AddChassisPermission();
storeGroup.AddChassisOperationSequencePermission(); storeGroup.AddChassisOperationSequencePermission();
storeGroup.AddKittingPackagingNotePermission();
#region Jobs #region Jobs
storeGroup.AddPurchaseReceiptJobPermission(); storeGroup.AddPurchaseReceiptJobPermission();

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/DTOs/CountPlanDTO.cs

@ -24,6 +24,12 @@ public class CountPlanDTO : SfsStoreRequestDTOBase<CountPlanDetailDTO>
[Display(Name = "盘点阶段")] [Display(Name = "盘点阶段")]
public EnumCountStage Stage { get; set; } public EnumCountStage Stage { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 描述 /// 描述
/// </summary> /// </summary>

13
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanCreateRequestInput.cs

@ -54,6 +54,19 @@ public class CountPlanCreateRequestInput : SfsStoreRequestCreateOrUpdateInputBas
[Display(Name = "盘点方式")] [Display(Name = "盘点方式")]
public CountPlanRequestType RequestType { get; set; } public CountPlanRequestType RequestType { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
/// <summary>
/// 盘点模式
/// </summary>
[Display(Name = "盘点模式")]
public EnumInventoryMode InventoryMode { get; set; }
/// <summary> /// <summary>
/// 零件条件集合 /// 零件条件集合
/// </summary> /// </summary>

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanEditInput.cs

@ -64,6 +64,12 @@ public class CountPlanEditInput : SfsStoreRequestCreateOrUpdateInputBase, IHasNu
/// </summary> /// </summary>
[Display(Name = "盘点模式")] [Display(Name = "盘点模式")]
public EnumInventoryMode InventoryMode { get; set; } public EnumInventoryMode InventoryMode { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 类型 /// 类型
/// </summary> /// </summary>

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanImportInput.cs

@ -57,4 +57,10 @@ public class CountPlanImportInput : SfsStoreImportInputBase
/// </summary> /// </summary>
[Display(Name = "盘点模式")] [Display(Name = "盘点模式")]
public EnumInventoryMode InventoryMode { get; set; } public EnumInventoryMode InventoryMode { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
} }

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/IInjectionIssueRequestAppService.cs

@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Win_in.Sfs.Basedata.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -17,6 +18,12 @@ public interface IInjectionIssueRequestAppService
/// <returns></returns> /// <returns></returns>
Task<long> GetCountAsync(); Task<long> GetCountAsync();
/// <summary>
/// 获取物品类别列表
/// </summary>
/// <returns></returns>
Task<List<ItemBasicDTO>> GetItemCategoryListAsync();
Task<List<UnCompletedRequestDto>> GetUnCompletedRequestAsync(List<UnCompletedRequestDto> p_list); Task<List<UnCompletedRequestDto>> GetUnCompletedRequestAsync(List<UnCompletedRequestDto> p_list);
} }

41
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Chassis/ChassisAppService.cs

@ -1,25 +1,15 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Castle.Components.DictionaryAdapter;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Domain.Entities; using Win_in.Sfs.Shared.Domain;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Equipments.DTOs;
using Win_in.Sfs.Shared.Application;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Store.Application.Contracts; using Win_in.Sfs.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared; using Win_in.Sfs.Wms.Store.Domain.Shared;
using Win_in.Sfs.Wms.Store.Equipments;
namespace Win_in.Sfs.Wms.Store.Application; namespace Win_in.Sfs.Wms.Store.Application;
@ -36,7 +26,7 @@ public class ChassisAppService
public ChassisAppService( public ChassisAppService(
IChassisRepository repository, IChassisManager manager IChassisRepository repository, IChassisManager manager
):base(repository) ) : base(repository)
{ {
base.CreatePolicyName = ChassisPermissions.Create; base.CreatePolicyName = ChassisPermissions.Create;
base.UpdatePolicyName = ChassisPermissions.Update; base.UpdatePolicyName = ChassisPermissions.Update;
@ -45,6 +35,7 @@ public class ChassisAppService
_repository = repository; _repository = repository;
_manager = manager; _manager = manager;
} }
#region 无用 #region 无用
[NonAction] [NonAction]
@ -83,5 +74,31 @@ public class ChassisAppService
throw new NotImplementedException(); throw new NotImplementedException();
} }
/// <summary>
/// 平板或手持使用 按照底盘返回排序大于参数中20个的
/// </summary>
/// <returns></returns>
public async Task<PagedResultDto<ChassisDTO>> GetListWithNextCountAsync(long sortNumber,int count,
CancellationToken cancellationToken = default)
{
var requestInput = new SfsStoreRequestInputBase
{
MaxResultCount = count,
SkipCount = 0,
Sorting = $"{nameof(Chassis.SortNumber)} DESC",
Condition = new Condition
{
Filters = new List<Filter> { new(nameof(Chassis.SortNumber), sortNumber.ToString(), ">=") }
}
};
var expression = requestInput.Condition.Filters?.Count > 0
? requestInput.Condition.Filters.ToLambda<Chassis>()
: p => true;
return await GetPagedListAsync(expression, requestInput.SkipCount, requestInput.MaxResultCount,
requestInput.Sorting, false, cancellationToken).ConfigureAwait(false);
}
#endregion #endregion
} }

36
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs

@ -1,32 +1,20 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Castle.Components.DictionaryAdapter;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Equipments.DTOs;
using Win_in.Sfs.Shared.Application;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Store.Application.Contracts; using Win_in.Sfs.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared; using Win_in.Sfs.Wms.Store.Domain.Shared;
using Win_in.Sfs.Wms.Store.Equipments;
namespace Win_in.Sfs.Wms.Store.Application; namespace Win_in.Sfs.Wms.Store.Application;
[Authorize] [Authorize]
[Route($"{StoreConsts.RootPath}ChassisOperationSequence")] [Route($"{StoreConsts.RootPath}ChassisOperationSequence")]
public class ChassisOperationSequenceAppService public class ChassisOperationSequenceAppService
: SfsStoreAppServiceBase<Domain.ChassisOperationSequence, ChassisOperationSequenceDTO, SfsStoreRequestInputBase, ChassisOperationSequenceEditInput, : SfsStoreAppServiceBase<ChassisOperationSequence, ChassisOperationSequenceDTO, SfsStoreRequestInputBase,
ChassisOperationSequenceEditInput,
ExchangeDataImportInput> ExchangeDataImportInput>
, IChassisOperationSequenceAppService , IChassisOperationSequenceAppService
@ -36,7 +24,7 @@ public class ChassisOperationSequenceAppService
public ChassisOperationSequenceAppService( public ChassisOperationSequenceAppService(
IChassisOperationSequenceRepository repository, IChassisOperationSequenceManager manager IChassisOperationSequenceRepository repository, IChassisOperationSequenceManager manager
):base(repository) ) : base(repository)
{ {
base.CreatePolicyName = ChassisOperationSequencePermissions.Create; base.CreatePolicyName = ChassisOperationSequencePermissions.Create;
base.UpdatePolicyName = ChassisOperationSequencePermissions.Update; base.UpdatePolicyName = ChassisOperationSequencePermissions.Update;
@ -45,6 +33,24 @@ public class ChassisOperationSequenceAppService
_repository = repository; _repository = repository;
_manager = manager; _manager = manager;
} }
/// <summary>
/// 修改底盘执行序列位置 根据 KitingCode
/// </summary>
/// <param name="kittingCode"></param>
/// <param name="newChassisSortNumber"></param>
/// <returns></returns>
[HttpPost("update-chassis-sort-number-by-kitting-code")]
public async Task UpdateChassisSortNumberByKittingCodeAsync(string kittingCode, long newChassisSortNumber)
{
var chassisOperationSequence =
await _repository.FindAsync(p => p.KittingCode == kittingCode).ConfigureAwait(false);
chassisOperationSequence.ChassisSortNumber = newChassisSortNumber;
await _repository.UpdateAsync(chassisOperationSequence).ConfigureAwait(false);
}
#region 无用 #region 无用
[NonAction] [NonAction]

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs

@ -86,6 +86,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.Number) .Ignore(x => x.Number)
.Ignore(x => x.Id) .Ignore(x => x.Id)
; ;
CreateMap<CountJobDependentDetail, CountJobDetail>()
.ReverseMap();
} }
} }

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs

@ -21,8 +21,11 @@ using Win_in.Sfs.Wms.Store.Notes;
namespace Win_in.Sfs.Wms.Store.Application; namespace Win_in.Sfs.Wms.Store.Application;
/// <summary>
/// 注塑发料任务
/// </summary>
[Authorize] [Authorize]
[Route($"{StoreConsts.RootPath}injection-job")] [Route($"{StoreConsts.RootPath}injection-issue-job")]
public class InjectionIssueJobAppService public class InjectionIssueJobAppService
: SfsJobAppServiceBase<InjectionIssueJob, InjectionIssueJobDetail, InjectionIssueJobDTO, SfsJobRequestInputBase, : SfsJobAppServiceBase<InjectionIssueJob, InjectionIssueJobDetail, InjectionIssueJobDTO, SfsJobRequestInputBase,
InjectionIssueJobCheckInput, InjectionIssueJobEditInput>, InjectionIssueJobCheckInput, InjectionIssueJobEditInput>,

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/IssueNotes/InjectionIssueNotes/InjectionIssueNoteAppService.cs

@ -17,8 +17,11 @@ using Win_in.Sfs.Wms.Store.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application; namespace Win_in.Sfs.Wms.Store.Application;
/// <summary>
/// 注塑发料记录
/// </summary>
[Authorize] [Authorize]
[Route($"{StoreConsts.RootPath}injection-note")] [Route($"{StoreConsts.RootPath}injection-issue-note")]
public class InjectionIssueNoteAppService : public class InjectionIssueNoteAppService :
SfsStoreWithDetailsAppServiceBase<InjectionIssueNote, InjectionIssueNoteDTO, SfsStoreRequestInputBase, InjectionIssueNoteEditInput, InjectionIssueNoteDetail, SfsStoreWithDetailsAppServiceBase<InjectionIssueNote, InjectionIssueNoteDTO, SfsStoreRequestInputBase, InjectionIssueNoteEditInput, InjectionIssueNoteDetail,
InjectionIssueNoteDetailDTO, SfsStoreRequestInputBase, InjectionIssueNoteImportInput>, InjectionIssueNoteDetailDTO, SfsStoreRequestInputBase, InjectionIssueNoteImportInput>,

11
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/JisProductReceiptNotes/JisProductReceiptNoteAppService.cs

@ -10,8 +10,15 @@ namespace Win_in.Sfs.Wms.Store.Application;
[Authorize] [Authorize]
[Route($"{StoreConsts.RootPath}jis-product-receipt-note")] [Route($"{StoreConsts.RootPath}jis-product-receipt-note")]
public class JisProductReceiptNoteAppService : public class JisProductReceiptNoteAppService :
SfsStoreWithDetailsAppServiceBase<JisProductReceiptNote, JisProductReceiptNoteDTO, SfsStoreRequestInputBase, JisProductReceiptNoteEditInput, SfsStoreWithDetailsAppServiceBase<
JisProductReceiptNoteDetail, JisProductReceiptNoteDetailDTO, SfsStoreRequestInputBase, JisProductReceiptNoteImportInput>, JisProductReceiptNote,
JisProductReceiptNoteDTO,
SfsStoreRequestInputBase,
JisProductReceiptNoteEditInput,
JisProductReceiptNoteDetail,
JisProductReceiptNoteDetailDTO,
SfsStoreRequestInputBase,
JisProductReceiptNoteImportInput>,
IJisProductReceiptNoteAppService IJisProductReceiptNoteAppService
{ {

44
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs

@ -0,0 +1,44 @@
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application;
/// <summary>
/// kitting打包记录
/// </summary>
[Authorize]
[Route($"{StoreConsts.RootPath}KittingPackagingNote")]
public class KittingPackagingNoteAppService
: SfsStoreWithDetailsAppServiceBase<
KittingPackagingNote,
KittingPackagingNoteDTO,
SfsStoreRequestInputBase,
KittingPackagingNoteEditInput,
KittingPackagingNoteDetail,
KittingPackagingNoteDetailDTO,
SfsStoreRequestInputBase,
KittingPackagingNoteImportInput>, IKittingPackagingNoteAppService
{
private readonly IChassisOperationSequenceAppService _chassisOperationSequenceAppService;
public KittingPackagingNoteAppService(
IKittingPackagingNoteRepository repository, IChassisOperationSequenceAppService chassisOperationSequenceAppService) : base(repository)
{
_chassisOperationSequenceAppService = chassisOperationSequenceAppService;
}
[HttpPost("")]
public override async Task<KittingPackagingNoteDTO> CreateAsync(KittingPackagingNoteEditInput input)
{
var sortNumber=input.DepDetails.Max(p => p.ChassisSortNumber);
await _chassisOperationSequenceAppService.UpdateChassisSortNumberByKittingCodeAsync(input.KittingCode,sortNumber).ConfigureAwait(false);
return await base.CreateAsync(input).ConfigureAwait(false);
}
}

15
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAutoMapperProfile.cs

@ -0,0 +1,15 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application;
public partial class StoreApplicationAutoMapperProfile : Profile
{
private void KittingPackagingNoteAutoMapperProfile()
{
CreateMap<KittingPackagingNote, KittingPackagingNoteDTO>()
.ReverseMap();
}
}

38
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs

@ -28,10 +28,10 @@ using Win_in.Sfs.Wms.Store.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application; namespace Win_in.Sfs.Wms.Store.Application;
/// <summary> /// <summary>
/// 注塑叫料 /// 注塑发料申请
/// </summary> /// </summary>
[Authorize] [Authorize]
[Route($"{StoreConsts.RootPath}injection-request")] [Route($"{StoreConsts.RootPath}injection-issue-request")]
public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<InjectionIssueRequest, InjectionIssueRequestDTO, public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<InjectionIssueRequest, InjectionIssueRequestDTO,
SfsStoreRequestInputBase, InjectionIssueRequestEditInput, InjectionIssueRequestDetail, InjectionIssueRequestDetailDTO, SfsStoreRequestInputBase, InjectionIssueRequestEditInput, InjectionIssueRequestDetail, InjectionIssueRequestDetailDTO,
SfsStoreRequestInputBase, InjectionIssueRequestImportInput>, SfsStoreRequestInputBase, InjectionIssueRequestImportInput>,
@ -42,6 +42,7 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<Inj
private readonly IAreaAppService _areaApp; private readonly IAreaAppService _areaApp;
private readonly ILocationAppService _locationAppService; private readonly ILocationAppService _locationAppService;
private readonly IItemBasicAppService _itemBasicAppService; private readonly IItemBasicAppService _itemBasicAppService;
private readonly IItemContainerAppService _itemContainerAppService;
private readonly IProductionLineAppService _productionLineAppService; private readonly IProductionLineAppService _productionLineAppService;
private readonly ITransactionTypeAppService _transactionTypeAppService; private readonly ITransactionTypeAppService _transactionTypeAppService;
@ -54,6 +55,7 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<Inj
IAreaAppService areaApp, IAreaAppService areaApp,
ILocationAppService locationAppService, ILocationAppService locationAppService,
IItemBasicAppService itemBasicAppService, IItemBasicAppService itemBasicAppService,
IItemContainerAppService itemContainerAppService,
IProductionLineAppService productionLineAppService, IProductionLineAppService productionLineAppService,
ITransactionTypeAppService transactionTypeAppService ITransactionTypeAppService transactionTypeAppService
) )
@ -64,8 +66,8 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<Inj
_areaApp = areaApp; _areaApp = areaApp;
_locationAppService = locationAppService; _locationAppService = locationAppService;
_itemBasicAppService = itemBasicAppService; _itemBasicAppService = itemBasicAppService;
_itemContainerAppService= itemContainerAppService;
_productionLineAppService = productionLineAppService; _productionLineAppService = productionLineAppService;
_transactionTypeAppService = transactionTypeAppService; _transactionTypeAppService = transactionTypeAppService;
} }
@ -106,8 +108,21 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<Inj
detailInput.ItemDesc1 = itemBasicDto.Desc1; detailInput.ItemDesc1 = itemBasicDto.Desc1;
detailInput.ItemDesc2 = itemBasicDto.Desc2; detailInput.ItemDesc2 = itemBasicDto.Desc2;
detailInput.ItemName = itemBasicDto.Name; detailInput.ItemName = itemBasicDto.Name;
detailInput.Uom = itemBasicDto.BasicUom;
detailInput.StdPackQty = itemBasicDto.StdPackQty; var itemContainerDto = await _itemContainerAppService.GetListByItemCodeAsync(detailInput.ItemCode).ConfigureAwait(false);
if(itemContainerDto.Count>0)
{
detailInput.Uom = itemContainerDto[0].BasicUom;
detailInput.Qty = itemContainerDto[0].Qty;
detailInput.StdPackQty = itemBasicDto.StdPackQty;
}
else
{
detailInput.Uom = itemBasicDto.BasicUom;
detailInput.StdPackQty = itemBasicDto.StdPackQty;
detailInput.Qty = itemBasicDto.StdPackQty;
}
detailInput.Status = EnumStatus.Open; detailInput.Status = EnumStatus.Open;
//因为是刚创建的 所以发料数一定是0 //因为是刚创建的 所以发料数一定是0
@ -150,6 +165,19 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<Inj
return injectionRequestDto; return injectionRequestDto;
} }
/// <summary>
/// 获取物品类别列表
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
[HttpGet("list/item-category")]
public virtual async Task<List<ItemBasicDTO>> GetItemCategoryListAsync()
{
var entities = await _itemBasicAppService.GetCategoryListAsync().ConfigureAwait(false);
return entities;
}
#endregion #endregion
#region 导入 #region 导入

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/ChassisOperationSequence/ChassisOperationSequence.cs

@ -10,10 +10,10 @@ namespace Win_in.Sfs.Wms.Store.Domain;
public class ChassisOperationSequence : SfsAggregateRootBase public class ChassisOperationSequence : SfsAggregateRootBase
{ {
/// <summary> /// <summary>
/// kitting执行序列号 /// Kitting执行底盘序列位置
/// </summary> /// </summary>
[Display(Name = "kitting执行序列号")] [Display(Name = "Kitting执行底盘序列位置")]
public string KittingNumber { get; set; } public long ChassisSortNumber { get; set; }
/// <summary> /// <summary>
/// kitting代码 /// kitting代码

40
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs

@ -5,6 +5,7 @@ using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain;
@ -118,18 +119,40 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou
private async Task SetDetailsAsync(CountJob input, CountJob entity) private async Task SetDetailsAsync(CountJob input, CountJob entity)
{ {
foreach (var depDetail in input.DepDetails)
{
var inputDetail = input.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode);
if (inputDetail != null)
{
inputDetail.CountQty += depDetail.CountQty;
}
else
{
var jobDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDetail>(depDetail);
var detailNumber = await GetNumber().ConfigureAwait(false);
jobDetail.SetIdAndNumber(GuidGenerator, entity.Id, detailNumber);
jobDetail.CountLabel = GuidGenerator.Create().ToString();
input.Details.Add(jobDetail);
}
var jobDepDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDependentDetail>(depDetail);
var number = entity.Number;
jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number);
jobDepDetail.CountLabel = GuidGenerator.Create().ToString();
entity.DepDetails.Add(jobDepDetail);
}
foreach (var detail in input.Details) foreach (var detail in input.Details)
{ {
var entityDetail = entity.Details.FirstOrDefault(p => p.Id == detail.Id); var entityDetail = entity.Details.FirstOrDefault(p => p.Id == detail.Id);
//新增盘点明细 //新增盘点明细
if (entityDetail == null||entityDetail.Id==Guid.Empty) if (entityDetail == null || entityDetail.Id == Guid.Empty)
{ {
var jobDetail = ObjectMapper.Map<CountJobDetail, CountJobDetail>(detail); var jobDetail = ObjectMapper.Map<CountJobDetail, CountJobDetail>(detail);
var number =await GetNumber(); //var number =await GetNumber();
jobDetail.SetIdAndNumber(GuidGenerator,entity.Id, number); //jobDetail.SetIdAndNumber(GuidGenerator,entity.Id, number);
jobDetail.CountLabel = GuidGenerator.Create().ToString(); //jobDetail.CountLabel = GuidGenerator.Create().ToString();
//CountJobDetail jobDetail = new CountJobDetail() { }; //CountJobDetail jobDetail = new CountJobDetail() { };
entity.AddDetail(jobDetail); entity.AddDetail(jobDetail);
@ -140,15 +163,6 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou
.ConfigureAwait(false); .ConfigureAwait(false);
} }
} }
foreach (var depDetail in input.DepDetails)
{
var jobDepDetail = ObjectMapper.Map<CountJobDependentDetail, CountJobDependentDetail>(depDetail);
var number = entity.Number;
jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number);
jobDepDetail.CountLabel = GuidGenerator.Create().ToString();
entity.DepDetails.Add(jobDepDetail);
}
} }
public override void CheckDetails(CountJob entity, AbpValidationResult result) public override void CheckDetails(CountJob entity, AbpValidationResult result)

11
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteManager.cs

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Domain;
public interface IKittingPackagingNoteManager : ISfsStoreManager<KittingPackagingNote, KittingPackagingNoteDetail>
{
}

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteRepository.cs

@ -0,0 +1,6 @@
namespace Win_in.Sfs.Wms.Store.Domain;
public interface IKittingPackagingNoteRepository : ISfsStoreRepositoryBase<KittingPackagingNote>
{
}

27
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs

@ -0,0 +1,27 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Wms.Store.Domain;
/// <summary>
/// kitting打包记录
/// </summary>
[Display(Name = "kitting打包记录")]
public class KittingPackagingNote : SfsStoreAggregateRootBase<KittingPackagingNoteDetail>
{
/// <summary>
/// kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
/// <summary>
/// 明细(记录打包的明细)
/// </summary>
public override List<KittingPackagingNoteDetail> Details { get; set; } = new();
/// <summary>
/// 明细(记录每次扫的位置)
/// </summary>
public List<KittingPackagingNoteChassisDetail> DepDetails { get; set; } = new();
}

19
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs

@ -0,0 +1,19 @@
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Domain;
public class KittingPackagingNoteChassisDetail : SfsDetailEntityBase
{
/// <summary>
/// 底盘号
/// </summary>
[Display(Name = "底盘号")]
public long ChassisNumber { get; set; }
/// <summary>
/// Kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
}

42
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs

@ -0,0 +1,42 @@
using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Wms.Store.Domain;
public class KittingPackagingNoteDetail : SfsStoreDetailEntityBase
{
/// <summary>
/// 物品代码
/// </summary>
[Display(Name = "物品代码")]
public string ItemCode { get; set; }
/// <summary>
/// 物品名称
/// </summary>
[Display(Name = "物品名称")]
public string ItemName { get; set; }
/// <summary>
/// 物品描述1
/// </summary>
[Display(Name = "物品描述1")]
public string ItemDesc1 { get; set; }
/// <summary>
/// 物品描述2
/// </summary>
[Display(Name = "物品描述2")]
public string ItemDesc2 { get; set; }
/// <summary>
/// 数量
/// </summary>
[Display(Name = "数量")]
public decimal Qty { get; set; }
/// <summary>
/// Kitting代码
/// </summary>
[Display(Name = "Kitting代码")]
public string KittingCode { get; set; }
}

26
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteManager.cs

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Users;
using Volo.Abp.Validation;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Domain;
public class KittingPackagingNoteManager : SfsStoreManagerBase<KittingPackagingNote, KittingPackagingNoteDetail>,
IKittingPackagingNoteManager
{
public KittingPackagingNoteManager(
IKittingPackagingNoteRepository repository
) : base(repository)
{
}
}

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

@ -65,6 +65,7 @@ public interface IStoreDbContext : IEfCoreDbContext
#endregion #endregion
#region Notes #region Notes
public DbSet<ItemTransformNote> ItemTransformNotes { get; } public DbSet<ItemTransformNote> ItemTransformNotes { get; }
public DbSet<RecycledMaterialReceiptNote> RecycledMaterialReceiptNotes { get; } public DbSet<RecycledMaterialReceiptNote> RecycledMaterialReceiptNotes { get; }
public DbSet<TransferNote> TransferNotes { get; } public DbSet<TransferNote> TransferNotes { get; }
@ -105,6 +106,9 @@ public interface IStoreDbContext : IEfCoreDbContext
public DbSet<ContainerBindNote> ContainerBindNotes { get; } public DbSet<ContainerBindNote> ContainerBindNotes { get; }
public DbSet<NoOkConvertOkNote> NoOkConvertOkNotes { get; } public DbSet<NoOkConvertOkNote> NoOkConvertOkNotes { get; }
public DbSet<WipWarehouseAdjustNote> WipWarehouseAdjustNotes { get; } public DbSet<WipWarehouseAdjustNote> WipWarehouseAdjustNotes { get; }
public DbSet<KittingPackagingNote> KittingPackagingNote { get; }
#endregion #endregion
#region Jobs #region Jobs
@ -135,9 +139,9 @@ public interface IStoreDbContext : IEfCoreDbContext
#endregion #endregion
/// <summary> /// <summary>
/// 底盘信息 /// 底盘信息
/// </summary> /// </summary>
public DbSet<Domain.Chassis> Chassis { get; } public DbSet<Chassis> Chassis { get; }
public DbSet<ExchangeData> ExchangeDatas { get; } public DbSet<ExchangeData> ExchangeDatas { get; }

31896
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.Designer.cs

File diff suppressed because it is too large

958
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.cs

@ -0,0 +1,958 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Win_in.Sfs.Wms.Store.Migrations
{
public partial class Added_KittingPackagingNote : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Store_AssembleIssueRequestsDetail");
migrationBuilder.DropTable(
name: "Store_AssembleIssueRequests");
migrationBuilder.DropColumn(
name: "AuditCountDescription",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "AuditCountOperator",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "AuditCountQty",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "AuditCountTime",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "FirstCountDescription",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "FirstCountOperator",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "FirstCountQty",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "FirstCountTime",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "RepeatCountDescription",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "RepeatCountOperator",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "RepeatCountQty",
table: "Store_CountNoteDetail");
migrationBuilder.DropColumn(
name: "RepeatCountTime",
table: "Store_CountNoteDetail");
migrationBuilder.AddColumn<string>(
name: "InventoryMode",
table: "Store_CountPlan",
type: "nvarchar(64)",
maxLength: 64,
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "InventoryStage",
table: "Store_CountPlan",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<string>(
name: "CountJobNumber",
table: "Store_CountNote",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "CountPlanNumber",
table: "Job_CountJobDetail",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "InventoryStage",
table: "Job_CountJobDetail",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "InventoryStage",
table: "Job_CountJobDependentDetail",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<string>(
name: "InventoryMode",
table: "Job_CountJob",
type: "nvarchar(64)",
maxLength: 64,
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "InventoryStage",
table: "Job_CountJob",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.CreateTable(
name: "Job_KittingIssueJob",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
RequestType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ProdLine = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
KittingRequestNumber = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
UseOnTheWayLocation = table.Column<bool>(type: "bit", nullable: false),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
Worker = table.Column<string>(type: "nvarchar(max)", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
UpStreamJobNumber = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
JobDescription = table.Column<string>(type: "nvarchar(1024)", maxLength: 1024, nullable: true),
JobType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
JobStatus = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Priority = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
PriorityIncrement = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
WorkGroupCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
IsAutoComplete = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
AcceptUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
AcceptUserName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
AcceptTime = table.Column<DateTime>(type: "datetime2", nullable: true),
CompleteUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
CompleteUserName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
CompleteTime = table.Column<DateTime>(type: "datetime2", nullable: true),
WarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Job_KittingIssueJob", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Store_AssembleIssueRequest",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Type = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
UseOnTheWayLocation = table.Column<bool>(type: "bit", nullable: false),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
Worker = table.Column<string>(type: "nvarchar(max)", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ActiveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
AutoSubmit = table.Column<bool>(type: "bit", nullable: false),
AutoAgree = table.Column<bool>(type: "bit", nullable: false),
AutoHandle = table.Column<bool>(type: "bit", nullable: false),
AutoCompleteJob = table.Column<bool>(type: "bit", nullable: false),
DirectCreateNote = table.Column<bool>(type: "bit", nullable: false),
RequestStatus = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_AssembleIssueRequest", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Store_CountNoteDependentDetail",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
CountLabel = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
InventoryQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
Uom = table.Column<string>(type: "nvarchar(max)", nullable: true),
InventoryLocationCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
CountQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
CountTime = table.Column<DateTime>(type: "datetime2", nullable: true),
CountOperator = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
CountDescription = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
StdPackQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MasterID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
ItemName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc1 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc2 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Lot = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
SupplierBatch = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
ProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
ExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
PackingCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ContainerCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
LocationCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
LocationArea = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
LocationGroup = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
LocationErpCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
WarehouseCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Status = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_CountNoteDependentDetail", x => x.Id);
table.ForeignKey(
name: "FK_Store_CountNoteDependentDetail_Store_CountNote_MasterID",
column: x => x.MasterID,
principalTable: "Store_CountNote",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Store_KittingIssueNote",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
JobNumber = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
RequestNumber = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
RequestType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
UseOnTheWayLocation = table.Column<bool>(type: "bit", nullable: false),
ConfirmTime = table.Column<DateTime>(type: "datetime2", nullable: true),
Confirmed = table.Column<bool>(type: "bit", nullable: false),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
Worker = table.Column<string>(type: "nvarchar(max)", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ActiveDate = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_KittingIssueNote", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Store_KittingIssueRequest",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Type = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
UseOnTheWayLocation = table.Column<bool>(type: "bit", nullable: false),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
Worker = table.Column<string>(type: "nvarchar(max)", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ActiveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
AutoSubmit = table.Column<bool>(type: "bit", nullable: false),
AutoAgree = table.Column<bool>(type: "bit", nullable: false),
AutoHandle = table.Column<bool>(type: "bit", nullable: false),
AutoCompleteJob = table.Column<bool>(type: "bit", nullable: false),
DirectCreateNote = table.Column<bool>(type: "bit", nullable: false),
RequestStatus = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_KittingIssueRequest", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Job_KittingIssueJobDetail",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ItemCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
ItemName = table.Column<string>(type: "nvarchar(max)", nullable: true),
ItemDesc1 = table.Column<string>(type: "nvarchar(max)", nullable: true),
ItemDesc2 = table.Column<string>(type: "nvarchar(max)", nullable: true),
StdPackQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
Status = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Uom = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestLocationCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
RequestLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
OnTheWayLocationCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ProdLine = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
PositionCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
RecommendType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
RequestQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
RecommendFromContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendFromProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendFromExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendFromLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
RecommendToContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendToProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendToExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendToLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
TransferLibFromContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibFromProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibFromExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibFromLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
TransferLibToContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibToProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibToExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibToLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
HandledFromContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledFromProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledFromExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledFromLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
HandledToContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledToProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledToExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledToLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MasterID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Number = table.Column<string>(type: "nvarchar(max)", nullable: true),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Job_KittingIssueJobDetail", x => x.Id);
table.ForeignKey(
name: "FK_Job_KittingIssueJobDetail_Job_KittingIssueJob_MasterID",
column: x => x.MasterID,
principalTable: "Job_KittingIssueJob",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Store_AssembleIssueRequestDetail",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ToLocationCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationArea = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationGroup = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationErpCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToWarehouseCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ProdLine = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
IssuedQty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
ReceivedQty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
Status = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
PositionCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
RecommendType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
BoxQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MasterID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
ItemName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc1 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc2 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Uom = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Qty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
StdPackQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_AssembleIssueRequestDetail", x => x.Id);
table.ForeignKey(
name: "FK_Store_AssembleIssueRequestDetail_Store_AssembleIssueRequest_MasterID",
column: x => x.MasterID,
principalTable: "Store_AssembleIssueRequest",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Store_KittingIssueNoteDetail",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ItemCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ItemName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc1 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc2 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
StdPackQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
Status = table.Column<int>(type: "int", nullable: false),
Uom = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RequestWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
OnTheWayLocationCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ProdLine = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
PositionCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
RecommendType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
RequestQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
RecommendFromContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendFromProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendFromExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendFromLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendFromQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
RecommendToContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendToProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendToExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
RecommendToLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
RecommendToQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
TransferLibFromContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibFromProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibFromExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibFromLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibFromQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
TransferLibToContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibToProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibToExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
TransferLibToLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToLocationCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
TransferLibToQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
HandledFromContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromPackingCode = table.Column<string>(type: "nvarchar(450)", nullable: true),
HandledFromSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledFromProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledFromExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledFromLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromLocationCode = table.Column<string>(type: "nvarchar(450)", nullable: true),
HandledFromLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledFromQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
HandledToContainerCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToPackingCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToSupplierBatch = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToArriveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledToProduceDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledToExpireDate = table.Column<DateTime>(type: "datetime2", nullable: false),
HandledToLot = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToLocationCode = table.Column<string>(type: "nvarchar(450)", nullable: true),
HandledToLocationArea = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToLocationGroup = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToLocationErpCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToWarehouseCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
HandledToQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MasterID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_KittingIssueNoteDetail", x => x.Id);
table.ForeignKey(
name: "FK_Store_KittingIssueNoteDetail_Store_KittingIssueNote_MasterID",
column: x => x.MasterID,
principalTable: "Store_KittingIssueNote",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Store_KittingIssueRequestDetail",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ToLocationCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationArea = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationGroup = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationErpCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToWarehouseCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ProdLine = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
IssuedQty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
ReceivedQty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
Status = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
PositionCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
RecommendType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
BoxQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MasterID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
ItemName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc1 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc2 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Uom = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Qty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
StdPackQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_KittingIssueRequestDetail", x => x.Id);
table.ForeignKey(
name: "FK_Store_KittingIssueRequestDetail_Store_KittingIssueRequest_MasterID",
column: x => x.MasterID,
principalTable: "Store_KittingIssueRequest",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Job_KittingIssueJob_Number",
table: "Job_KittingIssueJob",
column: "Number",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Job_KittingIssueJobDetail_MasterID",
table: "Job_KittingIssueJobDetail",
column: "MasterID");
migrationBuilder.CreateIndex(
name: "IX_Store_AssembleIssueRequest_Number",
table: "Store_AssembleIssueRequest",
column: "Number",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Store_AssembleIssueRequestDetail_ItemCode",
table: "Store_AssembleIssueRequestDetail",
column: "ItemCode");
migrationBuilder.CreateIndex(
name: "IX_Store_AssembleIssueRequestDetail_MasterID",
table: "Store_AssembleIssueRequestDetail",
column: "MasterID");
migrationBuilder.CreateIndex(
name: "IX_Store_AssembleIssueRequestDetail_Number_ItemCode_ToLocationCode",
table: "Store_AssembleIssueRequestDetail",
columns: new[] { "Number", "ItemCode", "ToLocationCode" },
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Store_CountNoteDependentDetail_MasterID",
table: "Store_CountNoteDependentDetail",
column: "MasterID");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingIssueNote_Number",
table: "Store_KittingIssueNote",
column: "Number",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Store_KittingIssueNoteDetail_HandledFromPackingCode",
table: "Store_KittingIssueNoteDetail",
column: "HandledFromPackingCode");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingIssueNoteDetail_MasterID",
table: "Store_KittingIssueNoteDetail",
column: "MasterID");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingIssueNoteDetail_Number_HandledFromPackingCode_HandledFromLocationCode_HandledToLocationCode",
table: "Store_KittingIssueNoteDetail",
columns: new[] { "Number", "HandledFromPackingCode", "HandledFromLocationCode", "HandledToLocationCode" },
unique: true,
filter: "[HandledFromPackingCode] IS NOT NULL AND [HandledFromLocationCode] IS NOT NULL AND [HandledToLocationCode] IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingIssueRequest_Number",
table: "Store_KittingIssueRequest",
column: "Number",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Store_KittingIssueRequestDetail_ItemCode",
table: "Store_KittingIssueRequestDetail",
column: "ItemCode");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingIssueRequestDetail_MasterID",
table: "Store_KittingIssueRequestDetail",
column: "MasterID");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingIssueRequestDetail_Number_ItemCode_ToLocationCode",
table: "Store_KittingIssueRequestDetail",
columns: new[] { "Number", "ItemCode", "ToLocationCode" },
unique: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Job_KittingIssueJobDetail");
migrationBuilder.DropTable(
name: "Store_AssembleIssueRequestDetail");
migrationBuilder.DropTable(
name: "Store_CountNoteDependentDetail");
migrationBuilder.DropTable(
name: "Store_KittingIssueNoteDetail");
migrationBuilder.DropTable(
name: "Store_KittingIssueRequestDetail");
migrationBuilder.DropTable(
name: "Job_KittingIssueJob");
migrationBuilder.DropTable(
name: "Store_AssembleIssueRequest");
migrationBuilder.DropTable(
name: "Store_KittingIssueNote");
migrationBuilder.DropTable(
name: "Store_KittingIssueRequest");
migrationBuilder.DropColumn(
name: "InventoryMode",
table: "Store_CountPlan");
migrationBuilder.DropColumn(
name: "InventoryStage",
table: "Store_CountPlan");
migrationBuilder.DropColumn(
name: "CountJobNumber",
table: "Store_CountNote");
migrationBuilder.DropColumn(
name: "CountPlanNumber",
table: "Job_CountJobDetail");
migrationBuilder.DropColumn(
name: "InventoryStage",
table: "Job_CountJobDetail");
migrationBuilder.DropColumn(
name: "InventoryStage",
table: "Job_CountJobDependentDetail");
migrationBuilder.DropColumn(
name: "InventoryMode",
table: "Job_CountJob");
migrationBuilder.DropColumn(
name: "InventoryStage",
table: "Job_CountJob");
migrationBuilder.AddColumn<string>(
name: "AuditCountDescription",
table: "Store_CountNoteDetail",
type: "nvarchar(64)",
maxLength: 64,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "AuditCountOperator",
table: "Store_CountNoteDetail",
type: "nvarchar(64)",
maxLength: 64,
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "AuditCountQty",
table: "Store_CountNoteDetail",
type: "decimal(18,6)",
precision: 18,
scale: 6,
nullable: false,
defaultValue: 0m);
migrationBuilder.AddColumn<DateTime>(
name: "AuditCountTime",
table: "Store_CountNoteDetail",
type: "datetime2",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "FirstCountDescription",
table: "Store_CountNoteDetail",
type: "nvarchar(64)",
maxLength: 64,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "FirstCountOperator",
table: "Store_CountNoteDetail",
type: "nvarchar(64)",
maxLength: 64,
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "FirstCountQty",
table: "Store_CountNoteDetail",
type: "decimal(18,6)",
precision: 18,
scale: 6,
nullable: false,
defaultValue: 0m);
migrationBuilder.AddColumn<DateTime>(
name: "FirstCountTime",
table: "Store_CountNoteDetail",
type: "datetime2",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "RepeatCountDescription",
table: "Store_CountNoteDetail",
type: "nvarchar(64)",
maxLength: 64,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "RepeatCountOperator",
table: "Store_CountNoteDetail",
type: "nvarchar(64)",
maxLength: 64,
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "RepeatCountQty",
table: "Store_CountNoteDetail",
type: "decimal(18,6)",
precision: 18,
scale: 6,
nullable: false,
defaultValue: 0m);
migrationBuilder.AddColumn<DateTime>(
name: "RepeatCountTime",
table: "Store_CountNoteDetail",
type: "datetime2",
nullable: true);
migrationBuilder.CreateTable(
name: "Store_AssembleIssueRequests",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ActiveDate = table.Column<DateTime>(type: "datetime2", nullable: false),
AutoAgree = table.Column<bool>(type: "bit", nullable: false),
AutoCompleteJob = table.Column<bool>(type: "bit", nullable: false),
AutoHandle = table.Column<bool>(type: "bit", nullable: false),
AutoSubmit = table.Column<bool>(type: "bit", nullable: false),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DirectCreateNote = table.Column<bool>(type: "bit", nullable: false),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
RequestStatus = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Type = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
UseOnTheWayLocation = table.Column<bool>(type: "bit", nullable: false),
Worker = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_AssembleIssueRequests", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Store_AssembleIssueRequestsDetail",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
BoxQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IssuedQty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
ItemCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ItemDesc1 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc2 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MasterID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Number = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
PositionCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ProdLine = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
Qty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
ReceivedQty = table.Column<decimal>(type: "decimal(18,6)", precision: 18, scale: 6, nullable: false),
RecommendType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
Status = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
StdPackQty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ToLocationArea = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationErpCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToLocationGroup = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ToWarehouseCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Uom = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_AssembleIssueRequestsDetail", x => x.Id);
table.ForeignKey(
name: "FK_Store_AssembleIssueRequestsDetail_Store_AssembleIssueRequests_MasterID",
column: x => x.MasterID,
principalTable: "Store_AssembleIssueRequests",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Store_AssembleIssueRequests_Number",
table: "Store_AssembleIssueRequests",
column: "Number",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Store_AssembleIssueRequestsDetail_ItemCode",
table: "Store_AssembleIssueRequestsDetail",
column: "ItemCode");
migrationBuilder.CreateIndex(
name: "IX_Store_AssembleIssueRequestsDetail_MasterID",
table: "Store_AssembleIssueRequestsDetail",
column: "MasterID");
migrationBuilder.CreateIndex(
name: "IX_Store_AssembleIssueRequestsDetail_Number_ItemCode_ToLocationCode",
table: "Store_AssembleIssueRequestsDetail",
columns: new[] { "Number", "ItemCode", "ToLocationCode" },
unique: true);
}
}
}

32112
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422032715_Added_KittingPackagingNoteV2.Designer.cs

File diff suppressed because it is too large

137
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422032715_Added_KittingPackagingNoteV2.cs

@ -0,0 +1,137 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Win_in.Sfs.Wms.Store.Migrations
{
public partial class Added_KittingPackagingNoteV2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Store_KittingPackagingNote",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
KittingCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true),
Worker = table.Column<string>(type: "nvarchar(max)", nullable: true),
Number = table.Column<string>(type: "nvarchar(450)", nullable: true),
ActiveDate = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_KittingPackagingNote", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Store_KittingPackagingNoteChassisDetail",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ChassisSortNumber = table.Column<long>(type: "bigint", nullable: false),
KittingCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MasterID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Number = table.Column<string>(type: "nvarchar(max)", nullable: true),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_KittingPackagingNoteChassisDetail", x => x.Id);
table.ForeignKey(
name: "FK_Store_KittingPackagingNoteChassisDetail_Store_KittingPackagingNote_MasterID",
column: x => x.MasterID,
principalTable: "Store_KittingPackagingNote",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Store_KittingPackagingNoteDetail",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ItemCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ItemName = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc1 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
ItemDesc2 = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
Qty = table.Column<decimal>(type: "decimal(18,6)", nullable: false),
KittingCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MasterID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Number = table.Column<string>(type: "nvarchar(max)", nullable: true),
Remark = table.Column<string>(type: "nvarchar(3072)", maxLength: 3072, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Store_KittingPackagingNoteDetail", x => x.Id);
table.ForeignKey(
name: "FK_Store_KittingPackagingNoteDetail_Store_KittingPackagingNote_MasterID",
column: x => x.MasterID,
principalTable: "Store_KittingPackagingNote",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Store_KittingPackagingNote_Number",
table: "Store_KittingPackagingNote",
column: "Number",
unique: true,
filter: "[Number] IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingPackagingNoteChassisDetail_KittingCode",
table: "Store_KittingPackagingNoteChassisDetail",
column: "KittingCode",
unique: true,
filter: "[KittingCode] IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingPackagingNoteChassisDetail_MasterID",
table: "Store_KittingPackagingNoteChassisDetail",
column: "MasterID");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingPackagingNoteDetail_KittingCode",
table: "Store_KittingPackagingNoteDetail",
column: "KittingCode",
unique: true,
filter: "[KittingCode] IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_Store_KittingPackagingNoteDetail_MasterID",
table: "Store_KittingPackagingNoteDetail",
column: "MasterID");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Store_KittingPackagingNoteChassisDetail");
migrationBuilder.DropTable(
name: "Store_KittingPackagingNoteDetail");
migrationBuilder.DropTable(
name: "Store_KittingPackagingNote");
}
}
}

1979
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/StoreDbContextModelSnapshot.cs

File diff suppressed because it is too large

61
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs

@ -0,0 +1,61 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.Modeling;
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;
public static class KittingPackagingNoteDbContextModelCreatingExtensions
{
public static void ConfigureKittingPackagingNote(this ModelBuilder builder, StoreModelBuilderConfigurationOptions options)
{
builder.Entity<KittingPackagingNote>(b =>
{
//Configure table & schema name
b.ToTable(options.TablePrefix + nameof(KittingPackagingNote), options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Configure Sfs base properties
b.ConfigureSfsBase();
//Properties
b.Property(q => q.KittingCode).HasMaxLength(SfsPropertyConst.CodeLength);
//Relations
b.HasMany(q => q.Details).WithOne().HasForeignKey(d => d.MasterID).IsRequired();
b.HasMany(q => q.DepDetails).WithOne().HasForeignKey(d => d.MasterID).IsRequired();
//Indexes
b.HasIndex(q => new { q.Number }).IsUnique();
});
builder.Entity<KittingPackagingNoteDetail>(b =>
{
//Configure table & schema name
b.ToTable(options.TablePrefix + nameof(KittingPackagingNoteDetail), options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Configure Sfs base properties
b.ConfigureSfsBase();
//Configure Job base properties
b.ConfigureSfsStoreDetailBase();
//Properties
b.Property(q => q.KittingCode).HasMaxLength(SfsPropertyConst.CodeLength);
//Indexes
b.HasIndex(q => new { q.KittingCode }).IsUnique();
});
builder.Entity<KittingPackagingNoteChassisDetail>(b =>
{
//Configure table & schema name
b.ToTable(options.TablePrefix + nameof(KittingPackagingNoteChassisDetail), options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Configure Sfs base properties
b.ConfigureSfsBase();
//Properties
b.Property(q => q.KittingCode).HasMaxLength(SfsPropertyConst.CodeLength);
//Indexes
b.HasIndex(q => new { q.KittingCode }).IsUnique();
});
}
}

11
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteEfCoreRepository.cs

@ -0,0 +1,11 @@
using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore;
public class KittingPackagingNoteEfCoreRepository : SfsJobEfCoreRepositoryBase<StoreDbContext, KittingPackagingNote>, IKittingPackagingNoteRepository
{
public KittingPackagingNoteEfCoreRepository(IDbContextProvider<StoreDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}

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

@ -142,6 +142,8 @@ public class StoreDbContext : AbpDbContext<StoreDbContext>, IStoreDbContext
//底盘序列 //底盘序列
public DbSet<ChassisOperationSequence> ChassisOperationSequence { get; set; } public DbSet<ChassisOperationSequence> ChassisOperationSequence { get; set; }
public DbSet<KittingPackagingNote> KittingPackagingNote { get; set; }
public StoreDbContext(DbContextOptions<StoreDbContext> options) public StoreDbContext(DbContextOptions<StoreDbContext> options)
: base(options) : base(options)
{ {

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

@ -112,6 +112,7 @@ public static class StoreDbContextModelCreatingExtensions
builder.ConfigureMesRecord(options); builder.ConfigureMesRecord(options);
builder.ConfigureInjectioModelPlan(options); builder.ConfigureInjectioModelPlan(options);
builder.ConfigureCustomerProductionReturnNote(options); builder.ConfigureCustomerProductionReturnNote(options);
builder.ConfigureKittingPackagingNote(options);
#endregion #endregion
#region Jobs #region Jobs

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

@ -162,6 +162,8 @@ public class StoreEntityFrameworkCoreModule : AbpModule
context.Services.AddTransient<IChassisRepository, ChassisEfCoreRepository>(); context.Services.AddTransient<IChassisRepository, ChassisEfCoreRepository>();
context.Services.AddTransient<IChassisOperationSequenceRepository, ChassisOperationSequenceEfCoreRepository>(); context.Services.AddTransient<IChassisOperationSequenceRepository, ChassisOperationSequenceEfCoreRepository>();
context.Services.AddTransient<IKittingPackagingNoteRepository, KittingPackagingNoteEfCoreRepository>();
} }
private void ConfigureEntity() private void ConfigureEntity()
@ -344,6 +346,10 @@ public class StoreEntityFrameworkCoreModule : AbpModule
options.Entity<CustomerProductionReturnNote>(orderOptions => options.Entity<CustomerProductionReturnNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<KittingPackagingNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)
.Include(o => o.DepDetails));
#endregion #endregion
#region Jobs #region Jobs

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Plans/CountPlanAutoMapperProfile.cs

@ -47,6 +47,7 @@ public partial class StoreEventAutoMapperProfile : Profile
.Ignore(x => x.ArriveDate) .Ignore(x => x.ArriveDate)
.Ignore(x => x.ProduceDate) .Ignore(x => x.ProduceDate)
.Ignore(x => x.ExpireDate) .Ignore(x => x.ExpireDate)
.Ignore(x=>x.InventoryStage)
; ;
//盘点计划映射到盘点记录 //盘点计划映射到盘点记录

61
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs

@ -249,6 +249,11 @@ public class InjectionIssueRequestEventHandler
var productionLineItemDto = var productionLineItemDto =
productionLineItemDtos.FirstOrDefault(p => p.ItemCode == injectionRequestDetail.ItemCode); productionLineItemDtos.FirstOrDefault(p => p.ItemCode == injectionRequestDetail.ItemCode);
if (productionLineItemDto == null)
{
throw new UserFriendlyException(
$"物品代码【{injectionRequestDetail.ItemCode}】在生产线【{productionLineDto.Code}】中没有对应的【生产线物品关系】");
}
var input = new RecommendBalanceRequestInput var input = new RecommendBalanceRequestInput
{ {
ItemCode = injectionRequestDetail.ItemCode, ItemCode = injectionRequestDetail.ItemCode,
@ -269,19 +274,9 @@ public class InjectionIssueRequestEventHandler
await BuildInjectionIssueJobDetailWithQtyTypeAsync(injectionRequestDetail, recommend, await BuildInjectionIssueJobDetailWithQtyTypeAsync(injectionRequestDetail, recommend,
toLocationGroupCode) toLocationGroupCode)
.ConfigureAwait(false); .ConfigureAwait(false);
if (injectionRequest.UseOnTheWayLocation)
{
//获取在途库
var locationDto = await _locationAppService.GetFirstByTypeAsync(EnumLocationType.TRANSPORT)
.ConfigureAwait(false);
detail.OnTheWayLocationCode = locationDto.Code;
}
jobDetails.Add(detail); jobDetails.Add(detail);
injectionRequestDetail.IssuedQty += recommend.Qty;
//await _injectionRequestManager.UpdateDetailsAsync(injectionRequest).ConfigureAwait(false);
} }
} }
@ -298,36 +293,63 @@ public class InjectionIssueRequestEventHandler
private async Task<InjectionIssueJobDetailInput> BuildInjectionIssueJobDetailWithQtyTypeAsync( private async Task<InjectionIssueJobDetailInput> BuildInjectionIssueJobDetailWithQtyTypeAsync(
InjectionIssueRequestDetail injectionRequestDetail, BalanceDTO balance, string toLocationGroupCode) InjectionIssueRequestDetail injectionRequestDetail, BalanceDTO balance, string toLocationGroupCode)
{ {
//ProductionLineDTO prodLine = await _productionLineAppService.GetByLocationGroupCodeAsync(toLocationGroupCode).ConfigureAwait(false); var detail = new InjectionIssueJobDetailInput();
var detail = ObjectMapper.Map<BalanceDTO, InjectionIssueJobDetailInput>(balance);
detail.RequestLocationCode = injectionRequestDetail.ToLocationCode; detail.RequestLocationCode = injectionRequestDetail.ToLocationCode;
detail.RequestLocationGroup=injectionRequestDetail.ToLocationGroup;
detail.RequestLocationArea = injectionRequestDetail.ToLocationArea;
detail.RequestLocationErpCode = injectionRequestDetail.ToLocationErpCode;
detail.RequestWarehouseCode=injectionRequestDetail.ToWarehouseCode;
detail.PositionCode = injectionRequestDetail.PositionCode; detail.PositionCode = injectionRequestDetail.PositionCode;
detail.RecommendType = injectionRequestDetail.RecommendType; detail.RecommendType = injectionRequestDetail.RecommendType;
detail.ProdLine = injectionRequestDetail.ToLocationCode;
detail.ItemCode = injectionRequestDetail.ItemCode;
detail.ItemName=injectionRequestDetail.ItemName;
detail.ItemDesc1=injectionRequestDetail.ItemDesc1;
detail.ItemDesc2 = injectionRequestDetail.ItemDesc2;
detail.StdPackQty = injectionRequestDetail.StdPackQty;
detail.RequestQty= injectionRequestDetail.Qty;
detail.Status = EnumInventoryStatus.OK;
detail.Uom = balance.Uom;
detail.RecommendFromPackingCode = balance.PackingCode; detail.RecommendFromPackingCode = balance.PackingCode;
detail.RecommendFromContainerCode = balance.ContainerCode; detail.RecommendFromContainerCode = balance.ContainerCode;
detail.RecommendFromLot = balance.Lot;
detail.RecommendFromQty = balance.Qty;
detail.RecommendFromSupplierBatch = balance.SupplierBatch; detail.RecommendFromSupplierBatch = balance.SupplierBatch;
detail.RecommendFromProduceDate = balance.ProduceDate; detail.RecommendFromProduceDate = balance.ProduceDate;
detail.RecommendFromExpireDate = balance.ExpireDate; detail.RecommendFromExpireDate = balance.ExpireDate;
detail.RecommendFromLot = balance.Lot;
detail.RecommendFromProduceDate = balance.ProduceDate; detail.RecommendFromProduceDate = balance.ProduceDate;
detail.RecommendFromArriveDate = balance.ArriveDate; detail.RecommendFromArriveDate = balance.ArriveDate;
detail.RecommendFromLocationArea = balance.LocationArea; detail.RecommendFromLocationArea = balance.LocationArea;
detail.RecommendFromLocationCode = balance.LocationCode; detail.RecommendFromLocationCode = balance.LocationCode;
detail.RecommendFromLocationErpCode = balance.LocationErpCode; detail.RecommendFromLocationErpCode = balance.LocationErpCode;
detail.RecommendFromLocationGroup = balance.LocationGroup; detail.RecommendFromLocationGroup = balance.LocationGroup;
detail.RecommendFromWarehouseCode = balance.WarehouseCode; detail.RecommendFromWarehouseCode = balance.WarehouseCode;
detail.RecommendFromQty = balance.Qty;
detail.Uom = balance.Uom; detail.RecommendToPackingCode = balance.PackingCode;
detail.RecommendToContainerCode = balance.ContainerCode;
detail.RecommendToLot = balance.Lot;
detail.RecommendToQty = balance.Qty;
detail.RecommendToSupplierBatch = balance.SupplierBatch;
detail.RecommendToProduceDate = balance.ProduceDate;
detail.RecommendToExpireDate = balance.ExpireDate;
detail.RecommendToProduceDate = balance.ProduceDate;
detail.RecommendToArriveDate = balance.ArriveDate;
detail.RecommendToLocationCode = injectionRequestDetail.ToLocationCode; detail.RecommendToLocationCode = injectionRequestDetail.ToLocationCode;
detail.RecommendToLocationErpCode = injectionRequestDetail.ToLocationErpCode; detail.RecommendToLocationErpCode = injectionRequestDetail.ToLocationErpCode;
detail.RecommendToLocationArea = injectionRequestDetail.ToLocationArea; detail.RecommendToLocationArea = injectionRequestDetail.ToLocationArea;
detail.RecommendToWarehouseCode = injectionRequestDetail.ToWarehouseCode; detail.RecommendToWarehouseCode = injectionRequestDetail.ToWarehouseCode;
detail.RecommendToLocationGroup = injectionRequestDetail.ToLocationGroup;
//detail.ProdLine = prodLine == null ? toLocationGroupCode : prodLine.Code;
detail.ProdLine = toLocationGroupCode;
await Task.CompletedTask.ConfigureAwait(false); await Task.CompletedTask.ConfigureAwait(false);
return detail; return detail;
} }
@ -388,7 +410,7 @@ public class InjectionIssueRequestEventHandler
.RawLocationCodeListJson) .RawLocationCodeListJson)
}; };
var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false); var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false);
usableList = usableList.Where(p => !useBalanceList.Contains(p.PackingCode)).ToList(); usableList = usableList.Where(p => !useBalanceList.Contains(p.PackingCode) && p.Qty!=0).ToList();
if (usableList.Any()) if (usableList.Any())
{ {
for (var i = 0; i < sumBoxQty; i++) for (var i = 0; i < sumBoxQty; i++)
@ -462,6 +484,7 @@ public class InjectionIssueRequestEventHandler
detail.ItemName=injectionRequestDetail.ItemName; detail.ItemName=injectionRequestDetail.ItemName;
detail.ItemDesc1=injectionRequestDetail.ItemDesc1; detail.ItemDesc1=injectionRequestDetail.ItemDesc1;
detail.ItemDesc2 = injectionRequestDetail.ItemDesc2; detail.ItemDesc2 = injectionRequestDetail.ItemDesc2;
detail.StdPackQty = injectionRequestDetail.StdPackQty;
detail.Status = EnumInventoryStatus.OK; detail.Status = EnumInventoryStatus.OK;
detail.Uom = balance.Uom; detail.Uom = balance.Uom;

Loading…
Cancel
Save