Browse Source

代码合并

dev_DY_CC
郑勃旭 1 year ago
parent
commit
25dfc20f07
  1. 1
      .gitignore
  2. 53
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs
  3. 8
      be/DataExchange/Iac/Win_in.Sfs.Wms.DataExchange.Iac.QadAgent/Properties/launchSettings.json
  4. 25
      be/Hosts/Basedata.Host/Win_in.Sfs.Basedata.HttpApi.Host/BasedataHttpApiHostModule.cs
  5. 20
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
  6. 137
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferLibJobController.cs
  7. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs
  8. 7
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationModule.cs
  9. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs
  10. 141
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Caches/CacheAppService.cs
  11. 8
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs
  12. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs
  13. 11
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs
  14. 47
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Caches/Cache.cs
  15. 28
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumInventoryMode.cs
  16. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDTO.cs
  17. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDependentDetailDTO.cs
  18. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDetailDTO.cs
  19. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/ICountJobAppService.cs
  20. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobDetailInput.cs
  21. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobEditInput.cs
  22. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AssembleIssueJobs/Inputs/AssembleIssueJobEditInput.cs
  23. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/CountNotes/DTOs/CountNoteDTO.cs
  24. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs
  25. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/DTOs/CountPlanDTO.cs
  26. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/ICountPlanAppService.cs
  27. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanCreateRequestInput.cs
  28. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanEditInput.cs
  29. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanImportInput.cs
  30. 24
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/AssembleIssueRequestPermissions.cs
  31. 27
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/AssembleIssueRequestsPermissions.cs
  32. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/DTOs/AssembleIssueRequestDTO.cs
  33. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/DTOs/AssembleIssueRequestDetailDTO.cs
  34. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/IAssembleIssueRequestAppService.cs
  35. 13
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/IAssembleIssueRequestsAppService.cs
  36. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestDetailInput.cs
  37. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestEditInput.cs
  38. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestImportInput.cs
  39. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/IInjectionIssueRequestAppService.cs
  40. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/DTOs/KittingIssueRequestDTO.cs
  41. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/DTOs/KittingIssueRequestDetailDTO.cs
  42. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/IKittingIssueRequestAppService.cs
  43. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/Inputs/KittingIssueRequestDetailInput.cs
  44. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/Inputs/KittingIssueRequestEditInput.cs
  45. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/Inputs/KittingIssueRequestImportInput.cs
  46. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/KittingIssueRequestPermissions.cs
  47. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj
  48. 26
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAppService.cs
  49. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs
  50. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs
  51. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/CountNotes/CountNoteAutoMapperProfile.cs
  52. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/IssueNotes/InjectionIssueNotes/InjectionIssueNoteAppService.cs
  53. 10
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Plans/CountPlans/CountPlanAppService.cs
  54. 44
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/AssembleIssueRequests/AssembleIssueRequestAppService.cs
  55. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/AssembleIssueRequests/AssembleIssueRequestAutoMapperProfile.cs
  56. 38
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
  57. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAppService.cs
  58. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
  59. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJob.cs
  60. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobDependentDetail.cs
  61. 11
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobDetail.cs
  62. 60
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs
  63. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/ICountJobManager.cs
  64. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/CountNotes/CountNote.cs
  65. 58
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/CountNotes/CountNoteDependentDetail.cs
  66. 61
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/CountNotes/CountNoteDetail.cs
  67. 49
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/CountNotes/CountNoteManager.cs
  68. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlan.cs
  69. 16
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs
  70. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/ICountPlanManager.cs
  71. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequest.cs
  72. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestDetail.cs
  73. 20
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestManager.cs
  74. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/IAssembleIssueRequestManager.cs
  75. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/IAssembleIssueRequestRepository.cs
  76. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/IAssembleIssueRequestsManager.cs
  77. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/IKittingIssueRequestManager.cs
  78. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/IKittingIssueRequestRepository.cs
  79. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequest.cs
  80. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequestDetail.cs
  81. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequestManager.cs
  82. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Win_in.Sfs.Wms.Store.Domain.csproj
  83. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/IStoreDbContext.cs
  84. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/CountJobs/CountJobDbContextModelCreatingExtensions.cs
  85. 34
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/CountNotes/CountNoteDbContextModelCreatingExtensions.cs
  86. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Plans/CountPlans/CountPlanDbContextModelCreatingExtensions.cs
  87. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestDbContextModelCreatingExtensions.cs
  88. 11
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestEfCoreRepository.cs
  89. 11
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestsEfCoreRepository.cs
  90. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/CoatingIssueRequests/CoatingIssueRequestDbContextModelCreatingExtensions.cs
  91. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/CoatingIssueRequests/CoatingIssueRequestEfCoreRepository.cs
  92. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequestDbContextModelCreatingExtensions.cs
  93. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequestEfCoreRepository.cs
  94. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContext.cs
  95. 16
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContextModelCreatingExtensions.cs
  96. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs
  97. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Win_in.Sfs.Wms.Store.EntityFrameworkCore.csproj
  98. 16
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/CountJobAutoMapperProfile.cs
  99. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Plans/CountPlanAutoMapperProfile.cs
  100. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/AssembleIssueRequestAutoMapperProfile.cs

1
.gitignore

@ -1 +1,2 @@
**/node_modules/ **/node_modules/
/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/Properties/PublishProfiles/FolderProfile3.pubxml

53
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs

@ -19,16 +19,13 @@ using Win_in.Sfs.Wms.Store.Application.Contracts;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
using System.IdentityModel.Tokens.Jwt; using System.IdentityModel.Tokens.Jwt;
using Volo.Abp; using Volo.Abp;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming; namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming;
public class InjectionMoldingRequestReader : IReader public class InjectionMoldingRequestReader : IReader
{ {
private readonly IInjectionIssueRequestAppService _injectionRequest; private readonly IInjectionIssueRequestAppService _injectionRequest;
private readonly IItemBasicAppService _itemService; private readonly IItemBasicAppService _itemService;
private readonly ILocationAppService _locService; private readonly ILocationAppService _locService;
private readonly ILogger<InjectionMoldingRequestReader> _logger; private readonly ILogger<InjectionMoldingRequestReader> _logger;
private readonly IOptions<InjectionMoldingTaskOptions> _options; private readonly IOptions<InjectionMoldingTaskOptions> _options;
private readonly IHttpClientFactory _httpClientFactory; private readonly IHttpClientFactory _httpClientFactory;
@ -53,15 +50,6 @@ public class InjectionMoldingRequestReader : IReader
_locService = locService; _locService = locService;
} }
/// <summary> /// <summary>
/// 读取注塑叫料任务 /// 读取注塑叫料任务
/// </summary> /// </summary>
@ -127,7 +115,6 @@ public class InjectionMoldingRequestReader : IReader
_logger.LogInformation(error); _logger.LogInformation(error);
} }
return new List<IncomingFromExternal>(); return new List<IncomingFromExternal>();
} }
// 创建新的注塑请求并将数据写入数据库 // 创建新的注塑请求并将数据写入数据库
await _injectionRequest.CreateAsync(input).ConfigureAwait(false); await _injectionRequest.CreateAsync(input).ConfigureAwait(false);
@ -194,27 +181,37 @@ public class InjectionMoldingRequestReader : IReader
/// <returns></returns> /// <returns></returns>
public async Task<string> ReaderCameraApi() public async Task<string> ReaderCameraApi()
{ {
// 从配置中获取远程摄像头的地址、用户名、密码和令牌
var address = _options.Value.AutoRemote.IpAddress;
var username = _options.Value.AutoRemote.UserName;
var password = _options.Value.AutoRemote.Password;
var token = _options.Value.AutoRemote.Token;
// 创建一个HttpClient实例 try
var client = _httpClientFactory.CreateClient(); {
// 从配置中获取远程摄像头的地址、用户名、密码和令牌
var address = _options.Value.AutoRemote.IpAddress;
var username = _options.Value.AutoRemote.UserName;
var password = _options.Value.AutoRemote.Password;
var token = _options.Value.AutoRemote.Token;
// 将用户名和密码转换为Base64编码的凭据,并设置请求的身份验证信息 // 创建一个HttpClient实例
var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}")); var client = _httpClientFactory.CreateClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", credentials);
// 将用户名和密码转换为Base64编码的凭据,并设置请求的身份验证信息
var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}"));
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", credentials);
// 发送GET请求到远程摄像头地址并等待响应
var response = await client.GetAsync(address).ConfigureAwait(false);
// 如果请求成功,则返回响应内容,否则返回错误信息 // 发送GET请求到远程摄像头地址并等待响应
if (response.IsSuccessStatusCode) var response = await client.GetAsync(address).ConfigureAwait(false);
// 如果请求成功,则返回响应内容,否则返回错误信息
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync().ConfigureAwait(false);
}
}
catch (HttpRequestException ex)
{ {
return await response.Content.ReadAsStringAsync().ConfigureAwait(false); _logger.LogInformation("远程摄像头连接失败:" + ex.Message);
} }
return "Error occurred"; return "Error occurred";

8
be/DataExchange/Iac/Win_in.Sfs.Wms.DataExchange.Iac.QadAgent/Properties/launchSettings.json

@ -0,0 +1,8 @@
{
"profiles": {
"WSL": {
"commandName": "WSL2",
"distributionName": ""
}
}
}

25
be/Hosts/Basedata.Host/Win_in.Sfs.Basedata.HttpApi.Host/BasedataHttpApiHostModule.cs

@ -20,6 +20,7 @@ using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore;
using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore;
using Volo.Abp.Swashbuckle; using Volo.Abp.Swashbuckle;
using Volo.Abp.Threading;
using Volo.Abp.Timing; using Volo.Abp.Timing;
using Volo.Abp.Users; using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Application; using Win_in.Sfs.Basedata.Application;
@ -67,19 +68,14 @@ public class BasedataHttpApiHostModule : ModuleBase<BasedataHttpApiHostModule>
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
//base.ConfigureServices(context);
//ConfigureAuditing();
////
//ConfigureBlobStoring();
//Configure<AbpClockOptions>(options =>
//{
// options.Kind = DateTimeKind.Local;
//});
base.ConfigureServices(context); base.ConfigureServices(context);
ConfigureAuditing(); ConfigureAuditing();
// //
ConfigureBlobStoring(); ConfigureBlobStoring();
} }
public override void PostConfigureServices(ServiceConfigurationContext context) public override void PostConfigureServices(ServiceConfigurationContext context)
@ -120,7 +116,20 @@ public class BasedataHttpApiHostModule : ModuleBase<BasedataHttpApiHostModule>
public override void OnApplicationInitialization(ApplicationInitializationContext context) public override void OnApplicationInitialization(ApplicationInitializationContext context)
{ {
CreateDatabase<BasedataDbContext>(context); CreateDatabase<BasedataDbContext>(context);
base.OnApplicationInitialization(context); base.OnApplicationInitialization(context);
//AsyncHelper.RunSync(async () =>
//{
// using (var scope = context.ServiceProvider.CreateScope())
// {
// await scope.ServiceProvider
// .GetRequiredService<CacheService>().StartAsync().ConfigureAwait(false);
// }
//});
} }
} }

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;
}
} }

137
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferLibJobController.cs

@ -0,0 +1,137 @@
using System;
using System.Collections.Generic;
using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
/// <summary>
///
/// </summary>
[ApiController]
[Route($"{PdaHostConst.ROOT_ROUTE}store/transferlib-job")]
public class TransferLibJobController : AbpController
{
private readonly ITransferLibJobAppService _transferLibJobAppService;
/// <summary>
///
/// </summary>
/// <param name="transferLibJobAppService"></param>
public TransferLibJobController(ITransferLibJobAppService transferLibJobAppService)
{
_transferLibJobAppService = transferLibJobAppService;
}
/// <summary>
/// 获取盘点任务详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("{id}")]
public virtual async Task<ActionResult<TransferLibJobDTO>> GetAsync(Guid id)
{
var result = await _transferLibJobAppService.GetAsync(id).ConfigureAwait(false);
return Ok(result);
}
/// <summary>
/// 获取列表 筛选
/// </summary>
/// <param name="sfsJobDTO"></param>
/// <returns></returns>
[HttpPost("list")]
public virtual async Task<PagedResultDto<TransferLibJobDTO>> GetListAsync(SfsJobRequestInputBase sfsJobDTO)
{
var list = await _transferLibJobAppService.GetPagedListByFilterAsync(sfsJobDTO, true).ConfigureAwait(false);
return list;
}
/// <summary>
/// 获取任务数量
/// </summary>
/// <returns></returns>
[HttpPost("count")]
public virtual async Task<ActionResult<long>> CountAsync(SfsJobRequestInputBase sfsJobDTO)
{
var count = await _transferLibJobAppService.GetCountByFilterAsync(sfsJobDTO).ConfigureAwait(false);
return Ok(count);
}
/// <summary>
/// 完成对应的请求
/// </summary>
/// <param name="id"></param>
/// <param name="jobDTO"></param>
/// <returns></returns>
[HttpPost("complete/{id}")]
public virtual async Task<TransferLibJobDTO> CompleteAsync(Guid id, TransferLibJobDTO jobDTO)
{
var entity = await _transferLibJobAppService.CompleteAsync(id, jobDTO).ConfigureAwait(false);
return entity;
}
/// <summary>
/// 承接任务
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("accept/{id}")]
public virtual async Task AcceptAsync(Guid id)
{
await _transferLibJobAppService.AcceptAsync(id).ConfigureAwait(false);
}
/// <summary>
/// 取消承接任务
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("cancel-accept/{id}")]
public virtual async Task CancelAcceptAsync(Guid id)
{
await _transferLibJobAppService.CancelAcceptAsync(id).ConfigureAwait(false);
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <returns></returns>
[HttpGet("list")]
public virtual async Task<PagedResultDto<TransferLibJobDTO>> GetListAsync(int pageSize, int pageIndex)
{
//var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
//var jsonCodes = JsonSerializer.Serialize(wlgCodes);
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
{
MaxResultCount = pageSize,
SkipCount = (pageIndex - 1) * pageSize,
Sorting = $"{nameof(TransferLibJobDTO.Priority)} ASC",
Condition = new Condition
{
Filters = new List<Filter>
{
//new(nameof(TransferLibJobDTO.WorkGroupCode),jsonCodes,"In"),
new(nameof(TransferLibJobDTO.JobStatus),jsonStatus,"In")
}
}
};
var list = await _transferLibJobAppService.GetPagedListByFilterAsync(request, true).ConfigureAwait(false);
return list;
}
}

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);

