From 764631f7772c89e3ea1cebdfdb6553547194ee22 Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Sat, 11 May 2024 09:40:40 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Wms.DataExchange.Application.Contracts.xml | 40 +++++ .../DTOs/CoatingIssueJobDTO.cs | 16 +- .../CoatingIssueJobAppService.cs | 35 ++--- .../KittingIssueJobAppService.cs | 141 +++++++++++++++++- ...estoClient.cs => IssueJobToRestoClient.cs} | 8 +- .../Jobs/IssueJobs/proxy/ProxyIssueJobDto.cs | 103 +++++++++++++ 6 files changed, 307 insertions(+), 36 deletions(-) rename be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/{CoatingIssueJobToRestoClient.cs => IssueJobToRestoClient.cs} (98%) create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/ProxyIssueJobDto.cs diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml index c1943c344..7e651153f 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml @@ -771,6 +771,46 @@ 最后修改时间 + + + 目标ERP库位 + + + + + 来源ERP库位 + + + + + 数量 + + + + + 物品代码 + + + + + 发料记录号 + + + + + 生效日期 + + + + + 操作员 + + + + + 明细 + + 目标ERP库位 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/CoatingIssueJobs/DTOs/CoatingIssueJobDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/CoatingIssueJobs/DTOs/CoatingIssueJobDTO.cs index f8932caf1..897b00440 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/CoatingIssueJobs/DTOs/CoatingIssueJobDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/CoatingIssueJobs/DTOs/CoatingIssueJobDTO.cs @@ -42,15 +42,15 @@ public class CoatingIssueJobDTO : SfsJobDTOBase /// /// 喷涂主表 /// -public class CoatingIssueRequestFromRestoDTO +public class IssueRequestFromRestoDTO { public string RequestNumber { set; get; } - public List Jobs { set; get; } + public List Jobs { set; get; } } /// /// 立体库发给WMS明细 /// -public class CoatingIssueJobFromRestoDetailDTO +public class IssueJobFromRestoDetailDTO { [Display(Name = "零件编号")] public string ItemCode { set; get; } @@ -64,12 +64,12 @@ public class CoatingIssueJobFromRestoDetailDTO /// /// 立体库发给立体库任务单号 /// -public class CoatingIssueJobFromRestoDTO +public class IssueJobFromRestoDTO { [Display(Name = "任务单号")] public string JobNumber { set; get; } [Display(Name = "明细")] - public List Details { set; get; } + public List Details { set; get; } } /// /// 发给立体库主表 @@ -78,7 +78,7 @@ public class CoatingIssueJobFromRestoDTO /// 发给立体库子表 /// [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")] -public partial class CoatingIssueJobToRestoDTO +public partial class IssueJobToRestoDTO { [System.Text.Json.Serialization.JsonPropertyName("uuid")] @@ -88,7 +88,7 @@ public partial class CoatingIssueJobToRestoDTO public string OperatorName { get; set; } [System.Text.Json.Serialization.JsonPropertyName("details")] - public System.Collections.Generic.ICollection Details { get; set; } + public System.Collections.Generic.ICollection Details { get; set; } } @@ -96,7 +96,7 @@ public partial class CoatingIssueJobToRestoDTO /// 发给立体库主表 /// [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")] -public partial class CoatingIssueJobToRestoDetailDTO +public partial class IssueJobToRestoDetailDTO { [System.Text.Json.Serialization.JsonPropertyName("workNo")] diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs index 50b06facf..08dfd7179 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs @@ -59,6 +59,9 @@ public class CoatingIssueJobAppService [HttpPost("add-many")] public override async Task> CreateManyAsync(List inputs) { + + + foreach (var input in inputs) { await CheckMinRowAndSetStatusAsync(input).ConfigureAwait(false); @@ -200,31 +203,23 @@ public class CoatingIssueJobAppService } - [HttpPost("sync-coating-stereo")] + [HttpPost("sync-issue-job-stereo")] public virtual async Task SyncCoatingJobStereoAsync(List input) { - foreach (var itm in input) - { - - } - - - - ReusltObject ret=new ReusltObject(); ret.Code = "1"; ret.Message = "操作成功"; ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); - List coatingIssueJobToRestoDetailDTOs = new List(); - CoatingIssueJobToRestoDTO main=new CoatingIssueJobToRestoDTO(); + List IssueJobToRestoDetailDTOs = new List(); + IssueJobToRestoDTO main=new IssueJobToRestoDTO(); main.OperatorName=CurrentUser.UserName; foreach (var job in input) { foreach (var jobitem in job.Details) { - coatingIssueJobToRestoDetailDTOs.Add(new CoatingIssueJobToRestoDetailDTO() + IssueJobToRestoDetailDTOs.Add(new IssueJobToRestoDetailDTO() { Count=jobitem.HandledToQty, ProductNo=jobitem.ItemCode, @@ -234,23 +229,21 @@ public class CoatingIssueJobAppService }); } } - main.Details=coatingIssueJobToRestoDetailDTOs; + main.Details=IssueJobToRestoDetailDTOs; #region - CoatingIssueJobToRestoClient client = new CoatingIssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); + IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); ret = await client.SyncCoatingJobStereoAsync(main).ConfigureAwait(false); #endregion return ret; - - } - [HttpPost("receive-coating-job-stereo")] - public virtual async Task SyncReciveCoatingJobStereoAsync(CoatingIssueRequestFromRestoDTO input) + [HttpPost("receive-issue-job-stereo")] + public virtual async Task SyncReciveCoatingJobStereoAsync(IssueRequestFromRestoDTO input) { List errors = new List(); var ret=new ReusltObject() @@ -261,7 +254,6 @@ public class CoatingIssueJobAppService }; try { - if (input.Jobs.Count > 0) { var inputs = input.Jobs; @@ -276,7 +268,7 @@ public class CoatingIssueJobAppService var dtos = ObjectMapper.Map, List>(entities); foreach (var itm in dtos) { - var first = inputs.FirstOrDefault(p => p.JobNumber == itm.Number); + var first = inputs.FirstOrDefault(p => p.JobNumber == itm.Number); List details = new List(); foreach (var detail in first.Details) { @@ -319,9 +311,6 @@ public class CoatingIssueJobAppService Message = string.Join(",",errors.ToArray()) }; } - - - return ret; } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 3a40b641d..d04462a11 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -1,10 +1,14 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; +using MyNamespace; using Volo.Abp; +using Volo.Abp.ObjectMapping; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; @@ -12,7 +16,10 @@ using Win_in.Sfs.Wms.Inventory.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain.Shared; +using Win_in.Sfs.Wms.Store.Jobs.IssueJobs; using Win_in.Sfs.Wms.Store.Notes; +using Win_in.Sfs.Wms.Store.Options; +using static IdentityModel.ClaimComparer; namespace Win_in.Sfs.Wms.Store.Application; @@ -28,6 +35,8 @@ public class KittingIssueJobAppService private readonly ITransferLibJobAppService _transferLibJobAppService; private readonly IKittingIssueNoteAppService _kittingIssueNoteAppService; private readonly IExpectOutAppService _expectOutAppService; + private readonly IHttpClientFactory _httpClientFactory; + private readonly IOptions _options; protected IKittingIssueRequestAppService KittingIssueRequestAppService => LazyServiceProvider.LazyGetRequiredService(); @@ -35,7 +44,13 @@ public class KittingIssueJobAppService public KittingIssueJobAppService( IKittingIssueJobRepository repository, IKittingIssueJobManager kittingIssueJobManager, ILocationAppService locationAppService, ITransferLibJobAppService transferLibJobAppService, - IKittingIssueNoteAppService kittingIssueNoteAppService, IExpectOutAppService expectOutAppService) : base( + IKittingIssueNoteAppService kittingIssueNoteAppService, IExpectOutAppService expectOutAppService + , IHttpClientFactory httpClientFactory + , IOptions options + + + + ) : base( repository, kittingIssueJobManager) { _kittingIssueJobManager = kittingIssueJobManager; @@ -43,6 +58,8 @@ public class KittingIssueJobAppService _transferLibJobAppService = transferLibJobAppService; _kittingIssueNoteAppService = kittingIssueNoteAppService; _expectOutAppService = expectOutAppService; + _httpClientFactory = httpClientFactory; + _options = options; } [HttpPost("add-many")] @@ -288,5 +305,127 @@ public class KittingIssueJobAppService await Task.CompletedTask.ConfigureAwait(false); } + + + + + + [HttpPost("sync-issue-job-stereo")] + public virtual async Task SyncCoatingJobStereoAsync(List input) + { + + ReusltObject ret = new ReusltObject(); + ret.Code = "1"; + ret.Message = "操作成功"; + ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); + + List IssueJobToRestoDetailDTOs = new List(); + IssueJobToRestoDTO main = new IssueJobToRestoDTO(); + main.OperatorName = CurrentUser.UserName; + foreach (var job in input) + { + foreach (var jobitem in job.Details) + { + IssueJobToRestoDetailDTOs.Add(new IssueJobToRestoDetailDTO() + { + Count = jobitem.HandledToQty, + ProductNo = jobitem.ItemCode, + NeedSite = jobitem.HandledToLocationCode, + WorkNo = job.Number, + TaskNo = job.Number + }); + } + } + main.Details = IssueJobToRestoDetailDTOs; + + #region + IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); + ret = await client.SyncCoatingJobStereoAsync(main).ConfigureAwait(false); + #endregion + return ret; + + } + + + + + [HttpPost("receive-issue-job-stereo")] + public virtual async Task SyncReciveCoatingJobStereoAsync(IssueRequestFromRestoDTO input) + { + List errors = new List(); + var ret = new ReusltObject() + { + Code = "1", + OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), + Message = "操作成功" + }; + try + { + if (input.Jobs.Count > 0) + { + var inputs = input.Jobs; + var numbers = inputs.Select(p => p.JobNumber); + var query = _repository.WithDetails() + .Where(p => numbers.Contains(p.Number)); + var entities = query.ToList(); + + if (input.Jobs.Count == entities.Count) + { + errors.Add("出库任务和WMS出库任务不符,请核对! \n"); + } + var dtos = ObjectMapper.Map, List>(entities); + foreach (var itm in dtos) + { + var first = inputs.FirstOrDefault(p => p.JobNumber == itm.Number); + List details = new List(); + foreach (var detail in first.Details) + { + KittingIssueJobDetailDTO dto = new KittingIssueJobDetailDTO(); + dto.HandledFromLocationCode = detail.FromLocationCode; + dto.HandledToLocationCode = detail.ToLocationCode; + dto.ItemCode = detail.ItemCode; + dto.RecommendFromQty = detail.Qty; + dto.RecommendToQty = detail.Qty; + dto.HandledFromQty = detail.Qty; + dto.HandledToQty = detail.Qty; + details.Add(dto); + } + itm.Details = details; + } + } + else + { + errors.Add("立体库确认单据里无数据! \n"); + } + } + catch (Exception ex) + { + ret = new ReusltObject() + { + Code = "2", + OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), + Message = ex.Message + }; + return ret; + } + + if (errors.Count > 0) + { + + ret = new ReusltObject() + { + Code = "2", + OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), + Message = string.Join(",", errors.ToArray()) + }; + } + return ret; + } + + + + + + #endregion } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/CoatingIssueJobToRestoClient.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs similarity index 98% rename from be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/CoatingIssueJobToRestoClient.cs rename to be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs index c86d91f04..83c608632 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/CoatingIssueJobToRestoClient.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs @@ -23,7 +23,7 @@ namespace MyNamespace using System = global::System; [System.CodeDom.Compiler.GeneratedCode("NSwag", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class CoatingIssueJobToRestoClient + public partial class IssueJobToRestoClient { #pragma warning disable 8618 private string _baseUrl; @@ -33,7 +33,7 @@ namespace MyNamespace private static System.Lazy _settings = new System.Lazy(CreateSerializerSettings, true); #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - public CoatingIssueJobToRestoClient(string baseUrl, System.Net.Http.HttpClient httpClient) + public IssueJobToRestoClient(string baseUrl, System.Net.Http.HttpClient httpClient) #pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. { BaseUrl = baseUrl; @@ -68,7 +68,7 @@ namespace MyNamespace /// Success /// A server side error occurred. - public virtual System.Threading.Tasks.Task SyncCoatingJobStereoAsync(CoatingIssueJobToRestoDTO body) + public virtual System.Threading.Tasks.Task SyncCoatingJobStereoAsync(IssueJobToRestoDTO body) { return SyncCoatingJobStereoAsync(body, System.Threading.CancellationToken.None); } @@ -76,7 +76,7 @@ namespace MyNamespace /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// Success /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SyncCoatingJobStereoAsync(CoatingIssueJobToRestoDTO body, System.Threading.CancellationToken cancellationToken) + public virtual async System.Threading.Tasks.Task SyncCoatingJobStereoAsync(IssueJobToRestoDTO body, System.Threading.CancellationToken cancellationToken) { var client_ = _httpClient; var disposeClient_ = false; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/ProxyIssueJobDto.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/ProxyIssueJobDto.cs new file mode 100644 index 000000000..e60ffe8ba --- /dev/null +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/ProxyIssueJobDto.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy; +/// +/// 喷涂主表 +/// +public class IssueRequestFromRestoDTO +{ + public string RequestNumber { set; get; } + public List Jobs { set; get; } +} +/// +/// 立体库发给WMS明细 +/// +public class IssueJobFromRestoDetailDTO +{ + [Display(Name = "零件编号")] + public string ItemCode { set; get; } + [Display(Name = "目标库位")] + public string ToLocationCode { set; get; } + [Display(Name = "来源库位")] + public string FromLocationCode { set; get; } + [Display(Name = "数量")] + public decimal Qty { set; get; } +} +/// +/// 立体库发给立体库任务单号 +/// +public class IssueJobFromRestoDTO +{ + [Display(Name = "任务单号")] + public string JobNumber { set; get; } + [Display(Name = "明细")] + public List Details { set; get; } +} +/// +/// 发给立体库主表 +/// +/// +/// 发给立体库子表 +/// +[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")] +public partial class IssueJobToRestoDTO +{ + + [System.Text.Json.Serialization.JsonPropertyName("uuid")] + public System.Guid Uuid { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("operatorName")] + public string OperatorName { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("details")] + public System.Collections.Generic.ICollection Details { get; set; } + +} + +/// +/// 发给立体库主表 +/// +[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")] +public partial class IssueJobToRestoDetailDTO +{ + + [System.Text.Json.Serialization.JsonPropertyName("workNo")] + public string WorkNo { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("taskNo")] + public string TaskNo { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("needSite")] + public string NeedSite { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("productNo")] + public string ProductNo { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("count")] + public decimal Count { get; set; } + +} + +/// +/// 返回结果 +/// +[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")] +public partial class ReusltObject +{ + + [System.Text.Json.Serialization.JsonPropertyName("code")] + public string Code { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("message")] + public string Message { get; set; } + + [System.Text.Json.Serialization.JsonPropertyName("operateTime")] + public string OperateTime { get; set; } + +} + From 3e4ac9502aa4c19dec8c43eaa7586f221ab8d471 Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Sat, 11 May 2024 09:44:16 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KittingIssueJobAppService.cs | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index a0c4c9546..c8b277e16 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -335,29 +335,40 @@ public class KittingIssueJobAppService ret.Code = "1"; ret.Message = "操作成功"; ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); - - List IssueJobToRestoDetailDTOs = new List(); - IssueJobToRestoDTO main = new IssueJobToRestoDTO(); - main.OperatorName = CurrentUser.UserName; - foreach (var job in input) + try { - foreach (var jobitem in job.Details) + + List IssueJobToRestoDetailDTOs = new List(); + IssueJobToRestoDTO main = new IssueJobToRestoDTO(); + main.OperatorName = CurrentUser.UserName; + foreach (var job in input) { - IssueJobToRestoDetailDTOs.Add(new IssueJobToRestoDetailDTO() + foreach (var jobitem in job.Details) { - Count = jobitem.HandledToQty, - ProductNo = jobitem.ItemCode, - NeedSite = jobitem.HandledToLocationCode, - WorkNo = job.Number, - TaskNo = job.Number - }); + IssueJobToRestoDetailDTOs.Add(new IssueJobToRestoDetailDTO() + { + Count = jobitem.HandledToQty, + ProductNo = jobitem.ItemCode, + NeedSite = jobitem.HandledToLocationCode, + WorkNo = job.Number, + TaskNo = job.Number + }); + } } + main.Details = IssueJobToRestoDetailDTOs; + + #region + IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); + ret = await client.SyncCoatingJobStereoAsync(main).ConfigureAwait(false); } - main.Details = IssueJobToRestoDetailDTOs; + catch(Exception ex) { - #region - IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); - ret = await client.SyncCoatingJobStereoAsync(main).ConfigureAwait(false); + ret = new ReusltObject(); + ret.Code = "1"; + ret.Message=ex.Message; + ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); + + } #endregion return ret; From 266b0b34d38362d2ae2b8258dce3a9bd17f7c3ee Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Sat, 11 May 2024 10:03:24 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E5=BA=95=E7=9B=98=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9Kitting=E7=AB=8B=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Chassis/DTOs/ChassisDTO.cs | 8 ++++++++ .../Chassis/Inputs/ChassisEditInput.cs | 8 ++++++++ .../Chassis/Inputs/ChassisImportInput.cs | 8 ++++++++ .../KittingIssueJobAppService.cs | 20 +++++++++++++++++-- .../Chassis/Chassis.cs | 8 ++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/DTOs/ChassisDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/DTOs/ChassisDTO.cs index 54dc81533..04352fd9b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/DTOs/ChassisDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/DTOs/ChassisDTO.cs @@ -45,4 +45,12 @@ public class ChassisDTO : SfsBasicDTOBase /// [Display(Name = "执行位置排序列")] public long SortNumber { get; set; } + + public string ItemCode { get; set; } + + public string ItemName { get; set; } + + public string ItemDesc1 { get; set; } + + public string ItemDesc2 { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisEditInput.cs index d3265a664..f4510380e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisEditInput.cs @@ -45,4 +45,12 @@ public class ChassisEditInput /// [Display(Name = "执行位置排序列")] public long SortNumber { get; set; } + + public string ItemCode { get; set; } + + public string ItemName { get; set; } + + public string ItemDesc1 { get; set; } + + public string ItemDesc2 { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisImportInput.cs index 538b52051..cfa5d46e1 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisImportInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Chassis/Inputs/ChassisImportInput.cs @@ -48,4 +48,12 @@ public class ChassisImportInput : SfsStoreImportInputBase /// [Display(Name = "执行位置排序列")] public long SortNumber { get; set; } + + public string ItemCode { get; set; } + + public string ItemName { get; set; } + + public string ItemDesc1 { get; set; } + + public string ItemDesc2 { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 025cf2437..05b1fb9af 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -56,7 +56,8 @@ public class KittingIssueJobAppService await CheckDimensionalStorehouseAsync(input).ConfigureAwait(false); } - return await base.CreateManyAsync(inputs).ConfigureAwait(false); + var kittingIssueJobDtos=await base.CreateManyAsync(inputs).ConfigureAwait(false); + } [HttpPost("")] @@ -268,8 +269,23 @@ public class KittingIssueJobAppService if (loctionDto.Type == EnumLocationType.DimensionalStorehouse) { input.JobStatus = EnumJobStatus.Wait; + } + } + /// + /// 判断是不是在立体库 + /// + /// + /// + private async Task CheckDimensionalStorehouseAsync(KittingIssueJob kittingIssueJob) + { + var jobDetailInputdetail = kittingIssueJob.Details.FirstOrDefault(); - //todo 调用立库接口 + var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode) + .ConfigureAwait(false); + + if (loctionDto.Type == EnumLocationType.DimensionalStorehouse) + { + //TODO 立体库 } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Chassis/Chassis.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Chassis/Chassis.cs index 3113a77c2..0bd12d807 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Chassis/Chassis.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Chassis/Chassis.cs @@ -46,4 +46,12 @@ public class Chassis : SfsAggregateRootBase /// [Display(Name = "执行位置排序列")] public long SortNumber { get; set; } + + public string ItemCode { get; set; } + + public string ItemName { get; set; } + + public string ItemDesc1 { get; set; } + + public string ItemDesc2 { get; set; } } From c07d3a5b1fd8395eef13d99985e9e25cab67a6f3 Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Sat, 11 May 2024 10:04:22 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AB=8B=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Wms.DataExchange.Application.Contracts.xml | 40 ------------------- .../KittingIssueJobAppService.cs | 10 +++-- 2 files changed, 6 insertions(+), 44 deletions(-) diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml index 7e651153f..c1943c344 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml @@ -771,46 +771,6 @@ 最后修改时间 - - - 目标ERP库位 - - - - - 来源ERP库位 - - - - - 数量 - - - - - 物品代码 - - - - - 发料记录号 - - - - - 生效日期 - - - - - 操作员 - - - - - 明细 - - 目标ERP库位 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 14a9271d3..25bd47aa0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -73,7 +73,8 @@ public class KittingIssueJobAppService } var kittingIssueJobDtos=await base.CreateManyAsync(inputs).ConfigureAwait(false); - + await CheckDimensionalStorehouseAsync(kittingIssueJobDtos).ConfigureAwait(false); + return kittingIssueJobDtos; } [HttpPost("")] @@ -287,14 +288,15 @@ public class KittingIssueJobAppService input.JobStatus = EnumJobStatus.Wait; } } + /// /// 判断是不是在立体库 /// - /// + /// /// - private async Task CheckDimensionalStorehouseAsync(KittingIssueJob kittingIssueJob) + private async Task CheckDimensionalStorehouseAsync(KittingIssueJobDTO kittingIssueJobDto) { - var jobDetailInputdetail = kittingIssueJob.Details.FirstOrDefault(); + var jobDetailInputdetail = kittingIssueJobDto.Details.FirstOrDefault(); var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode) .ConfigureAwait(false); From 628ecb42796758c3b223ca3872577dfcab3f66c1 Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Sat, 11 May 2024 10:06:24 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9Kitting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KittingIssueJobs/KittingIssueJobAppService.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 25bd47aa0..9d40212fd 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -73,7 +73,11 @@ public class KittingIssueJobAppService } var kittingIssueJobDtos=await base.CreateManyAsync(inputs).ConfigureAwait(false); - await CheckDimensionalStorehouseAsync(kittingIssueJobDtos).ConfigureAwait(false); + foreach (var kittingIssueJobDto in kittingIssueJobDtos) + { + await CheckDimensionalStorehouseAsync(kittingIssueJobDto).ConfigureAwait(false); + } + return kittingIssueJobDtos; } @@ -83,7 +87,10 @@ public class KittingIssueJobAppService await CheckMinRowAndSetStatusAsync(input).ConfigureAwait(false); await CheckDimensionalStorehouseAsync(input).ConfigureAwait(false); - return await base.CreateAsync(input).ConfigureAwait(false); + var kittingIssueJobDto=await base.CreateAsync(input).ConfigureAwait(false); + await CheckDimensionalStorehouseAsync(kittingIssueJobDto).ConfigureAwait(false); + + return kittingIssueJobDto; } [HttpPost("invalid")] From 153e8bda1916d44c394b96fa14c4a6af2b34bb93 Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Sat, 11 May 2024 10:20:32 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KittingIssueJobAppService.cs | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index c8b277e16..7fa38ce32 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -285,6 +285,12 @@ public class KittingIssueJobAppService { input.JobStatus = EnumJobStatus.Wait; + + + + + + //todo 调用立库接口 } } @@ -327,8 +333,8 @@ public class KittingIssueJobAppService - [HttpPost("sync-issue-job-stereo")] - public virtual async Task SyncCoatingJobStereoAsync(List input) + //[HttpPost("sync-issue-job-stereo")] + private async Task SyncCoatingJobStereoAsync(List input,string p_loc) { ReusltObject ret = new ReusltObject(); @@ -337,7 +343,6 @@ public class KittingIssueJobAppService ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); try { - List IssueJobToRestoDetailDTOs = new List(); IssueJobToRestoDTO main = new IssueJobToRestoDTO(); main.OperatorName = CurrentUser.UserName; @@ -357,17 +362,20 @@ public class KittingIssueJobAppService } main.Details = IssueJobToRestoDetailDTOs; + +#if DEBUG + string json= System.Text.Json.JsonSerializer.Serialize(main); +#endif + #region IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); ret = await client.SyncCoatingJobStereoAsync(main).ConfigureAwait(false); } catch(Exception ex) { - ret = new ReusltObject(); - ret.Code = "1"; + ret.Code = "2"; ret.Message=ex.Message; ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); - } #endregion return ret; @@ -380,6 +388,10 @@ public class KittingIssueJobAppService [HttpPost("receive-issue-job-stereo")] public virtual async Task SyncReciveCoatingJobStereoAsync(IssueRequestFromRestoDTO input) { + +#if DEBUG + var json= System.Text.Json.JsonSerializer.Serialize(input); +#endif List errors = new List(); var ret = new ReusltObject() { @@ -449,11 +461,5 @@ public class KittingIssueJobAppService } return ret; } - - - - - - #endregion } From a411ca886bd2c95ff661929cdea49715a5a219bd Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Sat, 11 May 2024 10:23:12 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 920a737e1..8dd067c13 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -373,7 +373,7 @@ public class KittingIssueJobAppService { Count = jobitem.HandledToQty, ProductNo = jobitem.ItemCode, - NeedSite = jobitem.HandledToLocationCode, + NeedSite = p_loc, WorkNo = job.Number, TaskNo = job.Number }); From 9f700b8e709d50215e8b5eb29337b58487132821 Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Sat, 11 May 2024 10:28:14 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 8dd067c13..52973310b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -311,6 +311,8 @@ public class KittingIssueJobAppService if (loctionDto.Type == EnumLocationType.DimensionalStorehouse) { //TODO 立体库 + await SyncCoatingJobStereoAsync(new List { kittingIssueJobDto }, loctionDto.Code).ConfigureAwait(false); + } } @@ -430,7 +432,7 @@ public class KittingIssueJobAppService if (input.Jobs.Count == entities.Count) { - errors.Add("出库任务和WMS出库任务不符,请核对! \n"); + errors.Add("提交出库任务和WMS出库任务不符,请核对! \n"); } var dtos = ObjectMapper.Map, List>(entities); foreach (var itm in dtos) @@ -467,7 +469,6 @@ public class KittingIssueJobAppService }; return ret; } - if (errors.Count > 0) { From ac36de8c42dc03e50eb66fd841e6aded056faebb Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Sat, 11 May 2024 10:48:30 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KittingIssueJobs/KittingIssueJobAppService.cs | 12 +++++++++--- .../Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 52973310b..b8c79e41e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -311,9 +311,14 @@ public class KittingIssueJobAppService if (loctionDto.Type == EnumLocationType.DimensionalStorehouse) { //TODO 立体库 - await SyncCoatingJobStereoAsync(new List { kittingIssueJobDto }, loctionDto.Code).ConfigureAwait(false); - + var ret = await SyncCoatingJobStereoAsync(new List { kittingIssueJobDto }, loctionDto.Code).ConfigureAwait(false); + if (ret.Code != "1") + { + throw new UserFriendlyException($"调用立体库不成功!原因:{ret.Message}"); + } } + + } /// @@ -354,7 +359,7 @@ public class KittingIssueJobAppService - //[HttpPost("sync-issue-job-stereo")] + private async Task SyncCoatingJobStereoAsync(List input,string p_loc) { @@ -386,6 +391,7 @@ public class KittingIssueJobAppService #if DEBUG string json= System.Text.Json.JsonSerializer.Serialize(main); + _options.Value.Address = "http://localhost:59094/CargoState/SyncCoatingJobStereo";//测试地址 #endif #region diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs index 83c608632..0cbd5776c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs @@ -94,7 +94,7 @@ namespace MyNamespace var urlBuilder_ = new System.Text.StringBuilder(); if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); // Operation Path: "CargoState/SyncCoatingJobStereo" - urlBuilder_.Append("CargoState/SyncCoatingJobStereo"); + urlBuilder_.Append("CargoState/SyncCoatingJobStereo");//修改路由 PrepareRequest(client_, request_, urlBuilder_);