Browse Source

付款申请
根据前台逻辑代码调整

leiy 11 months ago
parent
commit
36f67b9f23

+ 210 - 20
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -1739,6 +1739,37 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
 
         /// <summary>
         /// 付款申请
+        /// 基础数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostPayRequestInit()
+        {
+            try
+            {
+                var conpanyDatas = _sqlSugar.Queryable<Sys_Company>()
+                                            .Where(it => it.IsDel == 0)
+                                            .Select(it => new
+                                            {
+                                                Id = it.Id,
+                                                ConpamyName = it.CompanyName
+
+                                            }).ToList();
+
+
+                return Ok(JsonView(true, "操作成功!",new { ConpanyData = conpanyDatas }));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, ex.Message));
+            }
+        }
+
+
+        /// <summary>
+        /// 付款申请 (PageId=51)
         /// 查询 根据日期范围
         /// </summary>
         /// <param name="dto"></param>
@@ -1759,6 +1790,14 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                 return Ok(JsonView(false, "结束日期格式不正确!正确格式:yyyy-MM-dd"));
             }
 
+            #region 页面操作权限验证
+
+            PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
+            pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, dto.PageId);
+
+            if (pageFunAuthView.CheckAuth == 0) return Ok(JsonView(false, "您没有查看权限!"));
+            #endregion
+
             #endregion
             try
             {
@@ -1782,7 +1821,45 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
         }
 
         /// <summary>
-        /// 付款申请(团组费用申请相关)
+        /// 根据团组类型类型处理团组费用所属公司
+        /// </summary>
+        /// <param name="teamId"></param>
+        /// <returns></returns>
+        private CompanyInfo ExpenseCompanyByTeamId(int teamId)
+        {
+            CompanyInfo _companyInfo = new CompanyInfo();
+
+            List<int> _SiChuan = new List<int>() {
+                38 , // 政府团
+                39 , // 企业团
+                40 , // 散客团
+                102, // 未知
+                248, // 非团组
+                691, // 四川-会务活动
+                762, // 四川-赛事项目收入
+            };
+            List<int> _ChengDu = new List<int>() {
+                302,  // 成都-会务活动
+                1047, // 成都-赛事项目收入
+            };
+
+            if (_SiChuan.Contains(teamId))
+            {
+                _companyInfo.Id = 2;
+                _companyInfo.ConpanyName = "四川泛美交流有限公司";
+            }
+
+            if (_ChengDu.Contains(teamId))
+            {
+                _companyInfo.Id = 1;
+                _companyInfo.ConpanyName = "成都泛美商务有限公司";
+            }
+
+            return _companyInfo;
+        }
+
+        /// <summary>
+        /// 付款申请(团组费用申请相关) 
         /// 查询 根据日期范围
         /// </summary>
         /// <param name="_groupIds"></param>
@@ -1813,8 +1890,9 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
             _DailyFeePaymentResult.gz = _paymentDatas.Where(it => it.OrbitalPrivateTransfer == 0).Sum(it => ((it.PayMoney * it.DayRate) / 100) * it.PayPercentage); //公转
             _DailyFeePaymentResult.sz = _paymentDatas.Where(it => it.OrbitalPrivateTransfer == 1).Sum(it => ((it.PayMoney * it.DayRate) / 100) * it.PayPercentage); ; //私转
             List<int> groupIds = _paymentDatas.Select(it => it.DIId).Distinct().ToList();
-            List<int> teamDids = new List<int> { 300, 302, 248 }; //团组类型 不含
-            var _groupDatas = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && groupIds.Contains(it.Id) && !teamDids.Contains(it.TeamDid)).ToList();
+
+            var _groupDatas = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && groupIds.Contains(it.Id)).ToList();
+            //_groupDatas = (List<Grp_DelegationInfo>)_groupDatas.GroupBy(it => it.TeamDid);
 
             #region 相关基础数据源
             var userDatas = _sqlSugar.Queryable<Sys_Users>().ToList();
