生成完,下发完,归档完统计每月汇报表数据

parent 541d4589
...@@ -385,6 +385,7 @@ public ApiResponse Pigeonhole([CustomizeValidator(RuleSet = "Delete"), FromBody] ...@@ -385,6 +385,7 @@ public ApiResponse Pigeonhole([CustomizeValidator(RuleSet = "Delete"), FromBody]
if (null == allot) if (null == allot)
throw new PerformanceException("当前绩效记录不存在或没有上传数据文件"); throw new PerformanceException("当前绩效记录不存在或没有上传数据文件");
_allotService.Pigeonhole(allot); _allotService.Pigeonhole(allot);
_taskService.Add(Background.JobType.每日汇报表汇总, allot.ID.ToString());
return new ApiResponse(ResponseType.OK); return new ApiResponse(ResponseType.OK);
} }
...@@ -458,6 +459,9 @@ public ApiResponse Issued([FromBody] AllotRequest request) ...@@ -458,6 +459,9 @@ public ApiResponse Issued([FromBody] AllotRequest request)
{ {
_allotService.UpdateAllotStates(allot.ID, (int)AllotStates.绩效下发, EnumHelper.GetDescription(AllotStates.绩效下发)); _allotService.UpdateAllotStates(allot.ID, (int)AllotStates.绩效下发, EnumHelper.GetDescription(AllotStates.绩效下发));
costTransferService.RejectedApplicat(allot.ID); costTransferService.RejectedApplicat(allot.ID);
_taskService.Add(Background.JobType.每日汇报表汇总, allot.ID.ToString());
return new ApiResponse(ResponseType.OK, "下发成功"); return new ApiResponse(ResponseType.OK, "下发成功");
} }
else else
......
...@@ -93,6 +93,9 @@ public void Execute() ...@@ -93,6 +93,9 @@ public void Execute()
case (int)Background.JobType.自定义抽取: case (int)Background.JobType.自定义抽取:
Execute_Allot_CustomExtract(service, task); Execute_Allot_CustomExtract(service, task);
break; break;
case (int)Background.JobType.每日汇报表汇总:
Execute_Allot_Statistics(service, task);
break;
default: default:
service.Update(task.ID, Background.Status.无效); service.Update(task.ID, Background.Status.无效);
break; break;
...@@ -102,6 +105,33 @@ public void Execute() ...@@ -102,6 +105,33 @@ public void Execute()
} }
/// <summary> /// <summary>
/// 每日汇报表汇总
/// </summary>
/// <param name="service"></param>
/// <param name="task"></param>
private void Execute_Allot_Statistics(TaskService service, bg_task task)
{
using (var scope = _serviceScopeFactory.CreateScope())
{
var allotService = scope.ServiceProvider.GetService<AllotService>();
try
{
if (int.TryParse(task.Argument, out int allotId))
{
service.Update(task.ID, Background.Status.执行中);
Stopwatch stopwatch = Stopwatch.StartNew();
allotService.GenerateReportStatistics(allotId);
stopwatch.Stop();
service.Update(task.ID, Background.Status.完成, seconds: stopwatch.Elapsed.TotalSeconds);
}
}
catch (Exception ex)
{
service.Update(task.ID, Background.Status.失败, ex.ToString());
}
}
}
/// <summary>
/// 生成测算表 /// 生成测算表
/// </summary> /// </summary>
/// <param name="service"></param> /// <param name="service"></param>
...@@ -134,7 +164,22 @@ private void Execute_Allot_Generate(TaskService service, bg_task task) ...@@ -134,7 +164,22 @@ private void Execute_Allot_Generate(TaskService service, bg_task task)
{ {
service.Update(task.ID, Background.Status.失败, ex.ToString()); service.Update(task.ID, Background.Status.失败, ex.ToString());
} }
allotService.GenerateReport(allot);
try
{
allotService.GenerateReport(allot);
}
catch (Exception)
{
}
try
{
allotService.GenerateReportStatistics(allotId);
}
catch (Exception)
{
}
} }
} }
......
...@@ -2353,13 +2353,13 @@ ...@@ -2353,13 +2353,13 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.StatisticsController.DeleteSelectionRecord(System.Int32)"> <member name="M:Performance.Api.Controllers.StatisticsController.DeleteSelectionRecord(System.Int32)">
<summary> <summary>
删除报表查询记录 删除报表查询记录
</summary> </summary>
<param name="id"></param> <param name="id"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.StatisticsController.Search(Performance.DtoModels.StatisticsQuery)"> <member name="M:Performance.Api.Controllers.StatisticsController.Search(Performance.DtoModels.StatisticsQuery)">
<summary> <summary>
查询报表结果 查询报表结果
...@@ -2433,6 +2433,13 @@ ...@@ -2433,6 +2433,13 @@
<param name="query"></param> <param name="query"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.BackgroundJob.Execute_Allot_Statistics(Performance.Services.TaskService,Performance.EntityModels.bg_task)">
<summary>
每日汇报表汇总
</summary>
<param name="service"></param>
<param name="task"></param>
</member>
<member name="M:Performance.Api.BackgroundJob.Execute_Allot_Generate(Performance.Services.TaskService,Performance.EntityModels.bg_task)"> <member name="M:Performance.Api.BackgroundJob.Execute_Allot_Generate(Performance.Services.TaskService,Performance.EntityModels.bg_task)">
<summary> <summary>
生成测算表 生成测算表
......
...@@ -91,6 +91,7 @@ public enum JobType ...@@ -91,6 +91,7 @@ public enum JobType
提取数据 = 2, 提取数据 = 2,
报表 = 3, 报表 = 3,
自定义抽取 = 4, 自定义抽取 = 4,
每日汇报表汇总 = 5,
} }
public enum Status public enum Status
{ {
......
...@@ -493,6 +493,21 @@ public void GenerateReport(per_allot allot) ...@@ -493,6 +493,21 @@ public void GenerateReport(per_allot allot)
} }
/// <summary> /// <summary>
/// 绩效生成报表
/// </summary>
/// <param name="allot"></param>
public void GenerateReportStatistics(int allotId)
{
try
{
reportService.ExecProc("call proc_report_statistics(@allotId);", new { allotId });
}
catch (Exception ex)
{
_logger.LogError($"每月汇报表生成失败。 allotid: {allotId}。" + ex.Message);
}
}
/// <summary>
/// 验证科室核算单元、工号 /// 验证科室核算单元、工号
/// </summary> /// </summary>
/// <param name="allot"></param> /// <param name="allot"></param>
...@@ -586,19 +601,6 @@ public void Pigeonhole(per_allot allot) ...@@ -586,19 +601,6 @@ public void Pigeonhole(per_allot allot)
allot.PigeonholeDate = DateTime.Now; allot.PigeonholeDate = DateTime.Now;
allot.Remark = "归档"; allot.Remark = "归档";
_allotRepository.Update(allot); _allotRepository.Update(allot);
//if (_allotRepository.Update(allot))
//{
// var again = _againallotRepository.GetEntities(t => t.AllotID == allot.ID);
// if (again != null && again.Count > 0)
// {
// foreach (var item in again)
// {
// item.Remark = $"原状态:{item.States},归档更改状态";
// item.States = 5;
// _againallotRepository.Update(item);
// }
// }
//}
} }
/// <summary> /// <summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment