Commit daa778bf by wyc

管理详情 排序功能修改

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