From 8882688e3635705c53cd91cdc7adabd5619aee39 Mon Sep 17 00:00:00 2001
From: zhouhongjun <565221961@qq.com>
Date: Fri, 19 Apr 2024 09:22:24 +0800
Subject: [PATCH 1/9] =?UTF-8?q?=E6=B3=A8=E5=A1=91=E5=8F=91=E6=96=99?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Stores/InjectionRequestController.cs | 15 +++++++++++++++
.../ItemBasics/IItemBasicAppService.cs | 1 +
.../Items/ItemBasicAppService.cs | 8 ++++++++
.../IInjectionIssueRequestAppService.cs | 7 +++++++
.../InjectionIssueJobAppService.cs | 5 ++++-
.../InjectionIssueNoteAppService.cs | 5 ++++-
.../InjectionIssueRequestAppService.cs | 17 +++++++++++++++--
.../InjectionIssueRequestEventHandler.cs | 3 ++-
8 files changed, 56 insertions(+), 5 deletions(-)
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
index bdcb4dd23..4a67b9616 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
+++ b/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 Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
+using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
@@ -48,4 +50,17 @@ public class InjectionIssueRequestController : AbpController
return Ok(result);
}
+ ///
+ /// 获取物品类别列表
+ ///
+ ///
+ ///
+ [HttpGet("list/item-category")]
+ public virtual async Task> GetItemCategoryListAsync()
+ {
+ var entities = await _injectionRequestAppService.GetItemCategoryListAsync().ConfigureAwait(false);
+
+ return entities;
+ }
+
}
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs
index e44da0e5f..da616e239 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs
@@ -17,6 +17,7 @@ public interface IItemBasicAppService
void CheckItemIsAvailable(ItemBasicDTO itemBasicDTO);
Task> GetListByNameAsync(string name);
+ Task> GetCategoryListAsync();
Task GetOrAddAsync(ItemBasicEditInput input);
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs
index 710271fd8..fc7d9b96d 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs
@@ -122,6 +122,14 @@ public class ItemBasicAppService
return dtos;
}
+ [HttpGet("list-item-category")]
+ public virtual async Task> GetCategoryListAsync()
+ {
+ var entities = await _repository.GetListAsync(c => !string.IsNullOrEmpty(c.Category)).ConfigureAwait(false);
+ var dtos = ObjectMapper.Map, List>(entities);
+ return dtos;
+ }
+
[HttpGet("get-manage-type")]
public virtual async Task GetManageTypeAsync(string itemCode)
{
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/IInjectionIssueRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/IInjectionIssueRequestAppService.cs
index 09159fa09..8eb902d1d 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/IInjectionIssueRequestAppService.cs
+++ b/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.Tasks;
using Volo.Abp.Application.Dtos;
+using Win_in.Sfs.Basedata.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -16,4 +17,10 @@ public interface IInjectionIssueRequestAppService
///
///
Task GetCountAsync();
+
+ ///
+ /// 获取物品类别列表
+ ///
+ ///
+ Task> GetItemCategoryListAsync();
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs
index 7a599cb67..416005a4a 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs
+++ b/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;
+///
+/// 注塑发料任务
+///
[Authorize]
-[Route($"{StoreConsts.RootPath}injection-job")]
+[Route($"{StoreConsts.RootPath}injection-issue-job")]
public class InjectionIssueJobAppService
: SfsJobAppServiceBase,
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/IssueNotes/InjectionIssueNotes/InjectionIssueNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/IssueNotes/InjectionIssueNotes/InjectionIssueNoteAppService.cs
index e172732a7..5bddd6b32 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/IssueNotes/InjectionIssueNotes/InjectionIssueNoteAppService.cs
+++ b/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;
+///
+/// 注塑发料记录
+///
[Authorize]
-[Route($"{StoreConsts.RootPath}injection-note")]
+[Route($"{StoreConsts.RootPath}injection-issue-note")]
public class InjectionIssueNoteAppService :
SfsStoreWithDetailsAppServiceBase,
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
index 88a708606..8a87550c5 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
+++ b/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;
///
-/// 注塑叫料
+/// 注塑发料申请
///
[Authorize]
-[Route($"{StoreConsts.RootPath}injection-request")]
+[Route($"{StoreConsts.RootPath}injection-issue-request")]
public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase,
@@ -150,6 +150,19 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase
+ /// 获取物品类别列表
+ ///
+ ///
+ ///
+ [HttpGet("list/item-category")]
+ public virtual async Task> GetItemCategoryListAsync()
+ {
+ var entities = await _itemBasicAppService.GetCategoryListAsync().ConfigureAwait(false);
+
+ return entities;
+ }
+
#endregion
#region 导入
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
index faf8ef288..deb859cb5 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
@@ -388,7 +388,7 @@ public class InjectionIssueRequestEventHandler
.RawLocationCodeListJson)
};
var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false);
- usableList = usableList.Where(p => !useBalanceList.Contains(p.PackingCode)).ToList();
+ usableList = usableList.Where(p => !useBalanceList.Contains(p.PackingCode) && p.Qty!=0).ToList();
if (usableList.Any())
{
for (var i = 0; i < sumBoxQty; i++)
@@ -462,6 +462,7 @@ public class InjectionIssueRequestEventHandler
detail.ItemName=injectionRequestDetail.ItemName;
detail.ItemDesc1=injectionRequestDetail.ItemDesc1;
detail.ItemDesc2 = injectionRequestDetail.ItemDesc2;
+ detail.StdPackQty = injectionRequestDetail.StdPackQty;
detail.Status = EnumInventoryStatus.OK;
detail.Uom = balance.Uom;
From 62910df6303bfd4836d51c260f47a716db0ce5a7 Mon Sep 17 00:00:00 2001
From: lvzb <35200379@qq.com>
Date: Fri, 19 Apr 2024 09:23:55 +0800
Subject: [PATCH 2/9] =?UTF-8?q?=E7=9B=98=E7=82=B9=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Jobs/CountJobs/DTOs/CountJobDTO.cs | 6 ++++++
.../Jobs/CountJobs/DTOs/CountJobDependentDetailDTO.cs | 6 +++++-
.../Jobs/CountJobs/DTOs/CountJobDetailDTO.cs | 6 +++++-
.../Jobs/CountJobs/Inputs/CountJobDetailInput.cs | 6 +++++-
.../Jobs/CountJobs/Inputs/CountJobEditInput.cs | 6 ++++++
.../Plans/CountPlans/DTOs/CountPlanDTO.cs | 6 ++++++
.../Plans/CountPlans/Inputs/CountPlanEditInput.cs | 6 ++++++
.../Plans/CountPlans/Inputs/CountPlanImportInput.cs | 6 ++++++
8 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDTO.cs
index 8be6d99fb..35aa9a5bb 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDTO.cs
@@ -24,6 +24,12 @@ public class CountJobDTO : SfsJobDTOBase
[Display(Name = "盘点阶段")]
public EnumCountStage CountStage { get; set; }
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
+
///
/// 盘点方式
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDependentDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDependentDetailDTO.cs
index e98bf2708..5b4288f53 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDependentDetailDTO.cs
+++ b/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
{
-
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
///
/// 盘点标签
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDetailDTO.cs
index 76a95666c..6af1900f5 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/DTOs/CountJobDetailDTO.cs
+++ b/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
{
-
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
///
/// 盘点标签
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobDetailInput.cs
index 0d870ccac..ecb2add71 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobDetailInput.cs
+++ b/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
{
-
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
///
/// 盘点标签
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobEditInput.cs
index 2b35969a4..2b0adf9d2 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/Inputs/CountJobEditInput.cs
@@ -8,6 +8,12 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class CountJobEditInput : SfsJobCreateUpdateInputBase, ISfsJobCreateInput
{
#region Base
+
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
///
/// 盘点模式
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/DTOs/CountPlanDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/DTOs/CountPlanDTO.cs
index 0e26ee1eb..94786e527 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/DTOs/CountPlanDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/DTOs/CountPlanDTO.cs
@@ -24,6 +24,12 @@ public class CountPlanDTO : SfsStoreRequestDTOBase
[Display(Name = "盘点阶段")]
public EnumCountStage Stage { get; set; }
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
+
///
/// 描述
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanEditInput.cs
index 3de261d6d..8a09a9185 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanEditInput.cs
@@ -64,6 +64,12 @@ public class CountPlanEditInput : SfsStoreRequestCreateOrUpdateInputBase, IHasNu
///
[Display(Name = "盘点模式")]
public EnumInventoryMode InventoryMode { get; set; }
+
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
///
/// 类型
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanImportInput.cs
index aee4debde..22469a934 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanImportInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanImportInput.cs
@@ -57,4 +57,10 @@ public class CountPlanImportInput : SfsStoreImportInputBase
///
[Display(Name = "盘点模式")]
public EnumInventoryMode InventoryMode { get; set; }
+
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
}
From 10951e110cf662e15b4ac1f7a95f820c6150dfc8 Mon Sep 17 00:00:00 2001
From: lvzb <35200379@qq.com>
Date: Fri, 19 Apr 2024 09:32:21 +0800
Subject: [PATCH 3/9] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=88=E5=B9=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../AutoMapperProfiles/Plans/CountPlanAutoMapperProfile.cs | 1 +
1 file changed, 1 insertion(+)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Plans/CountPlanAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Plans/CountPlanAutoMapperProfile.cs
index cf0e69b5c..d219dd28e 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Plans/CountPlanAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Plans/CountPlanAutoMapperProfile.cs
@@ -47,6 +47,7 @@ public partial class StoreEventAutoMapperProfile : Profile
.Ignore(x => x.ArriveDate)
.Ignore(x => x.ProduceDate)
.Ignore(x => x.ExpireDate)
+ .Ignore(x=>x.InventoryStage)
;
//盘点计划映射到盘点记录
From e8e1b5a8a7978f7b9b73f324a57f7486ad0dce6a Mon Sep 17 00:00:00 2001
From: lvzb <35200379@qq.com>
Date: Fri, 19 Apr 2024 14:00:48 +0800
Subject: [PATCH 4/9] =?UTF-8?q?=E7=9B=98=E7=82=B9=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Inputs/CountPlanCreateRequestInput.cs | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanCreateRequestInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanCreateRequestInput.cs
index a9edbd60d..7e9cab750 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Plans/CountPlans/Inputs/CountPlanCreateRequestInput.cs
+++ b/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 = "盘点方式")]
public CountPlanRequestType RequestType { get; set; }
+
+ ///
+ /// 盘点次数
+ ///
+ [Display(Name = "盘点次数")]
+ public int InventoryStage { get; set; }
+
+ ///
+ /// 盘点模式
+ ///
+ [Display(Name = "盘点模式")]
+ public EnumInventoryMode InventoryMode { get; set; }
+
///
/// 零件条件集合
///
From af08db0b1fb86034f0ce8007b58a18acdadd6096 Mon Sep 17 00:00:00 2001
From: zhouhongjun <565221961@qq.com>
Date: Fri, 19 Apr 2024 16:16:50 +0800
Subject: [PATCH 5/9] =?UTF-8?q?=E6=B3=A8=E5=A1=91=E5=8F=91=E6=96=99?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Stores/InjectionRequestController.cs | 5 +-
.../ProductionLineAppService.cs | 3 +-
.../InjectionIssueRequestAppService.cs | 23 +++++--
.../InjectionIssueRequestEventHandler.cs | 62 +++++++++++++------
4 files changed, 66 insertions(+), 27 deletions(-)
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
index 4a67b9616..9c2c3045b 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
@@ -32,9 +32,10 @@ public class InjectionIssueRequestController : AbpController
///
///
[HttpPost("")]
- public virtual async Task CreateAsync(InjectionIssueRequestEditInput input)
+ public virtual async Task> CreateAsync(InjectionIssueRequestEditInput input)
{
- _ = await _injectionRequestAppService.CreateAsync(input).ConfigureAwait(false);
+ var result = await _injectionRequestAppService.CreateAsync(input).ConfigureAwait(false);
+ return Ok(result);
}
///
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs
index 188bfb5f4..3bb63cb76 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLines/ProductionLineAppService.cs
+++ b/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 Volo.Abp;
using Volo.Abp.Caching;
+using Volo.Abp.Domain.Repositories;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
@@ -48,7 +49,7 @@ public class ProductionLineAppService
[HttpPost("get-by-location")]
public virtual async Task 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)
{
throw new UserFriendlyException($"【{locationCode}】库位不存在");
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
index 8a87550c5..b998f6bbc 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs
@@ -42,6 +42,7 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase0)
+ {
+ 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;
//因为是刚创建的 所以发料数一定是0
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
index deb859cb5..29927219a 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/InjectionIssueRequestEventHandler.cs
@@ -249,6 +249,11 @@ public class InjectionIssueRequestEventHandler
var productionLineItemDto =
productionLineItemDtos.FirstOrDefault(p => p.ItemCode == injectionRequestDetail.ItemCode);
+ if (productionLineItemDto == null)
+ {
+ throw new UserFriendlyException(
+ $"物品代码【{injectionRequestDetail.ItemCode}】在生产线【{productionLineDto.Code}】中没有对应的【生产线物品关系】");
+ }
var input = new RecommendBalanceRequestInput
{
ItemCode = injectionRequestDetail.ItemCode,
@@ -268,20 +273,10 @@ public class InjectionIssueRequestEventHandler
var detail =
await BuildInjectionIssueJobDetailWithQtyTypeAsync(injectionRequestDetail, recommend,
toLocationGroupCode)
- .ConfigureAwait(false);
- if (injectionRequest.UseOnTheWayLocation)
- {
- //获取在途库
- var locationDto = await _locationAppService.GetFirstByTypeAsync(EnumLocationType.TRANSPORT)
- .ConfigureAwait(false);
-
- detail.OnTheWayLocationCode = locationDto.Code;
- }
+ .ConfigureAwait(false);
jobDetails.Add(detail);
- injectionRequestDetail.IssuedQty += recommend.Qty;
-
- //await _injectionRequestManager.UpdateDetailsAsync(injectionRequest).ConfigureAwait(false);
+
}
}
@@ -298,36 +293,63 @@ public class InjectionIssueRequestEventHandler
private async Task BuildInjectionIssueJobDetailWithQtyTypeAsync(
InjectionIssueRequestDetail injectionRequestDetail, BalanceDTO balance, string toLocationGroupCode)
{
- //ProductionLineDTO prodLine = await _productionLineAppService.GetByLocationGroupCodeAsync(toLocationGroupCode).ConfigureAwait(false);
-
- var detail = ObjectMapper.Map(balance);
+ var detail = new InjectionIssueJobDetailInput();
detail.RequestLocationCode = injectionRequestDetail.ToLocationCode;
+ detail.RequestLocationGroup=injectionRequestDetail.ToLocationGroup;
+ detail.RequestLocationArea = injectionRequestDetail.ToLocationArea;
+ detail.RequestLocationErpCode = injectionRequestDetail.ToLocationErpCode;
+ detail.RequestWarehouseCode=injectionRequestDetail.ToWarehouseCode;
+
detail.PositionCode = injectionRequestDetail.PositionCode;
detail.RecommendType = injectionRequestDetail.RecommendType;
+ detail.ProdLine = injectionRequestDetail.ToLocationCode;
+
+ detail.ItemCode = injectionRequestDetail.ItemCode;
+ detail.ItemName=injectionRequestDetail.ItemName;
+ detail.ItemDesc1=injectionRequestDetail.ItemDesc1;
+ detail.ItemDesc2 = injectionRequestDetail.ItemDesc2;
+ detail.StdPackQty = injectionRequestDetail.StdPackQty;
+ detail.RequestQty= injectionRequestDetail.Qty;
+
+ detail.Status = EnumInventoryStatus.OK;
+ detail.Uom = balance.Uom;
detail.RecommendFromPackingCode = balance.PackingCode;
detail.RecommendFromContainerCode = balance.ContainerCode;
+ detail.RecommendFromLot = balance.Lot;
+
+ detail.RecommendFromQty = balance.Qty;
+
detail.RecommendFromSupplierBatch = balance.SupplierBatch;
detail.RecommendFromProduceDate = balance.ProduceDate;
detail.RecommendFromExpireDate = balance.ExpireDate;
- detail.RecommendFromLot = balance.Lot;
detail.RecommendFromProduceDate = balance.ProduceDate;
detail.RecommendFromArriveDate = balance.ArriveDate;
+
detail.RecommendFromLocationArea = balance.LocationArea;
detail.RecommendFromLocationCode = balance.LocationCode;
detail.RecommendFromLocationErpCode = balance.LocationErpCode;
detail.RecommendFromLocationGroup = balance.LocationGroup;
detail.RecommendFromWarehouseCode = balance.WarehouseCode;
- detail.RecommendFromQty = balance.Qty;
- detail.Uom = balance.Uom;
+
+ detail.RecommendToPackingCode = balance.PackingCode;
+ detail.RecommendToContainerCode = balance.ContainerCode;
+ detail.RecommendToLot = balance.Lot;
+
+ detail.RecommendToQty = balance.Qty;
+
+ detail.RecommendToSupplierBatch = balance.SupplierBatch;
+ detail.RecommendToProduceDate = balance.ProduceDate;
+ detail.RecommendToExpireDate = balance.ExpireDate;
+ detail.RecommendToProduceDate = balance.ProduceDate;
+ detail.RecommendToArriveDate = balance.ArriveDate;
detail.RecommendToLocationCode = injectionRequestDetail.ToLocationCode;
detail.RecommendToLocationErpCode = injectionRequestDetail.ToLocationErpCode;
detail.RecommendToLocationArea = injectionRequestDetail.ToLocationArea;
detail.RecommendToWarehouseCode = injectionRequestDetail.ToWarehouseCode;
+ detail.RecommendToLocationGroup = injectionRequestDetail.ToLocationGroup;
- //detail.ProdLine = prodLine == null ? toLocationGroupCode : prodLine.Code;
- detail.ProdLine = toLocationGroupCode;
await Task.CompletedTask.ConfigureAwait(false);
return detail;
}
From 960f5348128cd5ffb44bfa23ed801b76035759f6 Mon Sep 17 00:00:00 2001
From: "boxu.zheng"
Date: Fri, 19 Apr 2024 17:03:59 +0800
Subject: [PATCH 6/9] =?UTF-8?q?zheng=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Boms/BomAppService.cs | 88 ++++++---------
.../IJisProductReceiptNoteAppService.cs | 7 +-
.../DTOs/KittingPackagingNoteDTO.cs | 61 +++++++++++
.../KittingPackagingNoteDependentDetailDTO.cs | 58 ++++++++++
.../DTOs/KittingPackagingNoteDetailDTO.cs | 58 ++++++++++
.../IKittingPackagingNoteAppService.cs | 10 ++
.../Inputs/KittingPackagingNoteCheckInput.cs | 6 ++
.../KittingPackagingNoteCreateRequestInput.cs | 101 ++++++++++++++++++
.../Inputs/KittingPackagingNoteDetailInput.cs | 58 ++++++++++
.../Inputs/KittingPackagingNoteEditInput.cs | 82 ++++++++++++++
.../Inputs/KittingPackagingNoteImportInput.cs | 32 ++++++
.../KittingPackagingNotePermissions.cs | 21 ++++
.../JisProductReceiptNoteAppService.cs | 11 +-
.../KittingPackagingNoteAppService.cs | 34 ++++++
.../KittingPackagingNoteAutoMapperProfile.cs | 15 +++
.../IKittingPackagingNoteManager.cs | 11 ++
.../IKittingPackagingNoteRepository.cs | 6 ++
.../KittingPackagingNote.cs | 31 ++++++
.../KittingPackagingNoteChassisDetail.cs | 51 +++++++++
.../KittingPackagingNoteDetail.cs | 40 +++++++
.../KittingPackagingNoteManager.cs | 26 +++++
...ingNoteDbContextModelCreatingExtensions.cs | 77 +++++++++++++
.../KittingPackagingNoteEfCoreRepository.cs | 11 ++
23 files changed, 839 insertions(+), 56 deletions(-)
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDependentDetailDTO.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/IKittingPackagingNoteAppService.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCheckInput.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/KittingPackagingNotePermissions.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAutoMapperProfile.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteManager.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteRepository.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteManager.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteEfCoreRepository.cs
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs
index 41e51c39a..b4744eabb 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs
@@ -2,10 +2,8 @@ using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
-using DocumentFormat.OpenXml.Spreadsheet;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.EntityFrameworkCore;
using Volo.Abp.Caching;
using Volo.Abp.Domain.Repositories;
using Win_in.Sfs.Basedata.Application.Contracts;
@@ -25,31 +23,21 @@ public class BomAppService :
private new readonly IBomRepository _repository;
private readonly IBomManager _bomManager;
- List _bomList=new List();
+ private List _bomList = new();
public BomAppService(IBomRepository repository
, IBomManager bomManager
, IDistributedCache cache
- ) : base(repository, cache)
+ ) : base(repository, cache)
{
_repository = repository;
_bomManager = bomManager;
base.CreatePolicyName = BomPermissions.Create;
base.UpdatePolicyName = BomPermissions.Update;
base.DeletePolicyName = BomPermissions.Delete;
-
}
-
-
-
-
-
-
-
-
-
#region Get
[HttpGet("get-by-productitemcode")]
@@ -57,7 +45,7 @@ public class BomAppService :
public virtual async Task> GetListAsync(string productItemCode, string mfgOp)
{
var entities = await _repository.GetListAsync(p => p.Product == productItemCode
- // && p.MFGOp == mfgOp
+ // && p.MFGOp == mfgOp
).ConfigureAwait(false);
return ObjectMapper.Map, List>(entities);
}
@@ -65,7 +53,8 @@ public class BomAppService :
[HttpGet("list/for-preparation-plan")]
public virtual async Task> GetPlanListAsync(string productItemCode, string mfgOp)
{
- var entities = await _bomManager.GetListWithPhantomItemAsync(productItemCode, mfgOp, Clock.Now, true).ConfigureAwait(false);
+ var entities = await _bomManager.GetListWithPhantomItemAsync(productItemCode, mfgOp, Clock.Now, true)
+ .ConfigureAwait(false);
return ObjectMapper.Map, List>(entities);
}
@@ -73,20 +62,23 @@ public class BomAppService :
[HttpGet("list/for-backflush")]
public virtual async Task> GetBackFlushListAsync(string productItemCode, string mfgOp)
{
- var entities = await _bomManager.GetListWithPhantomItemAsync(productItemCode, mfgOp, Clock.Now, false).ConfigureAwait(false);
+ var entities = await _bomManager.GetListWithPhantomItemAsync(productItemCode, mfgOp, Clock.Now, false)
+ .ConfigureAwait(false);
return ObjectMapper.Map, List>(entities);
}
[HttpGet("get-by-productitemcode-sbs")]
- public virtual async Task> GetBomStepByStepAsync(string productItemCode, DateTime validTime, bool isStepByStep = true)
+ public virtual async Task> GetBomStepByStepAsync(string productItemCode, DateTime validTime,
+ bool isStepByStep = true)
{
- var entities = await _bomManager.GetRecursiveListAsync(productItemCode, validTime, isStepByStep).ConfigureAwait(false);
+ var entities = await _bomManager.GetRecursiveListAsync(productItemCode, validTime, isStepByStep)
+ .ConfigureAwait(false);
return ObjectMapper.Map, List>(entities);
}
///
- /// 所有子物料号
+ /// 所有子物料号
///
///
///
@@ -97,7 +89,7 @@ public class BomAppService :
}
///
- /// 所有父物料号
+ /// 所有父物料号
///
///
///
@@ -106,8 +98,9 @@ public class BomAppService :
{
return await _bomManager.GetListOfComponentAsync(component).ConfigureAwait(false);
}
+
///
- /// 获取bomtree
+ /// 获取bomtree
///
///
///
@@ -120,8 +113,9 @@ public class BomAppService :
return dtos;
}
+
///
- /// 获取所有子物料关系
+ /// 获取所有子物料关系
///
///
///
@@ -141,11 +135,12 @@ public class BomAppService :
foreach (var dto in dtos)
{
var entities = (await _bomManager.GetListOfProductAsync(dto.Component).ConfigureAwait(false))
- .FindAll(t => t.Component != dto.Component);
+ .FindAll(t => t.Component != dto.Component);
if (entities.Count > 0)
{
- dto.ComponentDTOs = await GetChildBomsAsync(ObjectMapper.Map, List>(entities)).ConfigureAwait(false);
+ dto.ComponentDTOs = await GetChildBomsAsync(ObjectMapper.Map, List>(entities))
+ .ConfigureAwait(false);
}
}
@@ -162,7 +157,6 @@ public class BomAppService :
entity.ComponentQty = input.ComponentQty;
await _repository.UpsertAsync(entity).ConfigureAwait(false);
- return;
}
[HttpPost("upsert-interface")]
@@ -173,18 +167,18 @@ public class BomAppService :
entity.ComponentQty = input.ComponentQty;
await _repository.UpsertAsyncByInterface(entity);
- return;
}
-
[HttpPost("add-upsert-lsit")]
public virtual async Task AddOrUpsertListAsync(List inputs)
{
- List entitys = new List();
+ var entitys = new List();
foreach (var input in inputs)
{
- var oldBom = await _repository.FirstOrDefaultAsync(t => t.Product == input.Product && t.Component == input.Component).ConfigureAwait(false);
+ var oldBom = await _repository
+ .FirstOrDefaultAsync(t => t.Product == input.Product && t.Component == input.Component)
+ .ConfigureAwait(false);
if (oldBom == null)
{
@@ -202,18 +196,20 @@ public class BomAppService :
entitys.Add(oldBom);
}
}
+
await _repository.BulkMergeAsync(entitys).ConfigureAwait(false);
- return;
}
- protected override async Task ValidateImportModelAsync(BomImportInput importInput, List validationRresult)
+ protected override async Task ValidateImportModelAsync(BomImportInput importInput,
+ List validationRresult)
{
- await base.CheckProductAsync(importInput.Product, validationRresult).ConfigureAwait(false);
- await base.CheckComponentAndComponentQtyAsync(importInput.Component, importInput.ComponentQty, validationRresult).ConfigureAwait(false);
+ await CheckProductAsync(importInput.Product, validationRresult).ConfigureAwait(false);
+ await CheckComponentAndComponentQtyAsync(importInput.Component, importInput.ComponentQty, validationRresult)
+ .ConfigureAwait(false);
}
///
- /// 根据总成号、总成数量取所有子物料及其汇总数量
+ /// 根据总成号、总成数量取所有子物料及其汇总数量
///
/// 总成号
/// 总成数量
@@ -223,31 +219,17 @@ public class BomAppService :
{
var entities = await _bomManager.GetMaterialTotalQtyAsync(productCode, productNum).ConfigureAwait(false);
return ObjectMapper.Map, List>(entities);
-
}
[HttpPost("get_bom_sublist")]
-
- public async Task> GetSubcomponentsRecursiveList(List p_lst, EnumBomSelectedType p_type
+ public async Task> GetSubcomponentsRecursiveList(List p_lst,
+ EnumBomSelectedType p_type
)
{
- var entities=ObjectMapper.Map, List>(p_lst);
- var list=await _bomManager.GetSubcomponentsRecursiveList(entities, p_type).ConfigureAwait(false);
+ var entities = ObjectMapper.Map, List>(p_lst);
+ var list = await _bomManager.GetSubcomponentsRecursiveList(entities, p_type).ConfigureAwait(false);
var sublist = ObjectMapper.Map, List>(list);
return sublist;
-
}
-
-
-
-
-
-
-
}
-
-
-
-
-
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/JisProductReceiptNotes/IJisProductReceiptNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/JisProductReceiptNotes/IJisProductReceiptNoteAppService.cs
index 6f9114073..25bd7b142 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/JisProductReceiptNotes/IJisProductReceiptNoteAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/JisProductReceiptNotes/IJisProductReceiptNoteAppService.cs
@@ -2,7 +2,12 @@ using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public interface IJisProductReceiptNoteAppService : ISfsStoreMasterReadOnlyAppServiceBase
+public interface IJisProductReceiptNoteAppService :
+ ISfsStoreMasterReadOnlyAppServiceBase<
+ JisProductReceiptNoteDTO,
+ SfsStoreRequestInputBase,
+ JisProductReceiptNoteDetailDTO,
+ SfsStoreRequestInputBase>
{
Task CreateAsync(JisProductReceiptNoteEditInput input);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs
new file mode 100644
index 000000000..8e89587cb
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs
@@ -0,0 +1,61 @@
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain;
+using Win_in.Sfs.Shared.Domain.Entities;
+using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Store.Domain;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+[Display(Name = "盘点任务")]
+public class KittingPackagingNoteDTO : SfsJobDTOBase
+{
+
+ ///
+ /// 生产计划号
+ ///
+ [Display(Name = "盘点计划号")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string CountPlanNumber { get; set; }
+
+ ///
+ /// 盘点阶段
+ ///
+ [Display(Name = "盘点阶段")]
+ public EnumCountStage CountStage { get; set; }
+
+ ///
+ /// 盘点方式
+ ///
+ [Display(Name = "盘点方式")]
+ public EnumCountMethod CountMethod { get; set; }
+
+ ///
+ /// 类型
+ ///
+ [Display(Name = "盘点类型")]
+ public EnumCountType Type { get; set; }
+
+ ///
+ /// 描述
+ ///
+ [Display(Name = "描述")]
+ public string Description { get; set; }
+
+ ///
+ /// 物料代码
+ ///
+ [Display(Name = "物料代码")]
+ public string ItemCode { get; set; }
+
+ ///
+ /// 库位代码
+ ///
+ [Display(Name = "库位代码")]
+ public string LocationCode { get; set; }
+
+ ///
+ /// 任务从表明细(记录每次扫得明细)
+ ///
+ public List DepDetails { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDependentDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDependentDetailDTO.cs
new file mode 100644
index 000000000..1f89a3ba2
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDependentDetailDTO.cs
@@ -0,0 +1,58 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public class KittingPackagingNoteDependentDetailDTO : SfsJobDetailDTOBase, IHasCountResult
+{
+
+ ///
+ /// 盘点标签
+ ///
+ [Display(Name = "盘点标签")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string CountLabel { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ [Display(Name = "计量单位")]
+ public string Uom { get; set; }
+
+ ///
+ /// 库存数量
+ ///
+ [Display(Name = "库存数量")]
+ public decimal InventoryQty { get; set; }
+
+ ///
+ /// 库存库位
+ ///
+ [Display(Name = "库存库位")]
+ public string InventoryLocationCode { get; set; }
+
+ ///
+ /// 盘点数量
+ ///
+ [Display(Name = "盘点数量")]
+ public decimal CountQty { get; set; }
+
+ ///
+ /// 盘点时间
+ ///
+ [Display(Name = "盘点时间")]
+ public DateTime? CountTime { get; set; }
+
+ ///
+ /// 盘点操作员
+ ///
+ [Display(Name = "盘点操作员")]
+ public string CountOperator { get; set; }
+
+ ///
+ /// 盘点描述
+ ///
+ [Display(Name = "盘点描述")]
+ public string CountDescription { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs
new file mode 100644
index 000000000..3e9edb5cc
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs
@@ -0,0 +1,58 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public class KittingPackagingNoteDetailDTO : SfsJobDetailDTOBase, IHasCountResult
+{
+
+ ///
+ /// 盘点标签
+ ///
+ [Display(Name = "盘点标签")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string CountLabel { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ [Display(Name = "计量单位")]
+ public string Uom { get; set; }
+
+ ///
+ /// 库存数量
+ ///
+ [Display(Name = "库存数量")]
+ public decimal InventoryQty { get; set; }
+
+ ///
+ /// 库存库位
+ ///
+ [Display(Name = "库存库位")]
+ public string InventoryLocationCode { get; set; }
+
+ ///
+ /// 盘点数量
+ ///
+ [Display(Name = "盘点数量")]
+ public decimal CountQty { get; set; }
+
+ ///
+ /// 盘点时间
+ ///
+ [Display(Name = "盘点时间")]
+ public DateTime? CountTime { get; set; }
+
+ ///
+ /// 盘点操作员
+ ///
+ [Display(Name = "盘点操作员")]
+ public string CountOperator { get; set; }
+
+ ///
+ /// 盘点描述
+ ///
+ [Display(Name = "盘点描述")]
+ public string CountDescription { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/IKittingPackagingNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/IKittingPackagingNoteAppService.cs
new file mode 100644
index 000000000..9ad863aec
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/IKittingPackagingNoteAppService.cs
@@ -0,0 +1,10 @@
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public interface IKittingPackagingNoteAppService :
+ ISfsStoreMasterReadOnlyAppServiceBase<
+ KittingPackagingNoteDTO,
+ SfsStoreRequestInputBase,
+ KittingPackagingNoteDetailDTO,
+ SfsStoreRequestInputBase>
+{
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCheckInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCheckInput.cs
new file mode 100644
index 000000000..13e414fd7
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCheckInput.cs
@@ -0,0 +1,6 @@
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public class KittingPackagingNoteCheckInput : SfsJobCheckInputBase
+{
+
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs
new file mode 100644
index 000000000..d5eececd8
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs
@@ -0,0 +1,101 @@
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain;
+using Win_in.Sfs.Shared.Domain.Shared;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+///
+/// 查询条件 DTO
+///
+public class KittingPackagingNoteCreateRequestInput
+{
+ ///
+ /// 盘点方式
+ ///
+ [Display(Name = "盘点方式")]
+ public EnumCountMethod CountMethod { get; set; }
+
+ ///
+ /// 描述
+ ///
+ [Display(Name = "描述")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string Description { get; set; }
+
+ ///
+ /// 盘点执行形式
+ ///
+ [Display(Name = "盘点执行形式")]
+ public CountPlanRequestType RequestType { get; set; }
+
+ ///
+ /// 类型
+ ///
+ [Display(Name = "盘点类型")]
+ public EnumCountType Type { get; set; }
+
+ ///
+ /// 零件条件集合
+ ///
+ [Display(Name = "零件条件集合")]
+ public List PartCondition { get; set; } = new();
+
+ ///
+ /// 库位条件集合
+ ///
+ [Display(Name = "库位条件集合")]
+ public List LocCondition { get; set; } = new();
+
+ ///
+ /// 状态
+ ///
+ [Display(Name = "状态")]
+ public List StatusList { get; set; }
+
+ ///
+ /// 操作员
+ ///
+ [Display(Name = "操作员")]
+ //[Required(ErrorMessage = "{0}是必填项")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string Worker { get; set; }
+
+ ///
+ /// 仓库
+ ///
+ [Display(Name = "仓库")]
+ //[Required(ErrorMessage = "{0}是必填项")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string WarehouseCode { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Display(Name = "备注")]
+ public string Remark { get; set; }
+
+ ///
+ /// 盘点阶段
+ ///
+ [Display(Name = "盘点阶段")]
+ public EnumCountStage CountStage { get; set; } = EnumCountStage.Circulate;
+
+ ///
+ /// 盘点的零件集合
+ ///
+ [Display(Name = "盘点的零件集合")]
+ public string JsonItemCodes { get; set; }
+
+ ///
+ /// 盘点的库位集合
+ ///
+ [Display(Name = "盘点的库位集合")]
+ public string JsonLocationCodes { get; set; }
+
+ ///
+ /// 盘点的库存状态集合
+ ///
+ [Display(Name = "盘点的库存状态集合")]
+ public string JsonInventoryStatus { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs
new file mode 100644
index 000000000..a02d61277
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs
@@ -0,0 +1,58 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public class KittingPackagingNoteDetailInput : SfsJobDetailInputBase, IHasCountResult
+{
+
+ ///
+ /// 盘点标签
+ ///
+ [Display(Name = "盘点标签")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string CountLabel { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ [Display(Name = "计量单位")]
+ public string Uom { get; set; }
+
+ ///
+ /// 库存数量
+ ///
+ [Display(Name = "库存数量")]
+ public decimal InventoryQty { get; set; }
+
+ ///
+ /// 库存库位
+ ///
+ [Display(Name = "库存库位")]
+ public string InventoryLocationCode { get; set; }
+
+ ///
+ /// 盘点数量
+ ///
+ [Display(Name = "盘点数量")]
+ public decimal CountQty { get; set; }
+
+ ///
+ /// 盘点时间
+ ///
+ [Display(Name = "盘点时间")]
+ public DateTime? CountTime { get; set; }
+
+ ///
+ /// 盘点操作员
+ ///
+ [Display(Name = "盘点操作员")]
+ public string CountOperator { get; set; }
+
+ ///
+ /// 盘点描述
+ ///
+ [Display(Name = "盘点描述")]
+ public string CountDescription { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs
new file mode 100644
index 000000000..233be52d8
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs
@@ -0,0 +1,82 @@
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain;
+using Win_in.Sfs.Shared.Domain.Shared;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public class KittingPackagingNoteEditInput : SfsJobCreateUpdateInputBase, ISfsJobCreateInput
+{
+ #region Base
+ ///
+ /// 盘点方式
+ ///
+ [Display(Name = "盘点方式")]
+ public EnumCountMethod CountMethod { get; set; }
+ ///
+ /// 类型
+ ///
+ [Display(Name = "盘点类型")]
+
+ public EnumCountType Type { get; set; }
+
+ ///
+ /// 描述
+ ///
+ [Display(Name = "描述")]
+
+ public string Description { get; set; }
+
+ ///
+ /// 物料代码
+ ///
+ [Display(Name = "物料代码")]
+ public string ItemCode { get; set; }
+
+ ///
+ /// 库位代码
+ ///
+ [Display(Name = "库位代码")]
+ public string LocationCode { get; set; }
+ #endregion
+
+ #region Create
+ ///
+ /// 上游任务编号
+ ///
+ [Display(Name = "上游任务编号")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string UpStreamJobNumber { get; set; }
+
+ ///
+ /// 盘点计划号
+ ///
+ [Display(Name = "盘点计划号")]
+ [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
+ public string CountPlanNumber { get; set; }
+
+ ///
+ /// 盘点阶段
+ ///
+ [Display(Name = "盘点阶段")]
+ public EnumCountStage CountStage { get; set; }
+
+ ///
+ /// 任务类型
+ ///
+ [Display(Name = "任务类型")]
+ public EnumJobType JobType { get; set; }
+
+ ///
+ /// 是否自动完成
+ ///
+ [Display(Name = "是否自动完成")]
+ public bool IsAutoComplete { get; set; }
+
+ ///
+ /// 任务明细
+ ///
+ [Display(Name = "任务明细")]
+ public List Details { get; set; }
+ #endregion
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs
new file mode 100644
index 000000000..793c3611e
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs
@@ -0,0 +1,32 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public class KittingPackagingNoteImportInput : SfsStoreImportInputBase
+{
+
+ ///
+ /// 盘点任务单号
+ ///
+ [Display(Name = "盘点任务单号")]
+ public string CountJobNumber { get; set; }
+
+ ///
+ /// 盘点计划单号
+ ///
+ [Display(Name = "盘点计划单号")]
+ public string CountPlanNumber { get; set; }
+
+ ///
+ /// 调整类型
+ ///
+ [Display(Name = "调整类型")]
+ public string Type { get; set; }
+
+ ///
+ /// 是否已经调整
+ ///
+ [Display(Name = "是否已经调整")]
+ [Required(ErrorMessage = "{0}是必填项")]
+ public bool IsAdjusted { get; set; } = false;
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/KittingPackagingNotePermissions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/KittingPackagingNotePermissions.cs
new file mode 100644
index 000000000..422bd3ca2
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/KittingPackagingNotePermissions.cs
@@ -0,0 +1,21 @@
+using Volo.Abp.Authorization.Permissions;
+using Win_in.Sfs.Wms.Store.Domain;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public static class KittingPackagingNotePermissions
+{
+
+ public const string Default = StorePermissions.GroupName + "." + nameof(KittingPackagingNote);
+ public const string Create = Default + "." + StorePermissions.CreateStr;
+ public const string Update = Default + "." + StorePermissions.UpdateStr;
+ public const string Delete = Default + "." + StorePermissions.DeleteStr;
+
+ public static void AddKittingPackagingNotePermission(this PermissionGroupDefinition permissionGroup)
+ {
+ var countJobPermission = permissionGroup.AddPermission(Default, StorePermissionDefinitionProvider.L(nameof(KittingPackagingNote)));
+ countJobPermission.AddChild(Create, StorePermissionDefinitionProvider.L(StorePermissions.CreateStr));
+ countJobPermission.AddChild(Update, StorePermissionDefinitionProvider.L(StorePermissions.UpdateStr));
+ countJobPermission.AddChild(Delete, StorePermissionDefinitionProvider.L(StorePermissions.DeleteStr));
+ }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/JisProductReceiptNotes/JisProductReceiptNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/JisProductReceiptNotes/JisProductReceiptNoteAppService.cs
index 864362e7a..aa49659cc 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/JisProductReceiptNotes/JisProductReceiptNoteAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/JisProductReceiptNotes/JisProductReceiptNoteAppService.cs
@@ -10,8 +10,15 @@ namespace Win_in.Sfs.Wms.Store.Application;
[Authorize]
[Route($"{StoreConsts.RootPath}jis-product-receipt-note")]
public class JisProductReceiptNoteAppService :
- SfsStoreWithDetailsAppServiceBase,
+ SfsStoreWithDetailsAppServiceBase<
+ JisProductReceiptNote,
+ JisProductReceiptNoteDTO,
+ SfsStoreRequestInputBase,
+ JisProductReceiptNoteEditInput,
+ JisProductReceiptNoteDetail,
+ JisProductReceiptNoteDetailDTO,
+ SfsStoreRequestInputBase,
+ JisProductReceiptNoteImportInput>,
IJisProductReceiptNoteAppService
{
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs
new file mode 100644
index 000000000..a59670213
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs
@@ -0,0 +1,34 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Domain;
+using Win_in.Sfs.Wms.Store.Domain.Shared;
+
+namespace Win_in.Sfs.Wms.Store.Application;
+
+///
+/// 盘点接口
+///
+[Authorize]
+[Route($"{StoreConsts.RootPath}KittingPackagingNote")]
+public class KittingPackagingNoteAppService
+ : SfsStoreWithDetailsAppServiceBase<
+ KittingPackagingNote,
+ KittingPackagingNoteDTO,
+ SfsStoreRequestInputBase,
+ KittingPackagingNoteEditInput,
+ KittingPackagingNoteDetail,
+ KittingPackagingNoteDetailDTO,
+ SfsStoreRequestInputBase,
+ KittingPackagingNoteImportInput>, IKittingPackagingNoteAppService
+{
+ private readonly IKittingPackagingNoteManager _kittingPackagingNoteManager;
+
+ public KittingPackagingNoteAppService(
+ IKittingPackagingNoteRepository repository,
+ IJisProductReceiptNoteManager KittingPackagingNoteManager,
+ IKittingPackagingNoteManager kittingPackagingNoteManager) : base(repository)
+ {
+ _kittingPackagingNoteManager = kittingPackagingNoteManager;
+ }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAutoMapperProfile.cs
new file mode 100644
index 000000000..c7b01d559
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAutoMapperProfile.cs
@@ -0,0 +1,15 @@
+using AutoMapper;
+using Volo.Abp.AutoMapper;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Domain;
+
+namespace Win_in.Sfs.Wms.Store.Application;
+
+public partial class StoreApplicationAutoMapperProfile : Profile
+{
+ private void KittingPackagingNoteAutoMapperProfile()
+ {
+ CreateMap()
+ .ReverseMap();
+ }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteManager.cs
new file mode 100644
index 000000000..b439f482a
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteManager.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using Win_in.Sfs.Shared.Domain.Shared;
+
+namespace Win_in.Sfs.Wms.Store.Domain;
+
+public interface IKittingPackagingNoteManager : ISfsStoreManager
+{
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteRepository.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteRepository.cs
new file mode 100644
index 000000000..0ba04487d
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/IKittingPackagingNoteRepository.cs
@@ -0,0 +1,6 @@
+namespace Win_in.Sfs.Wms.Store.Domain;
+
+public interface IKittingPackagingNoteRepository : ISfsStoreRepositoryBase
+{
+
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs
new file mode 100644
index 000000000..ba220dc50
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain.Entities;
+
+namespace Win_in.Sfs.Wms.Store.Domain;
+
+///
+/// kitting打包记录
+///
+[Display(Name = "kitting打包记录")]
+public class KittingPackagingNote : SfsStoreAggregateRootBase
+{
+ ///
+ /// kitting代码
+ ///
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
+
+ ///
+ /// 任务明细
+ ///
+ [IgnoreUpdate]
+ public override List Details { get; set; } = new();
+
+ ///
+ /// 任务从表明细(记录每次扫得明细)
+ ///
+ [IgnoreUpdate]
+ public List DepDetails { get; set; } = new();
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs
new file mode 100644
index 000000000..2f2a0bdf7
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs
@@ -0,0 +1,51 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain;
+
+namespace Win_in.Sfs.Wms.Store.Domain;
+
+public class KittingPackagingNoteChassisDetail : SfsJobDetailEntityBase, IHasCountResult, IHasInventoryQty
+{
+
+ ///
+ /// 盘点标签
+ ///
+ public string CountLabel { get; set; }
+
+ ///
+ /// 库存数量
+ ///
+ public decimal InventoryQty { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ [Display(Name = "计量单位")]
+ public string Uom { get; set; }
+
+ ///
+ /// 库存库位
+ ///
+ public string InventoryLocationCode { get; set; }
+
+ ///
+ /// 盘点数量(每次扫得数量)
+ ///
+ public decimal CountQty { get; set; }
+
+ ///
+ /// 盘点时间
+ ///
+ public DateTime? CountTime { get; set; }
+
+ ///
+ /// 盘点操作员
+ ///
+ public string CountOperator { get; set; }
+
+ ///
+ /// 盘点描述
+ ///
+ public string CountDescription { get; set; }
+}
+
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
new file mode 100644
index 000000000..d71bf4ebf
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
@@ -0,0 +1,40 @@
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Domain;
+using Win_in.Sfs.Shared.Domain.Entities;
+
+namespace Win_in.Sfs.Wms.Store.Domain;
+
+public class KittingPackagingNoteDetail : SfsDetailEntityBase
+{
+ ///
+ /// 物品代码
+ ///
+ [Display(Name = "物品代码")]
+ [Required(ErrorMessage = "{0}是必填项")]
+ [IgnoreUpdate]
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ [Display(Name = "物品名称")]
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ [Display(Name = "物品描述1")]
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ [Display(Name = "物品描述2")]
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 数量
+ ///
+ [Display(Name = "数量")]
+ public decimal Qty { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteManager.cs
new file mode 100644
index 000000000..7d4782c6c
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteManager.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Users;
+using Volo.Abp.Validation;
+using Win_in.Sfs.Shared.Domain;
+using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Inventory.Application.Contracts;
+
+namespace Win_in.Sfs.Wms.Store.Domain;
+
+public class KittingPackagingNoteManager : SfsStoreManagerBase,
+ IKittingPackagingNoteManager
+{
+ public KittingPackagingNoteManager(
+ IKittingPackagingNoteRepository repository
+ ) : base(repository)
+
+ {
+
+ }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs
new file mode 100644
index 000000000..dc17b7d52
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs
@@ -0,0 +1,77 @@
+using Microsoft.EntityFrameworkCore;
+using Volo.Abp.EntityFrameworkCore.Modeling;
+using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Shared.EntityFrameworkCore;
+using Win_in.Sfs.Wms.Store.Domain;
+
+namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore;
+
+public static class KittingPackagingNoteDbContextModelCreatingExtensions
+{
+ public static void ConfigureKittingPackagingNote(this ModelBuilder builder, StoreModelBuilderConfigurationOptions options)
+ {
+ builder.Entity(b =>
+ {
+ //Configure table & schema name
+ b.ToTable(StoreDbProperties.JobDbTablePrefix + nameof(KittingPackagingNote), options.Schema);
+ //Configure ABP properties
+ b.ConfigureByConvention();
+ //Configure Sfs base properties
+ b.ConfigureSfsBase();
+ //Properties
+ b.Property(q => q.KittingCode).HasMaxLength(SfsPropertyConst.CodeLength);
+ //Relations
+ b.HasMany(q => q.Details).WithOne().HasForeignKey(d => d.MasterID).IsRequired();
+ b.HasMany(q => q.DepDetails).WithOne().HasForeignKey(d => d.MasterID).IsRequired();
+ //Indexes
+ b.HasIndex(q => new { q.Number }).IsUnique();
+ });
+
+ builder.Entity(b =>
+ {
+ //Configure table & schema name
+ b.ToTable(StoreDbProperties.JobDbTablePrefix + nameof(KittingPackagingNoteDetail), options.Schema);
+ //Configure ABP properties
+ b.ConfigureByConvention();
+ //Configure Sfs base properties
+ b.ConfigureSfsBase();
+ //Configure Job base properties
+ b.ConfigureSfsStoreDetailBase();
+ //Properties
+ b.Property(q => q.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();
+ });
+
+
+ builder.Entity(b =>
+ {
+ //Configure table & schema name
+ b.ToTable(StoreDbProperties.JobDbTablePrefix + nameof(KittingPackagingNoteChassisDetail), options.Schema);
+ //Configure ABP properties
+ b.ConfigureByConvention();
+ //Configure Sfs base properties
+ b.ConfigureSfsBase();
+ //Configure Job base properties
+ b.ConfigureJobDetail();
+ //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();
+ });
+ }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteEfCoreRepository.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteEfCoreRepository.cs
new file mode 100644
index 000000000..9a22020c0
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteEfCoreRepository.cs
@@ -0,0 +1,11 @@
+using Volo.Abp.EntityFrameworkCore;
+using Win_in.Sfs.Wms.Store.Domain;
+
+namespace Win_in.Sfs.Wms.Store.EntityFrameworkCore;
+
+public class KittingPackagingNoteEfCoreRepository : SfsJobEfCoreRepositoryBase, IKittingPackagingNoteRepository
+{
+ public KittingPackagingNoteEfCoreRepository(IDbContextProvider dbContextProvider) : base(dbContextProvider)
+ {
+ }
+}
From 374fb561f7601c1f80cdc830a398db67407d9b20 Mon Sep 17 00:00:00 2001
From: "boxu.zheng"
Date: Fri, 19 Apr 2024 17:12:53 +0800
Subject: [PATCH 7/9] =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E6=88=90=20KittingPackin?=
=?UTF-8?q?gNote?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../KittingPackagingNotes/KittingPackagingNoteDetail.cs | 2 +-
...ittingPackagingNoteDbContextModelCreatingExtensions.cs | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
index d71bf4ebf..a195a60a5 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
@@ -4,7 +4,7 @@ using Win_in.Sfs.Shared.Domain.Entities;
namespace Win_in.Sfs.Wms.Store.Domain;
-public class KittingPackagingNoteDetail : SfsDetailEntityBase
+public class KittingPackagingNoteDetail : SfsStoreDetailEntityBase
{
///
/// 物品代码
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs
index dc17b7d52..77c0950d8 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/KittingPackagingNotes/KittingPackagingNoteDbContextModelCreatingExtensions.cs
@@ -38,10 +38,10 @@ public static class KittingPackagingNoteDbContextModelCreatingExtensions
//Configure Job base properties
b.ConfigureSfsStoreDetailBase();
//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);
+ //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
From 7aba25180179c0bd2bd54bbaeabed1fa2eccda49 Mon Sep 17 00:00:00 2001
From: lvzb <35200379@qq.com>
Date: Mon, 22 Apr 2024 14:21:16 +0800
Subject: [PATCH 8/9] =?UTF-8?q?=E7=9B=98=E7=82=B9=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/Jobs/CountJobController.cs | 9 ++--
.../CountJobs/CountJobAutoMapperProfile.cs | 3 +-
.../Jobs/CountJobs/CountJobManager.cs | 42 ++++++++++++-------
3 files changed, 36 insertions(+), 18 deletions(-)
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs
index 6c6a13d7b..f3278d893 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs
@@ -68,11 +68,13 @@ public class CountJobController : AbpController
///
///
///
+ /// 1为有箱码2无箱码
///
[HttpGet("list")]
- public virtual async Task> GetListAsync(int pageSize, int pageIndex)
+ public virtual async Task> GetListAsync(int pageSize, int pageIndex,string inventoryMode)
{
- var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
+ EnumInventoryMode mode = (EnumInventoryMode)Enum.Parse(typeof(EnumInventoryMode), inventoryMode);
+ var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
var status = new List() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
@@ -88,7 +90,8 @@ public class CountJobController : AbpController
Filters = new List
{
new(nameof(CountJobDTO.WorkGroupCode),jsonCodes,"In"),
- new(nameof(CountJobDTO.JobStatus),jsonStatus,"In")
+ new(nameof(CountJobDTO.JobStatus),jsonStatus,"In"),
+ new(nameof(CountJobDTO.InventoryMode),mode.ToString())
}
}
};
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs
index 20da66f9f..8becdf0d2 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs
@@ -86,6 +86,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.Number)
.Ignore(x => x.Id)
;
-
+ CreateMap()
+ .ReverseMap();
}
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs
index 3bebda3a9..c0af47777 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs
@@ -5,6 +5,7 @@ using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using Volo.Abp;
+using Volo.Abp.ObjectMapping;
using Volo.Abp.Users;
using Volo.Abp.Validation;
using Win_in.Sfs.Shared.Domain;
@@ -117,19 +118,41 @@ public class CountJobManager : SfsJobManagerBase, ICou
}
private async Task SetDetailsAsync(CountJob input, CountJob entity)
- {
+ {
+ foreach (var depDetail in input.DepDetails)
+ {
+ var inputDetail = input.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode);
+ if (inputDetail != null)
+ {
+ inputDetail.CountQty += depDetail.CountQty;
+ }
+ else
+ {
+ var jobDetail = ObjectMapper.Map(depDetail);
+ var detailNumber = await GetNumber().ConfigureAwait(false);
+ jobDetail.SetIdAndNumber(GuidGenerator, entity.Id, detailNumber);
+ jobDetail.CountLabel = GuidGenerator.Create().ToString();
+ input.Details.Add(jobDetail);
+ }
+
+ var jobDepDetail = ObjectMapper.Map(depDetail);
+ var number = entity.Number;
+ jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number);
+ jobDepDetail.CountLabel = GuidGenerator.Create().ToString();
+ entity.DepDetails.Add(jobDepDetail);
+ }
foreach (var detail in input.Details)
{
var entityDetail = entity.Details.FirstOrDefault(p => p.Id == detail.Id);
//新增盘点明细
- if (entityDetail == null||entityDetail.Id==Guid.Empty)
+ if (entityDetail == null || entityDetail.Id == Guid.Empty)
{
var jobDetail = ObjectMapper.Map(detail);
- var number =await GetNumber();
- jobDetail.SetIdAndNumber(GuidGenerator,entity.Id, number);
- jobDetail.CountLabel = GuidGenerator.Create().ToString();
+ //var number =await GetNumber();
+ //jobDetail.SetIdAndNumber(GuidGenerator,entity.Id, number);
+ //jobDetail.CountLabel = GuidGenerator.Create().ToString();
//CountJobDetail jobDetail = new CountJobDetail() { };
entity.AddDetail(jobDetail);
@@ -140,15 +163,6 @@ public class CountJobManager : SfsJobManagerBase, ICou
.ConfigureAwait(false);
}
}
-
- foreach (var depDetail in input.DepDetails)
- {
- var jobDepDetail = ObjectMapper.Map(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)
From 066f54b7238c52f82e602f5baf4fe35de588d012 Mon Sep 17 00:00:00 2001
From: "boxu.zheng"
Date: Mon, 22 Apr 2024 15:42:35 +0800
Subject: [PATCH 9/9] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E5=BA=95=E7=9B=98=20k?=
=?UTF-8?q?itting=E7=BB=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Chassis/IChassisAppService.cs | 9 +
.../DTOs/ChassisOperationSequenceDTO.cs | 8 +-
.../IChassisOperationSequenceAppService.cs | 8 +
.../ChassisOperationSequenceEditInput.cs | 7 +-
.../ChassisOperationSequenceImportInput.cs | 11 +-
.../KittingPackagingNoteChassisDetailDTO.cs | 24 +
.../DTOs/KittingPackagingNoteDTO.cs | 50 +-
.../KittingPackagingNoteDependentDetailDTO.cs | 58 -
.../DTOs/KittingPackagingNoteDetailDTO.cs | 52 +-
.../KittingPackagingNoteChassisDetailInput.cs | 27 +
.../KittingPackagingNoteCreateRequestInput.cs | 88 +-
.../Inputs/KittingPackagingNoteDetailInput.cs | 52 +-
.../Inputs/KittingPackagingNoteEditInput.cs | 74 +-
.../Inputs/KittingPackagingNoteImportInput.cs | 26 +-
.../StorePermissionDefinitionProvider.cs | 2 +
.../Chassis/ChassisAppService.cs | 41 +-
.../ChassisOperationSequenceAppService.cs | 36 +-
.../KittingPackagingNoteAppService.cs | 22 +-
.../ChassisOperationSequence.cs | 6 +-
.../KittingPackagingNote.cs | 8 +-
.../KittingPackagingNoteChassisDetail.cs | 46 +-
.../KittingPackagingNoteDetail.cs | 10 +-
.../IStoreDbContext.cs | 8 +-
...203_Added_KittingPackagingNote.Designer.cs | 31896 +++++++++++++++
...240422030203_Added_KittingPackagingNote.cs | 958 +
...5_Added_KittingPackagingNoteV2.Designer.cs | 32112 ++++++++++++++++
...0422032715_Added_KittingPackagingNoteV2.cs | 137 +
.../Migrations/StoreDbContextModelSnapshot.cs | 1979 +-
...ingNoteDbContextModelCreatingExtensions.cs | 30 +-
.../StoreDbContext.cs | 2 +
.../StoreDbContextModelCreatingExtensions.cs | 1 +
.../StoreEntityFrameworkCoreModule.cs | 6 +
32 files changed, 67116 insertions(+), 678 deletions(-)
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteChassisDetailDTO.cs
delete mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDependentDetailDTO.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteChassisDetailInput.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.Designer.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422032715_Added_KittingPackagingNoteV2.Designer.cs
create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422032715_Added_KittingPackagingNoteV2.cs
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/IChassisAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/IChassisAppService.cs
index 92700a338..eb28b2756 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/IChassisAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/IChassisAppService.cs
@@ -1,3 +1,6 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Dtos;
using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -9,4 +12,10 @@ public interface IChassisAppService
ISfsCheckStatusAppService
, ISfsUpsertAppService
{
+ ///
+ /// ƽֳʹ յ̷ڲ20
+ ///
+ ///
+ Task> GetListWithNextCountAsync(long sortNumber,int count,
+ CancellationToken cancellationToken = default);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceDTO.cs
index 8ffb91877..197a4b0e5 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/DTOs/ChassisOperationSequenceDTO.cs
@@ -1,8 +1,8 @@
-using System;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
///
/// 底盘执行位置序列
///
@@ -10,10 +10,10 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ChassisOperationSequenceDTO : SfsBasicDTOBase
{
///
- /// kitting执行序列号
+ /// Kitting执行底盘序列位置
///
- [Display(Name = "kitting执行序列号")]
- public string KittingNumber { get; set; }
+ [Display(Name = "Kitting执行底盘序列位置")]
+ public long ChassisSortNumber { get; set; }
///
/// kitting代码
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs
index 7b5eb3a43..d6a0546ee 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/IChassisOperationSequenceAppService.cs
@@ -1,3 +1,4 @@
+using System.Threading.Tasks;
using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -9,4 +10,11 @@ public interface IChassisOperationSequenceAppService
ISfsCheckStatusAppService
, ISfsUpsertAppService
{
+ ///
+ /// 修改底盘执行序列位置 根据 KitingCode
+ ///
+ ///
+ ///
+ ///
+ Task UpdateChassisSortNumberByKittingCodeAsync(string kittingCode, long newChassisSortNumber);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceEditInput.cs
index 0aeb4a3ab..58d8c1ec3 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceEditInput.cs
@@ -1,4 +1,3 @@
-using System;
using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -11,10 +10,10 @@ public class ChassisOperationSequenceEditInput
: SfsStoreCreateOrUpdateInputBase
{
///
- /// kitting执行序列号
+ /// Kitting执行底盘序列位置
///
- [Display(Name = "kitting执行序列号")]
- public string KittingNumber { get; set; }
+ [Display(Name = "Kitting执行底盘序列位置")]
+ public long ChassisSortNumber { get; set; }
///
/// kitting代码
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceImportInput.cs
index 0289cce9d..7c0f7ecb0 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceImportInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ChassisOperationSequence/Inputs/ChassisOperationSequenceImportInput.cs
@@ -1,9 +1,4 @@
-using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Application.Contracts;
-using Win_in.Sfs.Shared.Application.Contracts.ExportAndImport;
-using Win_in.Sfs.Shared.Domain;
-using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -14,10 +9,10 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ChassisOperationSequenceImportInput : SfsStoreImportInputBase
{
///
- /// kitting执行序列号
+ /// Kitting执行底盘序列位置
///
- [Display(Name = "kitting执行序列号")]
- public string KittingNumber { get; set; }
+ [Display(Name = "Kitting执行底盘序列位置")]
+ public long ChassisSortNumber { get; set; }
///
/// kitting代码
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteChassisDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteChassisDetailDTO.cs
new file mode 100644
index 000000000..6aff7a6d7
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteChassisDetailDTO.cs
@@ -0,0 +1,24 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public class KittingPackagingNoteChassisDetailDTO : SfsStoreDetailDTOBase
+{
+ ///
+ /// 底盘号
+ ///
+ [Display(Name = "底盘号")]
+ public string ChassisNumber { get; set; }
+
+ ///
+ /// Kitting代码
+ ///
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
+
+ ///
+ /// 底盘号排序序列
+ ///
+ [Display(Name = "底盘号排序序列")]
+ public long ChassisSortNumber { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs
index 8e89587cb..08abf40fa 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDTO.cs
@@ -8,54 +8,16 @@ using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
[Display(Name = "盘点任务")]
-public class KittingPackagingNoteDTO : SfsJobDTOBase
+public class KittingPackagingNoteDTO : SfsStoreDTOBase
{
-
- ///
- /// 生产计划号
- ///
- [Display(Name = "盘点计划号")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string CountPlanNumber { get; set; }
-
- ///
- /// 盘点阶段
- ///
- [Display(Name = "盘点阶段")]
- public EnumCountStage CountStage { get; set; }
-
- ///
- /// 盘点方式
- ///
- [Display(Name = "盘点方式")]
- public EnumCountMethod CountMethod { get; set; }
-
- ///
- /// 类型
- ///
- [Display(Name = "盘点类型")]
- public EnumCountType Type { get; set; }
-
- ///
- /// 描述
- ///
- [Display(Name = "描述")]
- public string Description { get; set; }
-
- ///
- /// 物料代码
- ///
- [Display(Name = "物料代码")]
- public string ItemCode { get; set; }
-
///
- /// 库位代码
+ /// kitting代码
///
- [Display(Name = "库位代码")]
- public string LocationCode { get; set; }
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
///
- /// 任务从表明细(记录每次扫得明细)
+ /// 明细(记录每次扫的位置)
///
- public List DepDetails { get; set; }
+ public List DepDetails { get; set; } = new();
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDependentDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDependentDetailDTO.cs
deleted file mode 100644
index 1f89a3ba2..000000000
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDependentDetailDTO.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using System;
-using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
-
-namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-
-public class KittingPackagingNoteDependentDetailDTO : SfsJobDetailDTOBase, IHasCountResult
-{
-
- ///
- /// 盘点标签
- ///
- [Display(Name = "盘点标签")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string CountLabel { get; set; }
-
- ///
- /// 计量单位
- ///
- [Display(Name = "计量单位")]
- public string Uom { get; set; }
-
- ///
- /// 库存数量
- ///
- [Display(Name = "库存数量")]
- public decimal InventoryQty { get; set; }
-
- ///
- /// 库存库位
- ///
- [Display(Name = "库存库位")]
- public string InventoryLocationCode { get; set; }
-
- ///
- /// 盘点数量
- ///
- [Display(Name = "盘点数量")]
- public decimal CountQty { get; set; }
-
- ///
- /// 盘点时间
- ///
- [Display(Name = "盘点时间")]
- public DateTime? CountTime { get; set; }
-
- ///
- /// 盘点操作员
- ///
- [Display(Name = "盘点操作员")]
- public string CountOperator { get; set; }
-
- ///
- /// 盘点描述
- ///
- [Display(Name = "盘点描述")]
- public string CountDescription { get; set; }
-}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs
index 3e9edb5cc..0ecdd679d 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/DTOs/KittingPackagingNoteDetailDTO.cs
@@ -4,55 +4,41 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class KittingPackagingNoteDetailDTO : SfsJobDetailDTOBase, IHasCountResult
+public class KittingPackagingNoteDetailDTO : SfsStoreDetailDTOBase
{
-
- ///
- /// 盘点标签
- ///
- [Display(Name = "盘点标签")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string CountLabel { get; set; }
-
- ///
- /// 计量单位
- ///
- [Display(Name = "计量单位")]
- public string Uom { get; set; }
-
///
- /// 库存数量
+ /// 物品代码
///
- [Display(Name = "库存数量")]
- public decimal InventoryQty { get; set; }
+ [Display(Name = "物品代码")]
+ public string ItemCode { get; set; }
///
- /// 库存库位
+ /// 物品名称
///
- [Display(Name = "库存库位")]
- public string InventoryLocationCode { get; set; }
+ [Display(Name = "物品名称")]
+ public string ItemName { get; set; }
///
- /// 盘点数量
+ /// 物品描述1
///
- [Display(Name = "盘点数量")]
- public decimal CountQty { get; set; }
+ [Display(Name = "物品描述1")]
+ public string ItemDesc1 { get; set; }
///
- /// 盘点时间
+ /// 物品描述2
///
- [Display(Name = "盘点时间")]
- public DateTime? CountTime { get; set; }
+ [Display(Name = "物品描述2")]
+ public string ItemDesc2 { get; set; }
///
- /// 盘点操作员
+ /// 数量
///
- [Display(Name = "盘点操作员")]
- public string CountOperator { get; set; }
+ [Display(Name = "数量")]
+ public decimal Qty { get; set; }
///
- /// 盘点描述
+ /// Kitting代码
///
- [Display(Name = "盘点描述")]
- public string CountDescription { get; set; }
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteChassisDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteChassisDetailInput.cs
new file mode 100644
index 000000000..d9240f22e
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteChassisDetailInput.cs
@@ -0,0 +1,27 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Shared.Application.Contracts;
+using Win_in.Sfs.Shared.Domain;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+public class KittingPackagingNoteChassisDetailInput : SfsDetailInputBase
+{
+ ///
+ /// 底盘号
+ ///
+ [Display(Name = "底盘号")]
+ public string ChassisNumber { get; set; }
+
+ ///
+ /// Kitting代码
+ ///
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
+
+ ///
+ /// 底盘号排序序列
+ ///
+ [Display(Name = "底盘号排序序列")]
+ public long ChassisSortNumber { get; set; }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs
index d5eececd8..9fd7228fa 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteCreateRequestInput.cs
@@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -11,91 +12,18 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteCreateRequestInput
{
///
- /// 盘点方式
+ /// kitting代码
///
- [Display(Name = "盘点方式")]
- public EnumCountMethod CountMethod { get; set; }
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
///
- /// 描述
+ /// 明细(记录打包的明细)
///
- [Display(Name = "描述")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string Description { get; set; }
+ public List Details { get; set; } = new();
///
- /// 盘点执行形式
+ /// 明细(记录每次扫的位置)
///
- [Display(Name = "盘点执行形式")]
- public CountPlanRequestType RequestType { get; set; }
-
- ///
- /// 类型
- ///
- [Display(Name = "盘点类型")]
- public EnumCountType Type { get; set; }
-
- ///
- /// 零件条件集合
- ///
- [Display(Name = "零件条件集合")]
- public List PartCondition { get; set; } = new();
-
- ///
- /// 库位条件集合
- ///
- [Display(Name = "库位条件集合")]
- public List LocCondition { get; set; } = new();
-
- ///
- /// 状态
- ///
- [Display(Name = "状态")]
- public List StatusList { get; set; }
-
- ///
- /// 操作员
- ///
- [Display(Name = "操作员")]
- //[Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string Worker { get; set; }
-
- ///
- /// 仓库
- ///
- [Display(Name = "仓库")]
- //[Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WarehouseCode { get; set; }
-
- ///
- /// 备注
- ///
- [Display(Name = "备注")]
- public string Remark { get; set; }
-
- ///
- /// 盘点阶段
- ///
- [Display(Name = "盘点阶段")]
- public EnumCountStage CountStage { get; set; } = EnumCountStage.Circulate;
-
- ///
- /// 盘点的零件集合
- ///
- [Display(Name = "盘点的零件集合")]
- public string JsonItemCodes { get; set; }
-
- ///
- /// 盘点的库位集合
- ///
- [Display(Name = "盘点的库位集合")]
- public string JsonLocationCodes { get; set; }
-
- ///
- /// 盘点的库存状态集合
- ///
- [Display(Name = "盘点的库存状态集合")]
- public string JsonInventoryStatus { get; set; }
+ public List DepDetails { get; set; } = new();
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs
index a02d61277..e4bacb627 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteDetailInput.cs
@@ -4,55 +4,41 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class KittingPackagingNoteDetailInput : SfsJobDetailInputBase, IHasCountResult
+public class KittingPackagingNoteDetailInput : SfsStoreDetailInputBase
{
-
- ///
- /// 盘点标签
- ///
- [Display(Name = "盘点标签")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string CountLabel { get; set; }
-
- ///
- /// 计量单位
- ///
- [Display(Name = "计量单位")]
- public string Uom { get; set; }
-
///
- /// 库存数量
+ /// 物品代码
///
- [Display(Name = "库存数量")]
- public decimal InventoryQty { get; set; }
+ [Display(Name = "物品代码")]
+ public string ItemCode { get; set; }
///
- /// 库存库位
+ /// 物品名称
///
- [Display(Name = "库存库位")]
- public string InventoryLocationCode { get; set; }
+ [Display(Name = "物品名称")]
+ public string ItemName { get; set; }
///
- /// 盘点数量
+ /// 物品描述1
///
- [Display(Name = "盘点数量")]
- public decimal CountQty { get; set; }
+ [Display(Name = "物品描述1")]
+ public string ItemDesc1 { get; set; }
///
- /// 盘点时间
+ /// 物品描述2
///
- [Display(Name = "盘点时间")]
- public DateTime? CountTime { get; set; }
+ [Display(Name = "物品描述2")]
+ public string ItemDesc2 { get; set; }
///
- /// 盘点操作员
+ /// 数量
///
- [Display(Name = "盘点操作员")]
- public string CountOperator { get; set; }
+ [Display(Name = "数量")]
+ public decimal Qty { get; set; }
///
- /// 盘点描述
+ /// Kitting代码
///
- [Display(Name = "盘点描述")]
- public string CountDescription { get; set; }
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs
index 233be52d8..e7bf1e920 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteEditInput.cs
@@ -2,81 +2,25 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class KittingPackagingNoteEditInput : SfsJobCreateUpdateInputBase, ISfsJobCreateInput
+public class KittingPackagingNoteEditInput : SfsStoreCreateOrUpdateInputBase
{
- #region Base
///
- /// 盘点方式
+ /// kitting代码
///
- [Display(Name = "盘点方式")]
- public EnumCountMethod CountMethod { get; set; }
- ///
- /// 类型
- ///
- [Display(Name = "盘点类型")]
-
- public EnumCountType Type { get; set; }
-
- ///
- /// 描述
- ///
- [Display(Name = "描述")]
-
- public string Description { get; set; }
-
- ///
- /// 物料代码
- ///
- [Display(Name = "物料代码")]
- public string ItemCode { get; set; }
-
- ///
- /// 库位代码
- ///
- [Display(Name = "库位代码")]
- public string LocationCode { get; set; }
- #endregion
-
- #region Create
- ///
- /// 上游任务编号
- ///
- [Display(Name = "上游任务编号")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string UpStreamJobNumber { get; set; }
-
- ///
- /// 盘点计划号
- ///
- [Display(Name = "盘点计划号")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string CountPlanNumber { get; set; }
-
- ///
- /// 盘点阶段
- ///
- [Display(Name = "盘点阶段")]
- public EnumCountStage CountStage { get; set; }
-
- ///
- /// 任务类型
- ///
- [Display(Name = "任务类型")]
- public EnumJobType JobType { get; set; }
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
///
- /// 是否自动完成
+ /// 明细(记录打包的明细)
///
- [Display(Name = "是否自动完成")]
- public bool IsAutoComplete { get; set; }
+ public List Details { get; set; } = new();
///
- /// 任务明细
+ /// 明细(记录每次扫的位置)
///
- [Display(Name = "任务明细")]
- public List Details { get; set; }
- #endregion
+ public List DepDetails { get; set; } = new();
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs
index 793c3611e..0982b42a4 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/KittingPackagingNotes/Inputs/KittingPackagingNoteImportInput.cs
@@ -1,32 +1,24 @@
+using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
+using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class KittingPackagingNoteImportInput : SfsStoreImportInputBase
{
-
- ///
- /// 盘点任务单号
- ///
- [Display(Name = "盘点任务单号")]
- public string CountJobNumber { get; set; }
-
///
- /// 盘点计划单号
+ /// kitting代码
///
- [Display(Name = "盘点计划单号")]
- public string CountPlanNumber { get; set; }
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
///
- /// 调整类型
+ /// 明细(记录打包的明细)
///
- [Display(Name = "调整类型")]
- public string Type { get; set; }
+ public List Details { get; set; } = new();
///
- /// 是否已经调整
+ /// 明细(记录每次扫的位置)
///
- [Display(Name = "是否已经调整")]
- [Required(ErrorMessage = "{0}是必填项")]
- public bool IsAdjusted { get; set; } = false;
+ public List DepDetails { get; set; } = new();
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs
index 83d5fd280..82e0f51b2 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs
@@ -98,6 +98,8 @@ public class StorePermissionDefinitionProvider : PermissionDefinitionProvider
storeGroup.AddChassisPermission();
storeGroup.AddChassisOperationSequencePermission();
+ storeGroup.AddKittingPackagingNotePermission();
+
#region Jobs
storeGroup.AddPurchaseReceiptJobPermission();
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Chassis/ChassisAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Chassis/ChassisAppService.cs
index a9a359d8d..e8c71f381 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Chassis/ChassisAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Chassis/ChassisAppService.cs
@@ -1,25 +1,15 @@
using System;
using System.Collections.Generic;
-using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-using Castle.Components.DictionaryAdapter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.EntityFrameworkCore;
-using Volo.Abp;
using Volo.Abp.Application.Dtos;
-using Volo.Abp.Domain.Entities;
-using Volo.Abp.Domain.Repositories;
-using Volo.Abp.ObjectMapping;
-using Win_in.Sfs.Basedata.Equipments.DTOs;
-using Win_in.Sfs.Shared.Application;
-using Win_in.Sfs.Shared.Application.Contracts;
+using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.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.Shared;
-using Win_in.Sfs.Wms.Store.Equipments;
namespace Win_in.Sfs.Wms.Store.Application;
@@ -36,7 +26,7 @@ public class ChassisAppService
public ChassisAppService(
IChassisRepository repository, IChassisManager manager
- ):base(repository)
+ ) : base(repository)
{
base.CreatePolicyName = ChassisPermissions.Create;
base.UpdatePolicyName = ChassisPermissions.Update;
@@ -45,6 +35,7 @@ public class ChassisAppService
_repository = repository;
_manager = manager;
}
+
#region 无用
[NonAction]
@@ -83,5 +74,31 @@ public class ChassisAppService
throw new NotImplementedException();
}
+ ///
+ /// 平板或手持使用 按照底盘返回排序大于参数中20个的
+ ///
+ ///
+ public async Task> GetListWithNextCountAsync(long sortNumber,int count,
+ CancellationToken cancellationToken = default)
+ {
+ var requestInput = new SfsStoreRequestInputBase
+ {
+ MaxResultCount = count,
+ SkipCount = 0,
+ Sorting = $"{nameof(Chassis.SortNumber)} DESC",
+ Condition = new Condition
+ {
+ Filters = new List { new(nameof(Chassis.SortNumber), sortNumber.ToString(), ">=") }
+ }
+ };
+
+ var expression = requestInput.Condition.Filters?.Count > 0
+ ? requestInput.Condition.Filters.ToLambda()
+ : p => true;
+
+ return await GetPagedListAsync(expression, requestInput.SkipCount, requestInput.MaxResultCount,
+ requestInput.Sorting, false, cancellationToken).ConfigureAwait(false);
+ }
+
#endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs
index b14ce3ce2..aa6f49845 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ChassisOperationSequence/ChassisOperationSequenceAppService.cs
@@ -1,32 +1,20 @@
using System;
using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
using System.Threading.Tasks;
-using Castle.Components.DictionaryAdapter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.EntityFrameworkCore;
-using Volo.Abp;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Domain.Entities;
-using Volo.Abp.Domain.Repositories;
-using Volo.Abp.ObjectMapping;
-using Win_in.Sfs.Basedata.Equipments.DTOs;
-using Win_in.Sfs.Shared.Application;
-using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
-using Win_in.Sfs.Wms.Store.Equipments;
namespace Win_in.Sfs.Wms.Store.Application;
[Authorize]
[Route($"{StoreConsts.RootPath}ChassisOperationSequence")]
public class ChassisOperationSequenceAppService
- : SfsStoreAppServiceBase
, IChassisOperationSequenceAppService
@@ -36,7 +24,7 @@ public class ChassisOperationSequenceAppService
public ChassisOperationSequenceAppService(
IChassisOperationSequenceRepository repository, IChassisOperationSequenceManager manager
- ):base(repository)
+ ) : base(repository)
{
base.CreatePolicyName = ChassisOperationSequencePermissions.Create;
base.UpdatePolicyName = ChassisOperationSequencePermissions.Update;
@@ -45,6 +33,24 @@ public class ChassisOperationSequenceAppService
_repository = repository;
_manager = manager;
}
+
+ ///
+ /// 修改底盘执行序列位置 根据 KitingCode
+ ///
+ ///
+ ///
+ ///
+ [HttpPost("update-chassis-sort-number-by-kitting-code")]
+ public async Task UpdateChassisSortNumberByKittingCodeAsync(string kittingCode, long newChassisSortNumber)
+ {
+ var chassisOperationSequence =
+ await _repository.FindAsync(p => p.KittingCode == kittingCode).ConfigureAwait(false);
+
+ chassisOperationSequence.ChassisSortNumber = newChassisSortNumber;
+
+ await _repository.UpdateAsync(chassisOperationSequence).ConfigureAwait(false);
+ }
+
#region 无用
[NonAction]
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs
index a59670213..f57911716 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/KittingPackagingNotes/KittingPackagingNoteAppService.cs
@@ -1,3 +1,5 @@
+using System.Linq;
+using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -7,7 +9,7 @@ using Win_in.Sfs.Wms.Store.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application;
///
-/// 盘点接口
+/// kitting打包记录
///
[Authorize]
[Route($"{StoreConsts.RootPath}KittingPackagingNote")]
@@ -22,13 +24,21 @@ public class KittingPackagingNoteAppService
SfsStoreRequestInputBase,
KittingPackagingNoteImportInput>, IKittingPackagingNoteAppService
{
- private readonly IKittingPackagingNoteManager _kittingPackagingNoteManager;
+ private readonly IChassisOperationSequenceAppService _chassisOperationSequenceAppService;
public KittingPackagingNoteAppService(
- IKittingPackagingNoteRepository repository,
- IJisProductReceiptNoteManager KittingPackagingNoteManager,
- IKittingPackagingNoteManager kittingPackagingNoteManager) : base(repository)
+ IKittingPackagingNoteRepository repository, IChassisOperationSequenceAppService chassisOperationSequenceAppService) : base(repository)
{
- _kittingPackagingNoteManager = kittingPackagingNoteManager;
+ _chassisOperationSequenceAppService = chassisOperationSequenceAppService;
+ }
+
+ [HttpPost("")]
+ public override async Task CreateAsync(KittingPackagingNoteEditInput input)
+ {
+ var sortNumber=input.DepDetails.Max(p => p.ChassisSortNumber);
+
+ await _chassisOperationSequenceAppService.UpdateChassisSortNumberByKittingCodeAsync(input.KittingCode,sortNumber).ConfigureAwait(false);
+
+ return await base.CreateAsync(input).ConfigureAwait(false);
}
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/ChassisOperationSequence/ChassisOperationSequence.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/ChassisOperationSequence/ChassisOperationSequence.cs
index 974c2cab3..385bfba8e 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/ChassisOperationSequence/ChassisOperationSequence.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/ChassisOperationSequence/ChassisOperationSequence.cs
@@ -10,10 +10,10 @@ namespace Win_in.Sfs.Wms.Store.Domain;
public class ChassisOperationSequence : SfsAggregateRootBase
{
///
- /// kitting执行序列号
+ /// Kitting执行底盘序列位置
///
- [Display(Name = "kitting执行序列号")]
- public string KittingNumber { get; set; }
+ [Display(Name = "Kitting执行底盘序列位置")]
+ public long ChassisSortNumber { get; set; }
///
/// kitting代码
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs
index ba220dc50..a4b241e29 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNote.cs
@@ -1,7 +1,5 @@
-using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain.Entities;
namespace Win_in.Sfs.Wms.Store.Domain;
@@ -18,14 +16,12 @@ public class KittingPackagingNote : SfsStoreAggregateRootBase
- /// 任务明细
+ /// 明细(记录打包的明细)
///
- [IgnoreUpdate]
public override List Details { get; set; } = new();
///
- /// 任务从表明细(记录每次扫得明细)
+ /// 明细(记录每次扫的位置)
///
- [IgnoreUpdate]
public List DepDetails { get; set; } = new();
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs
index 2f2a0bdf7..c8a90ce8b 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteChassisDetail.cs
@@ -1,51 +1,19 @@
-using System;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Domain;
-public class KittingPackagingNoteChassisDetail : SfsJobDetailEntityBase, IHasCountResult, IHasInventoryQty
+public class KittingPackagingNoteChassisDetail : SfsDetailEntityBase
{
-
- ///
- /// 盘点标签
- ///
- public string CountLabel { get; set; }
-
- ///
- /// 库存数量
- ///
- public decimal InventoryQty { get; set; }
-
- ///
- /// 计量单位
- ///
- [Display(Name = "计量单位")]
- public string Uom { get; set; }
-
///
- /// 库存库位
+ /// 底盘号
///
- public string InventoryLocationCode { get; set; }
+ [Display(Name = "底盘号")]
+ public long ChassisNumber { get; set; }
///
- /// 盘点数量(每次扫得数量)
+ /// Kitting代码
///
- public decimal CountQty { get; set; }
-
- ///
- /// 盘点时间
- ///
- public DateTime? CountTime { get; set; }
-
- ///
- /// 盘点操作员
- ///
- public string CountOperator { get; set; }
-
- ///
- /// 盘点描述
- ///
- public string CountDescription { get; set; }
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
}
-
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
index a195a60a5..ef3523c43 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/KittingPackagingNotes/KittingPackagingNoteDetail.cs
@@ -1,6 +1,4 @@
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
-using Win_in.Sfs.Shared.Domain.Entities;
namespace Win_in.Sfs.Wms.Store.Domain;
@@ -10,8 +8,6 @@ public class KittingPackagingNoteDetail : SfsStoreDetailEntityBase
/// 物品代码
///
[Display(Name = "物品代码")]
- [Required(ErrorMessage = "{0}是必填项")]
- [IgnoreUpdate]
public string ItemCode { get; set; }
///
@@ -37,4 +33,10 @@ public class KittingPackagingNoteDetail : SfsStoreDetailEntityBase
///
[Display(Name = "数量")]
public decimal Qty { get; set; }
+
+ ///
+ /// Kitting代码
+ ///
+ [Display(Name = "Kitting代码")]
+ public string KittingCode { get; set; }
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/IStoreDbContext.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/IStoreDbContext.cs
index ab86c5fa3..5fd1058d9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/IStoreDbContext.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/IStoreDbContext.cs
@@ -65,6 +65,7 @@ public interface IStoreDbContext : IEfCoreDbContext
#endregion
#region Notes
+
public DbSet ItemTransformNotes { get; }
public DbSet RecycledMaterialReceiptNotes { get; }
public DbSet TransferNotes { get; }
@@ -105,6 +106,9 @@ public interface IStoreDbContext : IEfCoreDbContext
public DbSet ContainerBindNotes { get; }
public DbSet NoOkConvertOkNotes { get; }
public DbSet WipWarehouseAdjustNotes { get; }
+
+ public DbSet KittingPackagingNote { get; }
+
#endregion
#region Jobs
@@ -135,9 +139,9 @@ public interface IStoreDbContext : IEfCoreDbContext
#endregion
///
- /// 底盘信息
+ /// 底盘信息
///
- public DbSet Chassis { get; }
+ public DbSet Chassis { get; }
public DbSet ExchangeDatas { get; }
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.Designer.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.Designer.cs
new file mode 100644
index 000000000..a24e40541
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240422030203_Added_KittingPackagingNote.Designer.cs
@@ -0,0 +1,31896 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+using Win_in.Sfs.Wms.Store.EntityFrameworkCore;
+
+#nullable disable
+
+namespace Win_in.Sfs.Wms.Store.Migrations
+{
+ [DbContext(typeof(StoreDbContext))]
+ [Migration("20240422030203_Added_KittingPackagingNote")]
+ partial class Added_KittingPackagingNote
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
+ .HasAnnotation("ProductVersion", "6.0.13")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleIssueJob", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AcceptTime")
+ .HasColumnType("datetime2");
+
+ b.Property("AcceptUserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AcceptUserName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("AssembleRequestNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CompleteTime")
+ .HasColumnType("datetime2");
+
+ b.Property("CompleteUserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CompleteUserName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("nvarchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("IsAutoComplete")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bit")
+ .HasDefaultValue(false);
+
+ b.Property("JobDescription")
+ .HasMaxLength(1024)
+ .HasColumnType("nvarchar(1024)");
+
+ b.Property("JobStatus")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("JobType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Priority")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0);
+
+ b.Property("PriorityIncrement")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0);
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestType")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UpStreamJobNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("UseOnTheWayLocation")
+ .HasColumnType("bit");
+
+ b.Property("WarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WorkGroupCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Job_AssembleIssueJob", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleIssueJobDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("HandledFromArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledFromContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledFromExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledFromLocationArea")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledFromLocationCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledFromLocationErpCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledFromLocationGroup")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledFromLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledFromPackingCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledFromProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledFromQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("HandledFromSupplierBatch")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledFromWarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledToContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledToLocationArea")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToLocationCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToLocationErpCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToLocationGroup")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToPackingCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledToQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("HandledToSupplierBatch")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HandledToWarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ItemCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ItemDesc1")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ItemDesc2")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ItemName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("OnTheWayLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("PositionCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("RecommendFromArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendFromContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendFromExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendFromLocationArea")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendFromLocationCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendFromLocationErpCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendFromLocationGroup")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendFromLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendFromPackingCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendFromProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendFromQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("RecommendFromSupplierBatch")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendFromWarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendToContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendToLocationArea")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToLocationCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToLocationErpCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToLocationGroup")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToPackingCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendToQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("RecommendToSupplierBatch")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendToWarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RecommendType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestLocationArea")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RequestLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("RequestLocationErpCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RequestLocationGroup")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RequestQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("RequestWarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("StdPackQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("TransferLibFromArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("TransferLibFromContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibFromExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("TransferLibFromLocationArea")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibFromLocationCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibFromLocationErpCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibFromLocationGroup")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibFromLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibFromPackingCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibFromProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("TransferLibFromQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("TransferLibFromSupplierBatch")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibFromWarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("TransferLibToContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("TransferLibToLocationArea")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToLocationCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToLocationErpCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToLocationGroup")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToPackingCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("TransferLibToQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("TransferLibToSupplierBatch")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransferLibToWarehouseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Uom")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MasterID");
+
+ b.ToTable("Job_AssembleIssueJobDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleIssueNote", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActiveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("nvarchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("ConfirmTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Confirmed")
+ .HasColumnType("bit");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property