|
@@ -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>
|