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

计算工资
审批数据 No 开始时间 向前增加 30天

leiy пре 1 година
родитељ
комит
2f9051e475

+ 69 - 57
OASystem/OASystem.Api/OAMethodLib/QiYeWeChatAPI/QiYeWeChatApiService.cs

@@ -1009,9 +1009,8 @@ namespace OASystem.API.OAMethodLib.QiYeWeChatAPI
 
             ApprovalInfoView approvalInfoView = new ApprovalInfoView();
 
-            //获取所有打卡补卡,审批 数据 后范围增加15天
-            DateTime sp_startDt = startDt;
-            DateTime sp_centerDt = endDt;
+            //获取所有打卡补卡,审批 数据 向前增加30天 向后范围增加15天
+            DateTime sp_startDt = startDt.AddDays(-30);
             DateTime sp_endDt = endDt.AddDays(15);
             
             //获取审批数据 token
@@ -1035,75 +1034,88 @@ namespace OASystem.API.OAMethodLib.QiYeWeChatAPI
                 filters.Add(new Dic() { key = "record_type", value = record_type.ToString() });  //筛选条件 审批单类型 请假 1
             }
 
-            ApprovalInfo_Request approvalInfoReq = new ApprovalInfo_Request()
-            {
-                access_token = access_Token.access_token,
-                starttime = (uint)ConvertToTimeSpan(sp_startDt),
-                endtime = (uint)ConvertToTimeSpan(sp_centerDt),
-                filters = filters.ToList(),
-            };
-            var json = System.Text.Json.JsonSerializer.Serialize(approvalInfoReq);
-            var content = new StringContent(json, Encoding.UTF8, "application/json");
-            var create_Req = await _httpClient.PostAsync(url, content);
-            var stringResponse = await create_Req.Content.ReadAsStringAsync();
+            int days = (sp_endDt - sp_startDt).Days;
+            decimal runCount = days % 30;
+            int runCount1 = 0;
+            if (runCount == 0) runCount1 =(int)(days % 30.00M);
+            else runCount1 = (int)Math.Ceiling(days / 30.00M);
 
