From 54bd4fab3e2b858ccad899e3aac839b642b3099f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Sat, 23 Sep 2023 14:09:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E4=B8=8D=E5=8F=AF=E7=BB=93?= =?UTF-8?q?=E5=B8=A6=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs | 6 +- .../Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs | 4 +- .../Entities/BQ/Managers/PUB_NOT_SA_MNG.cs | 136 ++++++++++++++---- 3 files changed, 113 insertions(+), 33 deletions(-) diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs index 7a056f12..56637e34 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs @@ -61,6 +61,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers { return errors; } + var site = first.Site; + var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var _entity = new BBAC_CAN_SA(); _entity.SetId(Guid.NewGuid()); @@ -69,10 +71,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers _entity.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); _entity.State = SettleBillState.未结状态; _entity.SettleBillNum = string.Empty; - _entity.Site = first.Site; + _entity.Site = site; _entity.BusinessType = EnumBusinessType.JisBBAC; var _entityList = new List(); - var site = first.Site; + var pricelist = _priceRepository.Where(p => p.ClientCode == site && p.IsCancel == false).ToList(); var query = from d in p_list join p in pricelist diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs index da43b2a9..18d7eb43 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs @@ -38,13 +38,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers INormalEfCoreRepository repository, INormalEfCoreRepository detailRepository, INormalEfCoreRepository notRepository, - BaseDomainService service + BaseDomainService service, + INormalEfCoreRepository priceRepository ) { _repository = repository; _detailRepository = detailRepository; _notRepository = notRepository; _service = service; + _priceRepository = priceRepository; } public virtual async Task> GenerateSettlementOrder(List p_list) { diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs index 170ebef6..c80c8583 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs @@ -1,12 +1,15 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Security.Policy; using System.Threading.Tasks; using EFCore.BulkExtensions; using SettleAccount.Domain.BQ; +using Volo.Abp.Data; using Volo.Abp.Domain.Services; using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Bases.DomainServices; +using Win.Sfs.SettleAccount.Entities.Prices; using Win.Sfs.Shared.RepositoryBase; namespace Win.Sfs.SettleAccount.Entities.BQ.Managers @@ -26,6 +29,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers private readonly INormalEfCoreRepository _detailRepository; private readonly INormalEfCoreRepository _notRepository; private readonly BaseDomainService _service; + private readonly INormalEfCoreRepository _priceRepository; + private readonly INormalEfCoreRepository _pricebjRepository; + public PUB_NOT_SA_MNG() { @@ -36,9 +42,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers INormalEfCoreRepository repository, INormalEfCoreRepository detailRepository, INormalEfCoreRepository notRepository, - BaseDomainService service + BaseDomainService service, + INormalEfCoreRepository priceRepository, + INormalEfCoreRepository pricebjRepository + + ) { + _priceRepository = priceRepository; + _pricebjRepository = pricebjRepository; _service = service; _repository = repository; _detailRepository = detailRepository; @@ -47,10 +59,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers public virtual async Task> GenerateSettlementOrder(List p_list) { var first= p_list.FirstOrDefault(); - - + var site = first.Site; + List errors = new List(); var query = p_list.Select(p => p.BusinessType).Distinct().ToList(); @@ -65,8 +77,23 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers return errors; } } + List priceList = new List(); + if (first.BusinessType == EnumBusinessType.BeiJian) + { + var priceListbj = _pricebjRepository.Where(p => p.IsCancel == false).ToList(); //价格单 + foreach (var itm in priceListbj) + { + priceList.Add(new PriceList() { LU = itm.LU, BeginTime = itm.BeginDate, EndTime = itm.EndDate, Price = itm.Price}); + } + } + else + { + priceList = _priceRepository.Where(p => p.IsCancel == false && p.ClientCode==site).ToList();//价格单 + } + + if (first.BusinessType == EnumBusinessType.ZhiGongJianBBAC || first.BusinessType == EnumBusinessType.BeiJian || first.BusinessType == EnumBusinessType.YinDuJian ) @@ -95,6 +122,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers { return errors; } + + + var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var _entity = new PUB_CAN_SA(); _entity.SetId(Guid.NewGuid()); @@ -104,35 +134,81 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers _entity.State = SettleBillState.未结状态; _entity.SettleBillNum = string.Empty; _entity.BusinessType = first.BusinessType; - _entity.Site = first.Site; + _entity.Site = site; + // var pricelist = _priceRepository.Where(p => p.ClientCode == site && p.IsCancel == false).ToList(); var _entityList = new List(); - foreach (var itm in notlist) + if (first.BusinessType == EnumBusinessType.BeiJian) { - var _detailEntity = new PUB_CAN_SA_DETAIL( - guid: GuidGenerator.Create(), - keyCode: itm.KeyCode, - version: itm.Version, - billNum: billNumber, - settleBillNum: itm.SettleBillNum, - lU: itm.LU, - pN: itm.PN, - site: itm.Site, - qty: itm.Qty, - price: itm.Price, - businessType: itm.BusinessType, - settleDate: itm.SettleDate, - groupNum: itm.GroupNum, - invGroupNum: billNumber, - invbillnum: string.Empty, - partcode: itm.PartCode, - pobillnum: string.Empty - ); - _detailEntity.IndexNum = itm.IndexNum; - _detailEntity.RealPartCode = itm.RealPartCode; - - _entityList.Add(_detailEntity); + //var bjdetailList = new List(); + + foreach (var itm in notlist) + { + var _detailEntity = new PUB_CAN_SA_DETAIL( + guid: GuidGenerator.Create(), + keyCode: itm.KeyCode, + version: itm.Version, + billNum: billNumber, + settleBillNum: itm.SettleBillNum, + lU: itm.LU, + pN: itm.PN, + site: itm.Site, + qty: itm.Qty, + price: itm.Price, + businessType: itm.BusinessType, + settleDate: itm.SettleDate, + groupNum: itm.GroupNum, + invGroupNum: billNumber, + invbillnum: string.Empty, + partcode: itm.PartCode, + pobillnum: string.Empty + ); + _detailEntity.IndexNum = itm.IndexNum; + _detailEntity.RealPartCode = itm.RealPartCode; + _detailEntity.Price = priceList.FirstOrDefault(p => itm.SettleDate >= p.BeginTime && itm.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == first.Site).Price; + _detailEntity.SetProperty("DeliveryNumber", itm.GetProperty("DeliveryNumber", ""));//交货号 + _detailEntity.SetProperty("InvoiceNumber", itm.GetProperty("InvoiceNumber", ""));//发票号 + _detailEntity.SetProperty("VendorCode", itm.GetProperty("VendorCode", ""));//供应商代码 + _detailEntity.SetProperty("VendorName", itm.GetProperty("VendorName", ""));//供应商名称 + _detailEntity.SetProperty("PO", itm.GetProperty("PO", "")); + _detailEntity.SetProperty("DeliveryIndexNumber", itm.GetProperty("DeliveryIndexNumber", ""));//交付索引号 + _detailEntity.SetProperty("PartName", itm.GetProperty("PartName", ""));//零件名称 + _detailEntity.SetProperty("PartGroup", itm.GetProperty("CommodityGroup", "")); + // _detailEntity.ExtraProperties = itm.ExtraProperties; + _entityList.Add(_detailEntity); + + } + } + else + { + foreach (var itm in notlist) + { + var _detailEntity = new PUB_CAN_SA_DETAIL( + guid: GuidGenerator.Create(), + keyCode: itm.KeyCode, + version: itm.Version, + billNum: billNumber, + settleBillNum: itm.SettleBillNum, + lU: itm.LU, + pN: itm.PN, + site: itm.Site, + qty: itm.Qty, + price: priceList.FirstOrDefault(p => itm.SettleDate >= p.BeginTime && itm.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == first.Site).Price, + businessType: itm.BusinessType, + settleDate: itm.SettleDate, + groupNum: itm.GroupNum, + invGroupNum: billNumber, + invbillnum: string.Empty, + partcode: itm.PartCode, + pobillnum: string.Empty + ); + _detailEntity.IndexNum = itm.IndexNum; + _detailEntity.RealPartCode = itm.RealPartCode; + _entityList.Add(_detailEntity); + + } } + await _repository.DbContext.BulkDeleteAsync(p_list).ConfigureAwait(false); await _repository.DbContext.BulkInsertAsync(new List() { _entity }).ConfigureAwait(false); await _repository.DbContext.BulkInsertAsync(_entityList).ConfigureAwait(false); @@ -164,8 +240,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers pN: itm.PN, site: itm.Site, qty: itm.Qty, - price: itm.Price, - businessType: itm.BusinessType, + price: priceList.FirstOrDefault(p => itm.SettleDate >= p.BeginTime && itm.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == first.Site).Price, + businessType: itm.BusinessType, settleDate: itm.SettleDate, groupNum: itm.GroupNum, invGroupNum: billNumber,