@@ -1830,7 +1908,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
             var refundPaymentDatas = _sqlSugar.Queryable<Fin_PaymentRefundAndOtherMoney>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             var ExtraCostDatas = _sqlSugar.Queryable<Fin_GroupExtraCost>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             #endregion
-
+            //Expense company
             foreach ( var groupInfo in _groupDatas) 
             {
                 List<Group_DailyFeePaymentContentInfolView> childList = new List<Group_DailyFeePaymentContentInfolView>();
@@ -1852,11 +1930,11 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                             {
                                 if (payInfo.OrbitalPrivateTransfer == 0) //公转
                                 {
-                                    priName = "【四川泛美交流有限公司】" + "【公转】" + "【导游:" + opData.ServiceGuide + "】" + opData.Area;
+                                    priName = $"【公转】【导游: {opData.ServiceGuide} 】{opData.Area}" ;
                                 }
                                 else if (payInfo.OrbitalPrivateTransfer == 1) //私转
                                 {
-                                    priName = "【四川泛美交流有限公司】" + "【私转】" + "【导游:" + opData.ServiceGuide + "】" + opData.Area;
+                                    priName = $"【私转】【导游:{opData.ServiceGuide}】{opData.Area}";
                                 }
                             }
                             break;
@@ -1888,9 +1966,15 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                             break;
                     }
 
+                    bool status1 = false;
+                    if (_groupIds != null)
+                    {
+                        status1 = _groupIds.Contains(payInfo.Id);
+                    }
+
                     childList.Add(new Group_DailyFeePaymentContentInfolView()
                     {
-                        IsChecked = _groupIds.Contains(payInfo.Id),
+                        IsChecked = status1,
                         Id = payInfo.Id,
                         Payee = payInfo.Payee,
                         RowNumber = rouNumber,
@@ -1902,15 +1986,20 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                         PayCurrCode = setDatas.Find(it => it.Id == payInfo.PaymentCurrency)?.Name ?? "",
                         PaymentAmount = payInfo.PayMoney,
                         PayRate = payInfo.DayRate,
-                        CNYSubTotalAmount = ((payInfo.DayRate * payInfo.PayMoney) / 100) * payInfo.PayPercentage //此次付款金额
+                        CNYTotalAmount = ((payInfo.DayRate * payInfo.PayMoney) / 100) * payInfo.PayPercentage //此次付款金额
                     }); 
                     rouNumber++;
                 }
 
+                CompanyInfo companyInfo = new CompanyInfo();
+                companyInfo = ExpenseCompanyByTeamId(groupInfo.TeamDid);
                 dataList.Add(new tree_Group_DailyFeePaymentPageListView()
                 {
+                    Id = Guid.NewGuid().ToString("N"),
                     GroupName = groupInfo.TeamName,
-                    CNYTotalAmount = childList.Sum(it => it.CNYSubTotalAmount),
+                    CompanyId = companyInfo.Id,
+                    ConpanyName = companyInfo.ConpanyName,
+                    CNYTotalAmount = childList.Sum(it => it.CNYTotalAmount),
                     ChildList = childList,
                 });
             }
@@ -1919,7 +2008,6 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
             return _DailyFeePaymentResult;
         }
 
-
         /// <summary>
         /// 付款申请(日付申请相关)
         /// 查询 根据日期范围
