Commit 84b4df0f by lcx

运营分析增加参数:科室

parent 2d341f65
...@@ -228,6 +228,9 @@ public ApiResponse MenuReport([CustomizeValidator(RuleSet = "Menu"), FromBody] R ...@@ -228,6 +228,9 @@ public ApiResponse MenuReport([CustomizeValidator(RuleSet = "Menu"), FromBody] R
[HttpPost] [HttpPost]
public ApiResponse Operation([ FromBody] ReportRequest request) public ApiResponse Operation([ FromBody] ReportRequest request)
{ {
if(request == null)
return new ApiResponse(ResponseType.Fail, "参数错误!");
var list = reportService.Operation(request); var list = reportService.Operation(request);
return new ApiResponse(ResponseType.OK, "", list); return new ApiResponse(ResponseType.OK, "", list);
} }
......
...@@ -2394,6 +2394,9 @@ ...@@ -2394,6 +2394,9 @@
<member name="P:Performance.DtoModels.ReportRequest.Month"> <member name="P:Performance.DtoModels.ReportRequest.Month">
<summary></summary> <summary></summary>
</member> </member>
<member name="P:Performance.DtoModels.ReportRequest.AccountingUnit">
<summary> 科室 </summary>
</member>
<member name="P:Performance.DtoModels.SecondAuditRequest.SecondId"> <member name="P:Performance.DtoModels.SecondAuditRequest.SecondId">
<summary> 二次绩效Id </summary> <summary> 二次绩效Id </summary>
</member> </member>
......
...@@ -7307,6 +7307,101 @@ ...@@ -7307,6 +7307,101 @@
医技组系数 医技组系数
</summary> </summary>
</member> </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"> <member name="P:Performance.EntityModels.HisData.HisDepartment">
<summary> <summary>
His科室 His科室
......
...@@ -23,6 +23,9 @@ public class ReportRequest ...@@ -23,6 +23,9 @@ public class ReportRequest
/// <summary> 月 </summary> /// <summary> 月 </summary>
public string Month { get; set; } public string Month { get; set; }
/// <summary> 科室 </summary>
public string[] AccountingUnit { get; set; }
} }
public class ReportRequestValidator : AbstractValidator<ReportRequest> 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) ...@@ -410,7 +410,7 @@ public SheetExportResponse Operation(ReportRequest request)
IEnumerable<int> years = new int[] { }; IEnumerable<int> years = new int[] { };
if (string.IsNullOrEmpty(request.Year)) 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); years = perforReportRepository.DapperQuery<int?>(getYearsSql, new { hospitalid = request.HospitalId })?.Select(t => t ?? 0);
} }
else else
...@@ -420,8 +420,12 @@ public SheetExportResponse Operation(ReportRequest request) ...@@ -420,8 +420,12 @@ public SheetExportResponse Operation(ReportRequest request)
if (years == null || !years.Any()) return sheet; if (years == null || !years.Any()) return sheet;
string sql = $"select * from view_test_data where hospitalid = @hospitalid and year in @year;"; string sql = $"select * from view_operation_report_result where hospitalid = @hospitalid and year in @year";
var data = perforReportRepository.DapperQuery<ViewTestData>(sql, new { hospitalId = request.HospitalId, year = years })?.ToList(); 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 #endregion
...@@ -458,11 +462,32 @@ public SheetExportResponse Operation(ReportRequest request) ...@@ -458,11 +462,32 @@ public SheetExportResponse Operation(ReportRequest request)
if (data == null || !data.Any()) if (data == null || !data.Any())
return sheet; 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(); var sourcetypes = data.Select(t => t.SourceType).Distinct();
#region body #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 }, { 1, t => t.January },
{ 2, t => t.February }, { 2, t => t.February },
...@@ -513,22 +538,24 @@ public SheetExportResponse Operation(ReportRequest request) ...@@ -513,22 +538,24 @@ public SheetExportResponse Operation(ReportRequest request)
} }
int itemnameIndex = inittype == 0 ? 2 : inittype == 1 ? 1 : 0; 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; index = 0;
foreach (var year in years) foreach (var year in years)
{ {
var thisdata = itemnameData.FirstOrDefault(t => t.Year == year); var thisdata = itemnameData.FirstOrDefault(t => t.Year == year);
if (thisdata == null)
{
index++;
continue;
}
int point = itemnameIndex + 1 + index * 12; int point = itemnameIndex + 1 + index * 12;
for (int i = 1; i < 13; i++) 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++; point++;
} }
...@@ -554,41 +581,4 @@ public SheetExportResponse Operation(ReportRequest request) ...@@ -554,41 +581,4 @@ public SheetExportResponse Operation(ReportRequest request)
return sheet; 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