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()
CreateMap<PerDataAccountBaisc, im_accountbasic>();
CreateMap<PerDataAccountDoctor, res_accountdoctor>();
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
}
/// <summary>
/// 职位归类
/// 绩效类型
/// </summary>
public enum EmpolyeeType
public enum PerformanceType
{
/// <summary> 院领导 </summary>
[Description("院领导")]
TopManage = 1,
/// <summary> 行政中层 </summary>
[Description("行政中层")]
MiddleManage = 2,
/// <summary> 行政工勤 </summary>
[Description("行政工勤")]
LogisticsWorkers = 3,
/// <summary> 临床科室主任 </summary>
[Description("临床科室主任")]
Director = 4,
/// <summary> 临床科室副主任 </summary>
[Description("临床科室副主任")]
DeputyDirector = 5,
/// <summary> 临床科室护士长 </summary>
[Description("临床科室护士长")]
Nurse = 6,
/// <summary> 没有绩效 </summary>
[Description("没有绩效")]
Null = 0,
/// <summary> 科室主任人均绩效 </summary>
[Description("科室主任人均绩效")]
Director = 1,
/// <summary> 科室副主任人均绩效 </summary>
[Description("科室副主任人均绩效")]
DeputyDirector = 2,
/// <summary> 科室护士长人均绩效 </summary>
[Description("科室护士长人均绩效")]
Nurse = 3,
/// <summary> 临床科室主任人均绩效 (绩效标准取 科室主任人均绩效) </summary>
[Description("临床科室主任人均绩效")]
ReferenceDirector = 4,
/// <summary> 临床科室中层人均绩效 (绩效标准取 科室主任/护士长/科室副主任/医技主任 平均值) </summary>
[Description("临床科室中层人均绩效")]
ReferenceDirectorAvg = 5,
/// <summary> 临床科室护士人均绩效的95% (绩效标准取 护理组临床科室单元核算表 平均值) </summary>
[Description("临床科室护士人均绩效的95%")]
ReferenceNurseAvg95 = 6,
/// <summary> 临床科室护士长人均绩效 (绩效标准取 护士长 平均值)</summary>
[Description("临床科室护士长人均绩效")]
ReferenceHeadNurse = 7,
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_user.cs">
// * FileName: sys_user.cs
// * history : 2019-03-05 14:05:41
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_user Entity Model
/// </summary>
[Table("sys_user")]
public class sys_user
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" cof_director.cs">
// * FileName: cof_director.cs
// * history : 2019-03-22 15:48:50
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// cof_director Entity Model
/// </summary>
[Table("cof_director")]
public class cof_director
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" cof_drugprop.cs">
// * FileName: cof_drugprop.cs
// * history : 2019-03-20 16:16:15
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// cof_drugprop Entity Model
/// </summary>
[Table("cof_drugprop")]
public class cof_drugprop
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" cof_income.cs">
// * FileName: cof_income.cs
// * history : 2019-03-21 15:03:58
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// cof_income Entity Model
/// </summary>
[Table("cof_income")]
public class cof_income
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" dic_position.cs">
// * FileName: dic_position.cs
// * history : 2019-03-22 15:48:50
// <copyright file=" cof_position.cs">
// * FileName: cof_position.cs
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// dic_position Entity Model
/// cof_position Entity Model
/// </summary>
[Table("cof_position")]
public class cof_position
{
/// <summary>
......@@ -21,7 +23,7 @@ public class cof_position
public int ID { get; set; }
/// <summary>
/// 绩效id
///
/// </summary>
public Nullable<int> AllotID { get; set; }
......
//-----------------------------------------------------------------------
// <copyright file=" cof_income.cs">
// * FileName: cof_workyear.cs
// * history : 2019-03-25 13:10:58
// </copyright>
//
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// cof_workyear Entity Model
/// </summary>
[Table("cof_workyear")]
public class cof_workyear
{
/// <summary>
/// ID
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
/// 绩效id
///
/// </summary>
public Nullable<int> AllotID { get; set; }
/// <summary>
///
/// >
/// </summary>
public Nullable<decimal> MaxRange { get; set; }
/// <summary>
///
/// <=
/// </summary>
public Nullable<decimal> MinRange { get; set; }
......
//-----------------------------------------------------------------------
// <copyright file=" im_accountbasic.cs">
// * FileName: im_accountbasic.cs
// * history : 2019-03-20 09:47:33
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// im_accountbasic Entity Model
/// </summary>
[Table("im_accountbasic")]
public class im_accountbasic
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" im_data.cs">
// * FileName: im_data.cs
// * history : 2019-03-14 10:25:59
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// im_data Entity Model
/// </summary>
[Table("im_data")]
public class im_data
{
/// <summary>
......@@ -89,8 +91,9 @@ public class im_data
/// 单元格备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// SignID
///
/// </summary>
public string SignID { get; set; }
}
......
//-----------------------------------------------------------------------
// <copyright file=" im_employee.cs">
// * FileName: im_employee.cs
// * history : 2019-03-08 16:39:35
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// im_employee Entity Model
/// </summary>
[Table("im_employee")]
public class im_employee
{
/// <summary>
......@@ -32,6 +34,8 @@ public class im_employee
/// <summary>
/// 科室类别(例如 医技科室 临床科室 其他科室)
/// </summary>
public string AccountType { get; set; }
......
//-----------------------------------------------------------------------
// <copyright file=" im_header.cs">
// * FileName: im_header.cs
// * history : 2019-03-14 10:25:59
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// im_header Entity Model
/// </summary>
[Table("im_header")]
public class im_header
{
/// <summary>
......@@ -61,17 +63,18 @@ public class im_header
public Nullable<int> MergeCell { get; set; }
/// <summary>
/// 1 汇总 2原始数据
/// </summary>
public Nullable<int> IsTotal { get; set; }
/// <summary>
/// 单元格内容
/// </summary>
public string CellValue { get; set; }
/// <summary>
/// SignID
///
/// </summary>
public string SignID { get; set; }
/// <summary>
/// 1 汇总 2原始数据
/// </summary>
public Nullable<int> IsTotal { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_allot.cs">
// * FileName: sys_allot.cs
// * history : 2019-03-06 16:43:26
// <copyright file=" per_allot.cs">
// * FileName: per_allot.cs
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_allot Entity Model
/// per_allot Entity Model
/// </summary>
[Table("per_allot")]
public class per_allot
{
/// <summary>
......@@ -26,9 +28,14 @@ public class per_allot
public int HospitalId { get; set; }
/// <summary>
/// CreateUser
///
/// </summary>
public int? CreateUser { get; set; }
public Nullable<int> CreateUser { get; set; }
/// <summary>
/// 绩效统计时间
/// </summary>
public Nullable<DateTime> CreateDate { get; set; }
/// <summary>
/// 绩效发放年
......@@ -46,11 +53,6 @@ public class per_allot
public Nullable<decimal> AllotFee { get; set; }
/// <summary>
/// 绩效统计时间
/// </summary>
public Nullable<DateTime> CreateDate { get; set; }
/// <summary>
/// 文件路径
/// </summary>
public string Path { get; set; }
......
//-----------------------------------------------------------------------
// <copyright file=" im_sheet.cs">
// * FileName: im_sheet.cs
// * history : 2019-03-14 10:25:59
// <copyright file=" per_sheet.cs">
// * FileName: per_sheet.cs
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// im_sheet Entity Model
/// per_sheet Entity Model
/// </summary>
[Table("per_sheet")]
public class per_sheet
{
/// <summary>
......@@ -36,7 +38,7 @@ public class per_sheet
public Nullable<int> SheetType { get; set; }
/// <summary>
/// Դ 1 excel 2
/// 数据来源 1 excel 导入 2 计算
/// </summary>
public Nullable<int> Source { get; set; }
}
......
//-----------------------------------------------------------------------
// <copyright file=" im_accountdoctor.cs">
// * FileName: im_accountdoctor.cs
// * history : 2019-03-20 09:47:33
// <copyright file=" res_accountdoctor.cs">
// * FileName: res_accountdoctor.cs
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// im_accountdoctor Entity Model
/// res_accountdoctor Entity Model
/// </summary>
[Table("res_accountdoctor")]
public class res_accountdoctor
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" im_accountnurse.cs">
// * FileName: im_accountnurse.cs
// * history : 2019-03-20 09:47:33
// <copyright file=" res_accountnurse.cs">
// * FileName: res_accountnurse.cs
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// im_accountnurse Entity Model
/// res_accountnurse Entity Model
/// </summary>
[Table("res_accountnurse")]
public class res_accountnurse
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" res_baiscnorm.cs">
// * FileName: res_baiscnorm.cs
// * history : 2019-03-22 15:48:50
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// res_baiscnorm Entity Model
/// </summary>
[Table("res_baiscnorm")]
public class res_baiscnorm
{
/// <summary>
......@@ -38,16 +40,16 @@ public class res_baiscnorm
/// <summary>
/// 绩效总额
/// </summary>
public string TotelValue { get; set; }
public Nullable<decimal> TotelValue { get; set; }
/// <summary>
/// 人均绩效
/// </summary>
public string AvgValue { get; set; }
public Nullable<decimal> AvgValue { get; set; }
/// <summary>
/// 总人数
/// </summary>
public Nullable<int> TotelNumber { get; set; }
public Nullable<decimal> TotelNumber { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" res_compute.cs">
// * FileName: res_compute.cs
// * history : 2019-03-22 16:41:30
// * history : 2019-03-25 19:35:46
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// res_compute Entity Model
/// </summary>
[Table("res_compute")]
public class res_compute
{
/// <summary>
......@@ -71,6 +73,16 @@ public class res_compute
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; }
......@@ -81,11 +93,6 @@ public class res_compute
public Nullable<decimal> PerforSumFee { get; set; }
/// <summary>
/// 发放系数(来自人员名单)
/// </summary>
public Nullable<decimal> Grant { get; set; }
/// <summary>
/// 考核对分率(来自人员名单)
/// </summary>
public Nullable<decimal> ScoreAverageRate { get; set; }
......@@ -104,5 +111,25 @@ public class res_compute
/// 应发绩效(需计算)
/// </summary>
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">
// * FileName: sys_hospital.cs
// * history : 2019-03-05 14:05:41
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_hospital Entity Model
/// </summary>
[Table("sys_hospital")]
public class sys_hospital
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" sys_menu.cs">
// * FileName: sys_menu.cs
// * history : 2019-03-05 16:57:57
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_menu Entity Model
/// </summary>
[Table("sys_menu")]
public class sys_menu
{
/// <summary>
......@@ -41,14 +43,13 @@ public class sys_menu
public string MenuIcon { get; set; }
/// <summary>
/// 菜单类型 1 首页中出现 2 医院页中出现
/// 菜单状态 1 启用 2禁用
/// </summary>
public int MenuType { get; set; }
public int States { get; set; }
/// <summary>
/// 菜单状态 1 启用 2禁用
///
/// </summary>
public int States { get; set; }
public int Sort { get; set; }
public Nullable<int> Sort { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_role.cs">
// * FileName: sys_role.cs
// * history : 2019-03-05 16:57:57
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_role Entity Model
/// </summary>
[Table("sys_role")]
public class sys_role
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" sys_role_menu.cs">
// * FileName: sys_role_menu.cs
// * history : 2019-03-05 16:57:57
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_role_menu Entity Model
/// </summary>
[Table("sys_role_menu")]
public class sys_role_menu
{
/// <summary>
......@@ -23,11 +25,11 @@ public class sys_role_menu
/// <summary>
///
/// </summary>
public Nullable<int> RuleID { get; set; }
public int RoleID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> MenuID { get; set; }
public int MenuID { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_sms.cs">
// * FileName: sys_sms.cs
// * history : 2019-03-05 11:49:50
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_sms Entity Model
/// </summary>
[Table("sys_sms")]
public class sys_sms
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" sys_user_hospital.cs">
// * FileName: sys_user_hospital.cs
// * history : 2019-03-05 11:49:50
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_user_hospital Entity Model
/// </summary>
[Table("sys_user_hospital")]
public class sys_user_hospital
{
/// <summary>
......
//-----------------------------------------------------------------------
// <copyright file=" sys_user_role.cs">
// * FileName: sys_user_role.cs
// * history : 2019-03-05 16:57:57
// * history : 2019-03-25 11:33:14
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// sys_user_role Entity Model
/// </summary>
[Table("sys_user_role")]
public class sys_user_role
{
/// <summary>
......@@ -23,11 +25,11 @@ public class sys_user_role
/// <summary>
///
/// </summary>
public Nullable<int> RoleID { get; set; }
public int RoleID { get; set; }
/// <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
// * history : Created by T4 2019-03-25 13:14:55
// * history : Created by T4 2019-03-25 11:32:42
// </copyright>
using System;
//-----------------------------------------------------------------------
using Performance.EntityModels;
using System;
namespace Performance.Repository
{
/// <summary>
/// cof_workyear Repository
/// </summary>
public class PerforCofworkyearRepository : PerforRepository<cof_workyear>
{
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.EntityModels;
using Performance.Infrastructure;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -10,22 +11,35 @@ namespace Performance.Services
/// <summary>
/// 临床科室主任
/// </summary>
public class ComputeDirector
public class ComputeDirector : IAutoInjection
{
public void Compute(List<im_employee> empolyeeList, List<cof_position> positionList,
List<res_accountdoctor> doctorList, List<cof_director> directorList)
/// <summary>
/// 临床科室主任、临床科室副主任、临床科室护士长 计算
/// </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)
{
Dictionary<PerformanceType, string> keyValues = new Dictionary<PerformanceType, string>
{
var positions = positionList.Where(t => t.JobType == (int)EmpolyeeType.Director);
var needCompute = empolyeeList.Where(t => positions.Select(s => s.JobTitle).Contains(t.JobTitle));
{ PerformanceType.Director, "临床科室主任"},
{ PerformanceType.DeputyDirector, "临床科室副主任"},
{ PerformanceType.Nurse, "临床科室护士长"},
};
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 = doctorList.FirstOrDefault(t => t.AccountingUnit == item.AccountingUnit);
var efficiency = directorList.FirstOrDefault(t => t.TypeName == "效率绩效" && positions.Select(s => s.JobTitle).Contains(t.JobTitle));
var scale = directorList.FirstOrDefault(t => t.TypeName == "规模绩效" && positions.Select(s => s.JobTitle).Contains(t.JobTitle));
new res_compute
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
{
AllotID = item.AllotID,
SheetID = item.SheetID,
AccountType = item.AccountType,
AccountingUnit = item.AccountingUnit,
EmployeeName = item.DoctorName,
FitPeople = item.FitPeople,
......@@ -37,13 +51,120 @@ public class ComputeDirector
Scale = scale?.Value * resAccount?.PerforTotal,
Grant = item.Grant,
ShouldGiveFee = (efficiency?.Value * resAccount?.Avg + scale?.Value * resAccount?.PerforTotal) * item.Grant,
PerforSumFee = 0,
ScoreAverageRate = item.ScoreAverageRate,
Punishment = item.Punishment,
OtherPerfor = item.OtherPerfor,
GiveFee = item.AllotID,
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
{
PositionName = s.Key,
TotelNumber = s.Count(),
TotelValue = s.Sum(t => t.cp.GiveFee),
AvgValue = s.Sum(t => t.cp.GiveFee) / s.Count()
});
return result.ToList();
}
/// <summary>
/// 院领导、业务中层、工勤人员 计算
/// </summary>
/// <param name="empolyeeList"></param>
/// <param name="baiscnormList"></param>
/// <returns></returns>
public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_baiscnorm> baiscnormList, List<cof_workyear> workyearList)
{
PerformanceType[] types = new PerformanceType[]
{
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 System;
using System.Collections.Generic;
......@@ -24,5 +25,20 @@ public class NopiSevice
}
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
private PerforImHeaderRepository _perforImHeaderRepository;
private PerforImEmployeeRepository _perforImEmployeeRepository;
private PerforImaccountbasicRepository _perforImaccountbasicRepository;
private PerforResAccountdoctorRepository _perforImaccountdoctorRepository;
private PerforResAccountnurseRepository _perforImaccountnurseRepository;
private PerforResAccountnurseRepository _perforResAccountnurseRepository;
private PerforCofpositionRepository _perforCofpositionRepository;
private PerforCofdirectorRepository _perforCofdirectorRepository;
private PerforCofdrugpropRepository _perforCofdrugpropRepository;
private PerforCofincomeRepository _perforCofincomeRepository;
private PerforCofworkyearRepository _perforCofworkyearRepository;
private PerforResAccountdoctorRepository _perforResAccountdoctorRepository;
private PerforResAccountnurseRepository _perforResAccountnurseRepository;
private PerforResbaiscnormRepository _perforResbaiscnormRepository;
private PerforRescomputeRepository _perforRescomputeRepository;
private PerforPerAllotRepository _perforPerAllotRepository;
......@@ -43,18 +41,17 @@ public class PerExcelService : IAutoInjection
PerforImHeaderRepository perforImHeaderRepository,
PerforImEmployeeRepository perforImEmployeeRepository,
PerforImaccountbasicRepository perforImaccountbasicRepository,
PerforResAccountdoctorRepository perforImaccountdoctorRepository,
PerforResAccountnurseRepository perforImaccountnurseRepository,
PerforResAccountnurseRepository perforResAccountnurseRepository,
PerforCofpositionRepository perforCofpositionRepository,
PerforCofdirectorRepository perforCofdirectorRepository,
PerforCofdrugpropRepository perforCofdrugpropRepository,
PerforCofincomeRepository perforCofincomeRepository,
PerforCofworkyearRepository perforCofworkyearRepository,
PerforResAccountdoctorRepository perforResAccountdoctorRepository,
PerforResAccountnurseRepository perforResAccountnurseRepository,
PerforResbaiscnormRepository perforResbaiscnormRepository,
PerforRescomputeRepository perforRescomputeRepository,
PerforPerAllotRepository perforPerAllotRepository)
{
_perSheetService = perSheetService;
_perHeaderService = perHeaderService;
......@@ -63,11 +60,9 @@ public class PerExcelService : IAutoInjection
_perforImHeaderRepository = perforImHeaderRepository;
_perforImEmployeeRepository = perforImEmployeeRepository;
_perforImaccountbasicRepository = perforImaccountbasicRepository;
_perforImaccountdoctorRepository = perforImaccountdoctorRepository;
_perforImaccountnurseRepository = perforImaccountnurseRepository;
_perforResAccountnurseRepository = perforResAccountnurseRepository;
_perforCofpositionRepository = perforCofpositionRepository;
_perforResAccountdoctorRepository = perforResAccountdoctorRepository;
_perforResAccountnurseRepository = perforResAccountnurseRepository;
_perforCofdirectorRepository = perforCofdirectorRepository;
_perforCofdrugpropRepository = perforCofdrugpropRepository;
_perforCofincomeRepository = perforCofincomeRepository;
......@@ -75,16 +70,14 @@ public class PerExcelService : IAutoInjection
_perforResbaiscnormRepository = perforResbaiscnormRepository;
_perforRescomputeRepository = perforRescomputeRepository;
_perforPerAllotRepository = perforPerAllotRepository;
_perforResbaiscnormRepository = perforResbaiscnormRepository;
_perforRescomputeRepository = perforRescomputeRepository;
_perforCofworkyearRepository = perforCofworkyearRepository;
}
public void Execute(per_allot allot)
{
//清空当前绩效下数据
//Clear(allot.ID);
// 拷贝配置信息
//Copy(allot.ID);
// 导出数据
var excel = Import(allot.Path);
......@@ -97,13 +90,28 @@ public void Execute(per_allot allot)
// 保存过程数据
Save(list, allot.ID, 2);
var baiscnorm = NurseBaiscnorm(list);
// 计算最总数据
Compute(allot, excel);
Compute(allot, excel, baiscnorm);
//发送邮件
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)
{
......@@ -274,46 +282,58 @@ public void Save(List<PerSheet> perSheets, int allotId, int source)
{
var imdata = Mapper.Map<im_employee>(data);
imdata.SheetID = imsheet.ID;
imdata.AllotID = allotId;
_perforImEmployeeRepository.Add(imdata);
}
}
else if (sheet.SheetType == SheetType.DeptAccounting)
{
var dataList = sheet.PerData.Select(t => (PerDataAccountBaisc)t);
List<im_accountbasic> addList = new List<im_accountbasic>();
foreach (var data in dataList)
{
var imdata = Mapper.Map<im_accountbasic>(data);
imdata.SheetID = imsheet.ID;
_perforImaccountbasicRepository.Add(imdata);
imdata.AllotID = allotId;
addList.Add(imdata);
}
_perforImaccountbasicRepository.AddRange(addList.ToArray());
}
else if (sheet.SheetType == SheetType.ComputeDoctorAccount)
{
var dataList = sheet.PerData.Select(t => (PerDataAccountDoctor)t);
List<res_accountdoctor> addList = new List<res_accountdoctor>();
foreach (var data in dataList)
{
var imdata = Mapper.Map<res_accountdoctor>(data);
imdata.SheetID = imsheet.ID;
_perforImaccountdoctorRepository.Add(imdata);
imdata.AllotID = allotId;
addList.Add(imdata);
}
_perforResAccountdoctorRepository.AddRange(addList.ToArray());
}
else if (sheet.SheetType == SheetType.ComputeNurseAccount)
{
var dataList = sheet.PerData.Select(t => (PerDataAccountNurse)t);
List<res_accountnurse> addList = new List<res_accountnurse>();
foreach (var data in dataList)
{
var imdata = Mapper.Map<res_accountnurse>(data);
imdata.SheetID = imsheet.ID;
_perforImaccountnurseRepository.Add(imdata);
imdata.AllotID = allotId;
addList.Add(imdata);
}
_perforResAccountnurseRepository.AddRange(addList.ToArray());
}
else
{
List<im_header> addHeadList = new List<im_header>();
foreach (var header in sheet.PerHeader)
{
var imheader = Mapper.Map<im_header>(header);
imheader.SheetID = imsheet.ID;
_perforImHeaderRepository.Add(imheader);
imheader.AllotID = allotId;
addHeadList.Add(imheader);
if (header.IsHasChildren)
{
foreach (var child in header.Children)
......@@ -321,17 +341,22 @@ public void Save(List<PerSheet> perSheets, int allotId, int source)
var imheaderChild = Mapper.Map<im_header>(child);
imheaderChild.SheetID = imsheet.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);
foreach (var data in dataList)
{
var imdata = Mapper.Map<im_data>(data);
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
/// 计算最终数据
/// </summary>
/// <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 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 workyearList = _perforCofworkyearRepository.GetEntities();
//规模绩效和效率绩效配置表
var directorList = _perforCofdirectorRepository.GetEntities();
//取出
//取出医生科室
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);
//根据不同人员执行不同算法
//empolyeeList.Where(t=>t.)
ComputeDirector computeDirector = new ComputeDirector();
var computResult = computeDirector.Compute(computeEmployees, computeSources, directorList);
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
/// <summary>
/// 科室经济核算汇总表 (收入/其他收入/支出)
/// </summary>
public class PerSheetDataComputeEconomic
public class PerSheetDataComputeEconomic : IAutoInjection
{
#region 合并科室经济
/// <summary>
......
......@@ -11,7 +11,7 @@ namespace Performance.Services
/// <summary>
/// 工作量
/// </summary>
public class PerSheetDataComputeWorkload
public class PerSheetDataComputeWorkload : IAutoInjection
{
#region 工作量一次计算
/// <summary>
......
......@@ -6,7 +6,7 @@
namespace Performance.Services
{
public interface IPerSheetDataRead
public interface IPerSheetDataRead : IAutoInjection
{
/// <summary>
/// excel 列头及数据 配置信息
......
......@@ -37,14 +37,14 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{
RowNumber = r,
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(),
JobTitle = 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(),
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()),
ScoreAverageRate = ConvertHelper.To<decimal?>(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()),
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()),
Workload = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "工作量绩效").PointCell).ToString()),
......
......@@ -101,6 +101,7 @@ private void CommonExport(int sheetID, SheetExportResponse response)
var headList = _perforImHeaderRepository.GetEntities(t => t.SheetID == sheetID).OrderBy(t => t.PointCell);
var dataList = _perforImDataRepository.GetEntities(t => t.SheetID == sheetID);
if (dataList == null || dataList.Count == 0) return;
//创建列头行
var rowhead = new Row(0);
......
......@@ -12,6 +12,9 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1.site", "1.site", "{69CFD3FA-0B61-41D4-A9E8-44B933001293}"
EndProject
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
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3.repository", "3.repository", "{95E7A23D-DC0E-4C27-AD7C-EAF4917012EF}"
EndProject
......@@ -23,7 +26,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Performance.DtoModels", "Pe
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Performance.EntityModels", "Performance.EntityModels\Performance.EntityModels.csproj", "{F7708C0C-0B0B-4E7E-A995-E39F7044FD11}"
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
Global
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