7
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationModule.cs

@ -3,6 +3,7 @@ using Volo.Abp.Application;
using Volo.Abp.AutoMapper; using Volo.Abp.AutoMapper;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
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.Shared.Application; using Win_in.Sfs.Shared.Application;
@ -19,10 +20,16 @@ public class BasedataApplicationModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
context.Services.AddAutoMapperObjectMapper<BasedataApplicationModule>(); context.Services.AddAutoMapperObjectMapper<BasedataApplicationModule>();
Configure<AbpAutoMapperOptions>(options => Configure<AbpAutoMapperOptions>(options =>
{ {
options.AddMaps<BasedataApplicationModule>(validate: true); options.AddMaps<BasedataApplicationModule>(validate: true);
}); });
} }
} }

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

@ -20,11 +20,14 @@ public class BomAppService :
SfsBaseDataAppServiceBase<Bom, BomDTO, SfsBaseDataRequestInputBase, BomEditInput, BomImportInput>, SfsBaseDataAppServiceBase<Bom, BomDTO, SfsBaseDataRequestInputBase, BomEditInput, BomImportInput>,
IBomAppService IBomAppService
{ {
private new readonly IBomRepository _repository; private new readonly IBomRepository _repository;
private readonly IBomManager _bomManager; private readonly IBomManager _bomManager;
private List<BomComponent> _bomList = new(); private List<BomComponent> _bomList = new();
public BomAppService(IBomRepository repository public BomAppService(IBomRepository repository
, IBomManager bomManager , IBomManager bomManager
, IDistributedCache<BomDTO> cache , IDistributedCache<BomDTO> cache

141
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Caches/CacheAppService.cs

@ -0,0 +1,141 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using DocumentFormat.OpenXml.Office2010.Drawing;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.Application.Services;
using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Caches;
using Win_in.Sfs.Basedata.Domain.Shared;
namespace Win_in.Sfs.Basedata.Application;
public class TaskQueue
{
private readonly List<TaskItem> _tasks = new List<TaskItem>();
public void Enqueue(string name, Action action)
{
_tasks.Add(new TaskItem { Name = name, Action = action });
}
public async Task StartAsync()
{
foreach (var task in _tasks)
{
await Task.Run(task.Action).ConfigureAwait(false);
}
}
}
public class TaskItem
{
public string Name { get; set; }
public Action Action { get; set; }
}
public class CycleOptions
{
/// <summary>
/// Boms缓存生命周期(秒)
/// </summary>
public int BomsCycle { get; set; }
}
/// <summary>
/// 提供缓存服务的类(堵塞以后修改再用)
/// </summary>
public class CacheService:ISingletonDependency
{
private readonly IServiceProvider _serviceProvider;
private readonly IOptions<CycleOptions> _options;
public CacheService(IServiceProvider serviceProvider, IOptions<CycleOptions> options)
{
_serviceProvider = serviceProvider;
_options = options;
}
/// <summary>
/// 生命周期操作
/// </summary>
private async Task BomsCycle()
{
//Task.Run(async () =>
//{
var reassigner = new Reassigner(DateTime.Now, new TimeSpan(0, 0, _options.Value.BomsCycle == 0 ? 60 : _options.Value.BomsCycle));
await reassigner.RunAsync(async () =>
{
using var serviceScope = _serviceProvider.CreateScope();
var repository = serviceScope.ServiceProvider.GetRequiredService<IBomRepository>();
Cache.Boms.Clear();
Cache.Boms = await repository.GetListAsync().ConfigureAwait(false);
}).ConfigureAwait(false);
//});
;
}
/// <summary>
/// 异步开始生命周期操作不能堵塞
/// </summary>
public async Task StartAsync()
{
BomsCycle();//异步处理不能堵塞主任务
}
}
public class Reassigner
{
private readonly TimeSpan _interval;
private DateTime _lasttime;
public Reassigner(DateTime lasttime, TimeSpan interval)
{
_lasttime = lasttime;
_interval = interval;
}
public async Task RunAsync(Action p_action)
{
while (true)
{
// 获取当前时间
var currentTime = DateTime.Now;
// 计算上次重新赋值到现在的时间间隔
var elapsed = currentTime - _lasttime;
// 检查时间间隔是否满足条件
if (elapsed >= _interval)
{
p_action();
// 重新赋值
//_value = await GetValueAsync();
// 更新最后更新时间
_lasttime = currentTime;
}
// 等待下一刻钟
await Task.Delay(_interval).ConfigureAwait(false);
}
}
}

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}】库位不存在");

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

@ -10,7 +10,8 @@ using Volo.Abp;
using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Repositories;
using Volo.Abp.Domain.Services; using Volo.Abp.Domain.Services;
using Win_in.Sfs.Basedata.Boms; using Win_in.Sfs.Basedata.Boms;
using Win_in.Sfs.Basedata.Caches;
using Win_in.Sfs.Basedata.Domain.Caches;
using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Domain.Shared;
@ -22,6 +23,7 @@ public class BomManager : DomainService, IBomManager
private readonly IBomRepository _repository; private readonly IBomRepository _repository;
private readonly IItemBasicRepository _itemBasicRepository; private readonly IItemBasicRepository _itemBasicRepository;
public BomManager(IBomRepository repository, IItemBasicRepository itemBasicRepository) public BomManager(IBomRepository repository, IItemBasicRepository itemBasicRepository)
{ {
_repository = repository; _repository = repository;
@ -143,6 +145,13 @@ public class BomManager : DomainService, IBomManager
return await _repository.GetListAsync(p => p.Product == product).ConfigureAwait(false); return await _repository.GetListAsync(p => p.Product == product).ConfigureAwait(false);
} }
public virtual async Task<List<Bom>> GetListAsync()
{
return await _repository.GetListAsync().ConfigureAwait(false);
}
public virtual async Task<List<Bom>> GetListWithPhantomItemAsync(string productItemCode, string mfgOp, DateTime validTime, bool onlyFromProductionPlan) public virtual async Task<List<Bom>> GetListWithPhantomItemAsync(string productItemCode, string mfgOp, DateTime validTime, bool onlyFromProductionPlan)
{ {
var where = BuildExpression(productItemCode, mfgOp, validTime, onlyFromProductionPlan); var where = BuildExpression(productItemCode, mfgOp, validTime, onlyFromProductionPlan);

47
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Caches/Cache.cs

@ -1,59 +1,28 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain;
namespace Win_in.Sfs.Basedata.Caches; namespace Win_in.Sfs.Basedata.Domain.Caches;
public static class Cache public static class Cache
{ {
public static List<Bom> Boms = new List<Bom>(); public static List<Bom> Boms = new List<Bom>();
public static async void BomsLifeCycle(int lifetime) public static void Clear()
{ {
var reassigner = new Reassigner(DateTime.Now,new TimeSpan(0,5,0)); Boms.Clear();
await reassigner.RunAsync(() => {
Boms.Clear();
}).ConfigureAwait(false);
} }
} }
public class Reassigner
{
private readonly TimeSpan _interval;
private DateTime _lasttime;
public Reassigner(DateTime lasttime, TimeSpan interval)
{
_lasttime = lasttime;
_interval = interval;
}
public async Task RunAsync(Action p_action)
{
while (true)
{
// 获取当前时间
var currentTime = DateTime.Now;
// 计算上次重新赋值到现在的时间间隔
var elapsed = currentTime - _lasttime;
// 检查时间间隔是否满足条件
if (elapsed >= _interval)
{
p_action();
// 重新赋值
//_value = await GetValueAsync();
// 更新最后更新时间
_lasttime = currentTime;
}
// 等待下一刻钟
await Task.Delay(_interval);
}
}
}

28
be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumInventoryMode.cs

@ -0,0 +1,28 @@
using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Shared.Domain.Shared;
/// <summary>
/// 盘点模式
/// </summary>
public enum EnumInventoryMode
{
/// <summary>
/// 未定义
/// </summary>
[Display(Name = "未定义")]
None = 0,
/// <summary>
/// 有箱码
/// </summary>
[Display(Name = "有箱码")]
ByPackingCode = 1,
/// <summary>
/// 无箱码
/// </summary>
[Display(Name = "无箱码")]
ByErpItemCode = 2,
}

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

@ -24,12 +24,24 @@ 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>
[Display(Name = "盘点方式")] [Display(Name = "盘点方式")]
public EnumCountMethod CountMethod { get; set; } public EnumCountMethod CountMethod { 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/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>

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

@ -1,5 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -12,4 +13,6 @@ public interface ICountJobAppService
Task CancelByCountPlanAsync(string countPlanNumber); Task CancelByCountPlanAsync(string countPlanNumber);
Task CloseByCountPlanAsync(string countPlanNumber); Task CloseByCountPlanAsync(string countPlanNumber);
Task<List<CountJob>> GetCountJobDependentDetailByPlanNumber(string countPlanNumber,int inventoryStage);
Task<List<CountJobDTO>> ResetStatusByNumberAsync(List<string> numbers);
} }

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>

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

@ -8,6 +8,18 @@ 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>
[Display(Name = "盘点模式")]
public EnumInventoryMode InventoryMode { get; set; }
/// <summary> /// <summary>
/// 盘点方式 /// 盘点方式
/// </summary> /// </summary>

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AssembleIssueJobs/Inputs/AssembleIssueJobEditInput.cs

@ -22,7 +22,7 @@ public class AssembleIssueJobEditInput : SfsJobCreateUpdateInputBase, ISfsJobCre
[Display(Name = "要货单号")] [Display(Name = "要货单号")]
[Required(ErrorMessage = "{0}是必填项")] [Required(ErrorMessage = "{0}是必填项")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string AssembleIssueRequestsNumber { get; set; } public string AssembleRequestNumber { get; set; }
/// <summary> /// <summary>
/// 叫料请求类型 /// 叫料请求类型

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/CountNotes/DTOs/CountNoteDTO.cs

@ -16,7 +16,10 @@ public class CountNoteDTO : SfsStoreDTOBase<CountNoteDetailDTO>, IHasNumber
/// </summary> /// </summary>
[Display(Name = "盘点计划单号")] [Display(Name = "盘点计划单号")]
public string CountPlanNumber { get; set; } public string CountPlanNumber { get; set; }
/// <summary>
/// 盘点任务单号
/// </summary>
public string CountJobNumber { get; set; }
/// <summary> /// <summary>
/// 类型 /// 类型
/// </summary> /// </summary>

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

@ -28,7 +28,7 @@ public class StorePermissionDefinitionProvider : PermissionDefinitionProvider
storeGroup.AddMaterialRequestPermission(); storeGroup.AddMaterialRequestPermission();
storeGroup.AddInjectionIssueRequestPermission(); storeGroup.AddInjectionIssueRequestPermission();
storeGroup.AddKittingIssueRequestPermission(); storeGroup.AddKittingIssueRequestPermission();
storeGroup.AddAssembleIssueRequestsPermission(); storeGroup.AddAssembleIssueRequestPermission();
storeGroup.AddThirdLocationRequestPermission(); storeGroup.AddThirdLocationRequestPermission();
storeGroup.AddContainerRequestPermission(); storeGroup.AddContainerRequestPermission();
storeGroup.AddIssueNotePermission(); storeGroup.AddIssueNotePermission();

12
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>
@ -58,6 +64,12 @@ public class CountPlanDTO : SfsStoreRequestDTOBase<CountPlanDetailDTO>
[Display(Name = "盘点方式")] [Display(Name = "盘点方式")]
public EnumCountMethod CountMethod { get; set; } public EnumCountMethod CountMethod { get; set; }
/// <summary>
/// 盘点模式
/// </summary>
[Display(Name = "盘点模式")]
public EnumInventoryMode InventoryMode { get; set; }
/// <summary> /// <summary>
/// 盘点的零件集合 /// 盘点的零件集合
/// </summary> /// </summary>

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/ICountPlanAppService.cs

@ -32,4 +32,5 @@ public interface ICountPlanAppService
Task ChangeStageAsync(Guid id, EnumCountStage stage); Task ChangeStageAsync(Guid id, EnumCountStage stage);
Task ChangeStageAsync(Guid id, List<string> detailIdList, EnumCountStage stage); Task ChangeStageAsync(Guid id, List<string> detailIdList, EnumCountStage stage);
Task ResetStatusByNumberAsync(string number);
} }

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>

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

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

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

@ -51,4 +51,16 @@ public class CountPlanImportInput : SfsStoreImportInputBase
[Required(ErrorMessage = "{0}是必填项")] [Required(ErrorMessage = "{0}是必填项")]
public EnumCountMethod CountMethod { get; set; } public EnumCountMethod CountMethod { get; set; }
/// <summary>
/// 盘点模式
/// </summary>
[Display(Name = "盘点模式")]
public EnumInventoryMode InventoryMode { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
[Display(Name = "盘点次数")]
public int InventoryStage { get; set; }
} }

24
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/AssembleIssueRequestPermissions.cs

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

27
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/AssembleIssueRequestsPermissions.cs

@ -1,27 +0,0 @@
using Volo.Abp.Authorization.Permissions;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public static class AssembleIssueRequestsPermissions
{
public const string Default = StorePermissions.GroupName + "." + nameof(AssembleIssueRequests);
public const string Create = Default + "." + StorePermissions.CreateStr;
public const string Update = Default + "." + StorePermissions.UpdateStr;
public const string Delete = Default + "." + StorePermissions.DeleteStr;
//自动叫料申请
public const string AutoAssembleIssueRequests = StorePermissions.GroupName + "." + nameof(AutoAssembleIssueRequests);
public static void AddAssembleIssueRequestsPermission(this PermissionGroupDefinition permissionGroup)
{
var AssembleIssueRequestsPermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(AssembleIssueRequests)));
AssembleIssueRequestsPermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr));
AssembleIssueRequestsPermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr));
AssembleIssueRequestsPermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr));
permissionGroup.AddPermission(AutoAssembleIssueRequests, StorePermissionDefinitionProvider.L(nameof(AutoAssembleIssueRequests)));
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/DTOs/AssembleIssueRequestsDTO.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/DTOs/AssembleIssueRequestDTO.cs

