Quellcode durchsuchen

优化财务控制器并新增变色逻辑支持

- 在 `FinancialController.cs` 中新增命名空间引用:
  添加 `System.Text.RegularExpressions` 和 `JWTHelper`。
- 修改 `PostSyntheticalReceivableByDateRange` 方法:
  - 移除旧版查询代码,新增团组费用动态查询逻辑。
  - 使用 SQL 查询动态获取费用名称并计算总费用。
  - 根据费用状态设置 `item_rst.isChangeColor` 属性。
- 在 `Fin_ForeignReceivablesView.cs` 中新增 `isChangeColor` 属性:
  - 标识应收、已收、退还、余款均为零且团组费用有值时的变色状态。
  - 添加注释说明属性用途。
- 提升代码可读性和可维护性,扩展费用处理功能。
Lyyyi vor 1 Tag
Ursprung
Commit
a30a602148

+ 40 - 1
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -27,6 +27,7 @@ using System.Data.OleDb;
 using System.Diagnostics;
 using System.Globalization;
 using System.IO.Compression;
+using System.Text.RegularExpressions;
 using static OASystem.API.OAMethodLib.JWTHelper;
 
 namespace OASystem.API.Controllers
@@ -2099,7 +2100,6 @@ namespace OASystem.API.Controllers
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> PostSyntheticalReceivableByDateRange(PostSyntheticalReceivableByDateRangeDto dto)
         {
-
             #region 老版查询
             //string sqlWhere = " Where di.IsDel=0 ";
 
@@ -2262,6 +2262,45 @@ namespace OASystem.API.Controllers
                     sumAll_pr += (sum_pr - sum_refund);
                     sumAll_balance += ((sum_fr + sum_extra) - (sum_pr - sum_refund));
 
+                    //应收、已收、收款退还、余款 都为零 且 团组费用有值时 变色
+                    if (sum_fr <= 0m && (sum_fr + sum_extra) <= 0m && sum_refund <= 0m && ((sum_fr + sum_extra) - (sum_pr - sum_refund)) <= 0m)
+                    {
+                        string sql = @"
+                                        SELECT 
+                                            di.id,
+                                            di.TeamName,
+                                            sd.Name AS ModouleName,
+                                            ccp.CTable,
+                                            CASE 
+                                                WHEN ccp.CTable = 76 THEN (SELECT hotelname FROM Grp_HotelReservations hr WHERE hr.Id = ccp.CId)
+                                                WHEN ccp.CTable = 79 THEN (SELECT PriceName FROM Grp_CarTouristGuideGroundReservations ctgr WHERE ctgr.Id = ccp.CId)
+                                                WHEN ccp.CTable = 80 THEN (SELECT Area FROM Grp_VisaInfo vi WHERE vi.Id = ccp.CId)
+                                                WHEN ccp.CTable = 81 THEN (SELECT InviterArea FROM Grp_InvitationOfficialActivities ioa WHERE ioa.Id = ccp.CId)
+                                                WHEN ccp.CTable = 82 THEN (SELECT (SELECT GName FROM Grp_InsuranceCost ic WHERE ic.Id = c.Iid) FROM Grp_Customers c WHERE c.Id = ccp.CId)
+                                                WHEN ccp.CTable = 85 THEN (SELECT FlightsCode FROM Grp_AirTicketReservations atr WHERE atr.Id = ccp.CId)
+                                                WHEN ccp.CTable = 98 THEN (SELECT PriceName FROM Grp_DecreasePayments dp WHERE dp.Id = ccp.CId)
+                                                WHEN ccp.CTable = 1015 THEN (SELECT PriceName FROM Fin_GroupExtraCost gec WHERE gec.Id = ccp.CId)
+                                                ELSE '-'
+                                            END AS PriceName,
+                                            (ccp.PayMoney * ccp.DayRate) AS CNYMoeny
+                                        FROM Grp_CreditCardPayment ccp
+                                        INNER JOIN Grp_DelegationInfo di ON ccp.DIId = di.Id
+                                        LEFT JOIN sys_setdata sd ON ccp.CTable = sd.Id
+                                        WHERE ccp.IsDel = 0 
+                                          AND di.IsDel = 0 
+                                          AND di.id = @GroupId";
+
+                       
+                            var datas = await _sqlSugar.SqlQueryable<SyntheticalReceivableFeeDetailsView>(sql)
+                                .AddParameters(new { GroupId = diId })
+                                .ToListAsync();
+                            decimal totalCost = datas.Sum(s => s.CNYMoeny);
+                        if (totalCost > 0m)
+                        {
+                            item_rst.isChangeColor = true;
+                        }
+                    }
+
                     #region 单位应收已收细项(以应收费用名称为主去(已收费用)匹配) 新增 雷怡 2024-5-08 16:35:28
 
                     var feeDatas = new List<ClientFeeInfoView>();

+ 7 - 0
OASystem/OASystem.Domain/ViewModels/Financial/Fin_ForeignReceivablesView.cs

@@ -356,6 +356,13 @@ namespace OASystem.Domain.ViewModels.Financial
         ///// </summary>
         //public bool isShowRed { get; set; } = false;
 
+        /// <summary>
+        /// 是否改色
+        /// 应收、已收、收款退还、余款 都为零 且 团组费用有值时 变色
+        /// </summary>
+        public bool isChangeColor { get; set; }
+
+
         /// <summary>
         /// 应收
         /// </summary>