Commit 439f4778 by 纪旭 韦

增加汇总,及优化代码

parent d739a710
...@@ -1617,13 +1617,11 @@ ...@@ -1617,13 +1617,11 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ReportController.AllComputeViewDownload(System.Int32,System.String,System.String)"> <member name="M:Performance.Api.Controllers.ReportController.AllComputeViewDownload(Performance.DtoModels.BeginEndTimeDown)">
<summary> <summary>
全院绩效发放(视图)下载 全院绩效发放(视图)下载
</summary> </summary>
<param name="BeginTime"></param> <param name="request"></param>
<param name="EndTime"></param>
<param name="HospitalId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ReportController.GethosdataView(Performance.DtoModels.BeginEndTime)"> <member name="M:Performance.Api.Controllers.ReportController.GethosdataView(Performance.DtoModels.BeginEndTime)">
...@@ -1633,29 +1631,25 @@ ...@@ -1633,29 +1631,25 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ReportController.GethosdataView(System.Int32,System.String,System.String)"> <member name="M:Performance.Api.Controllers.ReportController.GethosdataView(Performance.DtoModels.BeginEndTimeDown)">
<summary> <summary>
全院核算绩效发放(视图) 下载 全院核算绩效发放(视图) 下载
</summary> </summary>
<param name="BeginTime"></param> <param name="request"></param>
<param name="EndTime"></param>
<param name="HospitalId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ReportController.AllComputeViewByPM(Performance.DtoModels.BeginEndTime)"> <member name="M:Performance.Api.Controllers.ReportController.AllComputeViewByPM(Performance.DtoModels.BeginEndTime)">
<summary> <summary>
获取全院绩效列表(人事科 获取财务全院绩效列表(视图
</summary> </summary>
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ReportController.AllComputeByPMViewDownLoad(System.Int32,System.String,System.String)"> <member name="M:Performance.Api.Controllers.ReportController.AllComputeByPMViewDownLoad(Performance.DtoModels.BeginEndTimeDown)">
<summary> <summary>
全院绩效列表(人事科)下载 获取财务全院绩效列表(视图)下载
</summary> </summary>
<param name="BeginTime"></param> <param name="request"></param>
<param name="EndTime"></param>
<param name="HospitalId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.ReportGlobalController.GetAllReportGlobal(System.Int32)"> <member name="M:Performance.Api.Controllers.ReportGlobalController.GetAllReportGlobal(System.Int32)">
......
...@@ -53,21 +53,27 @@ public class ComputerAliasRequest ...@@ -53,21 +53,27 @@ public class ComputerAliasRequest
public string Route { get; set; } public string Route { get; set; }
} }
public class BeginEndTime public class BeginEndTime
{ {
public string BeginTime { get; set; } // 2021-01 public string BeginTime { get; set; } // 2021-01
public string EndTime { get; set; } // 2021-08 public string EndTime { get; set; } // 2021-08
public int CurrentPage { get; set; } public int CurrentPage { get; set; }
public int PageSize { get; set; } public int PageSize { get; set; }
} }
public class BeginEndTimeDown
{
public string BeginTime { get; set; } // 2021-01
public string EndTime { get; set; } // 2021-08
public int HospitalId { get; set; }
}
public class QueryComputeByDateGetPage public class QueryComputeByDateGetPage
{ {
public List<dynamic> Data { get; set; } public List<dynamic> Data { get; set; }
public int CurrentPage { get; set; } public Dictionary<string, decimal> TotalData { get; set; }
public int TotalPages { get; set; } public int CurrentPage { get; set; }
public int PageSize { get; set; } public int TotalPages { get; set; }
public int TotalCount { get; set; } public int PageSize { get; set; }
public int TotalCount { get; set; }
} }
} }
...@@ -2009,9 +2009,9 @@ public List<cof_alias> CustomColumnHeaders(int hospitalId, string route) ...@@ -2009,9 +2009,9 @@ public List<cof_alias> CustomColumnHeaders(int hospitalId, string route)
{ "/result/wholehospital" , ComputeConfig.AllComputePersonView }, { "/result/wholehospital" , ComputeConfig.AllComputePersonView },
{ "/result/print/compute" , ComputeConfig.AllComputeDepartmentView }, { "/result/print/compute" , ComputeConfig.AllComputeDepartmentView },
{ "/report/compute" , ComputeConfig.AllComputeViewByDate }, { "/report/wholehospital_grant" , ComputeConfig.AllComputeViewByDate },
{ "/report/wholehospital" , ComputeConfig.AllComputePersonViewByDate }, { "/report/wholehospital_accounting_grant" , ComputeConfig.AllComputeDepartmentViewByDate },
{ "/report/print/compute" , ComputeConfig.AllComputeDepartmentViewByDate }, { "/report/wholehospital_finance_grant" , ComputeConfig.AllComputePersonViewByDate },
}; };
var init = pairs.ContainsKey(route.ToLower()) ? pairs[route.ToLower()] : new List<cof_alias>(); var init = pairs.ContainsKey(route.ToLower()) ? pairs[route.ToLower()] : new List<cof_alias>();
foreach (var item in init) foreach (var item in init)
...@@ -2075,6 +2075,65 @@ public List<dynamic> GetAllComputeViewByDate(string viewName, string BeginTime, ...@@ -2075,6 +2075,65 @@ public List<dynamic> GetAllComputeViewByDate(string viewName, string BeginTime,
return reportRepository.QueryComputeByDate(0, viewName, BeginTime, EndTime); return reportRepository.QueryComputeByDate(0, viewName, BeginTime, EndTime);
} }
/// <summary>
///
/// </summary>
/// <param name="datas"></param>
/// <returns></returns>
public Dictionary<string, decimal> SumDatas(List<dynamic> datas)
{
string[] notSum = new string[] { "hospitalid", "allotid", "year", "month", "jobnumber", "bankcard", "jobtitle", "secondid", "states", "isshowmanage", "batch" };
Dictionary<string, decimal> pairs = new Dictionary<string, decimal>();
foreach (var dt in datas)
{
var row = (IDictionary<string, object>)dt;
foreach (var item in row)
{
if (notSum.Contains(item.Key.ToLower())) continue;
if (decimal.TryParse(item.Value?.ToString(), out decimal v))
{
if (pairs.TryGetValue(item.Key, out decimal sum))
{
sum += v;
pairs[item.Key] = sum;
}
else
{
pairs[item.Key] = v;
}
}
}
}
return pairs;
}
/// <summary>
/// 限制绩效发放输入的时间格式
/// </summary>
/// <param name="BeginTime"></param>
/// <param name="EndTime"></param>
/// <returns></returns>
public BeginEndTime performanceImposeDate(string BeginTime, string EndTime)
{
var Bdate = DateTime.Now;
var Edate = DateTime.Now;
if (string.IsNullOrEmpty(BeginTime) || !DateTime.TryParse(BeginTime, out Bdate) ||
string.IsNullOrEmpty(EndTime) || !DateTime.TryParse(EndTime, out Edate))
throw new PerformanceException("请输入正确的时间");
if (Bdate > Edate)
throw new PerformanceException("开始时间不能大于结束时间");
string beginDate = Bdate.Year + $"-{Bdate.Month.ToString().PadLeft(2, '0')}";
string endDate = Edate.Year + $"-{Edate.Month.ToString().PadLeft(2, '0')}";
return new BeginEndTime
{
BeginTime = beginDate,
EndTime = endDate
};
}
} }
public class ComputeConfig public class ComputeConfig
...@@ -2115,7 +2174,7 @@ public static List<cof_alias> AllComputeViewByDate ...@@ -2115,7 +2174,7 @@ public static List<cof_alias> AllComputeViewByDate
_allComputeViewByDate.Add(new cof_alias { Alias = "年份", Name = nameof(view_allot_sign_emp.Year), States = 1 }); _allComputeViewByDate.Add(new cof_alias { Alias = "年份", Name = nameof(view_allot_sign_emp.Year), States = 1 });
_allComputeViewByDate.Add(new cof_alias { Alias = "月份", Name = nameof(view_allot_sign_emp.Month), States = 1 }); _allComputeViewByDate.Add(new cof_alias { Alias = "月份", Name = nameof(view_allot_sign_emp.Month), States = 1 });
_allComputeViewByDate.AddRange(AllComputeView); _allComputeViewByDate.AddRange(AllComputeView);
} }
return _allComputeViewByDate; return _allComputeViewByDate;
} }
} }
......
...@@ -181,57 +181,7 @@ public string AllComputerViewReport(int allotId, List<dynamic> dynamics, string ...@@ -181,57 +181,7 @@ public string AllComputerViewReport(int allotId, List<dynamic> dynamics, string
{ {
var allot = perallotRepository.GetEntity(t => t.ID == allotId); var allot = perallotRepository.GetEntity(t => t.ID == allotId);
var hospital = perforHospital.GetEntity(t => t.ID == allot.HospitalId); var hospital = perforHospital.GetEntity(t => t.ID == allot.HospitalId);
var alias = perforCofalias.GetEntities(t => t.HospitalId == hospital.ID); return AllComputerDown(hospital, dynamics, route, name);
var headList = _computeService.CustomColumnHeaders(hospital.ID, route).Where(w => w.States == 1).ToList();
var dpath = Path.Combine(evn.ContentRootPath, "Files", "PerformanceRelease", $"{allot.HospitalId}");
FileHelper.CreateDirectory(dpath);
string filepath = Path.Combine(dpath, $"{hospital.HosName}-{name}-{DateTime.Now:yyyyMMdd}");
FileHelper.DeleteFile(filepath);
using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate))
using (ExcelPackage package = new ExcelPackage(fs))
{
var worksheet = package.Workbook.Worksheets.Add(name);
if (dynamics != null && dynamics.Count() > 0)
{
var headers = ((IDictionary<string, object>)dynamics.ElementAt(0)).Keys;
for (int col = 0; col < headList.Count; col++)
{
worksheet.SetValue(1, col + 1, headList[col].Alias);
}
for (int col = 0; col < headList.Count; col++)
{
for (int row = 0; row < dynamics.Count(); row++)
{
var data = dynamics.ElementAt(row);
var temp = (IDictionary<string, object>)data;
var value = temp[headList[col].Name];
worksheet.Cells[row + 2, col + 1].Value = value;
}
if (col == 0)
worksheet.SetValue(dynamics.Count() + 2, col + 1, "合计");
else
worksheet.Cells[dynamics.Count() + 2, col + 1].Formula = string.Format("SUM({0})", new ExcelAddress(2, col + 1, dynamics.Count() + 1, col + 1).Address);
}
}
worksheet.View.FreezePanes(2, 1);
for (int row = worksheet.Dimension.Start.Row; row <= worksheet.Dimension.End.Row; row++)
{
for (int col = worksheet.Dimension.Start.Column; col <= worksheet.Dimension.End.Column; col++)
{
worksheet.Cells[row, col].Style.Border.BorderAround(ExcelBorderStyle.Thin);
worksheet.Cells[row, col].Style.Numberformat.Format = "#,##0.00";
}
}
package.Save();
}
return filepath;
} }
/// <summary> /// <summary>
/// 财务、全院绩效发放下载(时间段) /// 财务、全院绩效发放下载(时间段)
...@@ -243,15 +193,15 @@ public string AllComputerViewReport(int allotId, List<dynamic> dynamics, string ...@@ -243,15 +193,15 @@ public string AllComputerViewReport(int allotId, List<dynamic> dynamics, string
public string AllComputerViewReportByDate(int HospitalId, List<dynamic> dynamics, string route, string name) public string AllComputerViewReportByDate(int HospitalId, List<dynamic> dynamics, string route, string name)
{ {
var hospital = perforHospital.GetEntity(t => t.ID == HospitalId); var hospital = perforHospital.GetEntity(t => t.ID == HospitalId);
var alias = perforCofalias.GetEntities(t => t.HospitalId == hospital.ID); return AllComputerDown(hospital, dynamics, route, name);
}
public string AllComputerDown(sys_hospital hospital,List<dynamic> dynamics, string route, string name)
{
var headList = _computeService.CustomColumnHeaders(hospital.ID, route).Where(w => w.States == 1).ToList(); var headList = _computeService.CustomColumnHeaders(hospital.ID, route).Where(w => w.States == 1).ToList();
var dpath = Path.Combine(evn.ContentRootPath, "Files", "PerformanceRelease", $"{hospital.ID}");
var dpath = Path.Combine(evn.ContentRootPath, "Files", "PerformanceRelease", $"{HospitalId}");
FileHelper.CreateDirectory(dpath); FileHelper.CreateDirectory(dpath);
string filepath = Path.Combine(dpath, $"{hospital.HosName}-{name}-{DateTime.Now:yyyyMMdd}"); string filepath = Path.Combine(dpath, $"{hospital.HosName}-{name}-{DateTime.Now:yyyyMMdd}");
FileHelper.DeleteFile(filepath); FileHelper.DeleteFile(filepath);
using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate)) using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate))
using (ExcelPackage package = new ExcelPackage(fs)) using (ExcelPackage package = new ExcelPackage(fs))
{ {
......
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