Commit 84b4df0f by lcx

运营分析增加参数:科室

parent 2d341f65
......@@ -228,6 +228,9 @@ public ApiResponse MenuReport([CustomizeValidator(RuleSet = "Menu"), FromBody] R
[HttpPost]
public ApiResponse Operation([ FromBody] ReportRequest request)
{
if(request == null)
return new ApiResponse(ResponseType.Fail, "参数错误!");
var list = reportService.Operation(request);
return new ApiResponse(ResponseType.OK, "", list);
}
......
......@@ -2394,6 +2394,9 @@
<member name="P:Performance.DtoModels.ReportRequest.Month">
<summary></summary>
</member>
<member name="P:Performance.DtoModels.ReportRequest.AccountingUnit">
<summary> 科室 </summary>
</member>
<member name="P:Performance.DtoModels.SecondAuditRequest.SecondId">
<summary> 二次绩效Id </summary>
</member>
......
......@@ -7307,6 +7307,101 @@
医技组系数
</summary>
</member>
<member name="T:Performance.EntityModels.view_operation_report_result">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.Year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.AccountingUnit">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.SourceType">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.Category">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.ItemName">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.January">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.February">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.March">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.April">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.May">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.June">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.July">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.August">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.September">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.October">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.November">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.view_operation_report_result.December">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.HisData.HisDepartment">
<summary>
His科室
......
......@@ -23,6 +23,9 @@ public class ReportRequest
/// <summary> 月 </summary>
public string Month { get; set; }
/// <summary> 科室 </summary>
public string[] AccountingUnit { get; set; }
}
public class ReportRequestValidator : AbstractValidator<ReportRequest>
{
......
//-----------------------------------------------------------------------
// <copyright file=" view_operation_report_result.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("view_operation_report_result")]
public class view_operation_report_result
{
/// <summary>
///
/// </summary>
public int HospitalId { get; set; }
/// <summary>
///
/// </summary>
public int Year { get; set; }
/// <summary>
///
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
///
/// </summary>
public string SourceType { get; set; }
/// <summary>
///
/// </summary>
public string Category { get; set; }
/// <summary>
///
/// </summary>
public string ItemName { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> January { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> February { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> March { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> April { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> May { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> June { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> July { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> August { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> September { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> October { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> November { get; set; }
/// <summary>
///
/// </summary>
public Nullable<decimal> December { get; set; }
}
}
......@@ -410,7 +410,7 @@ public SheetExportResponse Operation(ReportRequest request)
IEnumerable<int> years = new int[] { };
if (string.IsNullOrEmpty(request.Year))
{
string getYearsSql = "select max(`year`) `year` from view_test_data where hospitalid = @hospitalid;";
string getYearsSql = "select max(`year`) `year` from view_operation_report_result where hospitalid = @hospitalid;";
years = perforReportRepository.DapperQuery<int?>(getYearsSql, new { hospitalid = request.HospitalId })?.Select(t => t ?? 0);
}
else
......@@ -420,8 +420,12 @@ public SheetExportResponse Operation(ReportRequest request)
if (years == null || !years.Any()) return sheet;
string sql = $"select * from view_test_data where hospitalid = @hospitalid and year in @year;";
var data = perforReportRepository.DapperQuery<ViewTestData>(sql, new { hospitalId = request.HospitalId, year = years })?.ToList();
string sql = $"select * from view_operation_report_result where hospitalid = @hospitalid and year in @year";
if (request.AccountingUnit != null && request.AccountingUnit.Any())
{
sql += " and accountingunit in @accountingunit";
}
var data = perforReportRepository.DapperQuery<view_operation_report_result>(sql, new { hospitalId = request.HospitalId, year = years, accountingunit = request.AccountingUnit })?.ToList();
#endregion
......@@ -458,11 +462,32 @@ public SheetExportResponse Operation(ReportRequest request)
if (data == null || !data.Any())
return sheet;
var group = data.GroupBy(t => new { t.SourceType, t.Category, t.ItemName });
data = data.GroupBy(t => new { t.Year, t.SourceType, t.Category, t.ItemName }).Select(t => new view_operation_report_result
{
Year = t.Key.Year,
SourceType = t.Key.SourceType,
Category = t.Key.Category,
ItemName = t.Key.ItemName,
January = t.Sum(g => g.January ?? 0),
February = t.Sum(g => g.February ?? 0),
March = t.Sum(g => g.March ?? 0),
April = t.Sum(g => g.April ?? 0),
May = t.Sum(g => g.May ?? 0),
June = t.Sum(g => g.June ?? 0),
July = t.Sum(g => g.July ?? 0),
August = t.Sum(g => g.August ?? 0),
September = t.Sum(g => g.September ?? 0),
October = t.Sum(g => g.October ?? 0),
November = t.Sum(g => g.November ?? 0),
December = t.Sum(g => g.December ?? 0)
}).ToList();
var sourcetypes = data.Select(t => t.SourceType).Distinct();
#region body
Dictionary<int, Func<ViewTestData, object>> dict = new Dictionary<int, Func<ViewTestData, object>>
Dictionary<int, Func<view_operation_report_result, object>> dict = new Dictionary<int, Func<view_operation_report_result, object>>
{
{ 1, t => t.January },
{ 2, t => t.February },
......@@ -513,22 +538,24 @@ public SheetExportResponse Operation(ReportRequest request)
}
int itemnameIndex = inittype == 0 ? 2 : inittype == 1 ? 1 : 0;
rowcells.Add(new Cell { CellType = "body", CellValue = itemname, PointCell = itemnameIndex, MergeRow = 1, MergeCell = 1 });
rowcells.Add(new Cell { CellType = "body", CellValue = itemname, PointCell = itemnameIndex, MergeRow = itemnameData.Count(), MergeCell = 1 });
index = 0;
foreach (var year in years)
{
var thisdata = itemnameData.FirstOrDefault(t => t.Year == year);
if (thisdata == null)
{
index++;
continue;
}
int point = itemnameIndex + 1 + index * 12;
for (int i = 1; i < 13; i++)
{
rowcells.Add(new Cell { CellType = "body", CellValue = dict[i].Invoke(thisdata), PointCell = point, MergeRow = 1, MergeCell = 1 });
rowcells.Add(new Cell
{
CellType = "body",
CellValue = thisdata != null ? dict[i].Invoke(thisdata) : null,
PointCell = point,
MergeRow = 1,
MergeCell = 1
});
point++;
}
......@@ -554,41 +581,4 @@ public SheetExportResponse Operation(ReportRequest request)
return sheet;
}
}
public class ViewTestData
{
public int HospitalId { get; set; }
public int Year { get; set; }
public string SourceType { get; set; }
public string Category { get; set; }
public string ItemName { get; set; }
public decimal? January { get; set; }
public decimal? February { get; set; }
public decimal? March { get; set; }
public decimal? April { get; set; }
public decimal? May { get; set; }
public decimal? June { get; set; }
public decimal? July { get; set; }
public decimal? August { get; set; }
public decimal? September { get; set; }
public decimal? October { get; set; }
public decimal? November { get; set; }
public decimal? December { get; set; }
}
}
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