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
bf6a7751
Commit
bf6a7751
authored
Oct 23, 2020
by
ruyun.zhang@suvalue.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/公式1009修改' into v2020morge
parents
ab222643
dbcf0688
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
419 additions
and
146 deletions
+419
-146
performance/Performance.Api/Controllers/ComputeController.cs
+14
-0
performance/Performance.Api/wwwroot/Performance.Api.xml
+7
-0
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+65
-10
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+0
-10
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
+2
-2
performance/Performance.DtoModels/PerExcel/ComputeResult.cs
+11
-6
performance/Performance.DtoModels/PerExcel/ExcelEnum.cs
+17
-0
performance/Performance.DtoModels/PerExcel/PerDataAccountBaisc.cs
+51
-11
performance/Performance.DtoModels/PerExcel/PerDataClinicEmployee.cs
+4
-4
performance/Performance.DtoModels/Response/DeptDetailResponse.cs
+1
-1
performance/Performance.EntityModels/Entity/im_accountbasic.cs
+4
-4
performance/Performance.EntityModels/Entity/res_account.cs
+4
-4
performance/Performance.Services/AllotCompute/BaiscNormService.cs
+3
-3
performance/Performance.Services/AllotCompute/ProcessComputService.cs
+6
-4
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+35
-19
performance/Performance.Services/AllotService.cs
+2
-2
performance/Performance.Services/ComputeService.cs
+87
-21
performance/Performance.Services/OriginalService.cs
+1
-1
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+60
-34
performance/Performance.Services/PerExcelService/ExcelReadConfig.cs
+3
-3
performance/Performance.Services/PerExcelService/PerSheetDataFactory.cs
+23
-4
performance/Performance.Services/PerExcelService/PerSheetService.cs
+17
-1
performance/Performance.Services/SheetSevice.cs
+2
-2
No files found.
performance/Performance.Api/Controllers/ComputeController.cs
View file @
bf6a7751
...
@@ -290,5 +290,18 @@ public ApiResponse GetBaiscnorm([FromBody] ComputerRequest request)
...
@@ -290,5 +290,18 @@ public ApiResponse GetBaiscnorm([FromBody] ComputerRequest request)
var
list
=
_computeService
.
GetBaiscnorm
(
request
.
AllotId
);
var
list
=
_computeService
.
GetBaiscnorm
(
request
.
AllotId
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
list
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
list
);
}
}
/// <summary>
/// 医生绩效详情
/// </summary>
/// <param name="computeId"></param>
/// <returns></returns>
[
Route
(
"doctordetail/{computeId}"
)]
[
HttpPost
]
public
ApiResponse
DoctorDetail
(
int
computeId
)
{
var
result
=
_computeService
.
GetDoctorDetail
(
computeId
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
}
}
}
}
\ No newline at end of file
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
bf6a7751
...
@@ -393,6 +393,13 @@
...
@@ -393,6 +393,13 @@
<param
name=
"request"
></param>
<param
name=
"request"
></param>
<returns></returns>
<returns></returns>
</member>
</member>
<member
name=
"M:Performance.Api.Controllers.ComputeController.DoctorDetail(System.Int32)"
>
<summary>
医生绩效详情
</summary>
<param
name=
"computeId"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ConfigController.GetDrugList(Performance.DtoModels.DrugpropRequest)"
>
<member
name=
"M:Performance.Api.Controllers.ConfigController.GetDrugList(Performance.DtoModels.DrugpropRequest)"
>
<summary>
<summary>
获取 药占比配置信息列表
获取 药占比配置信息列表
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
bf6a7751
...
@@ -596,7 +596,12 @@
...
@@ -596,7 +596,12 @@
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.ShouldGiveFee"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.ShouldGiveFee"
>
<summary>
<summary>
应发管理绩效(需计算)
考核前管理绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.AssessLaterManagementFee"
>
<summary>
考核后管理绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.PerforSumFee"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.PerforSumFee"
>
...
@@ -646,7 +651,7 @@
...
@@ -646,7 +651,7 @@
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.GiveFee"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.GiveFee"
>
<summary>
<summary>
应发绩效 考核
前
(需计算)
应发绩效 考核
后
(需计算)
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.BaiscNormPerforTotal"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.BaiscNormPerforTotal"
>
...
@@ -679,11 +684,6 @@
...
@@ -679,11 +684,6 @@
工号
工号
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.ManagerNumber"
>
<summary>
科主任/护士长人数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.ComputeResult.MedicalNumber"
>
<member
name=
"P:Performance.DtoModels.ComputeResult.MedicalNumber"
>
<summary>
<summary>
核算单元人员数量
核算单元人员数量
...
@@ -777,6 +777,21 @@
...
@@ -777,6 +777,21 @@
<member
name=
"F:Performance.DtoModels.SheetType.OtherWorkload"
>
<member
name=
"F:Performance.DtoModels.SheetType.OtherWorkload"
>
<summary>
其他工作量(不参与核算)
</summary>
<summary>
其他工作量(不参与核算)
</summary>
</member>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.BudgetRatio"
>
<summary>
预算比例
</summary>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.AssessBeforeOtherFee"
>
<summary>
科室考核前其他绩效
</summary>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.PersonOtherManagePerforFee"
>
<summary>
其他管理绩效
</summary>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.PersonAdjustLaterOtherManagePerforFee"
>
<summary>
调节后其他管理绩效
</summary>
</member>
<member
name=
"F:Performance.DtoModels.SheetType.PersonPostCoefficient"
>
<summary>
个人岗位系数
</summary>
</member>
<member
name=
"T:Performance.DtoModels.AccountUnitType"
>
<member
name=
"T:Performance.DtoModels.AccountUnitType"
>
<summary>
<summary>
核算单元类型
核算单元类型
...
@@ -905,9 +920,14 @@
...
@@ -905,9 +920,14 @@
核算单元
核算单元
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.
ManagerNumber
"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.
EmployeeName
"
>
<summary>
<summary>
科主任/护士长数量
医生姓名
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.PermanentStaff"
>
<summary>
效率绩效人数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Number"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Number"
>
...
@@ -950,6 +970,16 @@
...
@@ -950,6 +970,16 @@
考核对分率
考核对分率
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AssessLaterManagementFee"
>
<summary>
考核后管理绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Management"
>
<summary>
管理绩效发放系数
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AssessLaterOtherFee"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AssessLaterOtherFee"
>
<summary>
<summary>
考核后其他绩效
考核后其他绩效
...
@@ -970,16 +1000,36 @@
...
@@ -970,16 +1000,36 @@
规模绩效系数
规模绩效系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.ScalePerfor"
>
<summary>
规模绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Effic"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Effic"
>
<summary>
<summary>
效率绩效系数
效率绩效系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.EfficPerfor"
>
<summary>
效率绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Attendance"
>
<summary>
出勤率
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Grant"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.Grant"
>
<summary>
<summary>
发放系数
发放系数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.ShouldGiveFee"
>
<summary>
应发管理绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.MedicineFactor"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.MedicineFactor"
>
<summary>
<summary>
药占比系数
药占比系数
...
@@ -1015,6 +1065,11 @@
...
@@ -1015,6 +1065,11 @@
人均绩效
人均绩效
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.AvgPerfor"
>
<summary>
人均核算绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.RealGiveFee"
>
<member
name=
"P:Performance.DtoModels.PerDataAccountBaisc.RealGiveFee"
>
<summary>
<summary>
实发绩效
实发绩效
...
@@ -2645,7 +2700,7 @@
...
@@ -2645,7 +2700,7 @@
<summary>
收入项名称
</summary>
<summary>
收入项名称
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.DetailDtos`1.IncomeType"
>
<member
name=
"P:Performance.DtoModels.DetailDtos`1.IncomeType"
>
<summary>
1、收入 2、支出 3、工作量 4、特殊科室 5、科室奖罚 6、科室药占比考核 7、科室材料占比考核
</summary>
<summary>
1、收入 2、支出 3、工作量 4、特殊科室 5、科室奖罚 6、科室药占比考核 7、科室材料占比考核
8、调节后其他绩效
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.DetailDtos`1.Amount"
>
<member
name=
"P:Performance.DtoModels.DetailDtos`1.Amount"
>
<summary>
金额
</summary>
<summary>
金额
</summary>
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
bf6a7751
...
@@ -2033,11 +2033,6 @@
...
@@ -2033,11 +2033,6 @@
定科人数
定科人数
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.EntityModels.im_accountbasic.DoctorDirectorNumber"
>
<summary>
科主任数量
</summary>
</member>
<member
name=
"P:Performance.EntityModels.im_accountbasic.DoctorNumber"
>
<member
name=
"P:Performance.EntityModels.im_accountbasic.DoctorNumber"
>
<summary>
<summary>
核算单元医生数量
核算单元医生数量
...
@@ -4288,11 +4283,6 @@
...
@@ -4288,11 +4283,6 @@
是否带入平均计算 是 否
是否带入平均计算 是 否
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.EntityModels.res_account.ManagerNumber"
>
<summary>
科主任/护士长数量
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_account.Number"
>
<member
name=
"P:Performance.EntityModels.res_account.Number"
>
<summary>
<summary>
核算单元医生数量
核算单元医生数量
...
...
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
View file @
bf6a7751
...
@@ -111,11 +111,11 @@ public AutoMapperConfigs()
...
@@ -111,11 +111,11 @@ public AutoMapperConfigs()
.
ForMember
(
dest
=>
dest
.
UnitType
,
opt
=>
opt
.
MapFrom
(
src
=>
EnumHelper
.
GetItems
<
UnitType
>().
First
(
t
=>
t
.
Name
==
src
.
UnitType
.
Replace
(
"行政工勤"
,
"行政后勤"
)).
Value
))
.
ForMember
(
dest
=>
dest
.
UnitType
,
opt
=>
opt
.
MapFrom
(
src
=>
EnumHelper
.
GetItems
<
UnitType
>().
First
(
t
=>
t
.
Name
==
src
.
UnitType
.
Replace
(
"行政工勤"
,
"行政后勤"
)).
Value
))
.
ForMember
(
dest
=>
dest
.
DoctorAccountingUnit
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
AccountingUnit
))
.
ForMember
(
dest
=>
dest
.
DoctorAccountingUnit
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
AccountingUnit
))
//.ForMember(dest => dest.Department, opt => opt.MapFrom(src => src.Department))
//.ForMember(dest => dest.Department, opt => opt.MapFrom(src => src.Department))
.
ForMember
(
dest
=>
dest
.
DoctorDirectorNumber
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ManagerNumber
))
//
.ForMember(dest => dest.DoctorDirectorNumber, opt => opt.MapFrom(src => src.ManagerNumber))
.
ForMember
(
dest
=>
dest
.
DoctorNumber
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
Number
))
.
ForMember
(
dest
=>
dest
.
DoctorNumber
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
Number
))
.
ForMember
(
dest
=>
dest
.
DoctorBasicFactor
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
BasicFactor
))
.
ForMember
(
dest
=>
dest
.
DoctorBasicFactor
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
BasicFactor
))
//.ForMember(dest => dest.DoctorSlopeFactor, opt => opt.MapFrom(src => src.SlopeFactor))
//.ForMember(dest => dest.DoctorSlopeFactor, opt => opt.MapFrom(src => src.SlopeFactor))
.
ForMember
(
dest
=>
dest
.
DoctorOtherPerfor1
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
OtherPerfor1
))
//
.ForMember(dest => dest.DoctorOtherPerfor1, opt => opt.MapFrom(src => src.OtherPerfor1))
//.ForMember(dest => dest.DoctorOtherPerfor2, opt => opt.MapFrom(src => src.OtherPerfor2))
//.ForMember(dest => dest.DoctorOtherPerfor2, opt => opt.MapFrom(src => src.OtherPerfor2))
//.ForMember(dest => dest.DoctorExtra, opt => opt.MapFrom(src => src.Extra))
//.ForMember(dest => dest.DoctorExtra, opt => opt.MapFrom(src => src.Extra))
.
ForMember
(
dest
=>
dest
.
DoctorScoringAverage
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ScoringAverage
))
.
ForMember
(
dest
=>
dest
.
DoctorScoringAverage
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ScoringAverage
))
...
...
performance/Performance.DtoModels/PerExcel/ComputeResult.cs
View file @
bf6a7751
...
@@ -71,11 +71,16 @@ public class ComputeResult
...
@@ -71,11 +71,16 @@ public class ComputeResult
public
Nullable
<
decimal
>
Grant
{
get
;
set
;
}
public
Nullable
<
decimal
>
Grant
{
get
;
set
;
}
/// <summary>
/// <summary>
///
应发管理绩效(需计算)
///
考核前管理绩效
/// </summary>
/// </summary>
public
Nullable
<
decimal
>
ShouldGiveFee
{
get
;
set
;
}
public
Nullable
<
decimal
>
ShouldGiveFee
{
get
;
set
;
}
/// <summary>
/// <summary>
/// 考核后管理绩效
/// </summary>
public
Nullable
<
decimal
>
AssessLaterManagementFee
{
get
;
set
;
}
/// <summary>
/// 绩效合计 考核前(需计算)
/// 绩效合计 考核前(需计算)
/// </summary>
/// </summary>
public
Nullable
<
decimal
>
PerforSumFee
{
get
;
set
;
}
public
Nullable
<
decimal
>
PerforSumFee
{
get
;
set
;
}
...
@@ -121,7 +126,7 @@ public class ComputeResult
...
@@ -121,7 +126,7 @@ public class ComputeResult
public
Nullable
<
decimal
>
OtherPerfor
{
get
;
set
;
}
public
Nullable
<
decimal
>
OtherPerfor
{
get
;
set
;
}
/// <summary>
/// <summary>
/// 应发绩效 考核
前
(需计算)
/// 应发绩效 考核
后
(需计算)
/// </summary>
/// </summary>
public
Nullable
<
decimal
>
GiveFee
{
get
;
set
;
}
public
Nullable
<
decimal
>
GiveFee
{
get
;
set
;
}
...
@@ -174,10 +179,10 @@ public class ComputeResult
...
@@ -174,10 +179,10 @@ public class ComputeResult
///// </summary>
///// </summary>
//public decimal? Workload { get; set; }
//public decimal? Workload { get; set; }
/// <summary>
///
//
<summary>
/// 科主任/护士长人数
///
//
科主任/护士长人数
/// </summary>
///
//
</summary>
public
Nullable
<
decimal
>
ManagerNumber
{
get
;
set
;
}
//
public Nullable<decimal> ManagerNumber { get; set; }
/// <summary>
/// <summary>
/// 核算单元人员数量
/// 核算单元人员数量
...
...
performance/Performance.DtoModels/PerExcel/ExcelEnum.cs
View file @
bf6a7751
...
@@ -131,6 +131,23 @@ public enum SheetType
...
@@ -131,6 +131,23 @@ public enum SheetType
/// <summary> 其他工作量(不参与核算) </summary>
/// <summary> 其他工作量(不参与核算) </summary>
[
Description
(
"其他工作量"
)]
[
Description
(
"其他工作量"
)]
OtherWorkload
=
28
,
OtherWorkload
=
28
,
/// <summary> 预算比例 </summary>
[
Description
(
"预算比例"
)]
BudgetRatio
=
30
,
/// <summary> 科室考核前其他绩效 </summary>
[
Description
(
"科室考核前其他绩效"
)]
AssessBeforeOtherFee
=
31
,
/// <summary> 其他管理绩效 </summary>
[
Description
(
"其他管理绩效"
)]
PersonOtherManagePerforFee
=
32
,
/// <summary> 调节后其他管理绩效 </summary>
[
Description
(
"调节后其他管理绩效"
)]
PersonAdjustLaterOtherManagePerforFee
=
33
,
/// <summary> 个人岗位系数 </summary>
[
Description
(
"个人岗位系数"
)]
PersonPostCoefficient
=
34
,
}
}
/// <summary>
/// <summary>
...
...
performance/Performance.DtoModels/PerExcel/PerDataAccountBaisc.cs
View file @
bf6a7751
...
@@ -28,20 +28,25 @@ public class PerDataAccountBaisc : IPerData
...
@@ -28,20 +28,25 @@ public class PerDataAccountBaisc : IPerData
/// </summary>
/// </summary>
public
string
AccountingUnit
{
get
;
set
;
}
public
string
AccountingUnit
{
get
;
set
;
}
/// <summary>
/// 医生姓名
/// </summary>
public
string
EmployeeName
{
get
;
set
;
}
///// <summary>
///// <summary>
///// 科室名称
///// 科室名称
///// </summary>
///// </summary>
//public string Department { get; set; }
//public string Department { get; set; }
///// <summary>
///// 效率绩效人数
///// </summary>
//public decimal PermanentStaff { get; set; }
/// <summary>
/// <summary>
///
科主任/护士长数量
///
效率绩效人数
/// </summary>
/// </summary>
public
decimal
ManagerNumber
{
get
;
set
;
}
public
decimal
PermanentStaff
{
get
;
set
;
}
///// <summary>
///// 科主任/护士长数量
///// </summary>
//public decimal ManagerNumber { get; set; }
/// <summary>
/// <summary>
/// 核算单元医生数量
/// 核算单元医生数量
...
@@ -58,10 +63,10 @@ public class PerDataAccountBaisc : IPerData
...
@@ -58,10 +63,10 @@ public class PerDataAccountBaisc : IPerData
///// </summary>
///// </summary>
//public decimal SlopeFactor { get; set; }
//public decimal SlopeFactor { get; set; }
/// <summary>
///
//
<summary>
/// 其他绩效1
///
//
其他绩效1
/// </summary>
///
//
</summary>
public
decimal
OtherPerfor1
{
get
;
set
;
}
//
public decimal OtherPerfor1 { get; set; }
/// <summary>
/// <summary>
/// 考核前其他绩效
/// 考核前其他绩效
...
@@ -94,6 +99,16 @@ public class PerDataAccountBaisc : IPerData
...
@@ -94,6 +99,16 @@ public class PerDataAccountBaisc : IPerData
public
decimal
ScoringAverage
{
get
;
set
;
}
public
decimal
ScoringAverage
{
get
;
set
;
}
/// <summary>
/// <summary>
/// 考核后管理绩效
/// </summary>
public
Nullable
<
decimal
>
AssessLaterManagementFee
{
get
;
set
;
}
/// <summary>
/// 管理绩效发放系数
/// </summary>
public
Nullable
<
decimal
>
Management
{
get
;
set
;
}
/// <summary>
/// 考核后其他绩效
/// 考核后其他绩效
/// </summary>
/// </summary>
public
Nullable
<
decimal
>
AssessLaterOtherFee
{
get
;
set
;
}
public
Nullable
<
decimal
>
AssessLaterOtherFee
{
get
;
set
;
}
...
@@ -114,15 +129,35 @@ public class PerDataAccountBaisc : IPerData
...
@@ -114,15 +129,35 @@ public class PerDataAccountBaisc : IPerData
public
decimal
Scale
{
get
;
set
;
}
public
decimal
Scale
{
get
;
set
;
}
/// <summary>
/// <summary>
/// 规模绩效
/// </summary>
public
decimal
ScalePerfor
{
get
;
set
;
}
/// <summary>
/// 效率绩效系数
/// 效率绩效系数
/// </summary>
/// </summary>
public
decimal
Effic
{
get
;
set
;
}
public
decimal
Effic
{
get
;
set
;
}
/// <summary>
/// <summary>
/// 效率绩效
/// </summary>
public
decimal
EfficPerfor
{
get
;
set
;
}
/// <summary>
/// 出勤率
/// </summary>
public
Nullable
<
decimal
>
Attendance
{
get
;
set
;
}
/// <summary>
/// 发放系数
/// 发放系数
/// </summary>
/// </summary>
public
decimal
Grant
{
get
;
set
;
}
public
decimal
Grant
{
get
;
set
;
}
/// <summary>
/// 应发管理绩效
/// </summary>
public
decimal
ShouldGiveFee
{
get
;
set
;
}
///// <summary>
///// <summary>
///// 保底绩效参考标准
///// 保底绩效参考标准
///// </summary>
///// </summary>
...
@@ -183,6 +218,11 @@ public class PerDataAccountBaisc : IPerData
...
@@ -183,6 +218,11 @@ public class PerDataAccountBaisc : IPerData
public
Nullable
<
decimal
>
Avg
{
get
;
set
;
}
public
Nullable
<
decimal
>
Avg
{
get
;
set
;
}
/// <summary>
/// <summary>
/// 人均核算绩效
/// </summary>
public
Nullable
<
decimal
>
AvgPerfor
{
get
;
set
;
}
/// <summary>
/// 实发绩效
/// 实发绩效
/// </summary>
/// </summary>
public
Nullable
<
decimal
>
RealGiveFee
{
get
;
set
;
}
public
Nullable
<
decimal
>
RealGiveFee
{
get
;
set
;
}
...
...
performance/Performance.DtoModels/PerExcel/PerDataClinicEmployee.cs
View file @
bf6a7751
...
@@ -101,10 +101,10 @@ public class PerDataClinicEmployee : IPerData
...
@@ -101,10 +101,10 @@ public class PerDataClinicEmployee : IPerData
/// </summary>
/// </summary>
public
Nullable
<
decimal
>
OtherManagePerfor
{
get
;
set
;
}
public
Nullable
<
decimal
>
OtherManagePerfor
{
get
;
set
;
}
/// <summary>
///
//
<summary>
/// 其他绩效
///
//
其他绩效
/// </summary>
///
//
</summary>
public
Nullable
<
decimal
>
OthePerfor
{
get
;
set
;
}
//
public Nullable<decimal> OthePerfor { get; set; }
///// <summary>
///// <summary>
///// 夜班费
///// 夜班费
...
...
performance/Performance.DtoModels/Response/DeptDetailResponse.cs
View file @
bf6a7751
...
@@ -47,7 +47,7 @@ public class DetailDtos<T>
...
@@ -47,7 +47,7 @@ public class DetailDtos<T>
/// <summary> 收入项名称 </summary>
/// <summary> 收入项名称 </summary>
public
string
ItemName
{
get
;
set
;
}
public
string
ItemName
{
get
;
set
;
}
/// <summary> 1、收入 2、支出 3、工作量 4、特殊科室 5、科室奖罚 6、科室药占比考核 7、科室材料占比考核 </summary>
/// <summary> 1、收入 2、支出 3、工作量 4、特殊科室 5、科室奖罚 6、科室药占比考核 7、科室材料占比考核
8、调节后其他绩效
</summary>
public
int
IncomeType
{
get
;
set
;
}
public
int
IncomeType
{
get
;
set
;
}
/// <summary> 金额 </summary>
/// <summary> 金额 </summary>
...
...
performance/Performance.EntityModels/Entity/im_accountbasic.cs
View file @
bf6a7751
...
@@ -61,10 +61,10 @@ public class im_accountbasic
...
@@ -61,10 +61,10 @@ public class im_accountbasic
/// </summary>
/// </summary>
public
Nullable
<
decimal
>
PermanentStaff
{
get
;
set
;
}
public
Nullable
<
decimal
>
PermanentStaff
{
get
;
set
;
}
/// <summary>
///
//
<summary>
/// 科主任数量
///
//
科主任数量
/// </summary>
///
//
</summary>
public
Nullable
<
decimal
>
DoctorDirectorNumber
{
get
;
set
;
}
//
public Nullable<decimal> DoctorDirectorNumber { get; set; }
/// <summary>
/// <summary>
/// 核算单元医生数量
/// 核算单元医生数量
...
...
performance/Performance.EntityModels/Entity/res_account.cs
View file @
bf6a7751
...
@@ -56,10 +56,10 @@ public class res_account
...
@@ -56,10 +56,10 @@ public class res_account
///// </summary>
///// </summary>
//public Nullable<decimal> PermanentStaff { get; set; }
//public Nullable<decimal> PermanentStaff { get; set; }
/// <summary>
///
//
<summary>
/// 科主任/护士长数量
///
//
科主任/护士长数量
/// </summary>
///
//
</summary>
public
Nullable
<
decimal
>
ManagerNumber
{
get
;
set
;
}
//
public Nullable<decimal> ManagerNumber { get; set; }
/// <summary>
/// <summary>
/// 核算单元医生数量
/// 核算单元医生数量
...
...
performance/Performance.Services/AllotCompute/BaiscNormService.cs
View file @
bf6a7751
...
@@ -19,7 +19,7 @@ public class BaiscNormService : IAutoInjection
...
@@ -19,7 +19,7 @@ public class BaiscNormService : IAutoInjection
/// </summary>
/// </summary>
/// <param name="computes"></param>
/// <param name="computes"></param>
/// <returns></returns>
/// <returns></returns>
public
List
<
res_baiscnorm
>
ComputeAvg
(
List
<
res_baiscnorm
>
baiscnormList
,
List
<
im_accountbasic
>
accountbasicList
,
List
<
ComputeResult
>
computes
)
public
List
<
res_baiscnorm
>
ComputeAvg
(
List
<
res_baiscnorm
>
baiscnormList
,
List
<
ComputeEmployee
>
computeEmployees
,
List
<
ComputeResult
>
computes
)
{
{
var
keyList
=
new
[]
var
keyList
=
new
[]
{
{
...
@@ -30,7 +30,7 @@ public List<res_baiscnorm> ComputeAvg(List<res_baiscnorm> baiscnormList, List<im
...
@@ -30,7 +30,7 @@ public List<res_baiscnorm> ComputeAvg(List<res_baiscnorm> baiscnormList, List<im
};
};
foreach
(
var
item
in
keyList
)
foreach
(
var
item
in
keyList
)
{
{
var
count
=
accountbasicList
.
Where
(
t
=>
t
.
UnitType
==
(
int
)
item
.
UnitType
).
Sum
(
t
=>
t
.
DoctorDirectorNumber
);
var
count
=
computeEmployees
.
Where
(
t
=>
t
.
UnitType
==
item
.
UnitType
.
ToString
()).
Sum
(
t
=>
t
.
Basics
);
var
dataList
=
computes
.
Where
(
t
=>
t
.
UnitType
==
item
.
UnitType
.
ToString
());
var
dataList
=
computes
.
Where
(
t
=>
t
.
UnitType
==
item
.
UnitType
.
ToString
());
var
baiscnorm
=
new
res_baiscnorm
var
baiscnorm
=
new
res_baiscnorm
{
{
...
@@ -163,7 +163,7 @@ public List<res_baiscnorm> DocterNurseBaiscnorm(List<res_baiscnorm> baiscnormLis
...
@@ -163,7 +163,7 @@ public List<res_baiscnorm> DocterNurseBaiscnorm(List<res_baiscnorm> baiscnormLis
//剔除不同科室相同核算单元
//剔除不同科室相同核算单元
var
groupData
=
perData
.
Where
(
t
=>
t
.
UnitType
==
info
.
UnitType
.
ToString
())
var
groupData
=
perData
.
Where
(
t
=>
t
.
UnitType
==
info
.
UnitType
.
ToString
())
.
GroupBy
(
t
=>
t
.
AccountingUnit
)
.
GroupBy
(
t
=>
t
.
AccountingUnit
)
.
Select
(
t
=>
new
{
AccountingUnit
=
t
.
Key
,
Number
=
t
.
Sum
(
p
=>
p
.
ManagerNumber
+
p
.
Number
),
PerforTotal
=
t
.
Sum
(
p
=>
p
.
PerforTotal
)
});
.
Select
(
t
=>
new
{
AccountingUnit
=
t
.
Key
,
Number
=
t
.
Sum
(
p
=>
p
.
Number
),
PerforTotal
=
t
.
Sum
(
p
=>
p
.
PerforTotal
)
});
var
baiscnorm
=
new
res_baiscnorm
var
baiscnorm
=
new
res_baiscnorm
{
{
...
...
performance/Performance.Services/AllotCompute/ProcessComputService.cs
View file @
bf6a7751
...
@@ -260,7 +260,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
...
@@ -260,7 +260,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
/// <param name="perSheet"></param>
/// <param name="perSheet"></param>
/// <returns></returns>
/// <returns></returns>
public
List
<
PerSheet
>
Compute
(
PerExcel
excel
,
List
<
PerSheet
>
perSheet
,
IEnumerable
<
AccountUnitTotal
>
extras
,
public
List
<
PerSheet
>
Compute
(
PerExcel
excel
,
List
<
PerSheet
>
perSheet
,
IEnumerable
<
AccountUnitTotal
>
extras
,
IEnumerable
<
AccountUnitTotal
>
drugExtras
,
IEnumerable
<
AccountUnitTotal
>
materialsExtras
,
IEnumerable
<
AccountUnitTotal
>
accountScoreAverages
)
IEnumerable
<
AccountUnitTotal
>
drugExtras
,
IEnumerable
<
AccountUnitTotal
>
materialsExtras
)
{
{
var
accountList
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
)?.
PerData
?.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
var
accountList
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
)?.
PerData
?.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
var
economicData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeEconomic
)?.
PerData
?.
Select
(
t
=>
(
PerData
)
t
);
var
economicData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeEconomic
)?.
PerData
?.
Select
(
t
=>
(
PerData
)
t
);
...
@@ -287,7 +287,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
...
@@ -287,7 +287,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
var
extra
=
extras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
unitType
.
ToString
()
&&
w
.
AccountingUnit
==
dept
.
AccountingUnit
)?.
TotelValue
;
var
extra
=
extras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
unitType
.
ToString
()
&&
w
.
AccountingUnit
==
dept
.
AccountingUnit
)?.
TotelValue
;
var
drugExtra
=
drugExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
unitType
.
ToString
()
&&
w
.
AccountingUnit
==
dept
.
AccountingUnit
)?.
TotelValue
;
var
drugExtra
=
drugExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
unitType
.
ToString
()
&&
w
.
AccountingUnit
==
dept
.
AccountingUnit
)?.
TotelValue
;
var
materialsExtra
=
materialsExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
unitType
.
ToString
()
&&
w
.
AccountingUnit
==
dept
.
AccountingUnit
)?.
TotelValue
;
var
materialsExtra
=
materialsExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
unitType
.
ToString
()
&&
w
.
AccountingUnit
==
dept
.
AccountingUnit
)?.
TotelValue
;
var
scoreAverage
=
accountScoreAverages
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
unitType
.
ToString
()
&&
w
.
AccountingUnit
==
dept
.
AccountingUnit
)?.
TotelValue
;
//
var scoreAverage = accountScoreAverages?.FirstOrDefault(w => w.UnitType == unitType.ToString() && w.AccountingUnit == dept.AccountingUnit)?.TotelValue;
var
econDoctor
=
economicData
.
FirstOrDefault
(
t
=>
t
.
UnitType
==
unitType
.
ToString
()
&&
t
.
AccountingUnit
==
dept
.
AccountingUnit
);
var
econDoctor
=
economicData
.
FirstOrDefault
(
t
=>
t
.
UnitType
==
unitType
.
ToString
()
&&
t
.
AccountingUnit
==
dept
.
AccountingUnit
);
var
workDoctor
=
info
.
Data
.
FirstOrDefault
(
t
=>
t
.
UnitType
==
unitType
.
ToString
()
&&
t
.
AccountingUnit
==
dept
.
AccountingUnit
);
var
workDoctor
=
info
.
Data
.
FirstOrDefault
(
t
=>
t
.
UnitType
==
unitType
.
ToString
()
&&
t
.
AccountingUnit
==
dept
.
AccountingUnit
);
...
@@ -312,10 +312,12 @@ public void Save(List<PerSheet> perSheets, int allotId)
...
@@ -312,10 +312,12 @@ public void Save(List<PerSheet> perSheets, int allotId)
dept
.
MedicineExtra
=
(
drugExtra
??
0
);
dept
.
MedicineExtra
=
(
drugExtra
??
0
);
dept
.
MaterialsExtra
=
(
materialsExtra
??
0
);
dept
.
MaterialsExtra
=
(
materialsExtra
??
0
);
dept
.
PerforFee
=
dept
.
Income
*
dept
.
BasicFactor
;
dept
.
PerforFee
=
dept
.
Income
*
dept
.
BasicFactor
;
dept
.
PerforTotal
=
Math
.
Round
((
dept
.
PerforFee
+
dept
.
WorkloadFee
+
dept
.
OtherPerfor1
+
dept
.
AssessBeforeOtherFee
)
??
0
);
//dept.PerforTotal = Math.Round((dept.PerforFee + dept.WorkloadFee + dept.OtherPerfor1 + dept.AssessBeforeOtherFee) ?? 0);
dept
.
PerforTotal
=
Math
.
Round
((
dept
.
PerforFee
+
dept
.
WorkloadFee
+
dept
.
AssessBeforeOtherFee
)
??
0
);
dept
.
AssessLaterPerforTotal
=
Math
.
Round
((
dept
.
PerforTotal
*
dept
.
ScoringAverage
+
dept
.
MedicineExtra
+
dept
.
MaterialsExtra
+
dept
.
Extra
+
dept
.
AssessLaterOtherFee
)
??
0
);
dept
.
AssessLaterPerforTotal
=
Math
.
Round
((
dept
.
PerforTotal
*
dept
.
ScoringAverage
+
dept
.
MedicineExtra
+
dept
.
MaterialsExtra
+
dept
.
Extra
+
dept
.
AssessLaterOtherFee
)
??
0
);
dept
.
RealGiveFee
=
Math
.
Round
((
dept
.
AssessLaterPerforTotal
*
dept
.
AdjustFactor
+
dept
.
AdjustLaterOtherFee
)
??
0
);
dept
.
RealGiveFee
=
Math
.
Round
((
dept
.
AssessLaterPerforTotal
*
dept
.
AdjustFactor
+
dept
.
AdjustLaterOtherFee
)
??
0
);
dept
.
Avg
=
dept
.
ManagerNumber
+
dept
.
Number
==
0
?
0
:
dept
.
PerforTotal
/
(
dept
.
ManagerNumber
+
dept
.
Number
);
//dept.Avg = dept.ManagerNumber + dept.Number == 0 ? 0 : dept.PerforTotal / (dept.ManagerNumber + dept.Number);
dept
.
Avg
=
dept
.
Number
==
0
?
0
:
dept
.
PerforTotal
/
dept
.
Number
;
}
}
sheet
.
PerData
.
AddRange
(
atDataList
);
sheet
.
PerData
.
AddRange
(
atDataList
);
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
bf6a7751
...
@@ -86,7 +86,7 @@ public class ResultComputeService : IAutoInjection
...
@@ -86,7 +86,7 @@ public class ResultComputeService : IAutoInjection
var
computResult
=
computeDirector
.
Compute
(
computeEmployees
,
accountSheet
,
allot
,
employeeExtra
);
var
computResult
=
computeDirector
.
Compute
(
computeEmployees
,
accountSheet
,
allot
,
employeeExtra
);
//计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值)
//计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值)
List
<
res_baiscnorm
>
baiscnormList
=
new
List
<
res_baiscnorm
>();
List
<
res_baiscnorm
>
baiscnormList
=
new
List
<
res_baiscnorm
>();
baiscNormService
.
ComputeAvg
(
baiscnormList
,
accountbasicList
,
computResult
);
baiscNormService
.
ComputeAvg
(
baiscnormList
,
computeEmployees
,
computResult
);
baiscNormService
.
DocterNurseBaiscnorm
(
baiscnormList
,
accountbasicList
,
accountSheet
);
baiscNormService
.
DocterNurseBaiscnorm
(
baiscnormList
,
accountbasicList
,
accountSheet
);
var
empolyeeList2
=
perforImEmployeeRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
var
empolyeeList2
=
perforImEmployeeRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
...
@@ -122,9 +122,9 @@ public class ResultComputeService : IAutoInjection
...
@@ -122,9 +122,9 @@ public class ResultComputeService : IAutoInjection
/// </summary>
/// </summary>
/// <param name="excel"></param>
/// <param name="excel"></param>
/// <param name="allot"></param>
/// <param name="allot"></param>
public
void
SpecialUnitCompute
(
PerExcel
excel
,
per_allot
allot
,
List
<
PerSheet
>
sheetLast
,
List
<
res_baiscnorm
>
baiscnormList
,
public
void
SpecialUnitCompute
(
PerExcel
excel
,
per_allot
allot
,
List
<
res_baiscnorm
>
baiscnormList
,
IEnumerable
<
AccountUnitTotal
>
accountExtras
,
IEnumerable
<
AccountUnitTotal
>
drugExtras
,
IEnumerable
<
AccountUnitTotal
>
materialsExtras
,
IEnumerable
<
AccountUnitTotal
>
accountExtras
,
IEnumerable
<
AccountUnitTotal
>
drugExtras
,
IEnumerable
<
AccountUnitTotal
>
materialsExtras
,
IEnumerable
<
EmpolyeeTotal
>
employeeExtra
,
IEnumerable
<
AccountUnitTotal
>
accountScoreAverages
)
IEnumerable
<
EmpolyeeTotal
>
employeeExtra
)
{
{
var
isBudget
=
budgetService
.
GetAdjustAndGrant
(
allot
,
out
decimal
adjust
,
out
decimal
grant
);
var
isBudget
=
budgetService
.
GetAdjustAndGrant
(
allot
,
out
decimal
adjust
,
out
decimal
grant
);
var
typeList
=
EnumHelper
.
GetItems
<
PerforType
>();
var
typeList
=
EnumHelper
.
GetItems
<
PerforType
>();
...
@@ -173,7 +173,7 @@ public class ResultComputeService : IAutoInjection
...
@@ -173,7 +173,7 @@ public class ResultComputeService : IAutoInjection
var
extra
=
accountExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
()
&&
w
.
AccountingUnit
==
dept
?.
AccountingUnit
)?.
TotelValue
;
var
extra
=
accountExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
()
&&
w
.
AccountingUnit
==
dept
?.
AccountingUnit
)?.
TotelValue
;
var
drugExtra
=
drugExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
()
&&
w
.
AccountingUnit
==
dept
?.
AccountingUnit
)?.
TotelValue
;
var
drugExtra
=
drugExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
()
&&
w
.
AccountingUnit
==
dept
?.
AccountingUnit
)?.
TotelValue
;
var
materialsExtra
=
materialsExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
()
&&
w
.
AccountingUnit
==
dept
?.
AccountingUnit
)?.
TotelValue
;
var
materialsExtra
=
materialsExtras
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
()
&&
w
.
AccountingUnit
==
dept
?.
AccountingUnit
)?.
TotelValue
;
var
scoreAverage
=
accountScoreAverages
?.
FirstOrDefault
(
w
=>
w
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
()
&&
w
.
AccountingUnit
==
dept
?.
AccountingUnit
)?.
TotelValue
;
//
var scoreAverage = accountScoreAverages?.FirstOrDefault(w => w.UnitType == UnitType.特殊核算组.ToString() && w.AccountingUnit == dept?.AccountingUnit)?.TotelValue;
decimal
?
headcount
=
null
;
decimal
?
headcount
=
null
;
if
(
typeList
.
Any
(
o
=>
o
.
Description
==
item
.
QuantitativeIndicators
))
if
(
typeList
.
Any
(
o
=>
o
.
Description
==
item
.
QuantitativeIndicators
))
...
@@ -196,7 +196,7 @@ public class ResultComputeService : IAutoInjection
...
@@ -196,7 +196,7 @@ public class ResultComputeService : IAutoInjection
QuantitativeFee
=
item
.
Quantity
*
item
.
QuantitativeIndicatorsValue
*
headcount
,
QuantitativeFee
=
item
.
Quantity
*
item
.
QuantitativeIndicatorsValue
*
headcount
,
//ScoringAverage = scoreAverage.HasValue ? scoreAverage : dept?.ScoringAverage,
//ScoringAverage = scoreAverage.HasValue ? scoreAverage : dept?.ScoringAverage,
ScoringAverage
=
dept
?.
ScoringAverage
??
0
,
ScoringAverage
=
dept
?.
ScoringAverage
??
0
,
OtherPerfor
=
dept
?.
OtherPerfor1
,
//
OtherPerfor = dept?.OtherPerfor1,
Punishment
=
(
extra
??
0
),
Punishment
=
(
extra
??
0
),
MedicineExtra
=
(
drugExtra
??
0
),
MedicineExtra
=
(
drugExtra
??
0
),
MaterialsExtra
=
(
materialsExtra
??
0
),
MaterialsExtra
=
(
materialsExtra
??
0
),
...
@@ -226,7 +226,7 @@ public class ResultComputeService : IAutoInjection
...
@@ -226,7 +226,7 @@ public class ResultComputeService : IAutoInjection
&&
(!
string
.
IsNullOrEmpty
(
w
.
EmployeeName
)
||
!
string
.
IsNullOrEmpty
(
w
.
JobNumber
)))
&&
(!
string
.
IsNullOrEmpty
(
w
.
EmployeeName
)
||
!
string
.
IsNullOrEmpty
(
w
.
JobNumber
)))
.
FirstOrDefault
(
w
=>
w
.
AccountingUnit
==
empolyee
.
AccountingUnit
&&
w
.
UnitType
==
empolyee
.
UnitType
.
FirstOrDefault
(
w
=>
w
.
AccountingUnit
==
empolyee
.
AccountingUnit
&&
w
.
UnitType
==
empolyee
.
UnitType
&&
w
.
JobNumber
==
empolyee
.
JobNumber
&&
w
.
EmployeeName
==
empolyee
.
DoctorName
)?.
TotelValue
;
&&
w
.
JobNumber
==
empolyee
.
JobNumber
&&
w
.
EmployeeName
==
empolyee
.
DoctorName
)?.
TotelValue
;
var
avg
=
(
group
.
Number
==
0
?
0
:
(
sumValue
/
group
.
Number
));
var
empolyeeAdjust
=
isBudget
?
adjust
:
empolyee
.
Adjust
;
var
empolyeeAdjust
=
isBudget
?
adjust
:
empolyee
.
Adjust
;
var
compute
=
new
ComputeResult
var
compute
=
new
ComputeResult
{
{
...
@@ -244,29 +244,45 @@ public class ResultComputeService : IAutoInjection
...
@@ -244,29 +244,45 @@ public class ResultComputeService : IAutoInjection
OtherManagePerfor
=
empolyee
.
OtherManagePerfor
,
OtherManagePerfor
=
empolyee
.
OtherManagePerfor
,
Number
=
group
.
Number
,
Number
=
group
.
Number
,
PerforTotal
=
sumValue
,
PerforTotal
=
sumValue
,
Avg
=
group
.
Number
==
0
?
0
:
(
sumValue
/
group
.
Number
),
//
Avg = group.Number == 0 ? 0 : (sumValue / group.Number),
Adjust
=
empolyeeAdjust
??
1
m
,
Adjust
=
empolyeeAdjust
??
1
m
,
Grant
=
isBudget
?
grant
:
empolyee
.
Management
,
Grant
=
isBudget
?
grant
:
empolyee
.
Management
,
Attendance
=
empolyee
.
Attendance
??
0
,
Attendance
=
empolyee
.
Attendance
??
0
,
AssessBeforeOtherFee
=
empolyee
?.
AssessBeforeOtherFee
??
0
,
AssessBeforeOtherFee
=
empolyee
?.
AssessBeforeOtherFee
??
0
,
AssessLaterOtherFee
=
empolyee
?.
AssessLaterOtherFee
??
0
,
AssessLaterOtherFee
=
empolyee
?.
AssessLaterOtherFee
??
0
,
AdjustLaterOtherFee
=
empolyee
?.
AdjustLaterOtherFee
??
0
,
AdjustLaterOtherFee
=
empolyee
?.
AdjustLaterOtherFee
??
0
,
Efficiency
=
avg
*
(
empolyee
.
Efficiency
??
0
),
Scale
=
sumValue
*
(
empolyee
.
Scale
??
0
),
};
};
compute
.
Efficiency
=
compute
.
Avg
*
(
empolyee
.
Efficiency
??
1
);
compute
.
Avg
=
(
group
.
Number
==
0
?
0
:
(
sumValue
/
group
.
Number
))
*
(
empolyee
.
Basics
??
0
)
*
compute
.
Attendance
;
compute
.
Scale
=
compute
.
PerforTotal
*
(
empolyee
.
Scale
??
1
);
// 考核前管理绩效
//应发管理绩效
compute
.
ShouldGiveFee
=
Math
.
Round
((
compute
.
Efficiency
+
compute
.
Scale
)
*
compute
.
Grant
+
compute
.
OtherManagePerfor
??
0
);
compute
.
ShouldGiveFee
=
Math
.
Round
((
compute
.
Efficiency
+
compute
.
Scale
)
*
compute
.
Grant
??
0
);
// 考核后管理绩效
//绩效合计
compute
.
AssessLaterManagementFee
=
Math
.
Round
(
compute
.
ShouldGiveFee
*
compute
.
ScoreAverageRate
*
compute
.
Attendance
+
compute
.
Punishment
??
0
);
compute
.
PerforSumFee
=
Math
.
Round
(
compute
.
Avg
+
compute
.
ShouldGiveFee
+
compute
.
AssessBeforeOtherFee
??
0
);
// 考核前绩效
//应发绩效
compute
.
PerforSumFee
=
compute
.
Attendance
==
0
?
Math
.
Round
(
compute
.
ShouldGiveFee
??
0
)
:
Math
.
Round
(
compute
.
Avg
/
compute
.
Attendance
+
compute
.
ShouldGiveFee
??
0
);
//compute.GiveFee = compute.PerforSumFee;
// 考核后绩效
compute
.
GiveFee
=
Math
.
Round
(
compute
.
PerforSumFee
*
compute
.
ScoreAverageRate
*
compute
.
Attendance
+
compute
.
Punishment
+
compute
.
AssessLaterOtherFee
??
0
);
compute
.
GiveFee
=
Math
.
Round
(
compute
.
Avg
+
compute
.
AssessLaterManagementFee
??
0
);
//实发绩效
//compute.RealGiveFee = (compute.GiveFee * compute.ScoreAverageRate + (compute.Punishment ?? 0) + (compute.OtherPerfor ?? 0)) * (compute.Adjust ?? 1m);
compute
.
RealGiveFee
=
Math
.
Round
(
compute
.
GiveFee
*
compute
.
Adjust
+
compute
.
AdjustLaterOtherFee
??
0
);
// 参考基数专用绩效合计
// 参考基数专用绩效合计
compute
.
BaiscNormPerforTotal
=
compute
.
PerforSumFee
;
compute
.
BaiscNormPerforTotal
=
compute
.
PerforSumFee
;
// 实发绩效
compute
.
RealGiveFee
=
Math
.
Round
((
compute
.
Avg
+
compute
.
AssessLaterManagementFee
)
*
compute
.
Adjust
+
compute
.
AdjustLaterOtherFee
??
0
);
//compute.Efficiency = compute.Avg * (empolyee.Efficiency ?? 1);
//compute.Scale = compute.PerforTotal * (empolyee.Scale ?? 1);
////应发管理绩效
//compute.ShouldGiveFee = Math.Round((compute.Efficiency + compute.Scale) * compute.Grant ?? 0);
////绩效合计
//compute.PerforSumFee = Math.Round(compute.Avg + compute.ShouldGiveFee + compute.AssessBeforeOtherFee ?? 0);
////应发绩效
////compute.GiveFee = compute.PerforSumFee;
//compute.GiveFee = Math.Round(compute.PerforSumFee * compute.ScoreAverageRate * compute.Attendance + compute.Punishment + compute.AssessLaterOtherFee ?? 0);
////实发绩效
////compute.RealGiveFee = (compute.GiveFee * compute.ScoreAverageRate + (compute.Punishment ?? 0) + (compute.OtherPerfor ?? 0)) * (compute.Adjust ?? 1m);
//compute.RealGiveFee = Math.Round(compute.GiveFee * compute.Adjust + compute.AdjustLaterOtherFee ?? 0);
//// 参考基数专用绩效合计
//compute.BaiscNormPerforTotal = compute.PerforSumFee;
computeList
.
Add
(
compute
);
computeList
.
Add
(
compute
);
}
}
...
...
performance/Performance.Services/AllotService.cs
View file @
bf6a7751
...
@@ -373,7 +373,7 @@ public void Generate(per_allot allot, string mail)
...
@@ -373,7 +373,7 @@ public void Generate(per_allot allot, string mail)
//重新计算科室业绩(含所有提供保底金额)
//重新计算科室业绩(含所有提供保底金额)
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室业绩分"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室业绩分"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
sheetLast
=
processComputService
.
Compute
(
excel
,
mergeSheets
,
accountExtras
,
drugExtras
,
materialsExtras
,
accountScoreAverages
);
var
sheetLast
=
processComputService
.
Compute
(
excel
,
mergeSheets
,
accountExtras
,
drugExtras
,
materialsExtras
);
//保存计算过程数据
//保存计算过程数据
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存科室业绩结果及计算过程中产生的数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存科室业绩结果及计算过程中产生的数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
...
@@ -392,7 +392,7 @@ public void Generate(per_allot allot, string mail)
...
@@ -392,7 +392,7 @@ public void Generate(per_allot allot, string mail)
// 计算特殊科室
// 计算特殊科室
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
sheetLast
,
baiscnormList
,
accountExtras
,
drugExtras
,
materialsExtras
,
employeeExtra
,
accountScoreAverages
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
baiscnormList
,
accountExtras
,
drugExtras
,
materialsExtras
,
employeeExtra
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
//保存 绩效人均参考标准
//保存 绩效人均参考标准
...
...
performance/Performance.Services/ComputeService.cs
View file @
bf6a7751
This diff is collapsed.
Click to expand it.
performance/Performance.Services/OriginalService.cs
View file @
bf6a7751
...
@@ -179,7 +179,7 @@ private bool EditAccountBasic(int userId, OriginalRequest request)
...
@@ -179,7 +179,7 @@ private bool EditAccountBasic(int userId, OriginalRequest request)
{
"核算单元"
,
nameof
(
im_accountbasic
.
DoctorAccountingUnit
)
},
{
"核算单元"
,
nameof
(
im_accountbasic
.
DoctorAccountingUnit
)
},
//{ "科室名称", nameof(im_accountbasic.Department) },
//{ "科室名称", nameof(im_accountbasic.Department) },
{
"效率绩效人数"
,
nameof
(
im_accountbasic
.
PermanentStaff
)
},
{
"效率绩效人数"
,
nameof
(
im_accountbasic
.
PermanentStaff
)
},
{
"科主任/护士长人数"
,
nameof
(
im_accountbasic
.
DoctorDirectorNumber
)
},
//
{ "科主任/护士长人数", nameof(im_accountbasic.DoctorDirectorNumber) },
{
"核算单元人员数量"
,
nameof
(
im_accountbasic
.
DoctorNumber
)
},
{
"核算单元人员数量"
,
nameof
(
im_accountbasic
.
DoctorNumber
)
},
{
"预算比例"
,
nameof
(
im_accountbasic
.
DoctorBasicFactor
)
},
{
"预算比例"
,
nameof
(
im_accountbasic
.
DoctorBasicFactor
)
},
//{ "倾斜系数", nameof(im_accountbasic.DoctorSlopeFactor) },
//{ "倾斜系数", nameof(im_accountbasic.DoctorSlopeFactor) },
...
...
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
bf6a7751
This diff is collapsed.
Click to expand it.
performance/Performance.Services/PerExcelService/ExcelReadConfig.cs
View file @
bf6a7751
...
@@ -48,7 +48,7 @@ public class ExcelReadConfig
...
@@ -48,7 +48,7 @@ public class ExcelReadConfig
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
AssessLaterOtherFee
),
"考核后其他绩效"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
AssessLaterOtherFee
),
"考核后其他绩效"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
Attendance
),
"出勤率"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
Attendance
),
"出勤率"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
OtherManagePerfor
),
"其他管理绩效"
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
OtherManagePerfor
),
"其他管理绩效"
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
OthePerfor
),
"其他绩效"
),
//
new ColumnInfo(nameof(PerDataClinicEmployee.OthePerfor), "其他绩效"),
//new ColumnInfo(nameof(PerDataClinicEmployee.NightWorkPerfor), "夜班费"),
//new ColumnInfo(nameof(PerDataClinicEmployee.NightWorkPerfor), "夜班费"),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
Adjust
),
"调节系数"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
Adjust
),
"调节系数"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
AdjustLaterOtherFee
),
"调节后其他绩效"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataClinicEmployee
.
AdjustLaterOtherFee
),
"调节后其他绩效"
,
true
),
...
@@ -75,10 +75,10 @@ public class ExcelReadConfig
...
@@ -75,10 +75,10 @@ public class ExcelReadConfig
{
{
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
UnitType
),
"核算单元类型"
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
UnitType
),
"核算单元类型"
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AccountingUnit
),
"核算单元"
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AccountingUnit
),
"核算单元"
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
ManagerNumber
),
"科主任/护士长人数"
,
true
),
//
new ColumnInfo(nameof(PerDataAccountBaisc.ManagerNumber), "科主任/护士长人数", true),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
Number
),
"核算单元人员数量"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
Number
),
"核算单元人员数量"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
BasicFactor
),
"预算比例"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
BasicFactor
),
"预算比例"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
OtherPerfor1
),
"其他绩效1"
,
true
),
//
new ColumnInfo(nameof(PerDataAccountBaisc.OtherPerfor1), "其他绩效1", true),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AssessBeforeOtherFee
),
"考核前其他绩效"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AssessBeforeOtherFee
),
"考核前其他绩效"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
ScoringAverage
),
"考核得分率"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
ScoringAverage
),
"考核得分率"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AssessLaterOtherFee
),
"考核后其他绩效"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AssessLaterOtherFee
),
"考核后其他绩效"
,
true
),
...
...
performance/Performance.Services/PerExcelService/PerSheetDataFactory.cs
View file @
bf6a7751
...
@@ -75,13 +75,32 @@ public static IPerSheetDataRead GetDataRead(SheetType sheetType, bool isnew = fa
...
@@ -75,13 +75,32 @@ public static IPerSheetDataRead GetDataRead(SheetType sheetType, bool isnew = fa
case
SheetType
.
AccountScoreAverage
:
case
SheetType
.
AccountScoreAverage
:
dataread
=
new
PerSheetDataReadAccountExtra
();
dataread
=
new
PerSheetDataReadAccountExtra
();
break
;
break
;
case
SheetType
.
AccountAdjustLaterOtherFee
:
//
case SheetType.AccountAdjustLaterOtherFee:
//dataread = new PerSheetDataReadPersonExtra(); // 科室调节后其他绩效
//
//dataread = new PerSheetDataReadPersonExtra(); // 科室调节后其他绩效
dataread
=
new
PerSheetDataReadAccountExtra
();
//
dataread = new PerSheetDataReadAccountExtra();
break
;
//
break;
case
SheetType
.
PersonAdjustLaterOtherFee
:
case
SheetType
.
PersonAdjustLaterOtherFee
:
dataread
=
new
PerSheetDataReadPersonExtra
();
// 业务中层行政中高层调节后其他绩效
dataread
=
new
PerSheetDataReadPersonExtra
();
// 业务中层行政中高层调节后其他绩效
break
;
break
;
case
SheetType
.
BudgetRatio
:
dataread
=
new
PerSheetDataReadAccountExtra
();
// 预算比例
break
;
case
SheetType
.
AssessBeforeOtherFee
:
dataread
=
new
PerSheetDataReadAccountExtra
();
// 科室考核前其他绩效
break
;
case
SheetType
.
AccountAdjustLaterOtherFee
:
dataread
=
new
PerSheetDataReadAccountExtra
();
// 科室调节后其他绩效
break
;
case
SheetType
.
PersonOtherManagePerforFee
:
dataread
=
new
PerSheetDataReadPersonExtra
();
// 其他管理绩效
break
;
case
SheetType
.
PersonAdjustLaterOtherManagePerforFee
:
dataread
=
new
PerSheetDataReadPersonExtra
();
// 调节后其他管理绩效
break
;
case
SheetType
.
PersonPostCoefficient
:
dataread
=
new
PerSheetDataReadPersonExtra
();
// 个人岗位系数
break
;
}
}
return
dataread
;
return
dataread
;
}
}
...
...
performance/Performance.Services/PerExcelService/PerSheetService.cs
View file @
bf6a7751
...
@@ -104,12 +104,28 @@ public SheetType GetSheetType(string sheetName)
...
@@ -104,12 +104,28 @@ public SheetType GetSheetType(string sheetName)
return
SheetType
.
AccountDrugAssess
;
return
SheetType
.
AccountDrugAssess
;
else
if
(
sheetName
.
StartsWith
(
"5.4"
))
else
if
(
sheetName
.
StartsWith
(
"5.4"
))
return
SheetType
.
AccountMaterialsAssess
;
return
SheetType
.
AccountMaterialsAssess
;
else
if
(
sheetName
.
StartsWith
(
"6.10"
))
// 调节后其他管理绩效
return
SheetType
.
PersonAdjustLaterOtherManagePerforFee
;
else
if
(
sheetName
.
StartsWith
(
"6.11"
))
// 个人岗位系数
return
SheetType
.
PersonPostCoefficient
;
else
if
(
sheetName
.
StartsWith
(
"6.1"
))
else
if
(
sheetName
.
StartsWith
(
"6.1"
))
return
SheetType
.
AccountScoreAverage
;
return
SheetType
.
AccountScoreAverage
;
else
if
(
sheetName
.
StartsWith
(
"6.2"
))
else
if
(
sheetName
.
StartsWith
(
"6.2"
))
return
SheetType
.
AccountAdjustLaterOtherFee
;
return
SheetType
.
AccountAdjustLaterOtherFee
;
// 与6.8相同
else
if
(
sheetName
.
StartsWith
(
"6.3"
))
else
if
(
sheetName
.
StartsWith
(
"6.3"
))
return
SheetType
.
PersonAdjustLaterOtherFee
;
return
SheetType
.
PersonAdjustLaterOtherFee
;
else
if
(
sheetName
.
StartsWith
(
"6.6"
))
// 预算比例
return
SheetType
.
BudgetRatio
;
else
if
(
sheetName
.
StartsWith
(
"6.7"
))
// 科室考核前其他绩效
return
SheetType
.
AssessBeforeOtherFee
;
else
if
(
sheetName
.
StartsWith
(
"6.8"
))
// 科室调节后其他绩效
return
SheetType
.
AccountAdjustLaterOtherFee
;
else
if
(
sheetName
.
StartsWith
(
"6.9"
))
// 其他管理绩效
return
SheetType
.
PersonOtherManagePerforFee
;
return
SheetType
.
Unidentifiable
;
return
SheetType
.
Unidentifiable
;
}
}
}
}
...
...
performance/Performance.Services/SheetSevice.cs
View file @
bf6a7751
...
@@ -313,7 +313,7 @@ private void AccountNurseExport(int sheetID, SheetExportResponse response)
...
@@ -313,7 +313,7 @@ private void AccountNurseExport(int sheetID, SheetExportResponse response)
new
List
<(
string
,
Func
<
res_account
,
object
>,
int
,
int
,
bool
,
bool
)>
new
List
<(
string
,
Func
<
res_account
,
object
>,
int
,
int
,
bool
,
bool
)>
{
{
(
"核算单元"
,
(
t
)
=>
t
.
AccountingUnit
,
1
,
1
,
false
,
false
),
(
"核算单元"
,
(
t
)
=>
t
.
AccountingUnit
,
1
,
1
,
false
,
false
),
(
"护士长人数"
,
(
t
)
=>
t
.
ManagerNumber
,
1
,
1
,
false
,
false
),
//
("护士长人数", (t) => t.ManagerNumber, 1, 1, false, false),
(
"核算单元护士数量"
,
(
t
)
=>
t
.
Number
,
1
,
1
,
false
,
false
),
(
"核算单元护士数量"
,
(
t
)
=>
t
.
Number
,
1
,
1
,
false
,
false
),
(
"医生基础系数"
,
(
t
)
=>
t
.
BasicFactor
,
1
,
1
,
false
,
false
),
(
"医生基础系数"
,
(
t
)
=>
t
.
BasicFactor
,
1
,
1
,
false
,
false
),
(
"倾斜系数"
,
(
t
)
=>
t
.
SlopeFactor
,
1
,
1
,
false
,
true
),
(
"倾斜系数"
,
(
t
)
=>
t
.
SlopeFactor
,
1
,
1
,
false
,
true
),
...
@@ -366,7 +366,7 @@ private void AccountDoctorExport(int sheetID, SheetExportResponse response)
...
@@ -366,7 +366,7 @@ private void AccountDoctorExport(int sheetID, SheetExportResponse response)
new
List
<(
string
,
Func
<
res_account
,
object
>,
int
,
int
,
bool
,
bool
)>
new
List
<(
string
,
Func
<
res_account
,
object
>,
int
,
int
,
bool
,
bool
)>
{
{
(
"核算单元"
,
(
t
)
=>
t
.
AccountingUnit
,
1
,
1
,
false
,
false
),
(
"核算单元"
,
(
t
)
=>
t
.
AccountingUnit
,
1
,
1
,
false
,
false
),
(
"科主任人数"
,
(
t
)
=>
t
.
ManagerNumber
,
1
,
1
,
false
,
false
),
//
("科主任人数", (t) => t.ManagerNumber, 1, 1, false, false),
(
"核算单元医生数量"
,
(
t
)
=>
t
.
Number
,
1
,
1
,
false
,
false
),
(
"核算单元医生数量"
,
(
t
)
=>
t
.
Number
,
1
,
1
,
false
,
false
),
(
"医生基础系数"
,
(
t
)
=>
t
.
BasicFactor
,
1
,
1
,
false
,
false
),
(
"医生基础系数"
,
(
t
)
=>
t
.
BasicFactor
,
1
,
1
,
false
,
false
),
(
"倾斜系数"
,
(
t
)
=>
t
.
SlopeFactor
,
1
,
1
,
false
,
true
),
(
"倾斜系数"
,
(
t
)
=>
t
.
SlopeFactor
,
1
,
1
,
false
,
true
),
...
...
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