yuanrf 5 天之前
父节点
当前提交
50598aab8c
共有 1 个文件被更改,包括 67 次插入39 次删除
  1. 67 39
      OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

+ 67 - 39
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -2900,8 +2900,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
                 return Ok(jw);
             }
 
-            //获取企微外出申请信息
-            var approval_data = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: new List<IQiYeWeChatApiService.FilterCondition>(){
+            var filters = new List<IQiYeWeChatApiService.FilterCondition>(){
                  new
                   IQiYeWeChatApiService.FilterCondition{
                      key = "creator",
@@ -2915,15 +2914,17 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
                     key="sp_status",
                     value="2"
                   }
-            });
+            };
+
+            //获取企微外出申请信息
+            var approval_data = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: filters);
             if (approval_data.errcode != 0)
             {
                 jw.Msg = "获取企微外出申请信息失败!" + approval_data.errmsg;
                 return Ok(jw);
             }
 
-            //获取企微出差申请信息
-            var approval_data_waichu = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: new List<IQiYeWeChatApiService.FilterCondition>(){
+            var chucai_filters = new List<IQiYeWeChatApiService.FilterCondition>(){
                  new
                   IQiYeWeChatApiService.FilterCondition{
                      key = "creator",
@@ -2937,7 +2938,10 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
                     key="sp_status",
                     value="2"
                   }
-            });
+            };
+
+            //获取企微出差申请信息
+            var approval_data_waichu = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: chucai_filters);
             if (approval_data_waichu.errcode != 0)
             {
                 jw.Msg = "获取企微出差申请信息失败!" + approval_data_waichu.errmsg;
@@ -3004,7 +3008,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
                     return Ok(jw);
                 }
 
-                var kaoqinResp = await GetKaoqinAnalysisAsync(user_entity, start, end, jw, "Ai分析用户考勤", detailViews);
+                var kaoqinResp = await GetKaoqinAnalysisAsync(user_entity, start, end, jw, "Ai分析用户考勤");
                 if (string.IsNullOrEmpty(kaoqinResp))
                 {
                     return Ok(jw);
@@ -3281,7 +3285,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
         /// <param name="errorMessagePrefix">错误消息前缀(用于区分不同的分析类型)</param>
         /// <param name="ApprovalDetailList">审批详情列表</param>
         /// <returns>考勤分析结果,失败时返回null</returns>
-        private async Task<string> GetKaoqinAnalysisAsync(Sys_Users user_entity, DateTime start, DateTime end, JsonView jw, string errorMessagePrefix = "Ai分析用户绩效", List<ApprovalDetailView> ApprovalDetailList = null)
+        private async Task<string> GetKaoqinAnalysisAsync(Sys_Users user_entity, DateTime start, DateTime end, JsonView jw, string errorMessagePrefix = "Ai分析用户绩效")
         {
             List<string> useridlist = new List<string> { user_entity.QiyeChatUserId };
             var checkin_data = await _qiYeWeChatApiService.GetCheckinDataAsync(useridlist, 1, start, end);
@@ -3291,56 +3295,80 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
                 return null;
             }
 
+            List<ApprovalDetailView> ApprovalDetailList = new List<ApprovalDetailView>();
+
             //添加外出申请信息
-            if (ApprovalDetailList == null || ApprovalDetailList.Count == 0)
+            if (true)
             {
-                ApprovalDetailList = new List<ApprovalDetailView>();
+                var filters = new List<IQiYeWeChatApiService.FilterCondition>(){
+                 new
+                  IQiYeWeChatApiService.FilterCondition{
+                     key = "creator",
+                     value = user_entity.QiyeChatUserId
+                  },
+                  new IQiYeWeChatApiService.FilterCondition{
+                    key="record_type",
+                    value="4"
+                  },
+                  new IQiYeWeChatApiService.FilterCondition{
+                    key="sp_status",
+                    value="2"
+                  }
+            };
 
                 //获取企微外出申请信息
-                var approval_data = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: new List<IQiYeWeChatApiService.FilterCondition>(){
-                    new IQiYeWeChatApiService.FilterCondition{
-                        key = "creator",
-                        value = user_entity.QiyeChatUserId
-                    },
-                    new IQiYeWeChatApiService.FilterCondition{
-                        key="record_type",
-                        value="4"
-                    },
-                    new IQiYeWeChatApiService.FilterCondition{
-                        key="sp_status",
-                        value="2"
-                    }
-                });
+                var approval_data = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: filters);
                 if (approval_data.errcode != 0)
                 {
                     jw.Msg = "获取企微外出申请信息失败!" + approval_data.errmsg;
                     return null;
                 }
 
+                //获取上月企微外出申请信息
+                var approval_data_upMonth = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start.AddMonths(-1), start, newCursor: "", size: 100, filters: filters);
+                if (approval_data_upMonth.errcode != 0)
+                {
+                    jw.Msg = "获取企微上月外出申请信息失败!" + approval_data_upMonth.errmsg;
+                    return null;
+                }
+
+                var chucai_filters = new List<IQiYeWeChatApiService.FilterCondition>(){
+                 new
+                  IQiYeWeChatApiService.FilterCondition{
+                     key = "creator",
+                     value = user_entity.QiyeChatUserId
+                  },
+                  new IQiYeWeChatApiService.FilterCondition{
+                    key="record_type",
+                    value="3"
+                  },
+                  new IQiYeWeChatApiService.FilterCondition{
+                    key="sp_status",
+                    value="2"
+                  }
+            };
+
                 //获取企微出差申请信息
-                var approval_data_waichu = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: new List<IQiYeWeChatApiService.FilterCondition>(){
-                    new
-                    IQiYeWeChatApiService.FilterCondition{
-                        key = "creator",
-                        value = user_entity.QiyeChatUserId
-                    },
-                    new IQiYeWeChatApiService.FilterCondition{
-                        key="record_type",
-                        value="3"
-                    },
-                    new IQiYeWeChatApiService.FilterCondition{
-                        key="sp_status",
-                        value="2"
-                    }
-                });
+                var approval_data_waichu = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: chucai_filters);
                 if (approval_data_waichu.errcode != 0)
                 {
                     jw.Msg = "获取企微出差申请信息失败!" + approval_data_waichu.errmsg;
                     return null;
                 }
 
+                //获取上月企微出差申请信息
+                var approval_data_waichu_upMonth = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start.AddMonths(-1), start, newCursor: "", size: 100, filters: chucai_filters);
+                if (approval_data_waichu_upMonth.errcode != 0)
+                {
+                    jw.Msg = "获取企微出差申请信息失败!" + approval_data_waichu_upMonth.errmsg;
+                    return null;
+                }
+
                 //合并外出出差
                 approval_data.sp_no_list.AddRange(approval_data_waichu.sp_no_list);
+                approval_data_upMonth.sp_no_list.AddRange(approval_data_waichu_upMonth.sp_no_list);
+                approval_data.sp_no_list.AddRange(approval_data_upMonth.sp_no_list);
+                approval_data.sp_no_list = approval_data.sp_no_list.Distinct().ToList();
 
                 foreach (var item in approval_data.sp_no_list)
                 {