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
96a30536
Commit
96a30536
authored
Sep 05, 2022
by
Licx
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '医院其他绩效' into develop
parents
b664ef9e
62202722
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
397 additions
and
131 deletions
+397
-131
performance/Performance.Api/Controllers/EmployeeController.cs
+99
-24
performance/Performance.Api/wwwroot/Performance.Api.xml
+33
-5
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+9
-0
performance/Performance.DtoModels/Request/AprAmountAuditRequest.cs
+17
-11
performance/Performance.DtoModels/Response/OhterAmountAuditResponse.cs
+3
-0
performance/Performance.EntityModels/Entity/per_apr_amount.cs
+1
-1
performance/Performance.EntityModels/Entity/per_apr_amount_hide.cs
+1
-1
performance/Performance.Repository/PerforPerapramountRepository.cs
+6
-1
performance/Performance.Services/EmployeeService.cs
+228
-88
No files found.
performance/Performance.Api/Controllers/EmployeeController.cs
View file @
96a30536
...
...
@@ -268,40 +268,46 @@ public ApiResponse Audit(int allotid)
/// <returns></returns>
[
Route
(
"apr/getlist"
)]
[
HttpPost
]
public
ApiResponse
GetAprList
([
FromBody
]
A
llotId
Request
request
)
public
ApiResponse
GetAprList
([
FromBody
]
A
prAmountAudit
Request
request
)
{
if
(
request
.
AllotId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
employee
=
employeeService
.
GetApr
List
(
request
.
AllotId
,
claim
.
GetUserId
()
);
var
employee
=
employeeService
.
GetApr
ByTypeInDepartment
(
request
.
AllotId
,
request
.
TypeInDepartment
,
request
.
CreateDate
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
}
/// <summary>
/// 医院其他绩效审核
/// </summary>
/// <param name="isAudit">0 其他绩效列表 1 审核列表</param>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"apr/getdeptlist"
)]
[
Route
(
"apr/getdeptlist
/{isAudit}
"
)]
[
HttpPost
]
public
ApiResponse
GetAprGroupList
([
FromBody
]
AllotIdRequest
request
)
public
ApiResponse
GetAprGroupList
([
From
Route
]
int
isAudit
,
[
From
Body
]
AllotIdRequest
request
)
{
if
(
request
.
AllotId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
employee
=
employeeService
.
GetAprList
(
request
.
AllotId
,
claim
.
GetUserId
());
var
employee
=
employeeService
.
GetAprList
(
request
.
AllotId
,
claim
.
GetUserId
()
,
isAudit
);
if
(
employee
==
null
||
!
employee
.
Any
())
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
var
result
=
employee
.
GroupBy
(
t
=>
new
{
TypeInDepartment
=
t
.
TypeInDepartment
??
""
})
var
result
=
employee
.
GroupBy
(
t
=>
new
{
TypeInDepartment
=
t
.
TypeInDepartment
??
""
,
t
.
CreateDate
})
.
Select
(
t
=>
new
OhterAmountAuditResponse
{
TypeInDepartment
=
t
.
Key
.
TypeInDepartment
,
CreateDate
=
t
.
Key
.
CreateDate
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
),
Amount
=
t
.
Sum
(
s
=>
s
.
Amount
??
0
),
Status
=
t
.
Any
(
s
=>
s
.
Status
==
2
)
?
2
:
t
.
Any
(
s
=>
s
.
Status
==
4
)
?
4
:
t
.
FirstOrDefault
().
Status
,
PerforType
=
string
.
Join
(
"/"
,
t
.
Select
(
w
=>
w
.
PerforType
).
Distinct
()),
AuditTime
=
t
.
Any
(
s
=>
s
.
Status
==
2
)
?
""
:
t
.
Max
(
w
=>
w
.
AuditTime
)?.
ToString
(
"yyyy-MM-dd HH:mm:ss"
),
Remark
=
t
.
Any
(
s
=>
!
s
.
MarkStatus
.
HasValue
)
?
""
:
$"已审计
{
t
.
Max
(
w
=>
w
.
MarkTime
)?.
ToString
(
"(yyyy-MM-dd HH:mm:ss)"
)}
"
Remark
=
t
.
Any
(
s
=>
!
s
.
MarkStatus
.
HasValue
)
?
""
:
$"已审计
{
t
.
Max
(
w
=>
w
.
MarkTime
)?.
ToString
(
"(yyyy-MM-dd HH:mm:ss)"
)}
"
,
ShowCommit
=
t
.
FirstOrDefault
(
t
=>
t
.
CreateUser
.
HasValue
).
CreateUser
==
claim
.
GetUserId
(),
});
if
(
result
!=
null
&&
result
.
Any
())
result
=
result
.
OrderByDescending
(
o
=>
o
.
CreateDate
).
ToList
();
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
result
);
}
...
...
@@ -312,12 +318,12 @@ public ApiResponse GetAprGroupList([FromBody] AllotIdRequest request)
/// <returns></returns>
[
Route
(
"apr/getdeptdetail"
)]
[
HttpPost
]
public
ApiResponse
GetAprDetail
([
FromBody
]
per_apr_amoun
t
request
)
public
ApiResponse
GetAprDetail
([
FromBody
]
AprAmountAuditReques
t
request
)
{
if
(
request
.
AllotId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
employee
=
employeeService
.
GetAprList
(
request
.
AllotId
,
request
.
TypeInDepartment
);
var
employee
=
employeeService
.
GetAprList
(
request
.
AllotId
,
request
.
TypeInDepartment
,
date
:
request
.
CreateDate
);
if
(
employee
==
null
||
!
employee
.
Any
())
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
...
...
@@ -393,6 +399,21 @@ public ApiResponse DeleteApr([FromBody] IdRequest request)
}
/// <summary>
/// 医院其他绩效提交、撤销
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Route
(
"apr/commit"
)]
public
ApiResponse
CommitResult
([
FromBody
]
AprAmountAuditRequest
request
)
{
if
(
request
.
AllotId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
result
=
employeeService
.
CommitApr
(
request
.
AllotId
,
request
.
TypeInDepartment
,
request
.
Status
,
request
.
CreateDate
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
/// <summary>
/// 医院其他绩效审核;驳回、成功
/// </summary>
/// <returns></returns>
...
...
@@ -454,8 +475,10 @@ public ApiResponse Import([FromForm] IFormCollection form)
if
(!
FileHelper
.
CreateFile
(
path
,
bytes
))
return
new
ApiResponse
(
ResponseType
.
Fail
,
$"
{
file
.
FileName
}
上传失败"
);
}
var
result
=
employeeService
.
ImpoerAprEmployees
(
allotid
,
path
,
claim
.
GetUserId
());
return
result
==
""
?
new
ApiResponse
(
ResponseType
.
OK
)
:
new
ApiResponse
(
ResponseType
.
ParameterError
,
result
);
var
result
=
employeeService
.
ImportAprEmployees
(
allotid
,
path
,
claim
.
GetUserId
());
return
result
!=
null
&&
result
.
Count
>
0
?
new
ApiResponse
(
ResponseType
.
WarningTable
,
"验证不通过,当前操作已拒绝"
,
result
)
:
new
ApiResponse
(
ResponseType
.
OK
);
}
/// <summary>
...
...
@@ -525,6 +548,19 @@ public ApiResponse AprOverview(int allotId)
});
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
result
);
}
/// <summary>
/// 清理该科室录入数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
HttpPost
(
"apr/clear"
)]
public
ApiResponse
<
List
<
TitleValue
>>
ClearAprData
([
FromBody
]
AprAmountAuditRequest
request
)
{
var
result
=
employeeService
.
ClearAprData
(
request
);
return
result
?
new
ApiResponse
<
List
<
TitleValue
>>(
ResponseType
.
OK
,
"删除成功"
)
:
new
ApiResponse
<
List
<
TitleValue
>>(
ResponseType
.
OK
,
"删除失败"
);
}
#
endregion
/// <summary>
...
...
@@ -572,40 +608,48 @@ public ApiResponse GetDeptAssessment(int allotId)
/// <returns></returns>
[
Route
(
"apr/hide/getlist"
)]
[
HttpPost
]
public
ApiResponse
GetAprHideList
([
FromBody
]
A
llotId
Request
request
)
public
ApiResponse
GetAprHideList
([
FromBody
]
A
prAmountAudit
Request
request
)
{
if
(
request
.
AllotId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
employee
=
employeeService
.
GetAprHideList
(
request
.
AllotId
,
claim
.
GetUserId
());
var
employee
=
employeeService
.
GetAprHideByTypeInDepartment
(
request
.
AllotId
,
request
.
TypeInDepartment
,
request
.
CreateDate
);
if
(
employee
!=
null
&&
employee
.
Any
())
employee
=
employee
.
OrderByDescending
(
o
=>
o
.
CreateDate
).
ToList
();
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
}
/// <summary>
/// 不公示其他绩效审核
/// </summary>
/// <param name="isAudit"></param>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"apr/hide/getdeptlist"
)]
[
Route
(
"apr/hide/getdeptlist
/{isAudit}
"
)]
[
HttpPost
]
public
ApiResponse
GetAprHideGroupList
([
FromBody
]
AllotIdRequest
request
)
public
ApiResponse
GetAprHideGroupList
([
From
Route
]
int
isAudit
,
[
From
Body
]
AllotIdRequest
request
)
{
if
(
request
.
AllotId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
employee
=
employeeService
.
GetAprHideList
(
request
.
AllotId
,
claim
.
GetUserId
());
var
employee
=
employeeService
.
GetAprHideList
(
request
.
AllotId
,
claim
.
GetUserId
()
,
isAudit
);
if
(
employee
==
null
||
!
employee
.
Any
())
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
var
result
=
employee
.
GroupBy
(
t
=>
new
{
TypeInDepartment
=
t
.
TypeInDepartment
??
""
})
var
result
=
employee
.
GroupBy
(
t
=>
new
{
TypeInDepartment
=
t
.
TypeInDepartment
??
""
,
t
.
CreateDate
})
.
Select
(
t
=>
new
OhterAmountAuditResponse
{
TypeInDepartment
=
t
.
Key
.
TypeInDepartment
,
CreateDate
=
t
.
Key
.
CreateDate
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
),
Amount
=
t
.
Sum
(
s
=>
s
.
Amount
??
0
),
Status
=
t
.
Any
(
s
=>
s
.
Status
==
2
)
?
2
:
t
.
Any
(
s
=>
s
.
Status
==
4
)
?
4
:
t
.
FirstOrDefault
().
Status
,
PerforType
=
string
.
Join
(
"/"
,
t
.
Select
(
w
=>
w
.
PerforType
).
Distinct
()),
AuditTime
=
t
.
Any
(
s
=>
s
.
Status
==
2
)
?
""
:
t
.
Max
(
w
=>
w
.
AuditTime
)?.
ToString
(
"yyyy-MM-dd HH:mm:ss"
),
Remark
=
t
.
Any
(
s
=>
!
s
.
MarkStatus
.
HasValue
)
?
""
:
$"已审计
{
t
.
Max
(
w
=>
w
.
MarkTime
)?.
ToString
(
"(yyyy-MM-dd HH:mm:ss)"
)}
"
Remark
=
t
.
Any
(
s
=>
!
s
.
MarkStatus
.
HasValue
)
?
""
:
$"已审计
{
t
.
Max
(
w
=>
w
.
MarkTime
)?.
ToString
(
"(yyyy-MM-dd HH:mm:ss)"
)}
"
,
ShowCommit
=
t
.
FirstOrDefault
(
t
=>
t
.
CreateUser
.
HasValue
).
CreateUser
==
claim
.
GetUserId
(),
});
if
(
result
!=
null
&&
result
.
Any
())
result
=
result
.
OrderByDescending
(
o
=>
o
.
CreateDate
).
ToList
();
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
result
);
}
...
...
@@ -621,7 +665,7 @@ public ApiResponse GetAprHideDetail([FromBody] per_apr_amount request)
if
(
request
.
AllotId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
employee
=
employeeService
.
GetAprHideList
(
request
.
AllotId
,
request
.
TypeInDepartment
);
var
employee
=
employeeService
.
GetAprHideList
(
request
.
AllotId
,
request
.
TypeInDepartment
,
date
:
request
.
CreateDate
);
if
(
employee
==
null
||
!
employee
.
Any
())
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
employee
);
...
...
@@ -695,6 +739,22 @@ public ApiResponse DeleteAprHide([FromBody] IdRequest request)
return
new
ApiResponse
(
ResponseType
.
OK
);
}
/// <summary>
/// 医院其他绩效提交、撤销
/// </summary>
/// <returns></returns>
[
HttpPost
]
[
Route
(
"apr/hide/commit"
)]
public
ApiResponse
CommitResultHide
([
FromBody
]
AprAmountAuditRequest
request
)
{
if
(
request
.
AllotId
==
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
result
=
employeeService
.
CommitAprHide
(
request
.
AllotId
,
request
.
TypeInDepartment
,
request
.
Status
,
request
.
CreateDate
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
/// <summary>
/// 不公示其他绩效审核;驳回、成功
/// </summary>
...
...
@@ -757,8 +817,10 @@ public ApiResponse ImportAprHide([FromForm] IFormCollection form)
if
(!
FileHelper
.
CreateFile
(
path
,
bytes
))
return
new
ApiResponse
(
ResponseType
.
Fail
,
$"
{
file
.
FileName
}
上传失败"
);
}
employeeService
.
ImpoerAprHideEmployees
(
allotid
,
path
,
claim
.
GetUserId
());
return
new
ApiResponse
(
ResponseType
.
OK
);
var
result
=
employeeService
.
ImportAprHideEmployees
(
allotid
,
path
,
claim
.
GetUserId
());
return
result
!=
null
&&
result
.
Count
>
0
?
new
ApiResponse
(
ResponseType
.
WarningTable
,
"验证不通过,当前操作已拒绝"
,
result
)
:
new
ApiResponse
(
ResponseType
.
OK
);
}
/// <summary>
...
...
@@ -817,6 +879,19 @@ public ApiResponse AprHideOverview(int allotId)
});
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
result
);
}
/// <summary>
/// 清理该科室录入不公示数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
HttpPost
(
"apr/hide/clear"
)]
public
ApiResponse
<
List
<
TitleValue
>>
ClearAprHideData
([
FromBody
]
AprAmountAuditRequest
request
)
{
var
result
=
employeeService
.
ClearAprHideData
(
request
);
return
result
?
new
ApiResponse
<
List
<
TitleValue
>>(
ResponseType
.
OK
,
"删除成功"
)
:
new
ApiResponse
<
List
<
TitleValue
>>(
ResponseType
.
OK
,
"删除失败"
);
}
#
endregion
/// <summary>
...
...
@@ -916,7 +991,7 @@ public ApiResponse SaveGatherHands([FromRoute] int allotId, [FromBody] SaveGathe
[
HttpPost
]
public
ApiResponse
GetGather
([
FromBody
]
Gather
gather
)
{
if
(
gather
.
AllotId
<=
0
||
string
.
IsNullOrEmpty
(
gather
.
Source
)
||
string
.
IsNullOrEmpty
(
gather
.
Category
)
||
string
.
IsNullOrEmpty
(
gather
.
Department
)
)
if
(
gather
.
AllotId
<=
0
||
string
.
IsNullOrEmpty
(
gather
.
Source
)
||
string
.
IsNullOrEmpty
(
gather
.
Category
)
||
string
.
IsNullOrEmpty
(
gather
.
Department
)
)
return
new
ApiResponse
(
ResponseType
.
Fail
,
"参数错误"
,
"请检查allotId,source,category,department是否正确"
);
var
result
=
employeeService
.
GetGather
(
gather
);
...
...
@@ -955,7 +1030,7 @@ public ApiResponse DeleteGather([FromBody] Gather gather)
return
new
ApiResponse
(
ResponseType
.
Fail
,
"参数错误"
,
"请检查allotId,source,category,department是否正确"
);
var
result
=
employeeService
.
DeleteGather
(
gather
);
if
(
result
)
return
new
ApiResponse
(
ResponseType
.
OK
,
"删除成功"
);
if
(
result
)
return
new
ApiResponse
(
ResponseType
.
OK
,
"删除成功"
);
else
return
new
ApiResponse
(
ResponseType
.
Fail
,
"删除失败"
);
}
...
...
@@ -970,7 +1045,7 @@ public ApiResponse DeleteGather([FromBody] Gather gather)
public
ApiResponse
AuditGather
([
FromBody
]
List
<
Gather
>
gather
)
{
employeeService
.
AuditGather
(
gather
);
return
new
ApiResponse
(
ResponseType
.
OK
,
""
);
return
new
ApiResponse
(
ResponseType
.
OK
,
""
);
}
#
endregion
}
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
96a30536
...
...
@@ -1136,21 +1136,22 @@
<param
name=
"allotid"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprList(Performance.DtoModels.A
llotId
Request)"
>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprList(Performance.DtoModels.A
prAmountAudit
Request)"
>
<summary>
获取医院其他绩效列表
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprGroupList(Performance.DtoModels.AllotIdRequest)"
>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprGroupList(
System.Int32,
Performance.DtoModels.AllotIdRequest)"
>
<summary>
医院其他绩效审核
</summary>
<param
name=
"isAudit"
>
0 其他绩效列表 1 审核列表
</param>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprDetail(Performance.
EntityModels.per_apr_amoun
t)"
>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprDetail(Performance.
DtoModels.AprAmountAuditReques
t)"
>
<summary>
医院其他绩效审核详情
</summary>
...
...
@@ -1178,6 +1179,12 @@
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.CommitResult(Performance.DtoModels.AprAmountAuditRequest)"
>
<summary>
医院其他绩效提交、撤销
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.AuditResult(Performance.DtoModels.AprAmountAuditRequest)"
>
<summary>
医院其他绩效审核;驳回、成功
...
...
@@ -1211,6 +1218,13 @@
<param
name=
"allotId"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.ClearAprData(Performance.DtoModels.AprAmountAuditRequest)"
>
<summary>
清理该科室录入数据
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetEmployeeMessage(Performance.EntityModels.per_apr_amount)"
>
<summary>
自动获取人员信息
...
...
@@ -1234,17 +1248,18 @@
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprHideList(Performance.DtoModels.A
llotId
Request)"
>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprHideList(Performance.DtoModels.A
prAmountAudit
Request)"
>
<summary>
获取不公示其他绩效列表
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprHideGroupList(Performance.DtoModels.AllotIdRequest)"
>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetAprHideGroupList(
System.Int32,
Performance.DtoModels.AllotIdRequest)"
>
<summary>
不公示其他绩效审核
</summary>
<param
name=
"isAudit"
></param>
<param
name=
"request"
></param>
<returns></returns>
</member>
...
...
@@ -1276,6 +1291,12 @@
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.CommitResultHide(Performance.DtoModels.AprAmountAuditRequest)"
>
<summary>
医院其他绩效提交、撤销
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.AuditResultHide(Performance.DtoModels.AprAmountAuditRequest)"
>
<summary>
不公示其他绩效审核;驳回、成功
...
...
@@ -1309,6 +1330,13 @@
<param
name=
"allotId"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.ClearAprHideData(Performance.DtoModels.AprAmountAuditRequest)"
>
<summary>
清理该科室录入不公示数据
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetDeptComparison(Performance.DtoModels.ComparisonPagingRequest)"
>
<summary>
实发绩效比对
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
96a30536
...
...
@@ -1909,6 +1909,15 @@
<member
name=
"P:Performance.DtoModels.AprAmountAuditRequest.AllotId"
>
<summary>
绩效ID
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AprAmountAuditRequest.TypeInDepartment"
>
<summary>
录入科室
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AprAmountAuditRequest.CreateDate"
>
<summary>
创建时间
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AprAmountAuditRequest.Status"
>
<summary>
提交 1、撤销 2、提交
</summary>
</member>
<member
name=
"P:Performance.DtoModels.AprAmountAuditRequest.IsPass"
>
<summary>
审核结果 1、审核通过 2、驳回
</summary>
</member>
...
...
performance/Performance.DtoModels/Request/AprAmountAuditRequest.cs
View file @
96a30536
...
...
@@ -7,24 +7,30 @@ namespace Performance.DtoModels
{
public
class
AprAmountAuditRequest
{
public
class
Member
{
public
string
PersonnelNumber
{
get
;
set
;
}
public
string
DoctorName
{
get
;
set
;
}
}
/// <summary> 绩效ID </summary>
public
int
AllotId
{
get
;
set
;
}
public
List
<
Member
>
Members
{
get
;
set
;
}
/// <summary> 录入科室 </summary>
public
string
TypeInDepartment
{
get
;
set
;
}
/// <summary> 创建时间 </summary>
public
DateTime
CreateDate
{
get
;
set
;
}
/// <summary> 提交 1、撤销 2、提交 </summary>
public
int
Status
{
get
;
set
;
}
/// <summary> 审核结果 1、审核通过 2、驳回 </summary>
public
int
IsPass
{
get
;
set
;
}
/// <summary> 备注 </summary>
public
string
Remark
{
get
;
set
;
}
public
List
<
Member
>
Members
{
get
;
set
;
}
}
public
class
AprAmountAuditRequestValidator
:
AbstractValidator
<
AprAmountAuditRequest
>
{
public
AprAmountAuditRequestValidator
()
public
class
Member
{
RuleFor
(
x
=>
x
.
IsPass
).
NotNull
().
NotEmpty
().
InclusiveBetween
(
1
,
2
);
}
public
string
PersonnelNumber
{
get
;
set
;
}
public
string
DoctorName
{
get
;
set
;
}
}
}
performance/Performance.DtoModels/Response/OhterAmountAuditResponse.cs
View file @
96a30536
...
...
@@ -11,7 +11,10 @@ public class OhterAmountAuditResponse
public
string
TypeInDepartment
{
get
;
set
;
}
public
decimal
Amount
{
get
;
set
;
}
public
int
?
Status
{
get
;
set
;
}
public
string
CreateDate
{
get
;
set
;
}
public
string
PerforType
{
get
;
set
;
}
public
string
AuditTime
{
get
;
set
;
}
public
string
Remark
{
get
;
set
;
}
public
bool
ShowCommit
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Entity/per_apr_amount.cs
View file @
96a30536
...
...
@@ -74,7 +74,7 @@ public class per_apr_amount
/// <summary>
///
/// </summary>
public
Nullable
<
DateTime
>
CreateDate
{
get
;
set
;
}
public
DateTime
CreateDate
{
get
;
set
;
}
/// <summary>
///
...
...
performance/Performance.EntityModels/Entity/per_apr_amount_hide.cs
View file @
96a30536
...
...
@@ -69,7 +69,7 @@ public class per_apr_amount_hide
/// <summary>
///
/// </summary>
public
Nullable
<
DateTime
>
CreateDate
{
get
;
set
;
}
public
DateTime
CreateDate
{
get
;
set
;
}
/// <summary>
///
...
...
performance/Performance.Repository/PerforPerapramountRepository.cs
View file @
96a30536
...
...
@@ -64,7 +64,7 @@ public partial class PerforPerapramountRepository : PerforRepository<per_apr_amo
//}
public
List
<
view_per_apr_amount
>
GetFullAmount
(
int
?
allotId
,
int
?
status
,
string
typeInDepartment
=
""
)
public
List
<
view_per_apr_amount
>
GetFullAmount
(
int
?
allotId
,
int
?
status
,
string
typeInDepartment
=
""
,
DateTime
?
date
=
null
)
{
string
sql
=
"select AllotId, PersonnelNumber, Trim(AccountingUnit) AccountingUnit, UnitType, DoctorName, PerforType, Amount, TypeInDepartment, Status, Remark from view_other_amount where ifnull(amount,0)<>0 "
;
...
...
@@ -85,6 +85,11 @@ public List<view_per_apr_amount> GetFullAmount(int? allotId, int? status, string
sql
+=
" and typeInDepartment = @typeInDepartment"
;
parameters
.
Add
(
name
:
"typeInDepartment"
,
typeInDepartment
);
}
if
(
date
.
HasValue
)
{
sql
+=
" and createDate = @createDate"
;
parameters
.
Add
(
name
:
"createDate"
,
date
);
}
return
DapperQuery
<
view_per_apr_amount
>(
sql
,
parameters
).
ToList
();
}
...
...
performance/Performance.Services/EmployeeService.cs
View file @
96a30536
...
...
@@ -430,31 +430,37 @@ public bool Audit(int allotId)
/// <param name="allotId"></param>
/// <param name="userId"></param>
/// <returns></returns>
public
List
<
per_apr_amount
>
GetAprList
(
int
allotId
,
int
userId
)
public
List
<
per_apr_amount
>
GetAprList
(
int
allotId
,
int
userId
,
int
isAudit
)
{
var
userrole
=
userroleRepository
.
GetEntity
(
t
=>
t
.
UserID
==
userId
);
if
(
userrole
==
null
)
throw
new
PerformanceException
(
"用户未绑定角色"
);
var
list
=
new
List
<
per_apr_amount
>()
;
Expression
<
Func
<
per_apr_amount
,
bool
>>
expression
=
t
=>
t
.
AllotId
==
allotId
&&
(
t
.
Amount
??
0
)
!=
0
;
var
roles
=
new
int
[]
{
(
int
)
Role
.
绩效管理员
,
(
int
)
Role
.
医院管理员
,
(
int
)
Role
.
绩效核算办
,
(
int
)
Role
.
院领导
,
(
int
)
Role
.
审计
};
if
(
roles
.
Contains
(
userrole
.
RoleID
))
// 绩效管理员、医院管理员、绩效核算办、院领导查看所有科室的数据
list
=
perapramountRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
&&
(
t
.
Amount
??
0
)
!=
0
);
else
list
=
perapramountRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
&&
(
t
.
Amount
??
0
)
!=
0
&&
t
.
CreateUser
==
userId
);
if
(!
roles
.
Contains
(
userrole
.
RoleID
))
// 绩效管理员、医院管理员、绩效核算办、院领导查看所有科室的数据
expression
=
expression
.
And
(
t
=>
t
.
CreateUser
==
userId
);
if
(
isAudit
==
1
)
expression
=
expression
.
And
(
t
=>
new
int
[]
{
2
,
3
}.
Contains
(
t
.
Status
??
1
));
var
list
=
perapramountRepository
.
GetEntities
(
expression
);
if
(
list
!=
null
&&
list
.
Any
())
list
=
list
.
OrderBy
(
w
=>
w
.
IsVerify
).
ThenBy
(
t
=>
t
.
DoctorName
).
ToList
();
return
list
;
}
/// <summary>
/// 医院其他绩效审核详情
/// </summary>
/// <param name="allotId"></param>
/// <param name="department"></param>
/// <param name="status"></param>
/// <param name="date"></param>
/// <returns></returns>
public
List
<
view_per_apr_amount
>
GetAprList
(
int
allotId
,
string
department
,
int
?
status
=
null
)
public
List
<
view_per_apr_amount
>
GetAprList
(
int
allotId
,
string
department
,
int
?
status
=
null
,
DateTime
?
date
=
null
)
{
var
list
=
perapramountRepository
.
GetFullAmount
(
allotId
,
status
,
department
);
var
list
=
perapramountRepository
.
GetFullAmount
(
allotId
,
status
,
department
,
date
);
if
(
list
!=
null
&&
list
.
Any
())
list
=
list
.
OrderBy
(
t
=>
t
.
DoctorName
).
ToList
();
...
...
@@ -481,8 +487,7 @@ public bool InsertApr(per_apr_amount request, int userId)
throw
new
PerformanceException
(
"工号在字典中不存在"
);
request
.
TypeInDepartment
=
GetTypeInDepartment
(
userId
);
request
.
Status
=
2
;
request
.
CreateDate
=
DateTime
.
Now
;
request
.
Status
=
1
;
request
.
CreateUser
=
userId
;
return
perapramountRepository
.
Add
(
request
);
}
...
...
@@ -505,7 +510,7 @@ public bool UpdateApr(per_apr_amount request)
if
(
data
==
null
)
throw
new
PerformanceException
(
"修改数据无效"
);
data
.
Status
=
2
;
data
.
Status
=
1
;
data
.
PersonnelNumber
=
request
.
PersonnelNumber
;
data
.
DoctorName
=
request
.
DoctorName
;
data
.
PerforType
=
request
.
PerforType
;
...
...
@@ -515,6 +520,7 @@ public bool UpdateApr(per_apr_amount request)
return
perapramountRepository
.
Update
(
data
);
}
/// <summary>
/// 删除医院其他绩效
/// </summary>
...
...
@@ -530,6 +536,25 @@ public bool DeleteApr(int id)
}
/// <summary>
/// 提交、撤销医院其他绩效
/// </summary>
/// <param name="allotId"></param>
/// <param name="department">录入科室</param>
/// <param name="status">1.撤销 2.提交</param>
/// <returns></returns>
public
bool
CommitApr
(
int
allotId
,
string
department
,
int
status
,
DateTime
date
)
{
var
list
=
status
==
1
?
GetAprByTypeInDepartment
(
allotId
,
department
,
date
,
2
)
// 撤销操作,获取已提交等待审核的数据
:
GetAprByTypeInDepartment
(
allotId
,
department
,
date
,
1
,
4
);
// 提交操作,获取未提交、驳回的数据
if
(
list
==
null
)
return
true
;
list
.
ForEach
(
t
=>
t
.
Status
=
status
);
perapramountRepository
.
UpdateRange
(
list
.
ToArray
());
return
true
;
}
/// <summary>
/// 审核医院其他绩效
/// </summary>
/// <param name="userid"></param>
...
...
@@ -560,7 +585,9 @@ public ApiResponse ConfirmAudit(int userid, AprAmountAuditRequest request)
if
(
error
.
Count
>
0
)
return
new
ApiResponse
(
ResponseType
.
WarningTable
,
"验证不通过,当前操作已拒绝"
,
error
);
var
allApramounts
=
perapramountRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
request
.
AllotId
);
var
allApramounts
=
request
.
IsPass
==
1
?
GetAprByTypeInDepartment
(
request
.
AllotId
,
request
.
TypeInDepartment
,
request
.
CreateDate
,
2
)
// 获取等待审核的数据
:
GetAprByTypeInDepartment
(
request
.
AllotId
,
request
.
TypeInDepartment
,
request
.
CreateDate
,
2
,
3
);
// 获取等待审核、审核通过的数据
foreach
(
var
member
in
request
.
Members
)
{
var
apramounts
=
allApramounts
?.
Where
(
t
=>
(
t
.
PersonnelNumber
??
""
)
==
member
.
PersonnelNumber
);
...
...
@@ -606,21 +633,14 @@ public ApiResponse AprMark(int userid, AprAmountMarkRequest request)
/// <param name="allotid"></param>
/// <param name="path"></param>
/// <param name="userid"></param>
public
string
Impoer
AprEmployees
(
int
allotid
,
string
path
,
int
userid
)
public
List
<
Dictionary
<
string
,
string
>>
Import
AprEmployees
(
int
allotid
,
string
path
,
int
userid
)
{
var
userrole
=
userroleRepository
.
GetEntity
(
t
=>
t
.
UserID
==
userid
);
if
(
userrole
==
null
)
throw
new
PerformanceException
(
"用户未绑定角色"
);
var
data
=
new
List
<
per_apr_amount
>();
var
roles
=
new
int
[]
{
(
int
)
Role
.
绩效管理员
,
(
int
)
Role
.
医院管理员
,
(
int
)
Role
.
绩效核算办
,
(
int
)
Role
.
院领导
,
(
int
)
Role
.
审计
};
if
(
roles
.
Contains
(
userrole
.
RoleID
))
// 绩效管理员、医院管理员、绩效核算办查看所有科室的数据
data
=
perapramountRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotid
&&
(
t
.
Amount
??
0
)
!=
0
);
else
data
=
perapramountRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotid
&&
(
t
.
Amount
??
0
)
!=
0
&&
t
.
CreateUser
==
userid
);
if
(
data
!=
null
&&
data
.
Any
())
perapramountRepository
.
RemoveRange
(
data
.
ToArray
());
List
<
Dictionary
<
string
,
string
>>
errors
=
new
List
<
Dictionary
<
string
,
string
>>();
var
typeIn
=
GetTypeInDepartment
(
userid
);
try
{
IWorkbook
workbook
=
null
;
...
...
@@ -628,11 +648,9 @@ public string ImpoerAprEmployees(int allotid, string path, int userid)
var
version
=
FileHelper
.
GetExtension
(
path
)
==
".xlsx"
?
ExcelVersion
.
xlsx
:
ExcelVersion
.
xls
;
using
(
FileStream
fs
=
new
FileStream
(
path
,
FileMode
.
OpenOrCreate
))
{
workbook
=
(
version
==
ExcelVersion
.
xlsx
)
?
(
IWorkbook
)(
new
XSSFWorkbook
(
fs
))
:
(
IWorkbook
)(
new
HSSFWorkbook
(
fs
));
workbook
=
version
==
ExcelVersion
.
xlsx
?
new
XSSFWorkbook
(
fs
)
:
new
HSSFWorkbook
(
fs
);
}
if
(
workbook
==
null
)
return
""
;
if
(
workbook
==
null
)
return
errors
;
var
sheet
=
workbook
.
GetSheetAt
(
0
);
var
firstRow
=
sheet
.
GetRow
(
0
);
...
...
@@ -660,7 +678,6 @@ public string ImpoerAprEmployees(int allotid, string path, int userid)
var
entities
=
new
List
<
per_apr_amount
>();
var
createtime
=
DateTime
.
Now
;
var
typeIn
=
GetTypeInDepartment
(
userid
);
var
employees
=
peremployeeRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotid
);
for
(
int
rowindex
=
1
;
rowindex
<
sheet
.
LastRowNum
+
1
;
rowindex
++)
...
...
@@ -670,7 +687,7 @@ public string ImpoerAprEmployees(int allotid, string path, int userid)
var
entity
=
new
per_apr_amount
{
Status
=
2
,
Status
=
1
,
PersonnelNumber
=
dict
[
"人员工号"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"人员工号"
]).
GetValue
(),
DoctorName
=
dict
[
"姓名"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"姓名"
]).
GetValue
(),
PerforType
=
dict
[
"绩效类型"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"绩效类型"
]).
GetValue
(),
...
...
@@ -681,34 +698,43 @@ public string ImpoerAprEmployees(int allotid, string path, int userid)
CreateDate
=
createtime
,
CreateUser
=
userid
,
};
entities
.
Add
(
entity
);
}
//var numbers = entities.Select(t => t.PersonnelNumber).Except(employees.Select(w => w.PersonnelNumber));
//if (numbers?.Count() > 0 && numbers?.Count() <= 5)
// return $@"以下工号在字典中不存在:{JsonHelper.Serialize(numbers.ToArray())}";
//else if (numbers?.Count() > 5)
// return $@"以下工号在字典中不存在:{JsonHelper.Serialize(numbers.Take(5)).Replace("]", ",...]")}";
if
(
string
.
IsNullOrEmpty
(
entity
.
DoctorName
)
||
string
.
IsNullOrEmpty
(
entity
.
PersonnelNumber
))
errors
.
Add
(
new
Dictionary
<
string
,
string
>
{
{
"行号"
,
$"第
{
rowindex
}
行"
},
{
"人员工号"
,
entity
.
PersonnelNumber
},
{
"姓名"
,
entity
.
DoctorName
},
{
"来源"
,
"上传文件"
},
{
"错误原因"
,
"“关键信息缺失”请补全或删除"
},
});
// 补充核算单元
if
(
entities
.
Any
())
var
employee
=
employees
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
entity
.
PersonnelNumber
);
if
(
employee
==
null
)
errors
.
Add
(
new
Dictionary
<
string
,
string
>
{
if
(
entities
.
Any
(
w
=>
string
.
IsNullOrEmpty
(
w
.
PersonnelNumber
)
&&
w
.
Amount
!=
0
))
throw
new
PerformanceException
(
"文件中存在“工号”为空的数据"
);
if
(
entities
.
Any
(
w
=>
string
.
IsNullOrEmpty
(
w
.
PerforType
)
&&
w
.
Amount
!=
0
))
throw
new
PerformanceException
(
"文件中存在“绩效类型”为空的数据"
);
//if (entities.Any(w => string.IsNullOrEmpty(w.TypeInDepartment) && w.Amount != 0))
// throw new PerformanceException("文件中存在“录入科室”为空的数据");
{
"行号"
,
$"第
{
rowindex
}
行"
},
{
"人员工号"
,
entity
.
PersonnelNumber
},
{
"姓名"
,
entity
.
DoctorName
},
{
"来源"
,
"上传文件"
},
{
"错误原因"
,
"“人员工号”错误,请修改或删除"
},
});
else
if
(
employee
.
DoctorName
!=
entity
.
DoctorName
)
errors
.
Add
(
new
Dictionary
<
string
,
string
>
{
{
"行号"
,
$"第
{
rowindex
}
行"
},
{
"人员工号"
,
entity
.
PersonnelNumber
},
{
"姓名"
,
entity
.
DoctorName
},
{
"来源"
,
"上传文件"
},
{
"错误原因"
,
"“姓名”错误,请修改或删除"
},
});
//var employees = peremployeeRepository.GetEntities(w => w.AllotId == allotid);
//foreach (var item in entities.Where(w => !string.IsNullOrEmpty(w.PersonnelNumber)))
//{
// item.AccountingUnit = employees?.FirstOrDefault(w => w.PersonnelNumber == item.PersonnelNumber)?.AccountingUnit ?? "";
//}
perapramountRepository
.
AddRange
(
entities
.
ToArray
());
entities
.
Add
(
entity
);
}
return
""
;
// 补充核算单元
if
(
errors
.
Count
==
0
&&
entities
.
Any
())
perapramountRepository
.
AddRange
(
entities
.
ToArray
());
}
catch
(
PerformanceException
ex
)
{
...
...
@@ -717,8 +743,8 @@ public string ImpoerAprEmployees(int allotid, string path, int userid)
catch
(
Exception
ex
)
{
logger
.
LogError
(
ex
.
ToString
());
return
"上传失败"
;
}
return
errors
;
}
/// <summary>
...
...
@@ -875,18 +901,20 @@ public string GetTypeInDepartment(int userId)
/// <param name="allotId"></param>
/// <param name="userId"></param>
/// <returns></returns>
public
List
<
per_apr_amount_hide
>
GetAprHideList
(
int
allotId
,
int
userId
)
public
List
<
per_apr_amount_hide
>
GetAprHideList
(
int
allotId
,
int
userId
,
int
isAudit
)
{
var
userrole
=
userroleRepository
.
GetEntity
(
t
=>
t
.
UserID
==
userId
);
if
(
userrole
==
null
)
throw
new
PerformanceException
(
"用户未绑定角色"
);
var
list
=
new
List
<
per_apr_amount_hide
>();
Expression
<
Func
<
per_apr_amount_hide
,
bool
>>
expression
=
t
=>
t
.
AllotId
==
allotId
&&
(
t
.
Amount
??
0
)
!=
0
;
var
roles
=
new
int
[]
{
(
int
)
Role
.
绩效管理员
,
(
int
)
Role
.
医院管理员
,
(
int
)
Role
.
绩效核算办
,
(
int
)
Role
.
院领导
,
(
int
)
Role
.
审计
};
if
(
roles
.
Contains
(
userrole
.
RoleID
))
// 绩效管理员、医院管理员、绩效核算办查看所有科室的数据
list
=
_hideRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
&&
(
t
.
Amount
??
0
)
!=
0
);
else
list
=
_hideRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
&&
(
t
.
Amount
??
0
)
!=
0
&&
t
.
CreateUser
==
userId
);
if
(!
roles
.
Contains
(
userrole
.
RoleID
))
// 绩效管理员、医院管理员、绩效核算办查看所有科室的数据
expression
=
expression
.
And
(
t
=>
t
.
CreateUser
==
userId
);
if
(
isAudit
==
1
)
expression
=
expression
.
And
(
t
=>
new
int
[]
{
2
,
3
}.
Contains
(
t
.
Status
??
1
));
var
list
=
_hideRepository
.
GetEntities
(
expression
);
if
(
list
!=
null
&&
list
.
Any
())
list
=
list
.
OrderBy
(
w
=>
w
.
IsVerify
).
ThenBy
(
t
=>
t
.
DoctorName
).
ToList
();
...
...
@@ -898,7 +926,7 @@ public List<per_apr_amount_hide> GetAprHideList(int allotId, int userId)
/// <param name="allotId"></param>
/// <param name="department"></param>
/// <returns></returns>
public
List
<
view_per_apr_amount
>
GetAprHideList
(
int
allotId
,
string
department
,
int
?
status
=
null
)
public
List
<
view_per_apr_amount
>
GetAprHideList
(
int
allotId
,
string
department
,
int
?
status
=
null
,
DateTime
?
date
=
null
)
{
Expression
<
Func
<
per_apr_amount_hide
,
bool
>>
predicate
=
w
=>
w
.
AllotId
==
allotId
&&
w
.
Amount
.
HasValue
&&
w
.
Amount
!=
0
;
if
(!
string
.
IsNullOrEmpty
(
department
))
...
...
@@ -907,6 +935,9 @@ public List<view_per_apr_amount> GetAprHideList(int allotId, string department,
if
(
status
.
HasValue
)
predicate
=
predicate
.
And
(
w
=>
w
.
Status
==
status
);
if
(
date
.
HasValue
)
predicate
=
predicate
.
And
(
w
=>
w
.
CreateDate
==
date
);
var
list
=
_hideRepository
.
GetFullAmount
(
predicate
);
if
(
list
!=
null
&&
list
.
Any
())
list
=
list
.
OrderBy
(
t
=>
t
.
DoctorName
).
ToList
();
...
...
@@ -934,8 +965,7 @@ public bool InsertAprHide(per_apr_amount_hide request, int userId)
throw
new
PerformanceException
(
"工号在字典中不存在"
);
request
.
TypeInDepartment
=
GetTypeInDepartment
(
userId
);
request
.
Status
=
2
;
request
.
CreateDate
=
DateTime
.
Now
;
request
.
Status
=
1
;
request
.
CreateUser
=
userId
;
return
_hideRepository
.
Add
(
request
);
}
...
...
@@ -958,7 +988,7 @@ public bool UpdateAprHide(per_apr_amount_hide request)
if
(
data
==
null
)
throw
new
PerformanceException
(
"修改数据无效"
);
data
.
Status
=
2
;
data
.
Status
=
1
;
data
.
PersonnelNumber
=
request
.
PersonnelNumber
;
data
.
DoctorName
=
request
.
DoctorName
;
data
.
PerforType
=
request
.
PerforType
;
...
...
@@ -982,6 +1012,26 @@ public bool DeleteAprHide(int id)
return
true
;
}
/// <summary>
/// 提交、撤销医院不公示其他绩效
/// </summary>
/// <param name="allotId"></param>
/// <param name="department">录入科室</param>
/// <param name="status">1.撤销 2.提交</param>
/// <returns></returns>
public
bool
CommitAprHide
(
int
allotId
,
string
department
,
int
status
,
DateTime
date
)
{
var
list
=
status
==
1
?
GetAprHideByTypeInDepartment
(
allotId
,
department
,
date
,
2
)
// 撤销操作,获取已提交等待审核的数据
:
GetAprHideByTypeInDepartment
(
allotId
,
department
,
date
,
1
,
4
);
// 提交操作,获取未提交、驳回的数据
if
(
list
==
null
)
return
true
;
list
.
ForEach
(
t
=>
t
.
Status
=
status
);
_hideRepository
.
UpdateRange
(
list
.
ToArray
());
return
true
;
}
/// <summary>
/// 审核医院其他绩效
/// </summary>
...
...
@@ -1014,7 +1064,9 @@ public ApiResponse ConfirmAuditHide(int userid, AprAmountAuditRequest request)
if
(
error
.
Count
>
0
)
return
new
ApiResponse
(
ResponseType
.
WarningTable
,
"验证不通过,当前操作已拒绝"
,
error
);
var
allApramounts
=
_hideRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
request
.
AllotId
);
var
allApramounts
=
request
.
IsPass
==
1
?
GetAprHideByTypeInDepartment
(
request
.
AllotId
,
request
.
TypeInDepartment
,
request
.
CreateDate
,
2
)
// 获取等待审核的数据
:
GetAprHideByTypeInDepartment
(
request
.
AllotId
,
request
.
TypeInDepartment
,
request
.
CreateDate
,
2
,
3
);
// 获取等待审核、审核通过的数据
foreach
(
var
member
in
request
.
Members
)
{
var
apramounts
=
allApramounts
?.
Where
(
t
=>
(
t
.
PersonnelNumber
??
""
)
==
member
.
PersonnelNumber
);
...
...
@@ -1059,21 +1111,14 @@ public ApiResponse AprMarkHide(int userid, AprAmountMarkRequest request)
/// <param name="allotid"></param>
/// <param name="path"></param>
/// <param name="userid"></param>
public
void
Impoer
AprHideEmployees
(
int
allotid
,
string
path
,
int
userid
)
public
List
<
Dictionary
<
string
,
string
>>
Import
AprHideEmployees
(
int
allotid
,
string
path
,
int
userid
)
{
var
userrole
=
userroleRepository
.
GetEntity
(
t
=>
t
.
UserID
==
userid
);
if
(
userrole
==
null
)
throw
new
PerformanceException
(
"用户未绑定角色"
);
var
data
=
new
List
<
per_apr_amount_hide
>();
var
roles
=
new
int
[]
{
(
int
)
Role
.
绩效管理员
,
(
int
)
Role
.
医院管理员
,
(
int
)
Role
.
绩效核算办
,
(
int
)
Role
.
院领导
,
(
int
)
Role
.
审计
};
if
(
roles
.
Contains
(
userrole
.
RoleID
))
// 绩效管理员、医院管理员、绩效核算办查看所有科室的数据
data
=
_hideRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotid
&&
(
t
.
Amount
??
0
)
!=
0
);
else
data
=
_hideRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotid
&&
(
t
.
Amount
??
0
)
!=
0
&&
t
.
CreateUser
==
userid
);
if
(
data
!=
null
&&
data
.
Any
())
_hideRepository
.
RemoveRange
(
data
.
ToArray
());
List
<
Dictionary
<
string
,
string
>>
errors
=
new
List
<
Dictionary
<
string
,
string
>>();
var
typeIn
=
GetTypeInDepartment
(
userid
);
try
{
IWorkbook
workbook
=
null
;
...
...
@@ -1081,11 +1126,9 @@ public void ImpoerAprHideEmployees(int allotid, string path, int userid)
var
version
=
FileHelper
.
GetExtension
(
path
)
==
".xlsx"
?
ExcelVersion
.
xlsx
:
ExcelVersion
.
xls
;
using
(
FileStream
fs
=
new
FileStream
(
path
,
FileMode
.
OpenOrCreate
))
{
workbook
=
(
version
==
ExcelVersion
.
xlsx
)
?
(
IWorkbook
)(
new
XSSFWorkbook
(
fs
))
:
(
IWorkbook
)(
new
HSSFWorkbook
(
fs
));
workbook
=
version
==
ExcelVersion
.
xlsx
?
new
XSSFWorkbook
(
fs
)
:
new
HSSFWorkbook
(
fs
);
}
if
(
workbook
==
null
)
return
;
if
(
workbook
==
null
)
return
errors
;
var
sheet
=
workbook
.
GetSheetAt
(
0
);
var
firstRow
=
sheet
.
GetRow
(
0
);
...
...
@@ -1111,9 +1154,9 @@ public void ImpoerAprHideEmployees(int allotid, string path, int userid)
dict
[
key
]
=
excelheader
.
First
(
w
=>
w
.
Value
==
key
).
Key
;
}
var
employees
=
peremployeeRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotid
);
var
entities
=
new
List
<
per_apr_amount_hide
>();
var
createtime
=
DateTime
.
Now
;
var
typeIn
=
GetTypeInDepartment
(
userid
);
for
(
int
rowindex
=
1
;
rowindex
<
sheet
.
LastRowNum
+
1
;
rowindex
++)
{
var
row
=
sheet
.
GetRow
(
rowindex
);
...
...
@@ -1121,7 +1164,7 @@ public void ImpoerAprHideEmployees(int allotid, string path, int userid)
var
entity
=
new
per_apr_amount_hide
{
Status
=
2
,
Status
=
1
,
PersonnelNumber
=
dict
[
"人员工号"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"人员工号"
]).
GetValue
(),
DoctorName
=
dict
[
"姓名"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"姓名"
]).
GetValue
(),
PerforType
=
dict
[
"绩效类型"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"绩效类型"
]).
GetValue
(),
...
...
@@ -1132,19 +1175,43 @@ public void ImpoerAprHideEmployees(int allotid, string path, int userid)
CreateDate
=
createtime
,
CreateUser
=
userid
,
};
if
(
string
.
IsNullOrEmpty
(
entity
.
DoctorName
)
||
string
.
IsNullOrEmpty
(
entity
.
PersonnelNumber
))
errors
.
Add
(
new
Dictionary
<
string
,
string
>
{
{
"行号"
,
$"第
{
rowindex
}
行"
},
{
"人员工号"
,
entity
.
PersonnelNumber
},
{
"姓名"
,
entity
.
DoctorName
},
{
"来源"
,
"上传文件"
},
{
"错误原因"
,
"“关键信息缺失”请补全或删除"
},
});
var
employee
=
employees
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
entity
.
PersonnelNumber
);
if
(
employee
==
null
)
errors
.
Add
(
new
Dictionary
<
string
,
string
>
{
{
"行号"
,
$"第
{
rowindex
}
行"
},
{
"人员工号"
,
entity
.
PersonnelNumber
},
{
"姓名"
,
entity
.
DoctorName
},
{
"来源"
,
"上传文件"
},
{
"错误原因"
,
"“人员工号”错误,请修改或删除"
},
});
else
if
(
employee
.
DoctorName
!=
entity
.
DoctorName
)
errors
.
Add
(
new
Dictionary
<
string
,
string
>
{
{
"行号"
,
$"第
{
rowindex
}
行"
},
{
"人员工号"
,
entity
.
PersonnelNumber
},
{
"姓名"
,
entity
.
DoctorName
},
{
"来源"
,
"上传文件"
},
{
"错误原因"
,
"“姓名”错误,请修改或删除"
},
});
entities
.
Add
(
entity
);
}
// 补充核算单元
if
(
entities
.
Any
())
{
if
(
entities
.
Any
(
w
=>
string
.
IsNullOrEmpty
(
w
.
PersonnelNumber
)
&&
w
.
Amount
!=
0
))
throw
new
PerformanceException
(
"文件中存在“工号”为空的数据"
);
if
(
entities
.
Any
(
w
=>
string
.
IsNullOrEmpty
(
w
.
PerforType
)
&&
w
.
Amount
!=
0
))
throw
new
PerformanceException
(
"文件中存在“绩效类型”为空的数据"
);
if
(
errors
.
Count
==
0
&&
entities
.
Any
())
_hideRepository
.
AddRange
(
entities
.
ToArray
());
}
}
catch
(
PerformanceException
ex
)
{
throw
ex
;
...
...
@@ -1153,6 +1220,7 @@ public void ImpoerAprHideEmployees(int allotid, string path, int userid)
{
logger
.
LogError
(
ex
.
ToString
());
}
return
errors
;
}
/// <summary>
...
...
@@ -1836,6 +1904,78 @@ public void AuditGather(List<Gather> gather)
_service
.
SyncDataToResult
(
gatherFirst
.
AllotId
);
}
}
/// <summary>
/// 清理该科室录入数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public
bool
ClearAprData
(
AprAmountAuditRequest
request
)
{
var
data
=
perapramountRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
request
.
AllotId
&&
t
.
TypeInDepartment
==
request
.
TypeInDepartment
&&
t
.
CreateDate
==
request
.
CreateDate
);
if
(
data
==
null
||
!
data
.
Any
())
return
true
;
return
perapramountRepository
.
RemoveRange
(
data
.
ToArray
());
}
/// <summary>
/// 清理该科室录入不公示数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public
bool
ClearAprHideData
(
AprAmountAuditRequest
request
)
{
var
data
=
_hideRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
request
.
AllotId
&&
t
.
TypeInDepartment
==
request
.
TypeInDepartment
&&
t
.
CreateDate
==
request
.
CreateDate
);
if
(
data
==
null
||
!
data
.
Any
())
return
true
;
return
_hideRepository
.
RemoveRange
(
data
.
ToArray
());
}
/// <summary>
/// 根据录入科室获取其他绩效
/// </summary>
/// <param name="allotId"></param>
/// <param name="department">录入科室</param>
/// <param name="date"></param>
/// <param name="status">1.未提交 2.等待审核 3.审核通过 4.驳回</param>
/// <returns></returns>
public
List
<
per_apr_amount
>
GetAprByTypeInDepartment
(
int
allotId
,
string
department
,
DateTime
date
,
params
int
[]
status
)
{
Expression
<
Func
<
per_apr_amount
,
bool
>>
exp
=
(
w
)
=>
w
.
AllotId
==
allotId
&&
w
.
TypeInDepartment
==
department
&&
w
.
CreateDate
==
date
;
//if (!string.IsNullOrEmpty(date))
// exp = exp.And((w) => w.CreateDate.ToString("yyyy-MM-dd HH:mm:ss") == date);
if
(
status
!=
null
&&
status
.
Any
())
exp
=
exp
.
And
((
w
)
=>
status
.
Contains
(
w
.
Status
??
1
));
var
data
=
perapramountRepository
.
GetEntities
(
exp
);
return
data
;
}
/// <summary>
/// 根据录入科室获取不公示其他绩效
/// </summary>
/// <param name="allotId"></param>
/// <param name="department">录入科室</param>
/// <param name="date"></param>
/// <param name="status">1.未提交 2.等待审核 3.审核通过 4.驳回</param>
/// <returns></returns>
public
List
<
per_apr_amount_hide
>
GetAprHideByTypeInDepartment
(
int
allotId
,
string
department
,
DateTime
date
,
params
int
[]
status
)
{
Expression
<
Func
<
per_apr_amount_hide
,
bool
>>
exp
=
(
w
)
=>
w
.
AllotId
==
allotId
&&
w
.
TypeInDepartment
==
department
&&
w
.
CreateDate
==
date
;
//if (!string.IsNullOrEmpty(date))
// exp = exp.And((w) => w.CreateDate.ToString("yyyy-MM-dd HH:mm:ss") == date);
if
(
status
!=
null
&&
status
.
Any
())
exp
=
exp
.
And
((
w
)
=>
status
.
Contains
(
w
.
Status
??
1
));
var
data
=
_hideRepository
.
GetEntities
(
exp
);
return
data
;
}
}
public
class
ComparisonConfig
...
...
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