Commit 8565ffa9 by 李承祥

Merge branch 'develop' of http://192.168.0.110:8880/zry/performance into develop

# Conflicts:
#	performance/Performance.Services/PerExcelService/PerExcelService.cs
parents f49b1c57 c5bdeb1a
...@@ -98,6 +98,11 @@ public AutoMapperConfigs() ...@@ -98,6 +98,11 @@ public AutoMapperConfigs()
CreateMap<PerDataAccountBaisc, im_accountbasic>(); CreateMap<PerDataAccountBaisc, im_accountbasic>();
CreateMap<PerDataAccountDoctor, res_accountdoctor>(); CreateMap<PerDataAccountDoctor, res_accountdoctor>();
CreateMap<PerDataAccountNurse, res_accountnurse>(); CreateMap<PerDataAccountNurse, res_accountnurse>();
CreateMap<res_accountdoctor, ComputeSource>();
CreateMap<res_accountnurse, ComputeSource>();
CreateMap<im_employee, ComputeEmployee>();
CreateMap<ComputeResult, res_compute>();
} }
} }
} }
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class ComputeEmployee
{
/// <summary>
/// 科室类别(例如 医技科室 临床科室 其他科室)
/// </summary>
public string AccountType { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 科室名称
/// </summary>
public string Department { get; set; }
/// <summary>
/// 绩效基数核算参考对象
/// </summary>
public string FitPeople { get; set; }
/// <summary>
/// 核算基数
/// </summary>
public Nullable<decimal> BasicNorm { get; set; }
/// <summary>
/// 医生姓名
/// </summary>
public string DoctorName { get; set; }
/// <summary>
/// 职称
/// </summary>
public string JobTitle { get; set; }
/// <summary>
/// 岗位系数
/// </summary>
public Nullable<decimal> PostCoefficient { get; set; }
/// <summary>
/// 参加工作时间
/// </summary>
public Nullable<DateTime> WorkTime { get; set; }
/// <summary>
/// 考核得分率
/// </summary>
public Nullable<decimal> ScoreAverageRate { get; set; }
/// <summary>
/// 出勤率
/// </summary>
public Nullable<decimal> Attendance { get; set; }
/// <summary>
/// 核算单元医生数
/// </summary>
public Nullable<int> PeopleNumber { get; set; }
/// <summary>
/// 工作量绩效
/// </summary>
public Nullable<decimal> Workload { get; set; }
/// <summary>
/// 其他绩效
/// </summary>
public Nullable<decimal> OtherPerfor { get; set; }
/// <summary>
/// 医院奖罚
/// </summary>
public Nullable<decimal> Punishment { get; set; }
/// <summary>
/// 调节系数
/// </summary>
public Nullable<decimal> Adjust { get; set; }
/// <summary>
/// 发放系数
/// </summary>
public Nullable<decimal> Grant { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class ComputeResult
{
/// <summary>
/// 科室类别(例如 医技科室 临床科室 其他科室)
/// </summary>
public string AccountType { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 绩效基数核算参考对象
/// </summary>
public string FitPeople { get; set; }
/// <summary>
/// 人员姓名
/// </summary>
public string EmployeeName { get; set; }
/// <summary>
/// 绩效合计(来自科室经济测算表)
/// </summary>
public Nullable<decimal> PerforTotal { get; set; }
/// <summary>
/// 核算单元医生数量(来自科室经济测算表)
/// </summary>
public Nullable<decimal> Number { get; set; }
/// <summary>
/// 人均绩效(来自科室经济测算表)
/// </summary>
public Nullable<decimal> Avg { get; set; }
/// <summary>
/// 效率绩效(需计算)
/// </summary>
public Nullable<decimal> Efficiency { get; set; }
/// <summary>
/// 规模绩效(需计算)
/// </summary>
public Nullable<decimal> Scale { get; set; }
/// <summary>
/// 岗位系数
/// </summary>
public Nullable<decimal> PostCoefficient { get; set; }
/// <summary>
/// 发放系数(来自人员名单)
/// </summary>
public Nullable<decimal> Grant { get; set; }
/// <summary>
/// 应发管理绩效(需计算)
/// </summary>
public Nullable<decimal> ShouldGiveFee { get; set; }
/// <summary>
/// 绩效合计(需计算)
/// </summary>
public Nullable<decimal> PerforSumFee { get; set; }
/// <summary>
/// 考核对分率(来自人员名单)
/// </summary>
public Nullable<decimal> ScoreAverageRate { get; set; }
/// <summary>
/// 出勤率(来自人员名单)
/// </summary>
public Nullable<decimal> Attendance { get; set; }
/// <summary>
/// 医院奖罚(来自人员名单)
/// </summary>
public Nullable<decimal> Punishment { get; set; }
/// <summary>
/// 其他绩效(来自人员名单)
/// </summary>
public Nullable<decimal> OtherPerfor { get; set; }
/// <summary>
/// 实发绩效(需计算)
/// </summary>
public Nullable<decimal> GiveFee { get; set; }
/// <summary>
/// 参加工作时间(来自人员名单)
/// </summary>
public Nullable<DateTime> WorkTime { get; set; }
/// <summary>
/// 绩效基础金额(计算)
/// </summary>
public Nullable<decimal> BaiscNormValue { get; set; }
/// <summary>
/// 年资系数(来自人员名单)
/// </summary>
public Nullable<decimal> WorkYear { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class ComputeSource
{
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 核算单元医生数量
/// </summary>
public Nullable<decimal> Number { get; set; }
/// <summary>
/// 医生基础系数
/// </summary>
public Nullable<decimal> BasicFactor { get; set; }
/// <summary>
/// 倾斜系数
/// </summary>
public Nullable<decimal> SlopeFactor { get; set; }
/// <summary>
/// 其他绩效1
/// </summary>
public Nullable<decimal> OtherPerfor1 { get; set; }
/// <summary>
/// 其他绩效2
/// </summary>
public Nullable<decimal> OtherPerfor2 { get; set; }
/// <summary>
/// 医院奖罚
/// </summary>
public Nullable<decimal> Extra { get; set; }
/// <summary>
/// 考核对分率
/// </summary>
public Nullable<decimal> ScoringAverage { get; set; }
/// <summary>
/// 调节系数
/// </summary>
public Nullable<decimal> AdjustFactor { get; set; }
/// <summary>
/// 科室业绩
/// </summary>
public Nullable<decimal> Income { get; set; }
/// <summary>
/// 业绩绩效
/// </summary>
public Nullable<decimal> PerforFee { get; set; }
/// <summary>
/// 工作量绩效
/// </summary>
public Nullable<decimal> WorkloadFee { get; set; }
/// <summary>
/// 绩效合计
/// </summary>
public Nullable<decimal> PerforTotal { get; set; }
/// <summary>
/// 人均绩效
/// </summary>
public Nullable<decimal> Avg { get; set; }
/// <summary>
/// 实发绩效
/// </summary>
public Nullable<decimal> GiveFee { get; set; }
}
}
...@@ -45,27 +45,36 @@ public enum SheetType ...@@ -45,27 +45,36 @@ public enum SheetType
} }
/// <summary> /// <summary>
/// 职位归类 /// 绩效类型
/// </summary> /// </summary>
public enum EmpolyeeType public enum PerformanceType
{ {
/// <summary> 院领导 </summary> /// <summary> 没有绩效 </summary>
[Description("院领导")] [Description("没有绩效")]
TopManage = 1, Null = 0,
/// <summary> 行政中层 </summary>
[Description("行政中层")] /// <summary> 科室主任人均绩效 </summary>
MiddleManage = 2, [Description("科室主任人均绩效")]
/// <summary> 行政工勤 </summary> Director = 1,
[Description("行政工勤")] /// <summary> 科室副主任人均绩效 </summary>
LogisticsWorkers = 3, [Description("科室副主任人均绩效")]
/// <summary> 临床科室主任 </summary> DeputyDirector = 2,
[Description("临床科室主任")] /// <summary> 科室护士长人均绩效 </summary>
Director = 4, [Description("科室护士长人均绩效")]
/// <summary> 临床科室副主任 </summary> Nurse = 3,
[Description("临床科室副主任")]
DeputyDirector = 5, /// <summary> 临床科室主任人均绩效 (绩效标准取 科室主任人均绩效) </summary>
/// <summary> 临床科室护士长 </summary> [Description("临床科室主任人均绩效")]
[Description("临床科室护士长")] ReferenceDirector = 4,
Nurse = 6, /// <summary> 临床科室中层人均绩效 (绩效标准取 科室主任/护士长/科室副主任/医技主任 平均值) </summary>
[Description("临床科室中层人均绩效")]
ReferenceDirectorAvg = 5,
/// <summary> 临床科室护士人均绩效的95% (绩效标准取 护理组临床科室单元核算表 平均值) </summary>
[Description("临床科室护士人均绩效的95%")]
ReferenceNurseAvg95 = 6,
/// <summary> 临床科室护士长人均绩效 (绩效标准取 护士长 平均值)</summary>
[Description("临床科室护士长人均绩效")]
ReferenceHeadNurse = 7,
} }
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_user.cs"> // <copyright file=" sys_user.cs">
// * FileName: sys_user.cs // * FileName: sys_user.cs
// * history : 2019-03-05 14:05:41 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_user Entity Model /// sys_user Entity Model
/// </summary> /// </summary>
public class sys_user [Table("sys_user")]
public class sys_user
{ {
/// <summary> /// <summary>
/// ///
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" cof_director.cs"> // <copyright file=" cof_director.cs">
// * FileName: cof_director.cs // * FileName: cof_director.cs
// * history : 2019-03-22 15:48:50 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// cof_director Entity Model /// cof_director Entity Model
/// </summary> /// </summary>
public class cof_director [Table("cof_director")]
public class cof_director
{ {
/// <summary> /// <summary>
/// ///
...@@ -24,7 +26,7 @@ public class cof_director ...@@ -24,7 +26,7 @@ public class cof_director
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" cof_drugprop.cs"> // <copyright file=" cof_drugprop.cs">
// * FileName: cof_drugprop.cs // * FileName: cof_drugprop.cs
// * history : 2019-03-20 16:16:15 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// cof_drugprop Entity Model /// cof_drugprop Entity Model
/// </summary> /// </summary>
public class cof_drugprop [Table("cof_drugprop")]
public class cof_drugprop
{ {
/// <summary> /// <summary>
/// ///
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" cof_income.cs"> // <copyright file=" cof_income.cs">
// * FileName: cof_income.cs // * FileName: cof_income.cs
// * history : 2019-03-21 15:03:58 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// cof_income Entity Model /// cof_income Entity Model
/// </summary> /// </summary>
[Table("cof_income")]
public class cof_income public class cof_income
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
...@@ -29,12 +31,12 @@ public class cof_income ...@@ -29,12 +31,12 @@ public class cof_income
/// 关键字匹配 /// 关键字匹配
/// </summary> /// </summary>
public string SheetNameKeyword { get; set; } public string SheetNameKeyword { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public string UnitName { get; set; } public string UnitName { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" dic_position.cs"> // <copyright file=" cof_position.cs">
// * FileName: dic_position.cs // * FileName: cof_position.cs
// * history : 2019-03-22 15:48:50 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// dic_position Entity Model /// cof_position Entity Model
/// </summary> /// </summary>
[Table("cof_position")]
public class cof_position public class cof_position
{ {
/// <summary> /// <summary>
...@@ -21,7 +23,7 @@ public class cof_position ...@@ -21,7 +23,7 @@ public class cof_position
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// 绩效id ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
...@@ -39,7 +41,7 @@ public class cof_position ...@@ -39,7 +41,7 @@ public class cof_position
/// 额外补偿系数 /// 额外补偿系数
/// </summary> /// </summary>
public Nullable<decimal> ExtraFactor { get; set; } public Nullable<decimal> ExtraFactor { get; set; }
/// <summary> /// <summary>
/// 职位类别 1 普通类别 2 基础绩效来源 /// 职位类别 1 普通类别 2 基础绩效来源
/// </summary> /// </summary>
......
//-----------------------------------------------------------------------
// <copyright file=" cof_income.cs">
// * FileName: cof_workyear.cs
// * history : 2019-03-25 13:10:58
// </copyright>
//
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> [Table("cof_workyear")]
/// cof_workyear Entity Model
/// </summary>
public class cof_workyear public class cof_workyear
{ {
/// <summary> /// <summary>
/// ID ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// 绩效id ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// /// >
/// </summary> /// </summary>
public Nullable<decimal> MaxRange { get; set; } public Nullable<decimal> MaxRange { get; set; }
/// <summary> /// <summary>
/// /// <=
/// </summary> /// </summary>
public Nullable<decimal> MinRange { get; set; } public Nullable<decimal> MinRange { get; set; }
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" im_accountbasic.cs"> // <copyright file=" im_accountbasic.cs">
// * FileName: im_accountbasic.cs // * FileName: im_accountbasic.cs
// * history : 2019-03-20 09:47:33 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// im_accountbasic Entity Model /// im_accountbasic Entity Model
/// </summary> /// </summary>
public class im_accountbasic [Table("im_accountbasic")]
public class im_accountbasic
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" im_data.cs"> // <copyright file=" im_data.cs">
// * FileName: im_data.cs // * FileName: im_data.cs
// * history : 2019-03-14 10:25:59 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// im_data Entity Model /// im_data Entity Model
/// </summary> /// </summary>
public class im_data [Table("im_data")]
public class im_data
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> SheetID { get; set; } public Nullable<int> SheetID { get; set; }
/// <summary> /// <summary>
/// 核算单元类别 1 医生组 2护理组 /// 核算单元类别 1 医生组 2护理组
/// </summary> /// </summary>
public Nullable<int> UnitType { get; set; } public Nullable<int> UnitType { get; set; }
/// <summary> /// <summary>
/// 行号 /// 行号
/// </summary> /// </summary>
public Nullable<int> RowNumber { get; set; } public Nullable<int> RowNumber { get; set; }
/// <summary> /// <summary>
/// 核算单元名称 /// 核算单元名称
/// </summary> /// </summary>
public string AccountingUnit { get; set; } public string AccountingUnit { get; set; }
/// <summary> /// <summary>
/// 科室名称 /// 科室名称
/// </summary> /// </summary>
public string Department { get; set; } public string Department { get; set; }
/// <summary> /// <summary>
/// 列头类型名称 /// 列头类型名称
/// </summary> /// </summary>
public string TypeName { get; set; } public string TypeName { get; set; }
/// <summary> /// <summary>
/// 单元格value /// 单元格value
/// </summary> /// </summary>
public Nullable<decimal> CellValue { get; set; } public Nullable<decimal> CellValue { get; set; }
/// <summary> /// <summary>
/// 1 加 2 减 3 乘 /// 1 加 2 减 3 乘
/// </summary> /// </summary>
public Nullable<int> ComputRule { get; set; } public Nullable<int> ComputRule { get; set; }
/// <summary> /// <summary>
/// 1 汇总 2原始数据 /// 1 汇总 2原始数据
/// </summary> /// </summary>
public Nullable<int> IsTotal { get; set; } public Nullable<int> IsTotal { get; set; }
/// <summary> /// <summary>
/// 是否带入系数计算 1 带入 2 不带入 /// 是否带入系数计算 1 带入 2 不带入
/// </summary> /// </summary>
public Nullable<int> IsFactor { get; set; } public Nullable<int> IsFactor { get; set; }
/// <summary> /// <summary>
/// 系数值 /// 系数值
/// </summary> /// </summary>
public Nullable<decimal> FactorValue { get; set; } public Nullable<decimal> FactorValue { get; set; }
/// <summary> /// <summary>
/// 单元格注释 /// 单元格注释
/// </summary> /// </summary>
public string Annotation { get; set; } public string Annotation { get; set; }
/// <summary> /// <summary>
/// 单元格备注 /// 单元格备注
/// </summary> /// </summary>
public string Remark { get; set; } public string Remark { get; set; }
/// <summary> /// <summary>
/// SignID ///
/// </summary> /// </summary>
public string SignID { get; set; } public string SignID { get; set; }
} }
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" im_employee.cs"> // <copyright file=" im_employee.cs">
// * FileName: im_employee.cs // * FileName: im_employee.cs
// * history : 2019-03-08 16:39:35 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// im_employee Entity Model /// im_employee Entity Model
/// </summary> /// </summary>
public class im_employee [Table("im_employee")]
public class im_employee
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// sheet页id /// sheet页id
/// </summary> /// </summary>
public Nullable<int> SheetID { get; set; } public Nullable<int> SheetID { get; set; }
/// <summary> /// <summary>
/// 科室类别(例如 医技科室 临床科室 其他科室) /// 科室类别(例如 医技科室 临床科室 其他科室)
/// </summary> /// </summary>
public string AccountType { get; set; } public string AccountType { get; set; }
/// <summary> /// <summary>
/// 核算单元 /// 核算单元
/// </summary> /// </summary>
public string AccountingUnit { get; set; } public string AccountingUnit { get; set; }
/// <summary> /// <summary>
/// 科室名称 /// 科室名称
/// </summary> /// </summary>
public string Department { get; set; } public string Department { get; set; }
/// <summary> /// <summary>
/// 绩效基数核算参考对象 /// 绩效基数核算参考对象
/// </summary> /// </summary>
public string FitPeople { get; set; } public string FitPeople { get; set; }
/// <summary> /// <summary>
/// 医生姓名 /// 医生姓名
/// </summary> /// </summary>
public string DoctorName { get; set; } public string DoctorName { get; set; }
/// <summary> /// <summary>
/// 职称 /// 职称
/// </summary> /// </summary>
public string JobTitle { get; set; } public string JobTitle { get; set; }
/// <summary> /// <summary>
/// 岗位系数 /// 岗位系数
/// </summary> /// </summary>
public Nullable<decimal> PostCoefficient { get; set; } public Nullable<decimal> PostCoefficient { get; set; }
/// <summary> /// <summary>
/// 参加工作时间 /// 参加工作时间
/// </summary> /// </summary>
public Nullable<DateTime> WorkTime { get; set; } public Nullable<DateTime> WorkTime { get; set; }
/// <summary> /// <summary>
/// 考核得分率 /// 考核得分率
/// </summary> /// </summary>
public Nullable<decimal> ScoreAverageRate { get; set; } public Nullable<decimal> ScoreAverageRate { get; set; }
/// <summary> /// <summary>
/// 出勤率 /// 出勤率
/// </summary> /// </summary>
public Nullable<decimal> Attendance { get; set; } public Nullable<decimal> Attendance { get; set; }
/// <summary> /// <summary>
/// 核算单元医生数 /// 核算单元医生数
/// </summary> /// </summary>
public Nullable<int> PeopleNumber { get; set; } public Nullable<int> PeopleNumber { get; set; }
/// <summary> /// <summary>
/// 工作量绩效 /// 工作量绩效
/// </summary> /// </summary>
public Nullable<decimal> Workload { get; set; } public Nullable<decimal> Workload { get; set; }
/// <summary> /// <summary>
/// 其他绩效 /// 其他绩效
/// </summary> /// </summary>
public Nullable<decimal> OtherPerfor { get; set; } public Nullable<decimal> OtherPerfor { get; set; }
/// <summary> /// <summary>
/// 医院奖罚 /// 医院奖罚
/// </summary> /// </summary>
public Nullable<decimal> Punishment { get; set; } public Nullable<decimal> Punishment { get; set; }
/// <summary> /// <summary>
/// 调节系数 /// 调节系数
/// </summary> /// </summary>
public Nullable<decimal> Adjust { get; set; } public Nullable<decimal> Adjust { get; set; }
/// <summary> /// <summary>
/// 发放系数 /// 发放系数
/// </summary> /// </summary>
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" im_header.cs"> // <copyright file=" im_header.cs">
// * FileName: im_header.cs // * FileName: im_header.cs
// * history : 2019-03-14 10:25:59 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// im_header Entity Model /// im_header Entity Model
/// </summary> /// </summary>
public class im_header [Table("im_header")]
public class im_header
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
...@@ -59,19 +61,20 @@ public class im_header ...@@ -59,19 +61,20 @@ public class im_header
/// 合并列 /// 合并列
/// </summary> /// </summary>
public Nullable<int> MergeCell { get; set; } public Nullable<int> MergeCell { get; set; }
/// <summary>
/// 1 汇总 2原始数据
/// </summary>
public Nullable<int> IsTotal { get; set; }
/// <summary> /// <summary>
/// 单元格内容 /// 单元格内容
/// </summary> /// </summary>
public string CellValue { get; set; } public string CellValue { get; set; }
/// <summary> /// <summary>
/// SignID ///
/// </summary> /// </summary>
public string SignID { get; set; } public string SignID { get; set; }
/// <summary>
/// 1 汇总 2原始数据
/// </summary>
public Nullable<int> IsTotal { get; set; }
} }
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_allot.cs"> // <copyright file=" per_allot.cs">
// * FileName: sys_allot.cs // * FileName: per_allot.cs
// * history : 2019-03-06 16:43:26 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_allot Entity Model /// per_allot Entity Model
/// </summary> /// </summary>
public class per_allot [Table("per_allot")]
public class per_allot
{ {
/// <summary> /// <summary>
/// ID /// ID
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// 医院ID /// 医院ID
/// </summary> /// </summary>
public int HospitalId { get; set; } public int HospitalId { get; set; }
/// <summary> /// <summary>
/// CreateUser ///
/// </summary> /// </summary>
public int? CreateUser { get; set; } public Nullable<int> CreateUser { get; set; }
/// <summary>
/// 绩效统计时间
/// </summary>
public Nullable<DateTime> CreateDate { get; set; }
/// <summary> /// <summary>
/// 绩效发放年 /// 绩效发放年
/// </summary> /// </summary>
public int Year { get; set; } public int Year { get; set; }
/// <summary> /// <summary>
/// 绩效发放月 /// 绩效发放月
/// </summary> /// </summary>
public int Month { get; set; } public int Month { get; set; }
/// <summary> /// <summary>
/// 绩效发放总金额 /// 绩效发放总金额
/// </summary> /// </summary>
public Nullable<decimal> AllotFee { get; set; } public Nullable<decimal> AllotFee { get; set; }
/// <summary>
/// 绩效统计时间
/// </summary>
public Nullable<DateTime> CreateDate { get; set; }
/// <summary> /// <summary>
/// 文件路径 /// 文件路径
/// </summary> /// </summary>
public string Path { get; set; } public string Path { get; set; }
/// <summary> /// <summary>
/// 上传日期 /// 上传日期
/// </summary> /// </summary>
public Nullable<DateTime> UploadDate { get; set; } public Nullable<DateTime> UploadDate { get; set; }
/// <summary> /// <summary>
/// 0 数据未上传 1 数据已上传 2 数据解析中 3 数据解析成功 4 绩效结果生成中 5绩效结果解析成功 6 归档 /// 0 数据未上传 1 数据已上传 2 数据解析中 3 数据解析成功 4 绩效结果生成中 5绩效结果解析成功 6 归档
/// </summary> /// </summary>
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" im_sheet.cs"> // <copyright file=" per_sheet.cs">
// * FileName: im_sheet.cs // * FileName: per_sheet.cs
// * history : 2019-03-14 10:25:59 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// im_sheet Entity Model /// per_sheet Entity Model
/// </summary> /// </summary>
public class per_sheet [Table("per_sheet")]
public class per_sheet
{ {
/// <summary> /// <summary>
/// ID /// ID
...@@ -34,9 +36,9 @@ public class per_sheet ...@@ -34,9 +36,9 @@ public class per_sheet
/// ///
/// </summary> /// </summary>
public Nullable<int> SheetType { get; set; } public Nullable<int> SheetType { get; set; }
/// <summary> /// <summary>
/// Դ 1 excel 2 /// 数据来源 1 excel 导入 2 计算
/// </summary> /// </summary>
public Nullable<int> Source { get; set; } public Nullable<int> Source { get; set; }
} }
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" im_accountdoctor.cs"> // <copyright file=" res_accountdoctor.cs">
// * FileName: im_accountdoctor.cs // * FileName: res_accountdoctor.cs
// * history : 2019-03-20 09:47:33 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// im_accountdoctor Entity Model /// res_accountdoctor Entity Model
/// </summary> /// </summary>
public class res_accountdoctor [Table("res_accountdoctor")]
public class res_accountdoctor
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" im_accountnurse.cs"> // <copyright file=" res_accountnurse.cs">
// * FileName: im_accountnurse.cs // * FileName: res_accountnurse.cs
// * history : 2019-03-20 09:47:33 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// im_accountnurse Entity Model /// res_accountnurse Entity Model
/// </summary> /// </summary>
public class res_accountnurse [Table("res_accountnurse")]
public class res_accountnurse
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" res_baiscnorm.cs"> // <copyright file=" res_baiscnorm.cs">
// * FileName: res_baiscnorm.cs // * FileName: res_baiscnorm.cs
// * history : 2019-03-22 15:48:50 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// res_baiscnorm Entity Model /// res_baiscnorm Entity Model
/// </summary> /// </summary>
public class res_baiscnorm [Table("res_baiscnorm")]
public class res_baiscnorm
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> SheetID { get; set; } public Nullable<int> SheetID { get; set; }
/// <summary> /// <summary>
/// 绩效核算人群 /// 绩效核算人群
/// </summary> /// </summary>
...@@ -38,16 +40,16 @@ public class res_baiscnorm ...@@ -38,16 +40,16 @@ public class res_baiscnorm
/// <summary> /// <summary>
/// 绩效总额 /// 绩效总额
/// </summary> /// </summary>
public string TotelValue { get; set; } public Nullable<decimal> TotelValue { get; set; }
/// <summary> /// <summary>
/// 人均绩效 /// 人均绩效
/// </summary> /// </summary>
public string AvgValue { get; set; } public Nullable<decimal> AvgValue { get; set; }
/// <summary> /// <summary>
/// 总人数 /// 总人数
/// </summary> /// </summary>
public Nullable<int> TotelNumber { get; set; } public Nullable<decimal> TotelNumber { get; set; }
} }
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" res_compute.cs"> // <copyright file=" res_compute.cs">
// * FileName: res_compute.cs // * FileName: res_compute.cs
// * history : 2019-03-22 16:41:30 // * history : 2019-03-25 19:35:46
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// res_compute Entity Model /// res_compute Entity Model
/// </summary> /// </summary>
public class res_compute [Table("res_compute")]
public class res_compute
{ {
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
[Key] [Key]
public int ID { get; set; } public int ID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> AllotID { get; set; } public Nullable<int> AllotID { get; set; }
/// <summary> /// <summary>
/// sheet页id /// sheet页id
/// </summary> /// </summary>
public Nullable<int> SheetID { get; set; } public Nullable<int> SheetID { get; set; }
/// <summary> /// <summary>
/// 核算单元 /// 核算单元
/// </summary> /// </summary>
public string AccountingUnit { get; set; } public string AccountingUnit { get; set; }
/// <summary> /// <summary>
/// 绩效基数核算参考对象 /// 绩效基数核算参考对象
/// </summary> /// </summary>
public string FitPeople { get; set; } public string FitPeople { get; set; }
/// <summary> /// <summary>
/// 人员姓名 /// 人员姓名
/// </summary> /// </summary>
public string EmployeeName { get; set; } public string EmployeeName { get; set; }
/// <summary> /// <summary>
/// 绩效合计(来自科室经济测算表) /// 绩效合计(来自科室经济测算表)
/// </summary> /// </summary>
public Nullable<decimal> PerforTotal { get; set; } public Nullable<decimal> PerforTotal { get; set; }
/// <summary> /// <summary>
/// 核算单元医生数量(来自科室经济测算表) /// 核算单元医生数量(来自科室经济测算表)
/// </summary> /// </summary>
public Nullable<decimal> Number { get; set; } public Nullable<decimal> Number { get; set; }
/// <summary> /// <summary>
/// 人均绩效(来自科室经济测算表) /// 人均绩效(来自科室经济测算表)
/// </summary> /// </summary>
public Nullable<decimal> Avg { get; set; } public Nullable<decimal> Avg { get; set; }
/// <summary> /// <summary>
/// 效率绩效(需计算) /// 效率绩效(需计算)
/// </summary> /// </summary>
public Nullable<decimal> Efficiency { get; set; } public Nullable<decimal> Efficiency { get; set; }
/// <summary> /// <summary>
/// 规模绩效(需计算) /// 规模绩效(需计算)
/// </summary> /// </summary>
public Nullable<decimal> Scale { get; set; } public Nullable<decimal> Scale { get; set; }
/// <summary>
/// 岗位系数
/// </summary>
public Nullable<decimal> PostCoefficient { get; set; }
/// <summary>
/// 发放系数(来自人员名单)
/// </summary>
public Nullable<decimal> Grant { get; set; }
/// <summary> /// <summary>
/// 应发管理绩效(需计算) /// 应发管理绩效(需计算)
/// </summary> /// </summary>
public Nullable<decimal> ShouldGiveFee { get; set; } public Nullable<decimal> ShouldGiveFee { get; set; }
/// <summary> /// <summary>
/// 绩效合计(需计算) /// 绩效合计(需计算)
/// </summary> /// </summary>
public Nullable<decimal> PerforSumFee { get; set; } public Nullable<decimal> PerforSumFee { get; set; }
/// <summary>
/// 发放系数(来自人员名单)
/// </summary>
public Nullable<decimal> Grant { get; set; }
/// <summary> /// <summary>
/// 考核对分率(来自人员名单) /// 考核对分率(来自人员名单)
/// </summary> /// </summary>
public Nullable<decimal> ScoreAverageRate { get; set; } public Nullable<decimal> ScoreAverageRate { get; set; }
/// <summary> /// <summary>
/// 医院奖罚(来自人员名单) /// 医院奖罚(来自人员名单)
/// </summary> /// </summary>
public Nullable<decimal> Punishment { get; set; } public Nullable<decimal> Punishment { get; set; }
/// <summary> /// <summary>
/// 其他绩效(来自人员名单) /// 其他绩效(来自人员名单)
/// </summary> /// </summary>
public Nullable<decimal> OtherPerfor { get; set; } public Nullable<decimal> OtherPerfor { get; set; }
/// <summary> /// <summary>
/// 应发绩效(需计算) /// 应发绩效(需计算)
/// </summary> /// </summary>
public Nullable<decimal> GiveFee { get; set; } public Nullable<decimal> GiveFee { get; set; }
/// <summary>
/// 出勤率(来自人员名单)
/// </summary>
public Nullable<decimal> Attendance { get; set; }
/// <summary>
/// 参加工作时间(来自人员名单)
/// </summary>
public Nullable<DateTime> WorkTime { get; set; }
/// <summary>
/// 绩效基础金额(计算)
/// </summary>
public Nullable<decimal> BaiscNormValue { get; set; }
/// <summary>
/// 年资系数(来自人员名单)
/// </summary>
public Nullable<decimal> WorkYear { get; set; }
} }
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_hospital.cs"> // <copyright file=" sys_hospital.cs">
// * FileName: sys_hospital.cs // * FileName: sys_hospital.cs
// * history : 2019-03-05 14:05:41 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_hospital Entity Model /// sys_hospital Entity Model
/// </summary> /// </summary>
public class sys_hospital [Table("sys_hospital")]
public class sys_hospital
{ {
/// <summary> /// <summary>
/// ID /// ID
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_menu.cs"> // <copyright file=" sys_menu.cs">
// * FileName: sys_menu.cs // * FileName: sys_menu.cs
// * history : 2019-03-05 16:57:57 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_menu Entity Model /// sys_menu Entity Model
/// </summary> /// </summary>
public class sys_menu [Table("sys_menu")]
public class sys_menu
{ {
/// <summary> /// <summary>
/// ///
...@@ -41,14 +43,13 @@ public class sys_menu ...@@ -41,14 +43,13 @@ public class sys_menu
public string MenuIcon { get; set; } public string MenuIcon { get; set; }
/// <summary> /// <summary>
/// 菜单类型 1 首页中出现 2 医院页中出现 /// 菜单状态 1 启用 2禁用
/// </summary> /// </summary>
public int MenuType { get; set; } public int States { get; set; }
/// <summary> /// <summary>
/// 菜单状态 1 启用 2禁用 ///
/// </summary> /// </summary>
public int States { get; set; } public Nullable<int> Sort { get; set; }
public int Sort { get; set; }
} }
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_role.cs"> // <copyright file=" sys_role.cs">
// * FileName: sys_role.cs // * FileName: sys_role.cs
// * history : 2019-03-05 16:57:57 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_role Entity Model /// sys_role Entity Model
/// </summary> /// </summary>
public class sys_role [Table("sys_role")]
public class sys_role
{ {
/// <summary> /// <summary>
/// ///
...@@ -29,7 +31,7 @@ public class sys_role ...@@ -29,7 +31,7 @@ public class sys_role
/// ///
/// </summary> /// </summary>
public string Remark { get; set; } public string Remark { get; set; }
/// <summary> /// <summary>
/// 菜单状态 1 启用 2禁用 /// 菜单状态 1 启用 2禁用
/// </summary> /// </summary>
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_role_menu.cs"> // <copyright file=" sys_role_menu.cs">
// * FileName: sys_role_menu.cs // * FileName: sys_role_menu.cs
// * history : 2019-03-05 16:57:57 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_role_menu Entity Model /// sys_role_menu Entity Model
/// </summary> /// </summary>
public class sys_role_menu [Table("sys_role_menu")]
public class sys_role_menu
{ {
/// <summary> /// <summary>
/// ///
...@@ -23,11 +25,11 @@ public class sys_role_menu ...@@ -23,11 +25,11 @@ public class sys_role_menu
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> RuleID { get; set; } public int RoleID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> MenuID { get; set; } public int MenuID { get; set; }
} }
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_sms.cs"> // <copyright file=" sys_sms.cs">
// * FileName: sys_sms.cs // * FileName: sys_sms.cs
// * history : 2019-03-05 11:49:50 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_sms Entity Model /// sys_sms Entity Model
/// </summary> /// </summary>
public class sys_sms [Table("sys_sms")]
public class sys_sms
{ {
/// <summary> /// <summary>
/// ///
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_user_hospital.cs"> // <copyright file=" sys_user_hospital.cs">
// * FileName: sys_user_hospital.cs // * FileName: sys_user_hospital.cs
// * history : 2019-03-05 11:49:50 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_user_hospital Entity Model /// sys_user_hospital Entity Model
/// </summary> /// </summary>
public class sys_user_hospital [Table("sys_user_hospital")]
public class sys_user_hospital
{ {
/// <summary> /// <summary>
/// ///
......
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" sys_user_role.cs"> // <copyright file=" sys_user_role.cs">
// * FileName: sys_user_role.cs // * FileName: sys_user_role.cs
// * history : 2019-03-05 16:57:57 // * history : 2019-03-25 11:33:14
// </copyright> // </copyright>
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels namespace Performance.EntityModels
{ {
/// <summary> /// <summary>
/// sys_user_role Entity Model /// sys_user_role Entity Model
/// </summary> /// </summary>
public class sys_user_role [Table("sys_user_role")]
public class sys_user_role
{ {
/// <summary> /// <summary>
/// ///
...@@ -23,11 +25,11 @@ public class sys_user_role ...@@ -23,11 +25,11 @@ public class sys_user_role
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> RoleID { get; set; } public int RoleID { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public Nullable<int> UserID { get; set; } public int UserID { get; set; }
} }
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// <copyright file=" dic_position.cs"> // <copyright file=" cof_workyear.cs">
// * FileName: cof_workyear.cs // * FileName: cof_workyear.cs
// * history : Created by T4 2019-03-25 13:14:55 // * history : Created by T4 2019-03-25 11:32:42
// </copyright> // </copyright>
using System; //-----------------------------------------------------------------------
using Performance.EntityModels; using Performance.EntityModels;
using System;
namespace Performance.Repository namespace Performance.Repository
{ {
/// <summary>
/// cof_workyear Repository
/// </summary>
public class PerforCofworkyearRepository : PerforRepository<cof_workyear> public class PerforCofworkyearRepository : PerforRepository<cof_workyear>
{ {
public PerforCofworkyearRepository(PerformanceDbContext context) : base(context) public PerforCofworkyearRepository(PerformanceDbContext context) : base(context)
{ {
} }
} }
......
using Performance.DtoModels;
using Performance.EntityModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Performance.Services
{
public class BaiscNormService : IAutoInjection
{
public decimal? GetBaiscNorm(List<res_baiscnorm> baiscnorms, PerformanceType type)
{
decimal? result = null;
if (type == PerformanceType.ReferenceDirector)
{
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床科主任")?.AvgValue;
}
else if (type == PerformanceType.ReferenceDirectorAvg)
{
List<string> avgObjectList = new List<string> { "临床科主任", "临床科副主任", "医技科主任", "临床科护长" };
var baisc = baiscnorms.Where(t => avgObjectList.Contains(t.PositionName));
result = baisc.Sum(s => s.TotelValue) / baisc.Sum(s => s.TotelNumber);
}
else if (type == PerformanceType.ReferenceHeadNurse)
{
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床科护长")?.AvgValue;
}
else if (type == PerformanceType.ReferenceNurseAvg95)
{
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床护士")?.AvgValue * 0.95m;
}
if (result.HasValue)
result = Math.Round(result.Value, 4);
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.Services
{
/// <summary>
/// 临床科室副主任
/// </summary>
public class ComputeDeputyDirector
{
public void Compute(List<EntityModels.im_employee> empolyeeList)
{
throw new NotImplementedException();
}
}
}
using Performance.DtoModels; using Performance.DtoModels;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.Infrastructure;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -10,40 +11,160 @@ namespace Performance.Services ...@@ -10,40 +11,160 @@ namespace Performance.Services
/// <summary> /// <summary>
/// 临床科室主任 /// 临床科室主任
/// </summary> /// </summary>
public class ComputeDirector public class ComputeDirector : IAutoInjection
{ {
public void Compute(List<im_employee> empolyeeList, List<cof_position> positionList, /// <summary>
List<res_accountdoctor> doctorList, List<cof_director> directorList) /// 临床科室主任、临床科室副主任、临床科室护士长 计算
/// </summary>
/// <param name="empolyeeList"></param>
/// <param name="nurseList"></param>
/// <param name="directorList"></param>
/// <returns></returns>
public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<ComputeSource> nurseList, List<cof_director> directorList)
{ {
var positions = positionList.Where(t => t.JobType == (int)EmpolyeeType.Director); Dictionary<PerformanceType, string> keyValues = new Dictionary<PerformanceType, string>
var needCompute = empolyeeList.Where(t => positions.Select(s => s.JobTitle).Contains(t.JobTitle));
foreach (var item in needCompute)
{ {
var resAccount = doctorList.FirstOrDefault(t => t.AccountingUnit == item.AccountingUnit); { PerformanceType.Director, "临床科室主任"},
var efficiency = directorList.FirstOrDefault(t => t.TypeName == "效率绩效" && positions.Select(s => s.JobTitle).Contains(t.JobTitle)); { PerformanceType.DeputyDirector, "临床科室副主任"},
var scale = directorList.FirstOrDefault(t => t.TypeName == "规模绩效" && positions.Select(s => s.JobTitle).Contains(t.JobTitle)); { PerformanceType.Nurse, "临床科室护士长"},
new res_compute };
List<ComputeResult> computeList = new List<ComputeResult>();
foreach (var key in keyValues.Keys)
{
var needCompute = empolyeeList.Where(t => t.FitPeople == EnumHelper.GetDescription(key));
foreach (var item in needCompute)
{
var resAccount = nurseList.FirstOrDefault(t => t.AccountingUnit == item.AccountingUnit);
var efficiency = directorList.FirstOrDefault(t => t.TypeName == "效率绩效" && t.JobTitle == keyValues[key]);
var scale = directorList.FirstOrDefault(t => t.TypeName == "规模绩效" && t.JobTitle == keyValues[key]);
var compute = new ComputeResult
{
AccountType = item.AccountType,
AccountingUnit = item.AccountingUnit,
EmployeeName = item.DoctorName,
FitPeople = item.FitPeople,
Number = resAccount?.Number,
PerforTotal = resAccount?.PerforTotal,
Avg = resAccount?.Avg,
Efficiency = efficiency?.Value * resAccount?.Avg,
Scale = scale?.Value * resAccount?.PerforTotal,
Grant = item.Grant,
ShouldGiveFee = (efficiency?.Value * resAccount?.Avg + scale?.Value * resAccount?.PerforTotal) * item.Grant,
ScoreAverageRate = item.ScoreAverageRate,
Punishment = item.Punishment,
OtherPerfor = item.OtherPerfor
};
//绩效合计
var perforSumFee = (compute.Avg + compute.Efficiency + compute.Scale) * item.Grant;
if (perforSumFee > (compute.Avg ?? 0) * 2.5m)
compute.PerforSumFee = (compute.Avg ?? 0) * 2.5m;
else
compute.PerforSumFee = perforSumFee;
//应发绩效
compute.GiveFee = compute.Avg * item.Grant + (compute.Efficiency + compute.Scale) * item.Grant * compute.ScoreAverageRate + (item.Punishment ?? 0) + (item.OtherPerfor ?? 0);
computeList.Add(compute);
}
}
return computeList;
}
/// <summary>
/// 绩效标准计算
/// </summary>
/// <param name="computes"></param>
/// <returns></returns>
public List<res_baiscnorm> ComputeAvg(List<ComputeResult> computes)
{
var keyList = new[]
{
new { type = "临床科室", reference = "科室主任人均绩效", groupname = "临床科主任" },
new { type = "临床科室", reference = "科室副主任人均绩效", groupname = "临床科副主任" },
new { type = "医技科室", reference = "科室主任人均绩效", groupname = "医技科主任" },
new { type = "临床科室", reference = "科室护士长人均绩效", groupname = "临床科护长" },
};
var groupList = from cp in computes
join gp in keyList on new { type = cp.AccountType, reference = cp.FitPeople } equals new { gp.type, gp.reference }
select new { gp.groupname, cp };
var result = groupList.GroupBy(t => t.groupname)
.Select(s => new res_baiscnorm
{ {
AllotID = item.AllotID, PositionName = s.Key,
SheetID = item.SheetID, TotelNumber = s.Count(),
AccountingUnit = item.AccountingUnit, TotelValue = s.Sum(t => t.cp.GiveFee),
EmployeeName = item.DoctorName, AvgValue = s.Sum(t => t.cp.GiveFee) / s.Count()
FitPeople = item.FitPeople, });
return result.ToList();
Number = resAccount?.Number, }
PerforTotal = resAccount?.PerforTotal,
Avg = resAccount?.Avg, /// <summary>
Efficiency = efficiency?.Value * resAccount?.Avg, /// 院领导、业务中层、工勤人员 计算
Scale = scale?.Value * resAccount?.PerforTotal, /// </summary>
Grant = item.Grant, /// <param name="empolyeeList"></param>
ShouldGiveFee = (efficiency?.Value * resAccount?.Avg + scale?.Value * resAccount?.PerforTotal) * item.Grant, /// <param name="baiscnormList"></param>
PerforSumFee = 0, /// <returns></returns>
ScoreAverageRate = item.ScoreAverageRate, public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_baiscnorm> baiscnormList, List<cof_workyear> workyearList)
Punishment = item.Punishment, {
OtherPerfor = item.OtherPerfor, PerformanceType[] types = new PerformanceType[]
GiveFee = item.AllotID, {
}; PerformanceType.ReferenceDirector,
PerformanceType.ReferenceDirectorAvg,
PerformanceType.ReferenceNurseAvg95,
PerformanceType.ReferenceHeadNurse,
PerformanceType.Null,
};
PerformanceType[] yearTypes = new PerformanceType[]
{
PerformanceType.ReferenceNurseAvg95,
PerformanceType.ReferenceHeadNurse,
PerformanceType.Null,
};
BaiscNormService baiscNormService = new BaiscNormService();
List<ComputeResult> computeList = new List<ComputeResult>();
foreach (var type in types)
{
var needCompute = empolyeeList.Where(t => t.FitPeople == EnumHelper.GetDescription(type));
var baiscnorm = baiscNormService.GetBaiscNorm(baiscnormList, type);
foreach (var item in needCompute)
{
var compute = new ComputeResult
{
AccountType = item.AccountType,
AccountingUnit = item.AccountingUnit,
EmployeeName = item.DoctorName,
FitPeople = item.FitPeople,
Grant = item.Grant,
WorkTime = item.WorkTime,
BaiscNormValue = baiscnorm,
PostCoefficient = item.PostCoefficient,
Attendance = item.Attendance,
ScoreAverageRate = item.ScoreAverageRate,
Punishment = item.Punishment,
OtherPerfor = item.OtherPerfor
};
//绩效合计
compute.ShouldGiveFee = baiscnorm * compute.PostCoefficient * compute.Attendance * compute.ScoreAverageRate + (compute.OtherPerfor ?? 0) + (item.Workload ?? 0) + (compute.Punishment ?? 0);
//年资系数
if (yearTypes.Contains(type) && item.WorkTime.HasValue && item.WorkTime.Value > new DateTime(1970, 1, 1))
{
var years = ((DateTime.Now.Year - item.WorkTime.Value.Year) * 12 + (DateTime.Now.Month - item.WorkTime.Value.Month)) / 12.0m;
var value = workyearList.FirstOrDefault(t => t.MinRange < years && years <= t.MaxRange)?.Value;
compute.WorkYear = value;
compute.ShouldGiveFee = compute.ShouldGiveFee * (value ?? 1);
}
//应发绩效
compute.GiveFee = compute.ShouldGiveFee * item.Adjust * item.Grant;
computeList.Add(compute);
}
} }
return computeList;
} }
} }
} }
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.Services
{
public class ComputeMedicalTechnician
{
public void Compute(List<EntityModels.im_employee> empolyeeList)
{
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.Services
{
/// <summary>
/// 护士长
/// </summary>
public class ComputeNurse
{
public void Compute(List<EntityModels.im_employee> empolyeeList)
{
throw new NotImplementedException();
}
}
}
using NPOI.SS.UserModel; using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using Performance.Infrastructure; using Performance.Infrastructure;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -24,5 +25,20 @@ public class NopiSevice ...@@ -24,5 +25,20 @@ public class NopiSevice
} }
return null; return null;
} }
public static DateTime? GetCellDatetimeValue(ICell cell)
{
if (cell != null)
{
if (cell.CellType == CellType.Numeric)
{
if (HSSFDateUtil.IsCellDateFormatted(cell))
{
return cell.DateCellValue;
}
}
}
return null;
}
} }
} }
...@@ -23,15 +23,13 @@ public class PerExcelService : IAutoInjection ...@@ -23,15 +23,13 @@ public class PerExcelService : IAutoInjection
private PerforImHeaderRepository _perforImHeaderRepository; private PerforImHeaderRepository _perforImHeaderRepository;
private PerforImEmployeeRepository _perforImEmployeeRepository; private PerforImEmployeeRepository _perforImEmployeeRepository;
private PerforImaccountbasicRepository _perforImaccountbasicRepository; private PerforImaccountbasicRepository _perforImaccountbasicRepository;
private PerforResAccountdoctorRepository _perforImaccountdoctorRepository; private PerforResAccountnurseRepository _perforResAccountnurseRepository;
private PerforResAccountnurseRepository _perforImaccountnurseRepository;
private PerforCofpositionRepository _perforCofpositionRepository; private PerforCofpositionRepository _perforCofpositionRepository;
private PerforCofdirectorRepository _perforCofdirectorRepository; private PerforCofdirectorRepository _perforCofdirectorRepository;
private PerforCofdrugpropRepository _perforCofdrugpropRepository; private PerforCofdrugpropRepository _perforCofdrugpropRepository;
private PerforCofincomeRepository _perforCofincomeRepository; private PerforCofincomeRepository _perforCofincomeRepository;
private PerforCofworkyearRepository _perforCofworkyearRepository; private PerforCofworkyearRepository _perforCofworkyearRepository;
private PerforResAccountdoctorRepository _perforResAccountdoctorRepository; private PerforResAccountdoctorRepository _perforResAccountdoctorRepository;
private PerforResAccountnurseRepository _perforResAccountnurseRepository;
private PerforResbaiscnormRepository _perforResbaiscnormRepository; private PerforResbaiscnormRepository _perforResbaiscnormRepository;
private PerforRescomputeRepository _perforRescomputeRepository; private PerforRescomputeRepository _perforRescomputeRepository;
private PerforPerAllotRepository _perforPerAllotRepository; private PerforPerAllotRepository _perforPerAllotRepository;
...@@ -43,18 +41,17 @@ public class PerExcelService : IAutoInjection ...@@ -43,18 +41,17 @@ public class PerExcelService : IAutoInjection
PerforImHeaderRepository perforImHeaderRepository, PerforImHeaderRepository perforImHeaderRepository,
PerforImEmployeeRepository perforImEmployeeRepository, PerforImEmployeeRepository perforImEmployeeRepository,
PerforImaccountbasicRepository perforImaccountbasicRepository, PerforImaccountbasicRepository perforImaccountbasicRepository,
PerforResAccountdoctorRepository perforImaccountdoctorRepository, PerforResAccountnurseRepository perforResAccountnurseRepository,
PerforResAccountnurseRepository perforImaccountnurseRepository,
PerforCofpositionRepository perforCofpositionRepository, PerforCofpositionRepository perforCofpositionRepository,
PerforCofdirectorRepository perforCofdirectorRepository, PerforCofdirectorRepository perforCofdirectorRepository,
PerforCofdrugpropRepository perforCofdrugpropRepository, PerforCofdrugpropRepository perforCofdrugpropRepository,
PerforCofincomeRepository perforCofincomeRepository, PerforCofincomeRepository perforCofincomeRepository,
PerforCofworkyearRepository perforCofworkyearRepository, PerforCofworkyearRepository perforCofworkyearRepository,
PerforResAccountdoctorRepository perforResAccountdoctorRepository, PerforResAccountdoctorRepository perforResAccountdoctorRepository,
PerforResAccountnurseRepository perforResAccountnurseRepository,
PerforResbaiscnormRepository perforResbaiscnormRepository, PerforResbaiscnormRepository perforResbaiscnormRepository,
PerforRescomputeRepository perforRescomputeRepository, PerforRescomputeRepository perforRescomputeRepository,
PerforPerAllotRepository perforPerAllotRepository) PerforPerAllotRepository perforPerAllotRepository)
{ {
_perSheetService = perSheetService; _perSheetService = perSheetService;
_perHeaderService = perHeaderService; _perHeaderService = perHeaderService;
...@@ -63,11 +60,9 @@ public class PerExcelService : IAutoInjection ...@@ -63,11 +60,9 @@ public class PerExcelService : IAutoInjection
_perforImHeaderRepository = perforImHeaderRepository; _perforImHeaderRepository = perforImHeaderRepository;
_perforImEmployeeRepository = perforImEmployeeRepository; _perforImEmployeeRepository = perforImEmployeeRepository;
_perforImaccountbasicRepository = perforImaccountbasicRepository; _perforImaccountbasicRepository = perforImaccountbasicRepository;
_perforImaccountdoctorRepository = perforImaccountdoctorRepository; _perforResAccountnurseRepository = perforResAccountnurseRepository;
_perforImaccountnurseRepository = perforImaccountnurseRepository;
_perforCofpositionRepository = perforCofpositionRepository; _perforCofpositionRepository = perforCofpositionRepository;
_perforResAccountdoctorRepository = perforResAccountdoctorRepository; _perforResAccountdoctorRepository = perforResAccountdoctorRepository;
_perforResAccountnurseRepository = perforResAccountnurseRepository;
_perforCofdirectorRepository = perforCofdirectorRepository; _perforCofdirectorRepository = perforCofdirectorRepository;
_perforCofdrugpropRepository = perforCofdrugpropRepository; _perforCofdrugpropRepository = perforCofdrugpropRepository;
_perforCofincomeRepository = perforCofincomeRepository; _perforCofincomeRepository = perforCofincomeRepository;
...@@ -75,16 +70,14 @@ public class PerExcelService : IAutoInjection ...@@ -75,16 +70,14 @@ public class PerExcelService : IAutoInjection
_perforResbaiscnormRepository = perforResbaiscnormRepository; _perforResbaiscnormRepository = perforResbaiscnormRepository;
_perforRescomputeRepository = perforRescomputeRepository; _perforRescomputeRepository = perforRescomputeRepository;
_perforPerAllotRepository = perforPerAllotRepository; _perforPerAllotRepository = perforPerAllotRepository;
_perforResbaiscnormRepository = perforResbaiscnormRepository;
_perforRescomputeRepository = perforRescomputeRepository;
_perforCofworkyearRepository = perforCofworkyearRepository;
} }
public void Execute(per_allot allot) public void Execute(per_allot allot)
{ {
//清空当前绩效下数据
//Clear(allot.ID);
// 拷贝配置信息
//Copy(allot.ID);
// 导出数据 // 导出数据
var excel = Import(allot.Path); var excel = Import(allot.Path);
...@@ -97,13 +90,28 @@ public void Execute(per_allot allot) ...@@ -97,13 +90,28 @@ public void Execute(per_allot allot)
// 保存过程数据 // 保存过程数据
Save(list, allot.ID, 2); Save(list, allot.ID, 2);
var baiscnorm = NurseBaiscnorm(list);
// 计算最总数据 // 计算最总数据
Compute(allot, excel); Compute(allot, excel, baiscnorm);
//发送邮件 //发送邮件
SendEmail(allot); SendEmail(allot);
} }
private res_baiscnorm NurseBaiscnorm(List<PerSheet> list)
{
var sheet = list.FirstOrDefault(t => t.SheetType == SheetType.ComputeNurseAccount);
var perdata = sheet.PerData.Select(t => (PerDataAccountNurse)t);
return new res_baiscnorm
{
PositionName = "临床护士",
TotelNumber = perdata.Sum(t => t.Number),
TotelValue = perdata.Sum(t => t.PerforTotal),
AvgValue = perdata.Sum(t => t.PerforTotal) / perdata.Sum(t => t.Number)
};
}
private void SendEmail(per_allot allot) private void SendEmail(per_allot allot)
{ {
...@@ -274,46 +282,58 @@ public void Save(List<PerSheet> perSheets, int allotId, int source) ...@@ -274,46 +282,58 @@ public void Save(List<PerSheet> perSheets, int allotId, int source)
{ {
var imdata = Mapper.Map<im_employee>(data); var imdata = Mapper.Map<im_employee>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
imdata.AllotID = allotId;
_perforImEmployeeRepository.Add(imdata); _perforImEmployeeRepository.Add(imdata);
} }
} }
else if (sheet.SheetType == SheetType.DeptAccounting) else if (sheet.SheetType == SheetType.DeptAccounting)
{ {
var dataList = sheet.PerData.Select(t => (PerDataAccountBaisc)t); var dataList = sheet.PerData.Select(t => (PerDataAccountBaisc)t);
List<im_accountbasic> addList = new List<im_accountbasic>();
foreach (var data in dataList) foreach (var data in dataList)
{ {
var imdata = Mapper.Map<im_accountbasic>(data); var imdata = Mapper.Map<im_accountbasic>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
_perforImaccountbasicRepository.Add(imdata); imdata.AllotID = allotId;
addList.Add(imdata);
} }
_perforImaccountbasicRepository.AddRange(addList.ToArray());
} }
else if (sheet.SheetType == SheetType.ComputeDoctorAccount) else if (sheet.SheetType == SheetType.ComputeDoctorAccount)
{ {
var dataList = sheet.PerData.Select(t => (PerDataAccountDoctor)t); var dataList = sheet.PerData.Select(t => (PerDataAccountDoctor)t);
List<res_accountdoctor> addList = new List<res_accountdoctor>();
foreach (var data in dataList) foreach (var data in dataList)
{ {
var imdata = Mapper.Map<res_accountdoctor>(data); var imdata = Mapper.Map<res_accountdoctor>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
_perforImaccountdoctorRepository.Add(imdata); imdata.AllotID = allotId;
addList.Add(imdata);
} }
_perforResAccountdoctorRepository.AddRange(addList.ToArray());
} }
else if (sheet.SheetType == SheetType.ComputeNurseAccount) else if (sheet.SheetType == SheetType.ComputeNurseAccount)
{ {
var dataList = sheet.PerData.Select(t => (PerDataAccountNurse)t); var dataList = sheet.PerData.Select(t => (PerDataAccountNurse)t);
List<res_accountnurse> addList = new List<res_accountnurse>();
foreach (var data in dataList) foreach (var data in dataList)
{ {
var imdata = Mapper.Map<res_accountnurse>(data); var imdata = Mapper.Map<res_accountnurse>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
_perforImaccountnurseRepository.Add(imdata); imdata.AllotID = allotId;
addList.Add(imdata);
} }
_perforResAccountnurseRepository.AddRange(addList.ToArray());
} }
else else
{ {
List<im_header> addHeadList = new List<im_header>();
foreach (var header in sheet.PerHeader) foreach (var header in sheet.PerHeader)
{ {
var imheader = Mapper.Map<im_header>(header); var imheader = Mapper.Map<im_header>(header);
imheader.SheetID = imsheet.ID; imheader.SheetID = imsheet.ID;
_perforImHeaderRepository.Add(imheader); imheader.AllotID = allotId;
addHeadList.Add(imheader);
if (header.IsHasChildren) if (header.IsHasChildren)
{ {
foreach (var child in header.Children) foreach (var child in header.Children)
...@@ -321,17 +341,22 @@ public void Save(List<PerSheet> perSheets, int allotId, int source) ...@@ -321,17 +341,22 @@ public void Save(List<PerSheet> perSheets, int allotId, int source)
var imheaderChild = Mapper.Map<im_header>(child); var imheaderChild = Mapper.Map<im_header>(child);
imheaderChild.SheetID = imsheet.ID; imheaderChild.SheetID = imsheet.ID;
imheaderChild.ParentID = imheader.ID; imheaderChild.ParentID = imheader.ID;
_perforImHeaderRepository.Add(imheaderChild); addHeadList.Add(imheaderChild);
} }
} }
} }
_perforImHeaderRepository.AddRange(addHeadList.ToArray());
List<im_data> addDataList = new List<im_data>();
var dataList = sheet.PerData.Select(t => (PerData)t); var dataList = sheet.PerData.Select(t => (PerData)t);
foreach (var data in dataList) foreach (var data in dataList)
{ {
var imdata = Mapper.Map<im_data>(data); var imdata = Mapper.Map<im_data>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
_perforImDataRepository.Add(imdata); imdata.AllotID = allotId;
addDataList.Add(imdata);
} }
_perforImDataRepository.AddRange(addDataList.ToArray());
} }
} }
...@@ -413,30 +438,43 @@ private IRow CreateRow(ICellStyle cellstyle, ISheet exportSheet, IRow row, PerHe ...@@ -413,30 +438,43 @@ private IRow CreateRow(ICellStyle cellstyle, ISheet exportSheet, IRow row, PerHe
/// 计算最终数据 /// 计算最终数据
/// </summary> /// </summary>
/// <param name="excel"></param> /// <param name="excel"></param>
public void Compute(per_allot allot, PerExcel excel) public void Compute(per_allot allot, PerExcel excel, res_baiscnorm baiscnorm)
{ {
var sheetList = _perforImSheetRepository.GetEntities(t => t.AllotID == allot.ID); var sheetList = _perforImSheetRepository.GetEntities(t => t.AllotID == allot.ID);
//取出人员信息 //取出人员信息
var empolyeeList = _perforImEmployeeRepository.GetEntities(t => sheetList.Select(s => s.ID).Contains(t.SheetID.Value)); var empolyeeList = _perforImEmployeeRepository.GetEntities(t => t.AllotID == allot.ID);
//人员身份字典 //人员身份字典
var positionList = _perforCofpositionRepository.GetEntities(); var positionList = _perforCofpositionRepository.GetEntities();
//年资系数
var workyearList = _perforCofworkyearRepository.GetEntities();
//规模绩效和效率绩效配置表 //规模绩效和效率绩效配置表
var directorList = _perforCofdirectorRepository.GetEntities(); var directorList = _perforCofdirectorRepository.GetEntities();
//取出医生科室
//取出
var doctorList = _perforResAccountdoctorRepository.GetEntities(t => t.AllotID == allot.ID); var doctorList = _perforResAccountdoctorRepository.GetEntities(t => t.AllotID == allot.ID);
ComputeDirector computeDirector = new ComputeDirector(); //取出护士科室
computeDirector.Compute(empolyeeList, positionList, doctorList, directorList); var nurseList = _perforResAccountnurseRepository.GetEntities(t => t.AllotID == allot.ID);
List<ComputeEmployee> computeEmployees = Mapper.Map<List<ComputeEmployee>>(empolyeeList);
List<ComputeSource> computeSources = new List<ComputeSource>();
computeSources.AddRange(Mapper.Map<List<ComputeSource>>(doctorList));
computeSources.AddRange(Mapper.Map<List<ComputeSource>>(nurseList));
_perforResAccountnurseRepository.GetEntities(t => t.AllotID == allot.ID); ComputeDirector computeDirector = new ComputeDirector();
//根据不同人员执行不同算法 var computResult = computeDirector.Compute(computeEmployees, computeSources, directorList);
//empolyeeList.Where(t=>t.) var baiscnormList = computeDirector.ComputeAvg(computResult);
baiscnormList.Add(baiscnorm);
//计算院领导、中层管理、工勤人员 var computResult2 = computeDirector.Compute(computeEmployees, baiscnormList, workyearList);
//throw new NotImplementedException(); var computes = Mapper.Map<List<res_compute>>(computResult);
computes.AddRange(Mapper.Map<List<res_compute>>(computResult2));
computes.ForEach(t => t.AllotID = allot.ID);
_perforRescomputeRepository.AddRange(computes.ToArray());
baiscnormList.ForEach(t => t.AllotID = allot.ID);
_perforResbaiscnormRepository.AddRange(baiscnormList.ToArray());
} }
} }
} }
...@@ -11,7 +11,7 @@ namespace Performance.Services ...@@ -11,7 +11,7 @@ namespace Performance.Services
/// <summary> /// <summary>
/// 科室经济核算汇总表 (收入/其他收入/支出) /// 科室经济核算汇总表 (收入/其他收入/支出)
/// </summary> /// </summary>
public class PerSheetDataComputeEconomic public class PerSheetDataComputeEconomic : IAutoInjection
{ {
#region 合并科室经济 #region 合并科室经济
/// <summary> /// <summary>
......
...@@ -11,7 +11,7 @@ namespace Performance.Services ...@@ -11,7 +11,7 @@ namespace Performance.Services
/// <summary> /// <summary>
/// 工作量 /// 工作量
/// </summary> /// </summary>
public class PerSheetDataComputeWorkload public class PerSheetDataComputeWorkload : IAutoInjection
{ {
#region 工作量一次计算 #region 工作量一次计算
/// <summary> /// <summary>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
namespace Performance.Services namespace Performance.Services
{ {
public interface IPerSheetDataRead public interface IPerSheetDataRead : IAutoInjection
{ {
/// <summary> /// <summary>
/// excel 列头及数据 配置信息 /// excel 列头及数据 配置信息
......
...@@ -37,14 +37,14 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader) ...@@ -37,14 +37,14 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{ {
RowNumber = r, RowNumber = r,
AccountingUnit = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "核算单元").PointCell).ToString(), AccountingUnit = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "核算单元").PointCell).ToString(),
Department = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "科室").PointCell).ToString(), Department = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "核算单元").PointCell).ToString(),
DoctorName = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "医生姓名").PointCell).ToString(), DoctorName = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "医生姓名").PointCell).ToString(),
JobTitle = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "职称").PointCell).ToString(), JobTitle = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "职称").PointCell).ToString(),
FitPeople = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "绩效基数核算参考对象").PointCell).ToString(), FitPeople = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "绩效基数核算参考对象").PointCell).ToString(),
AccountType = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "核算单元分类").PointCell).ToString(), AccountType = row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "核算单元分类").PointCell).ToString(),
PostCoefficient = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "岗位系数").PointCell).ToString()), PostCoefficient = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "岗位系数").PointCell).ToString()),
WorkTime = ConvertHelper.To<DateTime?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "考核得分率").PointCell).ToString()), WorkTime = NopiSevice.GetCellDatetimeValue(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "参加工作时间").PointCell)),
ScoreAverageRate = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "医生姓名").PointCell).ToString()), ScoreAverageRate = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "考核得分率").PointCell).ToString()),
Attendance = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "出勤率").PointCell).ToString()), Attendance = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "出勤率").PointCell).ToString()),
PeopleNumber = ConvertHelper.To<int?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "核算单元医生数").PointCell).ToString()), PeopleNumber = ConvertHelper.To<int?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "核算单元医生数").PointCell).ToString()),
Workload = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "工作量绩效").PointCell).ToString()), Workload = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "工作量绩效").PointCell).ToString()),
......
...@@ -101,6 +101,7 @@ private void CommonExport(int sheetID, SheetExportResponse response) ...@@ -101,6 +101,7 @@ private void CommonExport(int sheetID, SheetExportResponse response)
var headList = _perforImHeaderRepository.GetEntities(t => t.SheetID == sheetID).OrderBy(t => t.PointCell); var headList = _perforImHeaderRepository.GetEntities(t => t.SheetID == sheetID).OrderBy(t => t.PointCell);
var dataList = _perforImDataRepository.GetEntities(t => t.SheetID == sheetID); var dataList = _perforImDataRepository.GetEntities(t => t.SheetID == sheetID);
if (dataList == null || dataList.Count == 0) return;
//创建列头行 //创建列头行
var rowhead = new Row(0); var rowhead = new Row(0);
......
...@@ -12,6 +12,9 @@ EndProject ...@@ -12,6 +12,9 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1.site", "1.site", "{69CFD3FA-0B61-41D4-A9E8-44B933001293}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1.site", "1.site", "{69CFD3FA-0B61-41D4-A9E8-44B933001293}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2.services", "2.services", "{2E5D3959-48C9-4BAD-89BF-9CF1DDCB453D}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2.services", "2.services", "{2E5D3959-48C9-4BAD-89BF-9CF1DDCB453D}"
ProjectSection(SolutionItems) = preProject
Performance.EntityModels\Entity\ComputeResult.cs = Performance.EntityModels\Entity\ComputeResult.cs
EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3.repository", "3.repository", "{95E7A23D-DC0E-4C27-AD7C-EAF4917012EF}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3.repository", "3.repository", "{95E7A23D-DC0E-4C27-AD7C-EAF4917012EF}"
EndProject EndProject
...@@ -23,7 +26,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Performance.DtoModels", "Pe ...@@ -23,7 +26,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Performance.DtoModels", "Pe
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Performance.EntityModels", "Performance.EntityModels\Performance.EntityModels.csproj", "{F7708C0C-0B0B-4E7E-A995-E39F7044FD11}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Performance.EntityModels", "Performance.EntityModels\Performance.EntityModels.csproj", "{F7708C0C-0B0B-4E7E-A995-E39F7044FD11}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Performance.Api", "Performance.Api\Performance.Api.csproj", "{3AE00FF5-F0BA-4D72-A23B-770186309327}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Performance.Api", "Performance.Api\Performance.Api.csproj", "{3AE00FF5-F0BA-4D72-A23B-770186309327}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
......
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