@@ -1930,6 +2018,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
         /// <returns></returns>
         private tree_Fin_DailyFeePaymentResult PayRequest_DailyByDateRange(int status, List<int> _dailyIds, string beginDt, string endDt)
         {
+
             #region sql条件处理
             string sqlWhere = string.Format(@" And dfp.CreateTime between '{0} 00:00:00' And '{1} 23:59:59' ", beginDt, endDt);
 
@@ -1961,8 +2050,11 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
 
             foreach (var item in DailyFeePaymentData)
             {
-                item.IsChecked = _dailyIds.Contains(item.Id);
-
+                if (_dailyIds != null)
+                {
+                    item.IsChecked = _dailyIds.Contains(item.Id);
+                }
+                
                 if (dic_setData.ContainsKey(item.PriceTypeId))
                 {
                     item.priceTypeStr = dic_setData[item.PriceTypeId];
@@ -2013,10 +2105,9 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
             return result;
         }
 
-
-        /// <summary>
-        /// 付款申请
-        /// 团组相关费用 选中状态变更
+        /// <summary> 
+        /// 付款申请 (PageId=51)
+        /// 团组,日付相关费用 选中状态变更
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -2068,7 +2159,8 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                 requestCheckedView.DailyPaymentIds = dailyPaymentIds;
                 if (dto.Type == 1)
                 {
-                    var status = await RedisRepository.RedisFactory.CreateRedisRepository().StringSetAsync<string>("paymentRequestCheckedData", JsonConvert.SerializeObject(requestCheckedView));
+                    TimeSpan ts = DateTime.Now.AddDays(180) - DateTime.Now; //设置redis 过期时间 半年(180)
+                    var status = await RedisRepository.RedisFactory.CreateRedisRepository().StringSetAsync<string>("paymentRequestCheckedData", JsonConvert.SerializeObject(requestCheckedView),ts);
                     if (status)
                     {
                         return Ok(JsonView(true, "操作成功!"));
@@ -2092,8 +2184,8 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
 
 
         /// <summary>
-        /// 付款申请
-        /// 团组相关费用 汇率变更
+        /// 付款申请 (PageId=51)
+        /// 团组,日付相关费用 汇率变更
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -2161,7 +2253,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
         }
 
         /// <summary>
-        /// 付款申请
+        /// 付款申请 (PageId=51)
         /// 团组,日付相关费用 付款状态变更
         /// </summary>
         /// <param name="dto"></param>
@@ -2257,6 +2349,104 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                 return Ok(JsonView(false, ex.Message));
             }
         }
+
+        /// <summary>
+        /// 付款申请 (PageId=51)
+        /// 文件下载
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostPayRequestFileDownload(PayRequestFileDownloadDto dto)
+        {
+
+            #region 参数,权限 验证
+            if (dto.PortType < 1)
+            {
+                return Ok(JsonView(false, "请传入有效的PortType参数!"));
+            }
+
+            if (dto.UserId < 1)
+            {
+                return Ok(JsonView(false, "请传入有效的UserId参数!"));
+            }
+            if (dto.PageId < 1)
+            {
+                dto.PageId = 51;
+                return Ok(JsonView(false, "请传入有效的PageId参数!"));
+            }
+            if (dto.ConpanyId < 1 || dto.ConpanyId > 4)
+            {
+                return Ok(JsonView(false, "请传入有效的ConpanyId参数!"));
+            }
+
+            PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
+
+            #region 页面操作权限验证
+            pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, dto.PageId);
+
+            if (pageFunAuthView.FilesDownloadAuth == 0) return Ok(JsonView(false, "您没有文件下载权限!"));
+            #endregion
+
+            #endregion
+
+            try
+            {
+                PaymentRequestCheckedView checkedView = new PaymentRequestCheckedView();
+                var checkedStr = await RedisRepository.RedisFactory.CreateRedisRepository().StringGetAsync<string>("paymentRequestCheckedData");
+                if (checkedStr != null)
+                {
+                    checkedView = JsonConvert.DeserializeObject<PaymentRequestCheckedView>(checkedStr.ToString());
+                }
+
+                if (checkedView == null )
+                {
+                    return Ok(JsonView(false, "没有选中的数据!"));
+                }
+
+                if (checkedView.GroupIds == null && checkedView.DailyPaymentIds == null)
+                {
+                    return Ok(JsonView(false, "没有选中的数据!"));
+                }
+
+                tree_Fin_DailyFeePaymentResult dailyResult = PayRequest_DailyByDateRange(2, checkedView.DailyPaymentIds, dto.beginDt, dto.endDt);
+                tree_Group_DailyFeePaymentResult groupResult = PayRequest_GroupPaymentByDateRange(2, checkedView.GroupIds, dto.beginDt, dto.endDt);
+
+                string _requestPayment = DateTime.Now.ToString("yyyy-MM-dd");//申请付款日期
+
+                //1	成都泛美商务有限公司
+                if (dto.ConpanyId == 1) 
+                {
+
+                }
+                //2	四川泛美交流有限公司
+                else if (dto.ConpanyId == 2)
+                {
+
+                }
+                //3 成都纽茵教育科技有限公司
+                else if (dto.ConpanyId == 3)
+                {
+
+                }
+                //4 成都鸿企中元科技有限公司
+                else if (dto.ConpanyId == 4)
+                {
+
+                }
+                else
+                {
+                    return Ok(JsonView(false, "参数ConpanyId不可使用!"));
+                }
+                return Ok(JsonView(false, "操作失败!"));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, ex.Message));
+            }
+        }
+
         #endregion
 
         #region 超支费用

