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
87fe4451
Commit
87fe4451
authored
Jun 11, 2019
by
ruyun.zhang@suvalue.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
绩效新都四月
parent
0515adfa
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
65 additions
and
45 deletions
+65
-45
performance/Performance.Api/Controllers/AllotController.cs
+2
-2
performance/Performance.DtoModels/PerExcel/ExcelEnum.cs
+10
-12
performance/Performance.Services/AllotCompute/BaiscNormService.cs
+8
-8
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+4
-1
performance/Performance.Services/ComputeService.cs
+1
-1
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+40
-21
No files found.
performance/Performance.Api/Controllers/AllotController.cs
View file @
87fe4451
...
...
@@ -156,8 +156,8 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody]Al
if
(
null
==
allot
||
string
.
IsNullOrEmpty
(
allot
.
Path
))
throw
new
PerformanceException
(
"当前绩效记录不存在或没有上传数据文件"
);
var
user
=
_claim
.
At
(
request
);
//
_allotService.Generate(allot, user.Mail);
BackgroundJob
.
Enqueue
(()
=>
_allotService
.
Generate
(
allot
,
user
.
Mail
));
_allotService
.
Generate
(
allot
,
user
.
Mail
);
//
BackgroundJob.Enqueue(() => _allotService.Generate(allot, user.Mail));
return
new
ApiResponse
(
ResponseType
.
OK
);
}
...
...
performance/Performance.DtoModels/PerExcel/ExcelEnum.cs
View file @
87fe4451
...
...
@@ -67,15 +67,15 @@ public enum PerformanceType
[
Description
(
""
)]
Null
=
0
,
/// <summary>
科室主任人均绩效
</summary>
//[Description("科室主任人均绩效
")]
//
Director = 1,
/// <summary>
科室副主任人均绩效
</summary>
[
Description
(
"
科室副主任人均绩效
"
)]
DeputyDirector
=
2
,
/// <summary>
科室护士长人均绩效
</summary>
//[Description("科室护士长人均绩效
")]
//
Nurse = 3,
/// <summary>
绩效基数临床科室主任(专门用来计算科主任绩效,由此产生=>>临床科室主任人均绩效)
</summary>
[
Description
(
"绩效基数临床科室主任
"
)]
Standard
Director
=
1
,
/// <summary>
绩效基数临床科室副主任(专门用来计算科主任绩效,由此产生=>>临床科室副主任人均绩效)
</summary>
[
Description
(
"
绩效基数临床科室副主任
"
)]
Standard
DeputyDirector
=
2
,
/// <summary>
绩效基数临床科室护士长(专门用来计算科主任绩效,由此产生=>>临床科室护士长人均绩效)
</summary>
[
Description
(
"绩效基数临床科室护士长
"
)]
Standard
Nurse
=
3
,
/// <summary> 临床科室主任人均绩效 (绩效标准取 科室主任人均绩效) </summary>
[
Description
(
"临床科室主任人均绩效"
)]
...
...
@@ -83,9 +83,7 @@ public enum PerformanceType
/// <summary> 临床科室中层人均绩效 (绩效标准取 科室主任/护士长/科室副主任/医技主任 平均值) </summary>
[
Description
(
"临床科室中层人均绩效"
)]
ReferenceDirectorAvg
=
5
,
/// <summary> 临床科室护士人均绩效的95% (绩效标准取 护理组临床科室单元核算表 平均值) </summary>
//[Description("临床科室护士人均绩效的95%")]
//ReferenceNurseAvg95 = 6,
/// <summary> 临床科室护士长人均绩效 (绩效标准取 护士长 平均值)</summary>
[
Description
(
"临床科室护士长人均绩效"
)]
ReferenceHeadNurse
=
7
,
...
...
performance/Performance.Services/AllotCompute/BaiscNormService.cs
View file @
87fe4451
...
...
@@ -36,18 +36,18 @@ public class BaiscNormService : IAutoInjection
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床科护长"
)?.
AvgValue
;
}
//
else if (type == PerformanceType.ReferenceNurse)
//
{
//
result = baiscnorms.FirstOrDefault(t => t.PositionName == "临床护士")?.AvgValue;
//
}
else
if
(
type
==
PerformanceType
.
ReferenceNurse
)
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床护士"
)?.
AvgValue
;
}
else
if
(
type
==
PerformanceType
.
ReferenceDoctor
)
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"临床医生"
)?.
AvgValue
;
}
//
else if (type == PerformanceType.LogisticsWorker)
//
{
//
result = baiscnorms.FirstOrDefault(t => t.PositionName == "行政工勤")?.AvgValue;
//
}
else
if
(
type
==
PerformanceType
.
LogisticsWorker
)
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
"行政工勤"
)?.
AvgValue
;
}
if
(
result
.
HasValue
)
result
=
Math
.
Round
(
result
.
Value
,
4
);
return
result
;
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
87fe4451
...
...
@@ -70,11 +70,14 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, res_baiscnor
computeSources
.
AddRange
(
Mapper
.
Map
<
List
<
ComputeSource
>>(
nurseList
));
var
computResult
=
computeDirector
.
Compute
(
computeEmployees
,
computeSources
,
directorList
);
//计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值)
var
baiscnormList
=
computeDirector
.
ComputeAvg
(
computResult
);
baiscnormList
.
Add
(
baiscnorm
);
var
computResult2
=
computeDirector
.
Compute
(
computeEmployees
,
baiscnormList
,
workyearList
);
//计算 行政人员 平均值
var
baiscnormList2
=
computeDirector
.
ComputeOtherAvg
(
computResult2
);
baiscnormList
.
AddRange
(
baiscnormList2
);
var
computes
=
Mapper
.
Map
<
List
<
res_compute
>>(
computResult
);
computes
.
AddRange
(
Mapper
.
Map
<
List
<
res_compute
>>(
computResult2
));
...
...
performance/Performance.Services/ComputeService.cs
View file @
87fe4451
...
...
@@ -56,7 +56,7 @@ public List<ResComputeResponse> GetCompute(int allotId, int type)
{
1
,
new
List
<
PerformanceType
>{
PerformanceType
.
ReferenceDirector
}
},
{
2
,
new
List
<
PerformanceType
>{
PerformanceType
.
ReferenceDirectorAvg
}
},
{
3
,
new
List
<
PerformanceType
>{
PerformanceType
.
LogisticsWorker
,
PerformanceType
.
ReferenceHeadNurse
,
PerformanceType
.
ReferenceNurse
,
PerformanceType
.
Null
}
},
{
4
,
new
List
<
PerformanceType
>{
PerformanceType
.
ReferenceDoctor
,
PerformanceType
.
DeputyDirector
}
},
{
4
,
new
List
<
PerformanceType
>{
PerformanceType
.
ReferenceDoctor
,
PerformanceType
.
Standard
DeputyDirector
}
},
{
5
,
new
List
<
PerformanceType
>{
PerformanceType
.
ReferenceNurse
}
}
};
...
...
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
87fe4451
...
...
@@ -31,11 +31,11 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
{
Dictionary
<
PerformanceType
,
string
>
keyValues
=
new
Dictionary
<
PerformanceType
,
string
>
{
{
PerformanceType
.
ReferenceDirector
,
"临床科室主任"
},
{
PerformanceType
.
ReferenceDeputyDirector
,
"临床科室副主任"
},
{
PerformanceType
.
ReferenceHeadNurse
,
"临床科室护士长"
},
{
PerformanceType
.
Null
,
"临床科室主任"
},
{
PerformanceType
.
StandardDirector
,
"临床科室主任"
},
{
PerformanceType
.
StandardDeputyDirector
,
"临床科室副主任"
},
{
PerformanceType
.
StandardNurse
,
"临床科室护士长"
},
};
List
<
ComputeResult
>
computeList
=
new
List
<
ComputeResult
>();
foreach
(
var
key
in
keyValues
.
Keys
)
{
...
...
@@ -76,8 +76,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<Comp
//应发绩效
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
;
compute
.
RealGiveFee
=
compute
.
GiveFee
*
adjust
-
compute
.
ShouldGiveFee
*
item
.
ScoreAverageRate
*
(
item
.
Grant
??
1
)
*
0.1
m
;
compute
.
RealGiveFee
=
compute
.
GiveFee
*
(
item
.
Adjust
??
1
m
)
-
compute
.
ShouldGiveFee
*
item
.
ScoreAverageRate
*
(
item
.
Grant
??
1
)
*
0.1
m
;
computeList
.
Add
(
compute
);
}
...
...
@@ -94,27 +93,47 @@ 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 = "临床科护长" },
//绩效基数平均值项目
new
{
type
=
"临床科室"
,
reference
=
EnumHelper
.
GetDescription
(
PerformanceType
.
StandardDirector
),
groupname
=
"临床科主任"
},
new
{
type
=
"临床科室"
,
reference
=
EnumHelper
.
GetDescription
(
PerformanceType
.
StandardDeputyDirector
),
groupname
=
"临床科副主任"
},
new
{
type
=
"医技科室"
,
reference
=
EnumHelper
.
GetDescription
(
PerformanceType
.
StandardDirector
),
groupname
=
"医技科主任"
},
new
{
type
=
"医技科室"
,
reference
=
EnumHelper
.
GetDescription
(
PerformanceType
.
StandardDeputyDirector
),
groupname
=
"医技科副主任"
},
new
{
type
=
"临床科室"
,
reference
=
EnumHelper
.
GetDescription
(
PerformanceType
.
StandardNurse
),
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
};
new
{
type
=
"临床科室"
,
reference
=
"临床科室主任人均绩效"
,
groupname
=
"临床科主任"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室副主任人均绩效"
,
groupname
=
"临床科副主任"
},
new
{
type
=
"临床科室"
,
reference
=
"临床科室护士长人均绩效"
,
groupname
=
"临床科护长"
},
new
{
type
=
"临床科室"
,
reference
=
""
,
groupname
=
"临床科主任"
},
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
();
}
new
{
type
=
"医技科室"
,
reference
=
"临床科室主任人均绩效"
,
groupname
=
"医技科主任"
},
new
{
type
=
"医技科室"
,
reference
=
"临床科室副主任人均绩效"
,
groupname
=
"医技副主任"
},
new
{
type
=
"医技科室"
,
reference
=
"临床科室护士长人均绩效"
,
groupname
=
"医技护士长"
},
new
{
type
=
"医技科室"
,
reference
=
""
,
groupname
=
"医技科主任"
},
/// <summary>
/// 绩效标准计算
/// </summary>
/// <param name="computes"></param>
/// <returns></returns>
public
List
<
res_baiscnorm
>
ComputeOtherAvg
(
List
<
ComputeResult
>
computes
)
{
var
keyList
=
new
[]
{
//行政绩效平均值项目
new
{
type
=
"行政中高层"
,
groupname
=
"行政中高层"
},
new
{
type
=
"行政高层"
,
groupname
=
"行政高层"
},
new
{
type
=
"行政中层"
,
groupname
=
"行政中层"
},
new
{
type
=
"行政工勤"
,
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
}
join
gp
in
keyList
on
cp
.
AccountType
equals
gp
.
type
select
new
{
gp
.
groupname
,
cp
};
var
result
=
groupList
.
GroupBy
(
t
=>
t
.
groupname
)
...
...
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