From 06d3c4e6faa33c6fdcad787bd034b728a5a6016e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Fri, 18 Aug 2023 17:34:25 +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/Dtos/INVOICE_GRP_DTO.cs | 69 +++++++++++++++++-- .../Entities/BQ/Dtos/PUB_CAN_SA_DTO.cs | 5 ++ .../Entities/BQ/BBAC_BA_SERVICE.cs | 53 ++++++++++---- .../Entities/BQ/INVOICE_SERVICE.cs | 3 - .../Entities/BQ/PUB_BA_SERVICE.cs | 3 +- .../Entities/BQ/PUB_CAN_SA_SERVICE.cs | 2 +- .../Entities/BQ/INVOICE_WAIT_DETAIL.cs | 1 + .../Entities/BQ/Managers/INV_MNG.cs | 58 +++++++--------- .../Entities/BQ/Managers/INV_MNG_EXT.cs | 2 - .../Entities/BQ/Managers/PUB_NOT_SA_MNG.cs | 6 +- .../Entities/BQ/PUB_CAN_SA.cs | 7 +- .../Entities/BQ/PUB_NOT_SA_DETAIL.cs | 6 +- 12 files changed, 153 insertions(+), 62 deletions(-) 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 0738520f..b7aa58df 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 @@ -38,7 +38,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos /// [Display(Name = "税后金额")] public decimal TaxAmt { get; set; } - [Display(Name = "金税发票金额")] public decimal RealAmt { get; set; } /// @@ -46,7 +45,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos /// [Display(Name = "发票分组号")] public string InvGroupNum { get; set; } - /// ///业务类别 /// @@ -63,11 +61,74 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos public decimal TaxDiff { get; set; } [Display(Name = "客户代码")] public string ClientCode { get; set; } - + } + + + [Display(Name = "发票")] + public class INVOICE_REPEAT_DTO : EntityDto + { + /// + ///系统生成发票号 + /// + [Display(Name = "系统发票号")] + public string InvbillNum { get; set; } + /// + ///未税金额 + /// + [Display(Name = "未税金额")] + public decimal Amt { get; set; } + + /// + ///未税金额 + /// + [Display(Name = "未税金额")] + public decimal Tax { get; set; } + + + /// + ///税后金额 + /// + [Display(Name = "税后金额")] + public decimal TaxAmt { get; set; } + + [Display(Name = "金税发票金额")] + public decimal RealAmt { get; set; } + /// + ///发票分组号 + /// + [Display(Name = "发票分组号")] + public string InvGroupNum { get; set; } + /// + ///业务类别 + /// + [Display(Name = "业务类别")] + public EnumBusinessType BusinessType { get; set; } + + + public List DETIAL { set; get; } + + + + + + + + + + } + + + + + + + + + public class INVOICE_GRP_EXP_DTO { /// @@ -111,11 +172,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos //public decimal TaxDiff { get; set; } [Display(Name = "客户代码")] public string ClientCode { get; set; } + } - } public class INVOICE_GRP_IMP_DTO { diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_CAN_SA_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_CAN_SA_DTO.cs index d29a9198..3b2e3310 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_CAN_SA_DTO.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_CAN_SA_DTO.cs @@ -110,6 +110,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos [Display(Name = "客户零件号")] public string PartCode { get; set; } + [Display(Name = "订单号")] + public string Extend4 { get; set; } + + + } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs index f7346834..6f9206ff 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs @@ -324,10 +324,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// /// /// - public virtual async Task> ReissueInvoiceList(List p_list) + public virtual async Task> ReissueInvoiceList(List p_list) { - List ls = new List(); - + + var invBill = new INVOICE_REPEAT_DTO(); var adjlist=ObjectMapper.Map, List>(p_list); if (adjlist == null && adjlist.Count==0) { @@ -426,16 +426,41 @@ namespace Win.Sfs.SettleAccount.Entities.BQ var dtos = q.ToList(); if (dtos != null && dtos.Count > 0) { - if (invbillnum.Substring(0, 3) == "INV")//一次开票重开 - { - var entities=await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); - ls= ObjectMapper.Map, List>(entities); - } - else//二次开票 - { - var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); - ls=ObjectMapper.Map, List>(entities); - } + if (invbillnum.Substring(0, 3) == "INV")//一次开票重开 + { + + + var entities = await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); + + var ls = ObjectMapper.Map, List>(entities); + + var tax = inv.Tax; + var amt = entities.Sum(p => p.Amt); + var taxamt =amt+ Math.Round(amt * tax, 2); + var billnum = string.Empty; + invBill.Amt = amt; + invBill.TaxAmt = taxamt; + invBill.Tax = tax; + invBill.BusinessType=inv.BusinessType; + invBill.DETIAL = ls; + + + } + else//二次开票 + { + var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); + var ls = ObjectMapper.Map, List>(entities); + + var tax = inv.Tax; + var amt = entities.Sum(p => p.Amt); + var taxamt = amt + Math.Round(amt * tax, 2); + var billnum = string.Empty; + invBill.Amt = amt; + invBill.TaxAmt = taxamt; + invBill.Tax = tax; + invBill.BusinessType = inv.BusinessType; + invBill.DETIAL = ls; + } } } else @@ -447,7 +472,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ //{ // throw new UserFriendlyException($"不存发票号:{p_invbillnum}对应的结算分组号"); //} - return ls; + return invBill; } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs index 90c89eb6..4b892728 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs @@ -263,9 +263,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ { ExportImporter _exportImporter = new ExportImporter(); var result = await _exportImporter.UploadExcelImport(files, _excelImportService); - - - var ls = ObjectMapper.Map, List>(result); var namelist = ls.Select(p => p.InvbillNum).Distinct(); var invlist = _repository.Where(p => namelist.Contains(p.InvbillNum)).ToList(); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs index 3a6b24f9..0e2d2126 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs @@ -109,7 +109,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ groupNum: itm.GroupNum, invGroupNum: itm.InvGroupNum, invbillnum: string.Empty, - partcode: itm.PartCode + partcode: itm.PartCode, + pobillnum:itm.bil )); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs index f5f1e24a..79cfda4b 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs @@ -116,7 +116,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ BeginDate = p.BeginTime, EndDate = p.EndTime, PartCode=d.PartCode,//客户零件号 - PoNum="" + PoNum= }; diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs index ce5d27cf..abe97ec5 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs @@ -5,6 +5,7 @@ using Win.Sfs.SettleAccount; namespace SettleAccount.Domain.BQ; + [Display(Name = "待开票明细")] public class INVOICE_WAIT_DETAIL :FullAuditedAggregateRoot { 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 f1a6b967..c2b9c11e 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 @@ -985,12 +985,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers /// 原发票号 public async Task> SecInvoice(List p_list, List p_ajdlist, List dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType) where TDetail : SA_CAN_BASE - + { List _invls = new List(); - var groups1 = dtos.GroupBy(p => new {p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV + var groups1 = dtos.GroupBy(p => new { p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV { - PartCode=p.Key.PartCode, + PartCode = p.Key.PartCode, LU = p.Key.LU, Amt = p.Sum(itm => itm.Amt), Qty = p.Sum(itm => itm.Qty), @@ -999,7 +999,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers BeginDate = p.Key.BeginDate, EndDate = p.Key.EndDate }).ToList();//汇总记录不出现重复值 - var groups = dtos.GroupBy(p => new {p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV + var groups = dtos.GroupBy(p => new { p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV { PartCode = p.Key.PartCode, LU = p.Key.LU, @@ -1014,7 +1014,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers foreach (var group in groups) { int i = groups1.Count(p => p.LU == group.LU - && p.PartCode==group.PartCode + && p.PartCode == group.PartCode && p.BeginDate == group.BeginDate && p.EndDate == group.EndDate && p.ContractDocID == group.ContractDocID @@ -1053,8 +1053,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers invoiceMap.Add(invoiceBillNum, tempList); var query = from itm in groups1 //更新分组 join itm1 in tempList - on new { itm.LU, itm.BeginDate, itm.EndDate, itm.ContractDocID ,itm.PartCode} - equals new { itm1.LU, itm1.BeginDate, itm1.EndDate, itm1.ContractDocID,itm1.PartCode } into temp + on new { itm.LU, itm.BeginDate, itm.EndDate, itm.ContractDocID, itm.PartCode } + equals new { itm1.LU, itm1.BeginDate, itm1.EndDate, itm1.ContractDocID, itm1.PartCode } into temp from tm in temp where tm == null select new TMEP_INV @@ -1071,7 +1071,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers } if (invoiceMap.Count > 0) { - var groupList = new List(); var notDetialList = new List(); var detailList = new List(); @@ -1082,36 +1081,32 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers { var key = group.Key;//发票票号 var ls = group.Value;//发票明细 - - //反向查找结算数据 - var query = from itm in dtos - join itm1 in ls - on new { itm.LU,itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU,itm1.PartCode, itm1.BeginDate, itm1.EndDate } - join itm2 in p_list on new { itm.PartCode,itm.PN, itm.SettleDate } equals new { itm2.PartCode,itm2.PN, itm2.SettleDate } - select itm2; - foreach (var itm in query) - { - itm.InvbillNum = key; - salist.Add(itm); - } + //反向查找结算数据 + var query = from itm in dtos + join itm1 in ls + on new { itm.LU, itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.PartCode, itm1.BeginDate, itm1.EndDate } + join itm2 in p_list on new { itm.PartCode, itm.PN, itm.SettleDate } equals new { itm2.PartCode, itm2.PN, itm2.SettleDate } + select itm2; + foreach (var itm in query) + { + itm.InvbillNum = key; + salist.Add(itm); + } if (!string.IsNullOrEmpty(p_parentInvBillNum)) { //反向查找调整数据 var query1 = from itm in dtos - join itm1 in ls - on new { itm.LU,itm.PartCode ,itm.BeginDate, itm.EndDate } equals new { itm1.LU,itm1.PartCode, itm1.BeginDate, itm1.EndDate } - join itm2 in p_ajdlist on new { itm.PartCode, itm.PN, itm.SettleDate } equals new { itm2.PartCode, itm2.PN, itm2.SettleDate } - select itm2; - + join itm1 in ls + on new { itm.LU, itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.PartCode, itm1.BeginDate, itm1.EndDate } + join itm2 in p_ajdlist on new { itm.PartCode, itm.PN, itm.SettleDate } equals new { itm2.PartCode, itm2.PN, itm2.SettleDate } + select itm2; foreach (var itm in query1) { itm.InvBillNum = key; adjlist.Add(itm); } - } - - List < INVOICE_WAIT_DETAIL > _entityDetailList = new List(); + List _entityDetailList = new List(); foreach (var detail in ls) { _entityDetailList.Add( @@ -1129,7 +1124,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers extend2: string.Empty, beginDate: detail.BeginDate, endDate: detail.EndDate, - partcode:detail.PartCode + partcode: detail.PartCode )); } if (_entityDetailList.Count > 0) @@ -1184,12 +1179,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers ); invlist.Add(invbill); } - - await _repository.DbContext.BulkInsertAsync(invlist); await _repository.DbContext.BulkInsertAsync(groupList); await _repository.DbContext.BulkInsertAsync(detailList); - if(salist.Count>0) + if (salist.Count > 0) { await _repository.DbContext.BulkUpdateAsync(salist); } @@ -1197,7 +1190,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers { await _repository.DbContext.BulkUpdateAsync(adjlist); } - //await _repository.DbContext.BulkInsertAsync(notDetialList); _invls = invlist.Select(p => p.InvbillNum).ToList(); } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG_EXT.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG_EXT.cs index 8daf8064..18f1092f 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG_EXT.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG_EXT.cs @@ -640,8 +640,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers decimal amt = detailList.Sum(k => k.Amt); decimal txtAmt = Math.Round(detailList.Sum(k => k.Amt), 2); - - var invbill = new INVOICE_GRP (guid: GuidGenerator.Create(), realnvBillNum: string.Empty, 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 7fa06984..3feae13f 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 @@ -107,7 +107,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers groupNum: itm.GroupNum, invGroupNum: billNumber, invbillnum: string.Empty, - partcode: itm.PartCode + partcode: itm.PartCode, + pobillnum:string.Empty ); _entityList.Add(_detailEntity); @@ -145,7 +146,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers groupNum: itm.GroupNum, invGroupNum: billNumber, invbillnum: string.Empty, - partcode: itm.PartCode + partcode: itm.PartCode, + pobillnum: string.Empty ); _entityList.Add(_detailEntity); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs index 9966b222..50f71ddc 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs @@ -112,6 +112,9 @@ public class PUB_CAN_SA_DETAIL : SA_CAN_BASE [Display(Name = "业务类别")] public EnumBusinessType BusinessType { get; set; } + [Display(Name = "订单号")] + public string PoBillNum { get; set; } + /// /// 对应字段DeliveryNode /// @@ -120,7 +123,8 @@ public class PUB_CAN_SA_DETAIL : SA_CAN_BASE public PUB_CAN_SA_DETAIL(Guid guid, string keyCode, int version, string billNum, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, string invGroupNum, DateTime settleDate, EnumBusinessType businessType,string partcode, string groupNum, - string invbillnum + string invbillnum, + string pobillnum ) { InvbillNum=invbillnum; @@ -139,6 +143,7 @@ public class PUB_CAN_SA_DETAIL : SA_CAN_BASE BusinessType = businessType; GroupNum = groupNum; PartCode = partcode; + PoBillNum = pobillnum; } public PUB_CAN_SA_DETAIL() diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_NOT_SA_DETAIL.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_NOT_SA_DETAIL.cs index 9d4b3741..f3a9058b 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_NOT_SA_DETAIL.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_NOT_SA_DETAIL.cs @@ -69,8 +69,11 @@ public class PUB_NOT_SA_DETAIL : SA_NOT_BASE public EnumBusinessType BusinessType { get; set; } //[Display(Name = "结算分组")] //public string GroupNum { get; set; } = null!; + [Display(Name ="订单号")] + public string PoBillNum { get; set; } - public PUB_NOT_SA_DETAIL(string keyCode, int version, string settleBillNum, string lU, string pN, string site, decimal qty, string extend1, string extend2, string extend3, decimal price, string invGroupNum, DateTime settleDate, EnumBusinessType businessType, string groupNum,string partcode) + + public PUB_NOT_SA_DETAIL(string keyCode, int version, string settleBillNum, string lU, string pN, string site, decimal qty, string extend1, string extend2, string extend3, decimal price, string invGroupNum, DateTime settleDate, EnumBusinessType businessType, string groupNum,string partcode,string pobillnum) { KeyCode = keyCode; Version = version; @@ -88,6 +91,7 @@ public class PUB_NOT_SA_DETAIL : SA_NOT_BASE BusinessType = businessType; GroupNum = groupNum; PartCode = partcode; + PoBillNum = pobillnum; } public PUB_NOT_SA_DETAIL()