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
fe31cb71
Commit
fe31cb71
authored
Jun 01, 2020
by
lcx
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '科室取值' into 原始数据修改生成
parents
bfbab080
c3b1cf4b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
567 additions
and
60 deletions
+567
-60
performance/Performance.Api/Controllers/EmployeeController.cs
+14
-0
performance/Performance.Api/Controllers/SecondAllotController.cs
+53
-0
performance/Performance.Api/wwwroot/Performance.Api.xml
+24
-0
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+18
-0
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+44
-1
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
+4
-3
performance/Performance.DtoModels/Enum.cs
+12
-0
performance/Performance.DtoModels/Request/WorkloadRequest.cs
+5
-0
performance/Performance.DtoModels/Response/AllotResponse.cs
+5
-0
performance/Performance.DtoModels/Response/SecondResponse.cs
+9
-1
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
+2
-0
performance/Performance.EntityModels/Entity/ag_fixatitem.cs
+5
-0
performance/Performance.EntityModels/Entity/ag_tempitem.cs
+5
-0
performance/Performance.EntityModels/Entity/ag_workload.cs
+5
-0
performance/Performance.EntityModels/Entity/ag_workload_type.cs
+34
-0
performance/Performance.EntityModels/Entity/im_accountbasic.cs
+3
-3
performance/Performance.EntityModels/Entity/per_allot.cs
+1
-1
performance/Performance.EntityModels/Entity/per_budget_amount.cs
+2
-2
performance/Performance.EntityModels/Entity/per_budget_ratio.cs
+2
-2
performance/Performance.EntityModels/Entity/per_budget_result.cs
+5
-5
performance/Performance.EntityModels/Entity/res_account.cs
+3
-3
performance/Performance.Repository/PerforCofdirectorRepository.cs
+19
-0
performance/Performance.Repository/PerforPerAllotRepository.cs
+4
-1
performance/Performance.Repository/Repository/PerforAgworkloadtypeRepository.cs
+20
-0
performance/Performance.Services/AllotCompute/QueryDataService.cs
+184
-0
performance/Performance.Services/AllotService.cs
+25
-14
performance/Performance.Services/ConfigService.cs
+10
-0
performance/Performance.Services/EmployeeService.cs
+15
-0
performance/Performance.Services/PerExcelService/NopiSevice.cs
+3
-3
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadBillIncome.cs
+2
-2
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadClinicEmployee.cs
+3
-3
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadDeptAccounting.cs
+2
-2
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadDeptAccountingSpecial.cs
+6
-4
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadEmployee.cs
+3
-3
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadExpend.cs
+5
-2
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadIncome.cs
+2
-0
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadOtherIncome.cs
+4
-2
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadSpecialUnit.cs
+1
-1
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadWorkload.cs
+4
-2
performance/Performance.Services/SecondAllotService.cs
+0
-0
No files found.
performance/Performance.Api/Controllers/EmployeeController.cs
View file @
fe31cb71
...
...
@@ -150,5 +150,18 @@ public ApiResponse DeleteClinic([CustomizeValidator(RuleSet = "Delete"), FromBod
return
new
ApiResponse
(
ResponseType
.
Fail
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
/// <summary>
/// 人事科修改参数后提交
/// </summary>
/// <param name="allotid"></param>
/// <returns></returns>
[
Route
(
"manage/audit/{allotid}"
)]
[
HttpPost
]
public
ApiResponse
Audit
(
int
allotid
)
{
var
result
=
employeeService
.
Audit
(
allotid
);
return
result
?
new
ApiResponse
(
ResponseType
.
OK
,
"提交成功"
)
:
new
ApiResponse
(
ResponseType
.
Fail
,
"提交失败"
);
}
}
}
\ No newline at end of file
performance/Performance.Api/Controllers/SecondAllotController.cs
View file @
fe31cb71
...
...
@@ -216,6 +216,59 @@ public ApiResponse WorkloadDelete([CustomizeValidator(RuleSet = "Delete"), FromB
var
result
=
secondAllotService
.
WorkloadDelete
(
request
.
Id
);
return
new
ApiResponse
(
result
?
ResponseType
.
OK
:
ResponseType
.
Fail
);
}
/// <summary>
/// 二次绩效单例奖励列表
/// </summary>
/// <returns></returns>
[
Route
(
"api/second/single/list"
)]
[
HttpPost
]
public
ApiResponse
SingleAwards
([
FromBody
]
WorkloadRequest
request
)
{
var
result
=
secondAllotService
.
GetSingleList
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
/// <summary>
/// 二次绩效工作量类型列表
/// </summary>
/// <returns></returns>
[
Route
(
"api/second/worktype/list"
)]
[
HttpPost
]
public
ApiResponse
WorkTypeList
([
FromBody
]
WorkloadRequest
request
)
{
var
result
=
secondAllotService
.
WorkTypeList
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
/// <summary>
/// 保存二次绩效工作量类型
/// </summary>
/// <returns></returns>
[
Route
(
"api/second/worktype/save"
)]
[
HttpPost
]
public
ApiResponse
SingleSave
([
FromBody
]
ag_workload_type
request
)
{
if
(
request
.
HospitalId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"医院信息无效"
);
if
(
string
.
IsNullOrEmpty
(
request
.
TypeName
))
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"填写参数无效"
);
var
result
=
secondAllotService
.
SaveWorkType
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
/// <summary>
/// 删除二次绩效工作量类型
/// </summary>
/// <returns></returns>
[
Route
(
"api/second/worktype/delete"
)]
[
HttpPost
]
public
ApiResponse
SingleDelete
([
CustomizeValidator
(
RuleSet
=
"Delete"
),
FromBody
]
WorkloadRequest
request
)
{
var
result
=
secondAllotService
.
DeleteWorkType
(
request
);
return
result
?
new
ApiResponse
(
ResponseType
.
OK
,
"删除成功"
)
:
new
ApiResponse
(
ResponseType
.
Fail
,
"删除失败"
);
}
#
endregion
#
region
二次绩效审核
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
fe31cb71
...
...
@@ -840,6 +840,30 @@
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.SecondAllotController.SingleAwards(Performance.DtoModels.WorkloadRequest)"
>
<summary>
二次绩效单例奖励列表
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.SecondAllotController.WorkTypeList(Performance.DtoModels.WorkloadRequest)"
>
<summary>
二次绩效工作量类型列表
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.SecondAllotController.SingleSave(Performance.EntityModels.ag_workload_type)"
>
<summary>
保存二次绩效工作量类型
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.SecondAllotController.SingleDelete(Performance.DtoModels.WorkloadRequest)"
>
<summary>
删除二次绩效工作量类型
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.SecondAllotController.SubmitAudit(Performance.DtoModels.SubmitAuditRequest)"
>
<summary>
提交审核
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
fe31cb71
...
...
@@ -143,6 +143,16 @@
<member
name=
"F:Performance.DtoModels.AllotStates.GenerateAccomplish"
>
<summary>
绩效结果解析成功
</summary>
</member>
<member
name=
"F:Performance.DtoModels.AgWorkloadType.SingleAwards"
>
<summary>
单项奖励
</summary>
</member>
<member
name=
"F:Performance.DtoModels.AgWorkloadType.Workload"
>
<summary>
工作量
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAgainData.RowNumber"
>
<summary>
行号
...
...
@@ -1955,6 +1965,11 @@
</summary>
</member>
<member
name=
"P:Performance.DtoModels.WorkloadRequest.WorkTypeId"
>
<summary>
1、工作量 2、其他
</summary>
</member>
<member
name=
"P:Performance.DtoModels.WorkyearRequest.MaxRange"
>
<summary>
最大工龄范围(小于)
...
...
@@ -2732,6 +2747,9 @@
<member
name=
"P:Performance.DtoModels.HeadItem.IsBring"
>
<summary>
1 带出历史数据 2不带出
</summary>
</member>
<member
name=
"P:Performance.DtoModels.HeadItem.SpecialAttr"
>
<summary>
1 value相加值为1
</summary>
</member>
<member
name=
"P:Performance.DtoModels.SecondTempResponse.TempName"
>
<summary>
模板名称
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
fe31cb71
...
...
@@ -43,6 +43,9 @@
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.ag_workload"
>
<summary>
二次绩效工作量绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.ag_workload_type"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.as_assess"
>
<summary>
考核类别
</summary>
</member>
...
...
@@ -557,6 +560,11 @@
1 自动带出 2 计算得出
</summary>
</member>
<member
name=
"P:Performance.EntityModels.ag_fixatitem.SpecialAttr"
>
<summary>
1 value相加值为1
</summary>
</member>
<member
name=
"T:Performance.EntityModels.ag_header"
>
<summary>
二次分配不固定列头数据
...
...
@@ -832,6 +840,11 @@
1 带出历史数据 2不带出
</summary>
</member>
<member
name=
"P:Performance.EntityModels.ag_tempitem.SpecialAttr"
>
<summary>
1 value相加值为1
</summary>
</member>
<member
name=
"T:Performance.EntityModels.ag_usetemp"
>
<summary>
...
...
@@ -907,6 +920,31 @@
</summary>
</member>
<member
name=
"P:Performance.EntityModels.ag_workload.WorkTypeId"
>
<summary>
1、单项奖励 2、工作量占比 ..(自定义占比)
</summary>
</member>
<member
name=
"T:Performance.EntityModels.ag_workload_type"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.ag_workload_type.Id"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.ag_workload_type.HospitalId"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.ag_workload_type.TypeName"
>
<summary>
</summary>
</member>
<member
name=
"T:Performance.EntityModels.as_assess"
>
<summary>
考核类别
...
...
@@ -2457,6 +2495,11 @@
是否在抽取数据0 否、1 是、2 抽取成功、3 抽取失败
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_allot.Generate"
>
<summary>
1、人事科提交重新生成 2、生成成功
</summary>
</member>
<member
name=
"T:Performance.EntityModels.per_budget_amount"
>
<summary>
预算管理金额
...
...
@@ -2854,7 +2897,7 @@
</member>
<member
name=
"P:Performance.EntityModels.per_budget_result.States"
>
<summary>
1.初始 2.
确认使用发放/调节系数 3.取消使用
1.初始 2.
确认使用发放/调节系数
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_budget_result.CreateDate"
>
...
...
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
View file @
fe31cb71
...
...
@@ -126,7 +126,7 @@ public AutoMapperConfigs()
CreateMap
<
im_accountbasic
,
PerDataAccountBaisc
>()
.
ForMember
(
dest
=>
dest
.
UnitType
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
UnitType
))
.
ForMember
(
dest
=>
dest
.
UnitType
,
opt
=>
opt
.
MapFrom
(
src
=>
((
UnitType
)
src
.
UnitType
).
ToString
()
))
.
ForMember
(
dest
=>
dest
.
AccountingUnit
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
DoctorAccountingUnit
))
.
ForMember
(
dest
=>
dest
.
Department
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
Department
))
.
ForMember
(
dest
=>
dest
.
ManagerNumber
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
DoctorDirectorNumber
))
...
...
@@ -142,7 +142,7 @@ public AutoMapperConfigs()
.
ForMember
(
dest
=>
dest
.
Effic
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
DoctorEffic
))
.
ForMember
(
dest
=>
dest
.
Grant
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
DoctorGrant
));
CreateMap
<
PerDataSpecialUnit
,
im_specialunit
>();
CreateMap
<
PerDataSpecialUnit
,
im_specialunit
>()
.
ReverseMap
()
;
//CreateMap<PerDataAccountDoctor, res_accountdoctor>();
//CreateMap<PerDataAccountNurse, res_accountnurse>();
//CreateMap<res_accountdoctor, PerDataAccountBaisc>();
...
...
@@ -187,7 +187,8 @@ public AutoMapperConfigs()
CreateMap
<
ag_tempitem
,
HeadItem
>();
CreateMap
<
ag_workload
,
HeadItem
>()
.
ForMember
(
dest
=>
dest
.
FiledId
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemId
))
.
ForMember
(
dest
=>
dest
.
FiledName
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemName
));
.
ForMember
(
dest
=>
dest
.
FiledName
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemName
))
.
ForMember
(
dest
=>
dest
.
WorkType
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
WorkTypeId
));
CreateMap
<
ag_fixatitem
,
BodyItem
>()
.
ForMember
(
dest
=>
dest
.
FiledName
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemName
))
.
ForMember
(
dest
=>
dest
.
Value
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ItemValue
));
...
...
performance/Performance.DtoModels/Enum.cs
View file @
fe31cb71
...
...
@@ -81,4 +81,16 @@ public enum AllotStates
[
Description
(
"数据验证通过"
)]
GenerateAccomplish
=
10
,
}
public
enum
AgWorkloadType
{
/// <summary>
/// 单项奖励
/// </summary>
SingleAwards
=
1
,
/// <summary>
/// 工作量
/// </summary>
Workload
=
2
,
}
}
performance/Performance.DtoModels/Request/WorkloadRequest.cs
View file @
fe31cb71
...
...
@@ -41,6 +41,11 @@ public class WorkloadRequest
///
/// </summary>
public
Nullable
<
decimal
>
Sort
{
get
;
set
;
}
/// <summary>
/// 1、工作量 2、其他
/// </summary>
public
int
WorkTypeId
{
get
;
set
;
}
}
public
class
WorkloadRequestValidator
:
AbstractValidator
<
WorkloadRequest
>
{
...
...
performance/Performance.DtoModels/Response/AllotResponse.cs
View file @
fe31cb71
...
...
@@ -65,6 +65,11 @@ public class AllotResponse
public
int
HasConfig
{
get
;
set
;
}
/// <summary>
/// 1、人事科提交重新生成
/// </summary>
public
int
Generate
{
get
;
set
;
}
/// <summary>
/// 0 不显示 1 显示
/// </summary>
public
int
ShowFormula
{
get
;
set
;
}
...
...
performance/Performance.DtoModels/Response/SecondResponse.cs
View file @
fe31cb71
...
...
@@ -10,7 +10,7 @@ public class SecondResponse
public
List
<
BodyItem
>
BodyItems
{
get
;
set
;
}
}
public
class
HeadItem
public
class
HeadItem
:
ICloneable
{
public
string
FiledId
{
get
;
set
;
}
public
string
FiledName
{
get
;
set
;
}
...
...
@@ -20,6 +20,14 @@ public class HeadItem
public
int
SourceType
{
get
;
set
;
}
/// <summary> 1 带出历史数据 2不带出 </summary>
public
Nullable
<
int
>
IsBring
{
get
;
set
;
}
/// <summary> 1 value相加值为1 </summary>
public
Nullable
<
int
>
SpecialAttr
{
get
;
set
;
}
public
Nullable
<
int
>
WorkType
{
get
;
set
;
}
public
object
Clone
()
{
return
MemberwiseClone
();
}
}
public
class
BodyItem
:
HeadItem
...
...
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
View file @
fe31cb71
...
...
@@ -38,6 +38,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public
virtual
DbSet
<
ag_usetemp
>
ag_usetemp
{
get
;
set
;
}
/// <summary> 二次绩效工作量绩效 </summary>
public
virtual
DbSet
<
ag_workload
>
ag_workload
{
get
;
set
;
}
/// <summary> </summary>
public
virtual
DbSet
<
ag_workload_type
>
ag_workload_type
{
get
;
set
;
}
/// <summary> 考核类别 </summary>
public
virtual
DbSet
<
as_assess
>
as_assess
{
get
;
set
;
}
/// <summary> 考核列头 </summary>
...
...
performance/Performance.EntityModels/Entity/ag_fixatitem.cs
View file @
fe31cb71
...
...
@@ -70,5 +70,10 @@ public class ag_fixatitem
/// 1 自动带出 2 计算得出
/// </summary>
public
Nullable
<
int
>
SourceType
{
get
;
set
;
}
/// <summary>
/// 1 value相加值为1
/// </summary>
public
Nullable
<
int
>
SpecialAttr
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/ag_tempitem.cs
View file @
fe31cb71
...
...
@@ -55,5 +55,10 @@ public class ag_tempitem
/// 1 带出历史数据 2不带出
/// </summary>
public
Nullable
<
int
>
IsBring
{
get
;
set
;
}
/// <summary>
/// 1 value相加值为1
/// </summary>
public
Nullable
<
int
>
SpecialAttr
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/ag_workload.cs
View file @
fe31cb71
...
...
@@ -55,5 +55,10 @@ public class ag_workload
///
/// </summary>
public
Nullable
<
decimal
>
Sort
{
get
;
set
;
}
/// <summary>
/// 1、单项奖励 2、工作量占比 ..(自定义占比)
/// </summary>
public
int
WorkTypeId
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/ag_workload_type.cs
0 → 100644
View file @
fe31cb71
//-----------------------------------------------------------------------
// <copyright file=" ag_workload_type.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using
System
;
using
System.ComponentModel.DataAnnotations
;
using
System.ComponentModel.DataAnnotations.Schema
;
namespace
Performance.EntityModels
{
/// <summary>
///
/// </summary>
[
Table
(
"ag_workload_type"
)]
public
class
ag_workload_type
{
/// <summary>
///
/// </summary>
[
Key
]
public
int
Id
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
int
HospitalId
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
string
TypeName
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/im_accountbasic.cs
View file @
fe31cb71
...
...
@@ -105,17 +105,17 @@ public class im_accountbasic
/// 其他绩效2
/// </summary>
public
Nullable
<
decimal
>
DoctorOtherPerfor2
{
get
;
set
;
}
/// <summary>
/// 药占比奖罚
/// </summary>
public
Nullable
<
decimal
>
MedicineExtra
{
get
;
set
;
}
/// <summary>
/// 材料占比奖罚
/// </summary>
public
Nullable
<
decimal
>
MaterialsExtra
{
get
;
set
;
}
/// <summary>
/// 医院奖罚
/// </summary>
...
...
performance/Performance.EntityModels/Entity/per_allot.cs
View file @
fe31cb71
...
...
@@ -80,7 +80,7 @@ public class per_allot
/// 是否在抽取数据0 否、1 是、2 抽取成功、3 抽取失败
/// </summary>
public
Nullable
<
int
>
IsExtracting
{
get
;
set
;
}
/// <summary>
/// 1、人事科提交重新生成
/// </summary>
...
...
performance/Performance.EntityModels/Entity/per_budget_amount.cs
View file @
fe31cb71
...
...
@@ -25,12 +25,12 @@ public class per_budget_amount
///
/// </summary>
public
int
HospitalId
{
get
;
set
;
}
/// <summary>
/// 根据该年份测算下一年
/// </summary>
public
int
MainYear
{
get
;
set
;
}
/// <summary>
/// 实际年份、预算年份
/// </summary>
...
...
performance/Performance.EntityModels/Entity/per_budget_ratio.cs
View file @
fe31cb71
...
...
@@ -25,12 +25,12 @@ public class per_budget_ratio
///
/// </summary>
public
int
HospitalId
{
get
;
set
;
}
/// <summary>
/// 根据该年份测算下一年
/// </summary>
public
int
MainYear
{
get
;
set
;
}
/// <summary>
/// 实际年份、预算年份
/// </summary>
...
...
performance/Performance.EntityModels/Entity/per_budget_result.cs
View file @
fe31cb71
...
...
@@ -140,22 +140,22 @@ public class per_budget_result
/// 成本合计实际比例
/// </summary>
public
Nullable
<
decimal
>
TheCostCombinedRatio
{
get
;
set
;
}
/// <summary>
/// 人员经费(不含绩效)
/// </summary>
public
Nullable
<
decimal
>
NoPerformanceExpenditure
{
get
;
set
;
}
/// <summary>
/// 人员经费(不含绩效)实际比例
/// </summary>
public
Nullable
<
decimal
>
NoPerformanceExpenditureRatio
{
get
;
set
;
}
/// <summary>
/// 1.初始 2.
确认使用发放/调节系数 3.取消使用
/// 1.初始 2.
确认使用发放/调节系数
/// </summary>
public
int
States
{
get
;
set
;
}
/// <summary>
///
/// </summary>
...
...
performance/Performance.EntityModels/Entity/res_account.cs
View file @
fe31cb71
...
...
@@ -100,17 +100,17 @@ public class res_account
/// 其他绩效2
/// </summary>
public
Nullable
<
decimal
>
OtherPerfor2
{
get
;
set
;
}
/// <summary>
/// 药占比奖罚
/// </summary>
public
Nullable
<
decimal
>
MedicineExtra
{
get
;
set
;
}
/// <summary>
/// 材料占比奖罚
/// </summary>
public
Nullable
<
decimal
>
MaterialsExtra
{
get
;
set
;
}
/// <summary>
/// 医院奖罚
/// </summary>
...
...
performance/Performance.Repository/PerforCofdirectorRepository.cs
View file @
fe31cb71
...
...
@@ -43,6 +43,25 @@ public int DeleteData(int allotId)
return
Execute
(
sql
,
new
{
allotId
});
}
public
int
DeleteResData
(
int
allotId
)
{
List
<
string
>
tableArray
=
new
List
<
string
>
{
"res_account"
,
"res_accountdoctor"
,
"res_accountnurse"
,
"res_baiscnorm"
,
"res_compute"
,
"res_specialunit"
,
"log_dbug"
,
};
string
sql
=
""
;
tableArray
.
ForEach
(
t
=>
sql
+=
$"delete from
{
t
}
where allotid=@allotId;"
);
sql
+=
"delete from per_sheet where allotid=@allotId and source=2;"
;
return
Execute
(
sql
,
new
{
allotId
});
}
public
int
DelAgain
(
int
againid
)
{
List
<
string
>
tableArray
=
new
List
<
string
>
...
...
performance/Performance.Repository/PerforPerAllotRepository.cs
View file @
fe31cb71
...
...
@@ -20,11 +20,14 @@ namespace Performance.Repository
/// </summary>
public
partial
class
PerforPerallotRepository
:
PerforRepository
<
per_allot
>
{
public
bool
UpdateAllotStates
(
int
allotId
,
int
states
,
string
remark
)
public
bool
UpdateAllotStates
(
int
allotId
,
int
states
,
string
remark
,
bool
success
)
{
var
allot
=
GetEntity
(
t
=>
t
.
ID
==
allotId
);
allot
.
States
=
states
;
allot
.
Remark
=
remark
;
if
(
success
&&
allot
.
Generate
==
1
)
allot
.
Generate
=
2
;
return
Update
(
allot
);
}
...
...
performance/Performance.Repository/Repository/PerforAgworkloadtypeRepository.cs
0 → 100644
View file @
fe31cb71
//-----------------------------------------------------------------------
// <copyright file=" ag_workload_type.cs">
// * FileName: ag_workload_type.cs
// </copyright>
//-----------------------------------------------------------------------
using
System
;
using
Performance.EntityModels
;
namespace
Performance.Repository
{
/// <summary>
/// ag_workload_type Repository
/// </summary>
public
partial
class
PerforAgworkloadtypeRepository
:
PerforRepository
<
ag_workload_type
>
{
public
PerforAgworkloadtypeRepository
(
PerformanceDbContext
context
)
:
base
(
context
)
{
}
}
}
performance/Performance.Services/AllotCompute/QueryDataService.cs
0 → 100644
View file @
fe31cb71
using
AutoMapper
;
using
Microsoft.EntityFrameworkCore.Internal
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
Performance.Repository
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
namespace
Performance.Services.AllotCompute
{
public
class
QueryDataService
:
IAutoInjection
{
private
readonly
LogManageService
logManageService
;
private
readonly
PerforPersheetRepository
persheetRepository
;
private
readonly
PerforImemployeeRepository
imemployeeRepository
;
private
readonly
PerforImemployeeclinicRepository
imemployeeclinicRepository
;
private
readonly
PerforImaccountbasicRepository
imaccountbasicRepository
;
private
readonly
PerforImspecialunitRepository
imspecialunitRepository
;
private
readonly
PerforImdataRepository
imdataRepository
;
private
readonly
PerforImheaderRepository
imheaderRepository
;
public
QueryDataService
(
LogManageService
logManageService
,
PerforPersheetRepository
persheetRepository
,
PerforImemployeeRepository
imemployeeRepository
,
PerforImemployeeclinicRepository
imemployeeclinicRepository
,
PerforImaccountbasicRepository
imaccountbasicRepository
,
PerforImspecialunitRepository
imspecialunitRepository
,
PerforImdataRepository
imdataRepository
,
PerforImheaderRepository
imheaderRepository
)
{
this
.
logManageService
=
logManageService
;
this
.
persheetRepository
=
persheetRepository
;
this
.
imemployeeRepository
=
imemployeeRepository
;
this
.
imemployeeclinicRepository
=
imemployeeclinicRepository
;
this
.
imaccountbasicRepository
=
imaccountbasicRepository
;
this
.
imspecialunitRepository
=
imspecialunitRepository
;
this
.
imdataRepository
=
imdataRepository
;
this
.
imheaderRepository
=
imheaderRepository
;
}
public
PerExcel
QueryDataAndHeader
(
per_allot
allot
)
{
var
sheetTypes
=
new
List
<
int
>
{
(
int
)
SheetType
.
Employee
,
(
int
)
SheetType
.
Income
,
(
int
)
SheetType
.
OtherIncome
,
(
int
)
SheetType
.
Expend
,
(
int
)
SheetType
.
Overtime
,
(
int
)
SheetType
.
Workload
,
(
int
)
SheetType
.
SpecialUnit
,
(
int
)
SheetType
.
AccountBasic
,
(
int
)
SheetType
.
ClinicEmployee
,
};
var
sheets
=
persheetRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
&&
sheetTypes
.
Contains
(
t
.
SheetType
.
Value
));
return
Query
(
sheets
,
allot
.
ID
);
}
private
PerExcel
Query
(
List
<
per_sheet
>
sheets
,
int
allotId
)
{
if
(
sheets
==
null
||
!
sheets
.
Any
())
throw
new
Exception
(
"未查询到数据"
);
var
allheader
=
imheaderRepository
.
GetEntities
(
t
=>
sheets
.
Select
(
s
=>
s
.
ID
).
Contains
(
t
.
SheetID
.
Value
));
if
(
allheader
==
null
||
!
allheader
.
Any
())
throw
new
Exception
(
"未获取到列"
);
var
perExcel
=
new
PerExcel
{
PerSheet
=
new
List
<
PerSheet
>()
};
sheets
.
ForEach
(
t
=>
{
perExcel
.
PerSheet
.
Add
(
new
PerSheet
{
SheetName
=
t
.
SheetName
,
SheetType
=
(
SheetType
)
t
.
SheetType
,
PerData
=
new
List
<
IPerData
>(),
PerHeader
=
new
List
<
PerHeader
>()
});
;
});
foreach
(
var
sheet
in
perExcel
.
PerSheet
)
{
var
imSheet
=
sheets
.
FirstOrDefault
(
t
=>
t
.
SheetName
==
sheet
.
SheetName
&&
t
.
SheetType
==
(
int
)
sheet
.
SheetType
);
logManageService
.
WriteMsg
(
"获取基础数据"
,
$"开始查询数据 --
{
sheet
.
SheetName
}
"
,
1
,
allotId
,
"ReceiveMessage"
,
true
);
if
(
sheet
.
SheetType
==
SheetType
.
Employee
)
{
QueryHeader
(
allotId
,
imSheet
.
ID
,
allheader
,
sheet
);
QueryEmployee
(
allotId
,
imSheet
.
ID
,
sheet
);
}
else
if
(
sheet
.
SheetType
==
SheetType
.
ClinicEmployee
)
{
QueryHeader
(
allotId
,
imSheet
.
ID
,
allheader
,
sheet
);
QueryClinicEmployee
(
allotId
,
imSheet
.
ID
,
sheet
);
}
else
if
(
sheet
.
SheetType
==
SheetType
.
AccountBasic
)
{
QueryHeader
(
allotId
,
imSheet
.
ID
,
allheader
,
sheet
);
QueryAccountBasic
(
allotId
,
imSheet
.
ID
,
sheet
);
}
else
if
(
sheet
.
SheetType
==
SheetType
.
SpecialUnit
)
{
QueryHeader
(
allotId
,
imSheet
.
ID
,
allheader
,
sheet
);
QuerySpecialUnit
(
allotId
,
imSheet
.
ID
,
sheet
);
}
else
{
QueryHeader
(
allotId
,
imSheet
.
ID
,
allheader
,
sheet
);
QueryCommon
(
allotId
,
imSheet
.
ID
,
sheet
);
}
}
logManageService
.
WriteMsg
(
"保存基础数据"
,
$"基础数据保存完成!"
,
1
,
allotId
,
"ReceiveMessage"
,
true
);
return
perExcel
;
}
private
void
QueryEmployee
(
int
allotId
,
int
sheetId
,
PerSheet
sheet
)
{
var
data
=
imemployeeRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
&&
t
.
SheetID
==
sheetId
);
var
sheetData
=
Mapper
.
Map
<
List
<
PerDataEmployee
>>(
data
);
if
(
sheetData
!=
null
&&
sheetData
.
Any
())
sheet
.
PerData
.
AddRange
(
sheetData
);
}
private
void
QueryClinicEmployee
(
int
allotId
,
int
sheetId
,
PerSheet
sheet
)
{
var
data
=
imemployeeclinicRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
&&
t
.
SheetID
==
sheetId
);
var
sheetData
=
Mapper
.
Map
<
List
<
PerDataClinicEmployee
>>(
data
);
if
(
sheetData
!=
null
&&
sheetData
.
Any
())
sheet
.
PerData
.
AddRange
(
sheetData
);
}
private
void
QueryAccountBasic
(
int
allotId
,
int
sheetId
,
PerSheet
sheet
)
{
var
data
=
imaccountbasicRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
&&
t
.
SheetID
==
sheetId
);
var
sheetData
=
Mapper
.
Map
<
List
<
PerDataAccountBaisc
>>(
data
);
if
(
sheetData
!=
null
&&
sheetData
.
Any
())
sheet
.
PerData
.
AddRange
(
sheetData
);
}
private
void
QuerySpecialUnit
(
int
allotId
,
int
sheetId
,
PerSheet
sheet
)
{
var
data
=
imspecialunitRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
&&
t
.
SheetID
==
sheetId
);
var
sheetData
=
Mapper
.
Map
<
List
<
PerDataSpecialUnit
>>(
data
);
if
(
sheetData
!=
null
&&
sheetData
.
Any
())
sheet
.
PerData
.
AddRange
(
sheetData
);
}
private
void
QueryCommon
(
int
allotId
,
int
sheetId
,
PerSheet
sheet
)
{
var
data
=
imdataRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
&&
t
.
SheetID
==
sheetId
);
var
sheetData
=
Mapper
.
Map
<
List
<
PerData
>>(
data
);
if
(
sheetData
!=
null
&&
sheetData
.
Any
())
sheet
.
PerData
.
AddRange
(
sheetData
);
}
private
void
QueryHeader
(
int
allotId
,
int
sheetId
,
List
<
im_header
>
allheader
,
PerSheet
sheet
)
{
var
perHeaders
=
new
List
<
PerHeader
>();
var
headers
=
allheader
.
Where
(
t
=>
(
t
.
ParentID
??
0
)
==
0
&&
t
.
SheetID
==
sheetId
).
ToList
();
sheet
.
PerHeader
=
GetHeaderAndChild
(
headers
,
allheader
,
perHeaders
);
}
private
List
<
PerHeader
>
GetHeaderAndChild
(
List
<
im_header
>
headers
,
List
<
im_header
>
allheaders
,
List
<
PerHeader
>
perHeaders
)
{
foreach
(
var
header
in
headers
)
{
var
perHeader
=
Mapper
.
Map
<
PerHeader
>(
header
);
var
children
=
allheaders
.
Where
(
t
=>
t
.
ParentID
==
header
.
ID
);
if
(
children
!=
null
&&
children
.
Any
())
{
perHeader
.
Children
=
GetHeaderAndChild
(
children
.
ToList
(),
allheaders
,
perHeaders
);
}
perHeaders
.
Add
(
perHeader
);
}
return
perHeaders
;
}
}
}
performance/Performance.Services/AllotService.cs
View file @
fe31cb71
...
...
@@ -41,6 +41,7 @@ public class AllotService : IAutoInjection
//private readonly IHubContext<AllotLogHub> hubContext;
private
readonly
LogManageService
logManageService
;
private
readonly
ReportService
reportService
;
private
readonly
QueryDataService
queryDataService
;
public
AllotService
(
PerforPerallotRepository
allotRepository
,
BaiscNormService
baiscNormService
,
...
...
@@ -61,7 +62,8 @@ public class AllotService : IAutoInjection
//IHubContext<AllotLogHub> hubContext
LogManageService
logManageService
,
ReportService
reportService
,
PerforCofdirectorRepository
perforCofdirectorRepository
)
PerforCofdirectorRepository
perforCofdirectorRepository
,
QueryDataService
queryDataService
)
{
_allotRepository
=
allotRepository
;
_againallotRepository
=
againallotRepository
;
...
...
@@ -84,6 +86,7 @@ public class AllotService : IAutoInjection
this
.
logManageService
=
logManageService
;
this
.
reportService
=
reportService
;
this
.
perforCofdirectorRepository
=
perforCofdirectorRepository
;
this
.
queryDataService
=
queryDataService
;
}
#
region
基础功能
...
...
@@ -240,9 +243,9 @@ public bool Update(per_allot allot)
}
#
endregion
public
void
UpdateAllotStates
(
int
allotId
,
int
states
,
string
remark
)
public
void
UpdateAllotStates
(
int
allotId
,
int
states
,
string
remark
,
bool
success
=
false
)
{
_allotRepository
.
UpdateAllotStates
(
allotId
,
states
,
remark
);
_allotRepository
.
UpdateAllotStates
(
allotId
,
states
,
remark
,
success
);
}
public
per_allot
UpdateAllotShowFormula
(
int
allotId
)
...
...
@@ -266,20 +269,28 @@ public void Generate(per_allot allot, string mail)
try
{
logManageService
.
WriteMsg
(
"绩效开始执行"
,
$"正在生成
{
allot
.
Year
}
-
{
allot
.
Month
.
ToString
().
PadLeft
(
2
,
'0'
)}
月份绩效!"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
configService
.
Clear
(
allot
.
ID
);
// 导出数据
var
excel
=
importDataService
.
ReadDataAndSave
(
allot
);
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InCheckData
,
EnumHelper
.
GetDescription
(
AllotStates
.
InCheckData
));
if
(!
checkDataService
.
Check
(
excel
,
allot
))
var
excel
=
new
PerExcel
();
if
(
allot
.
Generate
==
1
)
{
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
CheckFail
,
EnumHelper
.
GetDescription
(
AllotStates
.
CheckFail
));
//SendEmail(allot, mail, 3, time);
logManageService
.
WriteMsg
(
"绩效数据校验失败"
,
"详情可至“更多 -- 查看日志”查看"
,
3
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
return
;
configService
.
ClearResData
(
allot
.
ID
);
excel
=
queryDataService
.
QueryDataAndHeader
(
allot
);
}
else
{
configService
.
Clear
(
allot
.
ID
);
// 导出数据
excel
=
importDataService
.
ReadDataAndSave
(
allot
);
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InCheckData
,
EnumHelper
.
GetDescription
(
AllotStates
.
InCheckData
));
if
(!
checkDataService
.
Check
(
excel
,
allot
))
{
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
CheckFail
,
EnumHelper
.
GetDescription
(
AllotStates
.
CheckFail
));
//SendEmail(allot, mail, 3, time);
logManageService
.
WriteMsg
(
"绩效数据校验失败"
,
"详情可至“更多 -- 查看日志”查看"
,
3
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
return
;
}
}
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InGenerate
,
EnumHelper
.
GetDescription
(
AllotStates
.
InGenerate
));
//保底绩效计算需分两次进行;
...
...
@@ -340,7 +351,7 @@ public void Generate(per_allot allot, string mail)
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存绩效人均参考标准"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
perforResbaiscnormRepository
.
AddRange
(
baiscnormList
.
ToArray
());
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateAccomplish
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateAccomplish
));
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateAccomplish
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateAccomplish
)
,
true
);
perforCofdirectorRepository
.
SupplementaryData
(
allot
.
ID
);
logManageService
.
WriteMsg
(
"正在生成报表数据"
,
"正在生成报表数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
...
...
performance/Performance.Services/ConfigService.cs
View file @
fe31cb71
...
...
@@ -575,6 +575,16 @@ public void Clear(int allotId)
}
/// <summary>
/// 清除核算数据
/// </summary>
/// <param name="allotId"></param>
public
void
ClearResData
(
int
allotId
)
{
var
count
=
_directorRepository
.
DeleteResData
(
allotId
);
logManageService
.
WriteMsg
(
"清理无效数据"
,
$"清理无效数据,受影响行数:
{
count
}
"
,
1
,
allotId
,
"ReceiveMessage"
,
true
);
}
/// <summary>
/// 清除二次绩效中无效数据
/// </summary>
/// <param name="againId"></param>
...
...
performance/Performance.Services/EmployeeService.cs
View file @
fe31cb71
...
...
@@ -245,5 +245,20 @@ public bool DeleteClinic(im_employee_clinic request)
}
#
endregion
/// <summary>
/// 人事科修改后提交状态
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
public
bool
Audit
(
int
allotId
)
{
var
allot
=
perforPerallotRepository
.
GetEntity
(
t
=>
t
.
ID
==
allotId
);
if
(
allot
==
null
||
!
new
List
<
int
>
{
(
int
)
AllotStates
.
GenerateSucceed
,
(
int
)
AllotStates
.
Archive
}.
Contains
(
allot
.
States
))
throw
new
PerformanceException
(
"绩效信息错误"
);
allot
.
Generate
=
1
;
return
perforPerallotRepository
.
Update
(
allot
);
}
}
}
performance/Performance.Services/PerExcelService/NopiSevice.cs
View file @
fe31cb71
...
...
@@ -19,11 +19,11 @@ public static string GetCellStringValue(ICell cell)
switch
(
cell
.
CellType
)
{
case
CellType
.
Numeric
:
return
cell
.
NumericCellValue
.
ToString
();
return
cell
.
NumericCellValue
.
ToString
()
.
Replace
(
"0"
,
""
)
;
case
CellType
.
String
:
return
cell
.
StringCellValue
.
ToString
();
return
cell
.
StringCellValue
.
ToString
()
.
Replace
(
"0"
,
""
)
;
case
CellType
.
Formula
:
return
cell
.
NumericCellValue
.
ToString
();
return
cell
.
NumericCellValue
.
ToString
()
.
Replace
(
"0"
,
""
)
;
}
}
catch
(
Exception
ex
)
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadBillIncome.cs
View file @
fe31cb71
...
...
@@ -75,8 +75,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{
RowNumber
=
r
,
SignID
=
athead
.
SignID
,
AccountingUnit
=
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
)?.
StringCellValue
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
StringCellValue
,
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
))
,
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
))
,
TypeName
=
athead
?.
CellValue
,
CellValue
=
cellValue
,
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadClinicEmployee.cs
View file @
fe31cb71
...
...
@@ -54,9 +54,9 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{
RowNumber
=
r
,
UnitType
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元分类"
).
PointCell
)?.
StringCellValue
,
AccountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
)?.
StringCellValue
,
Department
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
)?.
StringCellValue
,
PersonnelNumber
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"人员工号"
).
PointCell
)?.
StringCellValue
,
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
))
,
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
))
,
PersonnelNumber
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"人员工号"
).
PointCell
))
,
DoctorName
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"医生姓名"
).
PointCell
)?.
StringCellValue
,
JobTitle
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"职务分类"
).
PointCell
)?.
StringCellValue
,
Basics
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"基础绩效系数"
).
PointCell
)?.
NumericCellValue
),
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadDeptAccounting.cs
View file @
fe31cb71
...
...
@@ -56,8 +56,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
PerDataAccountBaisc
unifyUnit
=
new
PerDataAccountBaisc
();
unifyUnit
.
RowNumber
=
r
;
unifyUnit
.
UnitType
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元类型"
).
PointCell
)?.
StringCellValue
;
unifyUnit
.
AccountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
)?.
StringCellValue
;
unifyUnit
.
Department
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"科室名称"
).
PointCell
)?.
StringCellValue
;
unifyUnit
.
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
))
;
unifyUnit
.
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"科室名称"
).
PointCell
))
;
unifyUnit
.
PermanentStaff
=
ConvertHelper
.
To
<
decimal
>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"效率绩效人数"
).
PointCell
)?.
NumericCellValue
);
unifyUnit
.
ManagerNumber
=
ConvertHelper
.
To
<
decimal
>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"科主任/护士长人数"
).
PointCell
)?.
NumericCellValue
);
unifyUnit
.
Number
=
ConvertHelper
.
To
<
decimal
>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元人员数量"
).
PointCell
)?.
NumericCellValue
);
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadDeptAccountingSpecial.cs
View file @
fe31cb71
...
...
@@ -53,21 +53,23 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{
RowNumber
=
r
,
SignID
=
athead
.
SignID
,
AccountingUnit
=
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
)?.
StringCellValue
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
StringCellValue
,
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
))
,
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
))
,
TypeName
=
athead
?.
CellValue
,
CellValue
=
cellValue
,
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
UnitType
=
row
.
GetCell
(
0
).
ToString
(),
UnitType
=
row
.
GetCell
(
0
)
?
.
ToString
(),
FactorValue
=
0
,
IsFactor
=
false
,
};
if
(
sheet
.
SheetName
.
Contains
(
"医生组"
))
data
.
UnitType
=
"医生组"
;
else
if
(
sheet
.
SheetName
.
Contains
(
"护理组"
))
data
.
UnitType
=
"护理组"
;
dataList
.
Add
(
data
);
if
(!
string
.
IsNullOrEmpty
(
data
.
UnitType
))
dataList
.
Add
(
data
);
}
}
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadEmployee.cs
View file @
fe31cb71
...
...
@@ -55,9 +55,9 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
PerDataEmployee
employee
=
new
PerDataEmployee
{
RowNumber
=
r
,
AccountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
)?.
StringCellValue
,
Department
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
)?.
StringCellValue
,
PersonnelNumber
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"人员工号"
).
PointCell
)?.
StringCellValue
,
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
))
,
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"核算单元"
).
PointCell
))
,
PersonnelNumber
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"人员工号"
).
PointCell
))
,
DoctorName
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"医生姓名"
).
PointCell
)?.
StringCellValue
,
JobTitle
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"职务分类"
).
PointCell
)?.
StringCellValue
,
FitPeople
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"绩效基数核算参考对象"
).
PointCell
)?.
StringCellValue
,
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadExpend.cs
View file @
fe31cb71
...
...
@@ -78,8 +78,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{
RowNumber
=
r
,
SignID
=
athead
.
SignID
,
AccountingUnit
=
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
)?.
StringCellValue
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
StringCellValue
,
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
))
,
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
))
,
TypeName
=
athead
?.
CellValue
,
CellValue
=
cellValue
,
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
...
...
@@ -90,6 +90,9 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
var
lastcell
=
vhead
.
OrderByDescending
(
t
=>
t
.
PointCell
).
First
();
if
(
lastcell
.
CellValue
.
Contains
(
"备注"
))
data
.
Remark
=
row
.
GetCell
(
lastcell
.
PointCell
)?.
StringCellValue
;
if
(
string
.
IsNullOrEmpty
(
data
.
AccountingUnit
)
&&
string
.
IsNullOrEmpty
(
data
.
Department
))
continue
;
dataList
.
Add
(
data
);
}
}
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadIncome.cs
View file @
fe31cb71
...
...
@@ -82,6 +82,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
FactorValue
=
ConvertHelper
.
To
<
decimal
?>(
sheet
.
GetRow
(
unit
.
FactorRow
.
Value
).
GetCell
(
athead
.
PointCell
)?.
NumericCellValue
),
IsFactor
=
true
,
};
if
(
string
.
IsNullOrEmpty
(
data
.
AccountingUnit
)
&&
string
.
IsNullOrEmpty
(
data
.
Department
))
continue
;
dataList
.
Add
(
data
);
}
}
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadOtherIncome.cs
View file @
fe31cb71
...
...
@@ -73,8 +73,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{
RowNumber
=
r
,
SignID
=
athead
.
SignID
,
AccountingUnit
=
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
)?.
StringCellValue
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
StringCellValue
,
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
))
,
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
))
,
TypeName
=
athead
?.
CellValue
,
CellValue
=
cellValue
,
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
...
...
@@ -82,6 +82,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
FactorValue
=
ConvertHelper
.
To
<
decimal
?>(
sheet
.
GetRow
(
unit
.
FactorRow
.
Value
).
GetCell
(
athead
.
PointCell
)?.
NumericCellValue
),
IsFactor
=
true
,
};
if
(
string
.
IsNullOrEmpty
(
data
.
AccountingUnit
)
&&
string
.
IsNullOrEmpty
(
data
.
Department
))
continue
;
dataList
.
Add
(
data
);
}
}
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadSpecialUnit.cs
View file @
fe31cb71
...
...
@@ -57,7 +57,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
QuantitativeIndicatorsValue
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"量化指标绩效分值"
).
PointCell
)?.
NumericCellValue
),
};
var
cell
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
CellValue
==
"科室"
).
PointCell
);
//?.ToString();
var
accountingUnit
=
cell
?.
StringCellValue
;
var
accountingUnit
=
NopiSevice
.
GetCellStringValue
(
cell
)
;
if
(
cell
!=
null
&&
IsMergeCell
(
cell
,
out
Point
start
,
out
Point
end
)
&&
r
!=
start
.
X
)
{
row
=
sheet
.
GetRow
(
start
.
X
);
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadWorkload.cs
View file @
fe31cb71
...
...
@@ -54,8 +54,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{
RowNumber
=
r
,
SignID
=
athead
.
SignID
,
AccountingUnit
=
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
)?.
StringCellValue
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
StringCellValue
,
AccountingUnit
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
AccountingUnitCellNum
.
Value
))
,
Department
=
NopiSevice
.
GetCellStringValue
(
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
))
,
TypeName
=
athead
?.
CellValue
,
CellValue
=
cellValue
,
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
...
...
@@ -68,6 +68,8 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
else
if
(
sheet
.
SheetName
.
Contains
(
"护理组"
))
data
.
UnitType
=
"护理组"
;
if
(
string
.
IsNullOrEmpty
(
data
.
AccountingUnit
)
&&
string
.
IsNullOrEmpty
(
data
.
Department
))
continue
;
dataList
.
Add
(
data
);
}
}
...
...
performance/Performance.Services/SecondAllotService.cs
View file @
fe31cb71
This diff is collapsed.
Click to expand it.
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