+ 1 - 1
OASystem/OASystem.Api/OAMethodLib/Quartz/Business/TaskNotification.cs

@@ -20,7 +20,7 @@ namespace OASystem.API.OAMethodLib.Quartz.Business
         /// </summary>
         public static async void PostTaskMessageNotification() 
         {
-            _logger.LogInformation("调用任务消息推送 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "【在线人数】:" + JsonConvert.SerializeObject(UserStore.OnlineUser));
+            //_logger.LogInformation("调用任务消息推送 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "【在线人数】:" + JsonConvert.SerializeObject(UserStore.OnlineUser));
 
             //在此处编写任务业务代码
             #region 消息处理

+ 10 - 1
OASystem/OASystem.Domain/Dtos/Financial/PostPayRequestByDateRangeDto.cs

@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 
 namespace OASystem.Domain.Dtos.Financial
 {
-    public class PostPayRequestByDateRangeDto:PortDtoBase
+    public class PostPayRequestByDateRangeDto:UserPageFuncDtoBase
     {
         /// <summary>
         /// 数据选中状态
@@ -50,4 +50,13 @@ namespace OASystem.Domain.Dtos.Financial
         /// </summary>
         public int Type { get; set; }
     }
+
+    public class PayRequestFileDownloadDto: UserPageFuncDtoBase
+    {
+
+        public string beginDt { get; set; }
+        public string endDt { get; set; }
+
+        public int ConpanyId { get; set; }
+    }
 }

+ 19 - 1
OASystem/OASystem.Domain/ViewModels/Financial/Fin_DailyFeePaymentView.cs

@@ -374,8 +374,20 @@ namespace OASystem.Domain.ViewModels.Financial
     /// </summary>
     public class tree_Group_DailyFeePaymentPageListView
     {
+        public string Id { get; set; }
+
         public string GroupName { get; set; }
 
+        /// <summary>
+        /// 费用所属公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 费用所属公司
+        /// </summary>
+        public string ConpanyName { get; set; }
+
         /// <summary>
         /// 团组总计金额
         /// </summary>
@@ -384,6 +396,12 @@ namespace OASystem.Domain.ViewModels.Financial
         public List<Group_DailyFeePaymentContentInfolView> ChildList { get; set; }
     }
 
+    public class CompanyInfo
+    {
+        public int Id { get; set; }
+        public string   ConpanyName { get; set; }
+    }
+
     public class Group_DailyFeePaymentContentInfolView
     {
         /// <summary>
@@ -445,7 +463,7 @@ namespace OASystem.Domain.ViewModels.Financial
         /// <summary>
         /// 小计人名币金额
         /// </summary>
-        public decimal CNYSubTotalAmount { get; set; }
+        public decimal CNYTotalAmount { get; set; }
     }
 
     public class PaymentRequestCheckedView