@ -2,7 +2,7 @@ using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class AssembleIssueRequestsDTO : SfsStoreRequestDTOBase<AssembleIssueRequestsDetailDTO>, IHasNumber public class AssembleIssueRequestDTO : SfsStoreRequestDTOBase<AssembleIssueRequestDetailDTO>, IHasNumber
{ {
/// <summary> /// <summary>
/// 叫料类型 /// 叫料类型

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/DTOs/AssembleIssueRequestsDetailDTO.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/DTOs/AssembleIssueRequestDetailDTO.cs

@ -6,7 +6,7 @@ using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class AssembleIssueRequestsDetailDTO : SfsStoreDetailWithQtyDTOBase public class AssembleIssueRequestDetailDTO : SfsStoreDetailWithQtyDTOBase
{ {
/// <summary> /// <summary>
/// 已发数量 /// 已发数量

13
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/IAssembleIssueRequestAppService.cs

@ -0,0 +1,13 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IAssembleIssueRequestAppService
: ISfsStoreRequestMasterAppServiceBase<AssembleIssueRequestDTO, SfsStoreRequestInputBase, AssembleIssueRequestEditInput, AssembleIssueRequestDetailDTO, SfsStoreRequestInputBase>
{
Task<AssembleIssueRequestDTO> CreateAndHandleAsync(AssembleIssueRequestEditInput input);
}

13
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/IAssembleIssueRequestsAppService.cs

@ -1,13 +0,0 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IAssembleIssueRequestsAppService
: ISfsStoreRequestMasterAppServiceBase<AssembleIssueRequestsDTO, SfsStoreRequestInputBase, AssembleIssueRequestsEditInput, AssembleIssueRequestsDetailDTO, SfsStoreRequestInputBase>
{
Task<AssembleIssueRequestsDTO> CreateAndHandleAsync(AssembleIssueRequestsEditInput input);
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestsDetailInput.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestDetailInput.cs

@ -5,7 +5,7 @@ using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class AssembleIssueRequestsDetailInput : SfsStoreDetailWithQtyInputBase public class AssembleIssueRequestDetailInput : SfsStoreDetailWithQtyInputBase
{ {
#region 目标库位信息 #region 目标库位信息

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestsEditInput.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestEditInput.cs

@ -4,7 +4,7 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class AssembleIssueRequestsEditInput : SfsStoreRequestCreateOrUpdateInputBase public class AssembleIssueRequestEditInput : SfsStoreRequestCreateOrUpdateInputBase
{ {
#region Base #region Base
@ -24,7 +24,7 @@ public class AssembleIssueRequestsEditInput : SfsStoreRequestCreateOrUpdateInput
/// 明细列表 /// 明细列表
/// </summary> /// </summary>
[Display(Name = "明细列表")] [Display(Name = "明细列表")]
public List<AssembleIssueRequestsDetailInput> Details { get; set; } = new List<AssembleIssueRequestsDetailInput>(); public List<AssembleIssueRequestDetailInput> Details { get; set; } = new List<AssembleIssueRequestDetailInput>();
#endregion #endregion
#region Create #region Create

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestsImportInput.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/AssembleIssueRequests/Inputs/AssembleIssueRequestImportInput.cs

@ -5,7 +5,7 @@ using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
[Display(Name = "叫料申请")] [Display(Name = "叫料申请")]
public class AssembleIssueRequestsImportInput : SfsStoreImportInputBase public class AssembleIssueRequestImportInput : SfsStoreImportInputBase
{ {
/// <summary> /// <summary>

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;
@ -16,4 +17,10 @@ public interface IInjectionIssueRequestAppService
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task<long> GetCountAsync(); Task<long> GetCountAsync();
/// <summary>
/// 获取物品类别列表
/// </summary>
/// <returns></returns>
Task<List<ItemBasicDTO>> GetItemCategoryListAsync();
} }

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/KittingIssueRequests/DTOs/KittingIssueRequestDTO.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/DTOs/KittingIssueRequestDTO.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/KittingIssueRequests/DTOs/KittingIssueRequestDetailDTO.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/DTOs/KittingIssueRequestDetailDTO.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/KittingIssueRequests/IKittingIssueRequestAppService.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/IKittingIssueRequestAppService.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/KittingIssueRequests/Inputs/KittingIssueRequestDetailInput.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/Inputs/KittingIssueRequestDetailInput.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/KittingIssueRequests/Inputs/KittingIssueRequestEditInput.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/Inputs/KittingIssueRequestEditInput.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/KittingIssueRequests/Inputs/KittingIssueRequestImportInput.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/Inputs/KittingIssueRequestImportInput.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/KittingIssueRequests/KittingIssueRequestPermissions.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/KittingIssueRequests/KittingIssueRequestPermissions.cs

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj

@ -11,10 +11,13 @@
<ItemGroup> <ItemGroup>
<Compile Remove="DocumentSettings\**" /> <Compile Remove="DocumentSettings\**" />
<Compile Remove="JisContainers\**" /> <Compile Remove="JisContainers\**" />
<Compile Remove="Requests\IssueRequest\InjectionRequests\**" />
<EmbeddedResource Remove="DocumentSettings\**" /> <EmbeddedResource Remove="DocumentSettings\**" />
<EmbeddedResource Remove="JisContainers\**" /> <EmbeddedResource Remove="JisContainers\**" />
<EmbeddedResource Remove="Requests\IssueRequest\InjectionRequests\**" />
<None Remove="DocumentSettings\**" /> <None Remove="DocumentSettings\**" />
<None Remove="JisContainers\**" /> <None Remove="JisContainers\**" />
<None Remove="Requests\IssueRequest\InjectionRequests\**" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -43,7 +46,7 @@
<ItemGroup> <ItemGroup>
<Folder Include="Orders" /> <Folder Include="Orders" />
<Folder Include="Requests\IssueRequest\InjectionRequests\" /> <Folder Include="Requests\MaterialRequests\" />
</ItemGroup> </ItemGroup>
</Project> </Project>

26
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAppService.cs

@ -52,6 +52,20 @@ public class CountJobAppService
return dtoList; return dtoList;
} }
/// <summary>
/// 根据选择的任务号码重置盘点任务
/// </summary>
/// <param name="numbers"></param>
/// <returns></returns>
[HttpPost("reset-status-by-number")]
public virtual async Task<List<CountJobDTO>> ResetStatusByNumberAsync(List<string> numbers)
{
var entityList= await _countJobManager.ResetStatusByNumberAsync(numbers).ConfigureAwait(false);
var dtoList = ObjectMapper.Map<List<CountJob>, List<CountJobDTO>>(entityList);
return dtoList;
}
public override async Task<CountJobDTO> CompleteAsync(Guid id, CountJobDTO dto) public override async Task<CountJobDTO> CompleteAsync(Guid id, CountJobDTO dto)
{ {
var input = new CountJobCheckInput var input = new CountJobCheckInput
@ -98,7 +112,19 @@ public class CountJobAppService
} }
} }
} }
[HttpPost("get-countjob-dependent-detail-by-plannumber")]
public virtual async Task<List<CountJob>> GetCountJobDependentDetailByPlanNumber(string countPlanNumber, int inventoryStage)
{
var entities = await _repository.GetListAsync(p => p.JobStatus == EnumJobStatus.Done && p.CountPlanNumber == countPlanNumber && p.InventoryStage == inventoryStage, true).ConfigureAwait(false);
for (int i = entities.Count - 1; i >= 0; i--)
{
var entitie = entities[i];
entitie.DepDetails.RemoveAll(r => r.InventoryStage != inventoryStage);
entitie.Details.RemoveAll(r => r.InventoryStage != inventoryStage);
}
return entities;
}
//[HttpPost("handle-count-job-async")] //[HttpPost("handle-count-job-async")]
//public virtual async Task HandleCountJobAsync(Guid guid, CountJobDTO dto) //public virtual async Task HandleCountJobAsync(Guid guid, CountJobDTO dto)
//{ //{

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

@ -77,7 +77,8 @@ public partial class StoreApplicationAutoMapperProfile : Profile
CreateMap<CountJobDetailDTO, CountJobDetail>() CreateMap<CountJobDetailDTO, CountJobDetail>()
; ;
CreateMap<CountJobDependentDetailDTO, CountJobDependentDetail>()
.ReverseMap();
CreateMap<CountJobDetailInput, CountJobDetail>() CreateMap<CountJobDetailInput, CountJobDetail>()
.IgnoreAuditedObjectProperties() .IgnoreAuditedObjectProperties()
.Ignore(x => x.MasterID) .Ignore(x => x.MasterID)

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>,

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/CountNotes/CountNoteAutoMapperProfile.cs

@ -45,26 +45,16 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.Number); .Ignore(x => x.Number);
CreateMap<CountNoteImportInput, CountNoteDetail>() CreateMap<CountNoteImportInput, CountNoteDetail>()
.ForMember(x => x.FirstCountQty, y => y.MapFrom(t => t.FirstCountQty))
.ForMember(x => x.FirstCountTime, y => y.MapFrom(t => DateTime.Now))
.ForMember(x => x.DetailStatus, y => y.MapFrom(t => EnumCountStatus.New)) .ForMember(x => x.DetailStatus, y => y.MapFrom(t => EnumCountStatus.New))
.ForMember(x => x.FinalCountQty, y => y.MapFrom(t => t.FirstCountQty)) .ForMember(x => x.FinalCountQty, y => y.MapFrom(t => t.FirstCountQty))
.Ignore(x => x.FirstCountOperator)
.Ignore(x => x.FirstCountDescription)
.Ignore(x => x.LocationArea) .Ignore(x => x.LocationArea)
.Ignore(x => x.LocationGroup) .Ignore(x => x.LocationGroup)
.Ignore(x => x.LocationErpCode) .Ignore(x => x.LocationErpCode)
.Ignore(x => x.WarehouseCode) .Ignore(x => x.WarehouseCode)
.Ignore(x => x.Uom) .Ignore(x => x.Uom)
.Ignore(x => x.CountLabel) .Ignore(x => x.CountLabel)
.Ignore(x => x.RepeatCountQty)
.Ignore(x => x.RepeatCountTime)
.Ignore(x => x.RepeatCountOperator)
.Ignore(x => x.RepeatCountDescription)
.Ignore(x => x.AuditCountQty)
.Ignore(x => x.AuditCountTime)
.Ignore(x => x.AuditCountOperator)
.Ignore(x => x.AuditCountDescription)
.Ignore(x => x.Stage) .Ignore(x => x.Stage)
.Ignore(x => x.Adjusted) .Ignore(x => x.Adjusted)
.Ignore(X => X.StdPackQty) .Ignore(X => X.StdPackQty)

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>,

10
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Plans/CountPlans/CountPlanAppService.cs

@ -131,6 +131,16 @@ public class CountPlanAppService :
await _countPlanManager.CompleteAsync(id, type).ConfigureAwait(false); await _countPlanManager.CompleteAsync(id, type).ConfigureAwait(false);
} }
// <summary>
// 更新计划状态
// </summary>
// <param name="id"></param>
// <returns></returns>
[HttpPost("reset-by-number")]
public virtual async Task ResetStatusByNumberAsync(string number)
{
await _countPlanManager.ResetStatusByNumberAsync(number).ConfigureAwait(false);
}
[HttpPost("check-status")] [HttpPost("check-status")]
public virtual async Task CheckStatusAsync(string number) public virtual async Task CheckStatusAsync(string number)
{ {

44
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/AssembleIssueRequests/AssembleIssueRequestsAppService.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/AssembleIssueRequests/AssembleIssueRequestAppService.cs

@ -31,12 +31,12 @@ namespace Win_in.Sfs.Wms.Store.Application;
/// </summary> /// </summary>
[Authorize] [Authorize]
[Route($"{StoreConsts.RootPath}assemble-request")] [Route($"{StoreConsts.RootPath}assemble-request")]
public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<AssembleIssueRequests, AssembleIssueRequestsDTO, public class AssembleIssueRequestAppService : SfsStoreRequestAppServiceBase<AssembleIssueRequest, AssembleIssueRequestDTO,
SfsStoreRequestInputBase, AssembleIssueRequestsEditInput, AssembleIssueRequestsDetail, AssembleIssueRequestsDetailDTO, SfsStoreRequestInputBase, AssembleIssueRequestEditInput, AssembleIssueRequestDetail, AssembleIssueRequestDetailDTO,
SfsStoreRequestInputBase, AssembleIssueRequestsImportInput>, SfsStoreRequestInputBase, AssembleIssueRequestImportInput>,
IAssembleIssueRequestsAppService IAssembleIssueRequestAppService
{ {
private readonly IAssembleIssueRequestsManager _assembleRequestManager; private readonly IAssembleIssueRequestManager _assembleRequestManager;
private readonly IItemStoreRelationAppService _itemStoreRelationApp; private readonly IItemStoreRelationAppService _itemStoreRelationApp;
private readonly IAreaAppService _areaApp; private readonly IAreaAppService _areaApp;
private readonly ILocationAppService _locationAppService; private readonly ILocationAppService _locationAppService;
@ -44,9 +44,9 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
private readonly IProductionLineAppService _productionLineAppService; private readonly IProductionLineAppService _productionLineAppService;
private readonly ITransactionTypeAppService _transactionTypeAppService; private readonly ITransactionTypeAppService _transactionTypeAppService;
public AssembleIssueRequestsAppService( public AssembleIssueRequestAppService(
IAssembleIssueRequestsRepository repository, IAssembleIssueRequestRepository repository,
IAssembleIssueRequestsManager assembleRequestManager, IAssembleIssueRequestManager assembleRequestManager,
IPreparationPlanManager preparationPlanManager, IPreparationPlanManager preparationPlanManager,
IItemStoreRelationAppService itemStoreRelationApp, IItemStoreRelationAppService itemStoreRelationApp,
IAreaAppService areaApp, IAreaAppService areaApp,
@ -70,14 +70,14 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
#region 东阳V2 #region 东阳V2
public override async Task<AssembleIssueRequestsDTO> HandleAsync(Guid id) public override async Task<AssembleIssueRequestDTO> HandleAsync(Guid id)
{ {
await Task.CompletedTask.ConfigureAwait(false); await Task.CompletedTask.ConfigureAwait(false);
return null; return null;
} }
[HttpPost("")] [HttpPost("")]
public override async Task<AssembleIssueRequestsDTO> CreateAsync(AssembleIssueRequestsEditInput input) public override async Task<AssembleIssueRequestDTO> CreateAsync(AssembleIssueRequestEditInput input)
{ {
foreach (var item in input.Details) foreach (var item in input.Details)
{ {
@ -113,11 +113,11 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
} }
await SetRequestAutoPropertiesAsync(input).ConfigureAwait(false); await SetRequestAutoPropertiesAsync(input).ConfigureAwait(false);
var entity = ObjectMapper.Map<AssembleIssueRequestsEditInput, AssembleIssueRequests>(input); var entity = ObjectMapper.Map<AssembleIssueRequestEditInput, AssembleIssueRequest>(input);
var result = await _assembleRequestManager.CreateByNumberAsync(entity).ConfigureAwait(false); var result = await _assembleRequestManager.CreateByNumberAsync(entity).ConfigureAwait(false);
var dto = ObjectMapper.Map<AssembleIssueRequests, AssembleIssueRequestsDTO>(result); var dto = ObjectMapper.Map<AssembleIssueRequest, AssembleIssueRequestDTO>(result);
return dto; return dto;
} }
@ -127,7 +127,7 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
/// </summary> /// </summary>
/// <param name="entity"></param> /// <param name="entity"></param>
/// <returns></returns> /// <returns></returns>
private async Task SetRequestAutoPropertiesAsync(AssembleIssueRequestsEditInput entity) private async Task SetRequestAutoPropertiesAsync(AssembleIssueRequestEditInput entity)
{ {
var tranType = await _transactionTypeAppService.GetByTransTypeAsync(EnumTransType.Issue, EnumTransSubType.None).ConfigureAwait(false); var tranType = await _transactionTypeAppService.GetByTransTypeAsync(EnumTransType.Issue, EnumTransSubType.None).ConfigureAwait(false);
Check.NotNull(tranType, "事务类型", "事务类型不存在"); Check.NotNull(tranType, "事务类型", "事务类型不存在");
@ -139,7 +139,7 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
} }
[HttpPost("create-and-handle")] [HttpPost("create-and-handle")]
public async Task<AssembleIssueRequestsDTO> CreateAndHandleAsync(AssembleIssueRequestsEditInput input) public async Task<AssembleIssueRequestDTO> CreateAndHandleAsync(AssembleIssueRequestEditInput input)
{ {
var assembleRequestDto = await CreateAsync(input).ConfigureAwait(false); var assembleRequestDto = await CreateAsync(input).ConfigureAwait(false);
@ -157,8 +157,8 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
/// </summary> /// </summary>
/// <param name="dictionary"></param> /// <param name="dictionary"></param>
/// <returns></returns> /// <returns></returns>
protected override async Task<Dictionary<AssembleIssueRequests, EntityState>> ImportProcessingEntityAsync( protected override async Task<Dictionary<AssembleIssueRequest, EntityState>> ImportProcessingEntityAsync(
Dictionary<AssembleIssueRequests, EntityState> dictionary) Dictionary<AssembleIssueRequest, EntityState> dictionary)
{ {
var addList = dictionary.Where(p => p.Value == EntityState.Added).Select(p => p.Key); var addList = dictionary.Where(p => p.Value == EntityState.Added).Select(p => p.Key);
@ -200,7 +200,7 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
/// <param name="model"></param> /// <param name="model"></param>
/// <param name="validationRresult"></param> /// <param name="validationRresult"></param>
/// <returns></returns> /// <returns></returns>
protected override async Task ValidateImportModelAsync(AssembleIssueRequestsImportInput model, protected override async Task ValidateImportModelAsync(AssembleIssueRequestImportInput model,
List<ValidationResult> validationRresult) List<ValidationResult> validationRresult)
{ {
_ = new Dictionary<string, string>(); _ = new Dictionary<string, string>();
@ -214,7 +214,7 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
#region 校验 #region 校验
protected override async Task<bool> ValidateImportEntities(Dictionary<AssembleIssueRequests, EntityState> dict) protected override async Task<bool> ValidateImportEntities(Dictionary<AssembleIssueRequest, EntityState> dict)
{ {
foreach (var entity in dict.Keys) foreach (var entity in dict.Keys)
{ {
@ -233,7 +233,7 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
return await base.ValidateImportEntities(dict).ConfigureAwait(false); return await base.ValidateImportEntities(dict).ConfigureAwait(false);
} }
protected async Task CheckAreaAsync(AssembleIssueRequestsImportInput importInput, protected async Task CheckAreaAsync(AssembleIssueRequestImportInput importInput,
List<ValidationResult> validationRresult) List<ValidationResult> validationRresult)
{ {
var area = await _areaApp.GetByCodeAsync(importInput.FromLocationArea).ConfigureAwait(false); var area = await _areaApp.GetByCodeAsync(importInput.FromLocationArea).ConfigureAwait(false);
@ -243,7 +243,7 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
} }
} }
protected async Task CheckStoreRelationAsync(AssembleIssueRequestsImportInput importInput, protected async Task CheckStoreRelationAsync(AssembleIssueRequestImportInput importInput,
List<ValidationResult> validationRresult) List<ValidationResult> validationRresult)
{ {
var itemStoreRelation = await _itemStoreRelationApp var itemStoreRelation = await _itemStoreRelationApp
@ -276,7 +276,7 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
} }
} }
protected async Task<ItemBasicDTO> CheckItemBasicAsync(AssembleIssueRequestsImportInput importInput, protected async Task<ItemBasicDTO> CheckItemBasicAsync(AssembleIssueRequestImportInput importInput,
List<ValidationResult> validationRresult) List<ValidationResult> validationRresult)
{ {
var item = await _itemBasicAppService.GetByCodeAsync(importInput.ItemCode).ConfigureAwait(false); var item = await _itemBasicAppService.GetByCodeAsync(importInput.ItemCode).ConfigureAwait(false);
@ -293,7 +293,7 @@ public class AssembleIssueRequestsAppService : SfsStoreRequestAppServiceBase<Ass
return item; return item;
} }
protected async Task<LocationDTO> CheckLocationAsync(AssembleIssueRequestsImportInput importInput, protected async Task<LocationDTO> CheckLocationAsync(AssembleIssueRequestImportInput importInput,
List<ValidationResult> validationRresult) List<ValidationResult> validationRresult)
{ {
var location = await _locationAppService.GetByCodeAsync(importInput.ToLocationCode).ConfigureAwait(false); var location = await _locationAppService.GetByCodeAsync(importInput.ToLocationCode).ConfigureAwait(false);

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/AssembleIssueRequests/AssembleIssueRequestsAutoMapperProfile.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/AssembleIssueRequests/AssembleIssueRequestAutoMapperProfile.cs

@ -8,22 +8,22 @@ namespace Win_in.Sfs.Wms.Store.Application;
public partial class StoreApplicationAutoMapperProfile : Profile public partial class StoreApplicationAutoMapperProfile : Profile
{ {
private void AssembleIssueRequestsAutoMapperProfile() private void AssembleIssueRequestAutoMapperProfile()
{ {
CreateMap<AssembleIssueRequests, AssembleIssueRequestsDTO>() CreateMap<AssembleIssueRequest, AssembleIssueRequestDTO>()
.ReverseMap(); .ReverseMap();
CreateMap<AssembleIssueRequestsDetail, AssembleIssueRequestsDetailDTO>() CreateMap<AssembleIssueRequestDetail, AssembleIssueRequestDetailDTO>()
.ReverseMap(); .ReverseMap();
CreateMap<AssembleIssueRequestsDetailInput, AssembleIssueRequestsDetail>() CreateMap<AssembleIssueRequestDetailInput, AssembleIssueRequestDetail>()
.IgnoreAuditedObjectProperties() .IgnoreAuditedObjectProperties()
.Ignore(x => x.MasterID) .Ignore(x => x.MasterID)
.Ignore(x => x.TenantId) .Ignore(x => x.TenantId)
.Ignore(x => x.Number) .Ignore(x => x.Number)
.Ignore(x => x.Id); .Ignore(x => x.Id);
CreateMap<AssembleIssueRequestsImportInput, AssembleIssueRequests>() CreateMap<AssembleIssueRequestImportInput, AssembleIssueRequest>()
.IgnoreAuditedObjectProperties() .IgnoreAuditedObjectProperties()
.ForMember(x => x.Type, y => y.MapFrom(t => t.Type.ToString())) .ForMember(x => x.Type, y => y.MapFrom(t => t.Type.ToString()))
.Ignore(x => x.UseOnTheWayLocation) .Ignore(x => x.UseOnTheWayLocation)
@ -37,7 +37,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.ActiveDate) .Ignore(x => x.ActiveDate)
.Ignore(x => x.Remark); .Ignore(x => x.Remark);
CreateMap<AssembleIssueRequestsImportInput, AssembleIssueRequestsDetail>() CreateMap<AssembleIssueRequestImportInput, AssembleIssueRequestDetail>()
.IgnoreAuditedObjectProperties() .IgnoreAuditedObjectProperties()
.ForMember(x => x.Status, y => y.MapFrom(t => EnumStatus.Open)) .ForMember(x => x.Status, y => y.MapFrom(t => EnumStatus.Open))
.Ignore(x => x.ToLocationErpCode) .Ignore(x => x.ToLocationErpCode)
@ -58,7 +58,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.Number) .Ignore(x => x.Number)
.Ignore(x => x.Id) .Ignore(x => x.Id)
.Ignore(x => x.Remark); .Ignore(x => x.Remark);
CreateMap<AssembleIssueRequestsEditInput, AssembleIssueRequests>() CreateMap<AssembleIssueRequestEditInput, AssembleIssueRequest>()
.IgnoreAuditedObjectProperties() .IgnoreAuditedObjectProperties()
.Ignore(x => x.RequestStatus) .Ignore(x => x.RequestStatus)
.Ignore(x => x.ConcurrencyStamp).Ignore(x => x.Id); .Ignore(x => x.ConcurrencyStamp).Ignore(x => x.Id);

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 导入

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

@ -104,7 +104,7 @@ public class ThirdLocationRequestAppService : SfsStoreRequestAppServiceBase<Thir
var itemBasicDto = await _itemBasicAppService.GetByCodeAsync(detailInput.ItemCode).ConfigureAwait(false); var itemBasicDto = await _itemBasicAppService.GetByCodeAsync(detailInput.ItemCode).ConfigureAwait(false);
CheckItemBasic(itemBasicDto, detailInput.ItemCode); CheckItemBasic(itemBasicDto, detailInput.ItemCode);
var balanceNums= await _balanceAppService.GetListByLocationCodeAndItemCodeAsync(detailInput.ToLocationCode, detailInput.ItemCode).ConfigureAwait(false); var balanceNums= await _balanceAppService.GetListByLocationCodeAndItemCodeAsync(detailInput.FromLocationCode, detailInput.ItemCode).ConfigureAwait(false);
decimal balanceSum = 0; decimal balanceSum = 0;
foreach (var item in balanceNums) foreach (var item in balanceNums)
{ {

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

@ -16,7 +16,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
MaterialRequestAutoMapperProfile(); MaterialRequestAutoMapperProfile();
InjectionIssueRequestAutoMapperProfile(); InjectionIssueRequestAutoMapperProfile();
KittingIssueRequestAutoMapperProfile(); KittingIssueRequestAutoMapperProfile();
AssembleIssueRequestsAutoMapperProfile(); AssembleIssueRequestAutoMapperProfile();
ThirdLocationRequestAutoMapperProfile(); ThirdLocationRequestAutoMapperProfile();
ProductionReturnRequestAutoMapperProfile(); ProductionReturnRequestAutoMapperProfile();
ProductReceiptRequestAutoMapperProfile(); ProductReceiptRequestAutoMapperProfile();

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJob.cs

@ -26,11 +26,22 @@ public class CountJob : SfsJobAggregateRootBase<CountJobDetail>
[IgnoreUpdate] [IgnoreUpdate]
public EnumCountStage CountStage { get; set; } public EnumCountStage CountStage { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 盘点方式 /// 盘点方式
/// </summary> /// </summary>
public EnumCountMethod CountMethod { get; set; } public EnumCountMethod CountMethod { get; set; }
/// <summary>
/// 盘点模式
/// </summary>
public EnumInventoryMode InventoryMode { get; set; }
/// <summary> /// <summary>
/// 类型 /// 类型
/// </summary> /// </summary>
@ -65,7 +76,6 @@ public class CountJob : SfsJobAggregateRootBase<CountJobDetail>
/// <summary> /// <summary>
/// 任务从表明细(记录每次扫得明细) /// 任务从表明细(记录每次扫得明细)
/// </summary> /// </summary>
[IgnoreUpdate]
public List<CountJobDependentDetail> DepDetails { get; set; } = new List<CountJobDependentDetail>(); public List<CountJobDependentDetail> DepDetails { get; set; } = new List<CountJobDependentDetail>();
/// <summary> /// <summary>
@ -86,7 +96,7 @@ public class CountJob : SfsJobAggregateRootBase<CountJobDetail>
detail.ExpireDate = expireDate; detail.ExpireDate = expireDate;
detail.LocationCode = locationCode; detail.LocationCode = locationCode;
detail.CountQty = qty; detail.CountQty = detail.CountQty+qty;
detail.CountTime = time; detail.CountTime = time;
detail.CountOperator = oper; detail.CountOperator = oper;
detail.CountDescription = desc; detail.CountDescription = desc;

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobDependentDetail.cs

@ -7,6 +7,10 @@ namespace Win_in.Sfs.Wms.Store.Domain;
public class CountJobDependentDetail : SfsJobDetailEntityBase, IHasCountResult, IHasInventoryQty public class CountJobDependentDetail : SfsJobDetailEntityBase, IHasCountResult, IHasInventoryQty
{ {
/// <summary>
/// 盘点次数
/// </summary>
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 盘点标签 /// 盘点标签
/// </summary> /// </summary>

11
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobDetail.cs

@ -6,7 +6,10 @@ namespace Win_in.Sfs.Wms.Store.Domain;
public class CountJobDetail : SfsJobDetailEntityBase, IHasCountResult, IHasInventoryQty public class CountJobDetail : SfsJobDetailEntityBase, IHasCountResult, IHasInventoryQty
{ {
/// <summary>
/// 盘点计划单号
/// </summary>
public string CountPlanNumber { get; set; }
/// <summary> /// <summary>
/// 盘点标签 /// 盘点标签
/// </summary> /// </summary>
@ -17,6 +20,12 @@ public class CountJobDetail : SfsJobDetailEntityBase, IHasCountResult, IHasInven
/// </summary> /// </summary>
public decimal InventoryQty { get; set; } public decimal InventoryQty { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 计量单位 /// 计量单位
/// </summary> /// </summary>

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

@ -9,6 +9,7 @@ using Volo.Abp.Users;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Event;
using Win_in.Sfs.Wms.Inventory.Application.Contracts; using Win_in.Sfs.Wms.Inventory.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Domain; namespace Win_in.Sfs.Wms.Store.Domain;
@ -16,17 +17,48 @@ namespace Win_in.Sfs.Wms.Store.Domain;
public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICountJobManager public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICountJobManager
{ {
private readonly IBalanceAppService _balanceAppService; private readonly IBalanceAppService _balanceAppService;
private readonly ICountJobRepository _repository;
private readonly ICountNoteRepository _noteRepository;
public CountJobManager( public CountJobManager(
ICountJobRepository repository, ICountJobRepository repository,
IBalanceAppService balanceAppService IBalanceAppService balanceAppService,
ICountNoteRepository noteRepository
) : base(repository) ) : base(repository)
{ {
_noteRepository = noteRepository;
_balanceAppService = balanceAppService; _balanceAppService = balanceAppService;
_repository = repository;
}
/// <summary>
/// 根据选择的任务号码重置盘点任务
/// </summary>
/// <param name="numbers"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
public virtual async Task<List<CountJob>> ResetStatusByNumberAsync(List<string> numbers)
{
var joblist = await _repository.GetListAsync(r => numbers.Contains(r.Number)).ConfigureAwait(false);
var planNumbers = joblist.Select(r => r.CountPlanNumber).Distinct();
if (planNumbers.Count() > 1)
{
throw new UserFriendlyException($"所选任务属于多个盘点计划,无法重盘!");
}
foreach (var job in joblist)
{
var note = await _noteRepository.FindAsync(r => r.CountJobNumber == job.Number).ConfigureAwait(false);
if (note != null && note.Adjusted == true)
{
throw new UserFriendlyException($"任务号 【{job.Number}】生成的记录【{note.Number}】已经进行了调整,无法重盘");
}
job.JobStatus = EnumJobStatus.Open;
}
await _repository.UpdateManyAsync(joblist).ConfigureAwait(false);
await LocalEventBus.PublishAsync(new SfsSubmittedEntityEventData<List<CountJob>>(joblist), false).ConfigureAwait(false);
return joblist;
} }
/// <summary> /// <summary>
/// 执行任务 /// 执行任务
/// </summary> /// </summary>
@ -41,7 +73,15 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou
//entity.ConcurrencyStamp = input.ConcurrencyStamp; //entity.ConcurrencyStamp = input.ConcurrencyStamp;
await SetDetailsAsync(input, entity).ConfigureAwait(false); await SetDetailsAsync(input, entity).ConfigureAwait(false);
return await base.CompleteAsync(entity, user).ConfigureAwait(false); // return await base.CompleteAsync(entity, user).ConfigureAwait(false);
entity.CompleteUserId = user.Id;
entity.CompleteUserName = user.Name;
entity.CompleteTime = Clock.Now;
await PublishCompletedAsync(entity).ConfigureAwait(false);
return await _repository.UpdateAsync(entity).ConfigureAwait(false);
} }
/// <summary> /// <summary>
@ -96,11 +136,19 @@ public class CountJobManager : SfsJobManagerBase<CountJob, CountJobDetail>, ICou
} }
else else
{ {
await entity.SetDetail(detail.Id, detail.SupplierBatch, detail.ArriveDate, detail.ProduceDate, detail.ExpireDate, detail.LocationCode, detail.CountQty, detail.CountTime, detail.CountOperator, detail.CountDescription) await entity.SetDetail(detail.Id, detail.SupplierBatch, detail.ArriveDate, detail.ProduceDate, detail.ExpireDate, detail.LocationCode, detail.CountQty, detail.CountTime, detail.CountOperator, detail.CountDescription)
.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)

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/ICountJobManager.cs

@ -12,5 +12,5 @@ public interface ICountJobManager : IJobManager<CountJob>
Task UpdateManyAsync(IList<CountJob> countJobs); Task UpdateManyAsync(IList<CountJob> countJobs);
Task<List<CountJob>> CreateWithConditionAsync(CountPlan entity, List<string> partCondition, List<string> locCondition, List<EnumInventoryStatus> statusList); Task<List<CountJob>> CreateWithConditionAsync(CountPlan entity, List<string> partCondition, List<string> locCondition, List<EnumInventoryStatus> statusList);
Task<List<CountJob>> ResetStatusByNumberAsync(List<string> numbers);
} }

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/CountNotes/CountNote.cs

@ -17,6 +17,11 @@ public class CountNote : SfsStoreAggregateRootBase<CountNoteDetail>
/// </summary> /// </summary>
public string CountPlanNumber { get; set; } public string CountPlanNumber { get; set; }
/// <summary>
/// 盘点任务单号
/// </summary>
public string CountJobNumber { get; set; }
/// <summary> /// <summary>
/// 类型 /// 类型
/// </summary> /// </summary>
@ -56,6 +61,10 @@ public class CountNote : SfsStoreAggregateRootBase<CountNoteDetail>
/// 明细列表 /// 明细列表
/// </summary> /// </summary>
public override List<CountNoteDetail> Details { get; set; } = new List<CountNoteDetail>(); public override List<CountNoteDetail> Details { get; set; } = new List<CountNoteDetail>();
/// <summary>
/// 记录从表明细(记录每次扫得明细)
/// </summary>
public List<CountNoteDependentDetail> DepDetails { get; set; } = new List<CountNoteDependentDetail>();
public virtual async Task GenerateAdjustRequestAsync() public virtual async Task GenerateAdjustRequestAsync()
{ {

58
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/CountNotes/CountNoteDependentDetail.cs

@ -0,0 +1,58 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Domain;
public class CountNoteDependentDetail : SfsStoreDetailWithLotPackingLocationStatusEntityBase, IHasCountResult, IHasInventoryQty
{
/// <summary>
/// 盘点标签
/// </summary>
public string CountLabel { get; set; }
/// <summary>
/// 库存数量
/// </summary>
public decimal InventoryQty { get; set; }
/// <summary>
/// 计量单位
/// </summary>
[Display(Name = "计量单位")]
public string Uom { get; set; }
/// <summary>
/// 库存库位
/// </summary>
public string InventoryLocationCode { get; set; }
/// <summary>
/// 盘点数量(每次扫得数量)
/// </summary>
public decimal CountQty { get; set; }
/// <summary>
/// 盘点时间
/// </summary>
public DateTime? CountTime { get; set; }
/// <summary>
/// 盘点操作员
/// </summary>
public string CountOperator { get; set; }
/// <summary>
/// 盘点描述
/// </summary>
public string CountDescription { get; set; }
/// <summary>
/// 标包数量
/// </summary>
[Display(Name = "标包数量")]
[Column(TypeName = "decimal(18,6)")]
public decimal StdPackQty { get; set; }
}

61
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/CountNotes/CountNoteDetail.cs

@ -10,7 +10,6 @@ namespace Win_in.Sfs.Wms.Store.Domain;
/// 盘点计划明细 /// 盘点计划明细
/// </summary> /// </summary>
public class CountNoteDetail : SfsStoreDetailWithLotPackingLocationStatusEntityBase public class CountNoteDetail : SfsStoreDetailWithLotPackingLocationStatusEntityBase
, IHasCountDetail
, IHasStdPack , IHasStdPack
{ {
/// <summary> /// <summary>
@ -34,66 +33,6 @@ public class CountNoteDetail : SfsStoreDetailWithLotPackingLocationStatusEntityB
/// </summary> /// </summary>
public decimal InventoryQty { get; set; } public decimal InventoryQty { get; set; }
/// <summary>
/// 初盘数量
/// </summary>
public decimal FirstCountQty { get; set; }
/// <summary>
/// 初盘时间
/// </summary>
public DateTime? FirstCountTime { get; set; }
/// <summary>
/// 初盘操作员
/// </summary>
public string FirstCountOperator { get; set; }
/// <summary>
/// 初盘描述
/// </summary>
public string FirstCountDescription { get; set; }
/// <summary>
/// 重盘数量
/// </summary>
public decimal RepeatCountQty { get; set; }
/// <summary>
/// 重盘时间
/// </summary>
public DateTime? RepeatCountTime { get; set; }
/// <summary>
/// 重盘操作员
/// </summary>
public string RepeatCountOperator { get; set; }
/// <summary>
/// 重盘描述
/// </summary>
public string RepeatCountDescription { get; set; }
/// <summary>
/// 监盘数量
/// </summary>
public decimal AuditCountQty { get; set; }
/// <summary>
/// 监盘时间
/// </summary>
public DateTime? AuditCountTime { get; set; }
/// <summary>
/// 监盘操作员
/// </summary>
public string AuditCountOperator { get; set; }
/// <summary>
/// 监盘描述
/// </summary>
public string AuditCountDescription { get; set; }
/// <summary> /// <summary>
/// 最终盘点数量 /// 最终盘点数量
/// </summary> /// </summary>

49
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/CountNotes/CountNoteManager.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Uow;
using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Domain; namespace Win_in.Sfs.Wms.Store.Domain;
@ -26,6 +27,48 @@ public class CountNoteManager : SfsStoreManagerBase<CountNote, CountNoteDetail>,
_repository = repository; _repository = repository;
_countPlanRepository = countPlanRepository; _countPlanRepository = countPlanRepository;
} }
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[UnitOfWork]
public override async Task<CountNote> CreateAsync(CountNote entity)
{
entity.SetIdAndNumberWithDetails(GuidGenerator, await GenerateNumberAsync(typeof(CountNote).Name, entity.ActiveDate).ConfigureAwait(false));
foreach (var item in entity.DepDetails)
{
item.SetIdAndNumber(GuidGenerator,entity.Id,entity.Number);
}
await PublishCreatedAsync(entity).ConfigureAwait(false);
await Repository.InsertAsync(entity).ConfigureAwait(false);
return entity;
}
/// <summary>
/// 批量创建
/// </summary>
/// <param name="entities"></param>
/// <returns></returns>
[UnitOfWork]
public override async Task<List<CountNote>> CreateManyAsync(List<CountNote> entities)
{
List<CountNote> deleteItems = new List<CountNote>();
foreach (var entity in entities)
{
var deleteentity=await Repository.GetAsync(r=>r.CountJobNumber== entity.CountJobNumber).ConfigureAwait(false);
deleteItems.Add(deleteentity);
entity.SetIdAndNumberWithDetails(GuidGenerator, await GenerateNumberAsync(typeof(CountNote).Name, entity.ActiveDate).ConfigureAwait(false));
}
//先删除之前得记录
await Repository.DeleteManyAsync(deleteItems).ConfigureAwait(false);
await Repository.InsertManyAsync(entities).ConfigureAwait(false);
await PublishCreatedAsync(entities).ConfigureAwait(false);
return entities;
}
/// <summary> /// <summary>
/// 开始调整库存 /// 开始调整库存
@ -157,11 +200,7 @@ public class CountNoteManager : SfsStoreManagerBase<CountNote, CountNoteDetail>,
detail.ExpireDate = detail.ProduceDate.AddDays(validateDays); detail.ExpireDate = detail.ProduceDate.AddDays(validateDays);
detail.CountLabel = Guid.NewGuid().ToString(); detail.CountLabel = Guid.NewGuid().ToString();
detail.FirstCountQty = detail.FirstCountQty; detail.FinalCountQty = detail.FinalCountQty;
detail.FirstCountTime = DateTime.Now;
detail.FirstCountOperator = note.Worker;
detail.FinalCountQty = detail.FirstCountQty;
detail.DetailStatus = EnumCountStatus.New; detail.DetailStatus = EnumCountStatus.New;
detail.Stage = EnumCountStage.First; detail.Stage = EnumCountStage.First;
detail.Adjusted = false; detail.Adjusted = false;

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlan.cs

@ -24,6 +24,11 @@ public class CountPlan : SfsStoreRequestAggregateRootBase<CountPlanDetail>
/// </summary> /// </summary>
public EnumCountStage Stage { get; set; } public EnumCountStage Stage { get; set; }
/// <summary>
/// 盘点次数
/// </summary>
public int InventoryStage { get; set; }
/// <summary> /// <summary>
/// 盘点执行形式 /// 盘点执行形式
/// </summary> /// </summary>
@ -33,6 +38,10 @@ public class CountPlan : SfsStoreRequestAggregateRootBase<CountPlanDetail>
/// 盘点方式 /// 盘点方式
/// </summary> /// </summary>
public EnumCountMethod CountMethod { get; set; } public EnumCountMethod CountMethod { get; set; }
/// <summary>
/// 盘点模式
/// </summary>
public EnumInventoryMode InventoryMode { get; set; }
/// <summary> /// <summary>
/// 描述 /// 描述

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

@ -284,7 +284,21 @@ public class CountPlanManager : SfsStoreRequestManagerBase<CountPlan, CountPlanD
entity.SetDetails(type); entity.SetDetails(type);
await base.CompleteAsync(entity).ConfigureAwait(false); await base.CompleteAsync(entity).ConfigureAwait(false);
} }
/// <summary>
/// 根据plannumber更新主表状态和子表状态
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public virtual async Task ResetStatusByNumberAsync(string number)
{
var entity = await Repository.GetAsync(r=>r.Number==number).ConfigureAwait(false);
entity.RequestStatus = EnumRequestStatus.Handling;
entity.Details.ForEach(p=>
{
p.DetailStatus = EnumCountStatus.New;
});
}
/// <summary> /// <summary>
/// job执行后更新计划 /// job执行后更新计划
/// </summary> /// </summary>
@ -334,7 +348,7 @@ public class CountPlanManager : SfsStoreRequestManagerBase<CountPlan, CountPlanD
entity.AddDetail(entityDetail); entity.AddDetail(entityDetail);
entityDetail.FinalCountQty = planDetail.FinalCountQty; //赋值终盘数量 entityDetail.FinalCountQty = planDetail.FinalCountQty; //赋值终盘数量
entityDetail.DetailStatus = EnumCountStatus.Completed; //赋值明细状态已完成 // entityDetail.DetailStatus = EnumCountStatus.Completed; //赋值明细状态已完成
} }
await Repository.UpdateAsync(entity).ConfigureAwait(false); await Repository.UpdateAsync(entity).ConfigureAwait(false);

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/ICountPlanManager.cs

@ -21,5 +21,5 @@ public interface ICountPlanManager : ISfsStoreRequestManager<CountPlan, CountPla
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task CompleteByJobAsync(CountPlan entity); Task CompleteByJobAsync(CountPlan entity);
Task ResetStatusByNumberAsync(string number);
} }

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequests.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequest.cs

@ -7,7 +7,7 @@ namespace Win_in.Sfs.Wms.Store.Domain;
/// <summary> /// <summary>
/// 装配叫料申请 /// 装配叫料申请
/// </summary> /// </summary>
public class AssembleIssueRequests : SfsStoreRequestAggregateRootBase<AssembleIssueRequestsDetail> public class AssembleIssueRequest : SfsStoreRequestAggregateRootBase<AssembleIssueRequestDetail>
{ {
/// <summary> /// <summary>
/// 叫料类型 /// 叫料类型
@ -25,5 +25,5 @@ public class AssembleIssueRequests : SfsStoreRequestAggregateRootBase<AssembleIs
/// 明细列表 /// 明细列表
/// </summary> /// </summary>
[IgnoreUpdate] [IgnoreUpdate]
public override List<AssembleIssueRequestsDetail> Details { get; set; } = new List<AssembleIssueRequestsDetail>(); public override List<AssembleIssueRequestDetail> Details { get; set; } = new List<AssembleIssueRequestDetail>();
} }

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestsDetail.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestDetail.cs

@ -9,7 +9,7 @@ namespace Win_in.Sfs.Wms.Store.Domain;
/// <summary> /// <summary>
/// 装配叫料申请明细 /// 装配叫料申请明细
/// </summary> /// </summary>
public class AssembleIssueRequestsDetail : SfsStoreDetailWithQtyEntityBase, IHasToLocation public class AssembleIssueRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLocation
{ {
#region 目标库位信息 #region 目标库位信息

20
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestsManager.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestManager.cs

@ -9,15 +9,15 @@ using static Win_in.Sfs.Wms.Store.Domain.Shared.StoreSettings;
namespace Win_in.Sfs.Wms.Store.Domain; namespace Win_in.Sfs.Wms.Store.Domain;
public class AssembleIssueRequestsManager public class AssembleIssueRequestManager
: SfsStoreRequestManagerBase<AssembleIssueRequests, AssembleIssueRequestsDetail> : SfsStoreRequestManagerBase<AssembleIssueRequest, AssembleIssueRequestDetail>
, IAssembleIssueRequestsManager , IAssembleIssueRequestManager
{ {
private readonly IAssembleIssueRequestsRepository _repository; private readonly IAssembleIssueRequestRepository _repository;
public AssembleIssueRequestsManager( public AssembleIssueRequestManager(
IAssembleIssueRequestsRepository repository IAssembleIssueRequestRepository repository
) : base(repository) ) : base(repository)
{ {
@ -34,14 +34,14 @@ public class AssembleIssueRequestsManager
/// </summary> /// </summary>
/// <param name="entity"></param> /// <param name="entity"></param>
/// <returns></returns> /// <returns></returns>
public virtual async Task<AssembleIssueRequests> CreateByNumberAsync(AssembleIssueRequests entity) public virtual async Task<AssembleIssueRequest> CreateByNumberAsync(AssembleIssueRequest entity)
{ {
var number = string.IsNullOrEmpty(entity.Number) ? await GenerateNumberAsync(nameof(AssembleIssueRequests), entity.ActiveDate).ConfigureAwait(false) : entity.Number; var number = string.IsNullOrEmpty(entity.Number) ? await GenerateNumberAsync(nameof(AssembleIssueRequest), entity.ActiveDate).ConfigureAwait(false) : entity.Number;
entity.SetIdAndNumberWithDetails(GuidGenerator, number); entity.SetIdAndNumberWithDetails(GuidGenerator, number);
entity.Submit(); entity.Submit();
entity.Agree(); entity.Agree();
entity.RequestStatus = EnumRequestStatus.Partial; entity.RequestStatus = EnumRequestStatus.Partial;
await LocalEventBus.PublishAsync(new SfsHandledEntityEventData<AssembleIssueRequests>(entity), false) await LocalEventBus.PublishAsync(new SfsHandledEntityEventData<AssembleIssueRequest>(entity), false)
.ConfigureAwait(false); .ConfigureAwait(false);
await _repository.InsertAsync(entity).ConfigureAwait(false); await _repository.InsertAsync(entity).ConfigureAwait(false);
return entity; return entity;
@ -63,7 +63,7 @@ public class AssembleIssueRequestsManager
/// <summary> /// <summary>
/// 执行导入 /// 执行导入
/// </summary> /// </summary>
public virtual async Task ImportDataAsync(List<AssembleIssueRequests> mergeEntities, List<AssembleIssueRequests> deleteEntities = null) public virtual async Task ImportDataAsync(List<AssembleIssueRequest> mergeEntities, List<AssembleIssueRequest> deleteEntities = null)
{ {
if (deleteEntities != null && deleteEntities.Count > 0) if (deleteEntities != null && deleteEntities.Count > 0)
{ {

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/IAssembleIssueRequestManager.cs

@ -0,0 +1,14 @@
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Shared.Domain;
public interface IAssembleIssueRequestManager : ISfsStoreRequestManager<AssembleIssueRequest, AssembleIssueRequestDetail>,
IBulkImportService<AssembleIssueRequest>
{
Task CompleteAsync(string number);
Task<AssembleIssueRequest> CreateByNumberAsync(AssembleIssueRequest entity);
}

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/IAssembleIssueRequestsRepository.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/IAssembleIssueRequestRepository.cs

@ -2,8 +2,8 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Domain; namespace Win_in.Sfs.Wms.Store.Domain;
public interface IAssembleIssueRequestsRepository : ISfsStoreRepositoryBase<AssembleIssueRequests>, public interface IAssembleIssueRequestRepository : ISfsStoreRepositoryBase<AssembleIssueRequest>,
ISfsBulkRepositoryBase<AssembleIssueRequests> ISfsBulkRepositoryBase<AssembleIssueRequest>
{ {
} }

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/AssembleIssueRequests/IAssembleIssueRequestsManager.cs

@ -1,14 +0,0 @@
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Shared.Domain;
public interface IAssembleIssueRequestsManager : ISfsStoreRequestManager<AssembleIssueRequests, AssembleIssueRequestsDetail>,
IBulkImportService<AssembleIssueRequests>
{
Task CompleteAsync(string number);
Task<AssembleIssueRequests> CreateByNumberAsync(AssembleIssueRequests entity);
}

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/KittingIssueRequests/IKittingIssueRequestManager.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/IKittingIssueRequestManager.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/KittingIssueRequests/IKittingIssueRequestRepository.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/IKittingIssueRequestRepository.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/KittingIssueRequests/KittingIssueRequest.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequest.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/KittingIssueRequests/KittingIssueRequestDetail.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequestDetail.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/KittingIssueRequests/KittingIssueRequestManager.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequestManager.cs

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

@ -42,6 +42,7 @@
<ItemGroup> <ItemGroup>
<Folder Include="Orders" /> <Folder Include="Orders" />
<Folder Include="Requests\MaterialRequests\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

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

@ -2,6 +2,9 @@ using Microsoft.EntityFrameworkCore;
using Volo.Abp.Data; using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Jobs.IssueJobs;
using Win_in.Sfs.Wms.Store.Notes.IssueNotes;
using Win_in.Sfs.Wms.Store.Requests.MaterialRequests;
namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore; namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore;
@ -23,7 +26,8 @@ public interface IStoreDbContext : IEfCoreDbContext
public DbSet<MaterialRequest> MaterialRequests { get; } public DbSet<MaterialRequest> MaterialRequests { get; }
public DbSet<InjectionIssueRequest> InjectionIssueRequests { get; } public DbSet<InjectionIssueRequest> InjectionIssueRequests { get; }
public DbSet<KittingIssueRequest> KittingIssueRequests { get; } public DbSet<KittingIssueRequest> KittingIssueRequests { get; }
public DbSet<AssembleIssueRequests> AssembleIssueRequests { get; } public DbSet<CoatingIssueRequest> CoatingIssueRequests { get; }
public DbSet<AssembleIssueRequest> AssembleIssueRequest { get; }
public DbSet<ThirdLocationRequest> ThirdLocationRequests { get; } public DbSet<ThirdLocationRequest> ThirdLocationRequests { get; }
public DbSet<ContainerRequest> ContainerRequests { get; } public DbSet<ContainerRequest> ContainerRequests { get; }
public DbSet<DeliverRequest> DeliverRequests { get; } public DbSet<DeliverRequest> DeliverRequests { get; }
@ -82,6 +86,7 @@ public interface IStoreDbContext : IEfCoreDbContext
public DbSet<InjectionIssueNote> InjectionIssueNotes { get; } public DbSet<InjectionIssueNote> InjectionIssueNotes { get; }
public DbSet<AssembleIssueNote> AssembleIssueNotes { get; } public DbSet<AssembleIssueNote> AssembleIssueNotes { get; }
public DbSet<KittingIssueNote> KittingIssueNotes { get; } public DbSet<KittingIssueNote> KittingIssueNotes { get; }
public DbSet<CoatingIssueNote> CoatingIssueNotes { get; }
public DbSet<ThirdLocationNote> ThirdLocationNotes { get; } public DbSet<ThirdLocationNote> ThirdLocationNotes { get; }
public DbSet<ContainerNote> ContainerNotes { get; } public DbSet<ContainerNote> ContainerNotes { get; }
public DbSet<UnplannedReceiptNote> UnplannedReceiptNotes { get; } public DbSet<UnplannedReceiptNote> UnplannedReceiptNotes { get; }
@ -111,6 +116,7 @@ public interface IStoreDbContext : IEfCoreDbContext
public DbSet<InjectionIssueJob> InjectionIssueJobs { get; } public DbSet<InjectionIssueJob> InjectionIssueJobs { get; }
public DbSet<AssembleIssueJob> AssembleIssueJobs { get; } public DbSet<AssembleIssueJob> AssembleIssueJobs { get; }
public DbSet<KittingIssueJob> KittingIssueJobs { get; } public DbSet<KittingIssueJob> KittingIssueJobs { get; }
public DbSet<CoatingIssueJob> CoatingIssueJobs { get; }
public DbSet<ThirdLocationJob> ThirdLocationJobs { get; } public DbSet<ThirdLocationJob> ThirdLocationJobs { get; }
public DbSet<ContainerJob> ContainerJobs { get; } public DbSet<ContainerJob> ContainerJobs { get; }
public DbSet<DeliverJob> DeliverJobs { get; } public DbSet<DeliverJob> DeliverJobs { get; }

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/CountJobs/CountJobDbContextModelCreatingExtensions.cs

@ -24,6 +24,7 @@ public static class CountJobDbContextModelCreatingExtensions
b.Property(q => q.CountPlanNumber).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.CountPlanNumber).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.CountStage).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.CountStage).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.CountMethod).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.CountMethod).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.InventoryMode).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.Type).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.Type).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.ItemCode).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.ItemCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.LocationCode).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.LocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
@ -42,6 +43,7 @@ public static class CountJobDbContextModelCreatingExtensions
b.ConfigureByConvention(); b.ConfigureByConvention();
//Configure Sfs base properties //Configure Sfs base properties
b.ConfigureSfsBase(); b.ConfigureSfsBase();
//Configure Job base properties //Configure Job base properties
b.ConfigureJobDetail(); b.ConfigureJobDetail();
//Properties //Properties

34
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/CountNotes/CountNoteDbContextModelCreatingExtensions.cs

@ -27,6 +27,7 @@ public static class CountNoteDbContextModelCreatingExtensions
//Relations //Relations
b.HasMany(q => q.Details).WithOne().HasForeignKey(d => d.MasterID).IsRequired(); b.HasMany(q => q.Details).WithOne().HasForeignKey(d => d.MasterID).IsRequired();
b.HasMany(q => q.DepDetails).WithOne().HasForeignKey(d => d.MasterID).IsRequired();
//Indexes //Indexes
b.HasIndex(q => new { q.Number }).IsUnique(); b.HasIndex(q => new { q.Number }).IsUnique();
@ -47,15 +48,6 @@ public static class CountNoteDbContextModelCreatingExtensions
//Properties //Properties
b.Property(q => q.CountPlanNumber).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.CountPlanNumber).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.CountLabel).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.CountLabel).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.FirstCountQty).HasPrecision(18, 6);
b.Property(q => q.FirstCountOperator).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.FirstCountDescription).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.RepeatCountQty).HasPrecision(18, 6);
b.Property(q => q.RepeatCountOperator).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.RepeatCountDescription).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.AuditCountQty).HasPrecision(18, 6);
b.Property(q => q.AuditCountOperator).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.AuditCountDescription).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.FinalCountQty).HasPrecision(18, 6); b.Property(q => q.FinalCountQty).HasPrecision(18, 6);
b.Property(q => q.DetailStatus).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.DetailStatus).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.Stage).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.Stage).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
@ -65,5 +57,29 @@ public static class CountNoteDbContextModelCreatingExtensions
//Indexes //Indexes
b.HasIndex(q => new { q.Number, q.CountLabel }).IsUnique(); b.HasIndex(q => new { q.Number, q.CountLabel }).IsUnique();
}); });
builder.Entity<CountNoteDependentDetail>(b =>
{
//Configure table & schema name
b.ToTable(options.TablePrefix + nameof(CountNoteDependentDetail), options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Configure Sfs base properties
b.ConfigureSfsStoreBase();
//Configure Sfs store detail properties
b.ConfigureSfsStoreDetailBase();
b.ConfigureStoreDetailWithLotPackingLocationStatus();
//Properties
b.Property(q => q.CountLabel).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.InventoryLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.CountOperator).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.CountDescription).HasMaxLength(SfsPropertyConst.CodeLength);
//Relations
//None
//Indexes
//b.HasIndex(q => new { q.PackingCode }).IsUnique();
});
} }
} }

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Plans/CountPlans/CountPlanDbContextModelCreatingExtensions.cs

