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
58367fb6
Commit
58367fb6
authored
Apr 28, 2020
by
lcx
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'budget' into readExcel
parents
8d87daf6
e49e553d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
22 deletions
+50
-22
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+5
-0
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+17
-6
performance/Performance.Services/BudgetService.cs
+10
-9
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+18
-7
No files found.
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
58367fb6
...
...
@@ -2822,6 +2822,11 @@
成本合计实际比例
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_budget_result.States"
>
<summary>
1.初始 2. 确认使用发放/调节系数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_budget_result.CreateDate"
>
<summary>
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
58367fb6
...
...
@@ -17,6 +17,7 @@ public class ResultComputeService : IAutoInjection
{
private
readonly
BaiscNormService
baiscNormService
;
private
readonly
ComputeDirector
computeDirector
;
private
readonly
BudgetService
budgetService
;
private
readonly
PerforImemployeeRepository
perforImEmployeeRepository
;
private
readonly
PerforRescomputeRepository
perforRescomputeRepository
;
private
readonly
PerforResbaiscnormRepository
perforResbaiscnormRepository
;
...
...
@@ -32,7 +33,7 @@ public class ResultComputeService : IAutoInjection
PerforResspecialunitRepository
perforResspecialunitRepository
,
PerforImaccountbasicRepository
perforImaccountbasicRepository
,
BaiscNormService
baiscNormService
,
ComputeDirector
computeDirector
,
LogManageService
logManageService
,
LogManageService
logManageService
,
BudgetService
budgetService
,
PerforImemployeeclinicRepository
perforImemployeeclinicRepository
)
{
this
.
baiscNormService
=
baiscNormService
;
...
...
@@ -43,6 +44,7 @@ public class ResultComputeService : IAutoInjection
this
.
perforResspecialunitRepository
=
perforResspecialunitRepository
;
this
.
perforImaccountbasicRepository
=
perforImaccountbasicRepository
;
this
.
logManageService
=
logManageService
;
this
.
budgetService
=
budgetService
;
this
.
perforImemployeeclinicRepository
=
perforImemployeeclinicRepository
;
}
...
...
@@ -100,6 +102,11 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
var
typeList
=
EnumHelper
.
GetItems
<
PerforType
>();
var
dataList
=
specialUnit
.
PerData
.
Select
(
t
=>
(
PerDataSpecialUnit
)
t
);
var
specialEmployee
=
perforImemployeeclinicRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
decimal
adjust
=
1
m
;
decimal
grant
=
1
m
;
var
isBudget
=
budgetService
.
GetAdjustAndGrant
(
allot
,
ref
adjust
,
ref
grant
);
//替换考核基数
foreach
(
var
item
in
dataList
)
{
...
...
@@ -161,6 +168,8 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
headcount
=
1
;
return
t
.
Quantity
*
t
.
QuantitativeIndicatorsValue
*
headcount
;
});
var
groupAdjust
=
isBudget
?
adjust
:
group
.
Adjust
;
foreach
(
var
item
in
accountDataList
)
{
var
res
=
new
res_specialunit
...
...
@@ -175,10 +184,10 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
ScoringAverage
=
group
.
ScoringAverage
,
OtherPerfor
=
group
.
OtherPerfor
,
Punishment
=
group
.
Punishment
,
Adjust
=
group
.
Adjust
==
0
?
1
:
group
.
Adjust
,
Adjust
=
(
groupAdjust
==
0
)
?
1
:
group
Adjust
,
};
res
.
GiveFee
=
(
sumValue
+
(
group
.
OtherPerfor
??
0
)
+
(
group
.
Punishment
??
0
));
res
.
RealGiveFee
=
res
.
GiveFee
*
(
group
.
Adjust
==
0
?
1
:
group
.
Adjust
);
res
.
RealGiveFee
=
res
.
GiveFee
*
(
group
Adjust
==
0
?
1
:
group
Adjust
);
res
.
Avg
=
group
.
Number
!=
0
?
res
.
GiveFee
/
group
.
Number
:
null
;
res
.
ResultsTotalFee
=
sumValue
;
resDataList
.
Add
(
res
);
...
...
@@ -201,6 +210,8 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
// Adjust = 1,
// };
//}
var
empolyeeAdjust
=
isBudget
?
adjust
:
empolyee
.
Adjust
;
var
compute
=
new
ComputeResult
{
UnitType
=
UnitType
.
特殊核算组
.
ToString
(),
...
...
@@ -218,14 +229,14 @@ public void SpecialUnitCompute(PerExcel excel, per_allot allot, List<res_baiscno
Number
=
group
.
Number
,
PerforTotal
=
sumValue
,
Avg
=
group
.
Number
==
0
?
0
:
(
sumValue
/
group
.
Number
),
Adjust
=
empolyee
.
Adjust
,
Grant
=
empolyee
.
Management
Adjust
=
empolyeeAdjust
,
Grant
=
isBudget
?
grant
:
empolyee
.
Management
};
compute
.
Efficiency
=
compute
.
Avg
*
(
empolyee
.
Efficiency
??
1
);
compute
.
Scale
=
compute
.
PerforTotal
*
(
empolyee
.
Scale
??
1
);
//应发管理绩效
compute
.
ShouldGiveFee
=
(
compute
.
Efficiency
+
compute
.
Scale
)
*
empolyee
.
Manageme
nt
;
compute
.
ShouldGiveFee
=
(
compute
.
Efficiency
+
compute
.
Scale
)
*
compute
.
Gra
nt
;
//绩效合计
compute
.
PerforSumFee
=
compute
.
Avg
+
compute
.
ShouldGiveFee
;
//应发绩效
...
...
performance/Performance.Services/BudgetService.cs
View file @
58367fb6
...
...
@@ -275,26 +275,27 @@ public bool UseResult(int id)
return
perbudgetresultRepository
.
Update
(
result
);
}
public
void
GetAdjust
(
int
allotId
,
ref
decimal
adjus
t
)
public
bool
GetAdjustAndGrant
(
int
allotId
,
ref
decimal
adjust
,
ref
decimal
gran
t
)
{
var
allot
=
perallotRepository
.
GetEntity
(
t
=>
t
.
ID
==
allotId
);
if
(
allot
==
null
)
return
;
if
(
allot
==
null
)
return
false
;
var
result
=
perbudgetresultRepository
.
GetEntity
(
t
=>
t
.
HospitalId
==
allot
.
HospitalId
&&
t
.
Year
==
allot
.
Year
&&
t
.
Month
==
allot
.
Month
);
if
(
result
==
null
||
result
.
States
!=
2
)
return
;
if
(
result
==
null
||
result
.
States
!=
2
)
return
false
;
adjust
=
result
.
Adjust
.
Value
;
adjust
=
result
.
Adjust
.
Value
;
grant
=
result
.
Grant
.
Value
;
return
true
;
}
public
void
GetGrant
(
int
allotId
,
ref
decimal
grant
)
public
bool
GetAdjustAndGrant
(
per_allot
allot
,
ref
decimal
adjust
,
ref
decimal
grant
)
{
var
allot
=
perallotRepository
.
GetEntity
(
t
=>
t
.
ID
==
allotId
);
if
(
allot
==
null
)
return
;
var
result
=
perbudgetresultRepository
.
GetEntity
(
t
=>
t
.
HospitalId
==
allot
.
HospitalId
&&
t
.
Year
==
allot
.
Year
&&
t
.
Month
==
allot
.
Month
);
if
(
result
==
null
||
result
.
States
!=
2
)
return
;
if
(
result
==
null
||
result
.
States
!=
2
)
return
false
;
adjust
=
result
.
Adjust
.
Value
;
grant
=
result
.
Grant
.
Value
;
return
true
;
}
}
}
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
58367fb6
...
...
@@ -19,17 +19,20 @@ public class ComputeDirector : IAutoInjection
private
readonly
PerforCofdirectorRepository
perforCofdirectorRepository
;
private
readonly
PerforCofworkyearRepository
perforCofworkyearRepository
;
private
readonly
PerforResaccountRepository
perforResaccountRepository
;
private
readonly
BudgetService
budgetService
;
//private readonly PerforResaccountdoctorRepository perforResAccountdoctorRepository;
public
ComputeDirector
(
BaiscNormService
baiscNormService
,
PerforCofdirectorRepository
perforCofdirectorRepository
,
PerforCofworkyearRepository
perforCofworkyearRepository
,
PerforResaccountRepository
perforResaccountRepository
)
PerforResaccountRepository
perforResaccountRepository
,
BudgetService
budgetService
)
{
this
.
baiscNormService
=
baiscNormService
;
this
.
perforCofdirectorRepository
=
perforCofdirectorRepository
;
this
.
perforCofworkyearRepository
=
perforCofworkyearRepository
;
this
.
perforResaccountRepository
=
perforResaccountRepository
;
this
.
budgetService
=
budgetService
;
}
#
region
老版计算
...
...
@@ -292,6 +295,10 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
}
List
<
ComputeResult
>
computeList
=
new
List
<
ComputeResult
>();
var
adjust
=
1
m
;
var
grant
=
1
m
;
var
isBudget
=
budgetService
.
GetAdjustAndGrant
(
allot
,
ref
adjust
,
ref
grant
);
var
empDis
=
empolyeeList
.
Select
(
w
=>
new
{
w
.
DoctorName
,
w
.
JobNumber
}).
Distinct
();
foreach
(
var
emp
in
empDis
)
{
...
...
@@ -338,7 +345,6 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
var
efficiency
=
avg
*
(
empolyee
.
Efficiency
??
1
);
var
scale
=
resAccount
.
PerforTotal
*
(
empolyee
.
Scale
??
1
);
var
compute
=
new
ComputeResult
{
UnitType
=
basicRule
.
UnitType
.
ToString
(),
...
...
@@ -359,9 +365,9 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
Avg
=
avg
,
Efficiency
=
effAvg
*
(
empolyee
.
Efficiency
??
1
),
Scale
=
resAccount
.
PerforTotal
*
(
empolyee
.
Scale
??
1
),
Adjust
=
empolyee
.
Adjust
,
Adjust
=
isBudget
?
adjust
:
empolyee
.
Adjust
,
Remark
=
empolyees
.
Count
()
>
1
?
"特殊科室主任,共用核算单元"
:
""
,
Grant
=
empolyee
.
Management
,
Grant
=
isBudget
?
grant
:
empolyee
.
Management
,
ManagerNumber
=
resAccount
.
ManagerNumber
,
MedicalNumber
=
resAccount
.
Number
,
PermanentStaff
=
resAccount
.
PermanentStaff
,
...
...
@@ -404,16 +410,21 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
if
(!
needCompute
.
Any
())
return
computeList
;
decimal
adjust
=
1
m
;
decimal
grant
=
1
m
;
var
isBudget
=
budgetService
.
GetAdjustAndGrant
(
allot
,
ref
adjust
,
ref
grant
);
var
perforTypeArray
=
EnumHelper
.
GetItems
<
PerforType
>();
foreach
(
var
item
in
needCompute
)
{
var
itemAdjust
=
isBudget
?
adjust
:
item
.
Adjust
;
var
compute
=
new
ComputeResult
{
AccountType
=
item
.
AccountType
,
AccountingUnit
=
item
.
AccountingUnit
,
EmployeeName
=
item
.
DoctorName
,
FitPeople
=
item
.
FitPeople
,
Grant
=
i
tem
.
Management
??
1
,
Grant
=
i
sBudget
?
grant
:
(
item
.
Management
??
1
)
,
WorkTime
=
item
.
WorkTime
,
PostCoefficient
=
item
.
PostCoefficient
,
Attendance
=
item
.
Attendance
,
...
...
@@ -422,7 +433,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
OtherPerfor
=
item
.
OtherPerfor
,
JobTitle
=
item
.
JobTitle
,
JobNumber
=
item
.
JobNumber
,
Adjust
=
item
.
Adjust
,
Adjust
=
itemAdjust
,
//Workload = item.Workload
};
...
...
@@ -447,7 +458,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
compute
.
GiveFee
=
compute
.
BaiscNormValue
*
compute
.
PostCoefficient
*
(
compute
.
WorkYear
??
1
)
*
compute
.
Attendance
*
compute
.
ScoreAverageRate
+
(
compute
.
OtherPerfor
??
0
)
+
(
compute
.
Punishment
??
0
);
//实发绩效
compute
.
RealGiveFee
=
compute
.
GiveFee
*
(
item
.
Adjust
??
1
);
compute
.
RealGiveFee
=
compute
.
GiveFee
*
(
itemAdjust
??
1
);
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