Commit c94a4c73 by ruyun.zhang

科室详情

parent ae2c21eb
...@@ -188,7 +188,7 @@ public ApiResponse GetUniteDeptDetailSetting([FromQuery] int allotId) ...@@ -188,7 +188,7 @@ public ApiResponse GetUniteDeptDetailSetting([FromQuery] int allotId)
/// <returns></returns> /// <returns></returns>
[Route("unite/deptdetail/setting/save")] [Route("unite/deptdetail/setting/save")]
[HttpPost] [HttpPost]
public ApiResponse SaveUniteDeptDetailSetting([FromQuery] int allotId, [FromBody] UniteDeptSetting request) public ApiResponse SaveUniteDeptDetailSetting([FromQuery] int allotId, [FromBody] List<UniteDeptDetailItem> request)
{ {
_computeService.SaveUniteDeptDetailSetting(allotId, request); _computeService.SaveUniteDeptDetailSetting(allotId, request);
return new ApiResponse(ResponseType.OK, "保存成功"); return new ApiResponse(ResponseType.OK, "保存成功");
...@@ -203,6 +203,7 @@ public ApiResponse SaveUniteDeptDetailSetting([FromQuery] int allotId, [FromBody ...@@ -203,6 +203,7 @@ public ApiResponse SaveUniteDeptDetailSetting([FromQuery] int allotId, [FromBody
[HttpPost] [HttpPost]
public ApiResponse UniteDeptDetail([FromBody] UniteDeptDetailRequest request) public ApiResponse UniteDeptDetail([FromBody] UniteDeptDetailRequest request)
{ {
request.UnitType = request.UnitType.Replace("行政后勤", "行政工勤");
if (!Enum.TryParse(request.UnitType, ignoreCase: true, out UnitType unitType)) if (!Enum.TryParse(request.UnitType, ignoreCase: true, out UnitType unitType))
return new ApiResponse(ResponseType.ParameterError, "核算组别错误"); return new ApiResponse(ResponseType.ParameterError, "核算组别错误");
var userid = _claim.GetUserId(); var userid = _claim.GetUserId();
......
...@@ -1052,7 +1052,7 @@ ...@@ -1052,7 +1052,7 @@
<param name="allotId"></param> <param name="allotId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ComputeController.SaveUniteDeptDetailSetting(System.Int32,Performance.DtoModels.UniteDeptSetting)"> <member name="M:Performance.Api.Controllers.ComputeController.SaveUniteDeptDetailSetting(System.Int32,System.Collections.Generic.List{Performance.DtoModels.UniteDeptDetailItem})">
<summary> <summary>
科室绩效详情显示隐藏设置--保存 科室绩效详情显示隐藏设置--保存
</summary> </summary>
......
...@@ -193,11 +193,6 @@ public enum FromSource ...@@ -193,11 +193,6 @@ public enum FromSource
public class UniteDept public class UniteDept
{ {
public enum Type
{
左侧下拉 = 1,
右侧收缩 = 2,
}
public enum Title public enum Title
{ {
业绩分值 = 2100, 业绩分值 = 2100,
......
...@@ -12,7 +12,6 @@ public class UniteDeptDetailResponse ...@@ -12,7 +12,6 @@ public class UniteDeptDetailResponse
} }
public class DeptDetailItem public class DeptDetailItem
{ {
public int Type { get; set; }
public string Title { get; set; } public string Title { get; set; }
public decimal Total { get; set; } public decimal Total { get; set; }
public string TotalFormat { get; set; } public string TotalFormat { get; set; }
...@@ -20,6 +19,7 @@ public class DeptDetailItem ...@@ -20,6 +19,7 @@ public class DeptDetailItem
public int Sort { get; set; } public int Sort { get; set; }
public bool Display { get; set; } = true; public bool Display { get; set; } = true;
public SheetType SheetType { get; set; } public SheetType SheetType { get; set; }
public List<DeptDetailItem> Children { get; set; }
public List<Dictionary<string, object>> Items { get; set; } public List<Dictionary<string, object>> Items { get; set; }
} }
} }
...@@ -3,10 +3,6 @@ ...@@ -3,10 +3,6 @@
namespace Performance.DtoModels namespace Performance.DtoModels
{ {
public class UniteDeptSetting
{
public List<UniteDeptDetailItem> DetailItems { get; set; } = new List<UniteDeptDetailItem>();
}
public class UniteDeptDetailItem public class UniteDeptDetailItem
{ {
public int Type { get; set; } public int Type { get; set; }
......
...@@ -54,6 +54,7 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -54,6 +54,7 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
// 行政工勤 // 行政工勤
if (UnitTypeUtil.IsOffice(response.UnitType)) if (UnitTypeUtil.IsOffice(response.UnitType))
{ {
var detailItems = new List<DeptDetailItem>();
#region 补全行政工勤人员明细 #region 补全行政工勤人员明细
{ {
var items = new List<Dictionary<string, object>>(); var items = new List<Dictionary<string, object>>();
...@@ -70,9 +71,7 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -70,9 +71,7 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
{ "绩效合计", ValueFormating(item.PerforTotal,UniteDept.Format.两位小数.ToString()) }, { "绩效合计", ValueFormating(item.PerforTotal,UniteDept.Format.两位小数.ToString()) },
}); });
} }
detailItems.Add(new DeptDetailItem { Title = "行政工勤", Total = account.PerforTotal ?? 0, Items = items });
var detail = new DeptDetailItem { Title = "行政工勤", Type = (int)UniteDept.Type.左侧下拉, Total = account.PerforTotal ?? 0, Items = items };
response.DetailItems.Add(detail);
} }
#endregion #endregion
...@@ -98,26 +97,26 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -98,26 +97,26 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
var amount = post.FirstOrDefault(w => w.IsTotal == 1)?.CellValue ?? 0; var amount = post.FirstOrDefault(w => w.IsTotal == 1)?.CellValue ?? 0;
row.AddOrUpdate("合计", ValueFormating(amount, ""), ValueFormating(amount, "")); row.AddOrUpdate("合计", ValueFormating(amount, ""), ValueFormating(amount, ""));
} }
detailItems.Add(new DeptDetailItem { Title = "岗位系数", Total = 0, Items = items });
var detail = new DeptDetailItem { Title = "岗位系数", Type = (int)UniteDept.Type.左侧下拉, Total = 0, Items = items };
response.DetailItems.Add(detail);
} }
} }
#endregion #endregion
#region 特殊处理 #region 特殊处理
var total = response.DetailItems.FirstOrDefault(w => w.Title == "行政工勤" && w.Type == (int)UniteDept.Type.左侧下拉)?.Total ?? 0; var total = detailItems.FirstOrDefault(w => w.Title == "行政工勤")?.Total ?? 0;
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩分值.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = 0 }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩分值.ToString(), Total = 0 });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = total }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩绩效.ToString(), Total = total, Children = detailItems });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.工作量绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = 0 }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.工作量绩效.ToString(), Total = 0 });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核前绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = total }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核前绩效.ToString(), Total = total });
#endregion #endregion
} }
else if (UnitTypeUtil.Is(response.UnitType, UnitType.特殊核算组.ToString())) else if (UnitTypeUtil.Is(response.UnitType, UnitType.特殊核算组.ToString()))
{ {
var special = _perforResspecialunitRepository.GetEntities(t => t.AllotID == allotId && t.Department == accountingUnit); var special = _perforResspecialunitRepository.GetEntities(t => t.AllotID == allotId && t.Department == accountingUnit);
if (special?.Any() != true) return response; if (special?.Any() != true) return response;
var detailItems = new List<DeptDetailItem>();
#region 补全特殊核算组量化指标明细 #region 补全特殊核算组量化指标明细
{ {
var items = new List<Dictionary<string, object>>(); var items = new List<Dictionary<string, object>>();
...@@ -132,22 +131,22 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -132,22 +131,22 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
}); });
} }
var detail = new DeptDetailItem { Title = "量化考核", Type = (int)UniteDept.Type.左侧下拉, Total = special.First().ResultsTotalFee ?? 0, Items = items }; detailItems.Add(new DeptDetailItem { Title = "量化考核", Total = special.First().ResultsTotalFee ?? 0, Items = items });
response.DetailItems.Add(detail);
} }
#endregion #endregion
#region 特殊处理 #region 特殊处理
var total = response.DetailItems.FirstOrDefault(w => w.Title == "量化考核" && w.Type == (int)UniteDept.Type.左侧下拉)?.Total ?? 0; var total = detailItems.FirstOrDefault(w => w.Title == "量化考核")?.Total ?? 0;
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩分值.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = 0 }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩分值.ToString(), Total = 0 });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = 0 }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩绩效.ToString(), Total = 0 });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.工作量绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = total }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.工作量绩效.ToString(), Total = total, Children = detailItems });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核前绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = special.First().PerforTotal ?? 0 }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核前绩效.ToString(), Total = special.First().PerforTotal ?? 0 });
#endregion #endregion
} }
else else
{ {
var detailItems = new List<DeptDetailItem>();
#region 补全临床科室收入明细 #region 补全临床科室收入明细
{ {
var leftSheetTypes = new List<int> { (int)SheetType.Income, (int)SheetType.OtherIncome, (int)SheetType.Expend, }; var leftSheetTypes = new List<int> { (int)SheetType.Income, (int)SheetType.OtherIncome, (int)SheetType.Expend, };
...@@ -161,6 +160,8 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -161,6 +160,8 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
var items = new List<Dictionary<string, object>>(); var items = new List<Dictionary<string, object>>();
var postDatas = basicData.Where(t => t.SheetID == sheet.ID && t.IsTotal != 1 && t.UnitType == (int)type); var postDatas = basicData.Where(t => t.SheetID == sheet.ID && t.IsTotal != 1 && t.UnitType == (int)type);
if (postDatas?.Any() != true) continue;
foreach (var post in postDatas.GroupBy(t => new { t.TypeName })) foreach (var post in postDatas.GroupBy(t => new { t.TypeName }))
{ {
if (ignore.Contains(post.Key.TypeName)) continue; if (ignore.Contains(post.Key.TypeName)) continue;
...@@ -191,13 +192,13 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -191,13 +192,13 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
#endregion #endregion
var amount = basicData.Where(t => t.SheetID == sheet.ID && t.UnitType == (int)type && t.IsTotal != 1)?.Sum(t => t.IsFactor == 1 ? t.CellValue * (t.FactorValue ?? 0) : t.CellValue) ?? 0; var amount = basicData.Where(t => t.SheetID == sheet.ID && t.UnitType == (int)type && t.IsTotal != 1)?.Sum(t => t.IsFactor == 1 ? t.CellValue * (t.FactorValue ?? 0) : t.CellValue) ?? 0;
var detail = new DeptDetailItem { Title = sheetName, Type = (int)UniteDept.Type.左侧下拉, Total = amount, Items = items }; detailItems.Add(new DeptDetailItem { Title = sheetName, Total = amount, Items = items });
response.DetailItems.Add(detail);
} }
} }
} }
#endregion #endregion
var detailItemWorkloads = new List<DeptDetailItem>();
#region 补全临床科室工作量明细 #region 补全临床科室工作量明细
{ {
foreach (var sheet in persheet.Where(t => t.SheetType == (int)SheetType.Workload)) foreach (var sheet in persheet.Where(t => t.SheetType == (int)SheetType.Workload))
...@@ -215,7 +216,13 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -215,7 +216,13 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
var inclineFactor = GetFactors(persheet, basicData, type, SheetType.WorkloadIncline); var inclineFactor = GetFactors(persheet, basicData, type, SheetType.WorkloadIncline);
var items = new List<Dictionary<string, object>>(); var items = new List<Dictionary<string, object>>();
var postDatas = basicData.Where(t => t.SheetID == sheet.ID && t.IsTotal != 1 && t.UnitType == (int)type);
var unitTypes = new int[] { (int)UnitType.医生组, (int)UnitType.医技组, (int)UnitType.其他医技组 };
var postDatas = (unitTypes.Contains((int)type))
? basicData.Where(t => t.SheetID == sheet.ID && t.IsTotal != 1 && unitTypes.Contains(t.UnitType.Value))
: basicData.Where(t => t.SheetID == sheet.ID && t.IsTotal != 1 && t.UnitType == (int)type);
if (postDatas?.Any() != true) continue;
foreach (var post in postDatas.GroupBy(t => new { t.TypeName })) foreach (var post in postDatas.GroupBy(t => new { t.TypeName }))
{ {
if (ignore.Contains(post.Key.TypeName)) continue; if (ignore.Contains(post.Key.TypeName)) continue;
...@@ -244,8 +251,7 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -244,8 +251,7 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
}); });
var amount = basicData.Where(t => t.SheetID == sheet.ID && t.UnitType == (int)type && t.IsTotal != 1)?.Sum(t => t.IsFactor == 1 ? t.CellValue * (t.FactorValue ?? 0) : t.CellValue) ?? 0; var amount = basicData.Where(t => t.SheetID == sheet.ID && t.UnitType == (int)type && t.IsTotal != 1)?.Sum(t => t.IsFactor == 1 ? t.CellValue * (t.FactorValue ?? 0) : t.CellValue) ?? 0;
var detail = new DeptDetailItem { Title = sheetName, Type = (int)UniteDept.Type.左侧下拉, Total = amount, Items = items }; detailItemWorkloads.Add(new DeptDetailItem { Title = sheetName, Total = amount, Items = items });
response.DetailItems.Add(detail);
} }
} }
#endregion #endregion
...@@ -259,31 +265,31 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -259,31 +265,31 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
var zc = string.Join(" - ", persheet.Where(t => t.SheetType == (int)SheetType.Expend).Select(w => BeautifulName(w.SheetName))); var zc = string.Join(" - ", persheet.Where(t => t.SheetType == (int)SheetType.Expend).Select(w => BeautifulName(w.SheetName)));
remark = $"{sr} + {ewsr} - {zc}"; remark = $"{sr} + {ewsr} - {zc}";
} }
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩分值.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = account.Income ?? 0, Remark = remark }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩分值.ToString(), Total = account.Income ?? 0, Children = detailItems });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = account.PerforFee ?? 0, Remark = allot.ShowFormula == 1 ? "业绩分值 * 预算比例" : "" }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.业绩绩效.ToString(), Total = account.PerforFee ?? 0 });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.工作量绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = account.WorkloadFee ?? 0 }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.工作量绩效.ToString(), Total = account.WorkloadFee ?? 0, Children = detailItemWorkloads });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核前绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = account.PerforTotal ?? 0, Remark = allot.ShowFormula == 1 ? "业绩绩效 + 工作量绩效 + 考核前其他绩效" : "" }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核前绩效.ToString(), Total = account.PerforTotal ?? 0 });
#endregion #endregion
} }
// 只显示合计没有详情 // 只显示合计没有详情
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核后绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = account.AssessLaterPerforTotal ?? 0, Remark = allot.ShowFormula == 1 ? "考核前绩效 × 考核得分率 + 药占比奖罚 + 材料占比奖罚 + 医院奖罚 + 考核后其他绩效" : "" }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核后绩效.ToString(), Total = account.AssessLaterPerforTotal ?? 0 });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核后其他绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = account.AssessLaterOtherFee ?? 0 }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.考核后其他绩效.ToString(), Total = account.AssessLaterOtherFee ?? 0 });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.调节系数.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = account.AdjustFactor ?? 1 }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.调节系数.ToString(), Total = account.AdjustFactor ?? 1 });
response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.实发绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Total = account.RealGiveFee ?? 0, Remark = allot.ShowFormula == 1 ? "考核后绩效 × 调节系数 + 调节后其他绩效" : "" }); response.DetailItems.Add(new DeptDetailItem { Title = UniteDept.Title.实发绩效.ToString(), Total = account.RealGiveFee ?? 0 });
// 显示详情 // 显示详情
#region 补全公共附属表明细 #region 补全公共附属表明细
{ {
var rightSheetTypeMaps = new DeptDetailItem[] var rightSheetTypeMaps = new DeptDetailItem[]
{ {
new DeptDetailItem { Title = UniteDept.Title.预算比例.ToString(), Type = (int)UniteDept.Type.右侧收缩, SheetType = SheetType.BudgetRatio }, new DeptDetailItem { Title = UniteDept.Title.预算比例.ToString(), SheetType = SheetType.BudgetRatio, Total = account.BasicFactor ?? 0, },
new DeptDetailItem { Title = UniteDept.Title.医院奖罚.ToString(), Type = (int)UniteDept.Type.右侧收缩, SheetType = SheetType.AccountExtra }, new DeptDetailItem { Title = UniteDept.Title.医院奖罚.ToString(), SheetType = SheetType.AccountExtra, Total = account.Extra ?? 0, },
new DeptDetailItem { Title = UniteDept.Title.考核前其他绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, SheetType = SheetType.AssessBeforeOtherFee }, new DeptDetailItem { Title = UniteDept.Title.考核前其他绩效.ToString(), SheetType = SheetType.AssessBeforeOtherFee, Total = account.AssessBeforeOtherFee ?? 0, },
new DeptDetailItem { Title = UniteDept.Title.药占比奖罚.ToString(), Type = (int)UniteDept.Type.右侧收缩, SheetType = SheetType.AccountDrugAssess }, new DeptDetailItem { Title = UniteDept.Title.药占比奖罚.ToString(), SheetType = SheetType.AccountDrugAssess, Total = account.MedicineExtra ?? 0, },
new DeptDetailItem { Title = UniteDept.Title.材料占比奖罚.ToString(), Type = (int)UniteDept.Type.右侧收缩, SheetType = SheetType.AccountMaterialsAssess }, new DeptDetailItem { Title = UniteDept.Title.材料占比奖罚.ToString(), SheetType = SheetType.AccountMaterialsAssess, Total = account.MaterialsExtra ?? 0, },
new DeptDetailItem { Title = UniteDept.Title.考核得分率.ToString(), Type = (int)UniteDept.Type.右侧收缩, SheetType = SheetType.AccountScoreAverage }, new DeptDetailItem { Title = UniteDept.Title.考核得分率.ToString(), SheetType = SheetType.AccountScoreAverage, Total = account.ScoringAverage ?? 0, },
new DeptDetailItem { Title = UniteDept.Title.调节后其他绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, SheetType = SheetType.AccountAdjustLaterOtherFee }, new DeptDetailItem { Title = UniteDept.Title.调节后其他绩效.ToString(), SheetType = SheetType.AccountAdjustLaterOtherFee, Total = account.AdjustLaterOtherFee ?? 0, },
}; };
foreach (var detail in rightSheetTypeMaps) foreach (var detail in rightSheetTypeMaps)
{ {
...@@ -324,11 +330,11 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -324,11 +330,11 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
{ {
detail.Display = true; detail.Display = true;
var cfg = settings.DetailItems.FirstOrDefault(w => w.Title == detail.Title); var cfg = settings.FirstOrDefault(w => w.Title == detail.Title);
// 部分左右侧显示全部格式化 // 部分左右侧显示全部格式化
detail.TotalFormat = ValueFormating(detail.Total, cfg?.Format); detail.TotalFormat = ValueFormating(detail.Total, cfg?.Format);
// 只对右侧设置排序 // 只对右侧设置排序
detail.Sort = detail.Type == (int)UniteDept.Type.左侧下拉 || cfg == null ? detail.Sort : cfg.Sort; detail.Sort = cfg == null ? detail.Sort : cfg.Sort;
// 备注 // 备注
detail.Remark = allot.ShowFormula == 1 ? cfg?.Remark : null; detail.Remark = allot.ShowFormula == 1 ? cfg?.Remark : null;
// 只对科室查看时右侧并且未下发隐藏内容 // 只对科室查看时右侧并且未下发隐藏内容
...@@ -338,14 +344,14 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -338,14 +344,14 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
} }
else if (cfg?.Display == UniteDept.DisplayRule.下发显示.ToString()) else if (cfg?.Display == UniteDept.DisplayRule.下发显示.ToString())
{ {
if (userInfo.IsSecondAdmin && detail.Type == (int)UniteDept.Type.右侧收缩 && allot.States != (int)AllotStates.绩效下发 && allot.States != (int)AllotStates.归档) if (userInfo.IsSecondAdmin && allot.States != (int)AllotStates.绩效下发 && allot.States != (int)AllotStates.归档)
{ {
detail.Display = false; detail.Display = false;
} }
} }
} }
response.DetailItems = response.DetailItems.OrderBy(w => w.Type).ThenBy(w => w.Sort).ToList(); response.DetailItems = response.DetailItems.OrderBy(w => w.Sort).ToList();
return response; return response;
} }
...@@ -423,12 +429,12 @@ private string BeautifulName(string sheetName) ...@@ -423,12 +429,12 @@ private string BeautifulName(string sheetName)
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="PerformanceException"></exception> /// <exception cref="PerformanceException"></exception>
public UniteDeptSetting GetUniteDeptDetailSetting(int allotId) public List<UniteDeptDetailItem> GetUniteDeptDetailSetting(int allotId)
{ {
var entity = _perforCofDeptDetailRepository.GetEntity(w => w.AllotId == allotId); var entity = _perforCofDeptDetailRepository.GetEntity(w => w.AllotId == allotId);
if (!string.IsNullOrEmpty(entity?.Settings)) if (!string.IsNullOrEmpty(entity?.Settings))
{ {
return JsonHelper.Deserialize<UniteDeptSetting>(entity.Settings); return JsonHelper.Deserialize<List<UniteDeptDetailItem>>(entity.Settings);
} }
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId); var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId);
...@@ -439,17 +445,17 @@ public UniteDeptSetting GetUniteDeptDetailSetting(int allotId) ...@@ -439,17 +445,17 @@ public UniteDeptSetting GetUniteDeptDetailSetting(int allotId)
var headers = _perforImheaderRepository.GetEntities(t => t.AllotID == allotId) ?? new List<im_header>(); var headers = _perforImheaderRepository.GetEntities(t => t.AllotID == allotId) ?? new List<im_header>();
var basicData = _perforImDataRepository.GetEntities(t => t.AllotID == allotId) ?? new List<im_data>(); var basicData = _perforImDataRepository.GetEntities(t => t.AllotID == allotId) ?? new List<im_data>();
var response = new UniteDeptSetting() { }; var response = new List<UniteDeptDetailItem>() { };
response.DetailItems.Add(new UniteDeptDetailItem { Title = UniteDept.Title.业绩分值.ToString(), Type = (int)UniteDept.Type.右侧收缩, Format = UniteDept.Format.整数.ToString(), }); response.Add(new UniteDeptDetailItem { Title = UniteDept.Title.业绩分值.ToString(), Format = UniteDept.Format.整数.ToString(), });
response.DetailItems.Add(new UniteDeptDetailItem { Title = UniteDept.Title.业绩绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Format = UniteDept.Format.整数.ToString(), }); response.Add(new UniteDeptDetailItem { Title = UniteDept.Title.业绩绩效.ToString(), Format = UniteDept.Format.整数.ToString(), Remark = "业绩分值 * 预算比例" });
response.DetailItems.Add(new UniteDeptDetailItem { Title = UniteDept.Title.工作量绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Format = UniteDept.Format.整数.ToString(), }); response.Add(new UniteDeptDetailItem { Title = UniteDept.Title.工作量绩效.ToString(), Format = UniteDept.Format.整数.ToString(), });
response.DetailItems.Add(new UniteDeptDetailItem { Title = UniteDept.Title.考核前绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Format = UniteDept.Format.整数.ToString(), }); response.Add(new UniteDeptDetailItem { Title = UniteDept.Title.考核前绩效.ToString(), Format = UniteDept.Format.整数.ToString(), });
// 只显示合计没有详情 // 只显示合计没有详情
response.DetailItems.Add(new UniteDeptDetailItem { Title = UniteDept.Title.考核后绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Format = UniteDept.Format.整数.ToString(), Remark = "考核前绩效 × 考核得分率 + 药占比奖罚 + 材料占比奖罚 + 医院奖罚 + 考核后其他绩效" }); response.Add(new UniteDeptDetailItem { Title = UniteDept.Title.考核后绩效.ToString(), Format = UniteDept.Format.整数.ToString(), Remark = "考核前绩效 × 考核得分率 + 药占比奖罚 + 材料占比奖罚 + 医院奖罚 + 考核后其他绩效" });
response.DetailItems.Add(new UniteDeptDetailItem { Title = UniteDept.Title.考核后其他绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Format = UniteDept.Format.整数.ToString(), }); response.Add(new UniteDeptDetailItem { Title = UniteDept.Title.考核后其他绩效.ToString(), Format = UniteDept.Format.整数.ToString(), });
response.DetailItems.Add(new UniteDeptDetailItem { Title = UniteDept.Title.调节系数.ToString(), Type = (int)UniteDept.Type.右侧收缩, Format = UniteDept.Format.两位小数百分比.ToString(), }); response.Add(new UniteDeptDetailItem { Title = UniteDept.Title.调节系数.ToString(), Format = UniteDept.Format.两位小数百分比.ToString(), });
response.DetailItems.Add(new UniteDeptDetailItem { Title = UniteDept.Title.实发绩效.ToString(), Type = (int)UniteDept.Type.右侧收缩, Format = UniteDept.Format.整数.ToString(), Remark = "考核后绩效 × 调节系数 + 调节后其他绩效" }); response.Add(new UniteDeptDetailItem { Title = UniteDept.Title.实发绩效.ToString(), Format = UniteDept.Format.整数.ToString(), Remark = "考核后绩效 × 调节系数 + 调节后其他绩效" });
// 显示详情 // 显示详情
#region 补全公共附属表明细 #region 补全公共附属表明细
...@@ -466,7 +472,7 @@ public UniteDeptSetting GetUniteDeptDetailSetting(int allotId) ...@@ -466,7 +472,7 @@ public UniteDeptSetting GetUniteDeptDetailSetting(int allotId)
}; };
foreach (var detail in rightSheetTypeMaps) foreach (var detail in rightSheetTypeMaps)
{ {
response.DetailItems.Add(detail); response.Add(detail);
foreach (var sheet in persheet.Where(t => t.SheetType == detail.SheetType)) foreach (var sheet in persheet.Where(t => t.SheetType == detail.SheetType))
{ {
var sheetName = BeautifulName(sheet.SheetName); var sheetName = BeautifulName(sheet.SheetName);
...@@ -476,7 +482,7 @@ public UniteDeptSetting GetUniteDeptDetailSetting(int allotId) ...@@ -476,7 +482,7 @@ public UniteDeptSetting GetUniteDeptDetailSetting(int allotId)
foreach (var post in postDatas.GroupBy(t => new { t.TypeName })) foreach (var post in postDatas.GroupBy(t => new { t.TypeName }))
{ {
if (ignore.Contains(post.Key.TypeName)) continue; if (ignore.Contains(post.Key.TypeName)) continue;
items.Add(new UniteDeptDetailItem { Title = post.Key.TypeName, Type = (int)UniteDept.Type.右侧收缩 }); items.Add(new UniteDeptDetailItem { Title = post.Key.TypeName });
} }
detail.Items = items; detail.Items = items;
} }
...@@ -484,19 +490,19 @@ public UniteDeptSetting GetUniteDeptDetailSetting(int allotId) ...@@ -484,19 +490,19 @@ public UniteDeptSetting GetUniteDeptDetailSetting(int allotId)
} }
#endregion #endregion
var enumItems = EnumHelper.GetItems<UniteDept.Title>(); var enumItems = EnumHelper.GetItems<UniteDept.Title>();
foreach (var detail in response.DetailItems) foreach (var detail in response)
{ {
detail.Display = UniteDept.DisplayRule.始终显示.ToString(); detail.Display = UniteDept.DisplayRule.始终显示.ToString();
var cfg = enumItems.FirstOrDefault(w => w.Name == detail.Title); var cfg = enumItems.FirstOrDefault(w => w.Name == detail.Title);
// 只对右侧设置排序 // 只对右侧设置排序
detail.Sort = detail.Type == (int)UniteDept.Type.左侧下拉 || cfg == null ? detail.Sort : cfg.Value; detail.Sort = cfg == null ? detail.Sort : cfg.Value;
} }
response.DetailItems = response.DetailItems.OrderBy(w => w.Type).ThenBy(w => w.Sort).ToList(); response = response.OrderBy(w => w.Type).ThenBy(w => w.Sort).ToList();
return response; return response;
} }
public void SaveUniteDeptDetailSetting(int allotId, UniteDeptSetting request) public void SaveUniteDeptDetailSetting(int allotId, List<UniteDeptDetailItem> request)
{ {
var entity = _perforCofDeptDetailRepository.GetEntity(w => w.AllotId == allotId); var entity = _perforCofDeptDetailRepository.GetEntity(w => w.AllotId == allotId);
if (entity == null) if (entity == null)
......
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