diff --git a/GZ_LTHPilot_ORDER.csproj b/GZ_LTHPilot_ORDER.csproj index 59ccb0c..17f42e3 100644 --- a/GZ_LTHPilot_ORDER.csproj +++ b/GZ_LTHPilot_ORDER.csproj @@ -440,6 +440,7 @@ - copy $(TargetPath) "D:\kingdee\K3Cloud\WebSite\Bin\$(TargetFileName)" + + \ No newline at end of file diff --git a/ScheduleService/SaleOrderReceiveAmount.cs b/ScheduleService/SaleOrderReceiveAmount.cs index 36d1864..ed00e78 100644 --- a/ScheduleService/SaleOrderReceiveAmount.cs +++ b/ScheduleService/SaleOrderReceiveAmount.cs @@ -29,20 +29,61 @@ namespace GZ_LTHPilot_ORDER.ScheduleService var orgList = orgService.GetOrgList(); var tableName = tempTableService.CreateTempTable(); CreateTempTable(ctx, tableName); + var advanceAays = GetAdvanceAays(schedule); + var planStartDate = DateTime.Now; foreach (var item in orgList) { - var advanceAays = GetAdvanceAays(schedule); + // 获取组织Id var orgId = item["FORGID"].ToString(); - // 提前天的日期 - var startDate = DateTime.Now.Date.AddDays(-advanceAays - 1); - var endDate = DateTime.Now; - var receiveAmountList = saleOrderService.GetSaleOrderReceiveAmountByDate(orgId, startDate, endDate); - InsertDataToTempTable(ctx, tableName, orgId, receiveAmountList); + + // 循环查询销售订单执行明细表,每次查询一个月的数据, 将数据插入自定义临时表中 + var startDate = planStartDate.AddDays(-advanceAays); + var endDate = startDate.AddMonths(1); + // 如果开始时间大于计划开始时间,说明结束了 + while (startDate > planStartDate) + { + var receiveAmountList = saleOrderService.GetSaleOrderReceiveAmountByDate(orgId, startDate, endDate); + InsertDataToTempTable(ctx, tableName, orgId, receiveAmountList); + startDate = startDate.AddMonths(1); + endDate = startDate.AddMonths(1); + } } + UpdateSaleOrderReceiveAmount(ctx, tableName); + tempTableService.DropTempTable(tableName); + + } + + /// + /// 更新销售订单累计核销金额 + /// + /// + /// + /// + private int UpdateSaleOrderReceiveAmount(Context ctx, string tableName) + { + var sql = $@" +UPDATE t1 +SET + t1.F_AMOUNT = FAMOUNT +FROM + T_SAL_ORDER t1 + INNER JOIN {tableName} t2 ON t1.FSALEORGID = t2.FORGID + AND t1.FBILLNO = t2.FBILLNO +"; + + + return DBServiceHelper.Execute(ctx, sql); } - + /// + /// 将查询的数据插入临时表 + /// + /// + /// + /// + /// + /// private int InsertDataToTempTable(Context ctx, string tableName, string orgId, List saleExecuteOuts) { var values = saleExecuteOuts.Select(n => $"({orgId},'{n.FSALEORGNAME}','{n.FBILLNO}',{n.FALLMATCHAMOUNT},'{n.FDate}')"); @@ -56,6 +97,11 @@ VALUES return DBServiceHelper.Execute(ctx, sqlTemp); } + /// + /// 创建临时表 + /// + /// + /// private void CreateTempTable(Context ctx, string tableName) { var sql = $@" diff --git a/ScheduleService/SaleOrderSumSicsAmountRefresh.cs b/ScheduleService/SaleOrderSumSicsAmountRefresh.cs index a4bff27..acb7338 100644 --- a/ScheduleService/SaleOrderSumSicsAmountRefresh.cs +++ b/ScheduleService/SaleOrderSumSicsAmountRefresh.cs @@ -30,8 +30,6 @@ namespace GZ_LTHPilot_ORDER.ScheduleService var saleOrderList = saleOrderService.GetSaleOrderByOrgIdAndContractNo(saleOrgId, contractNo); if (saleOrderList.Count == 0) { - //var errInfo = string.Format("纸质合同号:{0},没有找到对应的销售订单,请检查销售订单是否已审核,或者被作废", contractNo); - //throw new Exception(errInfo); continue; } var saleOrder = saleOrderList[0]; diff --git a/Services/SaleSicsService.cs b/Services/SaleSicsService.cs index eab3968..0f27f8d 100644 --- a/Services/SaleSicsService.cs +++ b/Services/SaleSicsService.cs @@ -37,38 +37,48 @@ namespace GZ_LTHPilot_ORDER.Service var saleOrgId = saleOrder["FSALEORGID"].ToString(); var sqlTemp = @"/*dialect*/UPDATE t1 SET - t1.F_INVOICEAMOUNT = TEMP1.FAFTERTOTALTAX + t1.F_INVOICEAMOUNT = ISNULL (TEMP1.FAFTERTOTALTAXFOR, 0) + ROUND( + ( + ISNULL (TEMP1.FAFTERTOTALTAX, 0) / ISNULL (t1fin.FEXCHANGERATE, 0) + ), + 2 + ) FROM T_SAL_ORDER t1 - INNER JOIN ( + INNER JOIN T_SAL_ORDERFIN t1fin ON t1.FID = t1fin.FID + LEFT JOIN ( SELECT FSALEORGID, F_PaperNumber, - SUM(FAFTERTOTALTAX) FAFTERTOTALTAX + SUM(FAFTERTOTALTAX) FAFTERTOTALTAX, -- 价税合计本币 + SUM(FAFTERTOTALTAXFOR) FAFTERTOTALTAXFOR -- 价税合计原币 FROM ( SELECT FSALEORGID, -- 销售组织 F_PaperNumber, -- 纸质合同号 - ISNULL (FAFTERTOTALTAX, 0) FAFTERTOTALTAX -- 价税合计本币 + 0 FAFTERTOTALTAX, + ISNULL (FAFTERTOTALTAXFOR, 0) FAFTERTOTALTAXFOR -- 价税合计 FROM T_IV_SALESIC WHERE 1 = 1 AND FDOCUMENTSTATUS = 'C' AND FCANCELSTATUS = 'A' + AND FDATE >= '2025-01-01' AND FSALEORGID = '{0}' AND F_PaperNumber = '{1}' - AND FDATE >= '2025-01-01' UNION ALL SELECT '100302' FSALEORGID, -- 销售组织 合同号 F_PaperNumber, -- 纸质合同号 - SUM(ISNULL (专票金额, 0) + ISNULL (普票金额, 0)) FAFTERTOTALTAX -- 价税合计本币 - FROm - dbo.oldk3seorder0701 + SUM(ISNULL (专票金额, 0) + ISNULL (普票金额, 0)) FAFTERTOTALTAX, -- 价税合计本币 + 0 -- 价税合计 + FROM + oldk3seorder0701 WHERE 1 = 1 + AND 日期 < '2025-01-01' AND 合同号 = '{1}' GROUP BY 合同号 diff --git a/T_IV_SALESIC/ServicePlugIn/UnAudit.cs b/T_IV_SALESIC/ServicePlugIn/UnAudit.cs index 525d7bf..2b5a1ba 100644 --- a/T_IV_SALESIC/ServicePlugIn/UnAudit.cs +++ b/T_IV_SALESIC/ServicePlugIn/UnAudit.cs @@ -39,8 +39,7 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn var saleOrderList = saleOrderService.GetSaleOrderByOrgIdAndContractNo(orgId, contractNo); if (saleOrderList.Count == 0) { - //var errInfo = string.Format("纸质合同号:{0},没有找到对应的销售订单,请检查销售订单是否已审核,或者被作废", contractNo); - //throw new Exception(errInfo); + continue; } if (saleOrderList.Count > 1)