From e0279f6c2f757ee3a913914d8528d72d21ecbb26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Fri, 18 Oct 2024 14:23:00 +0800 Subject: [PATCH 01/12] =?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 --- .../DTOs/UnplannedIssueRequestDTO.cs | 4 ++ .../Inputs/UnplannedIssueRequestEditInput.cs | 2 +- .../UnplannedIssueRequestImportInput.cs | 4 +- ...lannedIssueRequestForDongyangAppService.cs | 38 ++++++++++++++++--- .../UnplannedIssueRequest.cs | 11 ++++++ 5 files changed, 52 insertions(+), 7 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/DTOs/UnplannedIssueRequestDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/DTOs/UnplannedIssueRequestDTO.cs index 9688315e9..d47dcfb48 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/DTOs/UnplannedIssueRequestDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/DTOs/UnplannedIssueRequestDTO.cs @@ -40,6 +40,10 @@ public class UnplannedIssueRequestDTO : SfsStoreRequestDTOBase [Display(Name = "调出库位")] [Required(ErrorMessage = "{0}是必填项")] - public string LocationErpCode { get; set; } + public string FromLocationErpCode { get; set; } /// /// 专案 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs index f4edec33c..f307beeab 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs @@ -38,7 +38,9 @@ public class UnplannedIssueRequestImportInput : SfsStoreImportInputBase /// [Display(Name = "调出库位")] [Required(ErrorMessage = "调出库位不能为空")] - public string LocationErpCode { get; set; } + + + public string FromErpLocationCode { get; set; } /// /// 专案 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 090493880..21e9ed830 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -4,6 +4,8 @@ using System.ComponentModel.DataAnnotations; using System.IO; using System.Linq; using System.Threading.Tasks; +using DocumentFormat.OpenXml.Bibliography; +using DocumentFormat.OpenXml.Office2016.Excel; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -118,7 +120,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA || string.IsNullOrEmpty(itm.ItemCode) || itm.Qty == 0 || string.IsNullOrEmpty(itm.ProjCapacityCode) - || string.IsNullOrEmpty(itm.LocationErpCode) + || string.IsNullOrEmpty(itm.FromLocationErpCode) ) { @@ -232,7 +234,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA detail.ItemCode = itm.ItemCode; detail.Qty = itm.Qty; - detail.LocationErpCode = itm.LocationErpCode; + detail.LocationErpCode = itm.FromLocationErpCode; detail.LocationCode = "Random"; detail.WarehouseCode ="Random"; detail.LocationGroup ="Random"; @@ -314,11 +316,34 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA // $"不是{EnumUnplannedReceiptType.Wip.GetDisplayName()}" + // $"或{EnumUnplannedReceiptType.Raw.GetDisplayName()}】"); //} + //unplannedReceiptRequest.UnplannedIssueType = type; + unplannedReceiptRequest.SetId(GuidGenerator.Create()); + unplannedReceiptRequest.AutoCompleteJob = false; + unplannedReceiptRequest.AutoSubmit = true; + unplannedReceiptRequest.AutoAgree = false; + unplannedReceiptRequest.AutoHandle = false; + unplannedReceiptRequest.DirectCreateNote = false; + + unplannedReceiptRequest.BuildDate = DateTime.Now; + + + + + await SetRequestAutoPropertiesAsync(unplannedReceiptRequest).ConfigureAwait(false); await SetEntityPropertiesAsync(unplannedReceiptRequest).ConfigureAwait(false); foreach (var detail in unplannedReceiptRequest.Details) { + detail.LocationErpCode = unplannedReceiptRequest.FromErpLocationCode; + detail.LocationCode = "Random"; + detail.WarehouseCode = "Random"; + detail.LocationGroup = "Random"; + detail.LocationArea = "Random"; + //detail.CaseCode = unplannedReceiptRequest.CaseCode; + //detail.ProjCapacityCode = first.ProjCapacityCode; + //detail.OnceBusiCode = first.OnceBusiCode; + //detail.Explain = first.Explain; await SetDetailPropertiesAsync(detail).ConfigureAwait(false); } } @@ -511,16 +536,19 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA } } + + + protected async Task CheckBalanceAsync(UnplannedIssueRequestImportInput importInput, List validationRresult) { var balance = await BalanceAclService.GetByItemLocationAndPackingAsync( string.Empty, importInput.ItemCode, - importInput.LocationErpCode).ConfigureAwait(false); + importInput.FromErpLocationCode).ConfigureAwait(false); if (balance == null) { - validationRresult.Add(new ValidationResult($"ERP料号{importInput.ItemCode}在库位{importInput.LocationErpCode}没有库存记录", new string[] { "库存余额" })); + validationRresult.Add(new ValidationResult($"ERP料号{importInput.ItemCode}在库位{importInput.FromErpLocationCode}没有库存记录", new string[] { "库存余额" })); } else { @@ -568,7 +596,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA protected override async Task ValidateImportModelAsync(UnplannedIssueRequestImportInput model, List validationRresult) { _ = await CheckItemBasicAsync(model, validationRresult).ConfigureAwait(false); - await CheckErpLocationAsync(model.LocationErpCode, validationRresult).ConfigureAwait(false); + await CheckErpLocationAsync(model.FromErpLocationCode, validationRresult).ConfigureAwait(false); await CheckOnceBusiCodeAsync(model, validationRresult).ConfigureAwait(false);//次交易码 //await CheckCaseCodeAsync(model, validationRresult).ConfigureAwait(false);//专案代码 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs index 34ff08816..95b38244d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs @@ -44,4 +44,15 @@ public class UnplannedIssueRequest : SfsStoreRequestAggregateRootBase + /// 储位 + /// + [Display(Name = "储位")] + [Required(ErrorMessage = "储位不能为空")] + public string FromErpLocationCode { get; set; } + + + } From 35f2b88733ad43d60f24b43f727ab7fa6a4fb685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Fri, 18 Oct 2024 14:44:13 +0800 Subject: [PATCH 02/12] =?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 --- ...lannedIssueRequestForDongyangAppService.cs | 89 +++++++++---------- .../UnplannedIssueRequestEventHandler.cs | 16 ++-- 2 files changed, 50 insertions(+), 55 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 21e9ed830..5cd4d0a35 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -98,52 +98,47 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA /// /// /// - [HttpPost("import-dongyang")] - public async Task ImportDYAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file) - { - - try - { - - using var ms = new MemoryStream(); - await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false); - var inputFileBytes = ms.GetAllBytes(); - var importList = _excelService.Import(inputFileBytes).ToList(); - await CreateByDYOAsync(importList, EnumUnplannedIssueType.IMPORT).ConfigureAwait(false); - - - List errorsList = new List(); - - foreach (var itm in importList) - { - if (string.IsNullOrEmpty(itm.CaseCode) - || string.IsNullOrEmpty(itm.ItemCode) - || itm.Qty == 0 - || string.IsNullOrEmpty(itm.ProjCapacityCode) - || string.IsNullOrEmpty(itm.FromLocationErpCode) + //[HttpPost("import-dongyang")] + //public async Task ImportDYAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file) + //{ + // try + // { + // using var ms = new MemoryStream(); + // await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false); + // var inputFileBytes = ms.GetAllBytes(); + // var importList = _excelService.Import(inputFileBytes).ToList(); + // await CreateByDYOAsync(importList).ConfigureAwait(false); + // List errorsList = new List(); + // foreach (var itm in importList) + // { + // if (string.IsNullOrEmpty(itm.CaseCode) + // || string.IsNullOrEmpty(itm.ItemCode) + // || itm.Qty == 0 + // || string.IsNullOrEmpty(itm.ProjCapacityCode) + // || string.IsNullOrEmpty(itm.FromLocationErpCode) - ) - { - itm.Explain = "此项错误"; - errorsList.Add(itm); - } - } - - if (errorsList.Count > 0) - { - var fileContent = _excelService.Export(errorsList); - return new TestResult(fileContent.FileContents, ExportImportService.ContentType) { FileDownloadName =fileContent.FileDownloadName }; - } - - var fileContent1 = _excelService.Export(importList); + // ) + // { + // itm.Explain = "此项错误"; + // errorsList.Add(itm); + // } + // } + + // if (errorsList.Count > 0) + // { + // var fileContent = _excelService.Export(errorsList); + // return new TestResult(fileContent.FileContents, ExportImportService.ContentType) { FileDownloadName =fileContent.FileDownloadName }; + // } + + // var fileContent1 = _excelService.Export(importList); - return new JsonResult(new { Code = 200, FileDownloadName = fileContent1.FileDownloadName }); - } - catch (Exception e) - { - throw new UserFriendlyException(e.Message); - } - } + // return new JsonResult(new { Code = 200, FileDownloadName = fileContent1.FileDownloadName }); + // } + // catch (Exception e) + // { + // throw new UserFriendlyException(e.Message); + // } + //} @@ -191,7 +186,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA UnplannedIssueRequestDTO request = new UnplannedIssueRequestDTO(); try { - return await CreateByDYOAsync(p_list, EnumUnplannedIssueType.OA, true).ConfigureAwait(false); + return await CreateByDYOAsync(p_list, true).ConfigureAwait(false); } catch (Exception e) { @@ -205,7 +200,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA - protected async Task CreateByDYOAsync(List p_list, EnumUnplannedIssueType type, bool isAutoSubmit=false) + protected async Task CreateByDYOAsync(List p_list, bool isAutoSubmit=false) { UnplannedIssueRequest request = new UnplannedIssueRequest(); if (p_list.Count == 0) @@ -214,7 +209,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA } var first = p_list.FirstOrDefault(); - request.UnplannedIssueType = type; + request.SetId(GuidGenerator.Create()); request.AutoCompleteJob = false; request.AutoSubmit = isAutoSubmit; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs index db0b9bf9f..416610a25 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs @@ -95,20 +95,20 @@ public class UnplannedIssueRequestEventHandler } else { - if (entity.UnplannedIssueType == EnumUnplannedIssueType.OA || entity.UnplannedIssueType == EnumUnplannedIssueType.IMPORT) - { + //if (entity.UnplannedIssueType == EnumUnplannedIssueType.OA || entity.UnplannedIssueType == EnumUnplannedIssueType.IMPORT) + //{ //var job = await BuildUnplannedIssueJobCreateInputAsync(entity).ConfigureAwait(false); var request= new UnplannedIssueRequest(); request.InjectFrom(entity); await _unplannedIssueJobApp.CreateByRecommendAsync(request).ConfigureAwait(false); - } - else - { - var job = await BuildUnplannedIssueJobCreateInputAsync(entity).ConfigureAwait(false); - await _unplannedIssueJobApp.CreateAsync(job).ConfigureAwait(false); - } + //} + //else + //{ + // var job = await BuildUnplannedIssueJobCreateInputAsync(entity).ConfigureAwait(false); + // await _unplannedIssueJobApp.CreateAsync(job).ConfigureAwait(false); + //} } } From 49b5b26b52f8f5ae16170bc93959594b7e69e646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Fri, 18 Oct 2024 16:42:58 +0800 Subject: [PATCH 03/12] =?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 --- .../UnplannedIssueRequestImportInput.cs | 75 +------ ...lannedIssueRequestForDongyangAppService.cs | 199 ++++++++++-------- .../UnplannedIssueRequest.cs | 2 +- 3 files changed, 114 insertions(+), 162 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs index f307beeab..883e30f40 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs @@ -39,9 +39,10 @@ public class UnplannedIssueRequestImportInput : SfsStoreImportInputBase [Display(Name = "调出库位")] [Required(ErrorMessage = "调出库位不能为空")] - public string FromErpLocationCode { get; set; } + + /// /// 专案 /// @@ -91,77 +92,7 @@ public class UnplannedIssueRequestImportInput : SfsStoreImportInputBase public string Explain { get; set; } - - - ///// - ///// 部门代码 - ///// - //[Display(Name = "部门代码")] - //public string DeptCode { get; set; } - - ///// - ///// 部门名称 - ///// - //[Display(Name = "部门名称")] - //public string DeptName { get; set; } - - ///// - ///// 料号 - ///// - //[Display(Name = "料号")] - //[Required(ErrorMessage = "{0}是必填项")] - //public string ItemCode { get; set; } - - - - - - ///// - ///// 数量 - ///// - //[Display(Name = "数量")] - //[Required(ErrorMessage = "{0}是必填项")] - //public decimal Qty { get; set; } - - ///// - ///// 单位 - ///// - //[Display(Name = "单位")] - //public string Uom { get; set; } - - - - ///// - ///// 调出库位 - ///// - //[Display(Name = "调出库位")] - //[Required(ErrorMessage = "{0}是必填项")] - //public string LocationErpCode { get; set; } - ///// - ///// 专案 - ///// - //[Display(Name = "专案")] - //[Required(ErrorMessage = "{0}是必填项")] - //public string CaseCode { get; set; } - ///// - ///// 项目分类 - ///// - //[Display(Name = "项目分类")] - //[Required(ErrorMessage = "{0}是必填项")] - //public string ProjCapacityCode { get; set; } - - ///// - ///// 次交易码 - ///// - //[Display(Name = "次交易码")] - //[Required(ErrorMessage = "{0}是必填项")] - //public string OnceBusiCode { get; set; } - ///// - ///// 说明 - ///// - //[Display(Name = "说明")] - //public string Explain { get; set; } - + diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 5cd4d0a35..d061f13b8 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -84,7 +84,6 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA entity.AutoAgree = true; entity.AutoHandle = true; entity.DirectCreateNote = false; - await _unplannedIssueRequestManager.CreateAsync(entity).ConfigureAwait(false); @@ -116,7 +115,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA // || itm.Qty == 0 // || string.IsNullOrEmpty(itm.ProjCapacityCode) // || string.IsNullOrEmpty(itm.FromLocationErpCode) - + // ) // { // itm.Explain = "此项错误"; @@ -127,11 +126,56 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA // if (errorsList.Count > 0) // { // var fileContent = _excelService.Export(errorsList); - // return new TestResult(fileContent.FileContents, ExportImportService.ContentType) { FileDownloadName =fileContent.FileDownloadName }; + // return new TestResult(fileContent.FileContents, ExportImportService.ContentType) { FileDownloadName = fileContent.FileDownloadName }; // } // var fileContent1 = _excelService.Export(importList); - + + // return new JsonResult(new { Code = 200, FileDownloadName = fileContent1.FileDownloadName }); + // } + // catch (Exception e) + // { + // throw new UserFriendlyException(e.Message); + // } + //} + + + //[HttpPost("import")] + //[Consumes("multipart/form-data")] + ////[UnitOfWork] + //public override async Task ImportAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file) + //{ + // try + // { + // using var ms = new MemoryStream(); + // await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false); + // var inputFileBytes = ms.GetAllBytes(); + // var importList = _excelService.Import(inputFileBytes).ToList(); + // await CreateByDYOAsync(importList).ConfigureAwait(false); + // List errorsList = new List(); + // foreach (var itm in importList) + // { + // if (string.IsNullOrEmpty(itm.CaseCode) + // || string.IsNullOrEmpty(itm.ItemCode) + // || itm.Qty == 0 + // || string.IsNullOrEmpty(itm.ProjCapacityCode) + // || string.IsNullOrEmpty(itm.FromErpLocationCode) + + // ) + // { + // itm.Explain = "此项错误"; + // errorsList.Add(itm); + // } + // } + + // if (errorsList.Count > 0) + // { + // var fileContent = _excelService.Export(errorsList); + // return new TestResult(fileContent.FileContents, ExportImportService.ContentType) { FileDownloadName = fileContent.FileDownloadName }; + // } + + // var fileContent1 = _excelService.Export(importList); + // return new JsonResult(new { Code = 200, FileDownloadName = fileContent1.FileDownloadName }); // } // catch (Exception e) @@ -141,7 +185,10 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA //} - + + + + @@ -199,8 +246,59 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA + protected async Task CreateByDYOAsync(List p_list, bool isAutoSubmit = false) + { + UnplannedIssueRequest request = new UnplannedIssueRequest(); + if (p_list.Count == 0) + { + throw new UserFriendlyException("导入内容为空请填写!"); + } - protected async Task CreateByDYOAsync(List p_list, bool isAutoSubmit=false) + var first = p_list.FirstOrDefault(); + + request.SetId(GuidGenerator.Create()); + request.AutoCompleteJob = false; + request.AutoSubmit = isAutoSubmit; + request.AutoAgree = false; + request.AutoHandle = false; + request.DirectCreateNote = false; + request.DeptCode = first.DeptCode; + request.DeptName = first.DeptName; + request.BuildDate = DateTime.Now; + request.OANumber = first.OANumber; + + await SetEntityPropertiesAsync(request).ConfigureAwait(false); + List detailList = new List(); + foreach (var itm in p_list) + { + var detail = new UnplannedIssueRequestDetail(); + detail.ItemCode = itm.ItemCode; + detail.Qty = itm.Qty; + + detail.LocationErpCode = itm.FromLocationErpCode; + detail.LocationCode = "Random"; + detail.WarehouseCode = "Random"; + detail.LocationGroup = "Random"; + detail.LocationArea = "Random"; + detail.CaseCode = first.CaseCode; + detail.ProjCapacityCode = first.ProjCapacityCode; + detail.OnceBusiCode = first.OnceBusiCode; + detail.Explain = first.Explain; + + + + await SetDetailPropertiesAsync(detail).ConfigureAwait(false); + detailList.Add(detail); + } + + request.Details = detailList; + await _unplannedIssueRequestManager.CreateAsync(request).ConfigureAwait(false); + var dto = ObjectMapper.Map(request); + return dto; + + } + + protected async Task CreateByDYOAsync(List p_list, bool isAutoSubmit=false) { UnplannedIssueRequest request = new UnplannedIssueRequest(); if (p_list.Count == 0) @@ -216,10 +314,9 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA request.AutoAgree = false; request.AutoHandle = false; request.DirectCreateNote = false; - request.DeptCode = first.DeptCode; - request.DeptName = first.DeptName; + request.BuildDate= DateTime.Now; - request.OANumber=first.OANumber; + await SetEntityPropertiesAsync(request).ConfigureAwait(false); List detailList = new List(); @@ -229,7 +326,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA detail.ItemCode = itm.ItemCode; detail.Qty = itm.Qty; - detail.LocationErpCode = itm.FromLocationErpCode; + detail.LocationErpCode = itm.FromErpLocationCode; detail.LocationCode = "Random"; detail.WarehouseCode ="Random"; detail.LocationGroup ="Random"; @@ -238,9 +335,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA detail.ProjCapacityCode = first.ProjCapacityCode; detail.OnceBusiCode = first.OnceBusiCode; detail.Explain = first.Explain; - - - + await SetDetailPropertiesAsync(detail).ConfigureAwait(false); detailList.Add(detail); } @@ -312,22 +407,15 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA // $"或{EnumUnplannedReceiptType.Raw.GetDisplayName()}】"); //} //unplannedReceiptRequest.UnplannedIssueType = type; - unplannedReceiptRequest.SetId(GuidGenerator.Create()); + unplannedReceiptRequest.AutoCompleteJob = false; unplannedReceiptRequest.AutoSubmit = true; unplannedReceiptRequest.AutoAgree = false; unplannedReceiptRequest.AutoHandle = false; unplannedReceiptRequest.DirectCreateNote = false; - unplannedReceiptRequest.BuildDate = DateTime.Now; - - - - - await SetRequestAutoPropertiesAsync(unplannedReceiptRequest).ConfigureAwait(false); await SetEntityPropertiesAsync(unplannedReceiptRequest).ConfigureAwait(false); - foreach (var detail in unplannedReceiptRequest.Details) { detail.LocationErpCode = unplannedReceiptRequest.FromErpLocationCode; @@ -406,74 +494,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA detail.LocationArea = location.AreaCode; detail.LocationCode = location.Code; } - //string packingcode = string.Empty; - //if(type!= EnumUnplannedIssueType.Wip) - //{ - // packingcode = detail.PackingCode; - //} - //var balance = await _balanceAppService.GetByItemLocationAndPackingAsync( - // packingcode, - // detail.ItemCode, - // detail.LocationCode).ConfigureAwait(false); - - //if (balance != null) - //{ - // detail.SupplierBatch = balance.SupplierBatch; - // detail.ArriveDate = balance.ArriveDate; - // detail.ProduceDate = balance.ProduceDate; - // detail.ExpireDate = balance.ExpireDate; - - // detail.Lot = balance.Lot; - // detail.ContainerCode = balance.ContainerCode; - // detail.PackingCode = balance.PackingCode; - // detail.Qty = detail.Qty; - // detail.Status = balance.Status; - //} - - //if (!string.IsNullOrEmpty(detail)) - //{ - // var dict = await DictAppService.GetByCodeAsync(nameof(input.OnceBusiCode)).ConfigureAwait(false); - - // if (dict.Items != null && dict.Items.Count > 0) - // { - // var item = dict.Items.FirstOrDefault(t => t.Code == input.OnceBusiCode); - - // Check.NotNull(item, "次交易码", "次交易码不存在"); - - // detail.SetProperty("OnceBusiCode", item.Code); - // detail.SetProperty("OnceBusiName", item.Name); - // } - //} - - //if (!string.IsNullOrEmpty(input.CaseCode)) - //{ - // var dict = await DictAppService.GetByCodeAsync(nameof(input.CaseCode)).ConfigureAwait(false); - - // if (dict.Items != null && dict.Items.Count > 0) - // { - // var item = dict.Items.FirstOrDefault(t => t.Code == input.CaseCode); - - // Check.NotNull(item, "专案代码", "专案代码不存在"); - - // detail.SetProperty("CaseCode", item.Code); - // detail.SetProperty("CaseName", item.Name); - // } - //} - - //if (!string.IsNullOrEmpty(input.ProjCapacityCode)) - //{ - // var dict = await DictAppService.GetByCodeAsync(nameof(input.ProjCapacityCode)).ConfigureAwait(false); - - // if (dict.Items != null && dict.Items.Count > 0) - // { - // var item = dict.Items.FirstOrDefault(t => t.Code == input.ProjCapacityCode); - - // Check.NotNull(item, "项目分类代码", "项目分类代码不存在"); - - // detail.SetProperty("ProjCapacityCode", item.Code); - // detail.SetProperty("ProjCapacityName", item.Name); - // } - //} + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs index 95b38244d..622b2c16a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs @@ -45,7 +45,7 @@ public class UnplannedIssueRequest : SfsStoreRequestAggregateRootBase /// 储位 /// From 69c9981e0266ddd038233993f70a758f711e1ded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Fri, 18 Oct 2024 17:15:39 +0800 Subject: [PATCH 04/12] =?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 --- .../UnplannedIssueRequestEventHandler.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs index 416610a25..b1154c030 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs @@ -88,13 +88,13 @@ public class UnplannedIssueRequestEventHandler //{ // entity.RequestStatus = EnumRequestStatus.Completed; //} - if (entity.DirectCreateNote) - { - var note = await BuildUnplannedIssueNoteCreateInputAsync(entity).ConfigureAwait(false); - await _unplannedIssueNoteAppService.CreateAsync(note).ConfigureAwait(false); - } - else - { + //if (entity.DirectCreateNote) + //{ + // var note = await BuildUnplannedIssueNoteCreateInputAsync(entity).ConfigureAwait(false); + // await _unplannedIssueNoteAppService.CreateAsync(note).ConfigureAwait(false); + //} + //else + //{ //if (entity.UnplannedIssueType == EnumUnplannedIssueType.OA || entity.UnplannedIssueType == EnumUnplannedIssueType.IMPORT) //{ //var job = await BuildUnplannedIssueJobCreateInputAsync(entity).ConfigureAwait(false); @@ -110,7 +110,7 @@ public class UnplannedIssueRequestEventHandler // await _unplannedIssueJobApp.CreateAsync(job).ConfigureAwait(false); //} - } + //} } public virtual async Task HandleEventAsync(SfsRefusedEntityEventData eventData) { From 104f6bb82bd0ad81bc690aa51fd898156daa683e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Mon, 21 Oct 2024 10:09:14 +0800 Subject: [PATCH 05/12] =?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 --- .../UnplannedIssueJobAppService.cs | 19 ++++++++++--------- .../UnplannedIssueRequest.cs | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs index 8139bf9a6..b04aa5cc0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs @@ -309,7 +309,9 @@ public class UnplannedIssueJobAppService //} if (returnlist.Count == 0) { - Errors.Add($"{"非生产领料"+requestDto.Number+"零件号:"+requestDtoDetail.ItemCode + "库存不够" + requestDtoDetail.Qty.ToString()}"); + _logger.LogError($"{"非生产领料" + requestDto.Number + "零件号:" + requestDtoDetail.ItemCode + "库存不够" + requestDtoDetail.Qty.ToString()}"); + // Errors.Add($"{"非生产领料"+requestDto.Number+"零件号:"+requestDtoDetail.ItemCode + "库存不够" + requestDtoDetail.Qty.ToString()}"); + continue; } foreach (var balanceDtoGroup in useBalances.GroupBy(p => p.LocationCode)) { @@ -322,7 +324,6 @@ public class UnplannedIssueJobAppService else { job.UnplannedIssueType = EnumUnplannedIssueType.Wip; - } job.SetId(GuidGenerator.Create()); @@ -397,13 +398,13 @@ public class UnplannedIssueJobAppService jobs.Add(job); } } - if (Errors.Count > 0) - { - foreach (var itm in Errors) - { - _logger.LogError(itm); - } - } + //if (Errors.Count > 0) + //{ + // foreach (var itm in Errors) + // { + // _logger.LogError(itm); + // } + //} return jobs; } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs index 622b2c16a..867e9c51a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs @@ -50,7 +50,7 @@ public class UnplannedIssueRequest : SfsStoreRequestAggregateRootBase [Display(Name = "储位")] - [Required(ErrorMessage = "储位不能为空")] + public string FromErpLocationCode { get; set; } From debacf539d3623de19f8bb0a21ddae5e8c5d535b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Mon, 21 Oct 2024 11:31:27 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnplannedIssueJobAppService.cs | 6 ++ .../UnplannedIssueJobManager.cs | 58 ++++++++++++++----- 2 files changed, 49 insertions(+), 15 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs index b04aa5cc0..8d83a2c29 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs @@ -475,6 +475,12 @@ public class UnplannedIssueJobAppService public override async Task CompleteAsync(Guid id, UnplannedIssueJobDTO dto) { var job = await _repository.GetAsync(id).ConfigureAwait(false); + + + + + + var handleDto = new UnplannedIssueJobDTO(); //using (var uow = _unitOfWorkManager.Begin()) //{ diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs index e9aa8610a..285e49c05 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs @@ -7,20 +7,27 @@ using System.Threading.Tasks; using DocumentFormat.OpenXml.Office.CustomUI; using DocumentFormat.OpenXml.Office2010.Excel; using Microsoft.EntityFrameworkCore; +using Volo.Abp; using Volo.Abp.Domain.Repositories; using Volo.Abp.Users; using Volo.Abp.Validation; using Win_in.Sfs.Shared.Domain.Shared; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; +using Win_in.Sfs.Wms.Inventory.Domain; namespace Win_in.Sfs.Wms.Store.Domain; public class UnplannedIssueJobManager : SfsJobManagerBase, IUnplannedIssueJobManager { - + private readonly IBalanceRepository _balanceRepository; public UnplannedIssueJobManager( + IBalanceRepository balanceRepository, + IUnplannedIssueJobRepository repository ) : base(repository) { + _balanceRepository = balanceRepository; + } /// @@ -39,23 +46,44 @@ public class UnplannedIssueJobManager : SfsJobManagerBase Date: Mon, 21 Oct 2024 11:56:47 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnplannedIssueJobAppService.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs index 8d83a2c29..5912a1bf6 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs @@ -475,11 +475,14 @@ public class UnplannedIssueJobAppService public override async Task CompleteAsync(Guid id, UnplannedIssueJobDTO dto) { var job = await _repository.GetAsync(id).ConfigureAwait(false); - - - - - + var facQuery=job.FacDetails.GroupBy(p => new { p.ItemCode }).Select(p=>new {ItemCode= p.Key.ItemCode,Qty= p.Sum(itm=>itm.RecommendQty) }); + var query=dto.Details.GroupBy(p => new { p.ItemCode }).Select(p => new { ItemCode = p.Key.ItemCode, Qty = p.Sum(itm => itm.HandledQty) }); + var errorQuery = from itm in facQuery join itm1 in query on itm.ItemCode equals itm1.ItemCode where itm1.Qty < itm.Qty select itm.ItemCode ; + var errorList = errorQuery.ToList(); + if (errorList.Count > 0) + { + throw new UserFriendlyException($"零件{string.Join(",",errorList)}实际数量大于推荐数量!"); + } var handleDto = new UnplannedIssueJobDTO(); //using (var uow = _unitOfWorkManager.Begin()) @@ -495,8 +498,6 @@ public class UnplannedIssueJobAppService handleDto = ObjectMapper.Map(handleResult); await _expectOutAppService.RemoveAsync(dto.Number).ConfigureAwait(false); - - handleResult.CompleteUserName = dto.Worker; handleResult.JobStatus = EnumJobStatus.Done; job = await _repository.UpdateAsync(handleResult).ConfigureAwait(false); From 89fead2b90eb3218e59900f5003cd1c0b3ded337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Mon, 21 Oct 2024 14:01:28 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnplannedIssueJobAppService.cs | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs index 5912a1bf6..1e0a02ce0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs @@ -113,10 +113,12 @@ public class UnplannedIssueJobAppService //} - - private async Task> DeductInventory(List inventory, decimal quantityToDeduct, EnumLocationType enumLocationType) + + private async Task,List>> DeductInventory(List inventory, decimal quantityToDeduct, EnumLocationType enumLocationType) { + List balanceDTOs = new List(); + List unbalanceDTOs = new List(); decimal totalDeducted = 0; foreach (var item in inventory) @@ -128,16 +130,25 @@ public class UnplannedIssueJobAppService { var locationDto = await _locationAppService.GetByCodeAsync(item.LocationCode).ConfigureAwait(false); BalanceDTO dto = new BalanceDTO(); + BalanceDTO undto = new BalanceDTO(); + dto.InjectFrom(item); + dto.Qty = availableToDeduct; + balanceDTOs.Add(dto); if (enumLocationType == EnumLocationType.RAW) { - dto.InjectFrom(item); - dto.Qty = availableToDeduct; - balanceDTOs.Add(dto); + + undto.InjectFrom(item); + unbalanceDTOs.Add(dto); + } else { - dto.InjectFrom(item); - balanceDTOs.Add(dto); + + undto.InjectFrom(item); + undto.Qty = availableToDeduct; + unbalanceDTOs.Add(dto); + + } } @@ -147,6 +158,10 @@ public class UnplannedIssueJobAppService break; } } + + Tuple, List> tuple = new Tuple, List>( balanceDTOs,unbalanceDTOs); + + // 返回实际扣减的库存数量 return balanceDTOs; } @@ -277,8 +292,9 @@ public class UnplannedIssueJobAppService //实际要用库存 List useBalances = new List(); var returnlist=await DeductInventory(usableList, requestDtoDetail.Qty, locationDto.Type).ConfigureAwait(false); - useBalances.AddRange(returnlist); - useBalancesOut.AddRange(returnlist); + + useBalances.AddRange(returnlist.Item1); + useBalancesOut.AddRange(returnlist.Item2); From ef610750c428eff26f3b15febbb682e639b7df01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Mon, 21 Oct 2024 14:01:57 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs index 1e0a02ce0..51dc18e3d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs @@ -323,7 +323,7 @@ public class UnplannedIssueJobAppService // useBalancesOut.Add(balanceDto); // } //} - if (returnlist.Count == 0) + if (returnlist.Item1.Count == 0) { _logger.LogError($"{"非生产领料" + requestDto.Number + "零件号:" + requestDtoDetail.ItemCode + "库存不够" + requestDtoDetail.Qty.ToString()}"); // Errors.Add($"{"非生产领料"+requestDto.Number+"零件号:"+requestDtoDetail.ItemCode + "库存不够" + requestDtoDetail.Qty.ToString()}"); From 76397b16af3c68d90e78c7c23e8895c68b8d7cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Mon, 21 Oct 2024 14:06:17 +0800 Subject: [PATCH 10/12] =?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 --- .../Inputs/UnplannedIssueRequestImportInput.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs index 883e30f40..cf57efd69 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs @@ -36,12 +36,14 @@ public class UnplannedIssueRequestImportInput : SfsStoreImportInputBase /// /// 调出库位 /// - [Display(Name = "调出库位")] - [Required(ErrorMessage = "调出库位不能为空")] + [Display(Name = "储位")] + [Required(ErrorMessage = "储位不能为空")] public string FromErpLocationCode { get; set; } + + /// /// 专案 From b431914479da08b544b02799ade76e041126d6a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Mon, 21 Oct 2024 14:14:19 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Inputs/UnplannedIssueRequestImportInput.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs index cf57efd69..34b9fbc36 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestImportInput.cs @@ -41,10 +41,6 @@ public class UnplannedIssueRequestImportInput : SfsStoreImportInputBase public string FromErpLocationCode { get; set; } - - - - /// /// 专案 /// From 02926e7a2569a96df4c59756cf7d2e790622d3af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Mon, 21 Oct 2024 16:06:59 +0800 Subject: [PATCH 12/12] =?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 --- .../UnplannedIssueJobAppService.cs | 14 ++++++++++++-- .../UnplannedIssueRequestForDongyangAppService.cs | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs index 51dc18e3d..431be17f9 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs @@ -89,10 +89,20 @@ public class UnplannedIssueJobAppService { List useBalancesOut = new EditableList(); var jobs = await BuildUnplannedIssueJobAsync(requestDto, useBalancesOut).ConfigureAwait(false); + if (useBalancesOut.Count == 0) + { + throw new UserFriendlyException($"请求单号{requestDto.Number},无推荐库位请检查是否又库存!"); + } + + + await _unplannedIssueJobManager.AddManyAsync(jobs).ConfigureAwait(false); //await _repository.InsertManyAsync(jobs.ToList()).ConfigureAwait(false); var first = jobs.FirstOrDefault(); var outEditInputs = await BuildExpectOutAsync(useBalancesOut).ConfigureAwait(false); + + + foreach (var itm in outEditInputs) { itm.JobNumber = first.Number; @@ -163,7 +173,7 @@ public class UnplannedIssueJobAppService // 返回实际扣减的库存数量 - return balanceDTOs; + return tuple; } @@ -512,7 +522,7 @@ public class UnplannedIssueJobAppService var handleEntity = ObjectMapper.Map(dto); var handleResult = await _unplannedIssueJobManager.CompleteAsync(handleEntity, CurrentUser).ConfigureAwait(false); handleDto = ObjectMapper.Map(handleResult); - await _expectOutAppService.RemoveAsync(dto.Number).ConfigureAwait(false); + await _expectOutAppService.RemoveAsync(job.Number).ConfigureAwait(false); handleResult.CompleteUserName = dto.Worker; handleResult.JobStatus = EnumJobStatus.Done; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index d061f13b8..27218ff9b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -284,6 +284,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA detail.ProjCapacityCode = first.ProjCapacityCode; detail.OnceBusiCode = first.OnceBusiCode; detail.Explain = first.Explain; + detail.ExpireDate = DateTime.MaxValue;