Commit d565826e by 钟博

新增载入工作量

parent 109b4ff9
......@@ -108,9 +108,9 @@ public SecondDetailDto Load(int secondId, ComputeMode computeMode, EmployeeSourc
item.TitleCoefficient = item.TitleCoefficient ?? 1; // 职称系数
}
}
//if (overrideMode == EmployeeSource.Workload) isSave = false;
// 加载已保存工作量数据
handson.Data = LoadWorkload(allot, second, loadEmployees, isSave);
handson.Data = LoadWorkload(allot, second, loadEmployees, isSave, overrideMode);
// 设置工作量考核等分默认值
foreach (var item in handson.Data)
......@@ -248,7 +248,7 @@ public List<SecondColumnDictionary> GetTableHeaderDictionary(ComputeMode compute
/// <param name="loadEmployees"></param>
/// <param name="isSave">True 加载已保存数据 False 加载工作量自动带出</param>
/// <returns></returns>
private List<Dictionary<string, object>> LoadWorkload(per_allot allot, ag_secondallot second, List<ag_bodysource> loadEmployees, bool isSave = true)
private List<Dictionary<string, object>> LoadWorkload(per_allot allot, ag_secondallot second, List<ag_bodysource> loadEmployees, bool isSave = true, EmployeeSource overrideMode = 0)
{
List<Dictionary<string, object>> result = new List<Dictionary<string, object>>();
var status = (new int[] { (int)SecondAllotStatus.WaitReview, (int)SecondAllotStatus.PassAudit });
......@@ -279,7 +279,7 @@ public List<SecondColumnDictionary> GetTableHeaderDictionary(ComputeMode compute
if (workloads != null && workloads.Any())
{
/* isSave 为True时,没必要查询数据 */
var secondWorkload = isSave
var secondWorkload = isSave && overrideMode != EmployeeSource.Workload
? new List<view_second_workload_result>()
: GetSecondWorkloadByValue(second.AllotId.Value, second.UnitType, second.Department);
......@@ -288,11 +288,21 @@ public List<SecondColumnDictionary> GetTableHeaderDictionary(ComputeMode compute
var dict = JsonHelper.Deserialize<Dictionary<string, object>>(JsonHelper.Serialize(employee));
foreach (var workitem in workloads)
{
/* 如果是已保存数据,则加载原始数据,否则加载工作量自动带出 */
var value = isSave
? bodyDynamic?.FirstOrDefault(w => w.BodyId == employee.Id && w.WorkloadId == workitem.Id)?.Value
: secondWorkload.FirstOrDefault(w => w.PersonnelNumber == employee.WorkNumber && w.DoctorName == employee.Name && workitem.ItemId.EqualsIgnoreCase(w.ItemId))?.Value;
decimal? value;
if (workitem.ItemId.StartsWith($"SingleAwards_"))
{
/* 如果是已保存数据,则加载原始数据,否则加载工作量自动带出 */
value = isSave
? bodyDynamic?.FirstOrDefault(w => w.BodyId == employee.Id && w.WorkloadId == workitem.Id)?.Value
: secondWorkload.FirstOrDefault(w => w.PersonnelNumber == employee.WorkNumber && w.DoctorName == employee.Name && workitem.ItemId.EqualsIgnoreCase(w.ItemId))?.Value;
}
else
{
/* 如果是已保存数据,则加载原始数据,否则加载工作量自动带出 */
value = isSave && overrideMode != EmployeeSource.Workload
? bodyDynamic?.FirstOrDefault(w => w.BodyId == employee.Id && w.WorkloadId == workitem.Id)?.Value
: secondWorkload.FirstOrDefault(w => w.PersonnelNumber == employee.WorkNumber && w.DoctorName == employee.Name && workitem.ItemId.EqualsIgnoreCase(w.ItemId))?.Value;
}
dict.AddOrUpdate(workitem.ItemId, value);
}
result.Add(dict);
......@@ -383,7 +393,7 @@ private List<ag_bodysource> LoadEmployees(per_allot allot, ag_secondallot second
var employees = _peremployeeRepository.GetEntities(w => w.AllotId == second.AllotId);
isSave = false;
// 默认流程
if (mode == EmployeeSource.Initial)
if (new[] { EmployeeSource.Initial, EmployeeSource.Workload }.Contains(mode))
{
var saveDatas = _agbodysourceRepository.GetEntities(w => w.SecondId == second.Id);
isSave = (saveDatas != null && saveDatas.Count > 0);
......
......@@ -1011,7 +1011,12 @@ public enum EmployeeSource
/// <summary>
/// 人员字典
/// </summary>
EmployeeDict = 2
EmployeeDict = 2,
/// <summary>
/// 工作量
/// </summary>
Workload = 3
}
/// <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