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
40b261fb
Commit
40b261fb
authored
May 25, 2020
by
lcx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
工作量类型 补充
parent
a3fb8981
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
179 additions
and
19 deletions
+179
-19
performance/Performance.Api/Controllers/SecondAllotController.cs
+43
-3
performance/Performance.Api/wwwroot/Performance.Api.xml
+19
-1
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+1
-1
performance/Performance.DtoModels/Request/WorkloadRequest.cs
+3
-3
performance/Performance.DtoModels/Response/SecondResponse.cs
+1
-0
performance/Performance.Services/SecondAllotService.cs
+112
-11
No files found.
performance/Performance.Api/Controllers/SecondAllotController.cs
View file @
40b261fb
...
...
@@ -217,18 +217,58 @@ public ApiResponse WorkloadDelete([CustomizeValidator(RuleSet = "Delete"), FromB
return
new
ApiResponse
(
result
?
ResponseType
.
OK
:
ResponseType
.
Fail
);
}
/// <summary>
/// 二次绩效
工作量
列表
/// 二次绩效
单例奖励
列表
/// </summary>
/// <returns></returns>
[
Route
(
"api/second/single/list"
)]
[
HttpPost
]
public
ApiResponse
SingleAwards
([
CustomizeValidator
(
RuleSet
=
"Query"
),
FromBody
]
WorkloadRequest
request
)
public
ApiResponse
SingleAwards
([
FromBody
]
WorkloadRequest
request
)
{
var
result
=
secondAllotService
.
GetSingleList
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
/// <summary>
/// 二次绩效工作量类型列表
/// </summary>
/// <returns></returns>
[
Route
(
"api/second/single/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 @
40b261fb
...
...
@@ -828,7 +828,25 @@
</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>
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
40b261fb
...
...
@@ -1965,7 +1965,7 @@
</summary>
</member>
<member
name=
"P:Performance.DtoModels.WorkloadRequest.
Type
"
>
<member
name=
"P:Performance.DtoModels.WorkloadRequest.
WorkTypeId
"
>
<summary>
1、工作量 2、其他
</summary>
...
...
performance/Performance.DtoModels/Request/WorkloadRequest.cs
View file @
40b261fb
...
...
@@ -45,7 +45,7 @@ public class WorkloadRequest
/// <summary>
/// 1、工作量 2、其他
/// </summary>
public
int
Type
{
get
;
set
;
}
public
int
WorkTypeId
{
get
;
set
;
}
}
public
class
WorkloadRequestValidator
:
AbstractValidator
<
WorkloadRequest
>
{
...
...
@@ -57,7 +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
.
Type
).
NotNull
().
GreaterThan
(
0
);
RuleFor
(
x
=>
x
.
WorkTypeId
).
NotNull
().
GreaterThan
(
0
);
});
RuleSet
(
"Update"
,
()
=>
...
...
@@ -65,7 +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
.
Type
).
NotNull
().
GreaterThan
(
0
);
RuleFor
(
x
=>
x
.
WorkTypeId
).
NotNull
().
GreaterThan
(
0
);
});
RuleSet
(
"Delete"
,
()
=>
...
...
performance/Performance.DtoModels/Response/SecondResponse.cs
View file @
40b261fb
...
...
@@ -22,6 +22,7 @@ public class HeadItem
public
Nullable
<
int
>
IsBring
{
get
;
set
;
}
/// <summary> 1 value相加值为1 </summary>
public
Nullable
<
int
>
SpecialAttr
{
get
;
set
;
}
public
Nullable
<
int
>
WorkType
{
get
;
set
;
}
}
public
class
BodyItem
:
HeadItem
...
...
performance/Performance.Services/SecondAllotService.cs
View file @
40b261fb
...
...
@@ -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
();
}
...
...
@@ -434,17 +438,20 @@ private void SupplyHeaderByWorkItem(UseTempRequest request, SecondResponse resul
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
=
"PerformanceShareTheDepartment"
,
FiledName
=
"门诊绩效占比"
,
Sort
=
maxSortValue
+
1
,
FiledId
=
"ThePerformanceOf"
,
Type
=
1
,
SourceType
=
1
,
IsBring
=
2
,
...
...
@@ -452,16 +459,40 @@ private void SupplyHeaderByWorkItem(UseTempRequest request, SecondResponse resul
},
new
HeadItem
{
FiledId
=
"PerformanceDepartmentDistributionAmount"
,
FiledName
=
"门诊绩效金额"
,
Sort
=
maxSortValue
+
2
,
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
=
headers
[
i
];
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
headers
)
foreach
(
var
item
in
header
Item
s
)
{
if
(!
result
.
HeadItems
.
Select
(
t
=>
t
.
FiledId
).
Contains
(
item
.
FiledId
))
{
...
...
@@ -746,7 +777,7 @@ public void RefreshTemp(UseTempRequest request)
public
List
<
ag_workload
>
GetWorkloadList
(
WorkloadRequest
request
)
{
return
perforAgworkloadRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
request
.
HospitalId
&&
t
.
Department
==
request
.
Department
&&
t
.
UnitType
==
request
.
UnitType
&&
t
.
WorkTypeId
=
=
(
int
)
AgWorkloadType
.
SingleAwards
);
&&
t
.
UnitType
==
request
.
UnitType
&&
t
.
WorkTypeId
!
=
(
int
)
AgWorkloadType
.
SingleAwards
);
}
/// <summary>
...
...
@@ -767,7 +798,7 @@ public bool WorkloadAdd(WorkloadRequest request)
FactorValue
=
request
.
FactorValue
??
1
,
ItemName
=
request
.
ItemName
,
Sort
=
request
.
Sort
??
1
,
WorkTypeId
=
request
.
Type
,
WorkTypeId
=
request
.
WorkTypeId
,
};
var
result
=
perforAgworkloadRepository
.
Add
(
workload
);
if
(
result
)
...
...
@@ -798,7 +829,7 @@ public bool WorkloadUpdate(WorkloadRequest request)
workload
.
ItemName
=
request
.
ItemName
;
workload
.
Sort
=
request
.
Sort
;
workload
.
ItemId
=
$"Feild
{
workload
.
Id
}
"
;
workload
.
WorkTypeId
=
request
.
Type
;
workload
.
WorkTypeId
=
request
.
WorkTypeId
;
return
perforAgworkloadRepository
.
Update
(
workload
);
}
...
...
@@ -815,7 +846,7 @@ public bool WorkloadDelete(int id)
}
/// <summary>
/// 获取
工作量
列表
/// 获取
单行奖励
列表
/// </summary>
/// <param name="secondId"></param>
/// <returns></returns>
...
...
@@ -824,6 +855,76 @@ 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
二次绩效考核
...
...
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