diff --git a/WinIn.FasterZ.Wms.Fe/asdf b/WinIn.FasterZ.Wms.Fe/asdf
deleted file mode 100644
index 5e40c0877..000000000
--- a/WinIn.FasterZ.Wms.Fe/asdf
+++ /dev/null
@@ -1 +0,0 @@
-asdf
\ No newline at end of file
diff --git a/WinIn.FasterZ.Wms.Fe/安胖胖目录.txt b/WinIn.FasterZ.Wms.Fe/安胖胖目录.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/Properties/PublishProfiles/FolderProfile1.pubxml b/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/Properties/PublishProfiles/FolderProfile1.pubxml
index 36847ea03..2cc64724c 100644
--- a/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/Properties/PublishProfiles/FolderProfile1.pubxml
+++ b/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/Properties/PublishProfiles/FolderProfile1.pubxml
@@ -10,8 +10,12 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
Release
Any CPU
FileSystem
- bin\Release\net6.0\publish\
+ D:\发布\WMS\store
FileSystem
<_TargetId>Folder
+
+ net6.0
+ 488eeada-cfed-4016-9884-7a1dcbe5eb9c
+ false
\ No newline at end of file
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/InjectionJobController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/InjectionJobController.cs
new file mode 100644
index 000000000..150bfd5f9
--- /dev/null
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/InjectionJobController.cs
@@ -0,0 +1,195 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Polly.Caching;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.AspNetCore.Mvc;
+using Win_in.Sfs.Auth.Application.Contracts;
+using Win_in.Sfs.Basedata.Application.Contracts;
+using Win_in.Sfs.Shared.Domain;
+using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Inventory.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+
+namespace Win_in.Sfs.Wms.Pda.Controllers.Jobs;
+
+///
+/// 注塑叫料任务
+///
+[ApiController]
+[Route($"{PdaHostConst.ROOT_ROUTE}job/injection")]
+public class InjectionJobController : AbpController
+{
+ private readonly IInjectionJobAppService _injectionJobAppService;
+
+ private readonly IUserWorkGroupAppService _userWorkGroupAppService;
+
+ private readonly IDictAppService _dictApp;
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public InjectionJobController(
+ IInjectionJobAppService injectionJobAppService,
+ IDictAppService dictApp
+ , IUserWorkGroupAppService userWorkGroupAppService)
+ {
+ _userWorkGroupAppService = userWorkGroupAppService;
+ _injectionJobAppService = injectionJobAppService;
+ _dictApp = dictApp;
+ }
+
+ ///
+ /// 获取任务详情
+ ///
+ ///
+ ///
+ [HttpGet("{id}")]
+
+ public virtual async Task> GetAsync(Guid id)
+ {
+ var result = await _injectionJobAppService.GetAsync(id).ConfigureAwait(false);
+ return Ok(result);
+ }
+
+ ///
+ /// 获取列表 筛选
+ ///
+ ///
+ ///
+ [HttpPost("list")]
+ public virtual async Task> GetListAsync(SfsJobRequestInputBase sfsRequestDTO)
+ {
+ var list = await _injectionJobAppService.GetPagedListByFilterAsync(sfsRequestDTO, true).ConfigureAwait(false);
+ return list;
+ }
+
+ ///
+ /// 获取列表
+ ///
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ public virtual async Task> GetListAsync(int pageSize, int pageIndex)
+ {
+ var status = new List() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
+ var jsonStatus = JsonSerializer.Serialize(status);
+
+ var request = new SfsJobRequestInputBase
+ {
+ MaxResultCount = pageSize,
+ SkipCount = (pageIndex - 1) * pageSize,
+ Sorting = $"{nameof(InjectionJobDTO.CreationTime)} ASC",
+ Condition = new Condition
+ {
+ Filters = new List
+ {
+ new(nameof(IssueJobDTO.JobStatus),jsonStatus,"In")
+ }
+ }
+
+ };
+
+ var list = await _injectionJobAppService.GetPagedListByFilterAsync(request, true).ConfigureAwait(false);
+
+
+ return list;
+ }
+
+ ///
+ /// 根据Job Number 获取任务列表
+ ///
+ ///
+ ///
+ [HttpGet("by-number/{jobNumber}")]
+ public virtual async Task> GetByNumberAsync(string jobNumber)
+ {
+ var jobDto = await _injectionJobAppService.GetByNumberAsync(jobNumber).ConfigureAwait(false);
+ if (jobDto == null)
+ {
+ throw new UserFriendlyException($"未找到编号为 {jobNumber} 的任务");
+ }
+ var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
+ if (!wlgCodes.Contains(jobDto.WorkGroupCode))
+ {
+ return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
+ }
+ if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.AcceptUserId != CurrentUser.Id)
+ {
+ return new NotFoundObjectResult($"任务正在被 {jobDto.AcceptUserName} 处理");
+ }
+ return jobDto;
+ }
+
+ ///
+ /// 获取任务数量
+ ///
+ ///
+ [HttpGet("count")]
+ public virtual async Task> CountAsync()
+ {
+ var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
+ var jsonCodes = JsonSerializer.Serialize(wlgCodes);
+
+ var status = new List() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
+ var jsonStatus = JsonSerializer.Serialize(status);
+
+ var request = new SfsJobRequestInputBase
+ {
+ Sorting = $"{nameof(InjectionJobDTO.Priority)} ASC",
+ Condition = new Condition
+ {
+ Filters = new List
+ {
+ new(nameof(InjectionJobDTO.WorkGroupCode),jsonCodes,"In"),
+ new(nameof(InjectionJobDTO.JobStatus),jsonStatus,"In")
+ }
+ }
+ };
+
+ var count = await _injectionJobAppService.GetCountByFilterAsync(request).ConfigureAwait(false);
+
+ return Ok(count);
+ }
+
+ ///
+ /// 承接任务
+ ///
+ ///
+ ///
+ [HttpPost("take/{id}")]
+ public virtual async Task TakeAsync(Guid id)
+ {
+ await _injectionJobAppService.AcceptAsync(id).ConfigureAwait(false);
+ }
+
+ ///
+ /// 取消承接任务
+ ///
+ ///
+ ///
+ [HttpPost("cancel-take/{id}")]
+ public virtual async Task CancelTakeAsync(Guid id)
+ {
+ await _injectionJobAppService.CancelAcceptAsync(id).ConfigureAwait(false);
+ }
+
+ ///
+ /// 执行任务
+ ///
+ ///
+ ///
+ ///
+ [HttpPost("finish/{id}")]
+ public virtual async Task FinishAsync(Guid id, [FromBody] InjectionJobDTO dto)
+ {
+ await _injectionJobAppService.CompleteAsync(id, dto).ConfigureAwait(false);
+ }
+}
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ThirdLocationJobController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ThirdLocationJobController.cs
index f86c7587d..ab4a124cc 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ThirdLocationJobController.cs
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ThirdLocationJobController.cs
@@ -77,19 +77,9 @@ public class ThirdLocationJobController : AbpController
///
///
[HttpGet("list")]
- public virtual async Task> GetListAsync(int pageSize, int pageIndex, bool isFinished)
+ public virtual async Task> GetListAsync(int pageSize, int pageIndex)
{
- var dtos = await _dictApp.GetByCodeAsync("ContainerSpecificationsType").ConfigureAwait(false);
-
- var status = new List();
- if (isFinished == true)
- {
- status.Add((int)EnumJobStatus.Done);
- }
- else
- {
- status.Add((int)EnumJobStatus.Open);
- }
+ var status = new List() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@@ -100,10 +90,11 @@ public class ThirdLocationJobController : AbpController
Condition = new Condition
{
Filters = new List
- {
- new(nameof(ThirdLocationJobDTO.JobStatus),jsonStatus,"In")
+ {
+ new(nameof(IssueJobDTO.JobStatus),jsonStatus,"In")
}
}
+
};
var list = await _thirdLocationJobAppService.GetPagedListByFilterAsync(request, true).ConfigureAwait(false);
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionNoteController.cs
new file mode 100644
index 000000000..9039a343f
--- /dev/null
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionNoteController.cs
@@ -0,0 +1,38 @@
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Volo.Abp.AspNetCore.Mvc;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+
+namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
+
+///
+/// 注塑叫料记录
+///
+[ApiController]
+[Route($"{PdaHostConst.ROOT_ROUTE}store/injection-note")]
+
+public class InjectionNoteController : AbpController
+{
+ private readonly IInjectionNoteAppService _injectionNoteAppService;
+
+ ///
+ ///
+ ///
+ ///
+ public InjectionNoteController(IInjectionNoteAppService injectionNoteAppService)
+ {
+ _injectionNoteAppService = injectionNoteAppService;
+ }
+
+ ///
+ /// 创建注塑叫料记录
+ ///
+ /// CreateInput
+ ///
+ [HttpPost("")]
+ public virtual async Task CreateAsync(InjectionNoteEditInput input)
+ {
+ await _injectionNoteAppService.CreateAsync(input).ConfigureAwait(false);
+ }
+
+}
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
new file mode 100644
index 000000000..e3ddeda50
--- /dev/null
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/InjectionRequestController.cs
@@ -0,0 +1,51 @@
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Volo.Abp.AspNetCore.Mvc;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+
+namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
+
+///
+/// 注塑叫料请求
+///
+[ApiController]
+[Route($"{PdaHostConst.ROOT_ROUTE}store/injection-request")]
+
+public class InjectionRequestController : AbpController
+{
+ private readonly IInjectionRequestAppService _injectionRequestAppService;
+
+ ///
+ ///
+ ///
+ ///
+ public InjectionRequestController(IInjectionRequestAppService InjectionRequestAppService)
+ {
+ _injectionRequestAppService = InjectionRequestAppService;
+ }
+
+ ///
+ /// 注塑叫料申请
+ ///
+ ///
+ ///
+ [HttpPost("")]
+ public virtual async Task CreateAsync(InjectionRequestEditInput input)
+ {
+ _ = await _injectionRequestAppService.CreateAsync(input).ConfigureAwait(false);
+ }
+
+ ///
+ /// 根据number获取注塑叫料申请详情
+ ///
+ ///
+ ///
+ [HttpGet("{number}")]
+
+ public virtual async Task> GetAsync(string number)
+ {
+ var result = await _injectionRequestAppService.GetByNumberAsync(number).ConfigureAwait(false);
+ return Ok(result);
+ }
+
+}
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs
index f8ac25b4b..8a81da4b8 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs
@@ -39,22 +39,7 @@ public class IssueNoteController : AbpController
{
p.ToLot = string.Empty;
p.ToPackingCode = string.Empty;
- if(p.PositionCode.Contains('W'))
- {
- p.RecommendType = EnumRecommendType.W;
- }
- else if(p.PositionCode.Contains('Q'))
- {
- p.RecommendType = EnumRecommendType.Q;
- }
- else if (p.PositionCode.Contains('K'))
- {
- p.RecommendType = EnumRecommendType.K;
- }
- else
- {
- p.RecommendType = EnumRecommendType.None;
- }
+
});
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/ThirdLocationNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/ThirdLocationNoteController.cs
index 9006c134d..0e6e03ead 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/ThirdLocationNoteController.cs
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/ThirdLocationNoteController.cs
@@ -25,7 +25,7 @@ public class ThirdLocationNoteController : AbpController
}
///
- /// 创建器具转移记录
+ /// 创建三方库转移记录
///
/// CreateInput
///
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferLibNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferLibNoteController.cs
index 1dc534f75..706befedc 100644
--- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferLibNoteController.cs
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/TransferLibNoteController.cs
@@ -120,68 +120,4 @@ public class TransferLibNoteController : AbpController
var result = await _transferLibNoteAppService.GetByNumberAsync(number).ConfigureAwait(false);
return Ok(result);
}
-
- ///
- /// 完成对应的请求
- ///
- ///
- ///
- [HttpPost("complete/{id}")]
-
- public virtual async Task CompleteAsync(Guid id)
- {
- var entity = await _transferLibNoteAppService.ConfirmAsync(id).ConfigureAwait(false);
- return entity;
- }
-
- ///
- /// 库存转移
- ///
- ///
- ///
- [HttpPost("")]
- public virtual async Task Create(TransferLibNoteEditInput input)
- {
- return await _transferLibNoteAppService.CreateAsync(input).ConfigureAwait(false);
- }
-
- ///
- /// 拆箱
- ///
- ///
- ///
- [HttpPost("split-packing")]
- public async Task SplitPackingAsync(TransferLibNoteEditInput transferLibNoteEditInput)
- {
- return await _transferLibNoteAppService.SplitPackingAsync(transferLibNoteEditInput).ConfigureAwait(false);
- }
-
- ///
- /// 采购收货拆箱,同时更新、插入PurchaseReceipt任务表、申请表
- ///
- ///
- ///
- ///
- [HttpPost("split-packing-purchase-receipt")]
- public async Task SplitPacking_PurchaseReceiptAsync(TransferLibNoteEditInput transferLibNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput)
- {
- var ret = await _transferLibNoteAppService.SplitPacking_PurchaseReceiptAsync(transferLibNoteEditInput, updateJobDetailInput).ConfigureAwait(false);
- return ret;
- }
-
- ///
- /// 发料拆箱,同时更新、插入Inspect任务表(没有找到申请表//??)
- ///
- ///
- ///
- ///
- [HttpPost("split-packing-issue")]
- public async Task SplitPacking_IssueAsync(TransferLibNoteEditInput transferLibNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput)
- {
- var ret = await _transferLibNoteAppService.SplitPacking_IssueAsync(transferLibNoteEditInput, updateJobDetailInput).ConfigureAwait(false);
- return ret;
- }
-
-
-
}
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/DTOs/ItemContainerDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/DTOs/ItemContainerDTO.cs
index a43c1ff30..a6891f43b 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/DTOs/ItemContainerDTO.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/DTOs/ItemContainerDTO.cs
@@ -20,12 +20,7 @@ public class ItemContainerDTO : SfsBaseDataDTOBase
[Display(Name = "收容器名称")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ContainerName { get; set; }
- ///
- /// 收容器类型
- ///
- [Display(Name = "收容器类型")]
- [StringLength(SfsEfCorePropertyConst.DescLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ContainerType { get; set; }
+
///
/// 物品代码
///
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/Inputs/ItemContainerEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/Inputs/ItemContainerEditInput.cs
index ce87fa288..76ad46b55 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/Inputs/ItemContainerEditInput.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/Inputs/ItemContainerEditInput.cs
@@ -12,13 +12,7 @@ public class ItemContainerEditInput : SfsBaseDataCreateOrUpdateInputBase
[Display(Name = "收容器名称")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ContainerName { get; set; }
-
- ///
- /// 收容器类型
- ///
- [Display(Name = "收容器类型")]
- [StringLength(SfsEfCorePropertyConst.DescLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ContainerType { get; set; }
+
///
/// 收容器计量单位
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/Inputs/ItemContainerImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/Inputs/ItemContainerImportInput.cs
index 4cc761d6c..37ac4d5fc 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/Inputs/ItemContainerImportInput.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemContainers/Inputs/ItemContainerImportInput.cs
@@ -22,16 +22,7 @@ public class ItemContainerImportInput : SfsBaseDataImportInputBase
[Display(Name = "收容器名称")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ContainerName { get; set; }
-
- ///
- /// 收容器类型
- ///
- [Display(Name = "收容器类型")]
- [StringLength(SfsEfCorePropertyConst.DescLength, ErrorMessage = "{0}最多输入{1}个字符")]
- [ValueMapping("EA", "EA")]
- [ValueMapping("Box", "Box")]
- [ValueMapping("Pallet", "Pallet")]
- public string ContainerType { get; set; }
+
///
/// 物品编号
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs
index a7210b64c..4c21b2851 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs
@@ -49,10 +49,10 @@ public class ItemContainerAppService
[UnitOfWork]
public override async Task CreateAsync(ItemContainerEditInput input)
{
- var existEntity = await _repository.FirstOrDefaultAsync(p=>p.ContainerCode==input.ContainerCode).ConfigureAwait(false);
+ var existEntity = await _repository.FirstOrDefaultAsync(p=>p.ItemCode == input.ItemCode).ConfigureAwait(false);
if (existEntity != null)
{
- throw new UserFriendlyException($"{input.ContainerCode} 已存在");
+ throw new UserFriendlyException($"物品 {input.ItemCode} 已存在");
}
var itemBasic = await ItemBasicAppService.GetByCodeAsync(input.ItemCode).ConfigureAwait(false);
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAppService.cs
index 043d22231..5431a0142 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAppService.cs
@@ -68,9 +68,9 @@ public class PositionCodeAppService
var itemBasic = await ItemBasicAppService.GetByCodeAsync(input.PartCode).ConfigureAwait(false);
Check.NotNull(itemBasic, "物品代码", $"物品 {input.PartCode} 不存在");
//如果类型选择为原料,校验物料号类型必须为原料,器具、KItting 的不用加校验
- if (input.Type == EnumRecommendType.W && itemBasic.Type != "10C02")
+ if (input.Type == EnumRecommendType.W && itemBasic.CanBuy != true)
{
- throw new UserFriendlyException($"{input.PartCode} 物料号类型必须为原料");
+ throw new UserFriendlyException($"{input.PartCode} 物料号类型必须为采购件");
}
input.PartName = itemBasic.Name;
input.PartDesc = itemBasic.Desc1;
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ItemContainers/ItemContainer.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ItemContainers/ItemContainer.cs
index 67fc5c48e..335ba11e1 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ItemContainers/ItemContainer.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ItemContainers/ItemContainer.cs
@@ -17,11 +17,7 @@ public class ItemContainer : SfsBaseDataAggregateRootBase
/// 收容器名称
///
public string ContainerName { get; set; }
-
- ///
- /// 收容器类型
- ///
- public string ContainerType { get; set; }
+
///
/// 物品代码
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/ItemContainers/ItemContainerDbContextModelCreatingExtensions.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/ItemContainers/ItemContainerDbContextModelCreatingExtensions.cs
index b94ff820a..d7e1b915c 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/ItemContainers/ItemContainerDbContextModelCreatingExtensions.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/ItemContainers/ItemContainerDbContextModelCreatingExtensions.cs
@@ -24,13 +24,13 @@ public static class ItemContainerDbContextModelCreatingExtensions
b.Property(q => q.ContainerCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ItemCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ContainerName).HasMaxLength(SfsPropertyConst.NameLength);
- b.Property(q => q.ContainerType).HasMaxLength(SfsPropertyConst.NameLength);
+
//Relations
//None
//Indexes
- b.HasIndex(q => new { q.ItemCode, q.ContainerCode }).IsUnique();
+ b.HasIndex(q => new { q.ItemCode }).IsUnique();
});
}
}
diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/IBalanceAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/IBalanceAppService.cs
index 9be64b26d..f5fd91884 100644
--- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/IBalanceAppService.cs
+++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/IBalanceAppService.cs
@@ -110,12 +110,6 @@ public interface IBalanceAppService
Task> GetByHoldLocationCodeAndNoOkAsync(SfsInventoryRequestInputBase sfsRequestDTO, bool includeDetails = false,
CancellationToken cancellationToken = default);
- ///
- /// 获取 【实际库存余额】(不包含预计入,抛出预计出)
- ///
- ///
- Task GetRealQtyByPackingCodeAndItemCodeAndLocationCodeAndStatusAsync(string packingCode, string itemCode, string locationCode, EnumInventoryStatus status);
-
Task> GetListByLocationCodeAndItemCodeAsync(string locationCode, string itemCode);
Task> GetListByLocationCodeAndStatusAsync(string locationCode, EnumInventoryStatus status);
@@ -174,4 +168,11 @@ public interface IBalanceAppService
///
///
Task> GetUsableListAsync(RecommendBalanceRequestInput input);
+
+ ///
+ /// 获取 【实际库存余额】(不包含预计入,计算了预计出)
+ ///
+ ///
+ Task GetRealQtyByPackingCodeAndItemCodeAndLocationCodeAndStatusAsync(string packingCode,
+ string itemCode, string locationCode, EnumInventoryStatus status,string lot);
}
diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs
index 3e911266f..3a8a08cfe 100644
--- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs
+++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs
@@ -39,6 +39,7 @@ public class BalanceAppService
private readonly IBalanceManager _balanceManager;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly IStdCostPriceSheetAppService _stdCostPriceSheetAppService;
+ private readonly IExpectOutAppService _expectOutAppService;
public BalanceAppService(
IBalanceRepository repository,
@@ -47,7 +48,8 @@ public class BalanceAppService
ILocationAclService locationAclService,
IItemBasicAclService itemBasicAclService,
IItemBasicAppService itemBasicAppService,
- IStdCostPriceSheetAppService stdCostPriceSheetAppService) : base(repository)
+ IStdCostPriceSheetAppService stdCostPriceSheetAppService,
+ IExpectOutAppService expectOutAppService) : base(repository)
{
_repository = repository;
_transferLogManager = transferLogManager;
@@ -56,6 +58,7 @@ public class BalanceAppService
_itemBasicAclService = itemBasicAclService;
_itemBasicAppService = itemBasicAppService;
_stdCostPriceSheetAppService = stdCostPriceSheetAppService;
+ _expectOutAppService = expectOutAppService;
}
#region Update
@@ -803,12 +806,12 @@ public class BalanceAppService
}
///
- /// 获取 【实际库存余额】(不包含预计入,抛出预计出)
+ /// 获取 【实际库存余额】(不包含预计入,计算了预计出)
///
///
- [HttpPost("get-real-qty-by-packing-and-item-and-location-and-status")]
+ [HttpPost("get-real-qty-by-packing-and-item-and-location-and-status-and-lot")]
public async Task GetRealQtyByPackingCodeAndItemCodeAndLocationCodeAndStatusAsync(string packingCode,
- string itemCode, string locationCode, EnumInventoryStatus status)
+ string itemCode, string locationCode, EnumInventoryStatus status,string lot)
{
var entity = await _repository.FirstOrDefaultAsync(c =>
c.PackingCode == packingCode && c.ItemCode == itemCode && c.LocationCode == locationCode &&
@@ -818,9 +821,14 @@ public class BalanceAppService
throw new UserFriendlyException($"未找到箱码为 {packingCode},物料代码为 {itemCode},库位代码为 {locationCode} 的库存");
}
- //TODO 减去预计出
-
+ var expectOutDtos=await _expectOutAppService.GetListByItemCodeAndStatusAndPackingCodeAsync(itemCode,locationCode,packingCode,status,lot).ConfigureAwait(false);
var dto = ObjectMapper.Map(entity);
+
+ foreach (var expectOutDto in expectOutDtos)
+ {
+ dto.Qty -= expectOutDto.Qty;
+ }
+
return dto;
}
diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumRecommendType.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumRecommendType.cs
index 4b64c050b..08e1bc6a2 100644
--- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumRecommendType.cs
+++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumRecommendType.cs
@@ -19,10 +19,10 @@ public enum EnumRecommendType
W = 1,
///
- /// 器具
+ /// 半成品
///
- [Display(Name = "器具")]
- Q = 2,
+ [Display(Name = "半成品")]
+ B = 2,
///
/// kitting区
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDTO.cs
index 3851df4e1..c6dbd8249 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDTO.cs
@@ -4,41 +4,34 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
///
-/// 注塑发料任务
+/// 注塑发料任务
///
[Display(Name = "注塑发料任务")]
public class InjectionJobDTO : SfsJobDTOBase
{
///
- /// 叫料请求类型
+ /// 叫料请求类型
///
[Display(Name = "叫料请求类型")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string RequestType { get; set; }
///
- /// 生产线
+ /// 生产线
///
[Display(Name = "生产线")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ProdLine { get; set; }
///
- /// 要货单号
+ /// 要货单号
///
[Display(Name = "要货单号")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string InjectionRequestNumber { get; set; }
///
- /// 车间
- ///
- //[Display(Name = "车间")]
- //[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- //public string Workshop { get; set; }
-
- ///
- /// 使用在途库
+ /// 使用在途库
///
[Display(Name = "使用在途库")]
public bool UseOnTheWayLocation { get; set; }
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDetailDTO.cs
index 363521370..4df8a0b19 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/DTOs/InjectionJobDetailDTO.cs
@@ -1,112 +1,519 @@
using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class InjectionJobDetailDTO : SfsJobRecommendFromDetailDTOBase, IHasToLocation
+public class InjectionJobDetailDTO : SfsDetailDTOBase
{
+ #region 库存基础信息
///
- /// 请求库位
+ /// 物品代码
///
- [Display(Name = "请求库位")]
- public string RequestLocationCode { get; set; }
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
///
- /// 到库位
+ /// 计量单位
///
- [Display(Name = "到库位")]
- public string ToLocationCode { get; set; }
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 到库区
+ /// 到库区
///
- [Display(Name = "到库区")]
- public string ToLocationArea { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 到库位组
+ /// 到库位组
///
- [Display(Name = "到库位组")]
- public string ToLocationGroup { get; set; }
+ public string RequestLocationGroup { get; set; }
///
- /// 到ERP库位
+ /// 到ERP库位
///
- [Display(Name = "到ERP库位")]
- public string ToLocationErpCode { get; set; }
+ public string RequestLocationErpCode { get; set; }
///
- /// 到仓库
+ /// 到仓库
///
- [Display(Name = "到仓库")]
- public string ToWarehouseCode { get; set; }
+ public string RequestWarehouseCode { get; set; }
///
- /// 在途库库位
+ /// 在途库库位
///
- [Display(Name = "在途库库位")]
public string OnTheWayLocationCode { get; set; }
///
- /// 生产线
+ /// 生产线
///
- [Display(Name = "生产线")]
public string ProdLine { get; set; }
///
- /// 工作中心
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
///
- [Display(Name = "工作中心")]
- public string WorkStation { get; set; }
+ public string RecommendFromLocationErpCode { get; set; }
///
- /// 过期时间
+ /// 推荐来源仓库
///
- [Display(Name = "过期时间")]
- public DateTime ExpiredTime { get; set; }
+ public string RecommendFromWarehouseCode { get; set; }
///
- /// 工序
+ /// 推荐来源数量
///
- [Display(Name = "工序")]
- public string Operation { get; set; }
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
///
- /// 配送方式
+ /// 推荐目标库位组
///
- [Display(Name = "配送方式")]
- public EnumDistributionType DistributionType { get; set; }
+ public string RecommendToLocationGroup { get; set; }
///
- /// 取整方式
+ /// 推荐目标ERP库位
///
- [Display(Name = "取整方式")]
- public EnumTruncType TruncType { get; set; }
+ public string RecommendToLocationErpCode { get; set; }
///
- /// 取整后数量
+ /// 推荐目标仓库
///
- [Display(Name = "取整后数量")]
- public decimal RoundedQty { get; set; }
+ public string RecommendToWarehouseCode { get; set; }
///
- /// 计划拆分规则
+ /// 推荐目标数量
///
- [Display(Name = "计划拆分规则")]
- public EnumPlannedSplitRule PlannedSplitRule { get; set; }
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
///
- /// 计划开始时间
+ /// 库移来源托标签
///
- [Display(Name = "计划开始时间")]
- public DateTime PlanBeginTime { get; set; }
+ public string TransferLibFromContainerCode { get; set; }
///
- /// 每次配送数量
+ /// 库移来源箱标签
///
- [Display(Name = "每次配送数量")]
- public decimal DeliveryQty { get; set; }
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionJobAppService.cs
index a5681c7ac..fd7839757 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionJobAppService.cs
@@ -8,18 +8,7 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IInjectionJobAppService
: ISfsJobAppServiceBase
{
- Task> CheckJobExistByItemCodeAndLocationCodeAsync(string itemCode, string locationCode);
-
Task CancelByMaterialRequestAsync(string injectionNumber);
- Task> GetListByTypeAsync(SfsJobRequestInputBase requestInput, string requestType,
- bool includeDetails = false, CancellationToken cancellationToken = default);
-
Task> GetByRequestNumberAsync(string requestNumber);
-
- ///
- /// 保存拆箱时涉及的明细修改
- ///
- ///
- Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobDetailInput.cs
index 38890b9a9..4fca06b3f 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobDetailInput.cs
@@ -1,134 +1,519 @@
using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class InjectionJobDetailInput : SfsJobRecommendFromDetailInputBase, IHasToLocation
+public class InjectionJobDetailInput : SfsDetailInputBase
{
+ #region 库存基础信息
///
- /// 请求库位
+ /// 物品代码
///
- [Display(Name = "请求库位")]
- [Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string RequestLocationCode { get; set; }
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
///
- /// 到库位
+ /// 计量单位
///
- [Display(Name = "到库位")]
- [Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ToLocationCode { get; set; }
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 到库区
+ /// 到库区
///
- [Display(Name = "到库区")]
- public string ToLocationArea { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 到库位组
+ /// 到库位组
///
- [Display(Name = "到库位组")]
- public string ToLocationGroup { get; set; }
+ public string RequestLocationGroup { get; set; }
///
- /// 到ERP库位
+ /// 到ERP库位
///
- [Display(Name = "到ERP库位")]
- [Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ToLocationErpCode { get; set; }
+ public string RequestLocationErpCode { get; set; }
///
- /// 到仓库
+ /// 到仓库
///
- [Display(Name = "到仓库")]
- [Required(ErrorMessage = "{0}是必填项")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ToWarehouseCode { get; set; }
+ public string RequestWarehouseCode { get; set; }
///
- /// 在途库库位
+ /// 在途库库位
///
- [Display(Name = "在途库库位")]
public string OnTheWayLocationCode { get; set; }
///
- /// 生产线
+ /// 生产线
///
- [Display(Name = "生产线")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ProdLine { get; set; }
///
- /// 工作中心
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
///
- [Display(Name = "工作中心")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WorkStation { get; set; }
+ public EnumRecommendType RecommendType { get; set; }
///
- /// 过期时间
+ /// 需求数量
///
- [Display(Name = "过期时间")]
- [Required(ErrorMessage = "{0}是必填项")]
- public DateTime ExpiredTime { get; set; }
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
///
- /// 工序
+ /// 推荐来源托标签
///
- [Display(Name = "工序")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string Operation { get; set; }
+ public string RecommendFromContainerCode { get; set; }
///
- /// 配送方式
+ /// 推荐来源箱标签
///
- [Display(Name = "配送方式")]
- public EnumDistributionType DistributionType { get; set; }
+ public string RecommendFromPackingCode { get; set; }
///
- /// 取整方式
+ /// 推荐来源批次供应商批次
///
- [Display(Name = "取整方式")]
- public EnumTruncType TruncType { get; set; }
+ public string RecommendFromSupplierBatch { get; set; }
///
- /// 取整后数量
+ /// 推荐来源批次到货时间
///
- [Display(Name = "取整后数量")]
- public decimal RoundedQty { get; set; }
+ public DateTime RecommendFromArriveDate { get; set; }
///
- /// 计划拆分规则
+ /// 推荐来源批次生产时间
///
- [Display(Name = "计划拆分规则")]
- public EnumPlannedSplitRule PlannedSplitRule { get; set; }
+ public DateTime RecommendFromProduceDate { get; set; }
///
- /// 计划开始时间
+ /// 推荐来源批次过期时间
///
- [Display(Name = "计划开始时间")]
- public DateTime PlanBeginTime { get; set; }
+ public DateTime RecommendFromExpireDate { get; set; }
///
- /// 每次配送数量
+ /// 推荐来源批次排序
///
- [Display(Name = "每次配送数量")]
- public decimal DeliveryQty { get; set; }
+ public string RecommendFromLot { get; set; }
///
- /// 位置码
+ /// 推荐来源库位
///
- public string PositionCode { get; set; }
+ public string RecommendFromLocationCode { get; set; }
///
- /// 推荐类型
+ /// 推荐来源库区
///
- public EnumRecommendType RecommendType { get; set; }
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobEditInput.cs
index e106e1ae3..3afaf2500 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/Inputs/InjectionJobEditInput.cs
@@ -60,20 +60,6 @@ public class InjectionJobEditInput : SfsJobCreateUpdateInputBase, ISfsJobCreateI
[Required(ErrorMessage = "{0}是必填项")]
public List Details { get; set; } = new();
- ///
- /// 车间
- ///
- //[Display(Name = "车间")]
- //[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- //public string Workshop { get; set; }
-
- ///
- /// 生产线
- ///
- [Display(Name = "生产线")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ProdLine { get; set; }
-
///
/// 使用在途库
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs
index 3af319f51..f41ed94ed 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs
@@ -7,5 +7,5 @@ public interface IProductRecycleJobAppService
: ISfsJobAppServiceBase
{
-
+ Task CompleteByRequestNumberAsync(string number);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/TransferLibJobs/DTOs/TransferLibJobDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/TransferLibJobs/DTOs/TransferLibJobDetailDTO.cs
index 556688977..b33f1be91 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/TransferLibJobs/DTOs/TransferLibJobDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/TransferLibJobs/DTOs/TransferLibJobDetailDTO.cs
@@ -1,53 +1,467 @@
+using System;
using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
-using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
///
-/// //??TransferLib实体
+/// //??TransferLib实体
///
-public class TransferLibJobDetailDTO : SfsStoreDetailWithFromToDTOBase
+public class TransferLibJobDetailDTO : SfsDetailDTOBase
{
///
- /// 在途库地址
- ///
- [Display(Name = "在途库地址")]
- public string OnTheWayLocationCode { get; set; }
- ///
- /// 原因
+ /// 原因
///
- [Display(Name = "原因")]
public string Reason { get; set; }
///
- /// 执行任务状态
+ /// 执行任务状态
///
public EnumJobStatus JobStatus { get; set; }
#region 回调服务相关
+
///
- /// 回调服务名称
+ /// 回调服务名称
///
- [Display(Name = "回调服务名称")]
public string CallServerName { get; set; }
///
- /// 回调业务类型
+ /// 回调业务类型
///
- [Display(Name = "回调业务类型")]
public string CallBusinessType { get; set; }
///
- /// 调用者传入申请单号
+ /// 调用者传入申请单号
///
- [Display(Name = "传入申请单号")]
public string CallRequestNumber { get; set; }
///
- /// 调用者传入任务单号
+ /// 调用者传入任务单号
///
- [Display(Name = "传入任务单号")]
public string CallJobNumber { get; set; }
+
+ #endregion
+
+ #region 库存基础信息
+
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
+
+ ///
+ /// 到库区
+ ///
+ public string RequestLocationArea { get; set; }
+
+ ///
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
+ ///
+ public string OnTheWayLocationCode { get; set; }
+
+ ///
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
#endregion
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
+
+ #region 开关
+
+ //箱码
+ public bool IsPackingCodeFrom { get; set; }
+
+ public bool IsPackingCodeTo { get; set; }
+
+ //批次
+ public bool IsLotFrom { get; set; }
+
+ public bool IsLotTo { get; set; }
+
+ //零件号
+ public bool IsItemCodeFrom { get; set; }
+
+ public bool IsItemCodeTo { get; set; }
+
+ //状态
+ public bool IsStatusFrom { get; set; }
+
+ public bool IsStatusTo { get; set; }
+
+ //库位
+ public bool IsLocationCodeFrom { get; set; }
+
+ public bool IsLocationCodeTo { get; set; }
+
+ //库位组
+ public bool IsLocationGroupFrom { get; set; }
+
+ public bool IsLocationGroupTo { get; set; }
+
+ //区域
+ public bool IsLocationAreaFrom { get; set; }
+
+ public bool IsLocationAreaTo { get; set; }
+
+ //储位
+ public bool IsLocationErpCodeFrom { get; set; }
+
+ public bool IsLocationErpCodeTo { get; set; }
+
+ //数量
+ public bool IsQtyFrom { get; set; }
+
+ public bool IsQtyTo { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/TransferLibJobs/Inputs/TransferLibJobDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/TransferLibJobs/Inputs/TransferLibJobDetailInput.cs
index 5a95cf572..fe8dc93f4 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/TransferLibJobs/Inputs/TransferLibJobDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/TransferLibJobs/Inputs/TransferLibJobDetailInput.cs
@@ -1,57 +1,467 @@
+using System;
using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Data;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
using Win_in.Sfs.Shared.Domain.Shared;
-using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
+using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
///
-/// //??TransferLib实体
+/// //??TransferLib实体
///
-public class TransferLibJobDetailInput : SfsStoreDetailWithFromToInputBase
+public class TransferLibJobDetailInput : SfsStoreCreateOrUpdateInputBase
{
///
- /// 在途库地址
- ///
- [Display(Name = "在途库地址")]
- public string OnTheWayLocationCode { get; set; }
-
- ///
- /// 原因
+ /// 原因
///
- [Display(Name = "原因")]
- [StringLength(SfsEfCorePropertyConst.RemarkLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string Reason { get; set; }
///
- /// 执行任务状态
+ /// 执行任务状态
///
public EnumJobStatus JobStatus { get; set; }
#region 回调服务相关
+
///
- /// 回调服务名称
+ /// 回调服务名称
///
- [Display(Name = "回调服务名称")]
public string CallServerName { get; set; }
///
- /// 回调业务类型
+ /// 回调业务类型
///
- [Display(Name = "回调业务类型")]
public string CallBusinessType { get; set; }
///
- /// 调用者传入申请单号
+ /// 调用者传入申请单号
///
- [Display(Name = "传入申请单号")]
public string CallRequestNumber { get; set; }
///
- /// 调用者传入任务单号
+ /// 调用者传入任务单号
///
- [Display(Name = "传入任务单号")]
public string CallJobNumber { get; set; }
+
+ #endregion
+
+ #region 库存基础信息
+
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
#endregion
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
+
+ ///
+ /// 到库区
+ ///
+ public string RequestLocationArea { get; set; }
+
+ ///
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
+ ///
+ public string OnTheWayLocationCode { get; set; }
+
+ ///
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
+
+ #region 开关
+
+ //箱码
+ public bool IsPackingCodeFrom { get; set; }
+
+ public bool IsPackingCodeTo { get; set; }
+
+ //批次
+ public bool IsLotFrom { get; set; }
+
+ public bool IsLotTo { get; set; }
+
+ //零件号
+ public bool IsItemCodeFrom { get; set; }
+
+ public bool IsItemCodeTo { get; set; }
+
+ //状态
+ public bool IsStatusFrom { get; set; }
+
+ public bool IsStatusTo { get; set; }
+
+ //库位
+ public bool IsLocationCodeFrom { get; set; }
+
+ public bool IsLocationCodeTo { get; set; }
+
+ //库位组
+ public bool IsLocationGroupFrom { get; set; }
+
+ public bool IsLocationGroupTo { get; set; }
+
+ //区域
+ public bool IsLocationAreaFrom { get; set; }
+
+ public bool IsLocationAreaTo { get; set; }
+
+ //储位
+ public bool IsLocationErpCodeFrom { get; set; }
+
+ public bool IsLocationErpCodeTo { get; set; }
+
+ //数量
+ public bool IsQtyFrom { get; set; }
+
+ public bool IsQtyTo { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDTO.cs
index 96f533b19..951df8a73 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDTO.cs
@@ -13,13 +13,6 @@ public class InjectionNoteDTO : SfsStoreDTOBase, IHasJob
[Display(Name = "任务ID")]
public string JobNumber { get; set; }
- ///
- /// 车间
- ///
- [Display(Name = "车间")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string Workshop { get; set; }
-
///
/// 请求代码
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDetailDTO.cs
index e36d271b3..9ec6f5cfe 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/DTOs/InjectionNoteDetailDTO.cs
@@ -1,42 +1,519 @@
using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
+using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class InjectionNoteDetailDTO : SfsStoreRecommendFromDetailWithFromToDTOBase
+public class InjectionNoteDetailDTO : SfsDetailDTOBase
{
+ #region 库存基础信息
///
- /// 发料时间
+ /// 物品代码
///
- [Display(Name = "发料时间")]
- public DateTime IssueTime { get; set; }
+ public string ItemCode { get; set; }
///
- /// 过期时间
+ /// 物品名称
///
- [Display(Name = "过期时间")]
- public DateTime ExpiredTime { get; set; }
+ public string ItemName { get; set; }
///
- /// 生产线
+ /// 物品描述1
///
- [Display(Name = "生产线")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ProdLine { get; set; }
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 工作中心
+ /// 到库区
///
- [Display(Name = "工作中心")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WorkStation { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 在途库库位
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
///
- [Display(Name = "在途库库位")]
public string OnTheWayLocationCode { get; set; }
+ ///
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteDetailInput.cs
index 48714bb23..0dd37d099 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteDetailInput.cs
@@ -1,53 +1,519 @@
using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
-public class InjectionNoteDetailInput : SfsStoreRecommendFromDetailWithFromToInputBase
+public class InjectionNoteDetailInput : SfsDetailInputBase
{
+ #region 库存基础信息
///
- /// 发料时间
+ /// 物品代码
///
- [Display(Name = "发料时间")]
- public DateTime IssueTime { get; set; }
+ public string ItemCode { get; set; }
///
- /// 过期时间
+ /// 物品名称
///
- [Display(Name = "过期时间")]
- public DateTime ExpiredTime { get; set; }
+ public string ItemName { get; set; }
///
- /// 生产线
+ /// 物品描述1
///
- [Display(Name = "生产线")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ProdLine { get; set; }
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 工作中心
+ /// 到库区
///
- [Display(Name = "工作中心")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WorkStation { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 在途库库位
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
///
- [Display(Name = "在途库库位")]
public string OnTheWayLocationCode { get; set; }
///
- /// 位置码
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
///
public string PositionCode { get; set; }
///
- /// 推荐类型
+ /// 推荐的类型
///
public EnumRecommendType RecommendType { get; set; }
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteEditInput.cs
index 410903705..3aaa6bbd4 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/InjectionNotes/Inputs/InjectionNoteEditInput.cs
@@ -28,13 +28,6 @@ public class InjectionNoteEditInput : SfsStoreCreateOrUpdateInputBase
[Required(ErrorMessage = "{0}是必填项")]
public string JobNumber { get; set; }
- ///
- /// 车间
- ///
- [Display(Name = "车间")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string Workshop { get; set; }
-
///
/// 明细列表
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/DTOs/TransferLibNoteDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/DTOs/TransferLibNoteDetailDTO.cs
index 566d56616..3296b5995 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/DTOs/TransferLibNoteDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/DTOs/TransferLibNoteDetailDTO.cs
@@ -1,53 +1,467 @@
+using System;
using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
///
-/// 库存转移记录-明细表 //??TransferLib实体
+/// 库存转移记录-明细表 //??TransferLib实体
///
-public class TransferLibNoteDetailDTO : SfsStoreDetailWithFromToDTOBase
+public class TransferLibNoteDetailDTO : SfsDetailDTOBase
{
-
- ///
- /// 在途库地址
- ///
- [Display(Name = "在途库地址")]
- public string OnTheWayLocationCode { get; set; }
///
- /// 原因
+ /// 原因
///
- [Display(Name = "原因")]
public string Reason { get; set; }
///
- /// 执行任务状态
+ /// 执行任务状态
///
public EnumJobStatus JobStatus { get; set; }
+
#region 回调服务相关
+
///
- /// 回调服务名称
+ /// 回调服务名称
///
- [Display(Name = "回调服务名称")]
public string CallServerName { get; set; }
///
- /// 回调业务类型
+ /// 回调业务类型
///
- [Display(Name = "回调业务类型")]
public string CallBusinessType { get; set; }
///
- /// 调用者传入申请单号
+ /// 调用者传入申请单号
///
- [Display(Name = "传入申请单号")]
public string CallRequestNumber { get; set; }
///
- /// 调用者传入任务单号
+ /// 调用者传入任务单号
///
- [Display(Name = "传入任务单号")]
public string CallJobNumber { get; set; }
+
+ #endregion
+
+ #region 库存基础信息
+
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
#endregion
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
+
+ ///
+ /// 到库区
+ ///
+ public string RequestLocationArea { get; set; }
+
+ ///
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
+ ///
+ public string OnTheWayLocationCode { get; set; }
+
+ ///
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
+
+ #region 开关
+
+ //箱码
+ public bool IsPackingCodeFrom { get; set; }
+
+ public bool IsPackingCodeTo { get; set; }
+
+ //批次
+ public bool IsLotFrom { get; set; }
+
+ public bool IsLotTo { get; set; }
+
+ //零件号
+ public bool IsItemCodeFrom { get; set; }
+
+ public bool IsItemCodeTo { get; set; }
+
+ //状态
+ public bool IsStatusFrom { get; set; }
+
+ public bool IsStatusTo { get; set; }
+
+ //库位
+ public bool IsLocationCodeFrom { get; set; }
+
+ public bool IsLocationCodeTo { get; set; }
+
+ //库位组
+ public bool IsLocationGroupFrom { get; set; }
+
+ public bool IsLocationGroupTo { get; set; }
+
+ //区域
+ public bool IsLocationAreaFrom { get; set; }
+
+ public bool IsLocationAreaTo { get; set; }
+
+ //储位
+ public bool IsLocationErpCodeFrom { get; set; }
+
+ public bool IsLocationErpCodeTo { get; set; }
+
+ //数量
+ public bool IsQtyFrom { get; set; }
+
+ public bool IsQtyTo { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/ITransferLibNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/ITransferLibNoteAppService.cs
index 548a8cb10..00ee3ae41 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/ITransferLibNoteAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/ITransferLibNoteAppService.cs
@@ -9,82 +9,10 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface ITransferLibNoteAppService :
ISfsStoreMasterReadOnlyAppServiceBase
{
- Task CreateAsync(TransferLibNoteEditInput input);
-
- Task> GetWipTransferListAsync(SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default);
-
- Task> GetAreaTransferListAsync(SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default);
-
- Task> GetCustomerTransferListAsync(SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default);
-
- Task> GetListForDiffERPLocAsync(
- SfsStoreRequestInputBase sfsRequestDTO,
- bool includeDetails = false,
- CancellationToken cancellationToken = default);
-
- Task> GetInsideTransferListAsync(
- SfsStoreRequestInputBase sfsRequestDTO,
- bool includeDetails = false,
- CancellationToken cancellationToken = default);
-
- Task ConfirmAsync(Guid id);
-
///
- /// 库存转移
+ /// ת
///
///
///
- Task> CreateManyAsync(List input);
-
- ///
- /// 拆箱
- ///
- ///
- ///
- Task SplitPackingAsync(TransferLibNoteEditInput transferLibNoteEditInput);
-
- ///
- /// 按条件获取拆箱的分页列表
- /// request sample
- /// {
- /// "maxResultCount": 1000,
- /// "skipCount": 0,
- /// "sorting": "",
- /// "condition": { "filters": []}
- /// }
- ///
- ///
- ///
- ///
- ///
- Task> GetSplitPackingTransferListAsync(
- SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default);
-
- ///
- /// 采购收货拆箱,同时更新、插入PurchaseReceipt任务表、申请表
- ///
- ///
- ///
- ///
- Task SplitPacking_PurchaseReceiptAsync(TransferLibNoteEditInput transferLibNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput);
-
- ///
- /// 质检拆箱,同时更新、插入Inspect任务表(不更新申请表)
- ///
- ///
- ///
- ///
- Task SplitPacking_InspectAsync(TransferLibNoteEditInput transferLibNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput);
-
- ///
- /// 发料拆箱,同时更新、插入Inspect任务表(没有找到申请表//??)
- ///
- ///
- ///
- ///
- Task SplitPacking_IssueAsync(TransferLibNoteEditInput transferLibNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput);
+ Task CreateAsync(TransferLibNoteEditInput input);
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/Inputs/TransferLibNoteDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/Inputs/TransferLibNoteDetailInput.cs
index c6910a6a2..4b16c3ae9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/Inputs/TransferLibNoteDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/TransferLibNotes/Inputs/TransferLibNoteDetailInput.cs
@@ -1,57 +1,467 @@
+using System;
using System.ComponentModel.DataAnnotations;
-using Win_in.Sfs.Shared.Domain;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
///
-/// 库存转移记录-明细表 //??TransferLib实体
+/// 库存转移记录-明细表 //??TransferLib实体
///
-public class TransferLibNoteDetailInput : SfsStoreDetailWithFromToInputBase
+public class TransferLibNoteDetailInput : SfsDetailInputBase
{
-
- ///
- /// 在途库地址
- ///
- [Display(Name = "在途库地址")]
- public string OnTheWayLocationCode { get; set; }
-
///
- /// 原因
+ /// 原因
///
- [Display(Name = "原因")]
- [StringLength(SfsEfCorePropertyConst.RemarkLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string Reason { get; set; }
+
///
- /// 执行任务状态
+ /// 执行任务状态
///
public EnumJobStatus JobStatus { get; set; }
#region 回调服务相关
+
///
- /// 回调服务名称
+ /// 回调服务名称
///
- [Display(Name = "回调服务名称")]
public string CallServerName { get; set; }
///
- /// 回调业务类型
+ /// 回调业务类型
///
- [Display(Name = "回调业务类型")]
public string CallBusinessType { get; set; }
///
- /// 调用者传入申请单号
+ /// 调用者传入申请单号
///
- [Display(Name = "传入申请单号")]
public string CallRequestNumber { get; set; }
///
- /// 调用者传入任务单号
+ /// 调用者传入任务单号
///
- [Display(Name = "传入任务单号")]
public string CallJobNumber { get; set; }
+
+ #endregion
+
+ #region 库存基础信息
+
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
#endregion
+ #region 请求信息
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
+
+ ///
+ /// 到库区
+ ///
+ public string RequestLocationArea { get; set; }
+
+ ///
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
+ ///
+ public string OnTheWayLocationCode { get; set; }
+
+ ///
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
+
+ #region 开关
+
+ //箱码
+ public bool IsPackingCodeFrom { get; set; }
+
+ public bool IsPackingCodeTo { get; set; }
+
+ //批次
+ public bool IsLotFrom { get; set; }
+
+ public bool IsLotTo { get; set; }
+
+ //零件号
+ public bool IsItemCodeFrom { get; set; }
+
+ public bool IsItemCodeTo { get; set; }
+
+ //状态
+ public bool IsStatusFrom { get; set; }
+
+ public bool IsStatusTo { get; set; }
+
+ //库位
+ public bool IsLocationCodeFrom { get; set; }
+
+ public bool IsLocationCodeTo { get; set; }
+
+ //库位组
+ public bool IsLocationGroupFrom { get; set; }
+
+ public bool IsLocationGroupTo { get; set; }
+
+ //区域
+ public bool IsLocationAreaFrom { get; set; }
+
+ public bool IsLocationAreaTo { get; set; }
+
+ //储位
+ public bool IsLocationErpCodeFrom { get; set; }
+
+ public bool IsLocationErpCodeTo { get; set; }
+
+ //数量
+ public bool IsQtyFrom { get; set; }
+
+ public bool IsQtyTo { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/DTOs/InjectionRequestDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/DTOs/InjectionRequestDTO.cs
index 654107abe..eec1cf4c4 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/DTOs/InjectionRequestDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/DTOs/InjectionRequestDTO.cs
@@ -10,12 +10,6 @@ public class InjectionRequestDTO : SfsStoreRequestDTOBase
- /// 生产线
- ///
- [Display(Name = "生产线")]
- public string ProdLine { get; set; }
-
///
/// 是否使用在途库
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestDetailInput.cs
index 41527199a..47401acc8 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestDetailInput.cs
@@ -49,19 +49,6 @@ public class InjectionRequestDetailInput : SfsStoreDetailWithQtyInputBase
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ProdLine { get; set; }
- ///
- /// 工作中心
- ///
- [Display(Name = "工作中心")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string WorkStation { get; set; }
-
- ///
- /// 过期时间
- ///
- [Display(Name = "过期时间")]
- public DateTime ExpiredTime { get; set; }
-
///
/// 状态
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestEditInput.cs
index 7277bf50c..a95c5a489 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestEditInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/Inputs/InjectionRequestEditInput.cs
@@ -14,13 +14,6 @@ public class InjectionRequestEditInput : SfsStoreRequestCreateOrUpdateInputBase
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string Workshop { get; set; }
- ///
- /// 生产线
- ///
- [Display(Name = "生产线")]
- [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
- public string ProdLine { get; set; }
-
///
/// 使用在途库
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDTO.cs
index 6d2ed2559..93fe43f89 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDTO.cs
@@ -5,41 +5,22 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ThirdLocationRequestDTO : SfsStoreRequestDTOBase, IHasNumber
{
///
- /// 叫料类型
+ /// 类型
///
- [Display(Name = "叫料类型")]
+ [Display(Name = "类型")]
public string Type { get; set; }
///
- /// 生产线
+ /// 生产线
///
[Display(Name = "生产线")]
public string ProdLine { get; set; }
///
- /// 是否使用在途库
+ /// 是否使用在途库
///
[Display(Name = "是否使用在途库")]
- public bool IsUseOnTheWayLocation { get; set; }
+ public bool IsUseOnTheWayLocation { get; set; }
- ///
- /// 可用来源库位Json集合
- ///
- public string FromLocationCodeJsonList { get; set; }
-
- ///
- /// 叫料库位
- ///
- public string ToLocationCode { get; set; }
-
- ///
- /// 目标ERP储位
- ///
- [Display(Name = "目标ERP储位")]
- public string ToLocationErpCode { get; set; }
-
- ///
- /// 来源库区
- ///
- public string FromLocationArea { get; set; }
+
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDetailDTO.cs
index bd0610ac6..7b205cdaa 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/DTOs/ThirdLocationRequestDetailDTO.cs
@@ -8,6 +8,30 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ThirdLocationRequestDetailDTO : SfsStoreDetailWithQtyDTOBase
{
+ ///
+ /// 目标库位
+ ///
+ [Display(Name = "目标库位")]
+ public string ToLocationCode { get; set; }
+
+ ///
+ /// 目标ERP储位
+ ///
+ [Display(Name = "目标ERP储位")]
+ public string ToLocationErpCode { get; set; }
+
+ ///
+ /// 来源库位
+ ///
+ [Display(Name = "来源库位")]
+ public string FromLocationCode { get; set; }
+
+ ///
+ /// 来源库区
+ ///
+ [Display(Name = "来源库区")]
+ public string FromLocationArea { get; set; }
+
///
/// 已发数量
///
@@ -19,12 +43,7 @@ public class ThirdLocationRequestDetailDTO : SfsStoreDetailWithQtyDTOBase
///
[Display(Name = "已收数量")]
public decimal ReceivedQty { get; set; }
-
- ///
- /// 明细状态
- ///
- [Display(Name = "明细状态")]
- public EnumStatus Status { get; set; }
+
///
/// 请求未发
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/Inputs/ThirdLocationRequestDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/Inputs/ThirdLocationRequestDetailInput.cs
index b6294d8cd..aec149364 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/Inputs/ThirdLocationRequestDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ThirdLocationRequests/Inputs/ThirdLocationRequestDetailInput.cs
@@ -71,12 +71,7 @@ public class ThirdLocationRequestDetailInput : SfsStoreDetailWithQtyInputBase
///
[Display(Name = "已收数量")]
public decimal ReceivedQty { get; set; }
-
- ///
- /// 明细状态
- ///
- [Display(Name = "明细状态")]
- public EnumStatus Status { get; set; }
+
///
/// 位置码
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/TransferLibRequests/DTOs/TransferLibRequestDetailDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/TransferLibRequests/DTOs/TransferLibRequestDetailDTO.cs
index 58199a753..16aac93aa 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/TransferLibRequests/DTOs/TransferLibRequestDetailDTO.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/TransferLibRequests/DTOs/TransferLibRequestDetailDTO.cs
@@ -1,12 +1,13 @@
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
///
/// 库存转移记录-明细表
///
-public class TransferLibRequestDetailDTO : SfsStoreDetailWithFromToDTOBase
+public class TransferLibRequestDetailDTO : NewRecommendFromTo
{
///
@@ -46,4 +47,47 @@ public class TransferLibRequestDetailDTO : SfsStoreDetailWithFromToDTOBase
public string CallJobNumber { get; set; }
#endregion
+ #region 校验
+ //箱码
+ public bool CheckPackingCodeFrom { get; set; }
+
+ public bool CheckPackingCodeTo { get; set; }
+ //批次
+ public bool CheckLotFrom { get; set; }
+
+ public bool CheckLotTo { get; set; }
+ //零件号
+ public bool CheckItemCodeFrom { get; set; }
+
+ public bool CheckItemCodeTo { get; set; }
+ //状态
+ public bool CheckStatusFrom { get; set; }
+
+ public bool CheckStatusTo { get; set; }
+ //库位
+ public bool CheckLocationCodeFrom { get; set; }
+
+ public bool CheckLocationCodeTo { get; set; }
+
+ //库位组
+ public bool CheckLocationGroupFrom { get; set; }
+
+ public bool CheckLocationGroupTo { get; set; }
+
+ //区域
+ public bool CheckLocationAreaFrom { get; set; }
+
+ public bool CheckLocationAreaTo { get; set; }
+
+ //储位
+ public bool CheckLocationErpCodeFrom { get; set; }
+
+ public bool CheckLocationErpCodeTo { get; set; }
+ //数量
+ public bool CheckQtyFrom { get; set; }
+
+ public bool CheckQtyTo { get; set; }
+
+ #endregion
+
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/TransferLibRequests/Inputs/TransferLibRequestDetailInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/TransferLibRequests/Inputs/TransferLibRequestDetailInput.cs
index 2f19e6588..4c02b71d9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/TransferLibRequests/Inputs/TransferLibRequestDetailInput.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/TransferLibRequests/Inputs/TransferLibRequestDetailInput.cs
@@ -1,13 +1,14 @@
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 TransferLibRequestDetailInput : SfsStoreDetailWithFromToInputBase
+public class TransferLibRequestDetailInput : NewRecommendFromTo
{
///
/// 原因
@@ -47,4 +48,47 @@ public class TransferLibRequestDetailInput : SfsStoreDetailWithFromToInputBase
public string CallJobNumber { get; set; }
#endregion
+ #region 校验
+ //箱码
+ public bool CheckPackingCodeFrom { get; set; }
+
+ public bool CheckPackingCodeTo { get; set; }
+ //批次
+ public bool CheckLotFrom { get; set; }
+
+ public bool CheckLotTo { get; set; }
+ //零件号
+ public bool CheckItemCodeFrom { get; set; }
+
+ public bool CheckItemCodeTo { get; set; }
+ //状态
+ public bool CheckStatusFrom { get; set; }
+
+ public bool CheckStatusTo { get; set; }
+ //库位
+ public bool CheckLocationCodeFrom { get; set; }
+
+ public bool CheckLocationCodeTo { get; set; }
+
+ //库位组
+ public bool CheckLocationGroupFrom { get; set; }
+
+ public bool CheckLocationGroupTo { get; set; }
+
+ //区域
+ public bool CheckLocationAreaFrom { get; set; }
+
+ public bool CheckLocationAreaTo { get; set; }
+
+ //储位
+ public bool CheckLocationErpCodeFrom { get; set; }
+
+ public bool CheckLocationErpCodeTo { get; set; }
+ //数量
+ public bool CheckQtyFrom { get; set; }
+
+ public bool CheckQtyTo { get; set; }
+
+ #endregion
+
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs
index 36465700c..e7b150b70 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs
@@ -129,7 +129,7 @@ public abstract class SfsStoreRequestAppServiceBase
[HttpPost("abort/{id}")]
public virtual async Task AbortAsync(Guid id)
- {
+ {
var entity = await _repository.FindAsync(id).ConfigureAwait(false);
Check.NotNull(entity, typeof(TEntity).Name);
var result = await _requestManager.AbortAsync(entity).ConfigureAwait(false);
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionJobs/InjectionJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionJobs/InjectionJobAppService.cs
index 966ee52d1..0b407c39c 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionJobs/InjectionJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionJobs/InjectionJobAppService.cs
@@ -1,14 +1,16 @@
using System;
using System.Collections.Generic;
+using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Threading;
using System.Threading.Tasks;
+using Castle.Components.DictionaryAdapter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
-using Volo.Abp.ObjectMapping;
+using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
@@ -22,59 +24,111 @@ namespace Win_in.Sfs.Wms.Store.Application;
[Authorize]
[Route($"{StoreConsts.RootPath}injection-job")]
public class InjectionJobAppService
- : SfsJobAppServiceBase,
- IInjectionJobAppService,ITransferLibCallback
+ : SfsJobAppServiceBase,
+ IInjectionJobAppService, ITransferLibCallback
{
private readonly IInjectionJobManager _injectionJobManager;
+ private readonly ILocationAppService _locationAppService;
+ private readonly ITransferLibJobAppService _transferLibJobAppService;
public InjectionJobAppService(
- IInjectionJobRepository repository, IInjectionJobManager injectionJobManager
- ) : base(repository, injectionJobManager)
+ IInjectionJobRepository repository, IInjectionJobManager injectionJobManager,
+ ILocationAppService locationAppService, ITransferLibJobAppService transferLibJobAppService) : base(repository, injectionJobManager)
{
_injectionJobManager = injectionJobManager;
+ _locationAppService = locationAppService;
+ _transferLibJobAppService = transferLibJobAppService;
}
- public override Task> CreateManyAsync(List inputs)
+ ///
+ /// 批量创建
+ ///
+ ///
+ ///
+ [HttpPost("create-many")]
+ public override async Task> CreateManyAsync(List inputs)
{
- return base.CreateManyAsync(inputs);
+ foreach (var input in inputs)
+ {
+ await CheckMinRowAndSetStatusAsync(input).ConfigureAwait(false);
+ }
+
+ return await base.CreateManyAsync(inputs).ConfigureAwait(false);
}
- public override Task CreateAsync(InjectionJobEditInput input)
+ ///
+ /// 创建
+ ///
+ ///
+ ///
+ [HttpPost("")]
+ public override async Task CreateAsync(InjectionJobEditInput input)
{
- return base.CreateAsync(input);
+ await CheckMinRowAndSetStatusAsync(input).ConfigureAwait(false);
+
+ return await base.CreateAsync(input).ConfigureAwait(false);
}
///
- /// 根据物品和库位 检查是否存在发料任务
+ /// 判断是不是在最底层 如果不是则把状态变更为等待 并把库移推荐的From和To赋值
///
- ///
- ///
+ ///
///
- ///
- [Authorize]
- [HttpGet("check-job-exist")]
- public virtual async Task> CheckJobExistByItemCodeAndLocationCodeAsync(string itemCode,
- string locationCode)
+ private async Task CheckMinRowAndSetStatusAsync(InjectionJobEditInput input)
{
- var entities = await _repository.GetListAsync(c =>
- c.Details.Any(p =>
- (p.ItemCode == itemCode && p.RecommendFromLocationCode == locationCode) ||
- (p.ItemCode == itemCode && p.ToLocationCode == locationCode))
- && (c.JobStatus == EnumJobStatus.Open || c.JobStatus == EnumJobStatus.Doing), true).ConfigureAwait(false);
- var dtos = ObjectMapper.Map, List>(entities);
- return dtos;
+ var jobDetailInputdetail = input.Details.FirstOrDefault();
+
+ var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode)
+ .ConfigureAwait(false);
+
+ if (loctionDto.RowCode == 1)
+ {
+ jobDetailInputdetail.TransferLibFromArriveDate = jobDetailInputdetail.RecommendFromArriveDate;
+ jobDetailInputdetail.TransferLibFromContainerCode = jobDetailInputdetail.RecommendFromContainerCode;
+ jobDetailInputdetail.TransferLibFromExpireDate = jobDetailInputdetail.RecommendFromExpireDate;
+ jobDetailInputdetail.TransferLibFromLocationArea = jobDetailInputdetail.RecommendFromLocationArea;
+ jobDetailInputdetail.TransferLibFromLocationCode = jobDetailInputdetail.RecommendFromLocationCode;
+ jobDetailInputdetail.TransferLibFromLocationErpCode = jobDetailInputdetail.RecommendFromLocationErpCode;
+ jobDetailInputdetail.TransferLibFromLocationGroup = jobDetailInputdetail.RecommendFromLocationGroup;
+ jobDetailInputdetail.TransferLibFromLot = jobDetailInputdetail.RecommendFromLot;
+ jobDetailInputdetail.TransferLibFromPackingCode = jobDetailInputdetail.RecommendFromPackingCode;
+ jobDetailInputdetail.TransferLibFromProduceDate = jobDetailInputdetail.RecommendFromProduceDate;
+ jobDetailInputdetail.TransferLibFromQty = jobDetailInputdetail.RecommendFromQty;
+ jobDetailInputdetail.TransferLibFromSupplierBatch = jobDetailInputdetail.RecommendFromSupplierBatch;
+ jobDetailInputdetail.TransferLibFromWarehouseCode = jobDetailInputdetail.RecommendFromWarehouseCode;
+
+ jobDetailInputdetail.TransferLibToArriveDate = jobDetailInputdetail.RecommendToArriveDate;
+ jobDetailInputdetail.TransferLibToContainerCode = jobDetailInputdetail.RecommendToContainerCode;
+ jobDetailInputdetail.TransferLibToExpireDate = jobDetailInputdetail.RecommendToExpireDate;
+ jobDetailInputdetail.TransferLibToLocationArea = jobDetailInputdetail.RecommendToLocationArea;
+ jobDetailInputdetail.TransferLibToLocationCode = jobDetailInputdetail.RecommendToLocationCode;
+ jobDetailInputdetail.TransferLibToLocationErpCode = jobDetailInputdetail.RecommendToLocationErpCode;
+ jobDetailInputdetail.TransferLibToLocationGroup = jobDetailInputdetail.RecommendToLocationGroup;
+ jobDetailInputdetail.TransferLibToLot = jobDetailInputdetail.RecommendToLot;
+ jobDetailInputdetail.TransferLibToPackingCode = jobDetailInputdetail.RecommendToPackingCode;
+ jobDetailInputdetail.TransferLibToProduceDate = jobDetailInputdetail.RecommendToProduceDate;
+ jobDetailInputdetail.TransferLibToQty = jobDetailInputdetail.RecommendToQty;
+ jobDetailInputdetail.TransferLibToSupplierBatch = jobDetailInputdetail.RecommendToSupplierBatch;
+ jobDetailInputdetail.TransferLibToWarehouseCode = jobDetailInputdetail.RecommendToWarehouseCode;
+ }
+ else
+ {
+ input.JobStatus = EnumJobStatus.Wait;
+ }
}
[HttpPost("cancel-by-request/{injectionNumber}")]
public virtual async Task CancelByMaterialRequestAsync(string injectionNumber)
{
- var entities = await _repository.GetListAsync(p => p.InjectionRequestNumber == injectionNumber).ConfigureAwait(false);
+ var entities = await _repository.GetListAsync(p => p.InjectionRequestNumber == injectionNumber)
+ .ConfigureAwait(false);
foreach (var entity in entities)
{
await _injectionJobManager.CancelAsync(entity).ConfigureAwait(false);
}
}
-
+
[HttpPost("invalid")]
public override async Task CancelAsync(Guid id)
{
@@ -82,81 +136,64 @@ public class InjectionJobAppService
if (injectionJob == null)
{
throw new UserFriendlyException($"未找到ID为 {id} 的任务");
- }
-
- await _injectionJobManager.CancelAsync(injectionJob).ConfigureAwait(false);
-
- }
-
- ///
- /// 根据叫料请求类型获取发料任务
- ///
- ///
- ///
- /// 叫料请求类型:
- /// 人工拉动:Issue_Manual;
- /// 线边拉动:Issue_WIP;
- ///
- ///
- ///
- ///
- [HttpPost("by-type/{requestType}")]
- public virtual async Task> GetListByTypeAsync(SfsJobRequestInputBase requestInput,
- string requestType, bool includeDetails = false, CancellationToken cancellationToken = default)
- {
- Expression> expression = p => p.RequestType == requestType;
- if (requestInput.Condition.Filters?.Count > 0)
- {
- expression = expression.And(requestInput.Condition.Filters.ToLambda());
}
- return await GetPagedListAsync(expression, requestInput.SkipCount, requestInput.MaxResultCount,
- requestInput.Sorting, includeDetails, cancellationToken).ConfigureAwait(false);
-
+ await _injectionJobManager.CancelAsync(injectionJob).ConfigureAwait(false);
}
[HttpPost("by-request-number/{requestNumber}")]
public virtual async Task> GetByRequestNumberAsync(string requestNumber)
{
- var entitys = await _repository.GetListAsync(p => p.InjectionRequestNumber == requestNumber).ConfigureAwait(false);
+ var entitys = await _repository.GetListAsync(p => p.InjectionRequestNumber == requestNumber)
+ .ConfigureAwait(false);
return ObjectMapper.Map, List>(entitys);
}
- ///
- /// 保存拆箱时涉及的明细修改
- ///
- ///
- [HttpPost("save-detail-split-packing")]
- public virtual async Task SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input)
- {
- var job = await _repository.FindAsync(p => p.Number == input.Number).ConfigureAwait(false);
- InjectionJobDetail detail = job.Details.FirstOrDefault(p => p.RecommendPackingCode == input.FromPackingCode ); /*&& p.HandledQty == input.FromQty*/
- if (detail == null)
- {
- //throw new UserFriendlyException($"根据HandledPackingCode={input.FromPackingCode}取InjectionJobDetail表为空!");
- throw new UserFriendlyException($"根据RecommendPackingCode={input.FromPackingCode}取InjectionJobDetail表为空!");
- }
- //插入目标箱
- var newDetail = CommonHelper.CloneObj(detail);
- newDetail.SetId(GuidGenerator.Create());
- newDetail.RecommendPackingCode = input.ToPackingCode;
- newDetail.RecommendQty = input.ToQty;
- newDetail.HandledPackingCode = detail.HandledPackingCode.HasValue() ? input.ToPackingCode : null; //源实际实际箱码有值,则新记录实际箱码有值
- newDetail.HandledQty = detail.HandledQty > 0 ? input.ToQty : 0;
- //newDetail.CreationTime = CommonHelper.CurTime;
- job.Details.Add(newDetail);
- //修改源箱
- detail.RecommendQty = input.FromQty - input.ToQty;
- detail.HandledQty = detail.HandledQty > 0 ? input.FromQty - input.ToQty : 0;
- var entity = await _repository.UpdateAsync(job).ConfigureAwait(false);
- var ret = ObjectMapper.Map(entity);
- return ret;
- }
-
- [HttpPost("Do-Call-Back")]
- public Tuple DoTransferLibCallback(string businessType, string requestNum, string jobNum)
+ [HttpPost("do-call-back")]
+ public async Task> DoTransferLibCallbackAsync(string businessType, string requestNum, string jobNum)
{
- throw new NotImplementedException();
+ var job = await _repository.FindAsync(p => p.Number == jobNum).ConfigureAwait(false);
+
+ //todo 等云峰写好换成真实的
+ var transferLibJobDto= await _transferLibJobAppService.GetByNumberAsync("AAA").ConfigureAwait(false);
+ var transferLibNote = new TransferLibNote();
+
+ var transferLibNoteDetail=transferLibNote.Details.First();
+
+ var jobDetail = job.Details.First();
+ job.JobStatus = EnumJobStatus.Open;
+
+ jobDetail.TransferLibFromArriveDate = transferLibNoteDetail.HandledFromArriveDate;
+ jobDetail.TransferLibFromContainerCode=transferLibNoteDetail.HandledFromContainerCode;
+ jobDetail.TransferLibFromExpireDate=transferLibNoteDetail.HandledFromExpireDate;
+ jobDetail.TransferLibFromLocationArea=transferLibNoteDetail.HandledFromLocationArea;
+ jobDetail.TransferLibFromLocationCode=transferLibNoteDetail.HandledFromLocationCode;
+ jobDetail.TransferLibFromLocationErpCode = transferLibNoteDetail.HandledFromLocationErpCode;
+ jobDetail.TransferLibFromLocationGroup=transferLibNoteDetail.HandledFromLocationGroup;
+ jobDetail.TransferLibFromLot=transferLibNoteDetail.HandledFromLot;
+ jobDetail.TransferLibFromPackingCode = transferLibNoteDetail.HandledFromPackingCode;
+ jobDetail.TransferLibFromProduceDate = transferLibNoteDetail.HandledFromProduceDate;
+ jobDetail.TransferLibFromQty=transferLibNoteDetail.HandledFromQty;
+ jobDetail.TransferLibFromSupplierBatch=transferLibNoteDetail.HandledFromSupplierBatch;
+ jobDetail.TransferLibFromWarehouseCode = transferLibNoteDetail.HandledFromWarehouseCode;
+
+ jobDetail.TransferLibToArriveDate = transferLibNoteDetail.HandledToArriveDate;
+ jobDetail.TransferLibToContainerCode = transferLibNoteDetail.HandledToContainerCode;
+ jobDetail.TransferLibToExpireDate = transferLibNoteDetail.HandledToExpireDate;
+ jobDetail.TransferLibToLocationArea = transferLibNoteDetail.HandledToLocationArea;
+ jobDetail.TransferLibToLocationCode = transferLibNoteDetail.HandledToLocationCode;
+ jobDetail.TransferLibToLocationErpCode = transferLibNoteDetail.HandledToLocationErpCode;
+ jobDetail.TransferLibToLocationGroup = transferLibNoteDetail.HandledToLocationGroup;
+ jobDetail.TransferLibToLot = transferLibNoteDetail.HandledToLot;
+ jobDetail.TransferLibToPackingCode = transferLibNoteDetail.HandledToPackingCode;
+ jobDetail.TransferLibToProduceDate = transferLibNoteDetail.HandledToProduceDate;
+ jobDetail.TransferLibToQty = transferLibNoteDetail.HandledToQty;
+ jobDetail.TransferLibToSupplierBatch = transferLibNoteDetail.HandledToSupplierBatch;
+ jobDetail.TransferLibToWarehouseCode = transferLibNoteDetail.HandledToWarehouseCode;
+
+ await _repository.UpdateAsync(job).ConfigureAwait(false);
+
+ return new Tuple(true,"s");
}
[HttpPost("test")]
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs
index 241b1b062..76d29157b 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs
@@ -8,6 +8,10 @@ using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
+using Volo.Abp.Domain.Entities;
+using static Volo.Abp.Identity.Settings.IdentitySettingNames;
+using Volo.Abp.Users;
+using Volo.Abp.Domain.Repositories;
namespace Win_in.Sfs.Wms.Store.Application;
@@ -19,13 +23,14 @@ public class ProductRecycleJobAppService
, IProductRecycleJobAppService
{
private readonly IProductRecycleJobManager _productRecycleJobManager;
-
+ private readonly IProductRecycleJobRepository _repository;
private readonly IProductRecycleRequestAppService _productRecycleRequestAppService;
public ProductRecycleJobAppService(
IProductRecycleJobRepository repository, IProductRecycleJobManager productRecycleJobManager,
IProductRecycleRequestAppService productRecycleRequestAppService)
: base(repository, productRecycleJobManager)
{
+ _repository = repository;
_productRecycleJobManager = productRecycleJobManager;
_productRecycleRequestAppService = productRecycleRequestAppService;
}
@@ -37,7 +42,7 @@ public class ProductRecycleJobAppService
///
[HttpPost("handle/{id}")]
[UnitOfWork]
- public override async Task CompleteAsync(Guid id, ProductRecycleJobDTO dto)
+ public override async Task CompleteAsync(Guid id, ProductRecycleJobDTO dto)
{
var handleEntity = ObjectMapper.Map(dto);
var job = await _repository.GetAsync(id).ConfigureAwait(false);
@@ -48,11 +53,27 @@ public class ProductRecycleJobAppService
var handleResult = await _productRecycleJobManager.CompleteAsync(handleEntity, job, CurrentUser).ConfigureAwait(false);
//判断申请是否执行完成
- if(job.JobStatus== EnumJobStatus.Done)
+ if (job.JobStatus == EnumJobStatus.Done)
{
- await _productRecycleRequestAppService.UpdateStatusByNumberAsync(job.RequestNumber).ConfigureAwait(false);
+ await _productRecycleRequestAppService.UpdateStatusByNumberAsync(job.RequestNumber).ConfigureAwait(false);
}
var handleDto = ObjectMapper.Map(handleResult);
return handleDto;
}
+ ///
+ /// 根据请求号完成任务
+ ///
+ ///
+ ///
+ [HttpPost("complete-by-request-number")]
+ public async Task CompleteByRequestNumberAsync(string number)
+ {
+ var entity = await _repository.FirstOrDefaultAsync(r => r.RequestNumber == number).ConfigureAwait(false);
+ await entity.CompleteAsync(CurrentUser.Id, CurrentUser.Name, Clock.Now).ConfigureAwait(false);
+
+ var updatejob = await _repository.UpdateAsync(entity).ConfigureAwait(false);
+ var dto = ObjectMapper.Map(updatejob);
+
+ return dto;
+ }
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs
index 16fc0eacd..f967ab3f7 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs
@@ -35,13 +35,8 @@ public class TransferLibJobAppService
///
public override async Task CompleteAsync(Guid id, TransferLibJobDTO dto)
{
- var str = "Win_in.Sfs.Wms.Store.Application.InjectionJobAppService";
- var implementation=_serviceProvider.GetService(Type.GetType("Win_in.Sfs.Wms.Store.Application.InjectionJobAppService"));
- MethodInfo methodInfo=implementation.GetType().GetMethod("Test");
- methodInfo.Invoke(implementation, null);
-
+ //var str = "Win_in.Sfs.Wms.Store.Application.InjectionJobAppService";
string methodPrefix = "TransferLibJobAppService.CompleteAsync - ";
-
if (dto.CallServerName.IsNullOrEmpty())
{
throw new UserFriendlyException($"{methodPrefix}CallServerName 不能为空");
@@ -62,27 +57,47 @@ public class TransferLibJobAppService
var ret = await base.CompleteAsync(id, dto).ConfigureAwait(false);
if (ret != null)
{
- var assembly = Assembly.GetExecutingAssembly();
- var ty = assembly.GetType(dto.CallServerName);
+ Type ty = Type.GetType(dto.CallServerName);
if (ty == null)
{
throw new UserFriendlyException($"{methodPrefix}没有找到类型为{dto.CallServerName}的对象");
}
- var instance = Activator.CreateInstance(ty);
+ var instance = _serviceProvider.GetService(ty);
if (instance == null)
{
throw new UserFriendlyException($"{methodPrefix}类型为{dto.CallServerName}的对象创建失败");
}
- ITransferLibCallback transferLibCallback = (ITransferLibCallback)instance;
+ ITransferLibCallback transferLibCallback = (Win_in.Sfs.Wms.Store.Notes.ITransferLibCallback)instance;
if (transferLibCallback == null)
{
throw new UserFriendlyException($"{methodPrefix}类型为{dto.CallServerName}的对象没有实现ITransferLibCallback接口");
}
- Tuple callbackRet = transferLibCallback.DoTransferLibCallback(dto.CallServerName, dto.CallRequestNumber, dto.CallJobNumber);
+ Tuple callbackRet = await transferLibCallback.DoTransferLibCallbackAsync(dto.CallServerName, dto.CallRequestNumber, dto.CallJobNumber);
if (callbackRet != null && callbackRet.Item1 == false)
{
throw new UserFriendlyException($"{methodPrefix}执行回调服务{dto.CallServerName}出错,返回错误信息:{callbackRet.Item2}");
}
+ //var assembly = Assembly.GetExecutingAssembly();
+ //var ty = assembly.GetType(dto.CallServerName);
+ //if (ty == null)
+ //{
+ // throw new UserFriendlyException($"{methodPrefix}没有找到类型为{dto.CallServerName}的对象");
+ //}
+ //var instance = Activator.CreateInstance(ty);
+ //if (instance == null)
+ //{
+ // throw new UserFriendlyException($"{methodPrefix}类型为{dto.CallServerName}的对象创建失败");
+ //}
+ //ITransferLibCallback transferLibCallback = (ITransferLibCallback)instance;
+ //if (transferLibCallback == null)
+ //{
+ // throw new UserFriendlyException($"{methodPrefix}类型为{dto.CallServerName}的对象没有实现ITransferLibCallback接口");
+ //}
+ //Tuple callbackRet = transferLibCallback.DoTransferLibCallback(dto.CallServerName, dto.CallRequestNumber, dto.CallJobNumber);
+ //if (callbackRet != null && callbackRet.Item1 == false)
+ //{
+ // throw new UserFriendlyException($"{methodPrefix}执行回调服务{dto.CallServerName}出错,返回错误信息:{callbackRet.Item2}");
+ //}
}
return ret;
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/ITransferLibCallback.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/ITransferLibCallback.cs
index cc83e20e8..b079a9ad9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/ITransferLibCallback.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/ITransferLibCallback.cs
@@ -3,11 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Win_in.Sfs.Wms.Inventory.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Notes;
public interface ITransferLibCallback
{
- Tuple DoTransferLibCallback(string businessType, string requestNum, string jobNum);
+ Task> DoTransferLibCallbackAsync(string businessType, string requestNum, string jobNum);
}
public class TestTransferLibCallback : ITransferLibCallback
@@ -16,7 +17,8 @@ public class TestTransferLibCallback : ITransferLibCallback
{
}
- public Tuple DoTransferLibCallback(string businessType, string requestNum, string jobNum)
+ public async Task> DoTransferLibCallbackAsync(string businessType, string requestNum,
+ string jobNum)
{
return Tuple.Create(true, "调用新移库回调方法成功!");
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/TransferLibNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/TransferLibNoteAppService.cs
index 2467421e4..f8dc9620d 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/TransferLibNoteAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/TransferLibNoteAppService.cs
@@ -67,269 +67,7 @@ public class TransferLibNoteAppService : SfsStoreWithDetailsAppServiceBase
_issueJobAppService = issueJobAppService;
_expectOutAppService = expectOutAppService;
}
-
- #region 东阳使用
-
- ///
- /// 用来重写 导入数据时可以加工数据
- ///
- ///
- ///
- protected override async Task> ImportProcessingEntityAsync(
- Dictionary dictionary)
- {
- var addList = dictionary.Where(p => p.Value == EntityState.Added).Select(p => p.Key);
-
- foreach (var transferLibNote in addList)
- {
- if (transferLibNote.Type == EnumTransSubType.Transfer_Inside.GetDisplayName()) //储位内调拨
- {
- transferLibNote.Type = EnumTransSubType.Transfer_Inside.ToString();//重点 需要转换
- foreach (var detail in transferLibNote.Details)
- {
- var balanceDto = await _balanceAppService.GetByItemLocationAndPackingAsync(detail.FromPackingCode,
- detail.ItemCode, detail.FromLocationCode).ConfigureAwait(false);
- var toLocationDto = await _locationAppService.GetByCodeAsync(detail.ToLocationCode).ConfigureAwait(false);
- var fromLocationDto = await _locationAppService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false);
-
- CheckLocation(toLocationDto, detail);
- CheckFromLocation(fromLocationDto, detail);
- if (toLocationDto.Type != fromLocationDto.Type)
- {
- throw new UserFriendlyException($"来源库位与目标库位类型不一致");
- }
-
- detail.OnTheWayLocationCode = bool.FalseString;
- detail.ItemCode=balanceDto.ItemCode;
- detail.ArriveDate=balanceDto.ArriveDate;
- detail.ItemDesc1=balanceDto.ItemDesc1;
- detail.ItemDesc2=balanceDto.ItemDesc2;
- detail.ItemName=balanceDto.ItemName;
- detail.ProduceDate=balanceDto.ProduceDate;
- detail.Qty=balanceDto.Qty;
- detail.Uom=balanceDto.Uom;
- detail.ExpireDate=balanceDto.ExpireDate;
- detail.StdPackQty=balanceDto.StdPackQty;
- detail.SupplierBatch=balanceDto.SupplierBatch;
-
- detail.FromLocationArea = balanceDto.LocationArea;
- detail.FromContainerCode = balanceDto.ContainerCode;
- detail.FromLocationErpCode = balanceDto.LocationErpCode;
- detail.FromLocationGroup = balanceDto.LocationGroup;
- detail.FromPackingCode = balanceDto.PackingCode;
- detail.FromLocationArea = balanceDto.LocationArea;
- detail.FromStatus = balanceDto.Status;
- detail.FromWarehouseCode = balanceDto.WarehouseCode;
- detail.FromLot = balanceDto.Lot;
-
- detail.ToLocationArea = toLocationDto.AreaCode;
- detail.ToLocationErpCode = toLocationDto.ErpLocationCode;
- detail.ToLocationGroup = toLocationDto.LocationGroupCode;
- detail.ToWarehouseCode = toLocationDto.WarehouseCode;
- detail.ToContainerCode = balanceDto.ContainerCode;
- detail.ToPackingCode = balanceDto.PackingCode;
- detail.ToLocationArea = balanceDto.LocationArea;
- detail.ToStatus = balanceDto.Status;
- detail.ToLot = balanceDto.Lot;
- }
- }
- }
-
- return dictionary;
- }
-
- ///
- /// 拆箱
- ///
- ///
- ///
- [HttpPost("split-packing")]
- public async Task SplitPackingAsync(TransferLibNoteEditInput transferLibNoteEditInput)
- {
- //插入拆箱记录表
- await WriteSplitPackingRec(transferLibNoteEditInput).ConfigureAwait(false);
- //更新库存
- transferLibNoteEditInput.Type = EnumTransSubType.Transfer_SplitPacking.ToString();
- return await CreateAsync(transferLibNoteEditInput).ConfigureAwait(false);
- }
-
- #region 校验
- private void CheckLocation(LocationDTO locationDto, TransferLibNoteDetail detail)
- {
- if (locationDto == null)
- {
- throw new UserFriendlyException($"库位代码为【{detail.ToLocationCode}】不存在");
- }
- }
- private void CheckFromLocation(LocationDTO locationDto, TransferLibNoteDetail detail)
- {
- if (locationDto == null)
- {
- throw new UserFriendlyException($"库位代码为【{detail.FromLocationCode}】不存在");
- }
- }
- #endregion
-
- ///
- /// 按条件获取拆箱的分页列表
- /// request sample
- /// {
- /// "maxResultCount": 1000,
- /// "skipCount": 0,
- /// "sorting": "",
- /// "condition": { "filters": []}
- /// }
- ///
- ///
- ///
- ///
- ///
- [HttpPost("get-split-packing-list")]
- public virtual async Task> GetSplitPackingTransferListAsync(
- SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default)
- {
- return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_SplitPacking, includeDetails,
- cancellationToken).ConfigureAwait(false);
- }
-
- ///
- /// 按条件获取线边调拨的分页列表
- /// request sample
- /// {
- /// "maxResultCount": 1000,
- /// "skipCount": 0,
- /// "sorting": "",
- /// "condition": { "filters": []}
- /// }
- ///
- ///
- ///
- ///
- ///
- [HttpPost("get-wip-list")]
- public virtual async Task> GetWipTransferListAsync(
- SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default)
- {
- return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_WIP, includeDetails,
- cancellationToken).ConfigureAwait(false);
- }
-
- ///
- /// 按条件获取储位间调拨的分页列表
- /// request sample
- /// {
- /// "maxResultCount": 1000,
- /// "skipCount": 0,
- /// "sorting": "",
- /// "condition": { "filters": []}
- /// }
- ///
- ///
- ///
- ///
- ///
- [HttpPost("get-erp-loc-list")]
- public virtual async Task> GetAreaTransferListAsync(
- SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default)
- {
- return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_Area, includeDetails,
- cancellationToken).ConfigureAwait(false);
- }
-
- ///
- /// 按条件获取储位内移库的分页列表
- /// request sample
- /// {
- /// "maxResultCount": 1000,
- /// "skipCount": 0,
- /// "sorting": "",
- /// "condition": { "filters": []}
- /// }
- ///
- ///
- ///
- ///
- ///
- [HttpPost("get-inside-list")]
- public virtual async Task> GetInsideTransferListAsync(
- SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default)
- {
- return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_Inside, includeDetails,
- cancellationToken).ConfigureAwait(false);
- }
-
- ///
- /// 按条件获取客户储位间调拨的分页列表
- /// request sample
- /// {
- /// "maxResultCount": 1000,
- /// "skipCount": 0,
- /// "sorting": "",
- /// "condition": { "filters": []}
- /// }
- ///
- ///
- ///
- ///
- ///
- [HttpPost("get-custom-loc-list")]
- public virtual async Task> GetCustomerTransferListAsync(
- SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default)
- {
- return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_Customer, includeDetails,
- cancellationToken).ConfigureAwait(false);
- }
-
- ///
- /// 按条件获取储位间调拨的分页列表
- /// request sample
- /// {
- /// "maxResultCount": 1000,
- /// "skipCount": 0,
- /// "sorting": "",
- /// "condition": { "filters": []}
- /// }
- ///
- ///
- ///
- ///
- ///
- [HttpPost("get-diff-erp-loc-list")]
- public virtual async Task> GetListForDiffERPLocAsync(
- SfsStoreRequestInputBase sfsRequestDTO, bool includeDetails = false,
- CancellationToken cancellationToken = default)
- {
- return await GetSubTypeListAsync(sfsRequestDTO, EnumTransSubType.Transfer_Warehouse, includeDetails,
- cancellationToken).ConfigureAwait(false);
- }
-
- private async Task> GetSubTypeListAsync(SfsStoreRequestInputBase sfsRequestDTO,
- EnumTransSubType type, bool includeDetails = false,
- CancellationToken cancellationToken = default)
- {
- sfsRequestDTO.Condition.Filters.Add(new Filter
- {
- Action = "==",
- Column = "Type",
- Logic = EnumFilterLogic.And.ToString(),
- Value = type.ToString()
- });
-
- var expression = sfsRequestDTO.Condition.Filters?.Count > 0
- ? sfsRequestDTO.Condition.Filters.ToLambda()
- : p => true;
-
- return await GetPagedListAsync(expression, sfsRequestDTO.SkipCount, sfsRequestDTO.MaxResultCount,
- sfsRequestDTO.Sorting, includeDetails, cancellationToken).ConfigureAwait(false);
- }
-
- #endregion
-
+
///
/// 库存转移
///
@@ -380,133 +118,4 @@ public class TransferLibNoteAppService : SfsStoreWithDetailsAppServiceBase
var dto = ObjectMapper.Map(entity);
return dto;
}
-
- ///
- /// 插入拆箱记录表
- ///
- ///
- ///
- private async Task WriteSplitPackingRec(TransferLibNoteEditInput transferLibNoteEditInput)
- {
- List recLst = new List();
- foreach (var inputDetail in transferLibNoteEditInput.Details)
- {
- SplitPackingRecEditInput packRec = new SplitPackingRecEditInput();
- packRec.OprType = OprTypeEnum.SplitBox;
- packRec.FromPackingCode = inputDetail.FromPackingCode;
- //packRec.FromTopPackingCode = inputDetail.;
- packRec.FromStdPackQty = inputDetail.StdPackQty;
- packRec.FromUom = inputDetail.Uom;
- packRec.FromQty = inputDetail.Qty;
- packRec.ToPackingCode = inputDetail.ToPackingCode;
- //packRec.ToTopPackingCode = inputDetail.;
- packRec.ToStdPackQty = inputDetail.StdPackQty;
- packRec.ToUom = inputDetail.Uom;
- packRec.ToQty = inputDetail.Qty;
- packRec.ItemCode = inputDetail.ItemCode;
- packRec.ItemName = inputDetail.ItemName;
- packRec.ItemDesc1 = inputDetail.ItemDesc1;
- packRec.ItemDesc2 = inputDetail.ItemDesc2;
- packRec.FromLot = inputDetail.FromLot;
- packRec.ToLot = inputDetail.ToLot;
- //packRec.PurchaseInfo_PoNumber = inputDetail.; // 采购订单
- //packRec.PurchaseInfo_AsnNumber = inputDetail.; //供应商发货单
- //packRec.ArrivalNoticNumber = inputDetail.; //到货通知
- //packRec.TaskOrderNumber = inputDetail.; //任务单
- //packRec.ReceiptRecNumber = inputDetail.; //收货记录单
- //packRec.PutOnShelfNumber = inputDetail.; //上架单
- recLst.Add(packRec);
- }
- var ret = await _splitPackingRecAppService.BatchInsertAsync(recLst).ConfigureAwait(false);
- return ret;
- }
-
- ///
- /// 采购收货拆箱,同时更新、插入PurchaseReceipt任务表、申请表
- ///
- ///
- ///
- ///
- [HttpPost("split-packing-purchase-receipt")]
- public async Task SplitPacking_PurchaseReceiptAsync(TransferLibNoteEditInput transferLibNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput)
- {
- var jobRet = await _purchaseReceiptJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput).ConfigureAwait(false);
- var requestRet = await _purchaseReceiptRequestAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput, jobRet.PurchaseReceiptRequestNumber).ConfigureAwait(false);
- bool ret = await WriteSplitPackingRec(transferLibNoteEditInput).ConfigureAwait(false); //采购收货-目检-拆箱时,还没有入库,不涉及库存操作
- return ret;
- }
-
- ///
- /// 质检拆箱,同时更新、插入Inspect任务表(不更新申请表)
- ///
- ///
- ///
- ///
- [HttpPost("split-packing-inspect")]
- public async Task SplitPacking_InspectAsync(TransferLibNoteEditInput transferLibNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput)
- {
- //SplitPacking_UpdateDetailInput newInput = new SplitPacking_UpdateDetailInput();
- //newInput.Number = updateJobDetailInput.Number;
- //newInput.FromPackingCode = updateJobDetailInput.FromPackingCode;
- //newInput.FromQty = updateJobDetailInput.FromQty;
- //newInput.ToPackingCode = updateJobDetailInput.ToPackingCode;
- //newInput.ToQty = updateJobDetailInput.ToQty;
- //newInput.FromLocationCode = transferLibNoteEditInput.Details[0].FromLocationCode;
- //newInput.ToLocationCode = transferLibNoteEditInput.Details[0].ToLocationCode;
- //var expectOutRet = await _expectOutAppService.SaveDetail_SplitPackingAsync(newInput).ConfigureAwait(false);
- var jobRet = await _inspectJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput).ConfigureAwait(false);
- var ret = await SplitPackingAsync(transferLibNoteEditInput).ConfigureAwait(false); //库存操作
- return ret;
- }
-
- ///
- /// 发料拆箱,同时更新、插入Inspect任务表(没有找到申请表//??)
- ///
- ///
- ///
- ///
- [HttpPost("split-packing-issue")]
- public async Task SplitPacking_IssueAsync(TransferLibNoteEditInput transferLibNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInput updateJobDetailInput)
- {
- SplitPacking_UpdateDetailInput newInput = new SplitPacking_UpdateDetailInput();
- newInput.Number = updateJobDetailInput.Number;
- newInput.FromPackingCode = updateJobDetailInput.FromPackingCode;
- newInput.FromQty = updateJobDetailInput.FromQty;
- newInput.ToPackingCode = updateJobDetailInput.ToPackingCode;
- newInput.ToQty = updateJobDetailInput.ToQty;
- newInput.FromLocationCode = transferLibNoteEditInput.Details[0].FromLocationCode;
- newInput.ToLocationCode = transferLibNoteEditInput.Details[0].ToLocationCode;
- var expectOutRet = await _expectOutAppService.SaveDetail_SplitPackingAsync(newInput).ConfigureAwait(false);
- var jobRet = await _issueJobAppService.SaveDetail_SplitPackingAsync(updateJobDetailInput).ConfigureAwait(false);
- var ret = await SplitPackingAsync(transferLibNoteEditInput).ConfigureAwait(false); //库存操作
- return ret;
- }
-
- ///
- /// 拆箱,预计出表存在数据时不允许办理
- ///
- ///
- ///
- ///
- [HttpPost("split-packing-check-expect-out")]
- public async Task SplitPackingCheckExpectOutAsync(TransferLibNoteEditInput transferLibNoteEditInput, [FromQuery] SplitPacking_UpdateJobDetailInputBase updateJobDetailInputBase)
- {
- var detailObj = transferLibNoteEditInput.Details[0];
- SplitPacking_UpdateDetailInput newInput = new SplitPacking_UpdateDetailInput();
- newInput.Number = updateJobDetailInputBase.Number;
- newInput.FromPackingCode = detailObj.FromPackingCode;
- newInput.FromQty = detailObj.Qty;
- newInput.ToPackingCode = detailObj.ToPackingCode;
- newInput.ToQty = detailObj.Qty;
- newInput.FromLocationCode = detailObj.FromLocationCode;
- newInput.ToLocationCode = detailObj.ToLocationCode;
- var expectOutLst = await _expectOutAppService.GetListByJobNumberAsync(newInput).ConfigureAwait(false);
- if (expectOutLst.Count > 0)
- {
- throw new UserFriendlyException($"预计出表存在数据,不允许办理拆箱:JobNumber={newInput.Number}|PackingCode={newInput.FromPackingCode}|Qty={newInput.FromQty}|LocationCode={newInput.FromLocationCode}");
- }
- var ret = await SplitPackingAsync(transferLibNoteEditInput).ConfigureAwait(false);
- return ret;
-
- }
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/TransferLibNoteMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/TransferLibNoteMapperProfile.cs
index 2a7587d42..85f7c41e2 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/TransferLibNoteMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferLibNotes/TransferLibNoteMapperProfile.cs
@@ -38,34 +38,6 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.Id);
CreateMap()
- .IgnoreAuditedObjectProperties()
- .ForMember(x => x.ToPackingCode, y => y.MapFrom(d => d.PackingCode))
- .ForMember(x => x.FromPackingCode, y => y.MapFrom(d => d.PackingCode))
- .ForMember(x => x.FromStatus, y => y.MapFrom(d => d.Status))
- .ForMember(x => x.ToStatus, y => y.MapFrom(d => d.Status))
- .Ignore(x => x.FromLocationGroup)
- .Ignore(x => x.FromLocationArea)
- .Ignore(x => x.FromLocationErpCode)
- .Ignore(x => x.FromWarehouseCode)
- .Ignore(x => x.ToLocationArea)
- .Ignore(x => x.ToLocationGroup)
- .Ignore(x => x.ToLocationErpCode)
- .Ignore(x => x.ToWarehouseCode)
- .Ignore(x => x.Reason)
- .Ignore(x => x.SupplierBatch).Ignore(x => x.ArriveDate).Ignore(x => x.ProduceDate).Ignore(x => x.ExpireDate)
- .Ignore(x => x.Remark)
- .Ignore(x => x.ItemName)
- .Ignore(x => x.ItemDesc1)
- .Ignore(x => x.ItemDesc2)
- .Ignore(x => x.FromContainerCode)
- .Ignore(x => x.ToContainerCode)
- .Ignore(x => x.FromLot)
- .Ignore(x => x.ToLot)
- .Ignore(x => x.StdPackQty)
- .Ignore(x => x.Uom)
- .Ignore(x => x.MasterID)
- .Ignore(x => x.TenantId)
- .Ignore(x => x.Number)
- .Ignore(x => x.Id);
+ .IgnoreAuditedObjectProperties();
}
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/DeliverRequests/DeliverRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/DeliverRequests/DeliverRequestAppService.cs
index 39849fe91..1ecfa8ea9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/DeliverRequests/DeliverRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/DeliverRequests/DeliverRequestAppService.cs
@@ -248,7 +248,9 @@ public class DeliverRequestAppService :
private async Task SetRequestAutoPropertiesAsync(DeliverRequest entity)
{
+ //普通件
var transType = EnumTransSubType.Deliver_Standard;
+ //jis件
if (entity.DeliverRequestType == EnumDeliverRequestType.FIS)
{
transType = EnumTransSubType.Deliver_FIS;
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs
index 05fd60fef..3acfc1ae7 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/CoatingMaterialRequests/CoatingMaterialRequestAppService.cs
@@ -218,22 +218,7 @@ public class CoatingMaterialRequestAppService : SfsStoreRequestAppServiceBase(input);
var result = await _injectionRequestManager.CreateByNumberAsync(entity).ConfigureAwait(false);
@@ -115,6 +115,22 @@ public class InjectionRequestAppService : SfsStoreRequestAppServiceBase
+ /// 赋值Request业务属性
+ ///
+ ///
+ ///
+ private async Task SetRequestAutoPropertiesAsync(InjectionRequestEditInput entity)
+ {
+ var tranType = await _transactionTypeAppService.GetByTransTypeAsync(EnumTransType.Issue, EnumTransSubType.None).ConfigureAwait(false);
+ Check.NotNull(tranType, "事务类型", "事务类型不存在");
+ entity.AutoSubmit = tranType.AutoSubmitRequest;
+ entity.AutoAgree = tranType.AutoAgreeRequest;
+ entity.AutoHandle = tranType.AutoHandleRequest;
+ entity.AutoCompleteJob = tranType.AutoCompleteJob;
+ entity.DirectCreateNote = tranType.DirectCreateNote;
+ }
+
[HttpPost("create-and-handle")]
public async Task CreateAndHandleAsync(InjectionRequestEditInput input)
{
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAutoMapperProfile.cs
index 64fd091c9..cdbf56567 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAutoMapperProfile.cs
@@ -26,7 +26,6 @@ public partial class StoreApplicationAutoMapperProfile : Profile
CreateMap()
.IgnoreAuditedObjectProperties()
.ForMember(x => x.Type, y => y.MapFrom(t => t.Type.ToString()))
- .Ignore(x => x.ProdLine)
.Ignore(x => x.UseOnTheWayLocation)
.Ignore(x => x.Details)
.Ignore(x => x.Remark)
@@ -47,8 +46,6 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.ToLocationGroup)
.Ignore(x => x.ItemName).Ignore(x => x.ItemDesc1).Ignore(x => x.ItemDesc2)
.Ignore(x => x.ProdLine)
- .Ignore(x => x.WorkStation)
- .Ignore(x => x.ExpiredTime)
.Ignore(x => x.IssuedQty)
.Ignore(x => x.ReceivedQty)
.Ignore(x => x.ToBeIssuedQty)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs
index ec28cb71a..25339120f 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs
@@ -214,22 +214,7 @@ public class MaterialRequestAppService : SfsStoreRequestAppServiceBase realityBalance)
+ {
+ throw new UserFriendlyException($"{detailInput.ItemCode} 物品的库存为 {realityBalance} ,库存不够");
+ }
detailInput.ProdLine = detailInput.ToLocationCode;
detailInput.ToLocationErpCode = toLocationDto.ErpLocationCode;
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAutoMapperProfile.cs
index 856be3ddf..e8965b174 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ThirdLocationRequests/ThirdLocationRequestAutoMapperProfile.cs
@@ -42,8 +42,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.Remark);
CreateMap()
- .IgnoreAuditedObjectProperties()
- .ForMember(x => x.Status, y => y.MapFrom(t => EnumStatus.Open))
+ .IgnoreAuditedObjectProperties()
.Ignore(x => x.ToLocationErpCode)
.Ignore(x => x.ToWarehouseCode)
.Ignore(x => x.ToLocationArea)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestAppService.cs
index 1f30e5791..5ba4ea5cd 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestAppService.cs
@@ -106,51 +106,51 @@ public class TransferLibRequestAppService : SfsStoreRequestAppServiceBase
foreach (var detail in transferLibRequest.Details)
{
- var balanceDto = await _balanceAppService.GetByItemLocationAndPackingAsync(detail.FromPackingCode,
- detail.ItemCode, detail.FromLocationCode).ConfigureAwait(false);
- var toLocationDto = await _locationAppService.GetByCodeAsync(detail.ToLocationCode)
+ var balanceDto = await _balanceAppService.GetByItemLocationAndPackingAsync(detail.RecommendFromPackingCode,
+ detail.ItemCode, detail.RecommendFromLocationCode).ConfigureAwait(false);
+ var toLocationDto = await _locationAppService.GetByCodeAsync(detail.RecommendToLocationCode)
.ConfigureAwait(false);
- var fromLocationDto = await _locationAppService.GetByCodeAsync(detail.FromLocationCode)
+ var fromLocationDto = await _locationAppService.GetByCodeAsync(detail.RecommendFromLocationCode)
.ConfigureAwait(false);
- CheckLocation(toLocationDto, detail.ToLocationCode);
- CheckLocation(fromLocationDto, detail.FromLocationCode);
+ CheckLocation(toLocationDto, detail.RecommendToLocationCode);
+ CheckLocation(fromLocationDto, detail.RecommendFromLocationCode);
if (toLocationDto.Type != fromLocationDto.Type)
{
throw new UserFriendlyException($"来源库位与目标库位类型不一致");
}
- detail.ItemCode = balanceDto.ItemCode;
- detail.ArriveDate = balanceDto.ArriveDate;
- detail.ItemDesc1 = balanceDto.ItemDesc1;
- detail.ItemDesc2 = balanceDto.ItemDesc2;
- detail.ItemName = balanceDto.ItemName;
- detail.ProduceDate = balanceDto.ProduceDate;
- detail.Qty = detail.Qty;
- detail.Uom = balanceDto.Uom;
- detail.ExpireDate = balanceDto.ExpireDate;
- detail.StdPackQty = balanceDto.StdPackQty;
- detail.SupplierBatch = balanceDto.SupplierBatch;
-
- detail.FromLocationArea = balanceDto.LocationArea;
- detail.FromContainerCode = balanceDto.ContainerCode;
- detail.FromLocationErpCode = balanceDto.LocationErpCode;
- detail.FromLocationGroup = balanceDto.LocationGroup;
- detail.FromPackingCode = balanceDto.PackingCode;
- detail.FromLocationArea = balanceDto.LocationArea;
- detail.FromStatus = balanceDto.Status;
- detail.FromWarehouseCode = balanceDto.WarehouseCode;
- detail.FromLot = balanceDto.Lot;
-
- detail.ToLocationArea = toLocationDto.AreaCode;
- detail.ToLocationErpCode = toLocationDto.ErpLocationCode;
- detail.ToLocationGroup = toLocationDto.LocationGroupCode;
- detail.ToWarehouseCode = toLocationDto.WarehouseCode;
- detail.ToContainerCode = balanceDto.ContainerCode;
- detail.ToPackingCode = balanceDto.PackingCode;
- detail.ToLocationArea = balanceDto.LocationArea;
- detail.ToStatus = balanceDto.Status;
- detail.ToLot = balanceDto.Lot;
+ //detail.ItemCode = balanceDto.ItemCode;
+ //detail.ArriveDate = balanceDto.ArriveDate;
+ //detail.ItemDesc1 = balanceDto.ItemDesc1;
+ //detail.ItemDesc2 = balanceDto.ItemDesc2;
+ //detail.ItemName = balanceDto.ItemName;
+ //detail.ProduceDate = balanceDto.ProduceDate;
+ //detail.Qty = detail.Qty;
+ //detail.Uom = balanceDto.Uom;
+ //detail.ExpireDate = balanceDto.ExpireDate;
+ //detail.StdPackQty = balanceDto.StdPackQty;
+ //detail.SupplierBatch = balanceDto.SupplierBatch;
+
+ //detail.FromLocationArea = balanceDto.LocationArea;
+ //detail.FromContainerCode = balanceDto.ContainerCode;
+ //detail.FromLocationErpCode = balanceDto.LocationErpCode;
+ //detail.FromLocationGroup = balanceDto.LocationGroup;
+ //detail.FromPackingCode = balanceDto.PackingCode;
+ //detail.FromLocationArea = balanceDto.LocationArea;
+ //detail.FromStatus = balanceDto.Status;
+ //detail.FromWarehouseCode = balanceDto.WarehouseCode;
+ //detail.FromLot = balanceDto.Lot;
+
+ //detail.ToLocationArea = toLocationDto.AreaCode;
+ //detail.ToLocationErpCode = toLocationDto.ErpLocationCode;
+ //detail.ToLocationGroup = toLocationDto.LocationGroupCode;
+ //detail.ToWarehouseCode = toLocationDto.WarehouseCode;
+ //detail.ToContainerCode = balanceDto.ContainerCode;
+ //detail.ToPackingCode = balanceDto.PackingCode;
+ //detail.ToLocationArea = balanceDto.LocationArea;
+ //detail.ToStatus = balanceDto.Status;
+ //detail.ToLot = balanceDto.Lot;
}
await SetEntityPropertiesAsync(transferLibRequest, enumTransSubType)
@@ -319,14 +319,14 @@ public class TransferLibRequestAppService : SfsStoreRequestAppServiceBase
var entity = ObjectMapper.Map(input);
var subType = Enum.Parse(input.Type);
- var tranType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.TransferLib, subType)
- .ConfigureAwait(false);
- entity.Type = ((int)subType).ToString();
- entity.AutoCompleteJob = tranType.AutoCompleteJob;
- entity.AutoSubmit = tranType.AutoSubmitRequest;
- entity.AutoAgree = tranType.AutoAgreeRequest;
- entity.AutoHandle = tranType.AutoHandleRequest;
- entity.DirectCreateNote = tranType.DirectCreateNote;
+ //var tranType = await TransactionTypeAclService.GetByTransTypeAsync(EnumTransType.TransferLib, subType)
+ // .ConfigureAwait(false);
+ //entity.Type = ((int)subType).ToString();
+ //entity.AutoCompleteJob = tranType.AutoCompleteJob;
+ //entity.AutoSubmit = tranType.AutoSubmitRequest;
+ //entity.AutoAgree = tranType.AutoAgreeRequest;
+ //entity.AutoHandle = tranType.AutoHandleRequest;
+ //entity.DirectCreateNote = tranType.DirectCreateNote;
await _transferLibRequestManager.CreateAsync(entity).ConfigureAwait(false);
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestMapperProfile.cs
index 562796986..b772b8db7 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/TransferLibRequests/TransferLibRequestMapperProfile.cs
@@ -48,35 +48,10 @@ public partial class StoreApplicationAutoMapperProfile : Profile
.Ignore(x => x.Number)
.Ignore(x => x.Id);
- CreateMap()
+ CreateMap(MemberList.None)
.IgnoreAuditedObjectProperties()
- .ForMember(x => x.ToPackingCode, y => y.MapFrom(d => d.PackingCode ?? string.Empty))
- .ForMember(x => x.FromPackingCode, y => y.MapFrom(d => d.PackingCode ?? string.Empty))
- .ForMember(x => x.FromStatus, y => y.MapFrom(d => d.Status))
- .ForMember(x => x.ToStatus, y => y.MapFrom(d => d.Status))
- .Ignore(x => x.FromLocationGroup)
- .Ignore(x => x.FromLocationArea)
- .Ignore(x => x.FromLocationErpCode)
- .Ignore(x => x.FromWarehouseCode)
- .Ignore(x => x.ToLocationArea)
- .Ignore(x => x.ToLocationGroup)
- .Ignore(x => x.ToLocationErpCode)
- .Ignore(x => x.ToWarehouseCode)
- .Ignore(x => x.Reason)
- .Ignore(x => x.SupplierBatch).Ignore(x => x.ArriveDate).Ignore(x => x.ProduceDate).Ignore(x => x.ExpireDate)
- .Ignore(x => x.Remark)
- .Ignore(x => x.ItemName)
- .Ignore(x => x.ItemDesc1)
- .Ignore(x => x.ItemDesc2)
- .Ignore(x => x.FromContainerCode)
- .Ignore(x => x.ToContainerCode)
- .Ignore(x => x.FromLot)
- .Ignore(x => x.ToLot)
- .Ignore(x => x.StdPackQty)
- .Ignore(x => x.Uom)
- .Ignore(x => x.MasterID)
- .Ignore(x => x.TenantId)
- .Ignore(x => x.Number)
- .Ignore(x => x.Id);
+ .ForMember(x => x.RecommendFromPackingCode, y => y.MapFrom(d => d.PackingCode ?? string.Empty))
+ .ForMember(x => x.RecommendToPackingCode, y => y.MapFrom(d => d.PackingCode ?? string.Empty))
+ .ForMember(x => x.Status, y => y.MapFrom(d => d.Status));
}
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/NewRecommendHandled/NewRecommendFromTo.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/NewRecommendHandled/NewRecommendFromTo.cs
new file mode 100644
index 000000000..62a8849ea
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/NewRecommendHandled/NewRecommendFromTo.cs
@@ -0,0 +1,197 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Win_in.Sfs.Shared.Domain;
+using Win_in.Sfs.Shared.Domain.Shared;
+
+namespace Win_in.Sfs.Wms.Store.Domain;
+public class NewRecommendFromTo : SfsStoreDetailEntityBase//SfsDetailEntityBase
+{
+ #region 库存基础信息
+ /*
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+ */
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ public void SetId(Guid id)
+ {
+ this.Id = id;
+ }
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/NewRecommendHandled/NewRecommendHandledFromTo.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/NewRecommendHandled/NewRecommendHandledFromTo.cs
new file mode 100644
index 000000000..8bf765d58
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/NewRecommendHandled/NewRecommendHandledFromTo.cs
@@ -0,0 +1,148 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Win_in.Sfs.Wms.Store.Domain;
+public class NewRecommendHandledFromTo : NewRecommendFromTo
+{
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
+
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJob.cs
index 8f22c73b2..0e75380e3 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJob.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJob.cs
@@ -25,17 +25,11 @@ public class InjectionJob : SfsJobAggregateRootBase
public string ProdLine { get; set; }
///
- /// 要货单号
+ /// 注塑要料单号
///
[IgnoreUpdate]
public string InjectionRequestNumber { get; set; }
- ///
- /// 车间
- ///
- [IgnoreUpdate]
- public string Workshop { get; set; }
-
///
/// 使用在途库
///
@@ -49,36 +43,5 @@ public class InjectionJob : SfsJobAggregateRootBase
[IgnoreUpdate]
public override List Details { get; set; } = new List();
- ///
- /// 设置任务明细的实际库位和实际数量
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public virtual async Task BuildDetail(Guid id, string handledLocationCode, string handledLocationErpCode,
- string handledWarehouseCode, decimal handledQty, string handledSupplierBatch, DateTime handledArriveDate, DateTime handledProduceDate, DateTime handledExpireDate,
- string handledContainerCode, string handledLot, string handledPackingCode)
- {
- var detail = GetDetail(id);
- detail.HandledFromLocationCode = handledLocationCode;
- detail.HandledFromLocationErpCode = handledLocationErpCode;
- detail.HandledFromWarehouseCode = handledWarehouseCode;
- detail.HandledQty = handledQty;
- detail.HandledSupplierBatch = handledSupplierBatch;
- detail.HandledArriveDate = handledArriveDate;
- detail.HandledProduceDate = handledProduceDate;
- detail.HandledExpireDate = handledExpireDate;
- detail.HandledContainerCode = handledContainerCode;
- detail.HandledLot = handledLot;
- detail.HandledPackingCode = handledPackingCode;
- await Task.CompletedTask.ConfigureAwait(false);
- }
-
+
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobDetail.cs
index 5d37078d1..f5efad789 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobDetail.cs
@@ -1,40 +1,80 @@
using System;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Domain;
-public class InjectionJobDetail : SfsJobRecommendFromDetailEntityBase, IHasToLocation
+public class InjectionJobDetail : SfsDetailEntityBase
{
+ #region 库存基础信息
+
///
- /// 请求库位
+ /// 物品代码
///
- public string RequestLocationCode { get; set; }
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
///
- /// 到库位
+ /// 请求库位
///
- public string ToLocationCode { get; set; }
+ public string RequestLocationCode { get; set; }
///
/// 到库区
///
- public string ToLocationArea { get; set; }
+ public string RequestLocationArea { get; set; }
///
/// 到库位组
///
- public string ToLocationGroup { get; set; }
+ public string RequestLocationGroup { get; set; }
///
/// 到ERP库位
///
- public string ToLocationErpCode { get; set; }
+ public string RequestLocationErpCode { get; set; }
///
/// 到仓库
///
- public string ToWarehouseCode { get; set; }
+ public string RequestWarehouseCode { get; set; }
///
/// 在途库库位
@@ -47,59 +87,435 @@ public class InjectionJobDetail : SfsJobRecommendFromDetailEntityBase, IHasToLoc
public string ProdLine { get; set; }
///
- /// 工作中心
+ /// 位置码
///
- public string WorkStation { get; set; }
+ public string PositionCode { get; set; }
///
- /// 过期时间
+ /// 推荐的类型
///
- public DateTime ExpiredTime { get; set; }
+ public EnumRecommendType RecommendType { get; set; }
///
- /// 工序
+ /// 需求数量
///
- public string Operation { get; set; }
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
///
- /// 配送方式
+ /// 推荐来源托标签
///
- public EnumDistributionType DistributionType { get; set; }
+ public string RecommendFromContainerCode { get; set; }
///
- /// 取整方式
+ /// 推荐来源箱标签
///
- public EnumTruncType TruncType { get; set; }
+ public string RecommendFromPackingCode { get; set; }
///
- /// 取整后数量
+ /// 推荐来源批次供应商批次
///
- public decimal RoundedQty { get; set; }
+ public string RecommendFromSupplierBatch { get; set; }
///
- /// 计划拆分规则
+ /// 推荐来源批次到货时间
///
- public EnumPlannedSplitRule PlannedSplitRule { get; set; }
+ public DateTime RecommendFromArriveDate { get; set; }
///
- /// 计划开始时间
+ /// 推荐来源批次生产时间
///
- public DateTime PlanBeginTime { get; set; }
+ public DateTime RecommendFromProduceDate { get; set; }
///
- /// 每次配送数量
+ /// 推荐来源批次过期时间
///
- public decimal DeliveryQty { get; set; }
+ public DateTime RecommendFromExpireDate { get; set; }
///
- /// 位置码
+ /// 推荐来源批次排序
///
- public string PositionCode { get; set; }
+ public string RecommendFromLot { get; set; }
///
- /// 推荐类型
+ /// 推荐来源库位
///
- public EnumRecommendType RecommendType { get; set; }
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
public void SetId(Guid id)
{
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobManager.cs
index a88e5c213..8d953c3a6 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/InjectionJobs/InjectionJobManager.cs
@@ -4,19 +4,24 @@ 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.Shared;
+using Win_in.Sfs.Wms.Inventory.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Domain;
public class InjectionJobManager : SfsJobManagerBase, IInjectionJobManager
{
+ private readonly IBalanceAppService _balanceAppService;
+ private readonly IExpectOutAppService _expectOutAppService;
public InjectionJobManager(
- IInjectionJobRepository repository
- ) : base(repository)
+ IInjectionJobRepository repository, IBalanceAppService balanceAppService, IExpectOutAppService expectOutAppService) : base(repository)
{
+ _balanceAppService = balanceAppService;
+ _expectOutAppService = expectOutAppService;
}
///
@@ -30,53 +35,87 @@ public class InjectionJobManager : SfsJobManagerBase GetAsync(Expression> expression)
{
- var details = entity.Details;
- foreach (var detail in details)
- {
- if (detail.HandledFromLocationCode == null)
- {
- result.Errors.Add(new ValidationResult($"{detail.HandledFromLocationCode} 不能为空"));
- }
-
- }
+ return await Repository.FindAsync(expression).ConfigureAwait(false);
}
- public override async Task> GetWorkingListByPackingAsync(string packingCode)
- {
- return await Repository.GetListAsync(c => c.Details.Any(p => p.RecommendPackingCode == packingCode) && c.JobStatus != EnumJobStatus.Closed && c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false);
+ #region 无用
+ public override Task> GetWorkingListByPackingAsync(string packingCode)
+ {
+ throw new NotImplementedException();
}
- public override async Task> GetWorkingListByContainerAsync(string containerCode)
+ public override Task> GetWorkingListByContainerAsync(string containerCode)
{
- return await Repository.GetListAsync(c => c.Details.Any(p => p.RecommendContainerCode == containerCode) && c.JobStatus != EnumJobStatus.Closed && c.JobStatus != EnumJobStatus.Cancelled, true).ConfigureAwait(false);
-
+ throw new NotImplementedException();
}
-
- public async Task GetAsync(Expression> expression)
+
+ public override void CheckDetails(InjectionJob entity, AbpValidationResult result)
{
- return await Repository.FindAsync(expression).ConfigureAwait(false);
+ throw new NotImplementedException();
}
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobRecommendToDetailEntityBase.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobRecommendToDetailEntityBase.cs
index e476d8733..ec39082a9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobRecommendToDetailEntityBase.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/SfsJobRecommendToDetailEntityBase.cs
@@ -14,6 +14,11 @@ public abstract class SfsJobRecommendToDetailEntityBase
, IHasStdPack
{
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
///
/// 物品名称
///
@@ -29,11 +34,6 @@ public abstract class SfsJobRecommendToDetailEntityBase
///
public string ItemDesc2 { get; set; }
- ///
- /// 物品代码
- ///
- public string ItemCode { get; set; }
-
///
/// 标包数量
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/TransferLibJobs/TransferLibJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/TransferLibJobs/TransferLibJob.cs
index 18f2fa10a..6d6900138 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/TransferLibJobs/TransferLibJob.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/TransferLibJobs/TransferLibJob.cs
@@ -1,86 +1,85 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
-using System.Threading.Tasks;
-using Volo.Abp.Data;
using Win_in.Sfs.Shared.Domain.Entities;
-using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
namespace Win_in.Sfs.Wms.Store.Domain;
///
-/// 计划外出库任务 //??TransferLib实体
+/// 计划外出库任务 //??TransferLib实体
///
[Display(Name = "计划外出库任务")]
public class TransferLibJob : SfsJobAggregateRootBase
{
///
- /// 申请单号
+ /// 申请单号
///
[IgnoreUpdate]
public string RequestNumber { get; set; }
///
- /// 任务单号
+ /// 任务单号
///
[IgnoreUpdate]
public string JobNumber { get; set; }
///
- /// 调拨类型
+ /// 调拨类型
///
[Display(Name = "调拨类型")]
[Required(ErrorMessage = "调拨类型不能为空")]
public string Type { get; set; }
///
- /// 使用中间库
+ /// 使用中间库
///
[Display(Name = "使用中间库")]
public bool UseOnTheWayLocation { get; set; }
///
- /// 确认时间
+ /// 确认时间
///
[Display(Name = "确认时间")]
[IgnoreUpdate]
public DateTime? ConfirmTime { get; set; }
///
- /// 已确认
+ /// 已确认
///
[Display(Name = "已确认")]
public bool Confirmed { get; set; }
///
- /// 任务明细
+ /// 任务明细
///
[IgnoreUpdate]
- public override List Details { get; set; } = new List();
+ public override List Details { get; set; } = new();
+
#region 回调服务相关
+
///
- /// 回调服务名称
+ /// 回调服务名称
///
[Display(Name = "回调服务名称")]
public string CallServerName { get; set; }
///
- /// 回调业务类型
+ /// 回调业务类型
///
[Display(Name = "回调业务类型")]
public string CallBusinessType { get; set; }
///
- /// 调用者传入申请单号
+ /// 调用者传入申请单号
///
[Display(Name = "传入申请单号")]
public string CallRequestNumber { get; set; }
///
- /// 调用者传入任务单号
+ /// 调用者传入任务单号
///
[Display(Name = "传入任务单号")]
public string CallJobNumber { get; set; }
- #endregion
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/TransferLibJobs/TransferLibJobDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/TransferLibJobs/TransferLibJobDetail.cs
index 616b6f3da..dc9e6a252 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/TransferLibJobs/TransferLibJobDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/TransferLibJobs/TransferLibJobDetail.cs
@@ -1,48 +1,466 @@
+using System;
using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Data;
+using System.ComponentModel.DataAnnotations.Schema;
using Win_in.Sfs.Shared.Domain.Shared;
-using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
namespace Win_in.Sfs.Wms.Store.Domain;
+
///
-/// //??TransferLib实体
+/// //??TransferLib实体
///
-public class TransferLibJobDetail : SfsStoreDetailWithFromToEntityBase
+public class TransferLibJobDetail : SfsStoreDetailEntityBase
{
///
- /// 中间库地址
- ///
- public string OnTheWayLocationCode { get; set; }
-
- ///
- /// 原因
+ /// 原因
///
public string Reason { get; set; }
///
- /// 执行任务状态
+ /// 执行任务状态
///
public EnumJobStatus JobStatus { get; set; }
+
#region 回调服务相关
+
///
- /// 回调服务名称
+ /// 回调服务名称
///
public string CallServerName { get; set; }
///
- /// 回调业务类型
+ /// 回调业务类型
///
public string CallBusinessType { get; set; }
///
- /// 调用者传入申请单号
+ /// 调用者传入申请单号
///
public string CallRequestNumber { get; set; }
///
- /// 调用者传入任务单号
+ /// 调用者传入任务单号
///
public string CallJobNumber { get; set; }
+
+ #endregion
+
+ #region 库存基础信息
+
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
+
+ ///
+ /// 到库区
+ ///
+ public string RequestLocationArea { get; set; }
+
+ ///
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
+ ///
+ public string OnTheWayLocationCode { get; set; }
+
+ ///
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
#endregion
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
+
+ #region 开关
+
+ //箱码
+ public bool IsPackingCodeFrom { get; set; }
+
+ public bool IsPackingCodeTo { get; set; }
+
+ //批次
+ public bool IsLotFrom { get; set; }
+
+ public bool IsLotTo { get; set; }
+
+ //零件号
+ public bool IsItemCodeFrom { get; set; }
+
+ public bool IsItemCodeTo { get; set; }
+
+ //状态
+ public bool IsStatusFrom { get; set; }
+
+ public bool IsStatusTo { get; set; }
+
+ //库位
+ public bool IsLocationCodeFrom { get; set; }
+
+ public bool IsLocationCodeTo { get; set; }
+
+ //库位组
+ public bool IsLocationGroupFrom { get; set; }
+
+ public bool IsLocationGroupTo { get; set; }
+
+ //区域
+ public bool IsLocationAreaFrom { get; set; }
+
+ public bool IsLocationAreaTo { get; set; }
+
+ //储位
+ public bool IsLocationErpCodeFrom { get; set; }
+
+ public bool IsLocationErpCodeTo { get; set; }
+
+ //数量
+ public bool IsQtyFrom { get; set; }
+
+ public bool IsQtyTo { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNote.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNote.cs
index 582852d31..f5e97fd45 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNote.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNote.cs
@@ -17,12 +17,6 @@ public class InjectionNote : SfsStoreAggregateRootBase, IHa
[IgnoreUpdate]
public string JobNumber { get; set; }
- ///
- /// 车间
- ///
- [IgnoreUpdate]
- public string Workshop { get; set; }
-
///
/// 明细列表
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNoteDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNoteDetail.cs
index 9e9d44882..128c44d6e 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNoteDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/InjectionNotes/InjectionNoteDetail.cs
@@ -1,43 +1,519 @@
using System;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Domain;
-public class InjectionNoteDetail : SfsStoreRecommendFromDetailWithFromToEntityBase
+public class InjectionNoteDetail : SfsStoreDetailEntityBase
{
+ #region 库存基础信息
///
- /// 发料时间
+ /// 物品代码
///
- public DateTime IssueTime { get; set; }
+ public string ItemCode { get; set; }
///
- /// 过期时间
+ /// 物品名称
///
- public DateTime ExpiredTime { get; set; }
+ public string ItemName { get; set; }
///
- /// 生产线
+ /// 物品描述1
///
- public string ProdLine { get; set; }
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
///
- /// 工作中心
+ /// 到库区
///
- public string WorkStation { get; set; }
+ public string RequestLocationArea { get; set; }
///
- /// 在途库库位
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
///
public string OnTheWayLocationCode { get; set; }
///
- /// 位置码
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
///
public string PositionCode { get; set; }
///
- /// 推荐类型
+ /// 推荐的类型
///
public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 库移来源
+
+ ///
+ /// 库移来源托标签
+ ///
+ public string TransferLibFromContainerCode { get; set; }
+
+ ///
+ /// 库移来源箱标签
+ ///
+ public string TransferLibFromPackingCode { get; set; }
+
+ ///
+ /// 库移来源批次供应商批次
+ ///
+ public string TransferLibFromSupplierBatch { get; set; }
+
+ ///
+ /// 库移来源批次到货时间
+ ///
+ public DateTime TransferLibFromArriveDate { get; set; }
+
+ ///
+ /// 库移来源批次生产时间
+ ///
+ public DateTime TransferLibFromProduceDate { get; set; }
+
+ ///
+ /// 库移来源批次过期时间
+ ///
+ public DateTime TransferLibFromExpireDate { get; set; }
+
+ ///
+ /// 库移来源批次排序
+ ///
+ public string TransferLibFromLot { get; set; }
+
+ ///
+ /// 库移来源库位
+ ///
+ public string TransferLibFromLocationCode { get; set; }
+
+ ///
+ /// 库移来源库区
+ ///
+ public string TransferLibFromLocationArea { get; set; }
+
+ ///
+ /// 库移来源库位组
+ ///
+ public string TransferLibFromLocationGroup { get; set; }
+
+ ///
+ /// 库移来源ERP库位
+ ///
+ public string TransferLibFromLocationErpCode { get; set; }
+
+ ///
+ /// 库移来源仓库
+ ///
+ public string TransferLibFromWarehouseCode { get; set; }
+
+ ///
+ /// 库移来源数量
+ ///
+ public decimal TransferLibFromQty { get; set; }
+
+ #endregion
+
+ #region 库移目标
+
+ ///
+ /// 库移目标托标签
+ ///
+ public string TransferLibToContainerCode { get; set; }
+
+ ///
+ /// 库移目标箱标签
+ ///
+ public string TransferLibToPackingCode { get; set; }
+
+ ///
+ /// 库移目标批次供应商批次
+ ///
+ public string TransferLibToSupplierBatch { get; set; }
+
+ ///
+ /// 库移目标批次到货时间
+ ///
+ public DateTime TransferLibToArriveDate { get; set; }
+
+ ///
+ /// 库移目标批次生产时间
+ ///
+ public DateTime TransferLibToProduceDate { get; set; }
+
+ ///
+ /// 库移目标批次过期时间
+ ///
+ public DateTime TransferLibToExpireDate { get; set; }
+
+ ///
+ /// 库移目标批次排序
+ ///
+ public string TransferLibToLot { get; set; }
+
+ ///
+ /// 库移目标库位
+ ///
+ public string TransferLibToLocationCode { get; set; }
+
+ ///
+ /// 库移目标库区
+ ///
+ public string TransferLibToLocationArea { get; set; }
+
+ ///
+ /// 库移目标库位组
+ ///
+ public string TransferLibToLocationGroup { get; set; }
+
+ ///
+ /// 库移目标ERP库位
+ ///
+ public string TransferLibToLocationErpCode { get; set; }
+
+ ///
+ /// 库移目标仓库
+ ///
+ public string TransferLibToWarehouseCode { get; set; }
+
+ ///
+ /// 库移目标数量
+ ///
+ public decimal TransferLibToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/TransferLibNotes/TransferLibNoteDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/TransferLibNotes/TransferLibNoteDetail.cs
index bdd64ec93..ac3e17ee0 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/TransferLibNotes/TransferLibNoteDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/TransferLibNotes/TransferLibNoteDetail.cs
@@ -1,3 +1,8 @@
+using System;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using Volo.Abp.Domain.Entities.Auditing;
+using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Domain;
@@ -5,14 +10,8 @@ namespace Win_in.Sfs.Wms.Store.Domain;
///
/// 库存转移记录-明细表 //??TransferLib实体
///
-public class TransferLibNoteDetail : SfsStoreDetailWithFromToEntityBase
+public class TransferLibNoteDetail : SfsStoreDetailEntityBase
{
-
- ///
- /// 中间库地址
- ///
- public string OnTheWayLocationCode { get; set; }
-
///
/// 原因
///
@@ -22,6 +21,7 @@ public class TransferLibNoteDetail : SfsStoreDetailWithFromToEntityBase
/// 执行任务状态
///
public EnumJobStatus JobStatus { get; set; }
+
#region 回调服务相关
///
/// 回调服务名称
@@ -44,4 +44,423 @@ public class TransferLibNoteDetail : SfsStoreDetailWithFromToEntityBase
public string CallJobNumber { get; set; }
#endregion
+ #region 库存基础信息
+
+ ///
+ /// 物品代码
+ ///
+ public string ItemCode { get; set; }
+
+ ///
+ /// 物品名称
+ ///
+ public string ItemName { get; set; }
+
+ ///
+ /// 物品描述1
+ ///
+ public string ItemDesc1 { get; set; }
+
+ ///
+ /// 物品描述2
+ ///
+ public string ItemDesc2 { get; set; }
+
+ ///
+ /// 标包数量
+ ///
+ [Display(Name = "标包数量")]
+ [Column(TypeName = "decimal(18,6)")]
+ public decimal StdPackQty { get; set; }
+
+ ///
+ /// 库存状态
+ ///
+ public EnumInventoryStatus Status { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Uom { get; set; }
+
+ #endregion
+
+ #region 请求信息
+
+ ///
+ /// 请求库位
+ ///
+ public string RequestLocationCode { get; set; }
+
+ ///
+ /// 到库区
+ ///
+ public string RequestLocationArea { get; set; }
+
+ ///
+ /// 到库位组
+ ///
+ public string RequestLocationGroup { get; set; }
+
+ ///
+ /// 到ERP库位
+ ///
+ public string RequestLocationErpCode { get; set; }
+
+ ///
+ /// 到仓库
+ ///
+ public string RequestWarehouseCode { get; set; }
+
+ ///
+ /// 在途库库位
+ ///
+ public string OnTheWayLocationCode { get; set; }
+
+ ///
+ /// 生产线
+ ///
+ public string ProdLine { get; set; }
+
+ ///
+ /// 位置码
+ ///
+ public string PositionCode { get; set; }
+
+ ///
+ /// 推荐的类型
+ ///
+ public EnumRecommendType RecommendType { get; set; }
+
+ ///
+ /// 需求数量
+ ///
+ public decimal RequestQty { get; set; }
+
+ #endregion
+
+ #region 推荐来源
+
+ ///
+ /// 推荐来源托标签
+ ///
+ public string RecommendFromContainerCode { get; set; }
+
+ ///
+ /// 推荐来源箱标签
+ ///
+ public string RecommendFromPackingCode { get; set; }
+
+ ///
+ /// 推荐来源批次供应商批次
+ ///
+ public string RecommendFromSupplierBatch { get; set; }
+
+ ///
+ /// 推荐来源批次到货时间
+ ///
+ public DateTime RecommendFromArriveDate { get; set; }
+
+ ///
+ /// 推荐来源批次生产时间
+ ///
+ public DateTime RecommendFromProduceDate { get; set; }
+
+ ///
+ /// 推荐来源批次过期时间
+ ///
+ public DateTime RecommendFromExpireDate { get; set; }
+
+ ///
+ /// 推荐来源批次排序
+ ///
+ public string RecommendFromLot { get; set; }
+
+ ///
+ /// 推荐来源库位
+ ///
+ public string RecommendFromLocationCode { get; set; }
+
+ ///
+ /// 推荐来源库区
+ ///
+ public string RecommendFromLocationArea { get; set; }
+
+ ///
+ /// 推荐来源库位组
+ ///
+ public string RecommendFromLocationGroup { get; set; }
+
+ ///
+ /// 推荐来源ERP库位
+ ///
+ public string RecommendFromLocationErpCode { get; set; }
+
+ ///
+ /// 推荐来源仓库
+ ///
+ public string RecommendFromWarehouseCode { get; set; }
+
+ ///
+ /// 推荐来源数量
+ ///
+ public decimal RecommendFromQty { get; set; }
+
+ #endregion
+
+ #region 推荐目标
+
+ ///
+ /// 推荐目标托标签
+ ///
+ public string RecommendToContainerCode { get; set; }
+
+ ///
+ /// 推荐目标箱标签
+ ///
+ public string RecommendToPackingCode { get; set; }
+
+ ///
+ /// 推荐目标批次供应商批次
+ ///
+ public string RecommendToSupplierBatch { get; set; }
+
+ ///
+ /// 推荐目标批次到货时间
+ ///
+ public DateTime RecommendToArriveDate { get; set; }
+
+ ///
+ /// 推荐目标批次生产时间
+ ///
+ public DateTime RecommendToProduceDate { get; set; }
+
+ ///
+ /// 推荐目标批次过期时间
+ ///
+ public DateTime RecommendToExpireDate { get; set; }
+
+ ///
+ /// 推荐目标批次排序
+ ///
+ public string RecommendToLot { get; set; }
+
+ ///
+ /// 推荐目标库位
+ ///
+ public string RecommendToLocationCode { get; set; }
+
+ ///
+ /// 推荐目标库区
+ ///
+ public string RecommendToLocationArea { get; set; }
+
+ ///
+ /// 推荐目标库位组
+ ///
+ public string RecommendToLocationGroup { get; set; }
+
+ ///
+ /// 推荐目标ERP库位
+ ///
+ public string RecommendToLocationErpCode { get; set; }
+
+ ///
+ /// 推荐目标仓库
+ ///
+ public string RecommendToWarehouseCode { get; set; }
+
+ ///
+ /// 推荐目标数量
+ ///
+ public decimal RecommendToQty { get; set; }
+
+ #endregion
+
+ #region 实际来源
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledFromContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledFromPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledFromSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledFromArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledFromProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledFromExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledFromLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledFromLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledFromLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledFromLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledFromLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledFromWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledFromQty { get; set; }
+
+ #endregion
+
+ #region 实际目标
+
+ ///
+ /// 实际目标托标签
+ ///
+ public string HandledToContainerCode { get; set; }
+
+ ///
+ /// 实际箱标签
+ ///
+ public string HandledToPackingCode { get; set; }
+
+ ///
+ /// 实际批次供应商批次
+ ///
+ public string HandledToSupplierBatch { get; set; }
+
+ ///
+ /// 实际批次到货时间
+ ///
+ public DateTime HandledToArriveDate { get; set; }
+
+ ///
+ /// 实际批次生产时间
+ ///
+ public DateTime HandledToProduceDate { get; set; }
+
+ ///
+ /// 实际批次过期时间
+ ///
+ public DateTime HandledToExpireDate { get; set; }
+
+ ///
+ /// 实际批次排序
+ ///
+ public string HandledToLot { get; set; }
+
+ ///
+ /// 实际库位
+ ///
+ public string HandledToLocationCode { get; set; }
+
+ ///
+ /// 实际库区
+ ///
+ public string HandledToLocationArea { get; set; }
+
+ ///
+ /// 实际库位组
+ ///
+ public string HandledToLocationGroup { get; set; }
+
+ ///
+ /// 实际ERP库位
+ ///
+ public string HandledToLocationErpCode { get; set; }
+
+ ///
+ /// 实际仓库
+ ///
+ public string HandledToWarehouseCode { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal HandledToQty { get; set; }
+
+ #endregion
+
+ #region 开关
+
+ //箱码
+ public bool IsPackingCodeFrom { get; set; }
+
+ public bool IsPackingCodeTo { get; set; }
+ //批次
+ public bool IsLotFrom { get; set; }
+
+ public bool IsLotTo { get; set; }
+ //零件号
+ public bool IsItemCodeFrom { get; set; }
+
+ public bool IsItemCodeTo { get; set; }
+ //状态
+ public bool IsStatusFrom { get; set; }
+
+ public bool IsStatusTo { get; set; }
+ //库位
+ public bool IsLocationCodeFrom { get; set; }
+
+ public bool IsLocationCodeTo { get; set; }
+
+ //库位组
+ public bool IsLocationGroupFrom { get; set; }
+
+ public bool IsLocationGroupTo { get; set; }
+
+ //区域
+ public bool IsLocationAreaFrom { get; set; }
+
+ public bool IsLocationAreaTo { get; set; }
+
+ //储位
+ public bool IsLocationErpCodeFrom { get; set; }
+
+ public bool IsLocationErpCodeTo { get; set; }
+ //数量
+ public bool IsQtyFrom { get; set; }
+
+ public bool IsQtyTo { get; set; }
+
+ #endregion
+
+ public void SetId(Guid id)
+ {
+ this.Id = id;
+ }
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/TransferLibNotes/TransferLibNoteManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/TransferLibNotes/TransferLibNoteManager.cs
index 20a70d244..6ba5d3e16 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/TransferLibNotes/TransferLibNoteManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/TransferLibNotes/TransferLibNoteManager.cs
@@ -87,27 +87,31 @@ public class TransferLibNoteManager : SfsStoreManagerBase
- /// 生产线
- ///
- [IgnoreUpdate]
- public string ProdLine { get; set; }
-
///
/// 使用在途库
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestDetail.cs
index 9d3d1b496..220f3254c 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/InjectionRequests/InjectionRequestDetail.cs
@@ -45,27 +45,13 @@ public class InjectionRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLoc
public string ToWarehouseCode { get; set; }
#endregion
-
- // ///
- // /// 在途库库位
- // ///
- // public string OnTheWayLocationCode { get; set; }
+
///
/// 生产线
///
public string ProdLine { get; set; }
- ///
- /// 工作中心
- ///
- public string WorkStation { get; set; }
-
- ///
- /// 过期时间
- ///
- public DateTime ExpiredTime { get; set; }
-
///
/// 已发数量
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestDetail.cs
index c8e5b798b..dbea45ed9 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestDetail.cs
@@ -44,13 +44,13 @@ public class ThirdLocationRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasT
/// 来源库区
///
public string FromLocationArea { get; set; }
-
- // ///
- // /// 在途库库位
- // ///
- // public string OnTheWayLocationCode { get; set; }
+
+ ///
+ /// 在途库库位
+ ///
+ public string OnTheWayLocationCode { get; set; }
///
/// 生产线
@@ -77,10 +77,7 @@ public class ThirdLocationRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasT
///
public decimal ReceivedQty { get; set; }
- ///
- /// 明细状态
- ///
- public EnumStatus Status { get; set; }
+
///
/// 请求未发 还未发送的数量
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestManager.cs
index c9d45a6dc..1586bfcf3 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/ThirdLocationRequests/ThirdLocationRequestManager.cs
@@ -73,48 +73,49 @@ public class ThirdLocationRequestManager
private void SetMaterialRequestDetailStatus(ThirdLocationRequestDetail detail)
{
- if (detail.ReceivedQty >= detail.Qty)//执行的时候 实际收料 多余 要料数
- {
- detail.Status = EnumStatus.Close;
- }
- else
- {
- detail.Status = EnumStatus.Open;
- }
+ //if (detail.ReceivedQty >= detail.Qty)//执行的时候 实际收料 多余 要料数
+ //{
+ // detail.Status = EnumStatus.Close;
+ //}
+ //else
+ //{
+ // detail.Status = EnumStatus.Open;
+ //}
}
private async Task SetMaterialRequestStatusAsync(ThirdLocationRequest materialRequest)
{
- if (materialRequest.Details.All(p => p.Status == EnumStatus.Close))
- {
- materialRequest.RequestStatus = EnumRequestStatus.Completed;
- }
- else
- {
- var issueJobs = await _issueJobRepository.GetListAsync(t => t.MaterialRequestNumber == materialRequest.Number).ConfigureAwait(false);
- if (issueJobs.Count > 0)
- {
- if (issueJobs.All(t => t.JobStatus is EnumJobStatus.Done or EnumJobStatus.Closed or EnumJobStatus.Cancelled))
- {
- if (materialRequest.Details.All(p => p.ReceivedQty >= p.Qty))
- {
- materialRequest.RequestStatus = EnumRequestStatus.Completed;
- }
- else
- {
- materialRequest.RequestStatus = EnumRequestStatus.Partial;
- }
- }
- else
- {
- materialRequest.RequestStatus = EnumRequestStatus.Partial;
- }
- }
- else
- {
- materialRequest.RequestStatus = EnumRequestStatus.Partial;
- }
- }
+ //if (materialRequest.Details.All(p => p.Status == EnumStatus.Close))
+ //{
+ // materialRequest.RequestStatus = EnumRequestStatus.Completed;
+ //}
+ //else
+ //{
+ // var issueJobs = await _issueJobRepository.GetListAsync(t => t.MaterialRequestNumber == materialRequest.Number).ConfigureAwait(false);
+ // if (issueJobs.Count > 0)
+ // {
+ // if (issueJobs.All(t => t.JobStatus is EnumJobStatus.Done or EnumJobStatus.Closed or EnumJobStatus.Cancelled))
+ // {
+ // if (materialRequest.Details.All(p => p.ReceivedQty >= p.Qty))
+ // {
+ // materialRequest.RequestStatus = EnumRequestStatus.Completed;
+ // }
+ // else
+ // {
+ // materialRequest.RequestStatus = EnumRequestStatus.Partial;
+ // }
+ // }
+ // else
+ // {
+ // materialRequest.RequestStatus = EnumRequestStatus.Partial;
+ // }
+ // }
+ // else
+ // {
+ // materialRequest.RequestStatus = EnumRequestStatus.Partial;
+ // }
+ //}
+
}
public virtual async Task CompleteAsync(string number)
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/TransferLibRequests/TransferLibRequestDetail.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/TransferLibRequests/TransferLibRequestDetail.cs
index 36ab045b1..2f43a52b6 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/TransferLibRequests/TransferLibRequestDetail.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/TransferLibRequests/TransferLibRequestDetail.cs
@@ -1,11 +1,12 @@
using System.Text.Json;
using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Domain;
///
/// //??TransferLib实体
///
-public class TransferLibRequestDetail : SfsStoreDetailWithFromToEntityBase
+public class TransferLibRequestDetail : NewRecommendFromTo
{
///
/// 原因代码
@@ -42,4 +43,48 @@ public class TransferLibRequestDetail : SfsStoreDetailWithFromToEntityBase
///
public string CallJobNumber { get; set; }
#endregion
+
+ #region 校验
+ //箱码
+ public bool CheckPackingCodeFrom { get; set; }
+
+ public bool CheckPackingCodeTo { get; set; }
+ //批次
+ public bool CheckLotFrom { get; set; }
+
+ public bool CheckLotTo { get; set; }
+ //零件号
+ public bool CheckItemCodeFrom { get; set; }
+
+ public bool CheckItemCodeTo { get; set; }
+ //状态
+ public bool CheckStatusFrom { get; set; }
+
+ public bool CheckStatusTo { get; set; }
+ //库位
+ public bool CheckLocationCodeFrom { get; set; }
+
+ public bool CheckLocationCodeTo { get; set; }
+
+ //库位组
+ public bool CheckLocationGroupFrom { get; set; }
+
+ public bool CheckLocationGroupTo { get; set; }
+
+ //区域
+ public bool CheckLocationAreaFrom { get; set; }
+
+ public bool CheckLocationAreaTo { get; set; }
+
+ //储位
+ public bool CheckLocationErpCodeFrom { get; set; }
+
+ public bool CheckLocationErpCodeTo { get; set; }
+ //数量
+ public bool CheckQtyFrom { get; set; }
+
+ public bool CheckQtyTo { get; set; }
+
+ #endregion
+
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/TransferLibRequests/TransferLibRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/TransferLibRequests/TransferLibRequestManager.cs
index 31d512142..b7a3ab95c 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/TransferLibRequests/TransferLibRequestManager.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/TransferLibRequests/TransferLibRequestManager.cs
@@ -49,27 +49,31 @@ public class TransferLibRequestManager : SfsStoreRequestManagerBase q.RequestType).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.InjectionRequestNumber).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.Workshop).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength);
+ b.Property(q => q.JobType).HasConversion();
+ b.Property(q => q.JobStatus).HasConversion();
//Relations
b.HasMany(q => q.Details).WithOne().HasForeignKey(d => d.MasterID).IsRequired();
//Indexes
@@ -40,25 +41,17 @@ public static class InjectionJobDbContextModelCreatingExtensions
//Configure Sfs base properties
b.ConfigureSfsBase();
//Configure Job base properties
- b.ConfigureJobRecommendFromDetail();
+ //b.ConfigureJobRecommendFromDetail();
//Properties
- b.Property(q => q.ExpiredTime).IsRequired();
- b.Property(q => q.ToLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.ToLocationErpCode).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.ToWarehouseCode).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.ToLocationArea).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.ToLocationGroup).HasMaxLength(SfsPropertyConst.CodeLength);
+
b.Property(q => q.RequestLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ProdLine).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.WorkStation).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.Operation).HasMaxLength(SfsPropertyConst.CodeLength);
- b.Property(q => q.DistributionType).HasMaxLength(SfsPropertyConst.NameLength).HasConversion();
- b.Property(q => q.TruncType).HasMaxLength(SfsPropertyConst.NameLength).HasConversion();
- b.Property(q => q.PlannedSplitRule).HasMaxLength(SfsPropertyConst.NameLength).HasConversion();
b.Property(q => q.OnTheWayLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.PositionCode).HasMaxLength(SfsPropertyConst.CodeLength);
+ b.Property(q => q.OnTheWayLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
+ b.Property(q => q.PositionCode).HasMaxLength(SfsPropertyConst.CodeLength).IsRequired(false);
b.Property(q => q.RecommendType).HasMaxLength(SfsPropertyConst.CodeLength).HasConversion();
-
+ b.Property(q => q.Status).IsRequired().HasMaxLength(SfsPropertyConst.NameLength).HasConversion();
//Relations
//None
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240412052222_Update_Injection.Designer.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240412052222_Update_Injection.Designer.cs
new file mode 100644
index 000000000..13991b8f4
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Migrations/20240412052222_Update_Injection.Designer.cs
@@ -0,0 +1,29666 @@
+//
+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("20240412052222_Update_Injection")]
+ partial class Update_Injection
+ {
+ 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.AssembleJob", 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.Property("Workshop")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Job_AssembleJob", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleJobDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("DeliveryQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("DistributionType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ExpiredTime")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledContainerCode");
+
+ b.Property("HandledExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledFromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationArea");
+
+ b.Property("HandledFromLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationCode");
+
+ b.Property("HandledFromLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationErpCode");
+
+ b.Property("HandledFromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationGroup");
+
+ b.Property("HandledFromWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromWarehouseCode");
+
+ b.Property("HandledLot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledLot");
+
+ b.Property("HandledPackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledPackingCode");
+
+ b.Property("HandledProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("HandledSupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledSupplierBatch");
+
+ b.Property("ItemCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemCode");
+
+ b.Property("ItemDesc1")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc1");
+
+ b.Property("ItemDesc2")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc2");
+
+ b.Property("ItemName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemName");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("OnTheWayLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Operation")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("PlanBeginTime")
+ .HasColumnType("datetime2");
+
+ b.Property("PlannedSplitRule")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("PositionCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("RecommendArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendContainerCode");
+
+ b.Property("RecommendExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendFromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationArea");
+
+ b.Property("RecommendFromLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationCode");
+
+ b.Property("RecommendFromLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationErpCode");
+
+ b.Property("RecommendFromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationGroup");
+
+ b.Property("RecommendFromWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromWarehouseCode");
+
+ b.Property("RecommendLot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendLot");
+
+ b.Property("RecommendPackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendPackingCode");
+
+ b.Property("RecommendProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("RecommendSupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendSupplierBatch");
+
+ b.Property("RecommendType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("RoundedQty")
+ .HasColumnType("decimal(18,6)");
+
+ 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("ToLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("TruncType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Uom")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WorkStation")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MasterID");
+
+ b.ToTable("Job_AssembleJobDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleNote", 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("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("JobNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("JobNumber");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestNumber")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("RequestType")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UseOnTheWayLocation")
+ .HasColumnType("bit");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Workshop")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Store_AssembleNote", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleNoteDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ExpiredTime")
+ .HasColumnType("datetime2");
+
+ b.Property("FromContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromLocationArea");
+
+ b.Property("FromLocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromLocationCode");
+
+ b.Property("FromLocationErpCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromLocationErpCode");
+
+ b.Property("FromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromLocationGroup");
+
+ b.Property("FromLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FromPackingCode")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("FromStatus")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("FromWarehouseCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("FromWarehouseCode");
+
+ b.Property("HandledArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledContainerCode");
+
+ b.Property("HandledExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledFromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationArea");
+
+ b.Property("HandledFromLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationCode");
+
+ b.Property("HandledFromLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationErpCode");
+
+ b.Property("HandledFromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromLocationGroup");
+
+ b.Property("HandledFromWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledFromWarehouseCode");
+
+ b.Property("HandledLot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledLot");
+
+ b.Property("HandledPackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledPackingCode");
+
+ b.Property("HandledProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HandledQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("HandledSupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("HandledSupplierBatch");
+
+ b.Property("IssueTime")
+ .HasColumnType("datetime2");
+
+ b.Property("ItemCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemCode");
+
+ b.Property("ItemDesc1")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc1");
+
+ b.Property("ItemDesc2")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc2");
+
+ b.Property("ItemName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemName");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ 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("ProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Qty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)")
+ .HasColumnName("Qty");
+
+ b.Property("RecommendArriveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendContainerCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendContainerCode");
+
+ b.Property("RecommendExpireDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendFromLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationArea");
+
+ b.Property("RecommendFromLocationCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationCode");
+
+ b.Property("RecommendFromLocationErpCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationErpCode");
+
+ b.Property("RecommendFromLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromLocationGroup");
+
+ b.Property("RecommendFromWarehouseCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendFromWarehouseCode");
+
+ b.Property("RecommendLot")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendLot");
+
+ b.Property("RecommendPackingCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendPackingCode");
+
+ b.Property("RecommendProduceDate")
+ .HasColumnType("datetime2");
+
+ b.Property("RecommendQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("RecommendSupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("RecommendSupplierBatch");
+
+ b.Property("RecommendType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("StdPackQty")
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("SupplierBatch")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("SupplierBatch");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("ToContainerCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ToLocationArea")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToLocationArea");
+
+ b.Property("ToLocationCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToLocationCode");
+
+ b.Property("ToLocationErpCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToLocationErpCode");
+
+ b.Property("ToLocationGroup")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToLocationGroup");
+
+ b.Property("ToLot")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ToPackingCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ToStatus")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ToWarehouseCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ToWarehouseCode");
+
+ b.Property("Uom")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Uom");
+
+ b.Property("WorkStation")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FromPackingCode");
+
+ b.HasIndex("MasterID");
+
+ b.HasIndex("Number", "FromPackingCode", "FromLocationCode", "ToLocationCode")
+ .IsUnique()
+ .HasFilter("[FromPackingCode] IS NOT NULL");
+
+ b.ToTable("Store_AssembleNoteDetail", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleRequest", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActiveDate")
+ .HasColumnType("datetime2");
+
+ b.Property("AutoAgree")
+ .HasColumnType("bit");
+
+ b.Property("AutoCompleteJob")
+ .HasColumnType("bit");
+
+ b.Property("AutoHandle")
+ .HasColumnType("bit");
+
+ b.Property("AutoSubmit")
+ .HasColumnType("bit");
+
+ 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("DirectCreateNote")
+ .HasColumnType("bit");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property("RequestStatus")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("Type")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("UseOnTheWayLocation")
+ .HasColumnType("bit");
+
+ b.Property("Worker")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.ToTable("Store_AssembleRequest", (string)null);
+ });
+
+ modelBuilder.Entity("Win_in.Sfs.Wms.Store.Domain.AssembleRequestDetail", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExpiredTime")
+ .HasColumnType("datetime2");
+
+ b.Property("FromLocationArea")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IssuedQty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("ItemCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemCode");
+
+ b.Property("ItemDesc1")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc1");
+
+ b.Property("ItemDesc2")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemDesc2");
+
+ b.Property("ItemName")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("ItemName");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("MasterID")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)")
+ .HasColumnName("Number");
+
+ b.Property("PositionCode")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProdLine")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Qty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)")
+ .HasColumnName("Qty");
+
+ b.Property("ReceivedQty")
+ .HasPrecision(18, 6)
+ .HasColumnType("decimal(18,6)");
+
+ b.Property("RecommendType")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Remark")
+ .HasMaxLength(3072)
+ .HasColumnType("nvarchar(3072)")
+ .HasColumnName("Remark");
+
+ b.Property