@ -23,6 +23,7 @@ public static class CountPlanDbContextModelCreatingExtensions
b.Property(q => q.Stage).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.Stage).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.RequestType).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.RequestType).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.CountMethod).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.CountMethod).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.InventoryMode).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.RequestStatus).IsRequired().HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>(); b.Property(q => q.RequestStatus).IsRequired().HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.Description).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.Description).HasMaxLength(SfsPropertyConst.CodeLength);

12
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestsDbContextModelCreatingExtensions.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestDbContextModelCreatingExtensions.cs

@ -5,14 +5,14 @@ using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore; namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore;
public static class AssembleIssueRequestsDbContextModelCreatingExtensions public static class AssembleIssueRequestDbContextModelCreatingExtensions
{ {
public static void ConfigureAssembleIssueRequests(this ModelBuilder builder, StoreModelBuilderConfigurationOptions options) public static void ConfigureAssembleIssueRequest(this ModelBuilder builder, StoreModelBuilderConfigurationOptions options)
{ {
builder.Entity<AssembleIssueRequests>(b => builder.Entity<AssembleIssueRequest>(b =>
{ {
//Configure table & schema name //Configure table & schema name
b.ToTable(options.TablePrefix + nameof(AssembleIssueRequests), options.Schema); b.ToTable(options.TablePrefix + nameof(AssembleIssueRequest), options.Schema);
//Configure ABP properties //Configure ABP properties
b.ConfigureByConvention(); b.ConfigureByConvention();
//Configure Sfs base properties //Configure Sfs base properties
@ -29,10 +29,10 @@ public static class AssembleIssueRequestsDbContextModelCreatingExtensions
b.HasIndex(q => new { q.Number }).IsUnique(); b.HasIndex(q => new { q.Number }).IsUnique();
}); });
builder.Entity<AssembleIssueRequestsDetail>(b => builder.Entity<AssembleIssueRequestDetail>(b =>
{ {
//Configure table & schema name //Configure table & schema name
b.ToTable(options.TablePrefix + nameof(AssembleIssueRequestsDetail), options.Schema); b.ToTable(options.TablePrefix + nameof(AssembleIssueRequestDetail), options.Schema);
//Configure ABP properties //Configure ABP properties
b.ConfigureByConvention(); b.ConfigureByConvention();
//Configure Sfs base properties //Configure Sfs base properties

11
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestEfCoreRepository.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 AssembleIssueRequestEfCoreRepository : SfsStoreEfCoreRepositoryBase<StoreDbContext, AssembleIssueRequest>, IAssembleIssueRequestRepository
{
public AssembleIssueRequestEfCoreRepository(IDbContextProvider<StoreDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}

11
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/AssembleIssueRequests/AssembleIssueRequestsEfCoreRepository.cs

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

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/CoatingIssueRequest/CoatingIssueRequestDbContextModelCreatingExtensions.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/CoatingIssueRequests/CoatingIssueRequestDbContextModelCreatingExtensions.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/CoatingIssueRequest/CoatingIssueRequestEfCoreRepository.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/CoatingIssueRequests/CoatingIssueRequestEfCoreRepository.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/KittingIssueRequests/KittingIssueRequestDbContextModelCreatingExtensions.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequestDbContextModelCreatingExtensions.cs

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/MaterialRequests/KittingIssueRequests/KittingIssueRequestEfCoreRepository.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Requests/IssueRequests/KittingIssueRequests/KittingIssueRequestEfCoreRepository.cs

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

@ -3,6 +3,9 @@ using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Equipments; using Win_in.Sfs.Wms.Store.Equipments;
using Win_in.Sfs.Wms.Store.Jobs.IssueJobs;
using Win_in.Sfs.Wms.Store.Notes.IssueNotes;
using Win_in.Sfs.Wms.Store.Requests.MaterialRequests;
namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore; namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore;
@ -23,7 +26,8 @@ public class StoreDbContext : AbpDbContext<StoreDbContext>, IStoreDbContext
public DbSet<MaterialRequest> MaterialRequests { get; set; } public DbSet<MaterialRequest> MaterialRequests { get; set; }
public DbSet<InjectionIssueRequest> InjectionIssueRequests { get; set; } public DbSet<InjectionIssueRequest> InjectionIssueRequests { get; set; }
public DbSet<KittingIssueRequest> KittingIssueRequests { get; set; } public DbSet<KittingIssueRequest> KittingIssueRequests { get; set; }
public DbSet<AssembleIssueRequests> AssembleIssueRequests { get; set; } public DbSet<CoatingIssueRequest> CoatingIssueRequests { get; set; }
public DbSet<AssembleIssueRequest> AssembleIssueRequest { get; set; }
public DbSet<ThirdLocationRequest> ThirdLocationRequests { get; set; } public DbSet<ThirdLocationRequest> ThirdLocationRequests { get; set; }
public DbSet<ContainerRequest> ContainerRequests { get; set; } public DbSet<ContainerRequest> ContainerRequests { get; set; }
public DbSet<DeliverRequest> DeliverRequests { get; set; } public DbSet<DeliverRequest> DeliverRequests { get; set; }
@ -82,6 +86,7 @@ public class StoreDbContext : AbpDbContext<StoreDbContext>, IStoreDbContext
public DbSet<InjectionIssueNote> InjectionIssueNotes { get; set; } public DbSet<InjectionIssueNote> InjectionIssueNotes { get; set; }
public DbSet<AssembleIssueNote> AssembleIssueNotes { get; set; } public DbSet<AssembleIssueNote> AssembleIssueNotes { get; set; }
public DbSet<KittingIssueNote> KittingIssueNotes { get; set; } public DbSet<KittingIssueNote> KittingIssueNotes { get; set; }
public DbSet<CoatingIssueNote> CoatingIssueNotes { get; set; }
public DbSet<ThirdLocationNote> ThirdLocationNotes { get; set; } public DbSet<ThirdLocationNote> ThirdLocationNotes { get; set; }
public DbSet<ContainerNote> ContainerNotes { get; set; } public DbSet<ContainerNote> ContainerNotes { get; set; }
public DbSet<UnplannedReceiptNote> UnplannedReceiptNotes { get; set; } public DbSet<UnplannedReceiptNote> UnplannedReceiptNotes { get; set; }
@ -110,8 +115,9 @@ public class StoreDbContext : AbpDbContext<StoreDbContext>, IStoreDbContext
public DbSet<IssueJob> IssueJobs { get; set; } public DbSet<IssueJob> IssueJobs { get; set; }
public DbSet<InjectionIssueJob> InjectionIssueJobs { get; set; } public DbSet<InjectionIssueJob> InjectionIssueJobs { get; set; }
public DbSet<AssembleIssueJob> AssembleIssueJobs { get; set; } public DbSet<AssembleIssueJob> AssembleIssueJobs { get; set; }
public DbSet<KittingIssueJob> KittingIssueJobs { get; set; }
public DbSet<KittingIssueJob> KittingIssueJobs { get; set; } public DbSet<ThirdLocationJob> ThirdLocationJobs { get; set; } public DbSet<CoatingIssueJob> CoatingIssueJobs { get; set; }
public DbSet<ThirdLocationJob> ThirdLocationJobs { get; set; }
public DbSet<ContainerJob> ContainerJobs { get; set; } public DbSet<ContainerJob> ContainerJobs { get; set; }
public DbSet<DeliverJob> DeliverJobs { get; set; } public DbSet<DeliverJob> DeliverJobs { get; set; }
public DbSet<JisDeliverJob> JisDeliverJobs { get; set; } public DbSet<JisDeliverJob> JisDeliverJobs { get; set; }

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

@ -49,7 +49,8 @@ public static class StoreDbContextModelCreatingExtensions
builder.ConfigureMaterialRequest(options); builder.ConfigureMaterialRequest(options);
builder.ConfigureInjectionIssueRequest(options); builder.ConfigureInjectionIssueRequest(options);
builder.ConfigureKittingIssueRequest(options); builder.ConfigureKittingIssueRequest(options);
builder.ConfigureAssembleIssueRequests(options); builder.ConfigureCoatingIssueRequest(options);
builder.ConfigureAssembleIssueRequest(options);
builder.ConfigureThirdLocationRequest(options); builder.ConfigureThirdLocationRequest(options);
builder.ConfigureDeliverRequest(options); builder.ConfigureDeliverRequest(options);
builder.ConfigureContainerRequest(options); builder.ConfigureContainerRequest(options);
@ -63,9 +64,8 @@ public static class StoreDbContextModelCreatingExtensions
builder.ConfigureScrapRequest(options); builder.ConfigureScrapRequest(options);
builder.ConfigureCountAdjustRequest(options); builder.ConfigureCountAdjustRequest(options);
builder.ConfigureWipWarehouseAdjustRequest(options); builder.ConfigureWipWarehouseAdjustRequest(options);
builder.ConfigureCoatingIssueNote(options);
builder.ConfigureCoatingIssueRequest(options);
builder.ConfigureCoatingIssueJob(options);
#endregion #endregion
#region Notes #region Notes
@ -88,7 +88,9 @@ public static class StoreDbContextModelCreatingExtensions
builder.ConfigureIssueNote(options); builder.ConfigureIssueNote(options);
builder.ConfigureInjectionIssueNote(options); builder.ConfigureInjectionIssueNote(options);
builder.ConfigureAssembleIssueNote(options); builder.ConfigureAssembleIssueNote(options);
builder.ConfigureKittingIssueNote(options); builder.ConfigureThirdLocationNote(options); builder.ConfigureKittingIssueNote(options);
builder.ConfigureCoatingIssueNote(options);
builder.ConfigureThirdLocationNote(options);
builder.ConfigureContainerNote(options); builder.ConfigureContainerNote(options);
builder.ConfigureUnplannedReceiptNote(options); builder.ConfigureUnplannedReceiptNote(options);
builder.ConfigureUnplannedIssueNote(options); builder.ConfigureUnplannedIssueNote(options);
@ -120,7 +122,9 @@ public static class StoreDbContextModelCreatingExtensions
builder.ConfigureIssueJob(options); builder.ConfigureIssueJob(options);
builder.ConfigureInjectionIssueJob(options); builder.ConfigureInjectionIssueJob(options);
builder.ConfigureAssembleIssueJob(options); builder.ConfigureAssembleIssueJob(options);
builder.ConfigureKittingIssueJob(options); builder.ConfigureThirdLocationJob(options); builder.ConfigureKittingIssueJob(options);
builder.ConfigureCoatingIssueJob(options);
builder.ConfigureThirdLocationJob(options);
builder.ConfigureContainerJob(options); builder.ConfigureContainerJob(options);
builder.ConfigureDeliverJob(options); builder.ConfigureDeliverJob(options);
builder.ConfigureJisDeliverJob(options); builder.ConfigureJisDeliverJob(options);

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

@ -62,7 +62,7 @@ public class StoreEntityFrameworkCoreModule : AbpModule
context.Services.AddTransient<IMaterialRequestRepository, MaterialRequestEfCoreRepository>(); context.Services.AddTransient<IMaterialRequestRepository, MaterialRequestEfCoreRepository>();
context.Services.AddTransient<IInjectionIssueRequestRepository, InjectionIssueRequestEfCoreRepository>(); context.Services.AddTransient<IInjectionIssueRequestRepository, InjectionIssueRequestEfCoreRepository>();
context.Services.AddTransient<IKittingIssueRequestRepository, KittingIssueRequestEfCoreRepository>(); context.Services.AddTransient<IKittingIssueRequestRepository, KittingIssueRequestEfCoreRepository>();
context.Services.AddTransient<IAssembleIssueRequestsRepository, AssembleIssueRequestsEfCoreRepository>(); context.Services.AddTransient<IAssembleIssueRequestRepository, AssembleIssueRequestEfCoreRepository>();
context.Services.AddTransient<IThirdLocationRequestRepository, ThirdLocationRequestEfCoreRepository>(); context.Services.AddTransient<IThirdLocationRequestRepository, ThirdLocationRequestEfCoreRepository>();
context.Services.AddTransient<IDeliverRequestRepository, DeliverRequestEfCoreRepository>(); context.Services.AddTransient<IDeliverRequestRepository, DeliverRequestEfCoreRepository>();
context.Services.AddTransient<IContainerRequestRepository, ContainerRequestEfCoreRepository>(); context.Services.AddTransient<IContainerRequestRepository, ContainerRequestEfCoreRepository>();
@ -215,7 +215,9 @@ public class StoreEntityFrameworkCoreModule : AbpModule
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<KittingIssueRequest>(orderOptions => options.Entity<KittingIssueRequest>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<AssembleIssueRequests>(orderOptions => options.Entity<CoatingIssueRequest>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<AssembleIssueRequest>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<ThirdLocationRequest>(orderOptions => options.Entity<ThirdLocationRequest>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
@ -306,7 +308,7 @@ public class StoreEntityFrameworkCoreModule : AbpModule
options.Entity<PurchaseReceiptNote>(orderOptions => options.Entity<PurchaseReceiptNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<CountNote>(orderOptions => options.Entity<CountNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details).Include(o => o.DepDetails));
options.Entity<InspectNote>(orderOptions => options.Entity<InspectNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details) orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)
.Include(o => o.SummaryDetails)); .Include(o => o.SummaryDetails));

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Win_in.Sfs.Wms.Store.EntityFrameworkCore.csproj

@ -40,6 +40,7 @@
<ItemGroup> <ItemGroup>
<Folder Include="Migrations\" /> <Folder Include="Migrations\" />
<Folder Include="Orders" /> <Folder Include="Orders" />
<Folder Include="Requests\MaterialRequests\" />
</ItemGroup> </ItemGroup>
</Project> </Project>

16
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/CountJobAutoMapperProfile.cs

@ -1,5 +1,6 @@
using AutoMapper; using AutoMapper;
using Volo.Abp.AutoMapper; using Volo.Abp.AutoMapper;
using Win_in.Sfs.Shared.Domain.Shared;
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;
@ -106,6 +107,8 @@ public partial class StoreEventAutoMapperProfile : Profile
// .ForMember(x => x.Item, y => y.MapFrom(d => new Item(d.ItemName, d.ItemDesc1, d.ItemDesc2))) // .ForMember(x => x.Item, y => y.MapFrom(d => new Item(d.ItemName, d.ItemDesc1, d.ItemDesc2)))
// .ForMember(x => x.Batch, y => y.MapFrom(d => new Batch(d.SupplierBatch, d.ArriveDate, d.ProduceDate, d.ExpireDate))) // .ForMember(x => x.Batch, y => y.MapFrom(d => new Batch(d.SupplierBatch, d.ArriveDate, d.ProduceDate, d.ExpireDate)))
.ForMember(x => x.InventoryLocationCode, y => y.MapFrom(d => d.LocationCode)) .ForMember(x => x.InventoryLocationCode, y => y.MapFrom(d => d.LocationCode))
.ForMember(x => x.CountPlanNumber, y => y.MapFrom(d => d.Number))
.Ignore(x=>x.InventoryStage)
.Ignore(x => x.MasterID) .Ignore(x => x.MasterID)
.Ignore(x => x.Number) .Ignore(x => x.Number)
.Ignore(x => x.Id) .Ignore(x => x.Id)
@ -116,5 +119,18 @@ public partial class StoreEventAutoMapperProfile : Profile
.Ignore(x => x.CountDescription) .Ignore(x => x.CountDescription)
; ;
CreateMap<CountJob, CountNote>()
.ForMember(x => x.Stage, y => y.MapFrom(d => d.CountStage))
.ForMember(x => x.BeginTime, y => y.MapFrom(d => d.CreationTime))
.ForMember(x => x.EndTime, y => y.MapFrom(d => d.CompleteTime))
.ForMember(x => x.CountJobNumber, y => y.MapFrom(d => d.Number))
.Ignore(x => x.Adjusted)
.Ignore(x => x.ActiveDate);
CreateMap<CountJobDetail, CountNoteDetail>()
.ForMember(x => x.FinalCountQty, y => y.MapFrom(d => d.CountQty))
.ForMember(x => x.DetailStatus, y => y.MapFrom(d => EnumCountStatus.New))
.Ignore(x => x.Stage)
.Ignore(x => x.Adjusted);
CreateMap<CountJobDependentDetail, CountNoteDependentDetail>();
} }
} }

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

@ -47,18 +47,22 @@ 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)
; ;
//盘点计划映射到盘点记录 //盘点计划映射到盘点记录
CreateMap<CountPlan, CountNote>() CreateMap<CountPlan, CountNote>()
.ForMember(x => x.CountPlanNumber, y => y.MapFrom(d => d.Number)) .ForMember(x => x.CountPlanNumber, y => y.MapFrom(d => d.Number))
.Ignore(x => x.Adjusted) .Ignore(x => x.Adjusted)
.Ignore(x=>x.DepDetails)
.Ignore(x=>x.CountJobNumber)
; ;
CreateMap<CountPlanDetail, CountNoteDetail>() CreateMap<CountPlanDetail, CountNoteDetail>()
.ForMember(x => x.CountPlanNumber, y => y.MapFrom(d => d.Number)) .ForMember(x => x.CountPlanNumber, y => y.MapFrom(d => d.Number))
.Ignore(x => x.Adjusted) .Ignore(x => x.Adjusted)
; ;
CreateMap<CountJobDependentDetail, CountNoteDependentDetail>();
} }
} }

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/AssembleIssueRequestsAutoMapperProfile.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Requests/AssembleIssueRequestAutoMapperProfile.cs

@ -9,10 +9,10 @@ namespace Win_in.Sfs.Wms.Store.Event;
public partial class StoreEventAutoMapperProfile : Profile public partial class StoreEventAutoMapperProfile : Profile
{ {
private void AssembleIssueRequestsAutoMapperProfile() private void AssembleIssueRequestAutoMapperProfile()
{ {
CreateMap<AssembleIssueRequests, AssembleIssueJobEditInput>() CreateMap<AssembleIssueRequest, AssembleIssueJobEditInput>()
.ForMember(x => x.AssembleIssueRequestsNumber, y => y.MapFrom(d => d.Number)) .ForMember(x => x.AssembleRequestNumber, y => y.MapFrom(d => d.Number))
.ForMember(x => x.RequestType, y => y.MapFrom(d => d.Type)) .ForMember(x => x.RequestType, y => y.MapFrom(d => d.Type))
.Ignore(x => x.WarehouseCode) .Ignore(x => x.WarehouseCode)
.Ignore(x => x.UpStreamJobNumber) .Ignore(x => x.UpStreamJobNumber)

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save