|
|
@@ -3103,6 +3103,27 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
5、行程结束后整理酒店发票与结算(团组结束后5天内)",
|
|
|
TaskAssignmentCTId: null // 酒店不需要筛选任务分配
|
|
|
)
|
|
|
+ },
|
|
|
+ {
|
|
|
+ GroupProcessType.Invitation,
|
|
|
+ (
|
|
|
+ TemplateId: 1487,
|
|
|
+ ProcessName: "商邀",
|
|
|
+ Rules: @"1、报批基础资料准备(建团后确认出团的时候开始) 4个工作日
|
|
|
+2、报批邀请函资料准备(建团后确认出团的时候开始) 2个工作日
|
|
|
+3、获得批件
|
|
|
+4、对接公务(团组出发前5日)",
|
|
|
+ TaskAssignmentCTId: 81
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
+ GroupProcessType.FeeSettle,
|
|
|
+ (
|
|
|
+ TemplateId: 1474,
|
|
|
+ ProcessName: "财务",
|
|
|
+ Rules: @"",
|
|
|
+ TaskAssignmentCTId: null
|
|
|
+ )
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -3143,6 +3164,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
x.Id,
|
|
|
CreateTime = x.CreateTime,
|
|
|
x.StepOperationTime,
|
|
|
+ x.VisitDays,
|
|
|
})
|
|
|
.ToListAsync();
|
|
|
|
|
|
@@ -3159,6 +3181,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
// 查询每个团的团组进程
|
|
|
string group_process_question = string.Empty;
|
|
|
string group_process_data = string.Empty;
|
|
|
+
|
|
|
foreach (var item in group_data)
|
|
|
{
|
|
|
var group_process = await _sqlSugar.Queryable<Grp_ProcessOverview>()
|
|
|
@@ -3168,22 +3191,25 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
if (group_process != null)
|
|
|
{
|
|
|
var detailList = await _sqlSugar.Queryable<Grp_ProcessNode>()
|
|
|
- .Where(x => x.IsDel == 0 && x.ProcessId == group_process.ProcessOrder)
|
|
|
+ .Where(x => x.IsDel == 0 && x.ProcessId == group_process.Id)
|
|
|
.Select(x => new
|
|
|
{
|
|
|
x.NodeName,
|
|
|
x.OverallStatus,
|
|
|
x.NodeDescTips,
|
|
|
x.ActualDone,
|
|
|
+ x.IsFileUp,
|
|
|
+ x.IsAssist,
|
|
|
+ x.IsPart
|
|
|
})
|
|
|
.ToListAsync();
|
|
|
|
|
|
- var startTime = item.VisitDate.ToString("yyyy - MM - dd");
|
|
|
+ var confirmStartTime = item.CreateTime.ToString("yyyy - MM - dd");
|
|
|
if (item.StepOperationTime.HasValue && item.StepOperationTime != DateTime.MinValue)
|
|
|
- startTime = item.StepOperationTime.Value.ToString("yyyy - MM - dd");
|
|
|
+ confirmStartTime = item.StepOperationTime.Value.ToString("yyyy - MM - dd");
|
|
|
|
|
|
- group_process_data += $"团组名称:{item.TeamName}," +
|
|
|
- $"出访日期:{startTime},团组创建时间:{item.CreateTime.ToString("yyyy - MM - dd HH:mm:ss")},团组{config.ProcessName}进程信息如下:{JsonConvert.SerializeObject(detailList)}\r\n\r\n";
|
|
|
+ group_process_data += $"团组名称:{item.TeamName},确认出团时间:{confirmStartTime}," +
|
|
|
+ $"出访日期:{item.VisitDate.ToString("yyyy - MM - dd")} - {item.VisitDate.AddDays(item.VisitDays).ToString("yyyy - MM - dd")},团组创建时间:{item.CreateTime.ToString("yyyy - MM - dd HH:mm:ss")},团组{config.ProcessName}进程信息如下:{JsonConvert.SerializeObject(detailList)}\r\n\r\n";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -3201,7 +3227,6 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
|
|
|
根据我提供的团组数据以及规则(ActualDone字段为实际完成时间,OverallStatus字段为节点状态 1=未开始,2=进行中,3=已完成),判断是否按时完成每个环节(没有指定时间则只要在团组出发前完成即可),并且分析该员工{user_entity.CnName}的工作情况。";
|
|
|
|
|
|
- // 使用模板格式化问题(如果存在)
|
|
|
try
|
|
|
{
|
|
|
var str = await _sqlSugar.Queryable<Sys_SetData>().FirstAsync(x => x.Id == config.TemplateId && x.IsDel == 0);
|
|
|
@@ -3393,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))
|
|
|
@@ -3405,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)
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -3473,6 +3548,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
x.Id,
|
|
|
CreateTime = x.CreateTime,
|
|
|
x.StepOperationTime,
|
|
|
+ x.VisitDays,
|
|
|
})
|
|
|
.ToListAsync();
|
|
|
|
|
|
@@ -3484,35 +3560,54 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
.Where(x => x.IsDel == 0 && x.GroupId == item.Id && x.ProcessType == GroupProcessType.Visa)
|
|
|
.FirstAsync();
|
|
|
|
|
|
- //获取团组倒推表数据
|
|
|
- var back_data = await _sqlSugar.Queryable<Grp_InvertedList>()
|
|
|
- .Where(x => x.IsDel == 0 && x.DiId == item.Id)
|
|
|
- .ToListAsync();
|
|
|
+ if (group_process != null)
|
|
|
+ {
|
|
|
+ var detailList = await _sqlSugar.Queryable<Grp_ProcessNode>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.ProcessId == group_process.Id)
|
|
|
+ .Select(x => new
|
|
|
+ {
|
|
|
+ x.NodeName,
|
|
|
+ x.OverallStatus,
|
|
|
+ x.NodeDescTips,
|
|
|
+ x.ActualDone,
|
|
|
+ x.IsFileUp,
|
|
|
+ x.IsAssist,
|
|
|
+ x.IsPart,
|
|
|
+ x.Remark,
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
|
|
|
- var startTime = item.VisitDate.ToString("yyyy - MM - dd");
|
|
|
- if (item.StepOperationTime.HasValue && item.StepOperationTime != DateTime.MinValue)
|
|
|
- startTime = item.StepOperationTime.Value.ToString("yyyy - MM - dd");
|
|
|
+ //获取团组倒推表数据
|
|
|
+ var back_data = await _sqlSugar.Queryable<Grp_InvertedList>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.DiId == item.Id)
|
|
|
+ .ToListAsync();
|
|
|
|
|
|
- group_process_data += $"团组名称:{item.TeamName}," +
|
|
|
- $"出访日期:{startTime},团组创建时间:{item.CreateTime.ToString("yyyy - MM - dd HH:mm:ss")},团组签证进程信息如下:{JsonConvert.SerializeObject(group_process)}\r\n\r\n";
|
|
|
+ var confirmStartTime = item.CreateTime.ToString("yyyy - MM - dd");
|
|
|
+ if (item.StepOperationTime.HasValue && item.StepOperationTime != DateTime.MinValue)
|
|
|
+ confirmStartTime = item.StepOperationTime.Value.ToString("yyyy - MM - dd");
|
|
|
|
|
|
- if (back_data.Count > 0)
|
|
|
- {
|
|
|
- group_process_data += $"该团组倒退表信息如下:{JsonConvert.SerializeObject(back_data)}\r\n\r\n";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- group_process_data += $"该团组倒退表信息为空!\r\n\r\n";
|
|
|
- }
|
|
|
+ group_process_data += $"团组名称:{item.TeamName},确认出团时间:{confirmStartTime}," +
|
|
|
+ $"出访日期:{item.VisitDate.ToString("yyyy - MM - dd")} - {item.VisitDate.AddDays(item.VisitDays).ToString("yyyy - MM - dd")},团组创建时间:{item.CreateTime.ToString("yyyy - MM - dd HH:mm:ss")},团组签证进程信息如下:{JsonConvert.SerializeObject(group_process)}\r\n\r\n";
|
|
|
|
|
|
- if (group_process != null)
|
|
|
- {
|
|
|
- group_process_data += $"团组签证进程时间如下:{JsonConvert.SerializeObject(group_process)}\r\n\r\n";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- group_process_data += $"团组签证进程时间为空!\r\n\r\n";
|
|
|
+ if (back_data.Count > 0)
|
|
|
+ {
|
|
|
+ group_process_data += $"该团组倒退表信息如下:{JsonConvert.SerializeObject(back_data)}\r\n\r\n";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ group_process_data += $"该团组倒退表信息为空!\r\n\r\n";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (detailList.Any())
|
|
|
+ {
|
|
|
+ group_process_data += $"团组签证进程时间如下:{JsonConvert.SerializeObject(detailList)}\r\n\r\n";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ group_process_data += $"团组签证进程时间为空!\r\n\r\n";
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
group_process_question += @$"团组数据:
|
|
|
@@ -3636,7 +3731,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
var process_group_list = await _sqlSugar.Queryable<Grp_ProcessOverview>()
|
|
|
.Where(x => x.IsDel == 0)
|
|
|
.Where(x => group_data.Select(y => y.Id).ToList().Contains(x.GroupId))
|
|
|
- .Where(x => x.ProcessType == GroupProcessType.AirTicket)
|
|
|
+ .Where(x => x.ProcessType == GroupProcessType.LocalGuide)
|
|
|
.ToListAsync();
|
|
|
|
|
|
var blackCode_group_list = await _sqlSugar.Queryable<Air_TicketBlackCode>()
|
|
|
@@ -3662,30 +3757,48 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
//获取团组进程
|
|
|
var group_process = process_group_list
|
|
|
.Where(x => x.GroupId == item.Id)
|
|
|
- .ToList();
|
|
|
-
|
|
|
- var startTime = item.VisitDate.ToString("yyyy - MM - dd");
|
|
|
- if (item.StepOperationTime.HasValue && item.StepOperationTime != DateTime.MinValue)
|
|
|
- startTime = item.StepOperationTime.Value.ToString("yyyy - MM - dd");
|
|
|
- group_process_data += $"团组名称:{item.TeamName}," +
|
|
|
- $"出访日期:{startTime},团组创建时间:{item.CreateTime.ToString("yyyy - MM - dd HH:mm:ss")},团组机票进程信息如下:{JsonConvert.SerializeObject(group_process)}\r\n\r\n";
|
|
|
+ .FirstOrDefault();
|
|
|
|
|
|
- if (blackCode_data is null)
|
|
|
- {
|
|
|
- group_process_data += "该团组无机票行程代码信息\r\n\r\n";
|
|
|
- }
|
|
|
- else
|
|
|
+ if (group_process != null)
|
|
|
{
|
|
|
- group_process_data += $"该团组机票行程代码最后一个时间为:{blackCode_data.CreateTime.ToString("yyyy - MM - dd HH:mm:ss")}\r\n\r\n";
|
|
|
- }
|
|
|
+ var detailList = await _sqlSugar.Queryable<Grp_ProcessNode>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.ProcessId == group_process.Id)
|
|
|
+ .Select(x => new
|
|
|
+ {
|
|
|
+ x.NodeName,
|
|
|
+ x.OverallStatus,
|
|
|
+ x.NodeDescTips,
|
|
|
+ x.ActualDone,
|
|
|
+ x.IsFileUp,
|
|
|
+ x.IsAssist,
|
|
|
+ x.IsPart
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
|
|
|
- if (back_data.Count > 0)
|
|
|
- {
|
|
|
- group_process_data += $"该团组倒推表开行前会时间为:{back_data.FirstOrDefault()?.PreTripMeetingDt}\r\n\r\n";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- group_process_data += "该团组无倒推表开行前会信息\r\n\r\n";
|
|
|
+ var confirmStartTime = item.CreateTime.ToString("yyyy - MM - dd");
|
|
|
+ if (item.StepOperationTime.HasValue && item.StepOperationTime != DateTime.MinValue)
|
|
|
+ confirmStartTime = item.StepOperationTime.Value.ToString("yyyy - MM - dd");
|
|
|
+
|
|
|
+ group_process_data += $"团组名称:{item.TeamName},确认出团时间:{confirmStartTime}," +
|
|
|
+ $"出访日期:{item.VisitDate.ToString("yyyy - MM - dd")} - {item.VisitDate.AddDays(item.VisitDays).ToString("yyyy - MM - dd")},团组创建时间:{item.CreateTime.ToString("yyyy - MM - dd HH:mm:ss")},团组机票进程信息如下:{JsonConvert.SerializeObject(detailList)}\r\n\r\n";
|
|
|
+
|
|
|
+ if (blackCode_data is null)
|
|
|
+ {
|
|
|
+ group_process_data += "该团组无机票行程代码信息\r\n\r\n";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ group_process_data += $"该团组机票行程代码最后一个时间为:{blackCode_data.CreateTime.ToString("yyyy - MM - dd HH:mm:ss")}\r\n\r\n";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (back_data.Count > 0)
|
|
|
+ {
|
|
|
+ group_process_data += $"该团组倒推表开行前会时间为:{back_data.FirstOrDefault()?.PreTripMeetingDt}\r\n\r\n";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ group_process_data += "该团组无倒推表开行前会信息\r\n\r\n";
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -3776,9 +3889,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
[HttpGet]
|
|
|
public async Task<IActionResult> AiPerformanceAnalysis_BusinessInvitationAsync(int userId, DateTime start, DateTime end, int createUserId)
|
|
|
{
|
|
|
- var jw = JsonView(false);
|
|
|
-
|
|
|
- return Ok(jw);
|
|
|
+ return await AiPerformanceAnalysisAsync(userId, start, end, createUserId, GroupProcessType.Invitation);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -3796,7 +3907,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 财务部员工分析
|
|
|
+ /// 财务部员工分析(曾)
|
|
|
/// </summary>
|
|
|
/// <param name="userId"></param>
|
|
|
/// <param name="start"></param>
|
|
|
@@ -3806,7 +3917,114 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
[HttpGet]
|
|
|
public async Task<IActionResult> AiPerformanceAnalysis_FinancialDepartmentAsync(int userId, DateTime start, DateTime end, int createUserId)
|
|
|
{
|
|
|
- return Ok(await AiPerformanceAnalysis_TaskAllocationAsync(userId, start, end, createUserId, 1474));
|
|
|
+ return await AiPerformanceAnalysisAsync(userId, start, end, createUserId, GroupProcessType.FeeSettle);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 财务部员工分析(伏)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="userId"></param>
|
|
|
+ /// <param name="start"></param>
|
|
|
+ /// <param name="end"></param>
|
|
|
+ /// <param name="createUserId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet]
|
|
|
+ public async Task<IActionResult> AiPerformanceAnalysis_Financial_Fu_DepartmentAsync(int userId, DateTime start, DateTime end, int createUserId)
|
|
|
+ {
|
|
|
+ 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>
|
|
|
@@ -5102,7 +5320,7 @@ ORDER BY MonthNumber, CollectionDays";
|
|
|
/// </param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet]
|
|
|
- public async Task<IActionResult> KpiInfo(string depName,string jobName)
|
|
|
+ public async Task<IActionResult> KpiInfo(string depName, string jobName)
|
|
|
{
|
|
|
var info = await _companyDailyKyiRep.KpiTemplateDataAsync(depName, jobName);
|
|
|
return Ok(JsonView(info.Item3));
|