diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_CAN_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_CAN_SA_MNG.cs index 54937ee1..f2d1ac8f 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_CAN_SA_MNG.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_CAN_SA_MNG.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using EFCore.BulkExtensions; using Microsoft.EntityFrameworkCore; using SettleAccount.Domain.BQ; using Volo.Abp; @@ -111,7 +112,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers } break; } - await _repository.UpdateAsync(p_entiy).ConfigureAwait(false); + //await _repository.UpdateAsync(p_entiy).ConfigureAwait(false); + + await _repository.DbContext.BulkUpdateAsync(new List { p_entiy }).ConfigureAwait(false); return true; } return false; diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs index 37421fb3..5327e444 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading.Tasks; using EFCore.BulkExtensions; using Microsoft.EntityFrameworkCore; +using NPOI.SS.Formula.Functions; using SettleAccount.Bases; using SettleAccount.Domain.BQ; using Volo.Abp; @@ -1192,8 +1193,14 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers { dic.Add(itm.GroupNum, itm.Amt); copyDic.Add(itm.GroupNum, itm.Amt); + } + + + + Dictionary> invoiceMap = new Dictionary>(); + var first=p_list.FirstOrDefault(); foreach (var itm in dic) { string invoiceBillNum = OrderNumberGenerator.GenerateOrderNumber("INV"); @@ -1203,31 +1210,71 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers // List luList = dtos.Where(p => p.GroupNum == itm.Key).Select(p => p.LU).Distinct().ToList(); //初始LU种类 if (copyDic.ContainsKey(itm.Key) == true)//是否存在分组 { - foreach (var _itm1 in copyDic) + if (first.BusinessType == EnumBusinessType.JisBBAC || first.BusinessType == EnumBusinessType.ZhiGongJianHBPO) { - if (itm.Key == _itm1.Key)//相同结算分组项不计算,已初始化 + foreach (var _itm1 in copyDic) { - invoiceGroupNumList.Add(itm.Key); - continue; + if (itm.Key == _itm1.Key)//相同结算分组项不计算,已初始化 + { + invoiceGroupNumList.Add(itm.Key); + continue; + } + //var grouplist = dtos.Where(p => p.GroupNum == _itm1.Key).Select(p => p.LU).Distinct().ToList();//每项LU种类 + //luList.AddRange(grouplist); + //luList = luList.Distinct().ToList(); + //if (luList.Count > 20)//累加零件不超过20种 + //{ + // continue; + //} + sum += _itm1.Value; + if (sum > 10000000) + { + break; + } + invoiceGroupNumList.Add(_itm1.Key);//所有条件都满足添加发票和结算分组对应关系 } - //var grouplist = dtos.Where(p => p.GroupNum == _itm1.Key).Select(p => p.LU).Distinct().ToList();//每项LU种类 - //luList.AddRange(grouplist); - //luList = luList.Distinct().ToList(); - //if (luList.Count > 20)//累加零件不超过20种 - //{ - // continue; - //} - sum += _itm1.Value; - if (sum > 10000000) + invoiceMap.Add(invoiceBillNum, invoiceGroupNumList);//记录发票对应关系 + foreach (var rem in invoiceGroupNumList)//移除 { - break; + copyDic.Remove(rem); } - invoiceGroupNumList.Add(_itm1.Key);//所有条件都满足添加发票和结算分组对应关系 } - invoiceMap.Add(invoiceBillNum, invoiceGroupNumList);//记录发票对应关系 - foreach (var rem in invoiceGroupNumList)//移除 + else { - copyDic.Remove(rem); + int count = 1; + foreach (var _itm1 in copyDic) + { + if (itm.Key == _itm1.Key)//相同结算分组项不计算,已初始化 + { + invoiceGroupNumList.Add(itm.Key); + continue; + } + + if (count > 14) + { + break; + } + //var grouplist = dtos.Where(p => p.GroupNum == _itm1.Key).Select(p => p.LU).Distinct().ToList();//每项LU种类 + //luList.AddRange(grouplist); + //luList = luList.Distinct().ToList(); + //if (luList.Count > 20)//累加零件不超过20种 + //{ + // continue; + //} + sum += _itm1.Value; + if (sum > 10000000) + { + break; + } + invoiceGroupNumList.Add(_itm1.Key);//所有条件都满足添加发票和结算分组对应关系 + count++; + + } + invoiceMap.Add(invoiceBillNum, invoiceGroupNumList);//记录发票对应关系 + foreach (var rem in invoiceGroupNumList)//移除 + { + copyDic.Remove(rem); + } } } } @@ -1452,8 +1499,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers //} _invls = invlist.Select(p => p.InvbillNum).ToList(); } - - return _invls; }