|
|
@@ -3418,6 +3418,55 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ //获取请假数据
|
|
|
+ var filters_qj = new List<IQiYeWeChatApiService.FilterCondition>(){
|
|
|
+ new
|
|
|
+ IQiYeWeChatApiService.FilterCondition{
|
|
|
+ key = "creator",
|
|
|
+ value = user_entity.QiyeChatUserId
|
|
|
+ },
|
|
|
+ new IQiYeWeChatApiService.FilterCondition{
|
|
|
+ key="record_type",
|
|
|
+ value="1"
|
|
|
+ },
|
|
|
+ new IQiYeWeChatApiService.FilterCondition{
|
|
|
+ key="sp_status",
|
|
|
+ value="2"
|
|
|
+ }};
|
|
|
+
|
|
|
+ //获取企微请假申请信息
|
|
|
+ var approval_data_qj = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start, end, newCursor: "", size: 100, filters: filters_qj);
|
|
|
+ if (approval_data_qj.errcode != 0)
|
|
|
+ {
|
|
|
+ jw.Msg = "获取企微请假申请信息失败!" + approval_data_qj.errmsg;
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取上月企微请假申请信息
|
|
|
+ var approval_data_qj_upMonth = await _qiYeWeChatApiService.GetApprovalInfoUpdateAsync(start.AddMonths(-1), start, newCursor: "", size: 100, filters: filters_qj);
|
|
|
+ if (approval_data_qj_upMonth.errcode != 0)
|
|
|
+ {
|
|
|
+ jw.Msg = "获取企微上月请假申请信息失败!" + approval_data_qj_upMonth.errmsg;
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ var ApprovalDetailList_qj = new List<ApprovalDetailView>();
|
|
|
+ //合并请假数据
|
|
|
+ approval_data_qj.sp_no_list.AddRange(approval_data_qj_upMonth.sp_no_list);
|
|
|
+ approval_data_qj.sp_no_list = approval_data_qj.sp_no_list.Distinct().ToList();
|
|
|
+
|
|
|
+ foreach (var item in approval_data_qj.sp_no_list)
|
|
|
+ {
|
|
|
+ var approval_detail = await _qiYeWeChatApiService.GetApprovalDetailAsync(item);
|
|
|
+ if (approval_detail.errcode != 0)
|
|
|
+ {
|
|
|
+ jw.Msg = "获取企微请假申请详情失败!" + approval_detail.errmsg;
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ ApprovalDetailList_qj.Add(approval_detail);
|
|
|
+ }
|
|
|
+
|
|
|
string question = string.Empty;
|
|
|
var settingTemp = await _sqlSugar.Queryable<Sys_SetData>().FirstAsync(x => x.Id == 1462 && x.IsDel == 0);
|
|
|
if (settingTemp != null && !string.IsNullOrEmpty(settingTemp.Remark))
|
|
|
@@ -3430,7 +3479,8 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
user_entity.CnName,
|
|
|
start.ToString("yyyy-MM-dd"),
|
|
|
end.ToString("yyyy-MM-dd"),
|
|
|
- JsonConvert.SerializeObject(ApprovalDetailList)
|
|
|
+ JsonConvert.SerializeObject(ApprovalDetailList),
|
|
|
+ JsonConvert.SerializeObject(ApprovalDetailList_qj)
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -3881,7 +3931,100 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
[HttpGet]
|
|
|
public async Task<IActionResult> AiPerformanceAnalysis_Financial_Fu_DepartmentAsync(int userId, DateTime start, DateTime end, int createUserId)
|
|
|
{
|
|
|
- return await AiPerformanceAnalysisAsync(userId, start, end, createUserId, GroupProcessType.FeeSettle);
|
|
|
+ var jw = JsonView(false);
|
|
|
+ var month = start.ToString("yyyy-MM");
|
|
|
+ var user_entity = await _sqlSugar.Queryable<Sys_Users>().FirstAsync(x => x.Id == userId && x.IsDel == 0);
|
|
|
+ if (user_entity == null)
|
|
|
+ {
|
|
|
+ jw.Msg = "用户不存在!";
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+
|
|
|
+ var data = await _companyDailyKyiRep.InfoAsync(month, userId);
|
|
|
+ if (data.Code == 200)
|
|
|
+ {
|
|
|
+ var value = data.Data as List<CompanyDailyKpiView>;
|
|
|
+
|
|
|
+ if (value == null || value.Count == 0)
|
|
|
+ {
|
|
|
+ jw.Msg = "用户没有日常考情数据!";
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+
|
|
|
+ var valueFormat = value.Select(x => new
|
|
|
+ {
|
|
|
+ 年月 = x.Month,
|
|
|
+ 序号 = x.EvalContentOrder,
|
|
|
+ 内容 = x.EvalContent,
|
|
|
+ 考核人 = x.EvaluatorName,
|
|
|
+ 是否出现失误 = x.IsMistake,
|
|
|
+ 失误原因 = x.MistakeReason
|
|
|
+ }
|
|
|
+ ).ToList();
|
|
|
+
|
|
|
+ string question = string.Empty;
|
|
|
+ var settingTemp = await _sqlSugar.Queryable<Sys_SetData>().FirstAsync(x => x.Id == 1488 && x.IsDel == 0);
|
|
|
+ if (settingTemp != null && !string.IsNullOrEmpty(settingTemp.Remark))
|
|
|
+ {
|
|
|
+ var temp = await GeneralMethod.StringFormatAsync(new StringFormatDto
|
|
|
+ {
|
|
|
+ FormatTemplate = settingTemp.Remark,
|
|
|
+ Parameters = new List<string> {
|
|
|
+ JsonConvert.SerializeObject(valueFormat),
|
|
|
+ user_entity.CnName,
|
|
|
+ month
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (temp.Success)
|
|
|
+ {
|
|
|
+ question = temp.FormattedResult;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var resp = await _deepSeekService.ChatAsync(question);
|
|
|
+ if (!resp.Success)
|
|
|
+ {
|
|
|
+ jw.Msg = "Ai分析用户财务绩效失败!" + resp.Message;
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+
|
|
|
+ var kaoqinResp = await GetKaoqinAnalysisAsync(user_entity, start, end, jw, "Ai分析用户财务绩效");
|
|
|
+ if (string.IsNullOrEmpty(kaoqinResp))
|
|
|
+ {
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+
|
|
|
+ jw.Code = 200;
|
|
|
+ jw.Msg = "操作成功!";
|
|
|
+ jw.Data = new AiResponse()
|
|
|
+ {
|
|
|
+ Answer = resp.Answer,
|
|
|
+ KaoqinAnswer = kaoqinResp
|
|
|
+ };
|
|
|
+
|
|
|
+ //存入数据库
|
|
|
+ Pm_PerformanceAnalysis insertData = new Pm_PerformanceAnalysis
|
|
|
+ {
|
|
|
+ CreateTime = DateTime.Now,
|
|
|
+ CreateUserId = createUserId,
|
|
|
+ IsDel = 0,
|
|
|
+ Year = start.Year,
|
|
|
+ Month = start.Month,
|
|
|
+ JsonResult = JsonConvert.SerializeObject(jw.Data),
|
|
|
+ StartDate = start,
|
|
|
+ EndDate = end,
|
|
|
+ UserId = userId
|
|
|
+ };
|
|
|
+
|
|
|
+ await _sqlSugar.Insertable(insertData).ExecuteCommandAsync();
|
|
|
+
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ jw.Msg = "获取用户财务绩效数据失败!";
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|