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
0515adfa
Commit
0515adfa
authored
Jun 10, 2019
by
李承祥
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
绩效生成
parent
67adec6c
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
26 deletions
+34
-26
performance/Performance.Services/AllotCompute/BaiscNormService.cs
+9
-9
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+5
-4
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+20
-13
No files found.
performance/Performance.Services/AllotCompute/BaiscNormService.cs
View file @
0515adfa
...
@@ -21,7 +21,7 @@ public class BaiscNormService : IAutoInjection
...
@@ -21,7 +21,7 @@ public class BaiscNormService : IAutoInjection
public
decimal
?
GetBaiscNorm
(
List
<
res_baiscnorm
>
baiscnorms
,
PerformanceType
type
)
public
decimal
?
GetBaiscNorm
(
List
<
res_baiscnorm
>
baiscnorms
,
PerformanceType
type
)
{
{
decimal
?
result
=
null
;
decimal
?
result
=
null
;
if
(
type
==
PerformanceType
.
ReferenceDirector
)
if
(
type
==
PerformanceType
.
ReferenceDirector
||
type
==
PerformanceType
.
Null
)
{
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床科主任"
)?.
AvgValue
;
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床科主任"
)?.
AvgValue
;
}
}
...
@@ -36,18 +36,18 @@ public class BaiscNormService : IAutoInjection
...
@@ -36,18 +36,18 @@ public class BaiscNormService : IAutoInjection
{
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床科护长"
)?.
AvgValue
;
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床科护长"
)?.
AvgValue
;
}
}
else
if
(
type
==
PerformanceType
.
ReferenceNurse
)
//
else if (type == PerformanceType.ReferenceNurse)
{
//
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床护士"
)?.
AvgValue
;
//
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床护士")?.AvgValue;
}
//
}
else
if
(
type
==
PerformanceType
.
ReferenceDoctor
)
else
if
(
type
==
PerformanceType
.
ReferenceDoctor
)
{
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床医生"
)?.
AvgValue
;
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床医生"
)?.
AvgValue
;
}
}
else
if
(
type
==
PerformanceType
.
LogisticsWorker
)
//
else if (type == PerformanceType.LogisticsWorker)
{
//
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"行政工勤"
)?.
AvgValue
;
//
result = baiscnorms.FirstOrDefault(t => t.PositionName == "行政工勤")?.AvgValue;
}
//
}
if
(
result
.
HasValue
)
if
(
result
.
HasValue
)
result
=
Math
.
Round
(
result
.
Value
,
4
);
result
=
Math
.
Round
(
result
.
Value
,
4
);
return
result
;
return
result
;
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
0515adfa
...
@@ -110,7 +110,8 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
...
@@ -110,7 +110,8 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
{
{
var
radio
=
perforImEmployeeRepository
.
GetEntities
(
p
=>
p
.
FitPeople
==
EnumHelper
.
GetDescription
((
PerformanceType
)
type
.
Value
)
&&
p
.
AllotID
==
allot
.
ID
)
var
radio
=
perforImEmployeeRepository
.
GetEntities
(
p
=>
p
.
FitPeople
==
EnumHelper
.
GetDescription
((
PerformanceType
)
type
.
Value
)
&&
p
.
AllotID
==
allot
.
ID
)
?.
FirstOrDefault
().
FitPeopleRatio
??
1
;
?.
FirstOrDefault
().
FitPeopleRatio
??
1
;
t
.
Quantity
=
Math
.
Round
(
baiscNormService
.
GetBaiscNorm
(
baiscnormList
,
(
PerformanceType
)
type
.
Value
).
Value
*
radio
,
4
);
//添加参数计算
var
basic
=
baiscNormService
.
GetBaiscNorm
(
baiscnormList
,
(
PerformanceType
)
type
.
Value
);
t
.
Quantity
=
basic
!=
null
?
basic
*
radio
:
null
;
//添加参数计算
}
}
var
res
=
new
res_specialunit
var
res
=
new
res_specialunit
...
@@ -125,10 +126,10 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
...
@@ -125,10 +126,10 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
ScoringAverage
=
t
.
ScoringAverage
,
ScoringAverage
=
t
.
ScoringAverage
,
OtherPerfor
=
t
.
OtherPerfor
,
OtherPerfor
=
t
.
OtherPerfor
,
Punishment
=
t
.
Punishment
,
Punishment
=
t
.
Punishment
,
Adjust
=
t
.
Adjust
,
Adjust
=
t
.
Adjust
??
1
,
Avg
=
t
.
Quantity
*
t
.
QuantitativeIndicatorsValue
/
t
.
Number
,
Avg
=
t
.
Number
!=
0
?
t
.
Quantity
*
t
.
QuantitativeIndicatorsValue
/
t
.
Number
:
null
,
GiveFee
=
t
.
Quantity
*
t
.
QuantitativeIndicatorsValue
,
GiveFee
=
t
.
Quantity
*
t
.
QuantitativeIndicatorsValue
,
RealGiveFee
=
(
t
.
Quantity
*
t
.
QuantitativeIndicatorsValue
+
t
.
OtherPerfor
+
t
.
Punishment
)
*
t
.
Adjust
,
RealGiveFee
=
(
t
.
Quantity
*
t
.
QuantitativeIndicatorsValue
+
t
.
OtherPerfor
+
t
.
Punishment
)
*
(
t
.
Adjust
??
1
)
,
};
};
resDataList
.
Add
(
res
);
resDataList
.
Add
(
res
);
}
}
...
...
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
0515adfa
...
@@ -32,8 +32,9 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
...
@@ -32,8 +32,9 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
Dictionary
<
PerformanceType
,
string
>
keyValues
=
new
Dictionary
<
PerformanceType
,
string
>
Dictionary
<
PerformanceType
,
string
>
keyValues
=
new
Dictionary
<
PerformanceType
,
string
>
{
{
{
PerformanceType
.
ReferenceDirector
,
"临床科室主任"
},
{
PerformanceType
.
ReferenceDirector
,
"临床科室主任"
},
{
PerformanceType
.
DeputyDirector
,
"临床科室副主任"
},
{
PerformanceType
.
Reference
DeputyDirector
,
"临床科室副主任"
},
{
PerformanceType
.
ReferenceHeadNurse
,
"临床科室护士长"
},
{
PerformanceType
.
ReferenceHeadNurse
,
"临床科室护士长"
},
{
PerformanceType
.
Null
,
"临床科室主任"
},
};
};
List
<
ComputeResult
>
computeList
=
new
List
<
ComputeResult
>();
List
<
ComputeResult
>
computeList
=
new
List
<
ComputeResult
>();
foreach
(
var
key
in
keyValues
.
Keys
)
foreach
(
var
key
in
keyValues
.
Keys
)
...
@@ -57,7 +58,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
...
@@ -57,7 +58,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
Avg
=
resAccount
?.
Avg
,
Avg
=
resAccount
?.
Avg
,
Efficiency
=
efficiency
?.
Value
*
resAccount
?.
Avg
,
Efficiency
=
efficiency
?.
Value
*
resAccount
?.
Avg
,
Scale
=
scale
?.
Value
*
resAccount
?.
PerforTotal
,
Scale
=
scale
?.
Value
*
resAccount
?.
PerforTotal
,
Grant
=
item
.
Grant
,
Grant
=
item
.
Grant
??
1
,
ScoreAverageRate
=
item
.
ScoreAverageRate
,
ScoreAverageRate
=
item
.
ScoreAverageRate
,
Punishment
=
item
.
Punishment
,
Punishment
=
item
.
Punishment
,
OtherPerfor
=
item
.
OtherPerfor
,
OtherPerfor
=
item
.
OtherPerfor
,
...
@@ -65,18 +66,18 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
...
@@ -65,18 +66,18 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
Workload
=
item
.
Workload
Workload
=
item
.
Workload
};
};
//应发管理绩效
//应发管理绩效
compute
.
ShouldGiveFee
=
(
efficiency
?.
Value
*
resAccount
?.
Avg
+
scale
?.
Value
*
resAccount
?.
PerforTotal
)
*
item
.
Grant
;
compute
.
ShouldGiveFee
=
(
efficiency
?.
Value
*
resAccount
?.
Avg
+
scale
?.
Value
*
resAccount
?.
PerforTotal
)
*
(
item
.
Grant
??
1
)
;
//绩效合计
//绩效合计
var
perforSumFee
=
(
compute
.
Avg
+
compute
.
Efficiency
+
compute
.
Scale
)
*
item
.
Grant
;
var
perforSumFee
=
(
compute
.
Avg
+
compute
.
Efficiency
+
compute
.
Scale
)
*
(
item
.
Grant
??
1
)
;
if
(
perforSumFee
>
(
compute
.
Avg
??
0
)
*
2.5
m
)
if
(
perforSumFee
>
(
compute
.
Avg
??
0
)
*
2.5
m
)
compute
.
PerforSumFee
=
(
compute
.
Avg
??
0
)
*
2.5
m
;
compute
.
PerforSumFee
=
(
compute
.
Avg
??
0
)
*
2.5
m
;
else
else
compute
.
PerforSumFee
=
perforSumFee
;
compute
.
PerforSumFee
=
perforSumFee
;
//应发绩效
//应发绩效
compute
.
GiveFee
=
compute
.
Avg
*
item
.
Grant
+
(
compute
.
Efficiency
+
compute
.
Scale
)
*
item
.
Grant
*
compute
.
ScoreAverageRate
+
(
item
.
Punishment
??
0
)
+
(
item
.
OtherPerfor
??
0
);
compute
.
GiveFee
=
compute
.
Avg
*
(
item
.
Grant
??
1
)
+
(
compute
.
Efficiency
+
compute
.
Scale
)
*
(
item
.
Grant
??
1
)
*
compute
.
ScoreAverageRate
+
(
item
.
Punishment
??
0
)
+
(
item
.
OtherPerfor
??
0
);
//实发绩效
//实发绩效
var
adjust
=
item
.
Adjust
??
1
m
;
var
adjust
=
item
.
Adjust
??
1
m
;
compute
.
RealGiveFee
=
compute
.
GiveFee
*
adjust
-
compute
.
ShouldGiveFee
*
item
.
ScoreAverageRate
*
item
.
Grant
*
0.1
m
;
compute
.
RealGiveFee
=
compute
.
GiveFee
*
adjust
-
compute
.
ShouldGiveFee
*
item
.
ScoreAverageRate
*
(
item
.
Grant
??
1
)
*
0.1
m
;
computeList
.
Add
(
compute
);
computeList
.
Add
(
compute
);
}
}
...
@@ -98,14 +99,18 @@ public List<res_baiscnorm> ComputeAvg(List<ComputeResult> computes)
...
@@ -98,14 +99,18 @@ public List<res_baiscnorm> ComputeAvg(List<ComputeResult> computes)
//new { type = "医技科室", reference = "科室主任人均绩效", groupname = "医技科主任" },
//new { type = "医技科室", reference = "科室主任人均绩效", groupname = "医技科主任" },
//new { type = "临床科室", reference = "科室护士长人均绩效", groupname = "临床科护长" },
//new { type = "临床科室", reference = "科室护士长人均绩效", groupname = "临床科护长" },
new
{
type
=
"临床科室"
,
reference
=
"科室副主任人均绩效"
,
groupname
=
"科副主任"
},
new
{
type
=
"行政中高层"
,
reference
=
"临床科室主任人均绩效"
,
groupname
=
"临床科主任"
},
new
{
type
=
"行政中高层"
,
reference
=
"临床科室护士长人均绩效"
,
groupname
=
"临床科护长"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室主任人均绩效"
,
groupname
=
"临床科主任"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室主任人均绩效"
,
groupname
=
"临床科主任"
},
new
{
type
=
"医技科室"
,
reference
=
"临床科室主任人均绩效"
,
groupname
=
"医技科主任"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室副主任人均绩效"
,
groupname
=
"临床科副主任"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室副主任人均绩效"
,
groupname
=
"临床科副主任"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室医生人均绩效"
,
groupname
=
"临床医生"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室护士长人均绩效"
,
groupname
=
"临床科护长"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室护士长人均绩效"
,
groupname
=
"临床科护长"
},
//new { type = "临床科室", reference = "临床科室护士人均绩效", groupname = "临床护士" },已存在
new
{
type
=
"临床科室"
,
reference
=
""
,
groupname
=
"临床科主任"
},
new
{
type
=
"临床科室"
,
reference
=
"行政工勤人均绩效"
,
groupname
=
"行政工勤"
},
new
{
type
=
"医技科室"
,
reference
=
"临床科室主任人均绩效"
,
groupname
=
"医技科主任"
},
new
{
type
=
"医技科室"
,
reference
=
"临床科室副主任人均绩效"
,
groupname
=
"医技副主任"
},
new
{
type
=
"医技科室"
,
reference
=
"临床科室护士长人均绩效"
,
groupname
=
"医技护士长"
},
new
{
type
=
"医技科室"
,
reference
=
""
,
groupname
=
"医技科主任"
},
};
};
var
groupList
=
from
cp
in
computes
var
groupList
=
from
cp
in
computes
...
@@ -150,6 +155,8 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
...
@@ -150,6 +155,8 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
foreach
(
var
type
in
types
)
foreach
(
var
type
in
types
)
{
{
var
needCompute
=
empolyeeList
.
Where
(
t
=>
t
.
FitPeople
==
EnumHelper
.
GetDescription
(
type
));
var
needCompute
=
empolyeeList
.
Where
(
t
=>
t
.
FitPeople
==
EnumHelper
.
GetDescription
(
type
));
if
(!
needCompute
.
Any
())
continue
;
var
baiscnorm
=
baiscNormService
.
GetBaiscNorm
(
baiscnormList
,
type
);
var
baiscnorm
=
baiscNormService
.
GetBaiscNorm
(
baiscnormList
,
type
);
foreach
(
var
item
in
needCompute
)
foreach
(
var
item
in
needCompute
)
...
@@ -160,7 +167,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
...
@@ -160,7 +167,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
AccountingUnit
=
item
.
AccountingUnit
,
AccountingUnit
=
item
.
AccountingUnit
,
EmployeeName
=
item
.
DoctorName
,
EmployeeName
=
item
.
DoctorName
,
FitPeople
=
item
.
FitPeople
,
FitPeople
=
item
.
FitPeople
,
Grant
=
item
.
Grant
,
Grant
=
item
.
Grant
??
1
,
WorkTime
=
item
.
WorkTime
,
WorkTime
=
item
.
WorkTime
,
BaiscNormValue
=
baiscnorm
*
(
item
.
FitPeopleRatio
??
1
),
//添加参数计算
BaiscNormValue
=
baiscnorm
*
(
item
.
FitPeopleRatio
??
1
),
//添加参数计算
PostCoefficient
=
item
.
PostCoefficient
,
PostCoefficient
=
item
.
PostCoefficient
,
...
@@ -184,7 +191,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
...
@@ -184,7 +191,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<res_
compute
.
GiveFee
=
baiscnorm
*
compute
.
PostCoefficient
*
compute
.
Attendance
*
compute
.
ScoreAverageRate
*
(
compute
.
WorkYear
??
1
)
+
(
compute
.
OtherPerfor
??
0
)
+
(
item
.
Workload
??
0
)
+
(
compute
.
Punishment
??
0
);
compute
.
GiveFee
=
baiscnorm
*
compute
.
PostCoefficient
*
compute
.
Attendance
*
compute
.
ScoreAverageRate
*
(
compute
.
WorkYear
??
1
)
+
(
compute
.
OtherPerfor
??
0
)
+
(
item
.
Workload
??
0
)
+
(
compute
.
Punishment
??
0
);
//实发绩效
//实发绩效
var
adjust
=
item
.
Adjust
??
1
m
;
var
adjust
=
item
.
Adjust
??
1
m
;
compute
.
RealGiveFee
=
compute
.
GiveFee
*
adjust
*
item
.
Grant
;
compute
.
RealGiveFee
=
compute
.
GiveFee
*
adjust
*
(
item
.
Grant
??
1
)
;
computeList
.
Add
(
compute
);
computeList
.
Add
(
compute
);
}
}
}
}
...
...
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