diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_PD_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_PD_DTO.cs index ad056fcc..91f42ca2 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_PD_DTO.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_PD_DTO.cs @@ -136,22 +136,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos /// 替换生产码 /// public string REPN { get; set; } - /// - /// 键值 - /// - public string KeyCode { get; set; } - /// - /// 扩展字段1 - /// - public string Extend1 { get; set; } - /// - /// 扩展字段2 - /// - public string Extend2 { get; set; } - /// - /// 扩展字段3 - /// - public string Extend3 { get; set; } + + /// /// 客户零件号 /// diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs index e787eeb9..9de4b433 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs @@ -255,13 +255,13 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos /// ///零件号 /// - [Display(Name = "零件号")] + [Display(Name = "客户零件号")] public string LU { get; set; } /// ///零件号 /// - [Display(Name = "客户零件号")] + [Display(Name = "零件号")] public string PartCode { get; set; } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs index eeb4f939..238fcaf7 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs @@ -30,6 +30,7 @@ using Win.Abp.Snowflakes; using Win.Sfs.SettleAccount.CommonManagers; using Volo.Abp; using Win.Sfs.SettleAccount.Entities.BQ.Temp; +using Volo.Abp.Uow; namespace Win.Sfs.SettleAccount.Entities.BQ { @@ -81,15 +82,13 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// /// [HttpPost] - + [UnitOfWork(false)] public async override Task GenerateInvoice([FromBody] string invbillNum) { var main =await _bbacMng.GetMainAsync(invbillNum); if (main != null) { - - if (main.State != SettleBillState.未结状态) { return new JsonResult(new { Code = 400, Message = "已创建发票不能重复创建" }); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs index 35b9cbe3..51cede28 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs @@ -69,7 +69,14 @@ namespace SettleAccount.Bases public virtual string Site { get; set; } - + + public virtual void SetId(Guid guid) + { + Id = guid; + } + + + } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs index 5b74aa7a..162af8a9 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs @@ -46,6 +46,9 @@ public class BBAC_CAN_SA : SA_CAN_BASE_MAIN Site = site; BusinessType = businessType; } + + + } [Display(Name = "BBAC可结算导入明细")] 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 fd139484..a5928c9d 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 @@ -64,6 +64,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var _entity = new BBAC_CAN_SA(); + _entity.SetId(Guid.NewGuid()); _entity.BillNum = billNumber; _entity.InvGroupNum = billNumber; _entity.Version = DateTime.Now.Year + DateTime.Now.Month; 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 57207ce2..c6973618 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 @@ -76,6 +76,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers _entity.State = SettleBillState.未结状态; _entity.SettleBillNum = string.Empty; _entity.BusinessType = p_list.FirstOrDefault().BusinessType; + _entity.SetId(Guid.NewGuid()); var _entityList = new List(); foreach (var itm in p_list) { 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 9fbaca26..42653b57 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 @@ -1282,14 +1282,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers } if (invoiceMap.Keys.Count > 0) { - var groupList = new List(); var notDetialList = new List(); var detailList = new List(); var invlist = new List(); var salist = new List(); var adjlist = new List(); - foreach (var itm in invoiceMap)//分组影响和 { var key = itm.Key;//发票票号 @@ -1311,21 +1309,19 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers adjdetails.Add(detail); } } - - var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.PartCode, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }) + var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.PartCode, p.Price, p.BeginDate, p.EndDate, p.ContractDocID,p.LU }) .Select(itm => new { PartCode = itm.Key.PartCode, InvGroupNum = itm.Key.InvGroupNum, - LU = itm.Key.PartCode, + LU = itm.Key.LU, ContactDocID = itm.Key.ContractDocID, Price = itm.Key.Price, Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2), Qty = itm.Sum(k => k.Qty), BeginDate = itm.Key.BeginDate, EndDate = itm.Key.EndDate - }) - .ToList(); + }).ToList(); decimal amt = detailDtos.Sum(k => k.Amt); decimal txtAmt = Math.Round(detailDtos.Sum(k => k.Amt), 2); var mapList = new List(); @@ -1373,10 +1369,29 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers detailList.AddRange(_entityDetailList); } var innotls = new List(); + var sq = dtos.Where(p => itm.Value.Contains(p.GroupNum)).GroupBy(p => new { p.LU, p.GroupNum }) + .Select(p => new { version = p_version, LU = p.Key.LU, Qty = p.Sum(itm => itm.Qty), InvBillNum = itm.Key, GroupNum = p.Key.GroupNum }); + + foreach (var sitm in sq) + { + innotls.Add(new INVOICE_NOT_SETTLE( + guid: GuidGenerator.Create(), + version: p_version, + invGroupNum: p_InvGroupNum, + settleGroupNum: sitm.GroupNum, + lU: sitm.LU, + lU1: sitm.LU, + extend1: string.Empty, + extend2: string.Empty, + qty: sitm.Qty, + p_invbillnum: itm.Key + )); + } if (p_notlist != null && p_notlist.Count > 0) { var groupnum = itm.Value; - var notls = p_notlist.Where(p=>groupnum.Contains(p.GroupNum)).GroupBy(p => new { p.GroupNum, p.LU }).Select(p => new { GroupNum = p.Key.GroupNum, LU = p.Key.LU, Qty = p.Sum(itm => itm.Qty) }); + var notls = p_notlist.Where(p => groupnum.Contains(p.GroupNum)).GroupBy(p => new { p.GroupNum, p.LU }) + .Select(p => new { GroupNum = p.Key.GroupNum, LU = p.Key.LU, Qty = p.Sum(itm => itm.Qty), InvBillNum = itm.Key }); foreach (var nitm in notls) { innotls.Add(new INVOICE_NOT_SETTLE( @@ -1384,12 +1399,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers version: p_version, invGroupNum: p_InvGroupNum, settleGroupNum: nitm.GroupNum, - lU: string.Empty, + lU: nitm.LU, lU1: nitm.LU, extend1: string.Empty, extend2: string.Empty, qty: nitm.Qty, - p_invbillnum:itm.Key + p_invbillnum: itm.Key )); } if (innotls.Count > 0) @@ -1408,9 +1423,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers invGroupNum: p_InvGroupNum, state: SettleBillState.已开票, invoiceBillState: InvoiceBillState.正常, - tax: 0, - parent: string.Empty, - preTaxDiff: 0, + tax: 0, + parent: string.Empty, + preTaxDiff: 0, taxDiff: 0, clientCode: string.Empty, realAmt: 0 @@ -1418,18 +1433,26 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers invlist.Add(invbill); } + if (salist.Count > 0) + { + foreach (var itm in invoiceMap)//分组影响和 + { + var key = itm.Key;//发票票号 + var ls = itm.Value;//结算分组号列表 + + string str = $" EXEC [p_Invoice_generation_change] @invbillnum = {"'" + key + "'"},@groupNum = {"'" + string.Join(",", ls) + "'"},@businessType = NULL"; + await _repository.DbContext.Database.ExecuteSqlRawAsync(str); + } + // await _repository.DbContext.BulkUpdateAsync(salist,new BulkConfig() { BatchSize=10000 }); + } await _repository.DbContext.BulkInsertAsync(invlist); await _repository.DbContext.BulkInsertAsync(groupList); await _repository.DbContext.BulkInsertAsync(detailList); - - if (salist.Count > 0) - { - await _repository.DbContext.BulkUpdateAsync(salist); - } + if (adjlist.Count > 0) { await _repository.DbContext.BulkUpdateAsync(adjlist); 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 c8a4c691..bca294e7 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 @@ -95,6 +95,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers } var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var _entity = new PUB_CAN_SA(); + _entity.SetId(Guid.NewGuid()); _entity.BillNum = billNumber; _entity.InvGroupNum = billNumber; _entity.Version = DateTime.Now.Year + DateTime.Now.Month; @@ -134,6 +135,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers { var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var _entity = new PUB_CAN_SA(); + _entity.SetId(Guid.NewGuid()); _entity.BillNum = billNumber; _entity.InvGroupNum = billNumber; _entity.Version = DateTime.Now.Year + DateTime.Now.Month;