-            ApprovalInfoView approvalInfoView1 = System.Text.Json.JsonSerializer.Deserialize<ApprovalInfoView>(stringResponse,
-                new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
 
-            if (approvalInfoView1.errcode != 0)
+            List<string> sp_no_lists = new List<string>();
+            for (int i = 0; i < runCount1; i++)
             {
-                return approvalInfoView1;
-            }
+                DateTime for_sp_startDt = sp_startDt;
+                DateTime for_sp_endDt = sp_startDt.AddDays(30);
+                sp_startDt = sp_startDt.AddDays(30);
+                if (for_sp_endDt >= sp_endDt)
+                {
+                    for_sp_endDt = sp_endDt;
+                }
 
-            ApprovalInfo_Request approvalInfoReq1 = new ApprovalInfo_Request()
-            {
-                access_token = access_Token.access_token,
-                starttime = (uint)ConvertToTimeSpan(sp_centerDt),
-                endtime = (uint)ConvertToTimeSpan(sp_endDt),
-                filters = filters.ToList(),
-            };
-            var json1 = System.Text.Json.JsonSerializer.Serialize(approvalInfoReq1);
-            var content1 = new StringContent(json1, Encoding.UTF8, "application/json");
-            var create_Req1 = await _httpClient.PostAsync(url, content1);
-            var stringResponse1 = await create_Req1.Content.ReadAsStringAsync();
+                ApprovalInfo_Request approvalInfoReq = new ApprovalInfo_Request()
+                {
+                    access_token = access_Token.access_token,
+                    starttime = (uint)ConvertToTimeSpan(for_sp_startDt),
+                    endtime = (uint)ConvertToTimeSpan(for_sp_endDt),
+                    filters = filters.ToList(),
+                };
+                var json = System.Text.Json.JsonSerializer.Serialize(approvalInfoReq);
+                var content = new StringContent(json, Encoding.UTF8, "application/json");
+                var create_Req = await _httpClient.PostAsync(url, content);
+                var stringResponse = await create_Req.Content.ReadAsStringAsync();
 
-            ApprovalInfoView approvalInfoView2 = System.Text.Json.JsonSerializer.Deserialize<ApprovalInfoView>(stringResponse1,
-                new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
-            if (approvalInfoView2.errcode != 0)
-            {
-                return approvalInfoView1;
-            }
+                ApprovalInfoView approvalInfoView1 = System.Text.Json.JsonSerializer.Deserialize<ApprovalInfoView>(stringResponse,
+                    new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
+
+                #region 分页调用  new_next_cursor != null 
+                string new_cursor = approvalInfoView1.new_next_cursor;
+
+                while (!string.IsNullOrEmpty(new_cursor))
+                {
+                    approvalInfoReq.new_cursor = new_cursor;
 
-            approvalInfoView1.sp_no_list.AddRange(approvalInfoView2.sp_no_list);
+                    var json1 = System.Text.Json.JsonSerializer.Serialize(approvalInfoReq);
+                    var content1 = new StringContent(json, Encoding.UTF8, "application/json");
+                    var create_Req1 = await _httpClient.PostAsync(url, content1);
+                    var stringResponse1 = await create_Req1.Content.ReadAsStringAsync();
 
-            //List<string> sp_datas = new List<string>();
-            //sp_datas.AddRange(approvalInfoView1.sp_no_list);
-            //sp_datas.AddRange(approvalInfoView2.sp_no_list);
+                    ApprovalInfoView approvalInfoView11 = System.Text.Json.JsonSerializer.Deserialize<ApprovalInfoView>(stringResponse1,
+                        new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
 
+                    if (approvalInfoView11.errcode != 0)
+                    {
+                        return approvalInfoView1;
+                    }
+                    new_cursor = approvalInfoView11.new_next_cursor;
+                    if (approvalInfoView11.sp_no_list.Count > 0 || approvalInfoView11.sp_no_list != null)
+                    {
+                        sp_no_lists.AddRange(approvalInfoView1.sp_no_list);
+                    }
+                }
+                #endregion
 
-            //int index = 0;
-            //while (true)
-            //{
-            //    if (string.IsNullOrEmpty(approvalInfoView.new_next_cursor)) break;
-            //    string new_cursor = approvalInfoView.new_next_cursor;
-            //    approvalInfoReq.new_cursor = new_cursor;
-            //    var while_json = System.Text.Json.JsonSerializer.Serialize(approvalInfoReq);
-            //    var while_content = new StringContent(while_json, Encoding.UTF8, "application/json");
-            //    var while_create_Req = await _httpClient.PostAsync(url, while_content);
-            //    var while_stringResponse = await while_create_Req.Content.ReadAsStringAsync();
+                if (approvalInfoView1.errcode != 0)
+                {
+                    return approvalInfoView1;
+                }
 
-            //    approvalInfoView = System.Text.Json.JsonSerializer.Deserialize<ApprovalInfoView>(while_stringResponse,
-            //        new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
+                if (approvalInfoView1.sp_no_list.Count > 0 || approvalInfoView1.sp_no_list != null)
+                {
+                    sp_no_lists.AddRange(approvalInfoView1.sp_no_list);
+                }
 
-            //    sp_datas.AddRange(approvalInfoView.sp_no_list); //追加数据
-            //    index++;
-            //}
+            }
+            approvalInfoView.errcode = 0;
 
-            //approvalInfoView.sp_no_list = sp_datas;
+            if (sp_no_lists.Count > 0)
+            {
+                sp_no_lists = sp_no_lists.Distinct().ToList();
+            }
 
+            approvalInfoView.sp_no_list = sp_no_lists;
             sw.Stop();
             approvalInfoView.errmsg = approvalInfoView.errmsg + " 耗时:" + sw.Elapsed.TotalMilliseconds + "ms";
-            return approvalInfoView1;
+            return approvalInfoView;
         }
 
         /// <summary>

+ 3 - 2
OASystem/OASystem.Domain/Dtos/Groups/HotelReservationsDto.cs

@@ -59,7 +59,7 @@ namespace OASystem.Domain.Dtos.Groups
         /// <summary>
         /// 信用卡类型 (设置数据外键编号)
         /// </summary>
-        public int CardPriceCurrency { get; set; }
+        public int CTDId { get; set; }
 
         /// <summary>
         /// 入住卷号
@@ -273,8 +273,9 @@ namespace OASystem.Domain.Dtos.Groups
 
         /// <summary>
         /// 费用标识 (设置数据外键编号)
+        /// 可不选
         /// </summary>
-        public int OrbitalPrivateTransfer { get; set; }
+        public int OrbitalPrivateTransfer { get; set; } = -1;
 
         /// <summary>
         /// C表付款信息 备注

+ 15 - 7
OASystem/OASystem.Infrastructure/Repositories/Groups/HotelPriceRepository.cs

@@ -785,6 +785,14 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 {
                     TeamCurrencyRate = teamRateDescAddCurrencyIdViews.Data;
                 }
+
+                string _CheckVolumeNo = string.Empty;
+                var checkVoumeNoData = _CreateCheckVolumeNo(diId);
+                if (checkVoumeNoData.Result.Code == 0)
+                {
+                    _CheckVolumeNo = checkVoumeNoData.Result.Data;
+                }
+
                 var data = new
                 {
                     GuestType = _GuestType, //客人分类
@@ -793,7 +801,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     BankCard = _BankCard,
                     BookingWebsite = _BookingWebsite,
                     CheckPerson = _CheckPerson,
-                    CheckVolumeNo = _CreateCheckVolumeNo(diId)
+                    CheckVolumeNo = _CheckVolumeNo
                 };
 
                 _result.Code = 0;
@@ -911,7 +919,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 _HotelReservations.CreateUserId = _dto.UserId;
                 _HotelReservations.Remark = _dto.HotelRemark;
 
-                #region CCP 表参数
+                #region CCP 表参数 
                 _CreditCardPayment.CreateUserId = _dto.UserId;
                 _CreditCardPayment.DIId = _dto.DiId;
                 _CreditCardPayment.CTable = 76;
@@ -962,11 +970,11 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 _CreditCardPayment.DayRate = teamRateDescView.Rate;
                 _CreditCardPayment.RMBPrice = (_CreditCardPayment.DayRate * _CreditCardPayment.PayMoney).DecimalsKeepTwo();
 
-                if (_CreditCardPayment.PayDId == 72) //刷卡
-                {
-                    _CreditCardPayment.BankNo = "6222 **** **** 7990";
-                    _CreditCardPayment.CardholderName = "Zhang Hailin";
-                }
+                //if (_CreditCardPayment.PayDId == 72) //刷卡
+                //{
+                //    _CreditCardPayment.BankNo = "6222 **** **** 7990";
+                //    _CreditCardPayment.CardholderName = "Zhang Hailin";
+                //}
 
 
                 _CreditCardPayment.Remark = _dto.CcpRemark;