From b08f7f3c9a2cc7202df4319937b31810ec8d865c Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Wed, 31 Jan 2024 15:27:11 +0800 Subject: [PATCH] =?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 --- .../Entities/BQ/HBPO_NOT_SA_SERVICE.cs | 26 +- .../BQ/Syncs/MakeCanSettlementService.cs | 291 ++++++++++-------- .../Entities/BQ/HBPO_CAN_SA.cs | 8 +- .../Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs | 18 +- .../Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs | 18 ++ 5 files changed, 216 insertions(+), 145 deletions(-) diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_NOT_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_NOT_SA_SERVICE.cs index 115e6572..45986217 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_NOT_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_NOT_SA_SERVICE.cs @@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Mvc; using SettleAccount.Domain.BQ; using Shouldly; using TaskJob.EventArgs; +using Volo.Abp; using Volo.Abp.Data; using Win.Abp.Snowflakes; using Win.Sfs.BaseData.ImportExcelCommon; @@ -135,15 +136,22 @@ namespace Win.Sfs.SettleAccount.Entities.BQ public override async Task GenerateSettlementOrder(HBPO_NOT_SA_DETAIL_REQ_DTO input) { - - - var filters= JsonSerializer.Serialize(input.Filters); - List customConditionList = new List(); - customConditionList.Add(new CustomCondition() { Name = "condition", Value = filters }); - customConditionList.Add(new CustomCondition() { Name = "businesstype", Value = EnumBusinessType.JisHBPO.ToString() }); - var _taskid = await _service.ExportEnqueueAsync($"{EnumBusinessType.JisHBPO.ToString()}生成可结算单任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyyMM"), string.Empty, CurrentUser, typeof(MakeCanSettlementService), customConditionList, (rs) => - {}).ConfigureAwait(false); - return new JsonResult(new { Code = 200, Message = "生成成功" }); + + var flag = await _hbpoNotMng.IsCompleted().ConfigureAwait(false); + if (flag == false) + { + throw new UserFriendlyException("任务生成中请等待...", "400"); + } + else + { + var filters = JsonSerializer.Serialize(input.Filters); + List customConditionList = new List(); + customConditionList.Add(new CustomCondition() { Name = "condition", Value = filters }); + customConditionList.Add(new CustomCondition() { Name = "businesstype", Value = EnumBusinessType.JisHBPO.ToString() }); + var _taskid = await _service.ExportEnqueueAsync($"{EnumBusinessType.JisHBPO.ToString()}生成可结算单任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyyMM"), string.Empty, CurrentUser, typeof(MakeCanSettlementService), customConditionList, (rs) => + { }).ConfigureAwait(false); + return new JsonResult(new { Code = 200, Message = "生成成功" }); + } } } } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/MakeCanSettlementService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/MakeCanSettlementService.cs index 5eb1c72a..02b56fcc 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/MakeCanSettlementService.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/MakeCanSettlementService.cs @@ -7,6 +7,7 @@ using System.Text.Json; using System.Threading.Tasks; using DocumentFormat.OpenXml.Bibliography; using EFCore.BulkExtensions; +using LinqToDB; using Minio.DataModel; using SettleAccount.Domain.BQ; using TaskJob.EventArgs; @@ -18,6 +19,7 @@ using Volo.Abp.Domain.Entities; using Volo.Abp.Uow; using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Entities.BQ.Vmi; +using Win.Sfs.SettleAccount.Entities.CodeSettings; using Win.Sfs.SettleAccount.Entities.Prices; using Win.Sfs.Shared.Filter; using static ICSharpCode.SharpZipLib.Zip.ExtendedUnixData; @@ -50,15 +52,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs bbacquery = bbacquery.Where(filers.ToLambda()); } var p_list = bbacquery.ToList(); - if (p_list.Count == 0) - { - var flaglist = _dbcontext.Set().Where(p => p.IsReturn == true).ToList(); - foreach (var flag in flaglist) - { - flag.IsReturn = false; - } - _dbcontext.BulkUpdate(flaglist);//插入可结明细 - } + + var jis1 = p_list.Where(p => p.Site == "1040").ToList(); var jis2 = p_list.Where(p => p.Site == "1046").ToList(); List notlist = new List(); @@ -112,6 +107,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs List details = new List(); foreach (var itm1 in ls) { + sum += (itm1.Qty * itm1.Price); if (sum > 10000000) { var billNum = OrderNumberGenerator.GenerateOrderNumber("N"); @@ -135,28 +131,28 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs sum = 0; } var _detailEntity = new BBAC_CAN_SA_DETAIL( - guid: GuidGenerator.Create(), - keyCode: itm1.KeyCode, - version: itm1.Version, - billNum: string.Empty, - settleBillNum: itm1.SettleBillNum, - lU: itm1.LU, - pN: itm1.PN, - site: itm1.Site, - qty: itm1.Qty, - price: itm1.Price, - category: itm1.BusinessType, - isReturn: itm1.IsReturn, - settleDate: itm1.SettleDate, - groupNum: itm1.GroupNum, - invGroupNum: string.Empty, - contactid: itm1.ContractDocID, - invbillnum: string.Empty, - partcode: itm1.PartCode - ); + guid: GuidGenerator.Create(), + keyCode: itm1.KeyCode, + version: itm1.Version, + billNum: string.Empty, + settleBillNum: itm1.SettleBillNum, + lU: itm1.LU, + pN: itm1.PN, + site: itm1.Site, + qty: itm1.Qty, + price: itm1.Price, + category: itm1.BusinessType, + isReturn: itm1.IsReturn, + settleDate: itm1.SettleDate, + groupNum: itm1.GroupNum, + invGroupNum: string.Empty, + contactid: itm1.ContractDocID, + invbillnum: string.Empty, + partcode: itm1.PartCode + ); _detailEntity.RealPartCode = itm1.RealPartCode; details.Add(_detailEntity); - sum += (itm1.Qty * itm1.Price); + } var billNum1 = OrderNumberGenerator.GenerateOrderNumber("N"); var bbac_sa1 = new BBAC_CAN_SA(); @@ -171,9 +167,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs billList.Add(bbac_sa1); foreach (var detail in details) { + detail.SetBillNum(billNum1); + detail.SetGroupNum(billNum1); billDetails.Add(detail); - } - + } } } if (part_group_small.Count > 0) @@ -263,42 +260,74 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs { foreach (var itm in part_group_big) { - var ls= bbac_can_list.Where(p=>p.LU==itm.LU).ToList(); - var billNum = OrderNumberGenerator.GenerateOrderNumber("N"); - var bbac_sa = new BBAC_CAN_SA(); - bbac_sa.SetId(Guid.NewGuid()); - bbac_sa.BillNum = billNum; - bbac_sa.InvGroupNum = billNum; - bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); - bbac_sa.State = SettleBillState.未结状态; - bbac_sa.SettleBillNum = string.Empty; - bbac_sa.Site = "1046"; - bbac_sa.BusinessType = EnumBusinessType.JisBBAC; - billList.Add(bbac_sa); + var ls = bbac_can_list.Where(p => p.LU == itm.LU).ToList(); + decimal sum = 0; + List details = new List(); foreach (var itm1 in ls) { + sum += (itm1.Qty * itm1.Price); + if (sum > 10000000) + { + var billNum = OrderNumberGenerator.GenerateOrderNumber("N"); + var bbac_sa = new BBAC_CAN_SA(); + bbac_sa.SetId(Guid.NewGuid()); + bbac_sa.BillNum = billNum; + bbac_sa.InvGroupNum = billNum; + bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); + bbac_sa.State = SettleBillState.未结状态; + bbac_sa.SettleBillNum = string.Empty; + bbac_sa.Site = "1046"; + bbac_sa.BusinessType = EnumBusinessType.JisBBAC; + billList.Add(bbac_sa); + foreach (var itm2 in details) + { + itm2.SetBillNum(billNum); + itm2.SetGroupNum(billNum); + billDetails.Add(itm2); + } + details = new List(); + sum = 0; + } var _detailEntity = new BBAC_CAN_SA_DETAIL( - guid: GuidGenerator.Create(), - keyCode: itm1.KeyCode, - version: itm1.Version, - billNum: billNum, - settleBillNum: itm1.SettleBillNum, - lU: itm1.LU, - pN: itm1.PN, - site: itm1.Site, - qty: itm1.Qty, - price: itm1.Price, - category: itm1.BusinessType, - isReturn: itm1.IsReturn, - settleDate: itm1.SettleDate, - groupNum: itm1.GroupNum, - invGroupNum: billNum, - contactid: itm1.ContractDocID, - invbillnum: string.Empty, - partcode: itm1.PartCode - ); + guid: GuidGenerator.Create(), + keyCode: itm1.KeyCode, + version: itm1.Version, + billNum: string.Empty, + settleBillNum: itm1.SettleBillNum, + lU: itm1.LU, + pN: itm1.PN, + site: itm1.Site, + qty: itm1.Qty, + price: itm1.Price, + category: itm1.BusinessType, + isReturn: itm1.IsReturn, + settleDate: itm1.SettleDate, + groupNum: itm1.GroupNum, + invGroupNum: string.Empty, + contactid: itm1.ContractDocID, + invbillnum: string.Empty, + partcode: itm1.PartCode + ); _detailEntity.RealPartCode = itm1.RealPartCode; - billDetails.Add(_detailEntity); + details.Add(_detailEntity); + + } + var billNum1 = OrderNumberGenerator.GenerateOrderNumber("N"); + var bbac_sa1 = new BBAC_CAN_SA(); + bbac_sa1.SetId(Guid.NewGuid()); + bbac_sa1.BillNum = billNum1; + bbac_sa1.InvGroupNum = billNum1; + bbac_sa1.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); + bbac_sa1.State = SettleBillState.未结状态; + bbac_sa1.SettleBillNum = string.Empty; + bbac_sa1.Site = "1046"; + bbac_sa1.BusinessType = EnumBusinessType.JisBBAC; + billList.Add(bbac_sa1); + foreach (var detail in details) + { + detail.SetBillNum(billNum1); + detail.SetGroupNum(billNum1); + billDetails.Add(detail); } } } @@ -356,12 +385,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs _dbcontext.BulkInsert(billDetails);//插入可结主表 _dbcontext.BulkInsert(billList);//插入可结明细 } - var flaglist = _dbcontext.Set().Where(p => p.IsReturn == true).ToList(); - foreach (var flag in flaglist) + var ls = _dbcontext.Set().Where(p => p.Project == "BBAC_NOT" && p.Value=="True").ToList(); + if (ls.Any()) { - flag.IsReturn = false; + _dbcontext.BulkDelete(ls); } - _dbcontext.BulkUpdate(flaglist);//插入可结明细 transaction.Commit(); } catch (Exception) @@ -393,12 +421,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs } else { - var flaglist = _dbcontext.Set().Where(p => p.IsReturn == true).ToList(); - foreach (var flag in flaglist) + var ls = _dbcontext.Set().Where(p => p.Project == "BBAC_NOT" && p.Value == "True").ToList(); + if (ls.Any()) { - flag.IsReturn = false; + _dbcontext.BulkDelete(ls); } - _dbcontext.BulkUpdate(flaglist);//插入可结明细 } } if (businesstype == "JisHBPO" || businesstype== "MaiDanJianHBPO") @@ -412,15 +439,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs bbacquery = bbacquery.Where(filers.ToLambda()); } var p_list = bbacquery.ToList(); - if (p_list.Count == 0) - { - var flaglist = _dbcontext.Set().Where(p => p.IsReturn == true).ToList(); - foreach (var flag in flaglist) - { - flag.IsReturn = false; - } - _dbcontext.BulkUpdate(flaglist);//插入可结明细 - } var jis1 = p_list.Where(p => p.Site == "104T").ToList(); if (jis1.Count > 0) { @@ -462,46 +480,74 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs var part_group_small = t1.Where(p => p.Amt < 10000000).ToList(); if (part_group_big.Count > 0) { + foreach (var itm in part_group_big) { - - - - var ls = hbpo_can_list.Where(p => p.LU == itm.LU).ToList(); - var billNum = OrderNumberGenerator.GenerateOrderNumber("N"); - var bbac_sa = new HBPO_CAN_SA(); - bbac_sa.SetId(Guid.NewGuid()); - bbac_sa.BillNum = billNum; - bbac_sa.InvGroupNum = billNum; - bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); - bbac_sa.State = SettleBillState.未结状态; - bbac_sa.SettleBillNum = string.Empty; - bbac_sa.Site = "104T"; - bbac_sa.BusinessType = EnumBusinessType.JisBBAC; - billList.Add(bbac_sa); + decimal sum = 0; + List details = new List(); foreach (var itm1 in ls) { + sum += (itm1.Qty * itm1.Price); + if (sum > 10000000) + { + var billNum = OrderNumberGenerator.GenerateOrderNumber("N"); + var bbac_sa = new HBPO_CAN_SA(); + bbac_sa.SetId(Guid.NewGuid()); + bbac_sa.BillNum = billNum; + bbac_sa.InvGroupNum = billNum; + bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); + bbac_sa.State = SettleBillState.未结状态; + bbac_sa.SettleBillNum = string.Empty; + bbac_sa.Site = "1046"; + bbac_sa.BusinessType = EnumBusinessType.JisBBAC; + billList.Add(bbac_sa); + foreach (var itm2 in details) + { + itm2.SetBillNum(billNum); + itm2.SetGroupNum(billNum); + billDetails.Add(itm2); + } + details = new List(); + sum = 0; + } var _detailEntity = new HBPO_CAN_SA_DETAIL( - guid: GuidGenerator.Create(), - keyCode: itm1.KeyCode, - version: itm1.Version, - billNum: billNum, - settleBillNum: itm1.SettleBillNum, - lU: itm1.LU, - pN: itm1.PN, - site: itm1.Site, - qty: itm1.Qty, - price: itm1.Price, - businessType: itm1.BusinessType, - settleDate: itm1.SettleDate, - groupNum: itm1.GroupNum, - invGroupNum: billNum, - invbillnum: string.Empty, - partcode: itm1.PartCode - ); + guid: GuidGenerator.Create(), + keyCode: itm1.KeyCode, + version: itm1.Version, + billNum: string.Empty, + settleBillNum: itm1.SettleBillNum, + lU: itm1.LU, + pN: itm1.PN, + site: itm1.Site, + qty: itm1.Qty, + price: itm1.Price, + businessType: itm1.BusinessType, + settleDate: itm1.SettleDate, + groupNum: itm1.GroupNum, + invGroupNum: string.Empty, + invbillnum: string.Empty, + partcode: itm1.PartCode + ); _detailEntity.RealPartCode = itm1.RealPartCode; - billDetails.Add(_detailEntity); + details.Add(_detailEntity); + } + var billNum1 = OrderNumberGenerator.GenerateOrderNumber("N"); + var bbac_sa1 = new HBPO_CAN_SA(); + bbac_sa1.SetId(Guid.NewGuid()); + bbac_sa1.BillNum = billNum1; + bbac_sa1.InvGroupNum = billNum1; + bbac_sa1.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); + bbac_sa1.State = SettleBillState.未结状态; + bbac_sa1.SettleBillNum = string.Empty; + bbac_sa1.Site = "1046"; + bbac_sa1.BusinessType = EnumBusinessType.JisBBAC; + billList.Add(bbac_sa1); + foreach (var detail in details) + { + detail.SetBillNum(billNum1); + detail.SetGroupNum(billNum1); + billDetails.Add(detail); } } } @@ -556,14 +602,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs _dbcontext.BulkDelete(notlist);//删除不可结数据 _dbcontext.BulkInsert(billDetails);//插入可结明细 _dbcontext.BulkInsert(billList);//插入可结主表 - } - var flaglist = _dbcontext.Set().Where(p => p.IsReturn == true).ToList(); - foreach (var flag in flaglist) + var ls = _dbcontext.Set().Where(p => p.Project == "HBPO_NOT" && p.Value == "True").ToList(); + if (ls.Any()) { - flag.IsReturn = false; + _dbcontext.BulkDelete(ls); } - _dbcontext.BulkUpdate(flaglist);//插入可结明细 transaction.Commit(); } catch (Exception) @@ -575,8 +619,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs } if (issucess == true) { - var result = from a in _dbcontext.Set() - join b in _dbcontext.Set() on new { a.KeyCode, a.BusinessType } equals new { b.KeyCode, b.BusinessType } + var result = from a in _dbcontext.Set() + join b in _dbcontext.Set() on new { a.KeyCode, a.BusinessType } equals new { b.KeyCode, b.BusinessType } where a.Price == 0 select new { @@ -592,12 +636,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs } else { - var flaglist = _dbcontext.Set().Where(p => p.IsReturn == true).ToList(); - foreach (var flag in flaglist) + var ls = _dbcontext.Set().Where(p => p.Project == "HBPO_NOT" && p.Value == "True").ToList(); + if (ls.Any()) { - flag.IsReturn = false; + _dbcontext.BulkDelete(ls); } - _dbcontext.BulkUpdate(flaglist);//插入可结明细 } } return id.ToString(); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_CAN_SA.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_CAN_SA.cs index 0180c791..39b1ec05 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_CAN_SA.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_CAN_SA.cs @@ -139,7 +139,13 @@ namespace SettleAccount.Domain.BQ BusinessType = businessType; PartCode = partcode; } - + public void SetBillNum(string billNum) { + BillNum = billNum; + } + public void SetGroupNum(string billNum) + { + BillNum = billNum; + } public HBPO_CAN_SA_DETAIL() { } 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 74cf80f9..15749513 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 @@ -10,6 +10,7 @@ using Volo.Abp; using Volo.Abp.Domain.Services; using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Bases.DomainServices; +using Win.Sfs.SettleAccount.Entities.CodeSettings; using Win.Sfs.SettleAccount.Entities.Prices; using Win.Sfs.Shared.RepositoryBase; @@ -29,6 +30,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers private readonly INormalEfCoreRepository _sadetailRepository; private readonly INormalEfCoreRepository _notRepository; private readonly INormalEfCoreRepository _priceRepository; + private readonly INormalEfCoreRepository _codesettingRepository; private readonly BaseDomainService _service; public BBAC_NOT_SA_MNG() { @@ -40,9 +42,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers INormalEfCoreRepository detailRepository, INormalEfCoreRepository notRepository, INormalEfCoreRepository priceRepository, - INormalEfCoreRepository sadetailRepository + INormalEfCoreRepository sadetailRepository, + INormalEfCoreRepository codesettingRepository ) { + _codesettingRepository = codesettingRepository; _priceRepository = priceRepository; _repository = repository; _detailRepository = detailRepository; @@ -56,23 +60,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers public virtual async Task IsCompleted() { - var list=await _notRepository.Where(p=>p.IsReturn==true).ToListAsync().ConfigureAwait(false); + var list=await _codesettingRepository.Where(p=>p.Project=="BBAC_NOT" && p.Value=="True").ToListAsync().ConfigureAwait(false); if (list.Count > 0) { return false; } - var first=_notRepository.FirstOrDefault(); - if (first != null) - { - first.IsReturn = true; - _repository.DbContext.BulkUpdate(new List() { first}); - } - + await _codesettingRepository.InsertAsync(new CodeSetting(GuidGenerator.Create(), GuidGenerator.Create(),"BBAC_NOT","True","True")).ConfigureAwait(false); return true; - - } 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 323ed657..db496a81 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 @@ -4,11 +4,13 @@ using System.Linq; using System.Security.Policy; using System.Threading.Tasks; using EFCore.BulkExtensions; +using Microsoft.EntityFrameworkCore; using SettleAccount.Domain.BQ; using Volo.Abp; using Volo.Abp.Domain.Services; using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Bases.DomainServices; +using Win.Sfs.SettleAccount.Entities.CodeSettings; using Win.Sfs.SettleAccount.Entities.Prices; using Win.Sfs.Shared.RepositoryBase; @@ -29,6 +31,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers private readonly INormalEfCoreRepository _detailRepository; private readonly INormalEfCoreRepository _notRepository; private readonly INormalEfCoreRepository _priceRepository; + private readonly INormalEfCoreRepository _codesettingRepository; private readonly BaseDomainService _service; public HBPO_NOT_SA_MNG() { @@ -36,6 +39,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers public HBPO_NOT_SA_MNG ( + INormalEfCoreRepository codesettingRepository, INormalEfCoreRepository repository, INormalEfCoreRepository detailRepository, INormalEfCoreRepository notRepository, @@ -48,7 +52,21 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers _notRepository = notRepository; _service = service; _priceRepository = priceRepository; + _codesettingRepository = codesettingRepository; } + + public virtual async Task IsCompleted() + { + var list = await _codesettingRepository.Where(p => p.Project == "HBPO_NOT" && p.Value == "True").ToListAsync().ConfigureAwait(false); + if (list.Count > 0) + { + return false; + } + await _codesettingRepository.InsertAsync(new CodeSetting(GuidGenerator.Create(), GuidGenerator.Create(), "HBPO_NOT", "True", "True")).ConfigureAwait(false); + return true; + } + + public virtual async Task> GenerateSettlementOrder(List p_list) { if (p_list.Count > 0)