Commit cf4e6fe3 by lcx

更新实体类,提取时附带提取首页报表数据

parent ac936e83
......@@ -257,7 +257,6 @@ public ApiResponse CheckRecord([CustomizeValidator(RuleSet = "Delete"), FromBody
return new ApiResponse(ResponseType.OK, list);
}
/// <summary>
/// 绩效校验结果
/// </summary>
......@@ -323,7 +322,6 @@ public ApiResponse UpdateAllotShowFormula([FromBody] AllotRequest request)
return new ApiResponse(ResponseType.OK, result);
}
/// <summary>
/// 获取
/// </summary>
......@@ -340,6 +338,7 @@ public ApiResponse Reserved([FromBody] ReservedRequest request)
var reserveds = _allotService.GetReserved(request.HospitalId, request.Year, userid);
#region 格式转换
var result = reserveds?.Select(w => new
{
w.HospitalId,
......@@ -395,7 +394,8 @@ public ApiResponse Reserved([FromBody] ReservedRequest request)
+ (w.JulFee * (1 - w.JulRatio) ?? 0) + (w.AugFee * (1 - w.AugRatio) ?? 0) + (w.SepFee * (1 - w.SepRatio) ?? 0)
+ (w.OctFee * (1 - w.OctRatio) ?? 0) + (w.NovFee * (1 - w.NovRatio) ?? 0) + (w.DecFee * (1 - w.DecRatio) ?? 0),
});
#endregion
#endregion 格式转换
return new ApiResponse(ResponseType.OK, result);
}
......
......@@ -88,6 +88,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_workitem">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_workloadtype">
<summary> 工作量分类 </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.cof_workyear">
<summary> 工龄对应绩效系数配置 </summary>
</member>
......@@ -118,6 +121,12 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.ex_type">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.his_data">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.his_script">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.hos_personfee">
<summary> </summary>
</member>
......@@ -1520,6 +1529,36 @@
1. 药占比 2. CMI
</summary>
</member>
<member name="T:Performance.EntityModels.cof_workloadtype">
<summary>
工作量分类
</summary>
</member>
<member name="P:Performance.EntityModels.cof_workloadtype.ID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_workloadtype.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_workloadtype.SourceType">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.cof_workloadtype.Original">
<summary>
名称
</summary>
</member>
<member name="P:Performance.EntityModels.cof_workloadtype.Category">
<summary>
类别
</summary>
</member>
<member name="T:Performance.EntityModels.cof_workyear">
<summary>
工龄对应绩效系数配置
......@@ -1985,6 +2024,106 @@
来源
</summary>
</member>
<member name="T:Performance.EntityModels.his_data">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.AllotId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.Department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.PersonnelName">
<summary>
医生姓名
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.PersonnelNumber">
<summary>
人员工号
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.SourceType">
<summary>
来源
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.Category">
<summary>
费用类型
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.ItemName">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.Value">
<summary>
费用
</summary>
</member>
<member name="P:Performance.EntityModels.his_data.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="T:Performance.EntityModels.his_script">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.his_script.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.his_script.HospitalId">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.his_script.SourceType">
<summary>
来源
</summary>
</member>
<member name="P:Performance.EntityModels.his_script.Category">
<summary>
费用类型
</summary>
</member>
<member name="P:Performance.EntityModels.his_script.ExecScript">
<summary>
执行sql
</summary>
</member>
<member name="P:Performance.EntityModels.his_script.DatabaseType">
<summary>
数据库类型1、Sql Server 2、Orcale
</summary>
</member>
<member name="P:Performance.EntityModels.his_script.ConfigId">
<summary>
配置Id
</summary>
</member>
<member name="P:Performance.EntityModels.his_script.IsEnable">
<summary>
是否可用 1 可用 2 不可用
</summary>
</member>
<member name="T:Performance.EntityModels.hos_personfee">
<summary>
......@@ -3861,9 +4000,9 @@
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.Id">
<summary>
<summary>
</summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.HospitalId">
<summary>
......@@ -3917,7 +4056,7 @@
</member>
<member name="P:Performance.EntityModels.per_employee.UnitType">
<summary>
人员类别
核算单元类别
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.Attendance">
......@@ -3966,14 +4105,14 @@
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.CreateTime">
<summary>
<summary>
</summary>
</summary>
</member>
<member name="P:Performance.EntityModels.per_employee.CreateUser">
<summary>
<summary>
</summary>
</summary>
</member>
<member name="T:Performance.EntityModels.per_first">
<summary>
......@@ -4070,6 +4209,11 @@
年份
</summary>
</member>
<member name="P:Performance.EntityModels.report_global.Month">
<summary>
月份
</summary>
</member>
<member name="P:Performance.EntityModels.report_global.Value">
<summary>
......@@ -4290,24 +4434,29 @@
费用
</summary>
</member>
<member name="T:Performance.EntityModels.report_performance">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_performance.Id">
<summary>
<summary>
</summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_performance.HospitalId">
<summary>
医院Id
</summary>
</member>
<member name="P:Performance.EntityModels.report_performance.Year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_performance.Month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_performance.PersonnelName">
......@@ -4330,6 +4479,16 @@
医院科室
</summary>
</member>
<member name="P:Performance.EntityModels.report_performance.UnitType">
<summary>
核算单元类型
</summary>
</member>
<member name="P:Performance.EntityModels.report_performance.SourceType">
<summary>
统计分类
</summary>
</member>
<member name="P:Performance.EntityModels.report_performance.Category">
<summary>
统计大分类
......@@ -4456,19 +4615,19 @@
</summary>
</member>
<member name="P:Performance.EntityModels.rep_report.ID">
<summary>
<summary>
</summary>
</summary>
</member>
<member name="P:Performance.EntityModels.rep_report.ChartType">
<summary>
<summary>
</summary>
</summary>
</member>
<member name="P:Performance.EntityModels.rep_report.Sort">
<summary>
<summary>
</summary>
</summary>
</member>
<member name="P:Performance.EntityModels.rep_report.Content">
<summary>
......@@ -5140,6 +5299,11 @@
人均绩效(来自科室经济测算表)
</summary>
</member>
<member name="P:Performance.EntityModels.res_compute.Basics">
<summary>
基础绩效系数
</summary>
</member>
<member name="P:Performance.EntityModels.res_compute.Efficiency">
<summary>
效率绩效(需计算)
......
......@@ -74,18 +74,12 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
/// <summary> 上传excel文件校验配置 </summary>
public virtual DbSet<cof_check> cof_check { get; set; }
///// <summary> </summary>
//public virtual DbSet<cof_cmi> cof_cmi { get; set; }
/// <summary> 科室类型 </summary>
public virtual DbSet<cof_depttype> cof_depttype { get; set; }
/// <summary> 规模绩效、效率绩效计算系数配置 </summary>
public virtual DbSet<cof_director> cof_director { get; set; }
///// <summary> 工作量门诊药占比系数 </summary>
//public virtual DbSet<cof_drugprop> cof_drugprop { get; set; }
/// <summary> 药占比费用列头名称 </summary>
public virtual DbSet<cof_drugtype> cof_drugtype { get; set; }
......@@ -101,6 +95,9 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
/// <summary> </summary>
public virtual DbSet<cof_workitem> cof_workitem { get; set; }
/// <summary> 工作量分类 </summary>
public virtual DbSet<cof_workloadtype> cof_workloadtype { get; set; }
/// <summary> 工龄对应绩效系数配置 </summary>
public virtual DbSet<cof_workyear> cof_workyear { get; set; }
......@@ -132,6 +129,12 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<ex_type> ex_type { get; set; }
/// <summary> </summary>
public virtual DbSet<his_data> his_data { get; set; }
/// <summary> </summary>
public virtual DbSet<his_script> his_script { get; set; }
/// <summary> </summary>
public virtual DbSet<hos_personfee> hos_personfee { get; set; }
/// <summary> 科室核算导入信息 </summary>
......
//-----------------------------------------------------------------------
// <copyright file=" cof_workloadtype.cs">
// * FileName: 工作量分类.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 工作量分类
/// </summary>
[Table("cof_workloadtype")]
public class cof_workloadtype
{
/// <summary>
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> AllotID { get; set; }
/// <summary>
///
/// </summary>
public string SourceType { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Original { get; set; }
/// <summary>
/// 类别
/// </summary>
public string Category { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" his_data.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("his_data")]
public class his_data
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
///
/// </summary>
public int AllotId { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Department { get; set; }
/// <summary>
/// 医生姓名
/// </summary>
public string PersonnelName { get; set; }
/// <summary>
///人员工号
/// </summary>
public string PersonnelNumber { 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 string Value { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public Nullable<DateTime> CreateTime { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" his_script.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("his_script")]
public class his_script
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> HospitalId { get; set; }
/// <summary>
/// 来源
/// </summary>
public string SourceType { get; set; }
/// <summary>
/// 费用类型
/// </summary>
public string Category { get; set; }
/// <summary>
/// 执行sql
/// </summary>
public string ExecScript { get; set; }
/// <summary>
/// 数据库类型1、Sql Server 2、Orcale
/// </summary>
public int DatabaseType { get; set; }
/// <summary>
/// 配置Id
/// </summary>
public int ConfigId { get; set; }
/// <summary>
/// 是否可用 1 可用 2 不可用
/// </summary>
public int IsEnable { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" per_employee.cs">
// * FileName: 绩效人员表.cs
// * FileName: 绩效人员表.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
namespace Performance.EntityModels
{
/// <summary>
/// 绩效人员表
/// </summary>
[Table("per_employee")]
public class per_employee
public class per_employee
{
/// <summary>
///
///
/// </summary>
[Key]
public int Id { get; set; }
public int Id { get; set; }
/// <summary>
/// 医院Id
/// </summary>
public Nullable<int> HospitalId { get; set; }
/// <summary>
/// 绩效Id
/// </summary>
public Nullable<int> AllotId { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Department { get; set; }
/// <summary>
/// 姓名
/// </summary>
......@@ -60,74 +60,74 @@ public class per_employee
/// 正式/临聘
/// </summary>
public string JobCategory { get; set; }
/// <summary>
/// 职务
/// </summary>
public string Duty { get; set; }
/// <summary>
/// 职称
/// </summary>
public string JobTitle { get; set; }
/// <summary>
/// 人员类别
/// 核算单元类别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 出勤率
/// </summary>
public Nullable<decimal> Attendance { get; set; }
/// <summary>
/// 出勤天数
/// </summary>
public Nullable<int> AttendanceDay { get; set; }
/// <summary>
/// 核算人数
/// </summary>
public Nullable<decimal> PermanentStaff { get; set; }
/// <summary>
/// 效率人数
/// </summary>
public Nullable<decimal> EfficiencyNumber { get; set; }
/// <summary>
/// 参加工作时间
/// </summary>
public Nullable<DateTime> WorkTime { get; set; }
/// <summary>
/// 出生年月
/// </summary>
public Nullable<DateTime> BirthDate { get; set; }
/// <summary>
/// 年龄
/// </summary>
public Nullable<int> Age { get; set; }
/// <summary>
/// 预留比例
/// </summary>
public Nullable<decimal> ReservedRatio { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
///
///
/// </summary>
public Nullable<DateTime> CreateTime { get; set; }
/// <summary>
///
///
/// </summary>
public Nullable<int> CreateUser { get; set; }
}
......
//-----------------------------------------------------------------------
// <copyright file=" rep_report.cs">
// * FileName: 报表配置表.cs
// * FileName: 报表配置表.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
namespace Performance.EntityModels
{
/// <summary>
/// 报表配置表
/// </summary>
[Table("rep_report")]
public class rep_report
public class rep_report
{
/// <summary>
///
///
/// </summary>
[Key]
public int ID { get; set; }
public int ID { get; set; }
/// <summary>
///
///
/// </summary>
public Nullable<int> ChartType { get; set; }
/// <summary>
///
///
/// </summary>
public Nullable<int> Sort { get; set; }
/// <summary>
/// sql执行语句({wh}及{w}为占位符)
/// </summary>
public string Content { get; set; }
/// <summary>
/// 报表标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 查询方法名称
/// </summary>
public string QueryName { get; set; }
/// <summary>
/// 查询参数
/// </summary>
public string QueryArguments { get; set; }
/// <summary>
/// X轴标题
/// </summary>
public string XTitle { get; set; }
/// <summary>
/// X轴单位
/// </summary>
public string XUnit { get; set; }
/// <summary>
/// Y轴标题
/// </summary>
public string YTitle { get; set; }
/// <summary>
/// Y轴单位
/// </summary>
public string YUnit { get; set; }
/// <summary>
/// 值标题
/// </summary>
public string VTitle { get; set; }
/// <summary>
/// 值单位
/// </summary>
public string VUnit { get; set; }
/// <summary>
/// name标题
/// </summary>
public string NTitle { get; set; }
/// <summary>
/// name单位
/// </summary>
public string NUnit { get; set; }
/// <summary>
/// 图表说明
/// </summary>
public string Formula { get; set; }
/// <summary>
/// 1表示需要进行小于百分2的类型进行合并
/// </summary>
public Nullable<int> DataType { get; set; }
/// <summary>
/// 图标value过滤执值
/// </summary>
......
......@@ -37,6 +37,11 @@ public class report_global
public Nullable<int> Year { get; set; }
/// <summary>
/// 月份
/// </summary>
public Nullable<int> Month { get; set; }
/// <summary>
/// 值
/// </summary>
public Nullable<decimal> Value { get; set; }
......
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// <copyright file=" report_performance.cs">
// * FileName: .cs
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("report_performance")]
public class report_performance
public class report_performance
{
/// <summary>
///
///
/// </summary>
[Key]
public int Id { get; set; }
public int Id { get; set; }
/// <summary>
/// 医院Id
///
/// </summary>
public int HospitalId { get; set; }
/// <summary>
///
///
/// </summary>
public int Year { get; set; }
/// <summary>
///
///
/// </summary>
public int Month { get; set; }
/// <summary>
/// 人员信息
/// </summary>
public string PersonnelName { get; set; }
/// <summary>
/// 人员工号
/// </summary>
public string PersonnelNumber { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 医院科室
/// </summary>
public string Department { get; set; }
/// <summary>
/// 核算单元类型
/// </summary>
public string UnitType { 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> CurrentValue { get; set; }
/// <summary>
/// 上期
/// </summary>
public Nullable<decimal> LastIssueValue { get; set; }
/// <summary>
/// 同期
/// </summary>
public Nullable<decimal> SamePeriodValue { get; set; }
/// <summary>
/// 预算
/// </summary>
......
......@@ -92,6 +92,11 @@ public class res_compute
public Nullable<decimal> Avg { get; set; }
/// <summary>
/// 基础绩效系数
/// </summary>
public Nullable<decimal> Basics { get; set; }
/// <summary>
/// 效率绩效(需计算)
/// </summary>
public Nullable<decimal> Efficiency { get; set; }
......
//-----------------------------------------------------------------------
// <copyright file=" cof_workloadtype.cs">
// * FileName: cof_workloadtype.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// cof_workloadtype Repository
/// </summary>
public partial class PerforCofworkloadtypeRepository : PerforRepository<cof_workloadtype>
{
public PerforCofworkloadtypeRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" his_data.cs">
// * FileName: his_data.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// his_data Repository
/// </summary>
public partial class PerforHisdataRepository : PerforRepository<his_data>
{
public PerforHisdataRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" his_script.cs">
// * FileName: his_script.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// his_script Repository
/// </summary>
public partial class PerforHisscriptRepository : PerforRepository<his_script>
{
public PerforHisscriptRepository(PerformanceDbContext context) : base(context)
{
}
}
}
......@@ -4,13 +4,7 @@
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore;
using Performance.EntityModels;
using Performance.Infrastructure.Models;
using System.Linq.Dynamic.Core;
namespace Performance.Repository
{
......@@ -19,21 +13,8 @@ namespace Performance.Repository
/// </summary>
public partial class PerforReportperformanceRepository : PerforRepository<report_performance>
{
private readonly PerformanceDbContext _db;
public PerforReportperformanceRepository(PerformanceDbContext context) : base(context)
{
_db = context;
}
public PageList<report_performance> GetAllPaging(Expression<Func<report_performance, bool>> expression, int pageNumber, int pageSize, string orderby = null)
{
IQueryable<report_performance> queryableAuthors = _db.report_performance.AsNoTracking().Where(expression);
if (!string.IsNullOrEmpty(orderby))
queryableAuthors = queryableAuthors.OrderBy(orderby);
return PageList<report_performance>.Create(queryableAuthors, pageNumber, pageSize);
}
}
}
......@@ -13,7 +13,7 @@ namespace Performance.Repository
/// </summary>
public partial class PerforCustscriptRepository : PerforRepository<cust_script>
{
public PerforCustscriptRepository(PerformanceDbContext context) : base(context)
public PerforCustscriptRepository(PerformanceDbContext context) : base(context)
{
}
}
......
......@@ -506,7 +506,7 @@ public List<TitleValue> ExtractScheme(int hospitalId, List<int> executeType, int
Expression<Func<ex_type, bool>> exp = t => new List<int> { 0, hospitalId }.Contains(t.HospitalId);
if (executeType.FirstOrDefault() == 1)
exp = exp.And(t => t.Source == (int)SheetType.Income);
else if (sheetType != null && !new int[] { 0, (int)SheetType.Income }.Contains(sheetType.Value))
else if (sheetType.HasValue && sheetType.Value != 0)
exp = exp.And(t => t.Source == sheetType);
else
exp = exp.And(t => t.Source != (int)SheetType.Income);
......
......@@ -20,6 +20,8 @@ public class DictionaryService : IAutoInjection
private readonly PerforHospitalconfigRepository hospitalconfigRepository;
private readonly PerforExtypeRepository extypeRepository;
private readonly PerforExscriptRepository exscriptRepository;
private readonly PerforHisdataRepository hisdataRepository;
private readonly PerforHisscriptRepository hisscriptRepository;
public DictionaryService(
ILogger<DictionaryService> logger,
......@@ -28,7 +30,9 @@ public class DictionaryService : IAutoInjection
PerforPeremployeeRepository peremployeeRepository,
PerforHospitalconfigRepository hospitalconfigRepository,
PerforExtypeRepository extypeRepository,
PerforExscriptRepository exscriptRepository
PerforExscriptRepository exscriptRepository,
PerforHisdataRepository hisdataRepository,
PerforHisscriptRepository hisscriptRepository
)
{
this.logger = logger;
......@@ -38,6 +42,8 @@ PerforExscriptRepository exscriptRepository
this.hospitalconfigRepository = hospitalconfigRepository;
this.extypeRepository = extypeRepository;
this.exscriptRepository = exscriptRepository;
this.hisdataRepository = hisdataRepository;
this.hisscriptRepository = hisscriptRepository;
}
public void Handler(int hospitalId, per_allot allot, string groupName, bool isSingle)
......@@ -48,20 +54,28 @@ public void Handler(int hospitalId, per_allot allot, string groupName, bool isSi
if (configs == null || !configs.Any()) throw new Exception("医院未配置绩效抽取信息");
var types = extypeRepository.GetEntities(t => t.HospitalId == hospitalId && new int[] { 2 }.Contains(t.Source));
if (types == null || !types.Any()) return;
logService.ReturnTheLog(allot.ID, groupName, 2, "提取数据", $"提取人员信息数据", isSingle: isSingle);
var scripts = exscriptRepository.GetEntities(t => types.Select(s => s.Id).Contains(t.TypeId) && t.IsEnable == 1);
if (scripts != null && scripts.Any())
if (types != null && types.Any())
{
if (types.Any(t => t.Source == (int)SheetType.Employee)) //人员字典抽取配置
logService.ReturnTheLog(allot.ID, groupName, 2, "提取数据", $"提取人员信息数据", isSingle: isSingle);
var scripts = exscriptRepository.GetEntities(t => types.Select(s => s.Id).Contains(t.TypeId) && t.IsEnable == 1);
if (scripts != null && scripts.Any())
{
var typeIds = types.Where(t => t.Source == (int)SheetType.Employee).Select(t => t.Id);
var script = scripts.FirstOrDefault(t => typeIds.Contains(t.TypeId));
if (script == null) return;
Employee(allot, configs.FirstOrDefault(t => t.Id == script.ConfigId), script.ExecScript);
if (types.Any(t => t.Source == (int)SheetType.Employee)) //人员字典抽取配置
{
var typeIds = types.Where(t => t.Source == (int)SheetType.Employee).Select(t => t.Id);
var script = scripts.FirstOrDefault(t => typeIds.Contains(t.TypeId));
if (script != null)
Employee(allot, configs.FirstOrDefault(t => t.Id == script.ConfigId), script.ExecScript);
}
}
}
var hisScrips = hisscriptRepository.GetEntities(t => t.HospitalId == hospitalId);
if (hisScrips == null || !hisScrips.Any()) return;
foreach (var item in hisScrips)
{
HisData(allot, configs.FirstOrDefault(t => t.Id == item.ConfigId), item);
}
}
catch (Exception ex)
{
......@@ -98,6 +112,36 @@ private void Employee(per_allot allot, sys_hospitalconfig config, string sql)
}
}
private void HisData(per_allot allot, sys_hospitalconfig config, his_script script)
{
try
{
if (config == null || string.IsNullOrEmpty(script.ExecScript)) return;
var data = queryService.QueryData<his_data>(config, allot, script.ExecScript);
if (data == null || !data.Any()) return;
var hisdata = hisdataRepository.GetEntities(t => t.AllotId == allot.ID && t.SourceType == script.SourceType && t.Category == script.Category);
if (hisdata != null && hisdata.Any())
{
hisdataRepository.RemoveRange(hisdata.ToArray());
}
data.ToList().ForEach(t =>
{
t.AllotId = allot.ID;
t.SourceType = script.SourceType;
t.Category = script.Category;
t.CreateTime = DateTime.Now;
});
hisdataRepository.AddRange(data.ToArray());
}
catch (Exception ex)
{
logger.LogError("获取his_data时发生异常:" + ex.ToString());
}
}
private void Department()
{
}
......
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