From ac08d1b52a560e89451bc4acd0393670261f019e Mon Sep 17 00:00:00 2001 From: mahao Date: Thu, 3 Aug 2023 10:57:45 +0800 Subject: [PATCH] =?UTF-8?q?JisHBPO=E7=BB=93=E7=AE=97=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entities/BQ/Dtos/HBPO_SA_DTO.cs | 3 +- .../Entities/BQ/HBPO_SA_SERVICE.cs | 160 ++---------------- 2 files changed, 12 insertions(+), 151 deletions(-) diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/HBPO_SA_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/HBPO_SA_DTO.cs index d1b2da11..9145bc23 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/HBPO_SA_DTO.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/HBPO_SA_DTO.cs @@ -1,13 +1,14 @@ using System; using System.ComponentModel.DataAnnotations; using Magicodes.ExporterAndImporter.Core; +using Volo.Abp.Application.Dtos; namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos; /// /// HBPO结算单 /// -public class HBPO_SA_DTO +public class HBPO_SA_DTO : EntityDto { /// /// 期间 diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SA_SERVICE.cs index dc287b5c..317f2f88 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SA_SERVICE.cs @@ -110,38 +110,6 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase [HttpPost] public async Task ImportAsync([FromForm] IFormFileCollection files) { - //业务类型 - var businessType = EnumBusinessType.JisHBPO; - //数据校验 - var checkList = new List(); - //结算单号 - var hbpoSaBillNum = OrderNumberGenerator.GenerateOrderNumber("SA"); - //结算主表 - var hbpoSa = new HBPO_SA() - { - BillNum = hbpoSaBillNum, - State = "1", - BusinessType = businessType - }; - //结算明细 - var hbpoSaDetails = new List(); - //可结算单号 - var hbpoCanSaBillNum = OrderNumberGenerator.GenerateOrderNumber("C"); - //可结算主表 - var hbpoCanSa = new HBPO_CAN_SA() - { - BillNum = hbpoCanSaBillNum, - SettleBillNum = hbpoSaBillNum, - State = SettleBillState.未结状态, - BusinessType = businessType - }; - //可结算明细 - var hbpoCanSaDetails = new List(); - //不可结算明细 - var hbpoNotSaDetails = new List(); - //客户零件关系 - var materialRelationships = new List(); - #region 导入数据转换、数据校验 ExportImporter _exportImporter = new ExportImporter(); var result = await _exportImporter.UploadExcelImport(files, _excelImportService); @@ -152,22 +120,18 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase var importCN1HBOPSaDetails = importHBOPSaDetails.FindAll(t => t.Site.Contains("CN1")); var importCN5HBOPSaDetails = importHBOPSaDetails.FindAll(t => t.Site.Contains("CN5")); - await SaDataHandleAsync(importCN1HBOPSaDetails, "CN1"); - await SaDataHandleAsync(importCN5HBOPSaDetails, "CN5"); - return ""; - + //数据校验 + var checkList = new List(); //结算分组号 var hbpoSaGroupNums = importHBOPSaDetails.Select(t => t.GroupNum).Distinct(); - //已存在的结算分组号 - var havPubSaGroupNums = (await _hbpoSaDetailRepository.GetListAsync(t => hbpoSaGroupNums.Contains(t.GroupNum))).Select(t => t.GroupNum).Distinct(); - if (havPubSaGroupNums.Any() == true) + var havHBPOSaGroupNums = (await _hbpoSaDetailRepository.GetListAsync(t => hbpoSaGroupNums.Contains(t.GroupNum))).Select(t => t.GroupNum).Distinct(); + if (havHBPOSaGroupNums.Any() == true) { - foreach (var item in havPubSaGroupNums) + foreach (var item in havHBPOSaGroupNums) { checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, $"结算分组号{item}已存在", string.Empty)); } - //throw new UserFriendlyException($"导入失败,结算分组号({string.Join(",", havPubSaGroupNums)})已存在", "400"); } if (checkList.Count > 0) @@ -176,94 +140,14 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase } #endregion - #region 处理结算数据 - //销售价格 - var priceListEntitys = await _priceListRepository.GetAllAsync(); - - importHBOPSaDetails.ForEach(importPubSaDetail => - { - List luList = importPubSaDetail.LU.Split(" ").ToList(); - importPubSaDetail.LU = luList[0].Replace(" ", ""); - if (luList.Count > 1) - { - luList.RemoveAt(0); - var luAssemble = luList.Select(t => t.Replace(" ", "")); - importPubSaDetail.LU += luAssemble.Aggregate(" ", (current, index) => current + index); - } - - importPubSaDetail.BillNum = hbpoSaBillNum; - //importPubSaDetail.Site = "XX工厂"; - importPubSaDetail.KeyCode = importPubSaDetail.PN + importPubSaDetail.LU; - - //根据物料号、结算日期获取价格 - var priceListEntity = priceListEntitys.Find(t => t.LU == importPubSaDetail.LU && importPubSaDetail.SettleDate > t.BeginTime && importPubSaDetail.SettleDate < t.EndTime); - importPubSaDetail.Price = priceListEntity?.Price ?? 0; - importPubSaDetail.BusinessType = businessType; - }); - - //导入的零件号集合 - var importPubSaLUs = importHBOPSaDetails.Select(t => t.LU).Distinct(); - var materialRelationshipEntitys = await _materialRelationshipRepository.GetListAsync(t => importPubSaLUs.Contains(t.SettleMaterialCode)); - var materialRelationshipEntitySettleMaterialCodes = materialRelationshipEntitys.Select(t => t.SettleMaterialCode).Distinct(); - - /* - * (不存在的客户零件号)差集 - * 转换为厂内零件号 - * 转换规则6个空格替换成“-” - */ - var noExistSettleMaterialCodes = importPubSaLUs.Except(materialRelationshipEntitySettleMaterialCodes); - - noExistSettleMaterialCodes.ForEach(t => + if (importCN1HBOPSaDetails.Any()) { - var materialRelationship = new MaterialRelationship(GuidGenerator.Create(), t.Replace(" ", "-"), "", t, businessType.ToString()); - materialRelationships.Add(materialRelationship); - }); - #endregion - - #region 入库数据赋值 - //结算明细 - hbpoSaDetails = importHBOPSaDetails; - - //不可结算 结算分组号码(根据价格区分结算、不可结算) - var hbpoNotSaGroupNums = hbpoSaDetails.FindAll(t => t.Price == default(decimal)).Select(t => t.GroupNum).Distinct(); - var hbpoSaDetailsCanSes = hbpoSaDetails.FindAll(t => hbpoNotSaGroupNums.Contains(t.GroupNum) == false); - var hbpoSaDetailsNotCanSes = hbpoSaDetails.FindAll(t => hbpoNotSaGroupNums.Contains(t.GroupNum) == true); - - //可结算明细 - hbpoCanSaDetails = ObjectMapper.Map, List>(hbpoSaDetailsCanSes); - //不可结算明细 - hbpoNotSaDetails = ObjectMapper.Map, List>(hbpoSaDetailsNotCanSes); - #endregion - - #region 添加入库 - await _hbpoSaRepository.InsertAsync(hbpoSa); - await _hbpoSaDetailRepository.InsertManyAsync(hbpoSaDetails); - if (hbpoCanSaDetails.Count > 0) - { - hbpoCanSa.InvGroupNum = hbpoCanSaDetails.Count.ToString(); - hbpoCanSaDetails.ForEach(hbpoCanSaDetail => - { - hbpoCanSaDetail.BillNum = hbpoCanSaDetail.InvGroupNum = hbpoCanSaBillNum; - hbpoCanSaDetail.BusinessType = businessType; - }); - - await _hbpoCanSaRepository.InsertAsync(hbpoCanSa); - await _hbpoCanSaDetailRepository.InsertManyAsync(hbpoCanSaDetails); + await SaDataHandleAsync(importCN1HBOPSaDetails, "CN1"); } - if (hbpoNotSaDetails.Count > 0) + if (importCN5HBOPSaDetails.Any()) { - hbpoNotSaDetails.ForEach(hbpoNotSaDetail => - { - hbpoNotSaDetail.BusinessType = businessType; - }); - - await _hbpoNotSaDetailRepository.InsertManyAsync(hbpoNotSaDetails); - } - if (materialRelationships.Count > 0) - { - await _materialRelationshipRepository.InsertManyAsync(materialRelationships); + await SaDataHandleAsync(importCN5HBOPSaDetails, "CN5"); } - #endregion return ApplicationConsts.SuccessStr; } @@ -402,10 +286,8 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase /// /// 结算数据处理 /// - private async Task SaDataHandleAsync(List hbpoSaDetails, string site) + private async Task SaDataHandleAsync(List hbpoSaDetails, string site) { - //数据校验 - var checkList = new List(); //结算单号 var hbpoSaBillNum = OrderNumberGenerator.GenerateOrderNumber("SA"); //结算主表 @@ -434,26 +316,6 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase //客户零件关系 var materialRelationships = new List(); - #region 数据校验 - //结算分组号 - var hbpoSaGroupNums = hbpoSaDetails.Select(t => t.GroupNum).Distinct(); - - //已存在的结算分组号 - var havPubSaGroupNums = (await _hbpoSaDetailRepository.GetListAsync(t => hbpoSaGroupNums.Contains(t.GroupNum))).Select(t => t.GroupNum).Distinct(); - if (havPubSaGroupNums.Any() == true) - { - foreach (var item in havPubSaGroupNums) - { - checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, $"结算分组号{item}已存在", string.Empty)); - } - } - - if (checkList.Count > 0) - { - return await ExportErrorReportAsync(checkList); - } - #endregion - #region 处理结算数据 //销售价格 var priceListEntitys = await _priceListRepository.GetAllAsync(); @@ -537,8 +399,6 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase await _materialRelationshipRepository.InsertManyAsync(materialRelationships); } #endregion - - return ApplicationConsts.SuccessStr; } ///