Commit 00c3c793 by ruyun.zhang@suvalue.com

Merge branch 'feature/每月汇报表' into develop

parents 9a3b2573 4d1f04c4
...@@ -385,6 +385,7 @@ public ApiResponse Pigeonhole([CustomizeValidator(RuleSet = "Delete"), FromBody] ...@@ -385,6 +385,7 @@ public ApiResponse Pigeonhole([CustomizeValidator(RuleSet = "Delete"), FromBody]
if (null == allot) if (null == allot)
throw new PerformanceException("当前绩效记录不存在或没有上传数据文件"); throw new PerformanceException("当前绩效记录不存在或没有上传数据文件");
_allotService.Pigeonhole(allot); _allotService.Pigeonhole(allot);
_taskService.Add(Background.JobType.每日汇报表汇总, allot.ID.ToString());
return new ApiResponse(ResponseType.OK); return new ApiResponse(ResponseType.OK);
} }
...@@ -458,6 +459,9 @@ public ApiResponse Issued([FromBody] AllotRequest request) ...@@ -458,6 +459,9 @@ public ApiResponse Issued([FromBody] AllotRequest request)
{ {
_allotService.UpdateAllotStates(allot.ID, (int)AllotStates.绩效下发, EnumHelper.GetDescription(AllotStates.绩效下发)); _allotService.UpdateAllotStates(allot.ID, (int)AllotStates.绩效下发, EnumHelper.GetDescription(AllotStates.绩效下发));
costTransferService.RejectedApplicat(allot.ID); costTransferService.RejectedApplicat(allot.ID);
_taskService.Add(Background.JobType.每日汇报表汇总, allot.ID.ToString());
return new ApiResponse(ResponseType.OK, "下发成功"); return new ApiResponse(ResponseType.OK, "下发成功");
} }
else else
......
using Microsoft.AspNetCore.Mvc;
using Performance.DtoModels;
using Performance.EntityModels;
using Performance.Services;
using System.Collections.Generic;
using System.Linq;
namespace Performance.Api.Controllers
{
/// <summary>
/// 每月报表
/// </summary>
[Route("api/statistics")]
public class StatisticsController : Controller
{
private readonly StatisticsService _service;
public StatisticsController(StatisticsService service)
{
_service = service;
}
/// <summary>
/// 查询报表信息
/// </summary>
/// <param name="statisticsId"></param>
/// <param name="hospitalID"></param>
/// <returns></returns>
[HttpPost("info")]
public ApiResponse<StatisticsInfoDto> GetInfo(int hospitalID, int statisticsId)
{
// report_statistics
// report_statistics_selection
return new ApiResponse<StatisticsInfoDto>(ResponseType.OK, _service.GetInfo(hospitalID,statisticsId));
}
/// <summary>
/// 查询报表查询记录
/// </summary>
/// <param name="statisticsId"></param>
/// <param name="hospitalID"></param>
/// <returns></returns>
[HttpPost("selection/record")]
public ApiResponse<List<report_statistics_selection_record>> GetSelectionRecord(int hospitalID,int statisticsId)
{
return new ApiResponse<List<report_statistics_selection_record>>(ResponseType.OK, _service.GetSelectionRecord(hospitalID, statisticsId));
}
/// <summary>
/// 保存报表查询记录
/// </summary>
/// <returns></returns>
[HttpPost("selection/record/save")]
public ApiResponse SaveSelectionRecord([FromBody] report_statistics_selection_record record)
{
return _service.SaveSelectionRecord(record);
}
/// <summary>
/// 删除报表查询记录
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("selection/record/delete")]
public ApiResponse DeleteSelectionRecord(int id)
{
if(_service.DeleteSelectionRecord(id))
return new ApiResponse(ResponseType.OK, "删除成功");
else
return new ApiResponse(ResponseType.Fail, "删除失败");
}
/// <summary>
/// 查询报表结果
/// </summary>
/// <returns></returns>
[HttpPost("search")]
public ApiResponse<StatisticsQueryResultDto> Search([FromBody] StatisticsQuery query)
{
// 数额必须返回
// Columns
// 占比 判断层级结构表中是否存在公式 存在则返回
// 权重 判断层级结构表中是否存在公式 存在则返回
// 增降幅 判断是否是对比查询 存在则返回
// Data
// 判断层级结构表中是否存在数据
// 1.使用层级表中的SQL查询数据出来
// 层级固定插入 项目 列中(今天或明天再确定下来)
// 数额固定插入 数额 列中
// 带公式信息列,则把表中的公式放入即可
// 剩余的判断则和列头相同的判断规则,插入空白数据
// 2.否则 使用主表SQL查询数据出来
// 横向转换结构(今天或明天再确定下来)
// 占位符 分两种
// 1.具有具体名称的占位符 如 @UnitType 直接替换为具体参数
// 2.前端传入参数,但没有具体占位的 则拼接后替换 @wh 如 @UnitType 直接替换为具体参数
/*
SELECT SUM(VALUE) FROM report_statistics_store WHERE Category IN ('中成药费','西药费') AND UnitType IN @UnitType AND @wh
参数
{
"HospitalID":"12",
"UnitType":"医生组",
"AccoungtingUnti":"呼吸内科"
}
where = "";
// 先循环 参数
判断是否存在 存在则替换 不存在 则 拼接到变量
1. HospitalID >> 拼接 where = "HospitalID = 12"
2. UnitType >> 替换 where = "HospitalID = 12"
3. AccoungtingUnti >> 拼接 where = "HospitalID = 12 AND AccoungtingUnti IN ('呼吸内科') "
替换@wh = where
SELECT SUM(VALUE) FROM report_statistics_store WHERE Category IN ('中成药费','西药费') AND UnitType IN ('医生组') AND HospitalID = 12 AND AccoungtingUnti IN ('呼吸内科')
*/
// 取出对应SQL(多条)
// 循环执行
// { "数额" , "SQL"。 } >> { "数额" , "23" }
return new ApiResponse<StatisticsQueryResultDto>(ResponseType.OK, _service.Search(query));
}
}
}
\ No newline at end of file
...@@ -93,6 +93,9 @@ public void Execute() ...@@ -93,6 +93,9 @@ public void Execute()
case (int)Background.JobType.自定义抽取: case (int)Background.JobType.自定义抽取:
Execute_Allot_CustomExtract(service, task); Execute_Allot_CustomExtract(service, task);
break; break;
case (int)Background.JobType.每日汇报表汇总:
Execute_Allot_Statistics(service, task);
break;
default: default:
service.Update(task.ID, Background.Status.无效); service.Update(task.ID, Background.Status.无效);
break; break;
...@@ -102,6 +105,33 @@ public void Execute() ...@@ -102,6 +105,33 @@ public void Execute()
} }
/// <summary> /// <summary>
/// 每日汇报表汇总
/// </summary>
/// <param name="service"></param>
/// <param name="task"></param>
private void Execute_Allot_Statistics(TaskService service, bg_task task)
{
using (var scope = _serviceScopeFactory.CreateScope())
{
var allotService = scope.ServiceProvider.GetService<AllotService>();
try
{
if (int.TryParse(task.Argument, out int allotId))
{
service.Update(task.ID, Background.Status.执行中);
Stopwatch stopwatch = Stopwatch.StartNew();
allotService.GenerateReportStatistics(allotId);
stopwatch.Stop();
service.Update(task.ID, Background.Status.完成, seconds: stopwatch.Elapsed.TotalSeconds);
}
}
catch (Exception ex)
{
service.Update(task.ID, Background.Status.失败, ex.ToString());
}
}
}
/// <summary>
/// 生成测算表 /// 生成测算表
/// </summary> /// </summary>
/// <param name="service"></param> /// <param name="service"></param>
...@@ -134,7 +164,22 @@ private void Execute_Allot_Generate(TaskService service, bg_task task) ...@@ -134,7 +164,22 @@ private void Execute_Allot_Generate(TaskService service, bg_task task)
{ {
service.Update(task.ID, Background.Status.失败, ex.ToString()); service.Update(task.ID, Background.Status.失败, ex.ToString());
} }
allotService.GenerateReport(allot);
try
{
allotService.GenerateReport(allot);
}
catch (Exception)
{
}
try
{
allotService.GenerateReportStatistics(allotId);
}
catch (Exception)
{
}
} }
} }
......
...@@ -2343,6 +2343,46 @@ ...@@ -2343,6 +2343,46 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:Performance.Api.Controllers.StatisticsController">
<summary>
每月报表
</summary>
</member>
<member name="M:Performance.Api.Controllers.StatisticsController.GetInfo(System.Int32,System.Int32)">
<summary>
查询报表信息
</summary>
<param name="statisticsId"></param>
<param name="hospitalID"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.StatisticsController.GetSelectionRecord(System.Int32,System.Int32)">
<summary>
查询报表查询记录
</summary>
<param name="statisticsId"></param>
<param name="hospitalID"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.StatisticsController.SaveSelectionRecord(Performance.EntityModels.report_statistics_selection_record)">
<summary>
保存报表查询记录
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.StatisticsController.DeleteSelectionRecord(System.Int32)">
<summary>
删除报表查询记录
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.StatisticsController.Search(Performance.DtoModels.StatisticsQuery)">
<summary>
查询报表结果
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.TemplateController.DownFile(System.Int32)"> <member name="M:Performance.Api.Controllers.TemplateController.DownFile(System.Int32)">
<summary> <summary>
从WebAPI下载模板 1、医院绩效模板 2、医院二次分配绩效模板 3、医院绩效模板(无执行科室) 从WebAPI下载模板 1、医院绩效模板 2、医院二次分配绩效模板 3、医院绩效模板(无执行科室)
...@@ -2410,6 +2450,13 @@ ...@@ -2410,6 +2450,13 @@
<param name="query"></param> <param name="query"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.BackgroundJob.Execute_Allot_Statistics(Performance.Services.TaskService,Performance.EntityModels.bg_task)">
<summary>
每日汇报表汇总
</summary>
<param name="service"></param>
<param name="task"></param>
</member>
<member name="M:Performance.Api.BackgroundJob.Execute_Allot_Generate(Performance.Services.TaskService,Performance.EntityModels.bg_task)"> <member name="M:Performance.Api.BackgroundJob.Execute_Allot_Generate(Performance.Services.TaskService,Performance.EntityModels.bg_task)">
<summary> <summary>
生成测算表 生成测算表
......
...@@ -1736,6 +1736,71 @@ ...@@ -1736,6 +1736,71 @@
Not In Not In
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.StatisticsInfoDto.Name">
<summary>
每月汇总表名称
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsInfoDto.IsComparison">
<summary>
报表对比 0 不允许对比 1 允许对比
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsSelectionDto.Title">
<summary>
条件标题
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsSelectionDto.Sort">
<summary>
排序
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsSelectionDto.InputName">
<summary>
控件名称
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsSelectionDto.InputType">
<summary>
控件类型(1:input框、2:radio单选、3:checkbox多选、4:select单选、5:select多选、6:自动补全单选、7:自动补全多选、10:日期区间)
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsSelectionDto.Required">
<summary>
是否必填(1表示必填0表示非必填)
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsSelectionDto.Options">
<summary>
数据集合
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsQuery.IsComparison">
<summary>
结果返回用途 首次查询 0 用于比对 1 用于对比
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsQueryResultDto.IsComparison">
<summary>
结果返回用途 首次查询 0 用于比对 1 用于对比
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsColumn.ColumnName">
<summary>
显示名
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsColumn.OrgColumnName">
<summary>
原始名,对应到数据列
</summary>
</member>
<member name="P:Performance.DtoModels.StatisticsColumn.Fixed">
<summary>
固定
</summary>
</member>
<member name="P:Performance.DtoModels.ReportTable.PersonnelName"> <member name="P:Performance.DtoModels.ReportTable.PersonnelName">
<summary> <summary>
人员信息 人员信息
......
...@@ -292,7 +292,7 @@ ...@@ -292,7 +292,7 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.report_performance_person_tags"> <member name="P:Performance.EntityModels.PerformanceDbContext.report_performance_person_tags">
<summary> </summary> <summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.report_performance_tags"> <member name="P:Performance.EntityModels.PerformanceDbContext.report_statistics">
<summary> </summary> <summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_account"> <member name="P:Performance.EntityModels.PerformanceDbContext.res_account">
...@@ -7385,6 +7385,206 @@ ...@@ -7385,6 +7385,206 @@
创建时间 创建时间
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.report_statistics">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics.Name">
<summary>
每月汇总表名称
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics.IsComparison">
<summary>
报表对比 0 不允许对比 1 允许对比
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics.TotalScript">
<summary>
汇总数值SQL
</summary>
</member>
<member name="T:Performance.EntityModels.report_statistics_selection">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.Title">
<summary>
条件标题
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.Sort">
<summary>
排序
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.Content">
<summary>
条件SQL语句
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.Type">
<summary>
条件类型(1固定条件,2需要通过语句获取)
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.InputName">
<summary>
控件名称
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.InputType">
<summary>
控件类型(1:input框、2:radio单选、3:checkbox多选、4:select单选、5:select多选、6:自动补全单选、7:自动补全多选、10:日期区间)
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.Required">
<summary>
是否必填(1表示必填0表示非必填)
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.LoadType">
<summary>
条件加载方式 1 立即加载 2 联动加载 3 自动补全
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.DefaultType">
<summary>
默认值类型(1 固定文本 2 动态结果第一项)
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.DefaultValue">
<summary>
默认值文本
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection.State">
<summary>
条件状态 1 正常 2 可用但不显示 3 不显示不可用 4 不可用但显示
</summary>
</member>
<member name="T:Performance.EntityModels.report_statistics_selection_record">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection_record.CreateDate">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection_record.UpdateDate">
<summary>
最后修改时间
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection_record.Name">
<summary>
自定义名称
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_selection_record.Content">
<summary>
条件内容
</summary>
</member>
<member name="T:Performance.EntityModels.report_statistics_store">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.HospitalId">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.AllotID">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.Year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.Month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.YearMonth">
<summary>
年月
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.UnitType">
<summary>
核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.Source">
<summary>
来源
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.Category">
<summary>
类别
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_store.Value">
<summary>
数值
</summary>
</member>
<member name="T:Performance.EntityModels.report_statistics_tree">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_tree.StatisticsID">
<summary>
每月汇总表ID
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_tree.ParentID">
<summary>
统计层级父级ID
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_tree.Name">
<summary>
统计层级名称
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_tree.TotalScript">
<summary>
汇总数值SQL
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_tree.TotalFormula">
<summary>
汇总数值公式
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_tree.ProportionFormula">
<summary>
占比公式
</summary>
</member>
<member name="P:Performance.EntityModels.report_statistics_tree.WeightFormula">
<summary>
权重公式
</summary>
</member>
<member name="T:Performance.EntityModels.rep_group"> <member name="T:Performance.EntityModels.rep_group">
<summary> <summary>
......
...@@ -91,6 +91,7 @@ public enum JobType ...@@ -91,6 +91,7 @@ public enum JobType
提取数据 = 2, 提取数据 = 2,
报表 = 3, 报表 = 3,
自定义抽取 = 4, 自定义抽取 = 4,
每日汇报表汇总 = 5,
} }
public enum Status public enum Status
{ {
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.DtoModels
{
public class StatisticsInfoDto
{
public int StatisticsID { get; set; }
public int HospitalId { get; set; }
/// <summary>
/// 每月汇总表名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 报表对比 0 不允许对比 1 允许对比
/// </summary>
public int IsComparison { get; set; }
public List<StatisticsSelectionDto> Selections { get; set; }
}
public class StatisticsSelectionDto
{
public int SelectionID { get; set; }
public int? StatisticsID { get; set; }
/// <summary>
/// 条件标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 排序
/// </summary>
public decimal? Sort { get; set; }
/// <summary>
/// 控件名称
/// </summary>
public string InputName { get; set; }
/// <summary>
/// 控件类型(1:input框、2:radio单选、3:checkbox多选、4:select单选、5:select多选、6:自动补全单选、7:自动补全多选、10:日期区间)
/// </summary>
public string InputType { get; set; }
/// <summary>
/// 是否必填(1表示必填0表示非必填)
/// </summary>
public int? Required { get; set; }
/// <summary>
/// 数据集合
/// </summary>
public List<TitleValue> Options { get; set; }
}
public class StatisticsQuery
{
public int HospitalID { get; set; }
public int StatisticsID { get; set; }
/// <summary>
/// 结果返回用途 首次查询 0 用于比对 1 用于对比
/// </summary>
public int? IsComparison { get; set; }
public List<SelectionValues> Values { get; set; }
}
public class StatisticsQueryResultDto
{
/// <summary>
/// 结果返回用途 首次查询 0 用于比对 1 用于对比
/// </summary>
public int? IsComparison { get; set; }
public List<StatisticsColumn> Columns { get; set; }
public List<Dictionary<string, object>> Datas { get; set; }
}
public class StatisticsColumn
{
public StatisticsColumn()
{
ColumnName = "";
OrgColumnName = "";
Fixed = "";
ChildColumns = new List<StatisticsColumn>();
}
/// <summary>
/// 显示名
/// </summary>
public string ColumnName { get; set; }
/// <summary>
/// 原始名,对应到数据列
/// </summary>
public string OrgColumnName { get; set; }
/// <summary>
/// 固定
/// </summary>
public string Fixed { get; set; }
public List<StatisticsColumn> ChildColumns { get; set; }
}
}
...@@ -208,7 +208,11 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -208,7 +208,11 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<report_performance_person_tags> report_performance_person_tags { get; set; } public virtual DbSet<report_performance_person_tags> report_performance_person_tags { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<report_performance_tags> report_performance_tags { get; set; } public virtual DbSet<report_statistics> report_statistics { get; set; }
public virtual DbSet<report_statistics_selection> report_statistics_selection { get; set; }
public virtual DbSet<report_statistics_selection_record> report_statistics_selection_record { get; set; }
public virtual DbSet<report_statistics_store> report_statistics_store { get; set; }
public virtual DbSet<report_statistics_tree> report_statistics_tree { get; set; }
/// <summary> 科室核算结果 </summary> /// <summary> 科室核算结果 </summary>
public virtual DbSet<res_account> res_account { get; set; } public virtual DbSet<res_account> res_account { get; set; }
///// <summary> 医生科室核算结果 </summary> ///// <summary> 医生科室核算结果 </summary>
......
//-----------------------------------------------------------------------
// <copyright file=" report_performance_tags.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("report_statistics")]
public class report_statistics
{
[Key]
public int ID { get; set; }
public int? HospitalId { get; set; }
/// <summary>
/// 每月汇总表名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 报表对比 0 不允许对比 1 允许对比
/// </summary>
public int? IsComparison { get; set; }
/// <summary>
/// 汇总数值SQL
/// </summary>
public string TotalScript { get; set; }
///// <summary>
///// 占比SQL
///// </summary>
//public string ProportionScript { get; set; }
///// <summary>
///// 权重SQL
///// </summary>
//public string WeightScript { get; set; }
}
}
\ No newline at end of file
//-----------------------------------------------------------------------
// <copyright file=" report_statistics_selection.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("report_statistics_selection")]
public class report_statistics_selection
{
[Key]
public int ID { get; set; }
public int? StatisticsID { get; set; }
/// <summary>
/// 条件标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 排序
/// </summary>
public decimal? Sort { get; set; }
/// <summary>
/// 条件SQL语句
/// </summary>
public string Content { get; set; }
/// <summary>
/// 条件类型(1固定条件,2需要通过语句获取)
/// </summary>
public int Type { get; set; }
/// <summary>
/// 控件名称
/// </summary>
public string InputName { get; set; }
/// <summary>
/// 控件类型(1:input框、2:radio单选、3:checkbox多选、4:select单选、5:select多选、6:自动补全单选、7:自动补全多选、10:日期区间)
/// </summary>
public string InputType { get; set; }
/// <summary>
/// 是否必填(1表示必填0表示非必填)
/// </summary>
public int? Required { get; set; }
/// <summary>
/// 条件加载方式 1 立即加载 2 联动加载 3 自动补全
/// </summary>
public int LoadType { get; set; }
/// <summary>
/// 默认值类型(1 固定文本 2 动态结果第一项)
/// </summary>
public int? DefaultType { get; set; }
/// <summary>
/// 默认值文本
/// </summary>
public string DefaultValue { get; set; }
/// <summary>
/// 条件状态 1 正常 2 可用但不显示 3 不显示不可用 4 不可用但显示
/// </summary>
public int? State { get; set; }
}
}
\ No newline at end of file
//-----------------------------------------------------------------------
// <copyright file=" report_statistics_selection_record.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("report_statistics_selection_record")]
public class report_statistics_selection_record
{
[Key]
public int ID { get; set; }
public int? HospitalId { get; set; }
public int? StatisticsID { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateDate { get; set; }
/// <summary>
/// 最后修改时间
/// </summary>
public DateTime? UpdateDate { get; set; }
/// <summary>
/// 自定义名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 条件内容
/// </summary>
public string Content { get; set; }
}
}
\ No newline at end of file
//-----------------------------------------------------------------------
// <copyright file=" report_statistics_store.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("report_statistics_store")]
public class report_statistics_store
{
[Key]
public int ID { get; set; }
/// <summary>
/// 医院ID
/// </summary>
public int? HospitalId { get; set; }
/// <summary>
/// 绩效ID
/// </summary>
public int? AllotID { get; set; }
/// <summary>
/// 年
/// </summary>
public int? Year { get; set; }
/// <summary>
/// 月
/// </summary>
public int? Month { get; set; }
/// <summary>
/// 年月
/// </summary>
public string YearMonth { get; set; }
/// <summary>
/// 核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 来源
/// </summary>
public string Source { get; set; }
/// <summary>
/// 类别
/// </summary>
public string Category { get; set; }
/// <summary>
/// 数值
/// </summary>
public decimal? Value { get; set; }
}
}
\ No newline at end of file
//-----------------------------------------------------------------------
// <copyright file=" report_statistics_tree.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("report_statistics_tree")]
public class report_statistics_tree
{
[Key]
public int ID { get; set; }
/// <summary>
/// 每月汇总表ID
/// </summary>
public int? StatisticsID { get; set; }
/// <summary>
/// 统计层级父级ID
/// </summary>
public int? ParentID { get; set; }
/// <summary>
/// 统计层级名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 汇总数值SQL
/// </summary>
public string TotalScript { get; set; }
/// <summary>
/// 汇总数值公式
/// </summary>
public string TotalFormula { get; set; }
/// <summary>
/// 占比公式
/// </summary>
public string ProportionFormula { get; set; }
/// <summary>
/// 权重公式
/// </summary>
public string WeightFormula { get; set; }
}
}
\ No newline at end of file
using Performance.EntityModels;
namespace Performance.Repository
{
public partial class PerforReportStatisticsRepository : PerforRepository<report_statistics>
{
public PerforReportStatisticsRepository(PerformanceDbContext context) : base(context)
{
}
}
}
using Performance.EntityModels;
namespace Performance.Repository
{
public partial class PerforReportStatisticsSelectionRecordRepository : PerforRepository<report_statistics_selection_record>
{
public PerforReportStatisticsSelectionRecordRepository(PerformanceDbContext context) : base(context)
{
}
}
}
using Performance.EntityModels;
namespace Performance.Repository
{
public partial class PerforReportStatisticsSelectionRepository : PerforRepository<report_statistics_selection>
{
public PerforReportStatisticsSelectionRepository(PerformanceDbContext context) : base(context)
{
}
}
}
using Performance.EntityModels;
namespace Performance.Repository
{
public partial class PerforReportStatisticsStoreRepository : PerforRepository<report_statistics_store>
{
public PerforReportStatisticsStoreRepository(PerformanceDbContext context) : base(context)
{
}
}
}
using Performance.EntityModels;
namespace Performance.Repository
{
public partial class PerforReportStatisticsTreeRepository : PerforRepository<report_statistics_tree>
{
public PerforReportStatisticsTreeRepository(PerformanceDbContext context) : base(context)
{
}
}
}
...@@ -494,6 +494,21 @@ public void GenerateReport(per_allot allot) ...@@ -494,6 +494,21 @@ public void GenerateReport(per_allot allot)
} }
/// <summary> /// <summary>
/// 绩效生成报表
/// </summary>
/// <param name="allot"></param>
public void GenerateReportStatistics(int allotId)
{
try
{
reportService.ExecProc("call proc_report_statistics(@allotId);", new { allotId });
}
catch (Exception ex)
{
_logger.LogError($"每月汇报表生成失败。 allotid: {allotId}。" + ex.Message);
}
}
/// <summary>
/// 验证科室核算单元、工号 /// 验证科室核算单元、工号
/// </summary> /// </summary>
/// <param name="allot"></param> /// <param name="allot"></param>
...@@ -587,19 +602,6 @@ public void Pigeonhole(per_allot allot) ...@@ -587,19 +602,6 @@ public void Pigeonhole(per_allot allot)
allot.PigeonholeDate = DateTime.Now; allot.PigeonholeDate = DateTime.Now;
allot.Remark = "归档"; allot.Remark = "归档";
_allotRepository.Update(allot); _allotRepository.Update(allot);
//if (_allotRepository.Update(allot))
//{
// var again = _againallotRepository.GetEntities(t => t.AllotID == allot.ID);
// if (again != null && again.Count > 0)
// {
// foreach (var item in again)
// {
// item.Remark = $"原状态:{item.States},归档更改状态";
// item.States = 5;
// _againallotRepository.Update(item);
// }
// }
//}
} }
/// <summary> /// <summary>
......
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