Commit daa778bf by wyc

管理详情 排序功能修改

parent a77bf37f
...@@ -278,35 +278,6 @@ public ApiResponse SaveEmpDetailSetting([FromQuery] int allotId, [FromBody] List ...@@ -278,35 +278,6 @@ public ApiResponse SaveEmpDetailSetting([FromQuery] int allotId, [FromBody] List
[HttpPost] [HttpPost]
public ApiResponse EmpDetail([FromBody] EmpDetailRequest request) public ApiResponse EmpDetail([FromBody] EmpDetailRequest request)
{ {
#region 提示
// 两个入口
// 一种只传参数 ComputeId
// 一种只传参数 AllotId、UnitType、AccountingUnit
/*
考核前绩效
核算人数
人均绩效
基础绩效系数(6.11 个人岗位系数)
出勤率
实际人均
效率绩效人数
效率系数
效率绩效小计
规模绩效系数
规模绩效小计
管理绩效发放系数
考核前管理绩效
考核得分率
考核后管理绩效
医院奖罚(5.2 业务中层行政中高层业务奖罚)
其他管理绩效(6.9 其他管理绩效)
调节系数
调节后其他绩效(6.10 调节后其他管理绩效)
绩效合计
*/
#endregion
var userid = _claim.GetUserId(); var userid = _claim.GetUserId();
var response = _computeService.EmpDetail(request, userid); var response = _computeService.EmpDetail(request, userid);
return new ApiResponse(ResponseType.OK, response); return new ApiResponse(ResponseType.OK, response);
...@@ -324,7 +295,7 @@ public IActionResult DownloadEmpDetail([FromBody] EmpDetailRequest request) ...@@ -324,7 +295,7 @@ public IActionResult DownloadEmpDetail([FromBody] EmpDetailRequest request)
var userid = _claim.GetUserId(); var userid = _claim.GetUserId();
var response = _computeService.EmpDetail(request, userid); var response = _computeService.EmpDetail(request, userid);
var filepath = _computeService.ExcelDownload(response, "管理绩效详情", request.AllotId); var filepath = _computeService.ExcelDownload(response, "管理绩效详情");
var memoryStream = new MemoryStream(); var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open)) using (var stream = new FileStream(filepath, FileMode.Open))
{ {
......
...@@ -246,9 +246,6 @@ public class ManagementDept ...@@ -246,9 +246,6 @@ public class ManagementDept
{ {
public enum TitleManage public enum TitleManage
{ {
//人员工号 = 2701,
//人员分类 = 2801,
//核算单元 = 2901,
考核前其他绩效 = 3001, 考核前其他绩效 = 3001,
考核前绩效 = 3101, 考核前绩效 = 3101,
核算人数 = 3200, 核算人数 = 3200,
...@@ -262,17 +259,16 @@ public enum TitleManage ...@@ -262,17 +259,16 @@ public enum TitleManage
规模绩效系数 = 4000, 规模绩效系数 = 4000,
规模绩效小计 = 4100, 规模绩效小计 = 4100,
管理绩效发放系数 = 4200, 管理绩效发放系数 = 4200,
其他管理绩效 = 4220,
考核前管理绩效 = 4300, 考核前管理绩效 = 4300,
考核得分率 = 4401, 考核得分率 = 4401,
考核后管理绩效 = 4500, 考核后管理绩效 = 4500,
医院奖罚 = 4601, 医院奖罚 = 4601,
夜班费 = 4611, 夜班费 = 4611,
考核后绩效 = 4621, 考核后绩效 = 4621,
其他管理绩效 = 4700,
调节系数 = 4801, 调节系数 = 4801,
调节后其他绩效 = 4901, 调节后其他绩效 = 4901,
调节后其他管理绩效 = 4910, 调节后其他管理绩效 = 4910,
// 业务中层行政中高层调节后其他绩效 = 4920,
绩效合计 = 5001, 绩效合计 = 5001,
} }
public enum DisplayRule public enum DisplayRule
......
...@@ -448,7 +448,7 @@ private void RecursionUseSettings(List<DeptDetailItem> detailItems, List<UniteDe ...@@ -448,7 +448,7 @@ private void RecursionUseSettings(List<DeptDetailItem> detailItems, List<UniteDe
{ {
detail.Display = true; detail.Display = true;
var cfg = userDetailItems.FirstOrDefault(w => w.Title == detail.Title); var cfg = userDetailItems.Find(w => w.Title == detail.Title);
// 部分左右侧显示全部格式化 // 部分左右侧显示全部格式化
if (detail?.Total == 0) if (detail?.Total == 0)
{ {
...@@ -1017,8 +1017,7 @@ private int GetMaxColumnIndex(int maxColIndex, List<DeptDetailItem> detailItems) ...@@ -1017,8 +1017,7 @@ private int GetMaxColumnIndex(int maxColIndex, List<DeptDetailItem> detailItems)
#region 管理绩效详情显示隐藏设置--加载和保存 #region 管理绩效详情显示隐藏设置--加载和保存
public List<UniteDeptDetailItem> GetEmpDetailSetting(int allotId) public List<UniteDeptDetailItem> GetEmpDetailSetting(int allotId)
{ {
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId); var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId) ?? throw new PerformanceException("绩效月信息错误");
if (allot == null) throw new PerformanceException("绩效月信息错误");
var ignore = _configuration.GetSection("UniteDeptDetailIgnore").Get<string[]>() ?? Array.Empty<string>(); var ignore = _configuration.GetSection("UniteDeptDetailIgnore").Get<string[]>() ?? Array.Empty<string>();
var persheet = _perforPerSheetRepository.GetEntities(t => t.AllotID == allotId) ?? new List<per_sheet>(); var persheet = _perforPerSheetRepository.GetEntities(t => t.AllotID == allotId) ?? new List<per_sheet>();
...@@ -1026,9 +1025,6 @@ public List<UniteDeptDetailItem> GetEmpDetailSetting(int allotId) ...@@ -1026,9 +1025,6 @@ public List<UniteDeptDetailItem> GetEmpDetailSetting(int allotId)
var response = new List<UniteDeptDetailItem>() { }; var response = new List<UniteDeptDetailItem>() { };
#region 行政工勤 #region 行政工勤
//response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.人员工号.ToString() });
//response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.人员分类.ToString() });
//response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.核算单元.ToString() });
response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.考核前其他绩效.ToString() }); response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.考核前其他绩效.ToString() });
response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.夜班费.ToString() }); response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.夜班费.ToString() });
response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.考核后绩效.ToString() }); response.Add(new UniteDeptDetailItem { Title = ManagementDept.TitleManage.考核后绩效.ToString() });
...@@ -1157,13 +1153,11 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use ...@@ -1157,13 +1153,11 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use
} }
else else
{ {
// 查询当前角色下科室的绩效 // 查询当前角色下科室的绩效
UnitTypeUtil.Maps.TryGetValue(userInfo?.URole.Type ?? 0, out string[] unitTypes); UnitTypeUtil.Maps.TryGetValue(userInfo?.URole.Type ?? 0, out string[] unitTypes);
if (unitTypes == null || !unitTypes.Any()) return new List<UniteDeptDetailResponse>(); if (unitTypes == null || !unitTypes.Any()) return new List<UniteDeptDetailResponse>();
var accountingUnit = userInfo.User.Department; var accountingUnit = userInfo.User.Department;
var hospitalId = userInfo.HospitalIds.First();
if (userInfo.IsSecondAdmin) if (userInfo.IsSecondAdmin)
{ {
var secondList = _agsecondallotRepository.Get(request.AllotId, unitTypes, userInfo.User.Department); var secondList = _agsecondallotRepository.Get(request.AllotId, unitTypes, userInfo.User.Department);
...@@ -1188,10 +1182,8 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use ...@@ -1188,10 +1182,8 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use
} }
foreach (var resCompute in resComputes) foreach (var resCompute in resComputes)
{ {
var allot = perforPerallotRepository.GetEntity(t => t.ID == resCompute.AllotID); var allot = perforPerallotRepository.GetEntity(t => t.ID == resCompute.AllotID) ?? throw new PerformanceException("绩效月信息错误");
if (allot == null) throw new PerformanceException("绩效月信息错误"); if (!Enum.TryParse(resCompute.UnitType ?? resCompute.AccountType, ignoreCase: true, out UnitType unitType))
if (!Enum.TryParse(resCompute.UnitType == null ? resCompute.AccountType : resCompute.UnitType, ignoreCase: true, out UnitType unitType))
throw new PerformanceException("核算组别错误"); throw new PerformanceException("核算组别错误");
...@@ -1204,16 +1196,12 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use ...@@ -1204,16 +1196,12 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use
var response = new UniteDeptDetailResponse var response = new UniteDeptDetailResponse
{ {
// Title = $"相关信息: {resCompute.JobNumber} {resCompute.EmployeeName} {resCompute.AccountType} {resCompute.AccountingUnit}",
Title = $"{resCompute.EmployeeName}({resCompute.JobNumber}) {resCompute.AccountType} {resCompute.AccountingUnit}", Title = $"{resCompute.EmployeeName}({resCompute.JobNumber}) {resCompute.AccountType} {resCompute.AccountingUnit}",
UnitType = resCompute?.UnitType, UnitType = resCompute?.UnitType,
AccountingUnit = resCompute?.AccountingUnit, AccountingUnit = resCompute?.AccountingUnit,
DetailItems = new List<DeptDetailItem>() DetailItems = new List<DeptDetailItem>()
}; };
#region 行政工勤 #region 行政工勤
//response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.人员工号.ToString(), TotalFormat = resCompute.JobNumber });
//response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.人员分类.ToString(), TotalFormat = resCompute.AccountType });
//response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.核算单元.ToString(), TotalFormat = resCompute.AccountingUnit });
response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.考核前其他绩效.ToString(), Total = resCompute.AssessBeforeOtherFee ?? 0 }); response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.考核前其他绩效.ToString(), Total = resCompute.AssessBeforeOtherFee ?? 0 });
response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.夜班费.ToString(), Total = resCompute.NightWorkPerfor ?? 0 }); response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.夜班费.ToString(), Total = resCompute.NightWorkPerfor ?? 0 });
response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.考核后绩效.ToString(), Total = resCompute.GiveFee ?? 0 }); response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.考核后绩效.ToString(), Total = resCompute.GiveFee ?? 0 });
...@@ -1235,48 +1223,48 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use ...@@ -1235,48 +1223,48 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use
response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.调节系数.ToString(), Total = employee?.Adjust ?? 1 }); response.DetailItems.Add(new DeptDetailItem { Title = ManagementDept.TitleManage.调节系数.ToString(), Total = employee?.Adjust ?? 1 });
var isShowManage = IsShowManage(resCompute.AllotID.Value); var isShowManage = IsShowManage(resCompute.AllotID.Value);
var array = new List<int>(); var array = new List<string>();
if (resCompute.AccountType == AccountUnitType.行政中层.ToString()) if (resCompute.AccountType == AccountUnitType.行政中层.ToString())
{ {
array = new List<int>() array = new List<string>()
{ {
(int)ManagementDept.TitleManage.考核前其他绩效, ManagementDept.TitleManage.考核前其他绩效.ToString(),
(int)ManagementDept.TitleManage.考核前绩效, ManagementDept.TitleManage.考核前绩效.ToString(),
(int)ManagementDept.TitleManage.出勤率, ManagementDept.TitleManage.出勤率.ToString(),
(int)ManagementDept.TitleManage.考核得分率, ManagementDept.TitleManage.考核得分率.ToString(),
(int)ManagementDept.TitleManage.医院奖罚, ManagementDept.TitleManage.医院奖罚.ToString(),
(int)ManagementDept.TitleManage.夜班费, ManagementDept.TitleManage.夜班费.ToString(),
(int)ManagementDept.TitleManage.考核后绩效, ManagementDept.TitleManage.考核后绩效.ToString(),
(int)ManagementDept.TitleManage.调节系数, ManagementDept.TitleManage.调节系数.ToString(),
(int)ManagementDept.TitleManage.调节后其他绩效, ManagementDept.TitleManage.调节后其他绩效.ToString(),
(int)ManagementDept.TitleManage.绩效合计 ManagementDept.TitleManage.绩效合计.ToString()
}; };
isShowManage = 1; isShowManage = 1;
} }
else else
{ {
array = new List<int>() array = new List<string>()
{ {
(int)ManagementDept.TitleManage.考核前绩效, ManagementDept.TitleManage.考核前绩效.ToString(),
(int)ManagementDept.TitleManage.核算人数, ManagementDept.TitleManage.核算人数.ToString(),
(int)ManagementDept.TitleManage.人均绩效, ManagementDept.TitleManage.人均绩效.ToString(),
(int)ManagementDept.TitleManage.基础绩效系数, ManagementDept.TitleManage.基础绩效系数.ToString(),
(int)ManagementDept.TitleManage.出勤率, ManagementDept.TitleManage.出勤率.ToString(),
(int)ManagementDept.TitleManage.实际人均, ManagementDept.TitleManage.实际人均.ToString(),
(int)ManagementDept.TitleManage.效率绩效人数, ManagementDept.TitleManage.效率绩效人数.ToString(),
(int)ManagementDept.TitleManage.效率系数, ManagementDept.TitleManage.效率系数.ToString(),
(int)ManagementDept.TitleManage.效率绩效小计, ManagementDept.TitleManage.效率绩效小计.ToString(),
(int)ManagementDept.TitleManage.规模绩效系数, ManagementDept.TitleManage.规模绩效系数.ToString(),
(int)ManagementDept.TitleManage.规模绩效小计, ManagementDept.TitleManage.规模绩效小计.ToString(),
(int)ManagementDept.TitleManage.管理绩效发放系数, ManagementDept.TitleManage.管理绩效发放系数.ToString(),
(int)ManagementDept.TitleManage.考核前管理绩效, ManagementDept.TitleManage.其他管理绩效.ToString(),
(int)ManagementDept.TitleManage.考核得分率, ManagementDept.TitleManage.考核前管理绩效.ToString(),
(int)ManagementDept.TitleManage.考核后管理绩效, ManagementDept.TitleManage.考核得分率.ToString(),
(int)ManagementDept.TitleManage.医院奖罚, ManagementDept.TitleManage.考核后管理绩效.ToString(),
(int)ManagementDept.TitleManage.其他管理绩效, ManagementDept.TitleManage.医院奖罚.ToString(),
(int)ManagementDept.TitleManage.调节系数, ManagementDept.TitleManage.调节系数.ToString(),
(int)ManagementDept.TitleManage.调节后其他绩效, ManagementDept.TitleManage.调节后其他绩效.ToString(),
(int)ManagementDept.TitleManage.绩效合计 ManagementDept.TitleManage.绩效合计.ToString()
}; };
} }
...@@ -1307,12 +1295,9 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use ...@@ -1307,12 +1295,9 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use
foreach (var detail in rightSheetTypeMaps) foreach (var detail in rightSheetTypeMaps)
{ {
response.DetailItems.Add(detail); response.DetailItems.Add(detail);
foreach (var sheet in persheet.Where(t => t.SheetType == (int)detail.SheetType)) foreach (var sheet in persheet.Where(t => t.SheetType == (int)detail.SheetType))
{ {
var type = TypeConversion((int)unitType); var type = TypeConversion((int)unitType);
var sheetName = BeautifulName(sheet.SheetName);
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);
...@@ -1325,8 +1310,8 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use ...@@ -1325,8 +1310,8 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use
{ {
if (ignore.Contains(post.Key.TypeName)) continue; if (ignore.Contains(post.Key.TypeName)) continue;
var settingItem = settings.FirstOrDefault(w => w.Title == detail.Title) ?? new UniteDeptDetailItem() { Children = new List<UniteDeptDetailItem>() }; var settingItem = settings.Find(w => w.Title == detail.Title) ?? new UniteDeptDetailItem() { Children = new List<UniteDeptDetailItem>() };
var gs = settingItem.Children.FirstOrDefault(w => w.Title == post.Key.TypeName) ?? new UniteDeptDetailItem { Format = "" }; var gs = settingItem.Children.Find(w => w.Title == post.Key.TypeName) ?? new UniteDeptDetailItem { Format = "" };
if (string.IsNullOrEmpty(gs.Display)) if (string.IsNullOrEmpty(gs.Display))
gs.Display = UniteDept.DisplayRule.始终显示.ToString(); gs.Display = UniteDept.DisplayRule.始终显示.ToString();
...@@ -1352,9 +1337,10 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use ...@@ -1352,9 +1337,10 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use
} }
} }
#endregion #endregion
//过滤
response.DetailItems = response.DetailItems.Where(w => array.Contains(w.Title)).ToList();
RecursionUseSettings(response.DetailItems, settings, userInfo.IsSecondAdmin, allot); RecursionUseSettings(response.DetailItems, settings, userInfo.IsSecondAdmin, allot);
response.DetailItems = response.DetailItems.Where(w => array.Contains(w.Sort)).ToList();
response.DetailItems = response.DetailItems.Where(w => w.Display).OrderBy(w => w.Sort).ToList(); response.DetailItems = response.DetailItems.Where(w => w.Display).OrderBy(w => w.Sort).ToList();
responses.Add(response); responses.Add(response);
} }
...@@ -1362,7 +1348,7 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use ...@@ -1362,7 +1348,7 @@ public List<UniteDeptDetailResponse> EmpDetail(EmpDetailRequest request, int use
} }
public string ExcelDownload(List<UniteDeptDetailResponse> uniteDeptDetails, string name, int allotId) public string ExcelDownload(List<UniteDeptDetailResponse> uniteDeptDetails, string name)
{ {
var dpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files"); var dpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files");
if (!Directory.Exists(dpath)) Directory.CreateDirectory(dpath); if (!Directory.Exists(dpath)) Directory.CreateDirectory(dpath);
......
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