二次分配提交数据带出

parent 9e935df2
......@@ -612,7 +612,7 @@ public ApiResponse RedistributionCheck([FromBody] SecondComputeDto request)
if (allot == null)
throw new PerformanceException("绩效记录不存在!");
// 年资职称绩效占比与工作量绩效占比 校验
var loads = _redistributionService.GetWorkLoads(allot.HospitalId, second.UnitType, second.Department);
var loads = _redistributionService.GetWorkLoads(allot, second);
var workloadGroups = _redistributionService.GetTopWorkloadBodyGroups(loads);
if ((ComputeMode)request.ComputeMode != ComputeMode.NotCalculate)
......@@ -681,7 +681,7 @@ public ApiResponse RedistributionCompute([FromBody] SecondComputeDto request)
if (allot == null)
throw new PerformanceException("绩效记录不存在!");
// 年资职称绩效占比与工作量绩效占比 校验
var loads = _redistributionService.GetWorkLoads(allot.HospitalId, second.UnitType, second.Department);
var loads = _redistributionService.GetWorkLoads(allot, second);
var workloadGroups = _redistributionService.GetTopWorkloadBodyGroups(loads);
if ((ComputeMode)request.ComputeMode != ComputeMode.NotCalculate)
......@@ -752,7 +752,7 @@ public ApiResponse RedistributionSave([FromBody] SecondComputeDto request)
if (allot == null)
throw new PerformanceException("绩效记录不存在!");
var loads = _redistributionService.GetWorkLoads(allot.HospitalId, second.UnitType, second.Department);
var loads = _redistributionService.GetWorkLoads(allot, second);
var workloadGroups = _redistributionService.GetTopWorkloadBodyGroups(loads);
// 二次分配人员信息 校验
var checkDatas = _redistributionService.CheckData(allot, second, (ComputeMode)request.ComputeMode, request.Body, loads);
......@@ -814,7 +814,7 @@ public ApiResponse RedistributionSubmit([FromBody] SecondComputeDto request)
if (!new int[] { (int)AllotStates.GenerateSucceed, (int)AllotStates.Archive }.Contains(allot.States))
throw new PerformanceException("绩效未下发,无法提交!");
var loads = _redistributionService.GetWorkLoads(allot.HospitalId, second.UnitType, second.Department);
var loads = _redistributionService.GetWorkLoads(allot, second);
var workloadGroups = _redistributionService.GetTopWorkloadBodyGroups(loads);
// 二次分配人员信息 校验
......@@ -913,7 +913,7 @@ public ApiResponse RedistributionDetail([FromBody] SecondBaseDto request)
if (allot == null)
throw new PerformanceException("绩效记录不存在!");
// 年资职称绩效占比与工作量绩效占比 校验
var loads = _redistributionService.GetWorkLoads(allot.HospitalId, second.UnitType, second.Department);
var loads = _redistributionService.GetWorkLoads(allot, second);
var workloadGroups = _redistributionService.GetTopWorkloadBodyGroups(loads);
// 返回信息
......
......@@ -103,7 +103,7 @@ public SecondDetailDto Load(int secondId, ComputeMode computeMode, EmployeeSourc
// 填报模板带出 行政工勤 绩效
var computes = _rescomputeRepository.GetEntities(w => w.AllotID == allot.ID && UnitTypeUtil.Office.Contains(w.AccountType));
var loads = GetWorkLoads(allot.HospitalId, second.UnitType, second.Department);
var loads = GetWorkLoads(allot, second);
var employees = _peremployeeRepository.GetEntities(w => w.AllotId == second.AllotId);
HandsonTableBase handson = GetHandsonTable(allot, computeMode, loads);
......@@ -259,7 +259,10 @@ public List<SecondColumnDictionary> GetTableHeaderDictionary(ComputeMode compute
if (second.Status.HasValue && status.Contains(second.Status.Value))
{
var headDynamic = _agworktypesourceRepository.GetEntities(t => t.SecondId == second.Id) ?? new List<ag_worktype_source>();
foreach (var item in headDynamic.OrderBy(t => t.Id))
var groupDatas = headDynamic
.GroupBy(w => new { w.WorkTypeId, w.SecondId, w.FieldId, w.FieldName })
.Select(w => w.OrderByDescending(w => w.Id).FirstOrDefault());
foreach (var item in groupDatas.OrderBy(t => t.Id))
{
maps.Add(new SecondColumnDictionary(item.FieldName, item.FieldId, true, 1, "Top", isNumber: true));
}
......@@ -698,19 +701,34 @@ private List<string> LoadEmployees_OfficeExcel(ag_secondallot second)
/// <summary>
/// 获取工作量及单项奖励
/// </summary>
/// <param name="hospitalId"></param>
/// <param name="unitType"></param>
/// <param name="accountingUnit"></param>
/// <param name="allot"></param>
/// <param name="second"></param>
/// <returns></returns>
public List<TitleValue<string, decimal?>> GetWorkLoads(int hospitalId, string unitType, string accountingUnit)
public List<TitleValue<string, decimal?>> GetWorkLoads(per_allot allot, ag_secondallot second)
{
var workloads = _agworkloadRepository.GetEntities(t => t.HospitalId == hospitalId && t.Department == accountingUnit && t.UnitType == unitType) ?? new List<ag_workload>();
var loads = workloads
.OrderBy(t => t.WorkTypeId).ThenBy(t => t.Sort)
.Select(t => new TitleValue<string, decimal?> { Title = t.ItemId, Value = t.ItemName, State = t.FactorValue })
.ToList();
return loads;
var status = (new int[] { (int)SecondAllotStatus.WaitReview, (int)SecondAllotStatus.PassAudit });
// 已提交
if (second.Status.HasValue && status.Contains(second.Status.Value))
{
var bodys = _agbodysourceRepository.GetEntities(w => w.SecondId == second.Id);
var ids = bodys.Select(w => w.Id).ToList();
var sources = _agworkloadsourceRepository.GetEntities(w => ids.Contains(w.BodyId)) ?? new List<ag_workload_source>();
var loads = sources
.OrderBy(t => t.WorkTypeId).ThenBy(t => t.Sort)
.GroupBy(w => new { w.ItemId, w.ItemName })
.Select(t => new TitleValue<string, decimal?> { Title = t.Key.ItemId, Value = t.Key.ItemName, State = t.FirstOrDefault()?.FactorValue ?? 0 })
.ToList();
return loads;
}
else
{
var workloads = _agworkloadRepository.GetEntities(t => t.HospitalId == allot.HospitalId && t.Department == second.Department && t.UnitType == second.UnitType) ?? new List<ag_workload>();
var loads = workloads
.OrderBy(t => t.WorkTypeId).ThenBy(t => t.Sort)
.Select(t => new TitleValue<string, decimal?> { Title = t.ItemId, Value = t.ItemName, State = t.FactorValue })
.ToList();
return loads;
}
}
#endregion
......@@ -1535,7 +1553,7 @@ public object RedistributionEmployee(SecondEmployeeDto request)
if (allot == null)
throw new PerformanceException("绩效记录不存在!");
// 当前二次分配配置工作量
var loads = GetWorkLoads(allot.HospitalId, second.UnitType, second.Department);
var loads = GetWorkLoads(allot, second);
Expression<Func<per_employee, bool>> exp = t => t.AllotId == second.AllotId;
......
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