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
cadb9048
Commit
cadb9048
authored
May 27, 2020
by
lcx
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'sec_work' into 科室取值
# Conflicts: # performance/Performance.Services/SecondAllotService.cs
parents
468c038c
a9fa0b60
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
426 additions
and
22 deletions
+426
-22
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
+39
-1
performance/Performance.DtoModels/Enum.cs
+12
-0
performance/Performance.DtoModels/Request/WorkloadRequest.cs
+7
-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_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/Repository/PerforAgworkloadtypeRepository.cs
+20
-0
performance/Performance.Services/SecondAllotService.cs
+178
-5
No files found.
performance/Performance.Api/Controllers/SecondAllotController.cs
View file @
cadb9048
...
...
@@ -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/single/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 @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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>
考核类别
...
...
@@ -2854,7 +2892,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/Enum.cs
View file @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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
>
{
...
...
@@ -52,6 +57,7 @@ public WorkloadRequestValidator()
RuleFor
(
x
=>
x
.
Department
).
NotNull
().
NotEmpty
();
RuleFor
(
x
=>
x
.
UnitType
).
NotNull
().
NotEmpty
();
RuleFor
(
x
=>
x
.
ItemName
).
NotNull
().
NotEmpty
();
RuleFor
(
x
=>
x
.
WorkTypeId
).
NotNull
().
GreaterThan
(
0
);
});
RuleSet
(
"Update"
,
()
=>
...
...
@@ -59,6 +65,7 @@ public WorkloadRequestValidator()
RuleFor
(
x
=>
x
.
Id
).
NotNull
().
GreaterThan
(
0
);
RuleFor
(
x
=>
x
.
HospitalId
).
NotNull
().
GreaterThan
(
0
);
RuleFor
(
x
=>
x
.
ItemName
).
NotNull
().
NotEmpty
();
RuleFor
(
x
=>
x
.
WorkTypeId
).
NotNull
().
GreaterThan
(
0
);
});
RuleSet
(
"Delete"
,
()
=>
...
...
performance/Performance.DtoModels/Response/SecondResponse.cs
View file @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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 @
cadb9048
//-----------------------------------------------------------------------
// <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 @
cadb9048
...
...
@@ -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_budget_amount.cs
View file @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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 @
cadb9048
...
...
@@ -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/Repository/PerforAgworkloadtypeRepository.cs
0 → 100644
View file @
cadb9048
//-----------------------------------------------------------------------
// <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/SecondAllotService.cs
View file @
cadb9048
...
...
@@ -7,6 +7,7 @@
using
Performance.Repository
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Immutable
;
using
System.Linq
;
using
System.Linq.Expressions
;
using
System.Text
;
...
...
@@ -30,6 +31,7 @@ public class SecondAllotService : IAutoInjection
private
readonly
PerforAgcomputeRepository
perforAgcomputeRepository
;
private
readonly
PerforCofagainRepository
perforCofagainRepository
;
private
readonly
PerforAgothersourceRepository
perforAgothersourceRepository
;
private
readonly
PerforAgworkloadtypeRepository
perforAgworkloadtypeRepository
;
private
readonly
PerforRoleRepository
roleRepository
;
private
readonly
List
<
ag_tempitem
>
tempitems
=
new
List
<
ag_tempitem
>();
...
...
@@ -48,6 +50,7 @@ public class SecondAllotService : IAutoInjection
PerforAgcomputeRepository
perforAgcomputeRepository
,
PerforCofagainRepository
perforCofagainRepository
,
PerforAgothersourceRepository
perforAgothersourceRepository
,
PerforAgworkloadtypeRepository
perforAgworkloadtypeRepository
,
PerforRoleRepository
roleRepository
)
{
this
.
application
=
application
.
Value
;
...
...
@@ -65,6 +68,7 @@ public class SecondAllotService : IAutoInjection
this
.
perforAgcomputeRepository
=
perforAgcomputeRepository
;
this
.
perforCofagainRepository
=
perforCofagainRepository
;
this
.
perforAgothersourceRepository
=
perforAgothersourceRepository
;
this
.
perforAgworkloadtypeRepository
=
perforAgworkloadtypeRepository
;
this
.
roleRepository
=
roleRepository
;
this
.
tempitems
=
perforAgtempitemRepository
.
GetEntities
();
}
...
...
@@ -303,6 +307,9 @@ public SecondResponse GetSecondDetail(UseTempRequest request)
//检验 二次绩效配置 数据是否 有值,无则补充带出
FillData
(
second
,
result
.
BodyItems
);
SupplyHeaderByWorkItem
(
request
,
result
);
return
new
SecondResponse
{
HeadItems
=
result
.
HeadItems
.
OrderBy
(
t
=>
t
.
Type
).
ThenBy
(
t
=>
t
.
Sort
).
ThenBy
(
t
=>
t
.
FiledName
).
ToList
(),
...
...
@@ -355,7 +362,8 @@ private List<BodyItem> GetBodyItems(List<ag_fixatitem> fixatitems, List<HeadItem
SourceType
=
t
.
SourceType
??
0
,
Type
=
t
.
Type
??
0
,
Value
=
t
.
ItemValue
,
Sort
=
t
.
Sort
??
0
Sort
=
t
.
Sort
??
0
,
SpecialAttr
=
t
.
SpecialAttr
??
headItems
.
FirstOrDefault
(
h
=>
h
.
FiledName
==
t
.
ItemName
&&
h
.
Type
==
t
.
Type
)?.
SpecialAttr
,
}).
ToList
();
}
// 删除多余的headvalue
...
...
@@ -363,8 +371,6 @@ private List<BodyItem> GetBodyItems(List<ag_fixatitem> fixatitems, List<HeadItem
return
bodyItems
;
}
/// <summary>
/// 补充须带出的历史数据,如姓名、职称等
/// </summary>
...
...
@@ -421,6 +427,85 @@ private void FillData(ag_secondallot second, List<BodyItem> bodyItems)
bodyItems
.
FirstOrDefault
(
t
=>
t
.
FiledName
==
item
.
Key
).
Value
=
item
.
Value
;
}
}
/// <summary>
/// 根绝添加工作量类型判断是否添加
/// </summary>
/// <param name="request"></param>
/// <param name="result"></param>
private
void
SupplyHeaderByWorkItem
(
UseTempRequest
request
,
SecondResponse
result
)
{
var
workitem
=
perforAgworkloadRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
request
.
HospitalId
&&
t
.
Department
==
request
.
Department
&&
t
.
UnitType
==
request
.
UnitType
&&
!
EnumHelper
.
GetItems
<
AgWorkloadType
>().
Select
(
type
=>
type
.
Value
).
Contains
(
t
.
WorkTypeId
));
if
(
workitem
==
null
||
!
workitem
.
Any
(
t
=>
t
.
Id
>
0
))
return
;
var
deptHeader
=
perforAgworkloadtypeRepository
.
GetEntities
(
t
=>
new
List
<
int
>
{
request
.
HospitalId
,
0
}.
Contains
(
t
.
HospitalId
));
if
(
deptHeader
==
null
||
!
deptHeader
.
Any
())
return
;
//不包含工作量绩效
if
(!
result
.
HeadItems
.
Select
(
t
=>
t
.
FiledId
).
Contains
(
"PerformanceShareTheWorkload"
))
return
;
var
maxSortValue
=
result
.
HeadItems
.
Where
(
t
=>
t
.
Type
==
1
).
Max
(
t
=>
t
.
Sort
);
var
headers
=
new
HeadItem
[]
{
new
HeadItem
{
FiledId
=
"ThePerformanceOf"
,
Type
=
1
,
SourceType
=
1
,
IsBring
=
2
,
SpecialAttr
=
1
,
},
new
HeadItem
{
FiledId
=
"ThePerformanceAmountOf"
,
Type
=
1
,
SourceType
=
1
,
IsBring
=
2
}
};
var
headerItems
=
new
List
<
HeadItem
>();
int
sortindex
=
1
;
foreach
(
var
item
in
deptHeader
)
{
if
(
item
.
HospitalId
==
0
)
continue
;
for
(
int
i
=
0
;
i
<
headers
.
Length
;
i
++)
{
var
headItem
=
(
HeadItem
)
headers
[
i
].
Clone
();
headItem
.
FiledName
=
(
i
%
2
==
0
)
?
item
.
TypeName
:
item
.
TypeName
.
Replace
(
"占比"
,
"金额"
);
headItem
.
FiledId
+=
item
.
Id
;
headItem
.
Sort
=
maxSortValue
+
sortindex
;
headItem
.
WorkType
=
item
.
Id
;
headerItems
.
Add
(
headItem
);
sortindex
++;
}
}
foreach
(
var
item
in
deptHeader
.
Where
(
t
=>
t
.
HospitalId
==
0
))
{
result
.
HeadItems
.
Where
(
t
=>
t
.
FiledName
==
item
.
TypeName
).
ToList
()?.
ForEach
(
t
=>
t
.
WorkType
=
item
.
Id
);
result
.
BodyItems
.
Where
(
t
=>
t
.
FiledName
==
item
.
TypeName
).
ToList
()?.
ForEach
(
t
=>
t
.
WorkType
=
item
.
Id
);
}
var
rownumber
=
result
.
BodyItems
.
Any
(
t
=>
t
.
RowNumber
==
-
1
)
?
-
1
:
0
;
foreach
(
var
item
in
headerItems
)
{
if
(!
result
.
HeadItems
.
Select
(
t
=>
t
.
FiledId
).
Contains
(
item
.
FiledId
))
{
result
.
HeadItems
.
Add
(
item
);
var
body
=
Mapper
.
Map
<
BodyItem
>(
item
);
body
.
RowNumber
=
rownumber
;
result
.
BodyItems
.
Add
(
body
);
}
}
}
#
endregion
/// <summary>
...
...
@@ -445,6 +530,7 @@ public bool SaveValue(List<ag_fixatitem> request)
cellItem
.
SourceType
=
item
.
SourceType
;
cellItem
.
Type
=
item
.
Type
;
cellItem
.
UnitType
=
item
.
UnitType
;
cellItem
.
SpecialAttr
=
item
.
SpecialAttr
;
perforAgfixatitemRepository
.
Update
(
cellItem
);
}
else
...
...
@@ -693,7 +779,8 @@ public void RefreshTemp(UseTempRequest request)
/// <returns></returns>
public
List
<
ag_workload
>
GetWorkloadList
(
WorkloadRequest
request
)
{
return
perforAgworkloadRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
request
.
HospitalId
&&
t
.
Department
==
request
.
Department
&&
t
.
UnitType
==
request
.
UnitType
);
return
perforAgworkloadRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
request
.
HospitalId
&&
t
.
Department
==
request
.
Department
&&
t
.
UnitType
==
request
.
UnitType
&&
t
.
WorkTypeId
!=
(
int
)
AgWorkloadType
.
SingleAwards
);
}
/// <summary>
...
...
@@ -714,6 +801,7 @@ public bool WorkloadAdd(WorkloadRequest request)
FactorValue
=
request
.
FactorValue
??
1
,
ItemName
=
request
.
ItemName
,
Sort
=
request
.
Sort
??
1
,
WorkTypeId
=
request
.
WorkTypeId
,
};
var
result
=
perforAgworkloadRepository
.
Add
(
workload
);
if
(
result
)
...
...
@@ -744,6 +832,7 @@ public bool WorkloadUpdate(WorkloadRequest request)
workload
.
ItemName
=
request
.
ItemName
;
workload
.
Sort
=
request
.
Sort
;
workload
.
ItemId
=
$"Feild
{
workload
.
Id
}
"
;
workload
.
WorkTypeId
=
request
.
WorkTypeId
;
return
perforAgworkloadRepository
.
Update
(
workload
);
}
...
...
@@ -759,6 +848,86 @@ public bool WorkloadDelete(int id)
return
perforAgworkloadRepository
.
Remove
(
workload
);
}
/// <summary>
/// 获取单行奖励列表
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
public
List
<
ag_workload
>
GetSingleList
(
WorkloadRequest
request
)
{
return
perforAgworkloadRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
request
.
HospitalId
&&
t
.
Department
==
request
.
Department
&&
t
.
UnitType
==
request
.
UnitType
&&
t
.
WorkTypeId
==
(
int
)
AgWorkloadType
.
SingleAwards
);
}
/// <summary>
/// 获取工作量类型列表
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
public
List
<
TitleValue
<
int
>>
WorkTypeList
(
WorkloadRequest
request
)
{
var
worktypes
=
perforAgworkloadtypeRepository
.
GetEntities
(
t
=>
new
List
<
int
>
{
0
,
request
.
HospitalId
.
Value
}.
Contains
(
t
.
HospitalId
));
if
(
worktypes
!=
null
&&
worktypes
.
Any
())
{
return
worktypes
.
Select
(
t
=>
new
TitleValue
<
int
>
{
Title
=
t
.
TypeName
,
Value
=
t
.
Id
}).
ToList
();
}
return
null
;
}
/// <summary>
/// 保存工作量类型
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
public
ag_workload_type
SaveWorkType
(
ag_workload_type
request
)
{
var
entity
=
perforAgworkloadtypeRepository
.
GetEntity
(
t
=>
new
List
<
int
>
{
0
,
request
.
HospitalId
}.
Contains
(
t
.
HospitalId
)
&&
t
.
TypeName
==
request
.
TypeName
);
if
(
entity
==
null
)
{
if
(
request
.
Id
>
0
)
{
entity
=
perforAgworkloadtypeRepository
.
GetEntity
(
t
=>
t
.
Id
==
request
.
Id
);
entity
.
HospitalId
=
request
.
HospitalId
;
entity
.
TypeName
=
request
.
TypeName
;
perforAgworkloadtypeRepository
.
Update
(
entity
);
}
else
{
entity
=
new
ag_workload_type
{
HospitalId
=
request
.
HospitalId
,
TypeName
=
request
.
TypeName
,
};
perforAgworkloadtypeRepository
.
Add
(
entity
);
}
return
entity
;
}
else
if
(
request
.
Id
!=
entity
.
Id
)
throw
new
PerformanceException
(
"类型已存在"
);
else
return
request
;
}
/// <summary>
/// 获取工作量类型列表
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
public
bool
DeleteWorkType
(
WorkloadRequest
request
)
{
var
entity
=
perforAgworkloadtypeRepository
.
GetEntity
(
t
=>
t
.
Id
==
request
.
Id
);
if
(
entity
!=
null
)
{
return
perforAgworkloadtypeRepository
.
Remove
(
entity
);
}
else
return
false
;
}
#
endregion
#
region
二次绩效考核
...
...
@@ -951,9 +1120,13 @@ public List<HeadItem> GetHeadItems(int tempId, int hospitalId, string department
var
workItem
=
perforAgworkloadRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
hospitalId
&&
t
.
Department
==
department
&&
t
.
UnitType
==
unitType
);
if
(
workItem
!=
null
&&
workItem
.
Count
>
0
)
{
var
workDtos
=
Mapper
.
Map
<
List
<
HeadItem
>>(
workItem
);
var
workDtos
=
Mapper
.
Map
<
List
<
HeadItem
>>(
workItem
.
Where
(
t
=>
t
.
WorkTypeId
!=
(
int
)
AgWorkloadType
.
SingleAwards
)
);
workDtos
.
ForEach
(
t
=>
{
t
.
Type
=
3
;
});
headItems
.
AddRange
(
workDtos
);
workDtos
=
Mapper
.
Map
<
List
<
HeadItem
>>(
workItem
.
Where
(
t
=>
t
.
WorkTypeId
==
(
int
)
AgWorkloadType
.
SingleAwards
));
workDtos
.
ForEach
(
t
=>
{
t
.
Type
=
4
;
});
headItems
.
AddRange
(
workDtos
);
}
return
headItems
;
}
...
...
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