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
7472ddda
Commit
7472ddda
authored
Aug 27, 2019
by
ruyun.zhang@suvalue.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
保底行政工勤人均绩效
parent
a6739108
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
410 additions
and
78 deletions
+410
-78
performance/Performance.Api/wwwroot/Performance.Api.xml
+35
-0
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+5
-0
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+250
-1
performance/Performance.DtoModels/PerExcel/ExcelEnum.cs
+2
-1
performance/Performance.Services/AllotCompute/ProcessComputService.cs
+53
-60
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+3
-4
performance/Performance.Services/AllotService.cs
+52
-5
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+7
-4
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeEconomic.cs
+3
-3
No files found.
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
7472ddda
...
@@ -179,6 +179,13 @@
...
@@ -179,6 +179,13 @@
<param
name=
"request"
></param>
<param
name=
"request"
></param>
<returns></returns>
<returns></returns>
</member>
</member>
<member
name=
"M:Performance.Api.Controllers.AllotController.AllotLog(Performance.DtoModels.AllotRequest)"
>
<summary>
绩效历史日志
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ComputeController.GetCompute(Performance.DtoModels.ComputerRequest)"
>
<member
name=
"M:Performance.Api.Controllers.ComputeController.GetCompute(Performance.DtoModels.ComputerRequest)"
>
<summary>
<summary>
获取绩效发放列表
获取绩效发放列表
...
@@ -403,6 +410,34 @@
...
@@ -403,6 +410,34 @@
<param
name=
"request"
></param>
<param
name=
"request"
></param>
<returns></returns>
<returns></returns>
</member>
</member>
<member
name=
"M:Performance.Api.Controllers.ConfigController.GetWorkItems(Performance.DtoModels.WorkItemRequest)"
>
<summary>
获取工作量绩效配置列表
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ConfigController.WorkItemInsert(Performance.DtoModels.WorkItemRequest)"
>
<summary>
新增工作量绩效配置
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ConfigController.WorkItemUpdate(Performance.DtoModels.WorkItemRequest)"
>
<summary>
修改工作量绩效配置
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ConfigController.WorkItemDelete(Performance.DtoModels.WorkItemRequest)"
>
<summary>
删除工作量绩效配置
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetEmployeeList(Performance.DtoModels.EmployeeRequest)"
>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetEmployeeList(Performance.DtoModels.EmployeeRequest)"
>
<summary>
<summary>
获取人员列表
获取人员列表
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
7472ddda
...
@@ -1476,6 +1476,11 @@
...
@@ -1476,6 +1476,11 @@
用户科室
用户科室
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.DtoModels.WorkItemRequest.Item"
>
<summary>
工作量绩效项
</summary>
</member>
<member
name=
"P:Performance.DtoModels.WorkyearRequest.MaxRange"
>
<member
name=
"P:Performance.DtoModels.WorkyearRequest.MaxRange"
>
<summary>
<summary>
最大工龄范围(小于)
最大工龄范围(小于)
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
7472ddda
...
@@ -52,6 +52,9 @@
...
@@ -52,6 +52,9 @@
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.cof_singlefactor"
>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.cof_singlefactor"
>
<summary>
特殊绩效项指标
</summary>
<summary>
特殊绩效项指标
</summary>
</member>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.cof_workitem"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.cof_workyear"
>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.cof_workyear"
>
<summary>
工龄对应绩效系数配置
</summary>
<summary>
工龄对应绩效系数配置
</summary>
</member>
</member>
...
@@ -106,6 +109,12 @@
...
@@ -106,6 +109,12 @@
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.res_account"
>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.res_account"
>
<summary>
科室核算结果
</summary>
<summary>
科室核算结果
</summary>
</member>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.res_accountdoctor"
>
<summary>
医生科室核算结果
</summary>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.res_accountnurse"
>
<summary>
护理科室核算结果
</summary>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.res_baiscnorm"
>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.res_baiscnorm"
>
<summary>
核算基础标准
</summary>
<summary>
核算基础标准
</summary>
</member>
</member>
...
@@ -778,6 +787,26 @@
...
@@ -778,6 +787,26 @@
系数值
系数值
</summary>
</summary>
</member>
</member>
<member
name=
"T:Performance.EntityModels.cof_workitem"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_workitem.ID"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_workitem.AllotID"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_workitem.Item"
>
<summary>
工作量中需做运算的项
</summary>
</member>
<member
name=
"T:Performance.EntityModels.cof_workyear"
>
<member
name=
"T:Performance.EntityModels.cof_workyear"
>
<summary>
<summary>
工龄对应绩效系数配置
工龄对应绩效系数配置
...
@@ -1418,7 +1447,7 @@
...
@@ -1418,7 +1447,7 @@
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.EntityModels.log_dbug.Tit
i
le"
>
<member
name=
"P:Performance.EntityModels.log_dbug.Title"
>
<summary>
<summary>
</summary>
</summary>
...
@@ -1428,6 +1457,11 @@
...
@@ -1428,6 +1457,11 @@
</summary>
</summary>
</member>
</member>
<member
name=
"P:Performance.EntityModels.log_dbug.Level"
>
<summary>
1、信息(info)2、警告(warn)3、错误(error)4、异常(exception)5、成功(success)
</summary>
</member>
<member
name=
"T:Performance.EntityModels.mod_extract"
>
<member
name=
"T:Performance.EntityModels.mod_extract"
>
<summary>
<summary>
医院数据提取脚本
医院数据提取脚本
...
@@ -1928,6 +1962,221 @@
...
@@ -1928,6 +1962,221 @@
变更日志
变更日志
</summary>
</summary>
</member>
</member>
<member
name=
"T:Performance.EntityModels.res_accountdoctor"
>
<summary>
医生科室核算结果
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.ID"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.AllotID"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.SheetID"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.AccountingUnit"
>
<summary>
核算单元
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.Department"
>
<summary>
科室
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.ManagerNumber"
>
<summary>
科主任/护士长数量
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.Number"
>
<summary>
核算单元医生数量
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.BasicFactor"
>
<summary>
医生基础系数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.SlopeFactor"
>
<summary>
倾斜系数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.OtherPerfor1"
>
<summary>
其他绩效1
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.OtherPerfor2"
>
<summary>
其他绩效2
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.Extra"
>
<summary>
医院奖罚
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.ScoringAverage"
>
<summary>
考核对分率
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.AdjustFactor"
>
<summary>
调节系数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.Income"
>
<summary>
科室业绩
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.PerforFee"
>
<summary>
业绩绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.WorkloadFee"
>
<summary>
工作量绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.PerforTotal"
>
<summary>
绩效合计
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.Avg"
>
<summary>
人均绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.RealGiveFee"
>
<summary>
实发绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountdoctor.ChangeLog"
>
<summary>
变更日志
</summary>
</member>
<member
name=
"T:Performance.EntityModels.res_accountnurse"
>
<summary>
护理科室核算结果
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.ID"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.AllotID"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.SheetID"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.AccountingUnit"
>
<summary>
核算单元
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.Department"
>
<summary>
科室
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.ManagerNumber"
>
<summary>
科主任/护士长数量
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.Number"
>
<summary>
护士人数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.BasicFactor"
>
<summary>
护理基础系数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.SlopeFactor"
>
<summary>
倾斜系数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.OtherPerfor1"
>
<summary>
其他绩效1
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.OtherPerfor2"
>
<summary>
其他绩效2
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.Extra"
>
<summary>
医院奖罚
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.ScoringAverage"
>
<summary>
考核对分率
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.AdjustFactor"
>
<summary>
调节系数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.Income"
>
<summary>
科室业绩
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.PerforFee"
>
<summary>
业绩绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.WorkloadFee"
>
<summary>
工作量绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.PerforTotal"
>
<summary>
绩效合计
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.Avg"
>
<summary>
人均绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.res_accountnurse.RealGiveFee"
>
<summary>
实发绩效
</summary>
</member>
<member
name=
"T:Performance.EntityModels.res_baiscnorm"
>
<member
name=
"T:Performance.EntityModels.res_baiscnorm"
>
<summary>
<summary>
核算基础标准
核算基础标准
...
...
performance/Performance.DtoModels/PerExcel/ExcelEnum.cs
View file @
7472ddda
...
@@ -138,7 +138,8 @@ public enum MinimumType
...
@@ -138,7 +138,8 @@ public enum MinimumType
保底医技医生
=
2
,
保底医技医生
=
2
,
[
Description
(
"保底绩效护士人均绩效"
)]
[
Description
(
"保底绩效护士人均绩效"
)]
保底护士
=
3
,
保底护士
=
3
,
[
Description
(
"保底绩效行政工勤人均绩效"
)]
保底工勤
=
4
,
}
}
///// <summary>
///// <summary>
...
...
performance/Performance.Services/AllotCompute/ProcessComputService.cs
View file @
7472ddda
...
@@ -52,50 +52,32 @@ public class ProcessComputService : IAutoInjection
...
@@ -52,50 +52,32 @@ public class ProcessComputService : IAutoInjection
this
.
logManageService
=
logManageService
;
this
.
logManageService
=
logManageService
;
}
}
/// <summary>
///// <summary>
/// 合并计算并保存
///// 合并计算并保存
/// </summary>
///// </summary>
/// <param name="excel"></param>
///// <param name="excel"></param>
/// <param name="allot"></param>
///// <param name="allot"></param>
/// <returns></returns>
///// <returns></returns>
public
List
<
PerSheet
>
MergeAndSave
(
PerExcel
excel
,
per_allot
allot
)
//public List<PerSheet> MergeAndSave(PerExcel excel, List<res_baiscnorm> baiscnormList, per_allot allot)
{
//{
List
<
PerSheet
>
list
=
MergeCompute
(
excel
,
allot
.
ID
);
// List<PerSheet> list = MergeCompute(excel, allot.ID);
Save
(
list
,
allot
.
ID
);
// var baiscnormList1 = ComputeMinimum(excel, list, allot.ID);
return
list
;
}
// var sheet = Compute(excel, list, baiscnormList);
// list.AddRange(sheet);
// Save(list, allot.ID);
// return list;
//}
#
region
save
#
region
save
/// <summary>
/// <summary>
/// 保存计算后的医生组绩效
/// 保存计算后的绩效
/// </summary>
/// <param name="sheet"></param>
/// <param name="allotId"></param>
/// <returns></returns>
private
void
SaveComputeDoctorAccount
(
PerSheet
sheet
,
int
allotId
)
{
var
imsheet
=
new
per_sheet
{
AllotID
=
allotId
,
SheetName
=
sheet
.
SheetName
,
Source
=
2
,
SheetType
=
(
int
)
sheet
.
SheetType
};
perforPerSheetRepository
.
Add
(
imsheet
);
var
dataList
=
sheet
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
List
<
res_account
>
addList
=
new
List
<
res_account
>();
foreach
(
var
data
in
dataList
)
{
var
imdata
=
Mapper
.
Map
<
res_account
>(
data
);
imdata
.
SheetID
=
imsheet
.
ID
;
imdata
.
AllotID
=
allotId
;
addList
.
Add
(
imdata
);
}
perforResaccountRepository
.
AddRange
(
addList
.
ToArray
());
}
/// <summary>
/// 保存计算后的护理组绩效
/// </summary>
/// </summary>
/// <param name="sheet"></param>
/// <param name="sheet"></param>
/// <param name="allotId"></param>
/// <param name="allotId"></param>
/// <returns></returns>
/// <returns></returns>
private
void
SaveCompute
Nurse
Account
(
PerSheet
sheet
,
int
allotId
)
private
void
SaveComputeAccount
(
PerSheet
sheet
,
int
allotId
)
{
{
var
imsheet
=
new
per_sheet
{
AllotID
=
allotId
,
SheetName
=
sheet
.
SheetName
,
Source
=
2
,
SheetType
=
(
int
)
sheet
.
SheetType
};
var
imsheet
=
new
per_sheet
{
AllotID
=
allotId
,
SheetName
=
sheet
.
SheetName
,
Source
=
2
,
SheetType
=
(
int
)
sheet
.
SheetType
};
perforPerSheetRepository
.
Add
(
imsheet
);
perforPerSheetRepository
.
Add
(
imsheet
);
...
@@ -162,18 +144,14 @@ private void SaveCommon(PerSheet sheet, int allotId)
...
@@ -162,18 +144,14 @@ private void SaveCommon(PerSheet sheet, int allotId)
/// </summary>
/// </summary>
/// <param name="perSheets"></param>
/// <param name="perSheets"></param>
/// <param name="allotId"></param>
/// <param name="allotId"></param>
p
rivate
void
Save
(
List
<
PerSheet
>
perSheets
,
int
allotId
)
p
ublic
void
Save
(
List
<
PerSheet
>
perSheets
,
int
allotId
)
{
{
foreach
(
var
sheet
in
perSheets
)
foreach
(
var
sheet
in
perSheets
)
{
{
logManageService
.
WriteMsg
(
"正在生成绩效"
,
$"保存核算数据 -
{
sheet
.
SheetName
}
"
,
1
,
allotId
,
"ReceiveMessage"
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
$"保存核算数据 -
{
sheet
.
SheetName
}
"
,
1
,
allotId
,
"ReceiveMessage"
);
if
(
sheet
.
SheetType
==
SheetType
.
ComputeDoctorAccount
)
if
(
sheet
.
SheetType
==
SheetType
.
ComputeDoctorAccount
||
sheet
.
SheetType
==
SheetType
.
ComputeNurseAccount
)
{
{
SaveComputeDoctorAccount
(
sheet
,
allotId
);
SaveComputeAccount
(
sheet
,
allotId
);
}
else
if
(
sheet
.
SheetType
==
SheetType
.
ComputeNurseAccount
)
{
SaveComputeNurseAccount
(
sheet
,
allotId
);
}
}
else
else
{
{
...
@@ -187,7 +165,7 @@ private void Save(List<PerSheet> perSheets, int allotId)
...
@@ -187,7 +165,7 @@ private void Save(List<PerSheet> perSheets, int allotId)
/// <summary>
/// <summary>
/// 合并计算
/// 合并计算
/// </summary>
/// </summary>
p
rivate
List
<
PerSheet
>
MergeCompute
(
PerExcel
excel
,
int
allotid
)
p
ublic
(
List
<
PerSheet
>
Sheets
,
List
<
PerSheet
>
MergeSheets
)
MergeCompute
(
PerExcel
excel
,
int
allotid
)
{
{
List
<
PerSheet
>
perSheet
=
new
List
<
PerSheet
>();
List
<
PerSheet
>
perSheet
=
new
List
<
PerSheet
>();
...
@@ -236,17 +214,20 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
...
@@ -236,17 +214,20 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
twiceWorkloadResult2
.
Sheet
.
SheetType
=
SheetType
.
ComputeNurseWorkload
;
twiceWorkloadResult2
.
Sheet
.
SheetType
=
SheetType
.
ComputeNurseWorkload
;
perSheet
.
Add
(
twiceWorkloadResult2
.
Sheet
);
perSheet
.
Add
(
twiceWorkloadResult2
.
Sheet
);
var
deptAccounting
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
);
List
<
PerSheet
>
mergeSheets
=
new
List
<
PerSheet
>();
var
dataList
=
deptAccounting
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算保底绩效参考标准"
,
1
,
allotid
,
"ReceiveMessage"
);
var
economicSheet
=
new
PerSheet
{
SheetType
=
SheetType
.
ComputeEconomic
,
PerData
=
new
List
<
IPerData
>()
};
var
baiscnormList
=
ComputeMinimum
(
dataList
,
twiceEconomicResult
.
PerData
,
twiceWorkloadResult1
.
PerData
,
twiceWorkloadResult2
.
PerData
,
allotid
);
economicSheet
.
PerData
.
AddRange
(
twiceEconomicResult
.
PerData
);
var
doctorSheet
=
new
PerSheet
{
SheetType
=
SheetType
.
ComputeDoctorWorkload
,
PerData
=
new
List
<
IPerData
>()
};
doctorSheet
.
PerData
.
AddRange
(
twiceWorkloadResult1
.
PerData
);
var
nurseSheet
=
new
PerSheet
{
SheetType
=
SheetType
.
ComputeNurseWorkload
,
PerData
=
new
List
<
IPerData
>()
};
nurseSheet
.
PerData
.
AddRange
(
twiceWorkloadResult2
.
PerData
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室绩效"
,
1
,
allotid
,
"ReceiveMessage"
);
mergeSheets
.
Add
(
economicSheet
);
var
sheet
=
Compute
(
dataList
,
twiceEconomicResult
.
PerData
,
twiceWorkloadResult1
.
PerData
,
twiceWorkloadResult2
.
PerData
,
baiscnormLis
t
);
mergeSheets
.
Add
(
doctorShee
t
);
perSheet
.
AddRange
(
s
heet
);
mergeSheets
.
Add
(
nurseS
heet
);
return
perSheet
;
return
(
perSheet
,
mergeSheets
)
;
}
}
/// <summary>
/// <summary>
/// 计算科室绩效
/// 计算科室绩效
...
@@ -255,9 +236,15 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
...
@@ -255,9 +236,15 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
/// <param name="economicData"></param>
/// <param name="economicData"></param>
/// <param name="workloadData"></param>
/// <param name="workloadData"></param>
/// <returns></returns>
/// <returns></returns>
private
List
<
PerSheet
>
Compute
(
IEnumerable
<
PerDataAccountBaisc
>
dataList
,
List
<
PerData
>
economicData
,
public
List
<
PerSheet
>
Compute
(
PerExcel
excel
,
List
<
PerSheet
>
perSheet
,
List
<
res_baiscnorm
>
baiscnormList
)
List
<
PerData
>
doctorWorkloadData
,
List
<
PerData
>
nurseWorkloadData
,
List
<
res_baiscnorm
>
baiscnormList
)
{
{
var
deptAccounting
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
);
var
accountList
=
deptAccounting
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
var
economicData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeEconomic
)?.
PerData
.
Select
(
t
=>
(
PerData
)
t
);
var
doctorWorkloadData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeDoctorWorkload
)?.
PerData
.
Select
(
t
=>
(
PerData
)
t
);
var
nurseWorkloadData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeNurseWorkload
)?.
PerData
.
Select
(
t
=>
(
PerData
)
t
);
var
pairs
=
new
[]
var
pairs
=
new
[]
{
{
new
{
Name
=
"医生组临床科室单元核算表"
,
Data
=
doctorWorkloadData
,
SheetType
=
SheetType
.
ComputeDoctorAccount
,
UnitTypes
=
new
List
<
UnitType
>
{
UnitType
.
医生组
,
UnitType
.
医技组
,
UnitType
.
专家组
}
},
new
{
Name
=
"医生组临床科室单元核算表"
,
Data
=
doctorWorkloadData
,
SheetType
=
SheetType
.
ComputeDoctorAccount
,
UnitTypes
=
new
List
<
UnitType
>
{
UnitType
.
医生组
,
UnitType
.
医技组
,
UnitType
.
专家组
}
},
...
@@ -270,10 +257,10 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
...
@@ -270,10 +257,10 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
PerSheet
sheet
=
new
PerSheet
(
info
.
Name
,
info
.
Name
,
info
.
SheetType
,
new
List
<
PerHeader
>(),
new
List
<
IPerData
>());
PerSheet
sheet
=
new
PerSheet
(
info
.
Name
,
info
.
Name
,
info
.
SheetType
,
new
List
<
PerHeader
>(),
new
List
<
IPerData
>());
foreach
(
var
unitType
in
info
.
UnitTypes
)
foreach
(
var
unitType
in
info
.
UnitTypes
)
{
{
var
atDataList
=
data
List
.
Where
(
t
=>
t
.
UnitType
==
unitType
.
ToString
());
var
atDataList
=
account
List
.
Where
(
t
=>
t
.
UnitType
==
unitType
.
ToString
());
if
(
atDataList
==
null
||
!
atDataList
.
Any
())
if
(
atDataList
==
null
||
!
atDataList
.
Any
())
continue
;
continue
;
foreach
(
var
dept
in
data
List
.
Where
(
t
=>
t
.
UnitType
==
unitType
.
ToString
()))
foreach
(
var
dept
in
account
List
.
Where
(
t
=>
t
.
UnitType
==
unitType
.
ToString
()))
{
{
if
(
string
.
IsNullOrEmpty
(
dept
.
AccountingUnit
))
if
(
string
.
IsNullOrEmpty
(
dept
.
AccountingUnit
))
continue
;
continue
;
...
@@ -339,13 +326,20 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
...
@@ -339,13 +326,20 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
/// </summary>
/// </summary>
/// <param name="baiscnormList"></param>
/// <param name="baiscnormList"></param>
/// <param name="allotId"></param>
/// <param name="allotId"></param>
public
List
<
res_baiscnorm
>
ComputeMinimum
(
IEnumerable
<
PerDataAccountBaisc
>
accountList
,
List
<
PerData
>
economicData
,
List
<
PerData
>
doctorWorkloadData
,
List
<
PerData
>
nurseWorkloadData
,
int
allotId
)
public
List
<
res_baiscnorm
>
ComputeMinimum
(
PerExcel
excel
,
List
<
PerSheet
>
perSheet
,
int
allotId
)
{
{
var
deptAccounting
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
);
var
accountList
=
deptAccounting
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
var
economicData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeEconomic
)?.
PerData
.
Select
(
t
=>
(
PerData
)
t
);
var
doctorWorkloadData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeDoctorWorkload
)?.
PerData
.
Select
(
t
=>
(
PerData
)
t
);
var
nurseWorkloadData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeNurseWorkload
)?.
PerData
.
Select
(
t
=>
(
PerData
)
t
);
var
basicRuleList
=
new
[]
var
basicRuleList
=
new
[]
{
{
new
{
Data
=
doctorWorkloadData
,
MinimumType
=
MinimumType
.
保底临床医生
,
UnitType
=
UnitType
.
医生组
},
new
{
Data
=
doctorWorkloadData
,
MinimumType
=
MinimumType
.
保底临床医生
,
UnitType
=
UnitType
.
医生组
},
new
{
Data
=
doctorWorkloadData
,
MinimumType
=
MinimumType
.
保底医技医生
,
UnitType
=
UnitType
.
医技组
},
new
{
Data
=
doctorWorkloadData
,
MinimumType
=
MinimumType
.
保底医技医生
,
UnitType
=
UnitType
.
医技组
},
new
{
Data
=
nurseWorkloadData
,
MinimumType
=
MinimumType
.
保底护士
,
UnitType
=
UnitType
.
护理组
},
new
{
Data
=
nurseWorkloadData
,
MinimumType
=
MinimumType
.
保底护士
,
UnitType
=
UnitType
.
护理组
},
};
};
List
<
res_baiscnorm
>
baiscnormList
=
new
List
<
res_baiscnorm
>();
List
<
res_baiscnorm
>
baiscnormList
=
new
List
<
res_baiscnorm
>();
...
@@ -376,7 +370,6 @@ public List<res_baiscnorm> ComputeMinimum(IEnumerable<PerDataAccountBaisc> accou
...
@@ -376,7 +370,6 @@ public List<res_baiscnorm> ComputeMinimum(IEnumerable<PerDataAccountBaisc> accou
};
};
baiscnormList
.
Add
(
baiscnorm
);
baiscnormList
.
Add
(
baiscnorm
);
}
}
perforResbaiscnormRepository
.
AddRange
(
baiscnormList
.
ToArray
());
return
baiscnormList
;
return
baiscnormList
;
}
}
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
7472ddda
...
@@ -47,7 +47,7 @@ public class ResultComputeService : IAutoInjection
...
@@ -47,7 +47,7 @@ public class ResultComputeService : IAutoInjection
/// 计算最终数据
/// 计算最终数据
/// </summary>
/// </summary>
/// <param name="excel"></param>
/// <param name="excel"></param>
public
List
<
res_baiscnorm
>
Compute
(
per_allot
allot
,
PerExcel
excel
,
List
<
PerSheet
>
perSheets
)
public
List
<
res_baiscnorm
>
Compute
(
per_allot
allot
,
PerExcel
excel
,
List
<
PerSheet
>
accountSheet
)
{
{
//取出人员信息
//取出人员信息
var
empolyeeList
=
perforImEmployeeRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
var
empolyeeList
=
perforImEmployeeRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
...
@@ -56,11 +56,11 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
...
@@ -56,11 +56,11 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
List
<
ComputeEmployee
>
computeEmployees
=
Mapper
.
Map
<
List
<
ComputeEmployee
>>(
empolyeeList
);
List
<
ComputeEmployee
>
computeEmployees
=
Mapper
.
Map
<
List
<
ComputeEmployee
>>(
empolyeeList
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"临床科室主任、临床科室副主任、临床科室护士长 最终绩效数据计算"
,
1
,
allot
.
ID
,
"ReceiveMessage"
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"临床科室主任、临床科室副主任、临床科室护士长 最终绩效数据计算"
,
1
,
allot
.
ID
,
"ReceiveMessage"
);
var
computResult
=
computeDirector
.
Compute
(
computeEmployees
,
accountbasicList
,
allot
);
var
computResult
=
computeDirector
.
Compute
(
computeEmployees
,
accountbasicList
,
a
ccountSheet
,
a
llot
);
//计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值)
//计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值)
List
<
res_baiscnorm
>
baiscnormList
=
new
List
<
res_baiscnorm
>();
List
<
res_baiscnorm
>
baiscnormList
=
new
List
<
res_baiscnorm
>();
baiscNormService
.
ComputeAvg
(
baiscnormList
,
accountbasicList
,
computResult
);
baiscNormService
.
ComputeAvg
(
baiscnormList
,
accountbasicList
,
computResult
);
baiscNormService
.
DocterNurseBaiscnorm
(
baiscnormList
,
accountbasicList
,
perSheets
);
baiscNormService
.
DocterNurseBaiscnorm
(
baiscnormList
,
accountbasicList
,
accountSheet
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"院领导、业务中层、工勤人员 最终绩效数据计算"
,
1
,
allot
.
ID
,
"ReceiveMessage"
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"院领导、业务中层、工勤人员 最终绩效数据计算"
,
1
,
allot
.
ID
,
"ReceiveMessage"
);
var
computResult2
=
computeDirector
.
Compute
(
computeEmployees
,
allot
,
baiscnormList
);
var
computResult2
=
computeDirector
.
Compute
(
computeEmployees
,
allot
,
baiscnormList
);
...
@@ -74,7 +74,6 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
...
@@ -74,7 +74,6 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
baiscnormList
.
ForEach
(
t
=>
t
.
AllotID
=
allot
.
ID
);
baiscnormList
.
ForEach
(
t
=>
t
.
AllotID
=
allot
.
ID
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
);
perforResbaiscnormRepository
.
AddRange
(
baiscnormList
.
ToArray
());
return
baiscnormList
;
return
baiscnormList
;
}
}
...
...
performance/Performance.Services/AllotService.cs
View file @
7472ddda
...
@@ -34,6 +34,8 @@ public class AllotService : IAutoInjection
...
@@ -34,6 +34,8 @@ public class AllotService : IAutoInjection
private
PerforPeragainallotRepository
_againallotRepository
;
private
PerforPeragainallotRepository
_againallotRepository
;
private
PerforLogcheckRepository
perforLogcheckRepository
;
private
PerforLogcheckRepository
perforLogcheckRepository
;
private
readonly
PerforHospitalRepository
perforHospitalRepository
;
private
readonly
PerforHospitalRepository
perforHospitalRepository
;
private
readonly
PerforResbaiscnormRepository
perforResbaiscnormRepository
;
//private readonly IHubContext<AllotLogHub> hubContext;
//private readonly IHubContext<AllotLogHub> hubContext;
private
readonly
LogManageService
logManageService
;
private
readonly
LogManageService
logManageService
;
...
@@ -51,6 +53,7 @@ public class AllotService : IAutoInjection
...
@@ -51,6 +53,7 @@ public class AllotService : IAutoInjection
PerforPeragainallotRepository
againallotRepository
,
PerforPeragainallotRepository
againallotRepository
,
PerforLogcheckRepository
perforLogcheckRepository
,
PerforLogcheckRepository
perforLogcheckRepository
,
PerforHospitalRepository
perforHospitalRepository
,
PerforHospitalRepository
perforHospitalRepository
,
PerforResbaiscnormRepository
perforResbaiscnormRepository
,
//IHubContext<AllotLogHub> hubContext
//IHubContext<AllotLogHub> hubContext
LogManageService
logManageService
)
LogManageService
logManageService
)
{
{
...
@@ -69,6 +72,7 @@ public class AllotService : IAutoInjection
...
@@ -69,6 +72,7 @@ public class AllotService : IAutoInjection
this
.
logdbug
=
logdbug
;
this
.
logdbug
=
logdbug
;
this
.
perforLogcheckRepository
=
perforLogcheckRepository
;
this
.
perforLogcheckRepository
=
perforLogcheckRepository
;
this
.
perforHospitalRepository
=
perforHospitalRepository
;
this
.
perforHospitalRepository
=
perforHospitalRepository
;
this
.
perforResbaiscnormRepository
=
perforResbaiscnormRepository
;
//this.hubContext = hubContext;
//this.hubContext = hubContext;
this
.
logManageService
=
logManageService
;
this
.
logManageService
=
logManageService
;
}
}
...
@@ -230,18 +234,61 @@ public void Generate(per_allot allot, string mail)
...
@@ -230,18 +234,61 @@ public void Generate(per_allot allot, string mail)
}
}
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InGenerate
,
EnumHelper
.
GetDescription
(
AllotStates
.
InGenerate
));
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InGenerate
,
EnumHelper
.
GetDescription
(
AllotStates
.
InGenerate
));
// 计算合并数据
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算合并数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
List
<
PerSheet
>
list
=
processComputService
.
MergeAndSave
(
excel
,
allot
);
//var baiscnorm = baiscNormService.NurseBaiscnorm(list);
//保底绩效计算需分两次进行;
//第一次计算包含(保底绩效临床医生人均绩效、保底绩效医技医生人均绩效、保底绩效护士人均绩效)得出科室业绩绩效;
//根据当前业绩绩效核算各人群人均绩效,取工勤人均作为 保底工勤人均绩效
//第二次计算包含(保底绩效临床医生人均绩效、保底绩效医技医生人均绩效、保底绩效护士人均绩效、保底工勤人均绩效)得出科室业绩绩效;
//根据当前业绩绩效核算出最终绩效结果
//科室经济核算汇总、工作量汇总
logManageService
.
WriteMsg
(
"科室业绩汇总"
,
"正在生成科室收入支出汇总、工作量汇总"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
(
list
,
mergeSheets
)
=
processComputService
.
MergeCompute
(
excel
,
allot
.
ID
);
processComputService
.
Save
(
list
,
allot
.
ID
);
//计算保底绩效参考标准(保底绩效临床医生人均绩效、保底绩效医技医生人均绩效、保底绩效护士人均绩效)
logManageService
.
WriteMsg
(
"计算保底绩效参考标准值"
,
"正在保底绩效临床医生人均绩效、保底绩效医技医生人均绩效、保底绩效护士人均绩效"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
minimumBaiscnorm
=
processComputService
.
ComputeMinimum
(
excel
,
mergeSheets
,
allot
.
ID
);
//计算科室业绩(含保底绩效临床医生人均绩效、保底绩效医技医生人均绩效、保底绩效护士人均绩效)保底绩效
logManageService
.
WriteMsg
(
"计算保底绩效参考标准值"
,
"计算科室业绩"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
sheet
=
processComputService
.
Compute
(
excel
,
mergeSheets
,
minimumBaiscnorm
);
//计算各人群人均保底绩效
logManageService
.
WriteMsg
(
"计算保底绩效参考标准值"
,
"正在生成保底绩效行政工勤人均绩效"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
minimumBaiscnorm2
=
resultComputeService
.
Compute
(
allot
,
excel
,
sheet
);
if
(
minimumBaiscnorm2
!=
null
&&
minimumBaiscnorm2
.
Any
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
行政工勤
)))
{
var
minimum
=
minimumBaiscnorm2
.
First
(
t
=>
t
.
PositionName
==
EnumHelper
.
GetDescription
(
PerforType
.
行政工勤
));
minimum
.
PositionName
=
EnumHelper
.
GetDescription
(
MinimumType
.
保底工勤
);
minimumBaiscnorm
.
Add
(
minimum
);
}
//保存 保底绩效参考标准
logManageService
.
WriteMsg
(
"计算保底绩效参考标准值"
,
"保存保底绩效参考标准"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
perforResbaiscnormRepository
.
AddRange
(
minimumBaiscnorm
.
ToArray
());
//重新计算科室业绩(含所有提供保底金额)
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"重新计算科室业绩,包含所有保底金额计算科室业绩"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
sheetLast
=
processComputService
.
Compute
(
excel
,
mergeSheets
,
minimumBaiscnorm
);
//保存计算过程数据
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存科室业绩结果及计算过程中产生的数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
processComputService
.
Save
(
sheetLast
,
allot
.
ID
);
// 计算最总数据
// 计算最总数据
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
excel
,
li
st
);
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
excel
,
sheetLa
st
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
baiscnormList
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
baiscnormList
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
//保存 绩效人均参考标准
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存绩效人均参考标准"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
perforResbaiscnormRepository
.
AddRange
(
baiscnormList
.
ToArray
());
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateSucceed
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateSucceed
));
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateSucceed
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateSucceed
));
//发送邮件
//发送邮件
SendEmail
(
allot
,
mail
,
1
,
time
);
SendEmail
(
allot
,
mail
,
1
,
time
);
...
...
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
7472ddda
...
@@ -137,7 +137,7 @@ public class ComputeDirector : IAutoInjection
...
@@ -137,7 +137,7 @@ public class ComputeDirector : IAutoInjection
/// <param name="nurseList"></param>
/// <param name="nurseList"></param>
/// <param name="directorList"></param>
/// <param name="directorList"></param>
/// <returns></returns>
/// <returns></returns>
public
List
<
ComputeResult
>
Compute
(
List
<
ComputeEmployee
>
empolyeeList
,
List
<
im_accountbasic
>
accountbasicList
,
per_allot
allot
)
public
List
<
ComputeResult
>
Compute
(
List
<
ComputeEmployee
>
empolyeeList
,
List
<
im_accountbasic
>
accountbasicList
,
List
<
PerSheet
>
accountSheet
,
per_allot
allot
)
{
{
var
basicRuleList
=
new
[]
var
basicRuleList
=
new
[]
{
{
...
@@ -146,8 +146,11 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
...
@@ -146,8 +146,11 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<im_a
new
{
AccountUnitType
=
AccountUnitType
.
科主任
,
UnitType
=
UnitType
.
医技组
},
new
{
AccountUnitType
=
AccountUnitType
.
科主任
,
UnitType
=
UnitType
.
医技组
},
};
};
//取出科室
//取出科室
var
dataList
=
perforResaccountRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
List
<
res_account
>
dataList
=
new
List
<
res_account
>();
foreach
(
var
account
in
accountSheet
)
{
dataList
.
AddRange
(
AutoMapper
.
Mapper
.
Map
<
List
<
res_account
>>(
account
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
)));
}
List
<
ComputeResult
>
computeList
=
new
List
<
ComputeResult
>();
List
<
ComputeResult
>
computeList
=
new
List
<
ComputeResult
>();
foreach
(
var
accountbasic
in
accountbasicList
)
foreach
(
var
accountbasic
in
accountbasicList
)
{
{
...
@@ -268,7 +271,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
...
@@ -268,7 +271,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
}
}
}
}
//添加参数计算
//添加参数计算
compute
.
BaiscNormValue
=
baiscnorm
*
(
item
.
FitPeopleRatio
??
1
);
compute
.
BaiscNormValue
=
baiscnorm
*
(
item
.
FitPeopleRatio
==
null
||
item
.
FitPeopleRatio
==
0
?
1
:
item
.
FitPeopleRatio
);
//应发绩效
//应发绩效
compute
.
GiveFee
=
compute
.
BaiscNormValue
*
compute
.
PostCoefficient
*
(
compute
.
WorkYear
??
1
)
*
compute
.
Attendance
*
compute
.
ScoreAverageRate
compute
.
GiveFee
=
compute
.
BaiscNormValue
*
compute
.
PostCoefficient
*
(
compute
.
WorkYear
??
1
)
*
compute
.
Attendance
*
compute
.
ScoreAverageRate
+
(
compute
.
OtherPerfor
??
0
)
+
(
compute
.
Punishment
??
0
);
+
(
compute
.
OtherPerfor
??
0
)
+
(
compute
.
Punishment
??
0
);
...
...
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeEconomic.cs
View file @
7472ddda
...
@@ -52,7 +52,7 @@ public PerSheet MergeCompute(PerExcel excel, List<EntityModels.cof_income> incom
...
@@ -52,7 +52,7 @@ public PerSheet MergeCompute(PerExcel excel, List<EntityModels.cof_income> incom
//判断是否创建头部
//判断是否创建头部
if
(!
isHasData
&&
dataList
!=
null
&&
dataList
.
Count
()
>
0
)
if
(!
isHasData
&&
dataList
!=
null
&&
dataList
.
Count
()
>
0
)
isHasData
=
true
;
isHasData
=
true
;
foreach
(
var
item
in
EnumHelper
.
GetItems
<
UnitType
>())
foreach
(
var
item
in
EnumHelper
.
GetItems
<
UnitType
>()
.
Where
(
t
=>
t
.
Name
!=
"专家组"
)
)
{
{
var
group
=
dataList
.
Where
(
t
=>
t
.
UnitType
==
item
.
Name
);
var
group
=
dataList
.
Where
(
t
=>
t
.
UnitType
==
item
.
Name
);
...
@@ -161,11 +161,11 @@ public PerSheet OnceCompute(PerSheet sheet)
...
@@ -161,11 +161,11 @@ public PerSheet OnceCompute(PerSheet sheet)
var
typeClass
=
dataList
.
Where
(
t
=>
header
.
Children
.
Select
(
s
=>
s
.
CellValue
).
Contains
(
t
.
TypeName
));
var
typeClass
=
dataList
.
Where
(
t
=>
header
.
Children
.
Select
(
s
=>
s
.
CellValue
).
Contains
(
t
.
TypeName
));
int
pointcell
=
0
;
int
pointcell
=
0
;
foreach
(
var
item
in
EnumHelper
.
GetItems
<
UnitType
>())
foreach
(
var
item
in
EnumHelper
.
GetItems
<
UnitType
>()
.
Where
(
t
=>
t
.
Name
!=
"专家组"
)
)
{
{
pointcell
++;
pointcell
++;
var
group
=
typeClass
.
Where
(
t
=>
t
.
UnitType
==
item
.
Name
);
var
group
=
typeClass
.
Where
(
t
=>
t
.
UnitType
==
item
.
Name
);
var
childHead
=
new
PerHeader
(
1
,
maxcell
+
pointcell
,
item
.
Name
,
1
,
1
,
1
,
null
,
1
);
var
childHead
=
new
PerHeader
(
1
,
maxcell
+
pointcell
,
item
.
Name
,
1
,
1
,
1
,
null
,
1
);
parentHead
.
Children
.
Add
(
childHead
);
parentHead
.
Children
.
Add
(
childHead
);
var
ds
=
group
.
Where
(
t
=>
t
.
CellValue
.
HasValue
)
var
ds
=
group
.
Where
(
t
=>
t
.
CellValue
.
HasValue
)
...
...
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