Selaa lähdekoodia

添加机票费用自动审核测试方法

在 `GroupsController.cs` 中新增 `AirTicketResAutoAuditTest` 方法,支持机票费用的自动审核,并返回审核结果的 JSON 视图。同时,增强了自动审核逻辑。

在 `FeeAuditRepository.cs` 中,更新了错误消息内容,确保更准确地反映审核条件。调整了费用类型验证逻辑,使用正确的 `Id` 属性,并修改了舱位费用计算方式,确保只根据舱位价格进行计算。
LEIYI 2 viikkoa sitten
vanhempi
commit
9a3864dc91

+ 23 - 1
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -4247,8 +4247,15 @@ FROM
             #region 应用推送
             try
             {
+                var diId = dto.AirTicketResOpData.DiId;
+
                 int ccpId = groupData.Data.GetType().GetProperty("ccpId").GetValue(groupData.Data, null);
                 int sign = groupData.Data.GetType().GetProperty("sign").GetValue(groupData.Data, null);
+                int dataId = groupData.Data.GetType().GetProperty("dataId").GetValue(groupData.Data, null);
+
+                //自动审核
+                var autoAdit = await _feeAuditRep.FeeAutomaticAudit(5, diId, dataId);
+
 
                 await AppNoticeLibrary.SendChatMsg_GroupStatus_ApplyFee(ccpId, sign, QiyeWeChatEnum.GuoJiaoLeaderChat);
 
@@ -4256,7 +4263,6 @@ FROM
                 var userIds = new List<int>() { 21 };
                 string title = $"系统通知";
                 string content = "";
-                var diId = dto.AirTicketResOpData.DiId;
                 var groupInfo = await _groupRepository.Query(x => x.Id == diId).FirstAsync();
                 var ccpInfo = await _sqlSugar.Queryable<Grp_CreditCardPayment>().Where(x => x.Id == ccpId).FirstAsync();
                 if (dto.Status == 1) content = $"[新增-机票费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate).ToString("#0.00")} CNY;";
@@ -4276,6 +4282,22 @@ FROM
             return Ok(JsonView(true, groupData.Msg, groupData.Data));
         }
 
+        /// <summary>
+        /// 机票费用录入
+        /// 自动审核测试
+        /// </summary>
+        /// <param name="groupId"></param>
+        /// <param name="Id"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> AirTicketResAutoAuditTest(int groupId, int Id)
+        {
+            var autoAdit = await _feeAuditRep.FeeAutomaticAudit(5, groupId, Id);
+
+            return Ok(JsonView(true, autoAdit.Msg, autoAdit.Data));
+        }
+
         /// <summary>
         /// 根据舱位类型查询接团客户名单信息
         /// </summary>

+ 2 - 2
OASystem/OASystem.Infrastructure/Repositories/Groups/AirTicketResRepository.cs

@@ -618,7 +618,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         });
                         CommitTran();
 
-                        var data = new { ccpId = id, sign = 1 };
+                        var data = new { ccpId = id, sign = 1, dataId = grp_CreditCard.CId };
                         return result = new Result() { Code = 0, Msg = "添加成功!", Data = data };
                     }
                     else
@@ -844,7 +844,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         {
                             Grp_CreditCardPayment ccp = Query<Grp_CreditCardPayment>(a => a.Id == dto.CardPaymentOpData.Id).First();
 
-                            var data = new { ccpId = ccp.Id, sign = 2 };
+                            var data = new { ccpId = ccp.Id, sign = 2, dataId = grp_CreditCard.CId };
                             result = new Result() { Code = 0, Msg = "修改成功!", Data = data };
                         }
                     }

+ 4 - 4
OASystem/OASystem.Infrastructure/Repositories/Groups/FeeAuditRepository.cs

@@ -721,19 +721,19 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
                 if (!currAirTypeDatas.Any())
                 {
-                    _view.Msg = $"{airTypeText}机票费用数据未填写,不可自动审核!";
+                    _view.Msg = $"{airTypeText}机票费用数据未填写或者舱位人数不匹配,不可自动审核!";
                     return _view;
                 }
 
                 //验证费用类型
-                if (!currAirTypeDatas.Any(x => x.Id == airInfo.CcpId))
+                if (!currAirTypeDatas.Any(x => x.Id == airInfo.Id))
                 {
                     _view.Msg = $"机票费用({airTypeText})超出团组成本费用";
                     return _view;
                 }
 
-                //验证是否超出头等舱成本费用
-                decimal currAirTypeFee = currAirTypeDatas.Sum(x => x.Price * x.ClientNum);
+                //验证是否超出舱成本费用
+                decimal currAirTypeFee = currAirTypeDatas.Sum(x => x.Price);
                 if (currAirTypeFee > currAirCost)
                 {
                     _view.Msg = $"机票费用({airTypeText})超出团组成本费用";