Преглед изворни кода

保险费用录入自动审核

LEIYI пре 3 месеци
родитељ
комит
ddd64ac0b7

+ 5 - 0
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -14235,11 +14235,16 @@ ORDER by  gctggrc.id DESC
             #region 应用推送
             try
             {
+
                 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);
 
                 await AppNoticeLibrary.SendChatMsg_GroupStatus_ApplyFee(ccpId, sign, QiyeWeChatEnum.GuoJiaoLeaderChat);
 
+                //自动审核
+                await _feeAuditRep.FeeAutomaticAudit(4, dto.DiId, dataId);
+
                 //2024-10-21 新增LZ UID
                 var userIds = new List<int>() { 21 };
                 string title = $"系统通知";

+ 9 - 9
OASystem/OASystem.Infrastructure/Repositories/Groups/CustomersRepository.cs

@@ -397,13 +397,13 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
             if (dto.Status == 1)//添加
             {
-                Grp_Customers customers = _sqlSugar.Queryable<Grp_Customers>()
-                                                   .First(a => a.DiId == dto.DiId &&
-                                                               a.IsDel == 0 &&
-                                                               a.ClientName == dto.ClientName &&
-                                                               a.InsuranceCosts == dto.InsuranceCosts &&
-                                                               a.Currency == dto.Currency
-                                                    );
+                var customers = _sqlSugar.Queryable<Grp_Customers>()
+                                         .First(a => a.DiId == dto.DiId &&
+                                                     a.IsDel == 0 &&
+                                                     a.ClientName == dto.ClientName &&
+                                                     a.InsuranceCosts == dto.InsuranceCosts &&
+                                                     a.Currency == dto.Currency
+                                         );
                 if (customers != null)
                 {
                     return result = new Result() { Code = -1, Msg = "该笔费用已存在,请勿重复添加!" };
@@ -417,7 +417,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         int cId = await _sqlSugar.Insertable(c).ExecuteReturnIdentityAsync();
                         if (cId != 0)
                         {
-                            var data = new { ccpId = cId, sign = 1 };
+                            var data = new { ccpId = cId, sign = 1, dataId = id };
                             result = new Result() { Code = 0, Msg = "添加成功!", Data = data };
                         }
                         else
@@ -479,7 +479,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     else
                     {
                         Grp_CreditCardPayment ccp = Query<Grp_CreditCardPayment>(a => a.CId == cus.Id && a.CTable == 82).First();
-                        var data = new { ccpId = ccp.Id, sign = 2 };
+                        var data = new { ccpId = ccp.Id, sign = 2, dataId = dto.Id };
                         result = new Result() { Code = 0, Msg = "修改成功!", Data = data };
                     }
                 }

+ 57 - 2
OASystem/OASystem.Infrastructure/Repositories/Groups/FeeAuditRepository.cs

@@ -28,6 +28,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// 1.酒店 76 
         /// 2.op 79
         /// 3.其他费用-出行物资 98
+        /// 4.保险 82
         /// </param>
         /// <param name="diId">团组Id</param>
         /// <param name="dataId">数据Id(模块类型主表Id)</param>
@@ -384,7 +385,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
                 var teNames = setData.Where(x => x.STid == 91).Select(x => x.Name).ToList();
                 var otherFeeDatas = _sqlSugar.Queryable<Grp_DecreasePayments>()
-                    .InnerJoin<Grp_CreditCardPayment>((dp,ccp) => dp.Id == ccp.CId && ccp.CTable == 98 && ccp.IsDel == 0)
+                    .InnerJoin<Grp_CreditCardPayment>((dp, ccp) => dp.Id == ccp.CId && ccp.CTable == 98 && ccp.IsDel == 0)
                     .Where((dp, ccp) => dp.IsDel == 0 && dp.DiId == diId)
                     .ToList();
 
@@ -403,7 +404,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                             }
                         }
                     }
-                    else if(teNames.Contains(item.PriceName))
+                    else if (teNames.Contains(item.PriceName))
                     {
                         ids.Add(item.Id);
                     }
@@ -455,6 +456,60 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
                 #endregion
             }
+            else if (feeType == 4)
+            {
+                #region 保险费用录入自动审核
+                var currModule = 82;
+                var insuranceType = _sqlSugar.Queryable<Grp_InsuranceCost>().Where(x => x.IsDel == 0 && x.Id != 2).Select(x => x.Id).ToList();
+                var insuranceCostData = _sqlSugar.Queryable<Grp_Customers>()
+                    .LeftJoin<Grp_CreditCardPayment>((c, ccp) => c.Id == ccp.CId && ccp.CTable == 82)
+                    .Where((c, ccp) => c.IsDel == 0 && c.DiId == diId && insuranceType.Contains(c.Iid))
+                    .Select((c, ccp) => new
+                    {
+                        c.Id,
+                        CNYPrice = ccp.PayMoney * ccp.DayRate
+                    })
+                    .ToList();
+                var currInsuranceInfo = insuranceCostData.Where(x => x.Id == dataId).FirstOrDefault();
+                if (!insuranceCostData.Any() && currInsuranceInfo == null)
+                {
+                    _view.Msg = $"暂无保险数据,不可自动审核!";
+                    return _view;
+                }
+
+                if (currInsuranceInfo.CNYPrice == 0.00M)
+                {
+                    _view.Msg = $"保险数据未录入费用信息,不可自动审核!";
+                    QuashAudit(currModule, diId, dataId);
+                    return _view;
+                }
+
+                var groupBudgetCost = groupInfo.BXCB * groupInfo.BXRS;
+                var groupActialCost = insuranceCostData.Sum(x => x.CNYPrice);
+
+                if (groupActialCost > groupBudgetCost)
+                {
+                    _view.Msg = $"保险费用超出团组成本费用";
+                    QuashAudit(currModule, diId, dataId);
+                    return _view;
+                }
+
+                //自动审核
+                var ccpUpdate = _sqlSugar.Updateable<Grp_CreditCardPayment>()
+                                      .SetColumns(it => it.IsAuditGM == 3)
+                                      .SetColumns(it => it.AuditGMOperate == 4)
+                                      .SetColumns(it => it.AuditGMDate == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
+                                      .Where(s => s.DIId == diId && s.CTable == currModule && s.CId == dataId)
+                                      .ExecuteCommand();
+                if (ccpUpdate > 0)
+                {
+                    _view.Code = 200;
+                    _view.Msg = "自动审核执行成功";
+                }
+                else _view.Msg = "自动审核执行失败";
+                return _view;
+                #endregion
+            }
             else _view.Msg = $"请传入有效的feeType参数";
 
             return _view;