Procházet zdrojové kódy

企业利润

修改 SQL 查询以包含未审核数据并更新报表生成

在 `StatisticsController.cs` 文件中,修改了 `CorporateProfitInfos` 方法的 SQL 查询语句,注释掉原有的已审核 SQL,并添加了包含未审核数据的 SQL 查询。
在多个 SQL 查询中,删除了 `ccp.IsAuditGM = 1` 的条件,并替换为 `ccp.IsAuditGM != 2`,以包含未审核的数据。
在生成报表的部分,添加了 `dailyExcelLabel` 变量,并在 `companyDailyItems` 循环中为其赋值。最后将 `designer.SetDataSource("DailyLabel", dailyLabel);` 修改为 `designer.SetDataSource("DailyLabel", dailyExcelLabel);`。
LEIYI před 3 měsíci
rodič
revize
04792fede4

+ 180 - 25
OASystem/OASystem.Api/Controllers/StatisticsController.cs

@@ -7768,8 +7768,161 @@ WHERE
         {
             var view = new CorporateProfitInfosView();
 
-            string sql = string.Format(@"SELECT 
-  ROW_NUMBER() OVER(ORDER BY di.VisitDate Asc)  AS 'RowIndex', 
+            //已审核SQL
+            //            string sql = string.Format(@"SELECT 
+            //  ROW_NUMBER() OVER(ORDER BY di.VisitDate Asc)  AS 'RowIndex', 
+            //  di.Id,
+            //  di.ClientName,
+            //  di.TeamName,
+            //  di.TeamDid,
+            //  ss.Name AS 'GroupTypeName',
+            //  di.VisitDate,
+            //  di.VisitPNumber,
+            //  (
+            //    SELECT
+            //      SUM(ffr.ItemSumPrice * ffr.Rate)
+            //    FROM
+            //      OA2023DB.dbo.Fin_ForeignReceivables ffr
+            //    WHERE
+            //      ffr.IsDel = 0
+            //      AND ffr.Diid = di.Id
+            //  ) 'ReceivableAmount',
+            //  (
+            //    SELECT
+            //      SUM(fpr.Price)
+            //    FROM
+            //      OA2023DB.dbo.Fin_ProceedsReceived fpr
+            //    WHERE
+            //      fpr.IsDel = 0
+            //      AND fpr.DIId = di.Id
+            //  ) 'ReceivedAmount',
+            //  (
+            //    SELECT
+            //      SUM(ccp.PayMoney * ccp.DayRate)
+            //    FROM
+            //      Fin_PaymentRefundAndOtherMoney prom
+            //      INNER JOIN Grp_CreditCardPayment ccp ON prom.Id = ccp.CId
+            //      AND prom.DiId = ccp.DIId
+            //    WHERE
+            //      prom.IsDel = 0
+            //      AND prom.PayType = 1
+            //      AND ccp.CTable = 285
+            //      AND ccp.IsAuditGM = 1
+            //      AND prom.DiId = di.Id
+            //  ) AS 'RefundedAmount',
+            //  (
+            //    SELECT
+            //      SUM(ccp.PayMoney * ccp.DayRate)
+            //    FROM
+            //      Grp_HotelReservations hr
+            //      INNER JOIN Grp_CreditCardPayment ccp ON hr.Id = ccp.CId
+            //    WHERE
+            //      hr.IsDel = 0
+            //      AND ccp.IsDel = 0
+            //      AND ccp.CTable = 76
+            //      AND (
+            //        ccp.IsAuditGM = 1
+            //        OR ccp.IsAuditGM = 3
+            //      )
+            //      AND hr.DiId = di.Id
+            //  ) AS 'HotelAmount',
+            //  (
+            //    SELECT
+            //      SUM(
+            //        (ccp.PayMoney * (ccp.PayPercentage / 100) * ccp.DayRate)
+            //      )
+            //    FROM
+            //      Grp_CarTouristGuideGroundReservations ctggr
+            //      INNER JOIN Grp_CreditCardPayment ccp ON ccp.IsDel = 0
+            //      AND ccp.CTable = 79
+            //      AND ctggr.Id = ccp.CId
+            //    WHERE
+            //      ctggr.IsDel = 0
+            //      AND (
+            //        ccp.IsAuditGM = 1
+            //        OR ccp.IsAuditGM = 3
+            //      )
+            //      AND ctggr.DiId = di.Id
+            //  ) AS 'LocalGuideAmount',
+            //  (
+            //    SELECT
+            //      SUM(ccp.PayMoney * ccp.DayRate)
+            //    FROM
+            //      Grp_AirTicketReservations atr
+            //      INNER JOIN Grp_CreditCardPayment ccp ON ccp.isdel = 0
+            //      AND ccp.CTable = 85
+            //      AND atr.Id = ccp.CId
+            //    WHERE
+            //      atr.IsDel = 0
+            //      AND ccp.IsAuditGM = 1
+            //      AND atr.DIId = di.Id
+            //  ) AS 'AirTicketAmount',
+            //  (
+            //    SELECT
+            //      SUM(ccp.PayMoney * ccp.DayRate)
+            //    FROM
+            //      Grp_VisaInfo vi
+            //      INNER JOIN Grp_CreditCardPayment ccp ON ccp.isdel = 0
+            //      AND ccp.CTable = 80
+            //      AND vi.Id = ccp.CId
+            //    WHERE
+            //      vi.IsDel = 0
+            //      AND ccp.IsAuditGM = 1
+            //      AND vi.DIId = di.Id
+            //  ) AS 'VisaAmount',
+            //  (
+            //    SELECT
+            //      SUM(ccp.PayMoney * ccp.DayRate)
+            //    FROM
+            //      Grp_InvitationOfficialActivities ioa
+            //      INNER JOIN Grp_CreditCardPayment ccp ON ccp.isdel = 0
+            //      AND ccp.CTable = 81
+            //      AND ioa.Id = ccp.CId
+            //    WHERE
+            //      ioa.IsDel = 0
+            //      AND ccp.IsAuditGM = 1
+            //      AND ioa.DiId = di.Id
+            //  ) AS 'OAAmount',
+            //  (
+            //    SELECT
+            //      SUM(ccp.PayMoney * ccp.DayRate)
+            //    FROM
+            //      Grp_Customers ic
+            //      INNER JOIN Grp_CreditCardPayment ccp ON ccp.isdel = 0
+            //      AND ccp.CTable = 82
+            //      AND ic.Id = ccp.CId
+            //    WHERE
+            //      ic.IsDel = 0
+            //      AND ccp.IsAuditGM = 1
+            //      AND ic.DiId = di.Id
+            //  ) AS 'InsureAmount',
+            //  (
+            //    SELECT
+            //      SUM(ccp.PayMoney * ccp.DayRate)
+            //    FROM
+            //      Grp_DecreasePayments dp
+            //      INNER JOIN Grp_CreditCardPayment ccp ON ccp.isdel = 0
+            //      AND ccp.CTable = 98
+            //      AND dp.Id = ccp.CId
+            //    WHERE
+            //      dp.IsDel = 0
+            //      AND ccp.IsAuditGM = 1
+            //      AND dp.Diid = di.Id
+            //  ) AS 'OtherAmount'
+            //FROM
+            //  OA2023DB.dbo.Grp_DelegationInfo di
+            //  LEFT JOIN Sys_SetData ss ON di.TeamDid = ss.Id
+            //WHERE
+            //  di.IsDel = 0
+            //  AND di.IsBid = 0
+            //  AND di.VisitDate BETWEEN '{0}' AND '{1}'", beginDt, endDt);
+
+            //含未审核SQL
+            string sql = string.Format(@"SELECT
+  ROW_NUMBER() OVER(
+    ORDER BY
+      di.VisitDate Asc
+  ) AS 'RowIndex',
   di.Id,
   di.ClientName,
   di.TeamName,
@@ -7805,8 +7958,8 @@ WHERE
     WHERE
       prom.IsDel = 0
       AND prom.PayType = 1
-      AND ccp.CTable = 285
-      AND ccp.IsAuditGM = 1
+      AND ccp.CTable = 285 --AND ccp.IsAuditGM = 1
+      AND ccp.IsAuditGM != 2
       AND prom.DiId = di.Id
   ) AS 'RefundedAmount',
   (
@@ -7818,11 +7971,11 @@ WHERE
     WHERE
       hr.IsDel = 0
       AND ccp.IsDel = 0
-      AND ccp.CTable = 76
-      AND (
-        ccp.IsAuditGM = 1
-        OR ccp.IsAuditGM = 3
-      )
+      AND ccp.CTable = 76 -- AND (
+      --   ccp.IsAuditGM = 1
+      --   OR ccp.IsAuditGM = 3
+      -- )
+      AND ccp.IsAuditGM != 2
       AND hr.DiId = di.Id
   ) AS 'HotelAmount',
   (
@@ -7836,11 +7989,11 @@ WHERE
       AND ccp.CTable = 79
       AND ctggr.Id = ccp.CId
     WHERE
-      ctggr.IsDel = 0
-      AND (
-        ccp.IsAuditGM = 1
-        OR ccp.IsAuditGM = 3
-      )
+      ctggr.IsDel = 0 -- AND (
+      --   ccp.IsAuditGM = 1
+      --   OR ccp.IsAuditGM = 3
+      -- )
+      AND ccp.IsAuditGM != 2
       AND ctggr.DiId = di.Id
   ) AS 'LocalGuideAmount',
   (
@@ -7852,8 +8005,8 @@ WHERE
       AND ccp.CTable = 85
       AND atr.Id = ccp.CId
     WHERE
-      atr.IsDel = 0
-      AND ccp.IsAuditGM = 1
+      atr.IsDel = 0 -- AND ccp.IsAuditGM = 1
+      AND ccp.IsAuditGM != 2
       AND atr.DIId = di.Id
   ) AS 'AirTicketAmount',
   (
@@ -7865,8 +8018,8 @@ WHERE
       AND ccp.CTable = 80
       AND vi.Id = ccp.CId
     WHERE
-      vi.IsDel = 0
-      AND ccp.IsAuditGM = 1
+      vi.IsDel = 0 -- AND ccp.IsAuditGM = 1
+      AND ccp.IsAuditGM != 2
       AND vi.DIId = di.Id
   ) AS 'VisaAmount',
   (
@@ -7878,8 +8031,8 @@ WHERE
       AND ccp.CTable = 81
       AND ioa.Id = ccp.CId
     WHERE
-      ioa.IsDel = 0
-      AND ccp.IsAuditGM = 1
+      ioa.IsDel = 0 -- AND ccp.IsAuditGM = 1
+      AND ccp.IsAuditGM != 2
       AND ioa.DiId = di.Id
   ) AS 'OAAmount',
   (
@@ -7891,8 +8044,8 @@ WHERE
       AND ccp.CTable = 82
       AND ic.Id = ccp.CId
     WHERE
-      ic.IsDel = 0
-      AND ccp.IsAuditGM = 1
+      ic.IsDel = 0 -- AND ccp.IsAuditGM = 1
+      AND ccp.IsAuditGM != 2
       AND ic.DiId = di.Id
   ) AS 'InsureAmount',
   (
@@ -7904,8 +8057,8 @@ WHERE
       AND ccp.CTable = 98
       AND dp.Id = ccp.CId
     WHERE
-      dp.IsDel = 0
-      AND ccp.IsAuditGM = 1
+      dp.IsDel = 0 -- AND ccp.IsAuditGM = 1
+      AND ccp.IsAuditGM != 2
       AND dp.Diid = di.Id
   ) AS 'OtherAmount'
 FROM
@@ -8026,11 +8179,13 @@ ORDER BY
             decimal totalProfit = groupProfitTotal + notGroupProfitTotal;
 
             var dailyLabel = $"*不含日付费用类型(信用卡还款、张总私人费用、代报销社保生育补贴、人事行政费用 - 张总家用类、会展部备用金、团组签证保险)\r\n";
+            var dailyExcelLabel = dailyLabel;
             if (companyDailyItems.Any())
             {
                 foreach (var dailyFee in companyDailyItems)
                 {
                     dailyLabel += $"<p>[{dailyFee.CompanyName}]日常产生费用:{dailyFee.CNYTotal.ToString("#0.00")} CNY </p>";
+                    dailyExcelLabel += $"[{dailyFee.CompanyName}]日常产生费用:{dailyFee.CNYTotal.ToString("#0.00")} CNY \r\n";
                 }
             }
 
@@ -8050,7 +8205,7 @@ ORDER BY
                 designer.SetDataSource("notSumAccounts", notGroupCollectionTotal.ToString("#0.00"));
                 designer.SetDataSource("notSumReceived", notGroupCostTotal.ToString("#0.00"));
                 designer.SetDataSource("SumOfNotTeamBalance", notGroupProfitTotal.ToString("#0.00"));
-                designer.SetDataSource("DailyLabel", dailyLabel);
+                designer.SetDataSource("DailyLabel", dailyExcelLabel);
                 designer.SetDataSource("MeetingNumber", inforCount + "个");
                 designer.SetDataSource("ServiceNumber", serviceCount + "人");
                 designer.SetDataSource("SumAllBalance", totalProfit.ToString("#0.00"));