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
16e726ae
Commit
16e726ae
authored
Aug 26, 2020
by
ruyun.zhang@suvalue.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BUG修复
parent
811be206
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
122 additions
and
125 deletions
+122
-125
performance/Performance.Services/AllotCompute/BaiscNormService.cs
+84
-84
performance/Performance.Services/AllotCompute/ProcessComputService.cs
+5
-8
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+4
-4
performance/Performance.Services/AllotService.cs
+1
-1
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+2
-2
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadClinicEmployee.cs
+26
-26
No files found.
performance/Performance.Services/AllotCompute/BaiscNormService.cs
View file @
16e726ae
...
@@ -37,7 +37,7 @@ public List<res_baiscnorm> ComputeAvg(List<res_baiscnorm> baiscnormList, List<im
...
@@ -37,7 +37,7 @@ public List<res_baiscnorm> ComputeAvg(List<res_baiscnorm> baiscnormList, List<im
PositionName
=
EnumHelper
.
GetDescription
(
item
.
Reference
),
PositionName
=
EnumHelper
.
GetDescription
(
item
.
Reference
),
TotelNumber
=
count
,
TotelNumber
=
count
,
TotelValue
=
dataList
?.
Sum
(
t
=>
t
.
BaiscNormPerforTotal
),
TotelValue
=
dataList
?.
Sum
(
t
=>
t
.
BaiscNormPerforTotal
),
AvgValue
=
Math
.
Round
((
dataList
?.
Sum
(
t
=>
t
.
BaiscNormPerforTotal
)
/
count
)
??
0
)
AvgValue
=
count
==
0
?
0
:
Math
.
Round
((
dataList
?.
Sum
(
t
=>
t
.
BaiscNormPerforTotal
)
/
count
)
??
0
)
};
};
baiscnormList
.
Add
(
baiscnorm
);
baiscnormList
.
Add
(
baiscnorm
);
}
}
...
@@ -67,114 +67,114 @@ public List<res_baiscnorm> ComputeOtherAvg(List<res_baiscnorm> baiscnormList, Li
...
@@ -67,114 +67,114 @@ public List<res_baiscnorm> ComputeOtherAvg(List<res_baiscnorm> baiscnormList, Li
{
{
PositionName
=
EnumHelper
.
GetDescription
(
item
.
reference
),
PositionName
=
EnumHelper
.
GetDescription
(
item
.
reference
),
TotelNumber
=
count
,
TotelNumber
=
count
,
TotelValue
=
dataList
.
Sum
(
t
=>
t
.
GiveFee
),
TotelValue
=
count
==
0
?
0
:
dataList
.
Sum
(
t
=>
t
.
GiveFee
),
AvgValue
=
Math
.
Round
((
dataList
.
Sum
(
t
=>
t
.
GiveFee
)
/
count
)
??
0
)
AvgValue
=
Math
.
Round
((
dataList
.
Sum
(
t
=>
t
.
GiveFee
)
/
count
)
??
0
)
};
};
baiscnormList
.
Add
(
baiscnorm
);
baiscnormList
.
Add
(
baiscnorm
);
}
}
}
}
return
baiscnormList
;
return
baiscnormList
;
}
}
/// <summary>
/// <summary>
/// 院领导、行政中层 平均值
/// 院领导、行政中层 平均值
/// </summary>
/// </summary>
/// <param name="computes"></param>
/// <param name="computes"></param>
/// <returns></returns>
/// <returns></returns>
public
List
<
res_baiscnorm
>
ComputeOtherAvg
(
List
<
res_baiscnorm
>
baiscnormList
,
List
<
ComputeResult
>
computes
,
List
<
im_employee
>
empolyeeList
)
public
List
<
res_baiscnorm
>
ComputeOtherAvg
(
List
<
res_baiscnorm
>
baiscnormList
,
List
<
ComputeResult
>
computes
,
List
<
im_employee
>
empolyeeList
)
{
var
keyList
=
new
[]
{
{
var
keyList
=
new
[]
{
//行政绩效平均值项目
//行政绩效平均值项目
new
{
type
=
AccountUnitType
.
行政中层
,
reference
=
PerforType
.
行政中层
},
new
{
type
=
AccountUnitType
.
行政中层
,
reference
=
PerforType
.
行政中层
},
new
{
type
=
AccountUnitType
.
行政高层
,
reference
=
PerforType
.
行政高层
},
new
{
type
=
AccountUnitType
.
行政高层
,
reference
=
PerforType
.
行政高层
},
};
};
foreach
(
var
item
in
keyList
)
foreach
(
var
item
in
keyList
)
{
var
count
=
empolyeeList
.
Count
(
t
=>
t
.
AccountType
==
item
.
type
.
ToString
());
if
(
count
>
0
)
{
{
var
dataList
=
computes
.
Where
(
t
=>
t
.
AccountType
==
item
.
type
.
ToString
());
var
count
=
empolyeeList
.
Count
(
t
=>
t
.
AccountType
==
item
.
type
.
ToString
());
var
baiscnorm
=
new
res_baiscnorm
if
(
count
>
0
)
{
{
PositionName
=
EnumHelper
.
GetDescription
(
item
.
reference
),
var
dataList
=
computes
.
Where
(
t
=>
t
.
AccountType
==
item
.
type
.
ToString
());
TotelNumber
=
count
,
var
baiscnorm
=
new
res_baiscnorm
TotelValue
=
dataList
.
Sum
(
t
=>
t
.
GiveFee
),
{
AvgValue
=
Math
.
Round
((
dataList
.
Sum
(
t
=>
t
.
GiveFee
)
/
count
)
??
0
)
PositionName
=
EnumHelper
.
GetDescription
(
item
.
reference
),
};
TotelNumber
=
count
,
baiscnormList
.
Add
(
baiscnorm
);
TotelValue
=
dataList
.
Sum
(
t
=>
t
.
GiveFee
),
AvgValue
=
count
==
0
?
0
:
Math
.
Round
((
dataList
.
Sum
(
t
=>
t
.
GiveFee
)
/
count
)
??
0
)
};
baiscnormList
.
Add
(
baiscnorm
);
}
}
}
return
baiscnormList
;
}
}
return
baiscnormList
;
}
/// <summary>
/// <summary>
/// 获取绩效标准基础值
/// 获取绩效标准基础值
/// </summary>
/// </summary>
/// <param name="baiscnorms"></param>
/// <param name="baiscnorms"></param>
/// <param name="type"></param>
/// <param name="type"></param>
/// <returns></returns>
/// <returns></returns>
public
decimal
?
GetBaiscNorm
(
List
<
res_baiscnorm
>
baiscnorms
,
PerforType
type
)
public
decimal
?
GetBaiscNorm
(
List
<
res_baiscnorm
>
baiscnorms
,
PerforType
type
)
{
decimal
?
result
=
null
;
if
(
type
==
PerforType
.
临床主任护士长平均
)
{
var
lczrValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
临床主任
));
var
hszValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
护士长
));
var
total
=
((
lczrValue
?.
TotelNumber
??
0
)
+
(
hszValue
?.
TotelNumber
??
0
));
result
=
total
==
0
?
0
:
((
lczrValue
?.
TotelValue
??
0
)
+
(
hszValue
?.
TotelValue
??
0
))
/
total
;
}
else
if
(
type
==
PerforType
.
临床主任医技主任护士长平均
)
{
var
lczrValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
临床主任
));
var
yjzrValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
医技主任
));
var
hszValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
护士长
));
var
total
=
((
lczrValue
?.
TotelNumber
??
0
)
+
(
yjzrValue
?.
TotelNumber
??
0
)
+
(
hszValue
?.
TotelNumber
??
0
));
result
=
total
==
0
?
0
:
((
lczrValue
?.
TotelValue
??
0
)
+
(
yjzrValue
?.
TotelValue
??
0
)
+
(
hszValue
?.
TotelValue
??
0
))
/
total
;
}
else
{
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
type
))?.
AvgValue
;
decimal
?
result
=
null
;
}
if
(
type
==
PerforType
.
临床主任护士长平均
)
{
var
lczrValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
临床主任
));
var
hszValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
护士长
));
var
total
=
((
lczrValue
?.
TotelNumber
??
0
)
+
(
hszValue
?.
TotelNumber
??
0
));
result
=
total
==
0
?
0
:
((
lczrValue
?.
TotelValue
??
0
)
+
(
hszValue
?.
TotelValue
??
0
))
/
total
;
}
else
if
(
type
==
PerforType
.
临床主任医技主任护士长平均
)
{
var
lczrValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
临床主任
));
var
yjzrValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
医技主任
));
var
hszValue
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
护士长
));
var
total
=
((
lczrValue
?.
TotelNumber
??
0
)
+
(
yjzrValue
?.
TotelNumber
??
0
)
+
(
hszValue
?.
TotelNumber
??
0
));
result
=
total
==
0
?
0
:
((
lczrValue
?.
TotelValue
??
0
)
+
(
yjzrValue
?.
TotelValue
??
0
)
+
(
hszValue
?.
TotelValue
??
0
))
/
total
;
}
else
{
result
=
baiscnorms
.
FirstOrDefault
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
type
))?.
AvgValue
;
}
if
(
result
.
HasValue
)
if
(
result
.
HasValue
)
result
=
Math
.
Round
(
result
.
Value
,
4
);
result
=
Math
.
Round
(
result
.
Value
,
4
);
return
result
;
return
result
;
}
}
/// <summary>
/// <summary>
/// 获取临床医生护士平均绩效
/// 获取临床医生护士平均绩效
/// </summary>
/// </summary>
/// <param name="list"></param>
/// <param name="list"></param>
/// <returns></returns>
/// <returns></returns>
public
List
<
res_baiscnorm
>
DocterNurseBaiscnorm
(
List
<
res_baiscnorm
>
baiscnormList
,
List
<
im_accountbasic
>
accountbasicList
,
List
<
PerSheet
>
list
)
public
List
<
res_baiscnorm
>
DocterNurseBaiscnorm
(
List
<
res_baiscnorm
>
baiscnormList
,
List
<
im_accountbasic
>
accountbasicList
,
List
<
PerSheet
>
list
)
{
var
pairs
=
new
[]
{
{
var
pairs
=
new
[]
{
new
{
SheetType
=
SheetType
.
ComputeDoctorAccount
,
UnitType
=
UnitType
.
医生组
,
PerforType
=
PerforType
.
临床医生
},
new
{
SheetType
=
SheetType
.
ComputeDoctorAccount
,
UnitType
=
UnitType
.
医生组
,
PerforType
=
PerforType
.
临床医生
},
new
{
SheetType
=
SheetType
.
ComputeDoctorAccount
,
UnitType
=
UnitType
.
医技组
,
PerforType
=
PerforType
.
医技医生
},
new
{
SheetType
=
SheetType
.
ComputeDoctorAccount
,
UnitType
=
UnitType
.
医技组
,
PerforType
=
PerforType
.
医技医生
},
new
{
SheetType
=
SheetType
.
ComputeNurseAccount
,
UnitType
=
UnitType
.
护理组
,
PerforType
=
PerforType
.
护士
},
new
{
SheetType
=
SheetType
.
ComputeNurseAccount
,
UnitType
=
UnitType
.
护理组
,
PerforType
=
PerforType
.
护士
},
};
};
foreach
(
var
info
in
pairs
)
foreach
(
var
info
in
pairs
)
{
var
sheet
=
list
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
info
.
SheetType
);
var
perData
=
sheet
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
//剔除不同科室相同核算单元
var
groupData
=
perData
.
Where
(
t
=>
t
.
UnitType
==
info
.
UnitType
.
ToString
())
.
GroupBy
(
t
=>
t
.
AccountingUnit
)
.
Select
(
t
=>
new
{
AccountingUnit
=
t
.
Key
,
Number
=
t
.
Sum
(
p
=>
p
.
ManagerNumber
+
p
.
Number
),
PerforTotal
=
t
.
Sum
(
p
=>
p
.
PerforTotal
)
});
var
baiscnorm
=
new
res_baiscnorm
{
{
PositionName
=
EnumHelper
.
GetDescription
(
info
.
PerforType
),
var
sheet
=
list
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
info
.
SheetType
);
TotelNumber
=
groupData
.
Sum
(
t
=>
t
.
Number
),
var
perData
=
sheet
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
TotelValue
=
groupData
.
Sum
(
t
=>
t
.
PerforTotal
),
//剔除不同科室相同核算单元
AvgValue
=
Math
.
Round
(
groupData
.
Sum
(
t
=>
t
.
PerforTotal
)
/
groupData
.
Sum
(
t
=>
t
.
Number
)
??
0
)
var
groupData
=
perData
.
Where
(
t
=>
t
.
UnitType
==
info
.
UnitType
.
ToString
())
};
.
GroupBy
(
t
=>
t
.
AccountingUnit
)
baiscnormList
.
Add
(
baiscnorm
);
.
Select
(
t
=>
new
{
AccountingUnit
=
t
.
Key
,
Number
=
t
.
Sum
(
p
=>
p
.
ManagerNumber
+
p
.
Number
),
PerforTotal
=
t
.
Sum
(
p
=>
p
.
PerforTotal
)
});
var
baiscnorm
=
new
res_baiscnorm
{
PositionName
=
EnumHelper
.
GetDescription
(
info
.
PerforType
),
TotelNumber
=
groupData
.
Sum
(
t
=>
t
.
Number
),
TotelValue
=
groupData
.
Sum
(
t
=>
t
.
PerforTotal
),
AvgValue
=
groupData
.
Sum
(
t
=>
t
.
Number
)
==
0
?
0
:
Math
.
Round
(
groupData
.
Sum
(
t
=>
t
.
PerforTotal
)
/
groupData
.
Sum
(
t
=>
t
.
Number
)
??
0
)
};
baiscnormList
.
Add
(
baiscnorm
);
}
return
baiscnormList
;
}
}
return
baiscnormList
;
}
}
}
}
}
performance/Performance.Services/AllotCompute/ProcessComputService.cs
View file @
16e726ae
...
@@ -273,9 +273,9 @@ public void Save(List<PerSheet> perSheets, int allotId)
...
@@ -273,9 +273,9 @@ public void Save(List<PerSheet> perSheets, int allotId)
foreach
(
var
dept
in
atDataList
)
foreach
(
var
dept
in
atDataList
)
{
{
//科室奖罚汇总结果
//科室奖罚汇总结果
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
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
);
...
@@ -314,10 +314,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
...
@@ -314,10 +314,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
/// <param name="allot"></param>
/// <param name="allot"></param>
/// <param name="excel"></param>
/// <param name="excel"></param>
/// <param name="extras"></param>
/// <param name="extras"></param>
/// <param name="drugExtras"></param>
public
void
ComputeOffice
(
per_allot
allot
,
PerExcel
excel
,
IEnumerable
<
AccountUnitTotal
>
extras
)
/// <param name="materialsExtras"></param>
public
void
ComputeOffice
(
per_allot
allot
,
PerExcel
excel
,
IEnumerable
<
AccountUnitTotal
>
extras
,
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
);
...
@@ -341,7 +338,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
...
@@ -341,7 +338,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
if
(!
empolyees
.
Any
())
continue
;
if
(!
empolyees
.
Any
())
continue
;
//科室奖罚汇总结果
//科室奖罚汇总结果
var
extra
=
extras
.
FirstOrDefault
(
w
=>
w
.
UnitType
==
account
.
AccountType
.
ToString
()
&&
w
.
AccountingUnit
==
account
.
AccountingUnit
)?.
TotelValue
;
var
extra
=
extras
?
.
FirstOrDefault
(
w
=>
w
.
UnitType
==
account
.
AccountType
.
ToString
()
&&
w
.
AccountingUnit
==
account
.
AccountingUnit
)?.
TotelValue
;
//var drugExtra = drugExtras.FirstOrDefault(w => w.UnitType == account.AccountType.ToString() && w.AccountingUnit == resAccount.AccountingUnit)?.TotelValue;
//var drugExtra = drugExtras.FirstOrDefault(w => w.UnitType == account.AccountType.ToString() && w.AccountingUnit == resAccount.AccountingUnit)?.TotelValue;
//var materialsExtra = materialsExtras.FirstOrDefault(w => w.UnitType == account.AccountType.ToString() && w.AccountingUnit == resAccount.AccountingUnit)?.TotelValue;
//var materialsExtra = materialsExtras.FirstOrDefault(w => w.UnitType == account.AccountType.ToString() && w.AccountingUnit == resAccount.AccountingUnit)?.TotelValue;
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
16e726ae
...
@@ -151,9 +151,9 @@ public class ResultComputeService : IAutoInjection
...
@@ -151,9 +151,9 @@ public class ResultComputeService : IAutoInjection
foreach
(
var
item
in
accountDataList
)
foreach
(
var
item
in
accountDataList
)
{
{
//科室奖罚汇总结果
//科室奖罚汇总结果
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
res
=
new
res_specialunit
var
res
=
new
res_specialunit
{
{
...
@@ -187,7 +187,7 @@ public class ResultComputeService : IAutoInjection
...
@@ -187,7 +187,7 @@ public class ResultComputeService : IAutoInjection
foreach
(
var
empolyee
in
empolyees
)
foreach
(
var
empolyee
in
empolyees
)
{
{
var
extra
=
employeeExtra
.
Where
(
w
=>
!
string
.
IsNullOrEmpty
(
w
.
AccountingUnit
)
&&
!
string
.
IsNullOrEmpty
(
w
.
UnitType
)
var
extra
=
employeeExtra
?
.
Where
(
w
=>
!
string
.
IsNullOrEmpty
(
w
.
AccountingUnit
)
&&
!
string
.
IsNullOrEmpty
(
w
.
UnitType
)
&&
(!
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
;
...
...
performance/Performance.Services/AllotService.cs
View file @
16e726ae
...
@@ -376,7 +376,7 @@ public void Generate(per_allot allot, string mail)
...
@@ -376,7 +376,7 @@ public void Generate(per_allot allot, string mail)
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
excel
,
sheetLast
,
employeeExtra
);
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
excel
,
sheetLast
,
employeeExtra
);
// 计算行政科室绩效
// 计算行政科室绩效
processComputService
.
ComputeOffice
(
allot
,
excel
,
accountExtras
,
drugExtras
,
materialsExtras
);
processComputService
.
ComputeOffice
(
allot
,
excel
,
accountExtras
);
// 计算特殊科室
// 计算特殊科室
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
...
...
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
16e726ae
...
@@ -391,7 +391,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<PerS
...
@@ -391,7 +391,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<PerS
Attendance
=
empolyee
.
Attendance
Attendance
=
empolyee
.
Attendance
};
};
var
extra
=
employeeExtra
.
Where
(
w
=>
!
string
.
IsNullOrEmpty
(
w
.
AccountingUnit
)
&&
!
string
.
IsNullOrEmpty
(
w
.
UnitType
)
var
extra
=
employeeExtra
?
.
Where
(
w
=>
!
string
.
IsNullOrEmpty
(
w
.
AccountingUnit
)
&&
!
string
.
IsNullOrEmpty
(
w
.
UnitType
)
&&
(!
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
;
...
@@ -446,7 +446,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
...
@@ -446,7 +446,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
foreach
(
var
item
in
needCompute
)
foreach
(
var
item
in
needCompute
)
{
{
// 奖罚汇总
// 奖罚汇总
var
extra
=
employeeExtra
.
Where
(
w
=>
!
string
.
IsNullOrEmpty
(
w
.
AccountingUnit
)
&&
!
string
.
IsNullOrEmpty
(
w
.
UnitType
)
&&
(!
string
.
IsNullOrEmpty
(
w
.
EmployeeName
)
||
!
string
.
IsNullOrEmpty
(
w
.
JobNumber
)))
var
extra
=
employeeExtra
?
.
Where
(
w
=>
!
string
.
IsNullOrEmpty
(
w
.
AccountingUnit
)
&&
!
string
.
IsNullOrEmpty
(
w
.
UnitType
)
&&
(!
string
.
IsNullOrEmpty
(
w
.
EmployeeName
)
||
!
string
.
IsNullOrEmpty
(
w
.
JobNumber
)))
.
FirstOrDefault
(
w
=>
w
.
AccountingUnit
==
item
.
AccountingUnit
&&
w
.
UnitType
==
item
.
UnitType
&&
w
.
JobNumber
==
item
.
JobNumber
&&
w
.
EmployeeName
==
item
.
DoctorName
)
.
FirstOrDefault
(
w
=>
w
.
AccountingUnit
==
item
.
AccountingUnit
&&
w
.
UnitType
==
item
.
UnitType
&&
w
.
JobNumber
==
item
.
JobNumber
&&
w
.
EmployeeName
==
item
.
DoctorName
)
?.
TotelValue
;
?.
TotelValue
;
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadClinicEmployee.cs
View file @
16e726ae
...
@@ -52,33 +52,33 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
...
@@ -52,33 +52,33 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
var
row
=
sheet
.
GetRow
(
r
);
var
row
=
sheet
.
GetRow
(
r
);
if
(
row
==
null
)
continue
;
if
(
row
==
null
)
continue
;
PerDataClinicEmployee
clinicEmployee
=
new
PerDataClinicEmployee
PerDataClinicEmployee
clinicEmployee
=
new
PerDataClinicEmployee
();
{
RowNumber
=
r
,
clinicEmployee
.
RowNumber
=
r
;
UnitType
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元分类"
).
PointCell
)?.
StringCellValue
,
clinicEmployee
.
UnitType
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元分类"
).
PointCell
));
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
)),
clinicEmployee
.
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
));
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
)),
clinicEmployee
.
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
));
PersonnelNumber
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"人员工号"
).
PointCell
)),
clinicEmployee
.
PersonnelNumber
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"人员工号"
).
PointCell
));
DoctorName
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"医生姓名"
).
PointCell
)?.
StringCellValue
,
clinicEmployee
.
DoctorName
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"医生姓名"
).
PointCell
));
JobTitle
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"职务分类"
).
PointCell
)?.
StringCellValue
,
clinicEmployee
.
JobTitle
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"职务分类"
).
PointCell
));
Basics
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"基础绩效系数"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
Basics
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"基础绩效系数"
).
PointCell
)?.
NumericCellValue
);
//PostCoefficient = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "岗位系数").PointCell)?.NumericCellValue),
//clinicEmployee.PostCoefficient = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "岗位系数").PointCell)?.NumericCellValue);
PermanentStaff
=
ConvertHelper
.
To
<
decimal
>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"效率绩效人数"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
PermanentStaff
=
ConvertHelper
.
To
<
decimal
>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"效率绩效人数"
).
PointCell
)?.
NumericCellValue
);
Efficiency
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"效率绩效系数"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
Efficiency
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"效率绩效系数"
).
PointCell
)?.
NumericCellValue
);
Scale
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"规模绩效系数"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
Scale
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"规模绩效系数"
).
PointCell
)?.
NumericCellValue
);
Management
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"管理绩效发放系数"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
Management
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"管理绩效发放系数"
).
PointCell
)?.
NumericCellValue
);
ScoreAverageRate
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"考核得分率"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
ScoreAverageRate
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"考核得分率"
).
PointCell
)?.
NumericCellValue
);
Attendance
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"出勤率"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
Attendance
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"出勤率"
).
PointCell
)?.
NumericCellValue
);
//OthePerfor = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "其他绩效").PointCell)?.NumericCellValue),
//clinicEmployee.OthePerfor = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "其他绩效").PointCell)?.NumericCellValue);
//Punishment = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "医院奖罚").PointCell)?.NumericCellValue),
//clinicEmployee.Punishment = ConvertHelper.To<decimal?>(row.GetCell(perHeader.FirstOrDefault(p => p.CellValue == "医院奖罚").PointCell)?.NumericCellValue);
OtheManagementPerfor
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"其他管理绩效"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
OtheManagementPerfor
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"其他管理绩效"
).
PointCell
)?.
NumericCellValue
);
Adjust
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"调节系数"
).
PointCell
)?.
NumericCellValue
),
clinicEmployee
.
Adjust
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"调节系数"
).
PointCell
)?.
NumericCellValue
);
};
if
(!
string
.
IsNullOrEmpty
(
clinicEmployee
.
UnitType
)
&&
!
string
.
IsNullOrEmpty
(
clinicEmployee
.
DoctorName
))
if
(!
string
.
IsNullOrEmpty
(
clinicEmployee
.
UnitType
)
&&
!
string
.
IsNullOrEmpty
(
clinicEmployee
.
DoctorName
))
dataList
.
Add
(
clinicEmployee
);
dataList
.
Add
(
clinicEmployee
);
}
}
return
dataList
;
return
dataList
;
}
}
}
}
}
}
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