Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
performance
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zry
performance
Commits
8a19fa10
Commit
8a19fa10
authored
Mar 25, 2019
by
ruyun.zhang@suvalue.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
人员计算
parent
5e8f6891
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
44 changed files
with
758 additions
and
162 deletions
+758
-162
performance/Performance.Api/Controllers/AllotController.cs
+2
-2
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
+5
-0
performance/Performance.DtoModels/PerExcel/ComputeEmployee.cs
+94
-0
performance/Performance.DtoModels/PerExcel/ComputeResult.cs
+114
-0
performance/Performance.DtoModels/PerExcel/ComputeSource.cs
+84
-0
performance/Performance.DtoModels/PerExcel/ExcelEnum.cs
+28
-20
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
+2
-1
performance/Performance.EntityModels/Entity/Sys_User.cs
+3
-1
performance/Performance.EntityModels/Entity/cof_director.cs
+8
-1
performance/Performance.EntityModels/Entity/cof_drugprop.cs
+3
-1
performance/Performance.EntityModels/Entity/cof_income.cs
+8
-1
performance/Performance.EntityModels/Entity/cof_position.cs
+16
-4
performance/Performance.EntityModels/Entity/cof_workyear.cs
+45
-0
performance/Performance.EntityModels/Entity/im_accountbasic.cs
+3
-1
performance/Performance.EntityModels/Entity/im_data.cs
+5
-2
performance/Performance.EntityModels/Entity/im_employee.cs
+5
-1
performance/Performance.EntityModels/Entity/im_header.cs
+10
-7
performance/Performance.EntityModels/Entity/per_allot.cs
+13
-11
performance/Performance.EntityModels/Entity/per_sheet.cs
+7
-5
performance/Performance.EntityModels/Entity/res_accountdoctor.cs
+6
-4
performance/Performance.EntityModels/Entity/res_accountnurse.cs
+6
-4
performance/Performance.EntityModels/Entity/res_baiscnorm.cs
+6
-4
performance/Performance.EntityModels/Entity/res_compute.cs
+33
-6
performance/Performance.EntityModels/Entity/sys_hospital.cs
+3
-1
performance/Performance.EntityModels/Entity/sys_menu.cs
+7
-6
performance/Performance.EntityModels/Entity/sys_role.cs
+3
-1
performance/Performance.EntityModels/Entity/sys_role_menu.cs
+5
-3
performance/Performance.EntityModels/Entity/sys_sms.cs
+3
-1
performance/Performance.EntityModels/Entity/sys_user_hospital.cs
+3
-1
performance/Performance.EntityModels/Entity/sys_user_role.cs
+5
-3
performance/Performance.Repository/PerforCofworkyearRepository.cs
+21
-0
performance/Performance.Services/PerExcelService/ComputeEmpolyee/BaiscNormService.cs
+39
-0
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDeputyDirector.cs
+0
-17
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+135
-14
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeMedicalTechnician .cs
+0
-14
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeNurse.cs
+0
-17
performance/Performance.Services/PerExcelService/NopiSevice.cs
+17
-1
performance/Performance.Services/PerExcelService/PerExcelService.cs
+0
-0
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeEconomic.cs
+1
-1
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeWorkload.cs
+1
-1
performance/Performance.Services/PerExcelService/SheetDataRead/IPerSheetDataRead.cs
+1
-1
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadEmployee.cs
+3
-3
performance/Performance.Services/SheetSevice.cs
+1
-0
performance/performance.sln
+4
-1
No files found.
performance/Performance.Api/Controllers/AllotController.cs
View file @
8a19fa10
...
...
@@ -148,8 +148,8 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody]Al
var
allot
=
_allotService
.
GetAllot
(
request
.
ID
);
if
(
null
==
allot
||
string
.
IsNullOrEmpty
(
allot
.
Path
))
throw
new
PerformanceException
(
"当前绩效记录不存在或没有上传数据文件"
);
//
_perExcelService.Execute(allot);
BackgroundJob
.
Enqueue
(()
=>
_perExcelService
.
Execute
(
allot
));
_perExcelService
.
Execute
(
allot
);
//
BackgroundJob.Enqueue(() => _perExcelService.Execute(allot));
return
new
ApiResponse
(
ResponseType
.
OK
);
}
}
...
...
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
View file @
8a19fa10
...
...
@@ -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
>();
}
}
}
performance/Performance.DtoModels/PerExcel/ComputeEmployee.cs
0 → 100644
View file @
8a19fa10
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
;
}
}
}
performance/Performance.DtoModels/PerExcel/ComputeResult.cs
0 → 100644
View file @
8a19fa10
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
;
}
}
}
performance/Performance.DtoModels/PerExcel/ComputeSource.cs
0 → 100644
View file @
8a19fa10
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
;
}
}
}
performance/Performance.DtoModels/PerExcel/ExcelEnum.cs
View file @
8a19fa10
...
...
@@ -45,27 +45,35 @@ public enum SheetType
}
/// <summary>
///
职位归类
///
绩效类型
/// </summary>
public
enum
Empolye
eType
public
enum
Performanc
eType
{
/// <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
,
}
}
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
View file @
8a19fa10
...
...
@@ -32,6 +32,7 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public
virtual
DbSet
<
cof_director
>
Cof_Director
{
get
;
set
;
}
public
virtual
DbSet
<
res_baiscnorm
>
Res_Baiscnorm
{
get
;
set
;
}
public
virtual
DbSet
<
res_compute
>
Res_Compute
{
get
;
set
;
}
public
virtual
DbSet
<
cof_position
>
Dic_Position
{
get
;
set
;
}
public
virtual
DbSet
<
cof_position
>
Cof_Position
{
get
;
set
;
}
public
virtual
DbSet
<
cof_workyear
>
Cof_Workyear
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/Sys_User.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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>
...
...
performance/Performance.EntityModels/Entity/cof_director.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file=" cof_director.cs">
// * FileName: cof_director.cs
// * history : 2019-03-2
2 15:48:50
// * history : 2019-03-2
5 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>
...
...
@@ -23,6 +25,11 @@ public class cof_director
/// <summary>
///
/// </summary>
public
Nullable
<
int
>
AllotID
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
string
TypeName
{
get
;
set
;
}
/// <summary>
...
...
performance/Performance.EntityModels/Entity/cof_drugprop.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file=" cof_drugprop.cs">
// * FileName: cof_drugprop.cs
// * history : 2019-03-2
0 16:16:15
// * history : 2019-03-2
5 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>
...
...
performance/Performance.EntityModels/Entity/cof_income.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file=" cof_income.cs">
// * FileName: cof_income.cs
// * history : 2019-03-2
1 15:03:58
// * history : 2019-03-2
5 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>
...
...
@@ -21,6 +23,11 @@ public class cof_income
public
int
ID
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Nullable
<
int
>
AllotID
{
get
;
set
;
}
/// <summary>
/// 关键字匹配
/// </summary>
public
string
SheetNameKeyword
{
get
;
set
;
}
...
...
performance/Performance.EntityModels/Entity/cof_position.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file="
dic
_position.cs">
// * FileName:
dic
_position.cs
// * history : 2019-03-2
2 15:48:50
// <copyright file="
cof
_position.cs">
// * FileName:
cof
_position.cs
// * history : 2019-03-2
5 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,6 +23,11 @@ public class cof_position
public
int
ID
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Nullable
<
int
>
AllotID
{
get
;
set
;
}
/// <summary>
/// 职位名称
/// </summary>
public
string
JobTitle
{
get
;
set
;
}
...
...
@@ -31,6 +38,11 @@ public class cof_position
public
Nullable
<
int
>
JobType
{
get
;
set
;
}
/// <summary>
/// 额外补偿系数
/// </summary>
public
Nullable
<
decimal
>
ExtraFactor
{
get
;
set
;
}
/// <summary>
/// 职位类别 1 普通类别 2 基础绩效来源
/// </summary>
public
Nullable
<
int
>
State
{
get
;
set
;
}
...
...
performance/Performance.EntityModels/Entity/cof_workyear.cs
0 → 100644
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file=" cof_workyear.cs">
// * FileName: cof_workyear.cs
// * history : 2019-03-25 11:33:14
// </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>
///
/// </summary>
[
Key
]
public
int
ID
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Nullable
<
int
>
AllotID
{
get
;
set
;
}
/// <summary>
/// >
/// </summary>
public
Nullable
<
decimal
>
MaxRange
{
get
;
set
;
}
/// <summary>
/// <=
/// </summary>
public
Nullable
<
decimal
>
MinRange
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Nullable
<
decimal
>
Value
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/im_accountbasic.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file=" im_accountbasic.cs">
// * FileName: im_accountbasic.cs
// * history : 2019-03-2
0 09:47:33
// * history : 2019-03-2
5 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>
...
...
performance/Performance.EntityModels/Entity/im_data.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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
;
}
}
...
...
performance/Performance.EntityModels/Entity/im_employee.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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
;
}
...
...
performance/Performance.EntityModels/Entity/im_header.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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
;
}
}
}
performance/Performance.EntityModels/Entity/per_allot.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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
;
}
...
...
performance/Performance.EntityModels/Entity/per_sheet.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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
;
}
}
...
...
performance/Performance.EntityModels/Entity/res_accountdoctor.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file="
im
_accountdoctor.cs">
// * FileName:
im
_accountdoctor.cs
// * history : 2019-03-2
0 09:47:33
// <copyright file="
res
_accountdoctor.cs">
// * FileName:
res
_accountdoctor.cs
// * history : 2019-03-2
5 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>
...
...
performance/Performance.EntityModels/Entity/res_accountnurse.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file="
im
_accountnurse.cs">
// * FileName:
im
_accountnurse.cs
// * history : 2019-03-2
0 09:47:33
// <copyright file="
res
_accountnurse.cs">
// * FileName:
res
_accountnurse.cs
// * history : 2019-03-2
5 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>
...
...
performance/Performance.EntityModels/Entity/res_baiscnorm.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file=" res_baiscnorm.cs">
// * FileName: res_baiscnorm.cs
// * history : 2019-03-2
2 15:48:50
// * history : 2019-03-2
5 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
;
}
}
}
performance/Performance.EntityModels/Entity/res_compute.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file=" res_compute.cs">
// * FileName: res_compute.cs
// * history : 2019-03-2
2 16:41:30
// * history : 2019-03-2
5 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
;
}
}
}
performance/Performance.EntityModels/Entity/sys_hospital.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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>
...
...
performance/Performance.EntityModels/Entity/sys_menu.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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
;
}
}
}
performance/Performance.EntityModels/Entity/sys_role.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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>
...
...
performance/Performance.EntityModels/Entity/sys_role_menu.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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
>
Ru
leID
{
get
;
set
;
}
public
int
Ro
leID
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Nullable
<
int
>
MenuID
{
get
;
set
;
}
public
int
MenuID
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/sys_sms.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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>
...
...
performance/Performance.EntityModels/Entity/sys_user_hospital.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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>
...
...
performance/Performance.EntityModels/Entity/sys_user_role.cs
View file @
8a19fa10
//-----------------------------------------------------------------------
// <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
;
}
}
}
performance/Performance.Repository/PerforCofworkyearRepository.cs
0 → 100644
View file @
8a19fa10
//-----------------------------------------------------------------------
// <copyright file=" cof_workyear.cs">
// * FileName: cof_workyear.cs
// * history : Created by T4 2019-03-25 11:32:42
// </copyright>
//-----------------------------------------------------------------------
using
System
;
using
Performance.EntityModels
;
namespace
Performance.Repository
{
/// <summary>
/// cof_workyear Repository
/// </summary>
public
class
PerforCofworkyearRepository
:
PerforRepository
<
cof_workyear
>
{
public
PerforCofworkyearRepository
(
PerformanceDbContext
context
)
:
base
(
context
)
{
}
}
}
performance/Performance.Services/PerExcelService/ComputeEmpolyee/BaiscNormService.cs
0 → 100644
View file @
8a19fa10
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.95
m
;
}
if
(
result
.
HasValue
)
result
=
Math
.
Round
(
result
.
Value
,
4
);
return
result
;
}
}
}
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDeputyDirector.cs
deleted
100644 → 0
View file @
5e8f6891
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
();
}
}
}
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
8a19fa10
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
=
doctor
List
.
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
=
nurse
List
.
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.5
m
)
compute
.
PerforSumFee
=
(
compute
.
Avg
??
0
)
*
2.5
m
;
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.0
m
;
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
;
}
}
}
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeMedicalTechnician .cs
deleted
100644 → 0
View file @
5e8f6891
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.Services
{
public
class
ComputeMedicalTechnician
{
public
void
Compute
(
List
<
EntityModels
.
im_employee
>
empolyeeList
)
{
}
}
}
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeNurse.cs
deleted
100644 → 0
View file @
5e8f6891
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
();
}
}
}
performance/Performance.Services/PerExcelService/NopiSevice.cs
View file @
8a19fa10
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
;
}
}
}
performance/Performance.Services/PerExcelService/PerExcelService.cs
View file @
8a19fa10
This diff is collapsed.
Click to expand it.
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeEconomic.cs
View file @
8a19fa10
...
...
@@ -11,7 +11,7 @@ namespace Performance.Services
/// <summary>
/// 科室经济核算汇总表 (收入/其他收入/支出)
/// </summary>
public
class
PerSheetDataComputeEconomic
public
class
PerSheetDataComputeEconomic
:
IAutoInjection
{
#
region
合并科室经济
/// <summary>
...
...
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeWorkload.cs
View file @
8a19fa10
...
...
@@ -11,7 +11,7 @@ namespace Performance.Services
/// <summary>
/// 工作量
/// </summary>
public
class
PerSheetDataComputeWorkload
public
class
PerSheetDataComputeWorkload
:
IAutoInjection
{
#
region
工作量一次计算
/// <summary>
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/IPerSheetDataRead.cs
View file @
8a19fa10
...
...
@@ -6,7 +6,7 @@
namespace
Performance.Services
{
public
interface
IPerSheetDataRead
public
interface
IPerSheetDataRead
:
IAutoInjection
{
/// <summary>
/// excel 列头及数据 配置信息
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadEmployee.cs
View file @
8a19fa10
...
...
@@ -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
()),
...
...
performance/Performance.Services/SheetSevice.cs
View file @
8a19fa10
...
...
@@ -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
);
...
...
performance/performance.sln
View file @
8a19fa10
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment