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
9893add7
Commit
9893add7
authored
Nov 10, 2020
by
ruyun.zhang@suvalue.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/20201109' into v2020morge
parents
b7bb6d51
5934c8e2
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
179 additions
and
129 deletions
+179
-129
performance/Performance.Api/Controllers/AllotController.cs
+0
-1
performance/Performance.Api/Controllers/HospitalController.cs
+0
-1
performance/Performance.Api/Controllers/MenuController.cs
+0
-1
performance/Performance.Api/Util/JwtToken.cs
+1
-1
performance/Performance.Api/wwwroot/Performance.Api.xml
+0
-2
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+13
-0
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+5
-0
performance/Performance.DtoModels/PerExcel/PerDataAccountBaisc.cs
+2
-2
performance/Performance.DtoModels/Request/HospitalRequest.cs
+8
-3
performance/Performance.DtoModels/Response/DeptDetailResponse.cs
+2
-1
performance/Performance.DtoModels/Response/HospitalRequest.cs
+5
-0
performance/Performance.EntityModels/Entity/sys_hospital.cs
+5
-0
performance/Performance.Repository/PerforCofdirectorRepository.cs
+1
-1
performance/Performance.Services/AllotCompute/ProcessComputService.cs
+24
-13
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+29
-20
performance/Performance.Services/AllotService.cs
+21
-19
performance/Performance.Services/ComputeService.cs
+40
-44
performance/Performance.Services/HospitalService.cs
+1
-0
performance/Performance.Services/OriginalService.cs
+5
-5
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
+14
-14
performance/Performance.Services/PerExcelService/ExcelReadConfig.cs
+2
-0
performance/Performance.Services/PerExcelService/NopiSevice.cs
+1
-1
No files found.
performance/Performance.Api/Controllers/AllotController.cs
View file @
9893add7
...
...
@@ -188,7 +188,6 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody] A
logManageService
.
WriteMsg
(
"等待绩效生成"
,
$"等待绩效生成
{
allot
.
Year
}
-
{
allot
.
Month
.
ToString
().
PadLeft
(
2
,
'0'
)}
月份绩效!"
,
1
,
allot
.
ID
,
"ReceiveMessage"
);
//_allotService.Generate(allot, email);
////BackgroundJob.Enqueue(() => _allotService.Generate(allot, email));
///
// 科室下发
resultComputeService
.
GenerateSecondAllot
(
allot
);
return
new
ApiResponse
(
ResponseType
.
OK
);
...
...
performance/Performance.Api/Controllers/HospitalController.cs
View file @
9893add7
...
...
@@ -25,7 +25,6 @@ public HospitalController(HospitalService hospitalService, ClaimService claimSer
/// <summary>
/// 获取当前登录用户管辖医院列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"hospitallist"
)]
[
HttpPost
]
...
...
performance/Performance.Api/Controllers/MenuController.cs
View file @
9893add7
...
...
@@ -28,7 +28,6 @@ public MenuController(MenuService menuService, ClaimService claimService)
/// <summary>
/// 设置用户管辖医院
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"menulist"
)]
[
HttpPost
]
...
...
performance/Performance.Api/Util/JwtToken.cs
View file @
9893add7
...
...
@@ -69,7 +69,7 @@ public static ClaimsPrincipal GetPrincipal(string token)
return
principal
;
}
catch
(
Exception
ex
)
catch
(
Exception
)
{
return
null
;
}
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
9893add7
...
...
@@ -887,7 +887,6 @@
<summary>
获取当前登录用户管辖医院列表
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.HospitalController.Insert(Performance.DtoModels.HospitalRequest)"
>
...
...
@@ -922,7 +921,6 @@
<summary>
设置用户管辖医院
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"T:Performance.Api.Controllers.OriginalController"
>
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
9893add7
...
...
@@ -2012,6 +2012,11 @@
是否开启科室CMI占比 1 启用 2 禁用
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HospitalRequest.IsOpenLogisticsSecondAllot"
>
<summary>
是否开启行政后勤二次绩效分配 1 启用 2 禁用
</summary>
</member>
<member
name=
"P:Performance.DtoModels.IncomeRequest.SheetNameKeyword"
>
<summary>
关键字匹配
...
...
@@ -2717,6 +2722,9 @@
<member
name=
"P:Performance.DtoModels.DetailDtos`1.IncomeType"
>
<summary>
1、收入 2、支出 3、工作量 4、特殊科室 5、科室奖罚 6、科室药占比考核 7、科室材料占比考核 8、调节后其他绩效
</summary>
</member>
<member
name=
"P:Performance.DtoModels.DetailDtos`1.OriginalType"
>
<summary>
原始SheetType
</summary>
</member>
<member
name=
"P:Performance.DtoModels.DetailDtos`1.Amount"
>
<summary>
金额
</summary>
</member>
...
...
@@ -2981,6 +2989,11 @@
是否开启护理部审核 1 启用 2 禁用
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HospitalResponse.IsOpenLogisticsSecondAllot"
>
<summary>
是否开启行政后勤二次绩效分配 1 启用 2 禁用
</summary>
</member>
<member
name=
"P:Performance.DtoModels.IncomeResponse.SheetNameKeyword"
>
<summary>
关键字匹配
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
9893add7
...
...
@@ -5288,6 +5288,11 @@
是否显示二次绩效科主任1 启用 2 禁用
</summary>
</member>
<member
name=
"P:Performance.EntityModels.sys_hospital.IsOpenLogisticsSecondAllot"
>
<summary>
是否开启行政后勤二次绩效分配 1 启用 2 禁用
</summary>
</member>
<member
name=
"T:Performance.EntityModels.sys_hospitalconfig"
>
<summary>
...
...
performance/Performance.DtoModels/PerExcel/PerDataAccountBaisc.cs
View file @
9893add7
...
...
@@ -81,12 +81,12 @@ public class PerDataAccountBaisc : IPerData
/// <summary>
/// 药占比奖罚
/// </summary>
public
decimal
MedicineExtra
{
get
;
set
;
}
public
decimal
?
MedicineExtra
{
get
;
set
;
}
/// <summary>
/// 材料占比奖罚
/// </summary>
public
decimal
MaterialsExtra
{
get
;
set
;
}
public
decimal
?
MaterialsExtra
{
get
;
set
;
}
/// <summary>
/// 医院奖罚
...
...
performance/Performance.DtoModels/Request/HospitalRequest.cs
View file @
9893add7
...
...
@@ -35,9 +35,9 @@ public class HospitalRequest
/// 医院状态 1 启用 2 禁用
/// </summary>
public
Nullable
<
int
>
States
{
get
;
set
;
}
/// <summary>
/// 是否开启年资系数 1 启用 2 禁用
/// </summary>
///
//
<summary>
///
//
是否开启年资系数 1 启用 2 禁用
///
//
</summary>
//public Nullable<int> IsOpenWorkYear { get; set; }
/// <summary>
/// 是否开启药占比系数 1 启用 2 禁用
...
...
@@ -59,6 +59,11 @@ public class HospitalRequest
/// 是否开启科室CMI占比 1 启用 2 禁用
/// </summary>
public
Nullable
<
int
>
IsOpenCMIPercent
{
get
;
set
;
}
/// <summary>
/// 是否开启行政后勤二次绩效分配 1 启用 2 禁用
/// </summary>
public
Nullable
<
int
>
IsOpenLogisticsSecondAllot
{
get
;
set
;
}
}
public
class
HospitalRequestValidator
:
AbstractValidator
<
HospitalRequest
>
...
...
performance/Performance.DtoModels/Response/DeptDetailResponse.cs
View file @
9893add7
...
...
@@ -49,7 +49,8 @@ public class DetailDtos<T>
/// <summary> 1、收入 2、支出 3、工作量 4、特殊科室 5、科室奖罚 6、科室药占比考核 7、科室材料占比考核 8、调节后其他绩效 </summary>
public
int
IncomeType
{
get
;
set
;
}
/// <summary> 原始SheetType </summary>
public
int
OriginalType
{
get
;
set
;
}
/// <summary> 金额 </summary>
public
decimal
Amount
{
get
;
set
;
}
...
...
performance/Performance.DtoModels/Response/HospitalRequest.cs
View file @
9893add7
...
...
@@ -27,5 +27,10 @@ public class HospitalResponse
/// 是否开启护理部审核 1 启用 2 禁用
/// </summary>
public
int
IsOpenNursingDeptAudit
{
get
;
set
;
}
/// <summary>
/// 是否开启行政后勤二次绩效分配 1 启用 2 禁用
/// </summary>
public
Nullable
<
int
>
IsOpenLogisticsSecondAllot
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/sys_hospital.cs
View file @
9893add7
...
...
@@ -100,5 +100,10 @@ public class sys_hospital
/// 是否显示二次绩效科主任1 启用 2 禁用
/// </summary>
public
Nullable
<
int
>
IsShowSecondDirector
{
get
;
set
;
}
/// <summary>
/// 是否开启行政后勤二次绩效分配 1 启用 2 禁用
/// </summary>
public
Nullable
<
int
>
IsOpenLogisticsSecondAllot
{
get
;
set
;
}
}
}
performance/Performance.Repository/PerforCofdirectorRepository.cs
View file @
9893add7
...
...
@@ -149,7 +149,7 @@ union all
{
flag
=
connection
.
Execute
(
sql
,
new
{
allotid
},
commandTimeout
:
60
*
60
);
}
catch
(
Exception
ex
)
catch
(
Exception
)
{
}
...
...
performance/Performance.Services/AllotCompute/ProcessComputService.cs
View file @
9893add7
...
...
@@ -259,8 +259,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
/// <param name="excel"></param>
/// <param name="perSheet"></param>
/// <returns></returns>
public
List
<
PerSheet
>
Compute
(
PerExcel
excel
,
List
<
PerSheet
>
perSheet
,
IEnumerable
<
AccountUnitTotal
>
extras
,
IEnumerable
<
AccountUnitTotal
>
drugExtras
,
IEnumerable
<
AccountUnitTotal
>
materialsExtras
)
public
List
<
PerSheet
>
Compute
(
PerExcel
excel
,
List
<
PerSheet
>
perSheet
)
{
var
accountList
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
)?.
PerData
?.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
var
economicData
=
perSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
ComputeEconomic
)?.
PerData
?.
Select
(
t
=>
(
PerData
)
t
);
...
...
@@ -284,9 +283,9 @@ public void Save(List<PerSheet> perSheets, int allotId)
foreach
(
var
dept
in
atDataList
)
{
//科室奖罚汇总结果
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
materialsExtra
=
materialsExtras
?.
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 materialsExtra = materialsExtras?.FirstOrDefault(w => w.UnitType == unitType.ToString() && w.AccountingUnit == dept.AccountingUnit)?.TotelValue;
//var scoreAverage = accountScoreAverages?.FirstOrDefault(w => w.UnitType == unitType.ToString() && w.AccountingUnit == dept.AccountingUnit)?.TotelValue;
var
econDoctor
=
economicData
.
FirstOrDefault
(
t
=>
t
.
UnitType
==
unitType
.
ToString
()
&&
t
.
AccountingUnit
==
dept
.
AccountingUnit
);
...
...
@@ -308,9 +307,13 @@ public void Save(List<PerSheet> perSheets, int allotId)
dept
.
AssessBeforeOtherFee
=
dept
?.
AssessBeforeOtherFee
??
0
;
dept
.
AssessLaterOtherFee
=
dept
?.
AssessLaterOtherFee
??
0
;
dept
.
AdjustLaterOtherFee
=
dept
?.
AdjustLaterOtherFee
??
0
;
dept
.
Extra
=
(
extra
??
0
);
dept
.
MedicineExtra
=
(
drugExtra
??
0
);
dept
.
MaterialsExtra
=
(
materialsExtra
??
0
);
//dept.Extra = (extra ?? 0);
//dept.MedicineExtra = (drugExtra ?? 0);
//dept.MaterialsExtra = (materialsExtra ?? 0);
dept
.
Extra
=
0
;
dept
.
MedicineExtra
=
dept
.
MedicineExtra
??
0
;
dept
.
MaterialsExtra
=
dept
.
MaterialsExtra
??
0
;
dept
.
PerforFee
=
dept
.
Income
*
dept
.
BasicFactor
;
//dept.PerforTotal = Math.Round((dept.PerforFee + dept.WorkloadFee + dept.OtherPerfor1 + dept.AssessBeforeOtherFee) ?? 0);
dept
.
PerforTotal
=
Math
.
Round
((
dept
.
PerforFee
+
dept
.
WorkloadFee
+
dept
.
AssessBeforeOtherFee
)
??
0
);
...
...
@@ -333,7 +336,7 @@ public void Save(List<PerSheet> perSheets, int allotId)
/// <param name="allot"></param>
/// <param name="excel"></param>
/// <param name="extras"></param>
public
void
ComputeOffice
(
per_allot
allot
,
PerExcel
excel
,
IEnumerable
<
AccountUnitTotal
>
extras
)
public
void
ComputeOffice
(
per_allot
allot
,
PerExcel
excel
)
{
//取出科室
var
accountList
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
)?.
PerData
?.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
...
...
@@ -357,7 +360,7 @@ public void ComputeOffice(per_allot allot, PerExcel excel, IEnumerable<AccountUn
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 materialsExtra = materialsExtras.FirstOrDefault(w => w.UnitType == account.AccountType.ToString() && w.AccountingUnit == resAccount.AccountingUnit)?.TotelValue;
...
...
@@ -369,9 +372,17 @@ public void ComputeOffice(per_allot allot, PerExcel excel, IEnumerable<AccountUn
dept
.
ScoringAverage
=
resAccount
?.
ScoringAverage
==
null
?
0
:
resAccount
.
ScoringAverage
;
dept
.
AdjustFactor
=
resAccount
?.
AdjustFactor
==
null
?
0
:
resAccount
.
AdjustFactor
;
dept
.
Income
=
empolyees
.
Sum
(
w
=>
w
.
PerforTotal
??
0
);
dept
.
Extra
=
(
extra
??
0
);
dept
.
MedicineExtra
=
0
;
// (drugExtra ?? 0);
dept
.
MaterialsExtra
=
0
;
//(materialsExtra ?? 0);
//dept.Extra = (extra ?? 0);
//dept.MedicineExtra = 0;// (drugExtra ?? 0);
//dept.MaterialsExtra = 0;//(materialsExtra ?? 0);
dept
.
Extra
=
0
;
dept
.
MedicineExtra
=
resAccount
?.
MedicineExtra
??
0
;
// (drugExtra ?? 0);
dept
.
MaterialsExtra
=
resAccount
?.
MaterialsExtra
??
0
;
//(materialsExtra ?? 0);
dept
.
AssessBeforeOtherFee
=
resAccount
?.
AssessBeforeOtherFee
??
0
;
dept
.
AssessLaterOtherFee
=
resAccount
?.
AssessLaterOtherFee
??
0
;
dept
.
AdjustLaterOtherFee
=
resAccount
?.
AdjustLaterOtherFee
??
0
;
dept
.
PerforFee
=
empolyees
.
Sum
(
w
=>
w
.
PerforTotal
??
0
);
dept
.
PerforTotal
=
Math
.
Round
(
empolyees
.
Sum
(
w
=>
w
.
GiveFee
??
0
));
dept
.
RealGiveFee
=
Math
.
Round
(((
dept
.
PerforTotal
*
dept
.
ScoringAverage
+
dept
.
MedicineExtra
+
dept
.
MaterialsExtra
+
dept
.
Extra
)
*
dept
.
AdjustFactor
)
??
0
);
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
9893add7
This diff is collapsed.
Click to expand it.
performance/Performance.Services/AllotService.cs
View file @
9893add7
...
...
@@ -324,6 +324,7 @@ public void Generate(per_allot allot, string mail)
var
(
list
,
mergeSheets
)
=
processComputService
.
MergeCompute
(
excel
,
allot
.
ID
);
processComputService
.
Save
(
list
,
allot
.
ID
);
#
region
注释
////计算保底绩效参考标准(保底绩效临床医生人均绩效、保底绩效医技医生人均绩效、保底绩效护士人均绩效)
//logManageService.WriteMsg("计算保底绩效参考标准值", "正在保底绩效临床医生人均绩效、保底绩效医技医生人均绩效、保底绩效护士人均绩效", 1, allot.ID, "ReceiveMessage", true);
//var minimumBaiscnorm = processComputService.ComputeMinimum(excel, mergeSheets, allot.ID);
...
...
@@ -350,18 +351,18 @@ public void Generate(per_allot allot, string mail)
//logManageService.WriteMsg("计算保底绩效参考标准值", "保存保底绩效参考标准", 1, allot.ID, "ReceiveMessage", true);
//perforResbaiscnormRepository.AddRange(minimumBaiscnorm.ToArray());
// 科室奖罚汇总
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"科室奖罚汇总"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
accountExtras
=
processComputService
.
GetAccountExtra
(
excel
,
SheetType
.
AccountExtra
,
true
);
// 科室药占比考核
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"科室药占比考核"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
drugExtras
=
processComputService
.
GetAccountExtra
(
excel
,
SheetType
.
AccountDrugAssess
,
true
);
// 科室材料占比考核
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"科室材料占比考核"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
materialsExtras
=
processComputService
.
GetAccountExtra
(
excel
,
SheetType
.
AccountMaterialsAssess
,
true
);
// 科室考核得分率
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"科室考核得分率"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
accountScoreAverages
=
processComputService
.
GetAccountScoreAverage
(
excel
,
SheetType
.
AccountScoreAverage
,
true
);
//
//
科室奖罚汇总
//
logManageService.WriteMsg("正在生成绩效", "科室奖罚汇总", 1, allot.ID, "ReceiveMessage", true);
//
var accountExtras = processComputService.GetAccountExtra(excel, SheetType.AccountExtra, true);
//
//
科室药占比考核
//
logManageService.WriteMsg("正在生成绩效", "科室药占比考核", 1, allot.ID, "ReceiveMessage", true);
//
var drugExtras = processComputService.GetAccountExtra(excel, SheetType.AccountDrugAssess, true);
//
//
科室材料占比考核
//
logManageService.WriteMsg("正在生成绩效", "科室材料占比考核", 1, allot.ID, "ReceiveMessage", true);
//
var materialsExtras = processComputService.GetAccountExtra(excel, SheetType.AccountMaterialsAssess, true);
//
//
科室考核得分率
//
logManageService.WriteMsg("正在生成绩效", "科室考核得分率", 1, allot.ID, "ReceiveMessage", true);
//
var accountScoreAverages = processComputService.GetAccountScoreAverage(excel, SheetType.AccountScoreAverage, true);
////科室药占比考核
//logManageService.WriteMsg("正在生成绩效", "科室奖罚汇总", 1, allot.ID, "ReceiveMessage", true);
...
...
@@ -370,29 +371,30 @@ public void Generate(per_allot allot, string mail)
////科室材料考核
//logManageService.WriteMsg("正在生成绩效", "科室奖罚汇总", 1, allot.ID, "ReceiveMessage", true);
//var accountExtras = processComputService.GetAccountExtra(excel);
#
endregion
//重新计算科室业绩(含所有提供保底金额)
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室业绩分"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
sheetLast
=
processComputService
.
Compute
(
excel
,
mergeSheets
,
accountExtras
,
drugExtras
,
materialsExtras
);
var
sheetLast
=
processComputService
.
Compute
(
excel
,
mergeSheets
);
//保存计算过程数据
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存科室业绩结果及计算过程中产生的数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
processComputService
.
Save
(
sheetLast
,
allot
.
ID
);
//业务中层行政中高层医院奖罚
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"业务中层行政中高层医院奖罚"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
employeeExtra
=
processComputService
.
GetEmployeeExtra
(
excel
);
//
//
业务中层行政中高层医院奖罚
//
logManageService.WriteMsg("正在生成绩效", "业务中层行政中高层医院奖罚", 1, allot.ID, "ReceiveMessage", true);
//
var employeeExtra = processComputService.GetEmployeeExtra(excel);
// 计算最总数据
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
excel
,
sheetLast
,
employeeExtra
);
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
sheetLast
);
// 计算行政科室绩效
processComputService
.
ComputeOffice
(
allot
,
excel
,
accountExtras
);
processComputService
.
ComputeOffice
(
allot
,
excel
);
// 计算特殊科室
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
baiscnormList
,
accountExtras
,
drugExtras
,
materialsExtras
,
employeeExtra
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
baiscnormList
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
//保存 绩效人均参考标准
...
...
performance/Performance.Services/ComputeService.cs
View file @
9893add7
This diff is collapsed.
Click to expand it.
performance/Performance.Services/HospitalService.cs
View file @
9893add7
...
...
@@ -134,6 +134,7 @@ public HospitalResponse Update(HospitalRequest request)
hospital
.
IsOpenDrugprop
=
request
.
IsOpenDrugprop
;
hospital
.
IsShowManage
=
request
.
IsShowManage
;
hospital
.
IsOpenCMIPercent
=
request
.
IsOpenCMIPercent
;
hospital
.
IsOpenLogisticsSecondAllot
=
request
.
IsOpenLogisticsSecondAllot
;
//hospital.IsOpenIncome = request.IsOpenIncome;
if
(!
_hospitalRepository
.
Update
(
hospital
))
...
...
performance/Performance.Services/OriginalService.cs
View file @
9893add7
...
...
@@ -112,15 +112,15 @@ public bool EditSheetData(int userId, OriginalRequest request)
break
;
}
}
catch
(
NotSupportedException
ex
)
catch
(
NotSupportedException
)
{
throw
new
PerformanceException
(
"提交参数不合规范"
);
}
catch
(
InvalidCastException
ex
)
catch
(
InvalidCastException
)
{
throw
new
PerformanceException
(
"提交参数不合规范"
);
}
catch
(
ArgumentException
ex
)
catch
(
ArgumentException
)
{
throw
new
PerformanceException
(
"提交参数不合规范"
);
}
...
...
@@ -256,7 +256,7 @@ private void SetValue<TEntity>(TEntity entity, CellRequest cell)
else
if
(
type
.
IndexOf
(
"string"
)
>
-
1
)
value
=
cell
.
CellValue
.
ToString
();
}
catch
(
Exception
ex
)
catch
{
throw
new
PerformanceException
(
"提交参数不合规范"
);
}
...
...
@@ -305,7 +305,7 @@ private bool EditFeeData(int userId, OriginalRequest request, bool basic)
entity
.
UpdateUser
=
userId
;
result
=
imdataRepository
.
Update
(
entity
);
}
catch
(
Exception
ex
)
catch
{
throw
new
PerformanceException
(
"提交参数不合规范"
);
}
...
...
performance/Performance.Services/PerExcelService/ComputeEmpolyee/ComputeDirector.cs
View file @
9893add7
...
...
@@ -282,7 +282,7 @@ public class ComputeDirector : IAutoInjection
/// <param name="nurseList"></param>
/// <param name="directorList"></param>
/// <returns></returns>
public
List
<
ComputeResult
>
Compute
(
List
<
ComputeEmployee
>
empolyeeList
,
List
<
PerSheet
>
accountSheet
,
per_allot
allot
,
IEnumerable
<
EmpolyeeTotal
>
employeeExtra
)
public
List
<
ComputeResult
>
Compute
(
List
<
ComputeEmployee
>
empolyeeList
,
List
<
PerSheet
>
accountSheet
,
per_allot
allot
)
{
var
basicRuleList
=
new
[]
{
...
...
@@ -398,13 +398,13 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<PerS
Attendance
=
empolyee
.
Attendance
??
0
,
};
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
==
empolyee
.
AccountingUnit
&&
w
.
UnitType
==
empolyee
.
UnitType
&&
w
.
JobNumber
==
empolyee
.
JobNumber
&&
w
.
EmployeeName
==
empolyee
.
DoctorName
)?.
TotelValue
;
//
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 == empolyee.AccountingUnit && w.UnitType == empolyee.UnitType
//
&& w.JobNumber == empolyee.JobNumber && w.EmployeeName == empolyee.DoctorName)?.TotelValue;
compute
.
Avg
=
avg
*
(
empolyee
.
Basics
??
0
)
*
compute
.
Attendance
;
compute
.
Punishment
=
extra
??
0
;
compute
.
Punishment
=
0
;
// 考核前管理绩效
compute
.
ShouldGiveFee
=
Math
.
Round
((
compute
.
Efficiency
+
compute
.
Scale
)
*
compute
.
Grant
+
compute
.
OtherManagePerfor
??
0
);
// 考核后管理绩效
...
...
@@ -441,7 +441,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, List<PerS
/// <param name="empolyeeList"></param>
/// <param name="baiscnormList"></param>
/// <returns></returns>
public
List
<
ComputeResult
>
Compute
(
List
<
ComputeEmployee
>
empolyeeList
,
per_allot
allot
,
List
<
res_baiscnorm
>
baiscnormList
,
IEnumerable
<
EmpolyeeTotal
>
employeeExtra
)
public
List
<
ComputeResult
>
Compute
(
List
<
ComputeEmployee
>
empolyeeList
,
per_allot
allot
,
List
<
res_baiscnorm
>
baiscnormList
)
{
////年资系数
//var workyearList = perforCofworkyearRepository.GetEntities(t => t.AllotID == allot.ID);
...
...
@@ -464,10 +464,10 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
var
perforTypeArray
=
EnumHelper
.
GetItems
<
PerforType
>();
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
)))
.
FirstOrDefault
(
w
=>
w
.
AccountingUnit
==
item
.
AccountingUnit
&&
w
.
UnitType
==
item
.
AccountType
&&
w
.
JobNumber
==
item
.
JobNumber
&&
w
.
EmployeeName
==
item
.
DoctorName
)
?.
TotelValue
;
//
//
奖罚汇总
//
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.AccountType && w.JobNumber == item.JobNumber && w.EmployeeName == item.DoctorName)
//
?.TotelValue;
var
compute
=
new
ComputeResult
{
...
...
@@ -482,7 +482,7 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
PostCoefficient
=
item
.
PostCoefficient
??
0
,
Attendance
=
item
.
Attendance
??
0
,
ScoreAverageRate
=
item
.
ScoreAverageRate
??
1
,
Punishment
=
extra
??
0
,
Punishment
=
0
,
OtherPerfor
=
item
.
OtherPerfor
??
0
,
JobTitle
=
item
.
JobTitle
,
JobNumber
=
item
.
JobNumber
,
...
...
@@ -523,9 +523,9 @@ public List<ComputeResult> Compute(List<ComputeEmployee> empolyeeList, per_allot
{
//考核前绩效
compute
.
PerforTotal
=
Math
.
Round
(
compute
.
BaiscNormValue
*
compute
.
PostCoefficient
*
compute
.
Attendance
+
compute
.
OtherPerfor
??
0
);
//考核后绩效
没什么用也不
显示
//考核后绩效
更加开关来控制
显示
compute
.
GiveFee
=
compute
.
PerforTotal
*
compute
.
ScoreAverageRate
;
//实发绩效
没什么用也不
显示
//实发绩效
更加开关来控制
显示
compute
.
RealGiveFee
=
Math
.
Round
(
compute
.
GiveFee
*
compute
.
Adjust
??
0
);
}
computeList
.
Add
(
compute
);
...
...
performance/Performance.Services/PerExcelService/ExcelReadConfig.cs
View file @
9893add7
...
...
@@ -80,6 +80,8 @@ public class ExcelReadConfig
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
BasicFactor
),
"预算比例"
,
true
),
//new ColumnInfo(nameof(PerDataAccountBaisc.OtherPerfor1), "其他绩效1", true),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AssessBeforeOtherFee
),
"考核前其他绩效"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
MedicineExtra
),
"药占比奖罚"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
MaterialsExtra
),
"材料占比奖罚"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
ScoringAverage
),
"考核得分率"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AssessLaterOtherFee
),
"考核后其他绩效"
,
true
),
new
ColumnInfo
(
nameof
(
PerDataAccountBaisc
.
AdjustFactor
),
"调节系数"
,
true
),
...
...
performance/Performance.Services/PerExcelService/NopiSevice.cs
View file @
9893add7
...
...
@@ -83,7 +83,7 @@ public static string GetValue(this ICell cell)
return
string
.
Empty
;
}
}
catch
(
Exception
ex
)
catch
(
Exception
)
{
//throw ex;
}
...
...
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