From 908c7c1e44864756df1803a80ea876b90879401c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Tue, 21 Nov 2023 12:00:08 +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_CAN_SA_SERVICE.cs | 144 ++++++++++-------- .../BQ/Syncs/GenerateJisInvoiceService.cs | 12 +- 2 files changed, 84 insertions(+), 72 deletions(-) diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs index 4c3728db..b0d56e20 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs @@ -112,82 +112,94 @@ namespace Win.Sfs.SettleAccount.Entities.BQ List customConditionList = new List(); customConditionList.Add(new CustomCondition() { Name = "BillNum", Value = invbillnum }); customConditionList.Add(new CustomCondition() { Name = "BussinessType", Value = main.BusinessType.ToString() }); - await _hbpoMng.SetWaitingState(invbillnum); - var _taskid = await _service.ExportEnqueueAsync("生成发票任务", ExportExtentsion.Excel, string.Empty, string.Empty, CurrentUser, typeof(GenerateJisInvoiceService), customConditionList, (rs) => + + + if (main.BusinessType == EnumBusinessType.MaiDanJianHBPO) + { + var groupNumList = entitys.Select(p => p.GroupNum).Distinct().ToList(); + var notQuery = _notRepository.Where(p => p.SettleBillNum == main.SettleBillNum).ToList(); + var dto1s = ObjectMapper.Map, List>(entitys); + var q = from d in dto1s + join p in priceList on d.LU equals p.LU + where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == main.Site + select new TEMP_CAN_SA_DETAIL + { + SettleBillNum = d.SettleBillNum, + Site = d.Site, + Version = d.Version, + Price = p.Price, + BillNum = d.BillNum, + SettleDate = d.SettleDate, + InvGroupNum = d.InvGroupNum, + LU = d.LU, + MaterialDesc = d.MaterialDesc, + PN = d.PN, + Qty = d.Qty, + GroupNum = d.GroupNum, + Amt = Math.Round(d.Qty * p.Price, 2), + ContractDocID = "no", + BeginDate = p.BeginTime, + EndDate = p.EndTime, + PartCode = d.PartCode + + }; + var dtos = q.ToList(); + if (dtos != null && dtos.Count > 0) + { + if (invbillnum.Substring(0, 1) == "C")//一次开票 + { + var notlist = notQuery.Select(p => new TEMP_NOT_SA_DETAIL + { + KeyCode = p.KeyCode, + Version = p.Version, + SettleBillNum = p.SettleBillNum, + LU = p.LU, + PN = p.PN, + Site = p.Site, + Qty = p.Qty, + Price = p.Price, + BusinessType = p.BusinessType, + IsReturn = "", + InvGroupNum = p.InvGroupNum, + SettleDate = p.SettleDate, + GroupNum = p.GroupNum, + ContractDocID = string.Empty, + PartCode = p.PartCode + + }).ToList();//不能结算 + var falg = await FirstInvoice(entitys, new List(), dtos, notlist, main.Version, main.InvGroupNum, string.Empty, main.BusinessType).ConfigureAwait(false); + } + else//二次开票 + { + var flag = await SecInvoice(entitys, new List(), dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType).ConfigureAwait(false); + } + + + } + + + + } + else { - }).ConfigureAwait(false); + await _hbpoMng.SetWaitingState(invbillnum); + var _taskid = await _service.ExportEnqueueAsync("生成发票任务", ExportExtentsion.Excel, string.Empty, string.Empty, CurrentUser, typeof(GenerateJisInvoiceService), customConditionList, (rs) => + { + }).ConfigureAwait(false); + + } + return new JsonResult(new { Code = 200, Message = "生成发票任务" }); - //if (await _hbpoMng.SetForwardState(main, SettleBillState.已开票).ConfigureAwait(false)) - //{ - // var groupNumList = entitys.Select(p => p.GroupNum).Distinct().ToList(); - // var notQuery = _notRepository.Where(p => p.SettleBillNum == main.SettleBillNum).ToList(); - // var dto1s = ObjectMapper.Map, List>(entitys); - // var q = from d in dto1s - // join p in priceList on d.LU equals p.LU - // where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == main.Site - // select new TEMP_CAN_SA_DETAIL - // { - // SettleBillNum = d.SettleBillNum, - // Site = d.Site, - // Version = d.Version, - // Price = p.Price, - // BillNum = d.BillNum, - // SettleDate = d.SettleDate, - // InvGroupNum = d.InvGroupNum, - // LU = d.LU, - // MaterialDesc = d.MaterialDesc, - // PN = d.PN, - // Qty = d.Qty, - // GroupNum = d.GroupNum, - // Amt = Math.Round(d.Qty * p.Price, 2), - // ContractDocID = "no", - // BeginDate = p.BeginTime, - // EndDate = p.EndTime, - // PartCode = d.PartCode - - // }; - // var dtos = q.ToList(); - // if (dtos != null && dtos.Count > 0) - // { - // if (invbillnum.Substring(0, 1) == "C")//一次开票 - // { - // var notlist = notQuery.Select(p => new TEMP_NOT_SA_DETAIL - // { - // KeyCode = p.KeyCode, - // Version = p.Version, - // SettleBillNum = p.SettleBillNum, - // LU = p.LU, - // PN = p.PN, - // Site = p.Site, - // Qty = p.Qty, - // Price = p.Price, - // BusinessType = p.BusinessType, - // IsReturn = "", - // InvGroupNum = p.InvGroupNum, - // SettleDate = p.SettleDate, - // GroupNum = p.GroupNum, - // ContractDocID = string.Empty, - // PartCode = p.PartCode - - // }).ToList();//不能结算 - // var falg = await FirstInvoice(entitys, new List(), dtos, notlist, main.Version, main.InvGroupNum, string.Empty, main.BusinessType).ConfigureAwait(false); - // } - // else//二次开票 - // { - // var flag = await SecInvoice(entitys, new List(), dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType).ConfigureAwait(false); - // } - - // } - //} + } else { return new JsonResult(new { Code = 400, Message = "不存在可结算单记录" }); } - + } } } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/GenerateJisInvoiceService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/GenerateJisInvoiceService.cs index 93159f6c..86999697 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/GenerateJisInvoiceService.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/GenerateJisInvoiceService.cs @@ -511,7 +511,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs } else { - int count = 1; + //int count = 1; foreach (var _itm1 in copyDic) { if (itm.Key == _itm1.Key)//相同结算分组项不计算,已初始化 @@ -520,10 +520,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs continue; } - if (count > 14) - { - break; - } + //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(); @@ -537,7 +537,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs break; } invoiceGroupNumList.Add(_itm1.Key);//所有条件都满足添加发票和结算分组对应关系 - count++; + //count++; } invoiceMap.Add(invoiceBillNum, invoiceGroupNumList);//记录发票对应关系