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
796c7a54
Commit
796c7a54
authored
Jan 17, 2020
by
李承祥
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
临床人员管理 生成绩效修改
parent
a9e8f4f4
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
261 additions
and
11 deletions
+261
-11
performance/Performance.Api/Controllers/EmployeeController.cs
+77
-0
performance/Performance.Api/wwwroot/Performance.Api.xml
+28
-0
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+58
-1
performance/Performance.Services/EmployeeService.cs
+94
-2
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+4
-8
No files found.
performance/Performance.Api/Controllers/EmployeeController.cs
View file @
796c7a54
...
...
@@ -72,5 +72,81 @@ public ApiResponse Delete([CustomizeValidator(RuleSet = "Delete"), FromBody]Empl
return
new
ApiResponse
(
ResponseType
.
Fail
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
/// <summary>
/// 获取临床人员列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"clinic/getlist"
)]
[
HttpPost
]
public
ApiResponse
GetEmployeeClinicList
([
CustomizeValidator
(
RuleSet
=
"Select"
),
FromBody
]
im_employee_clinic
request
)
{
if
((
request
.
AllotID
??
0
)
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
employee
=
employeeService
.
GetEmployeeClinicList
(
request
.
AllotID
.
Value
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
}
/// <summary>
/// 新增临床人员
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"clinic/insert"
)]
[
HttpPost
]
public
ApiResponse
InsertClinic
([
CustomizeValidator
(
RuleSet
=
"Insert"
),
FromBody
]
im_employee_clinic
request
)
{
if
((
request
.
AllotID
??
0
)
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
if
(
string
.
IsNullOrEmpty
(
request
.
AccountingUnit
))
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AccountingUnit无效!"
);
if
(
string
.
IsNullOrEmpty
(
request
.
DoctorName
))
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数DoctorName无效!"
);
var
employee
=
employeeService
.
InsertClinic
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
}
/// <summary>
/// 修改临床人员
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"clinic/update"
)]
[
HttpPost
]
public
ApiResponse
UpdateClinic
([
CustomizeValidator
(
RuleSet
=
"Update"
),
FromBody
]
im_employee_clinic
request
)
{
if
((
request
.
AllotID
??
0
)
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
if
(
string
.
IsNullOrEmpty
(
request
.
AccountingUnit
))
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AccountingUnit无效!"
);
if
(
string
.
IsNullOrEmpty
(
request
.
DoctorName
))
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数DoctorName无效!"
);
var
employee
=
employeeService
.
UpdateClinic
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
}
/// <summary>
/// 删除临床人员
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"clinic/delete"
)]
[
HttpPost
]
public
ApiResponse
DeleteClinic
([
CustomizeValidator
(
RuleSet
=
"Delete"
),
FromBody
]
im_employee_clinic
request
)
{
if
(
request
.
ID
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数ID无效!"
);
if
(!
employeeService
.
DeleteClinic
(
request
))
return
new
ApiResponse
(
ResponseType
.
Fail
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
}
}
\ No newline at end of file
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
796c7a54
...
...
@@ -480,6 +480,34 @@
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetEmployeeClinicList(Performance.EntityModels.im_employee_clinic)"
>
<summary>
获取临床人员列表
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.InsertClinic(Performance.EntityModels.im_employee_clinic)"
>
<summary>
新增临床人员
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.UpdateClinic(Performance.EntityModels.im_employee_clinic)"
>
<summary>
修改临床人员
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.DeleteClinic(Performance.EntityModels.im_employee_clinic)"
>
<summary>
删除临床人员
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.GuaranteeController.Guarantee(Performance.DtoModels.GuaranteeRequest)"
>
<summary>
保底绩效配置列表
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
796c7a54
...
...
@@ -142,6 +142,10 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
Adjust
=
t
.
Max
(
p
=>
p
.
Adjust
),
});
var
empolyeeList
=
perforImemployeeclinicRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
&&
t
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
());
List
<
ComputeEmployee
>
computeEmployees
=
Mapper
.
Map
<
List
<
ComputeEmployee
>>(
empolyeeList
);
List
<
ComputeResult
>
computeList
=
new
List
<
ComputeResult
>();
foreach
(
var
group
in
groupSpeList
)
{
//获取需要聚合的科室
...
...
@@ -176,10 +180,63 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
res
.
GiveFee
=
(
sumValue
+
(
group
.
OtherPerfor
??
0
)
+
(
group
.
Punishment
??
0
));
res
.
RealGiveFee
=
res
.
GiveFee
*
(
group
.
Adjust
==
0
?
1
:
group
.
Adjust
);
res
.
Avg
=
group
.
Number
!=
0
?
res
.
GiveFee
/
group
.
Number
:
null
;
res
.
ResultsTotalFee
=
0
;
res
.
ResultsTotalFee
=
sumValue
;
resDataList
.
Add
(
res
);
}
var
empolyee
=
computeEmployees
.
FirstOrDefault
(
t
=>
t
.
AccountingUnit
==
group
.
AccountingUnit
);
if
(
empolyee
==
null
)
{
empolyee
=
new
ComputeEmployee
{
AccountType
=
AccountUnitType
.
科主任
.
ToString
(),
DoctorName
=
"人员信息缺失"
,
FitPeople
=
""
,
ScoreAverageRate
=
1
,
Punishment
=
0
,
OtherPerfor
=
0
,
Adjust
=
1
,
};
}
var
compute
=
new
ComputeResult
{
UnitType
=
UnitType
.
特殊核算组
.
ToString
(),
AccountingUnit
=
group
.
AccountingUnit
,
AccountType
=
AccountUnitType
.
科主任
.
ToString
(),
EmployeeName
=
empolyee
.
DoctorName
,
FitPeople
=
empolyee
.
FitPeople
,
JobTitle
=
empolyee
.
JobTitle
,
ScoreAverageRate
=
empolyee
.
ScoreAverageRate
,
Punishment
=
empolyee
.
Punishment
,
OtherPerfor
=
empolyee
.
OtherPerfor
,
Number
=
group
.
Number
,
PerforTotal
=
sumValue
,
Avg
=
group
.
Number
==
0
?
0
:
(
sumValue
/
group
.
Number
),
Adjust
=
empolyee
.
Adjust
};
compute
.
Efficiency
=
compute
.
Avg
*
(
empolyee
.
Efficiency
??
1
);
compute
.
Scale
=
compute
.
PerforTotal
*
(
empolyee
.
Scale
??
1
);
//应发管理绩效
compute
.
ShouldGiveFee
=
(
compute
.
Efficiency
+
compute
.
Scale
)
*
empolyee
.
Management
;
//绩效合计
compute
.
PerforSumFee
=
compute
.
Avg
+
compute
.
ShouldGiveFee
;
//应发绩效
compute
.
GiveFee
=
compute
.
PerforSumFee
;
//实发绩效
compute
.
RealGiveFee
=
(
compute
.
GiveFee
*
compute
.
ScoreAverageRate
+
(
compute
.
Punishment
??
0
)
+
(
compute
.
OtherPerfor
??
0
))
*
(
compute
.
Adjust
??
1
m
);
// 参考基数专用绩效合计
compute
.
BaiscNormPerforTotal
=
compute
.
RealGiveFee
;
computeList
.
Add
(
compute
);
}
var
computes
=
Mapper
.
Map
<
List
<
res_compute
>>(
computeList
);
computes
.
ForEach
(
t
=>
t
.
AllotID
=
allot
.
ID
);
perforRescomputeRepository
.
AddRange
(
computes
.
ToArray
());
perforResspecialunitRepository
.
AddRange
(
resDataList
.
ToArray
());
}
}
...
...
performance/Performance.Services/EmployeeService.cs
View file @
796c7a54
...
...
@@ -18,15 +18,20 @@ public class EmployeeService : IAutoInjection
private
PerforImemployeeRepository
perforImemployeeRepository
;
private
PerforPersheetRepository
perforPersheetRepository
;
private
PerforPerallotRepository
perforPerallotRepository
;
private
PerforImemployeeclinicRepository
perforImemployeeclinicRepository
;
public
EmployeeService
(
PerforImemployeeRepository
perforImemployeeRepository
,
PerforPersheetRepository
perforPersheetRepository
,
PerforPerallotRepository
perforPerallotRepository
)
PerforPerallotRepository
perforPerallotRepository
,
PerforImemployeeclinicRepository
perforImemployeeclinicRepository
)
{
this
.
perforImemployeeRepository
=
perforImemployeeRepository
;
this
.
perforPersheetRepository
=
perforPersheetRepository
;
this
.
perforPerallotRepository
=
perforPerallotRepository
;
this
.
perforImemployeeclinicRepository
=
perforImemployeeclinicRepository
;
}
#
region
行政人员
/// <summary>
///获取人员信息
/// </summary>
...
...
@@ -65,7 +70,7 @@ public im_employee Insert(EmployeeRequest request)
var
sheet
=
perforPersheetRepository
.
GetEntity
(
t
=>
t
.
AllotID
==
request
.
AllotID
&&
t
.
SheetType
==
(
int
)
SheetType
.
Employee
);
if
(
sheet
==
null
)
{
sheet
=
new
per_sheet
{
AllotID
=
allot
.
ID
,
SheetName
=
"
医院
人员名单"
,
SheetType
=
(
int
)
SheetType
.
Employee
,
Source
=
1
};
sheet
=
new
per_sheet
{
AllotID
=
allot
.
ID
,
SheetName
=
"
行政
人员名单"
,
SheetType
=
(
int
)
SheetType
.
Employee
,
Source
=
1
};
perforPersheetRepository
.
Add
(
sheet
);
}
...
...
@@ -121,5 +126,92 @@ public bool Delete(EmployeeRequest request)
return
perforImemployeeRepository
.
Remove
(
employee
);
}
#
endregion
#
region
临床人员
/// <summary>
///获取临床人员列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public
List
<
im_employee_clinic
>
GetEmployeeClinicList
(
int
allotId
)
{
var
employee
=
perforImemployeeclinicRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
);
return
employee
?.
OrderBy
(
t
=>
t
.
RowNumber
).
ToList
();
}
/// <summary>
/// 新增临床人员
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public
im_employee_clinic
InsertClinic
(
im_employee_clinic
request
)
{
var
allot
=
perforPerallotRepository
.
GetEntity
(
t
=>
t
.
ID
==
request
.
AllotID
);
if
(
allot
==
null
)
throw
new
PerformanceException
(
"绩效方案不存在"
);
var
sheet
=
perforPersheetRepository
.
GetEntity
(
t
=>
t
.
AllotID
==
request
.
AllotID
&&
t
.
SheetType
==
(
int
)
SheetType
.
ClinicEmployee
);
if
(
sheet
==
null
)
{
sheet
=
new
per_sheet
{
AllotID
=
allot
.
ID
,
SheetName
=
"临床人员名单"
,
SheetType
=
(
int
)
SheetType
.
Employee
,
Source
=
1
};
perforPersheetRepository
.
Add
(
sheet
);
}
request
.
SheetID
=
sheet
.
ID
;
perforImemployeeclinicRepository
.
Add
(
request
);
return
request
;
}
/// <summary>
/// 修改临床人员信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public
im_employee_clinic
UpdateClinic
(
im_employee_clinic
request
)
{
var
employee
=
perforImemployeeclinicRepository
.
GetEntity
(
t
=>
t
.
ID
==
request
.
ID
);
if
(
employee
==
null
)
throw
new
PerformanceException
(
"该人员不存在"
);
employee
.
AccountingUnit
=
request
.
AccountingUnit
;
employee
.
DoctorName
=
request
.
DoctorName
;
employee
.
UnitType
=
request
.
UnitType
;
employee
.
Department
=
request
.
Department
;
employee
.
JobTitle
=
request
.
JobTitle
;
employee
.
PostCoefficient
=
request
.
PostCoefficient
;
employee
.
ScoreAverageRate
=
request
.
ScoreAverageRate
;
employee
.
Efficiency
=
request
.
Efficiency
;
employee
.
Scale
=
request
.
Scale
;
employee
.
Management
=
request
.
Management
;
employee
.
Attendance
=
request
.
Attendance
;
employee
.
PeopleNumber
=
request
.
PeopleNumber
;
employee
.
Workload
=
request
.
Workload
;
employee
.
OtherPerfor
=
request
.
OtherPerfor
;
employee
.
Punishment
=
request
.
Punishment
;
employee
.
Adjust
=
request
.
Adjust
;
employee
.
Grant
=
request
.
Grant
;
//修改人员信息
perforImemployeeclinicRepository
.
Update
(
employee
);
return
employee
;
}
/// <summary>
/// 删除临床人员
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public
bool
DeleteClinic
(
im_employee_clinic
request
)
{
var
employee
=
perforImemployeeclinicRepository
.
GetEntity
(
t
=>
t
.
ID
==
request
.
ID
);
if
(
null
==
employee
)
throw
new
PerformanceException
(
"该人员不存在"
);
return
perforImemployeeclinicRepository
.
Remove
(
employee
);
}
#
endregion
}
}
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
796c7a54
...
...
@@ -157,10 +157,10 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
List
<
ComputeResult
>
computeList
=
new
List
<
ComputeResult
>();
foreach
(
var
accountbasic
in
accountbasicList
)
{
//if (!accountbasic.ManagerNumber.HasValue || accountbasic.ManagerNumber.Value == 0)
// continue;
if
((!
accountbasic
.
DoctorDirectorNumber
.
HasValue
&&
"皮肤科"
!=
accountbasic
.
DoctorAccountingUnit
)
||
(
accountbasic
.
DoctorDirectorNumber
.
Value
==
0
&&
"皮肤科"
!=
accountbasic
.
DoctorAccountingUnit
))
if
(!
accountbasic
.
DoctorDirectorNumber
.
HasValue
||
accountbasic
.
DoctorDirectorNumber
.
Value
==
0
)
continue
;
//if ((!accountbasic.DoctorDirectorNumber.HasValue && "皮肤科" != accountbasic.DoctorAccountingUnit) || (accountbasic.DoctorDirectorNumber.Value == 0 && "皮肤科" != accountbasic.DoctorAccountingUnit))
// continue;
//原不存在科主任则跳过科主任绩效计算20190920新都
//是否共用核算单元
...
...
@@ -243,7 +243,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
Remark
=
isShare
?
"特殊科室主任,共用核算单元"
:
""
};
//应发管理绩效
compute
.
ShouldGiveFee
=
(
compute
.
Efficiency
+
compute
.
Scale
)
*
accountbasic
.
DoctorGrant
;
compute
.
ShouldGiveFee
=
(
compute
.
Efficiency
+
compute
.
Scale
)
*
(
empolyee
.
Management
??
0
)
;
//绩效合计
compute
.
PerforSumFee
=
compute
.
Avg
+
compute
.
ShouldGiveFee
;
//应发绩效
...
...
@@ -258,8 +258,6 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
return
computeList
;
}
/// <summary>
/// 院领导、业务中层、工勤人员 计算
/// </summary>
...
...
@@ -327,6 +325,4 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
return
computeList
;
}
}
}
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