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
28bf32c3
Commit
28bf32c3
authored
Jun 23, 2021
by
钟博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
划拨申请,审核
parent
986568cb
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
616 additions
and
45 deletions
+616
-45
performance/Performance.Api/Controllers/AllotController.cs
+8
-1
performance/Performance.Api/Controllers/CostTransferController.cs
+97
-2
performance/Performance.Api/Properties/PublishProfiles/FolderProfile.pubxml
+1
-1
performance/Performance.Api/wwwroot/Performance.Api.xml
+26
-0
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+4
-1
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+168
-28
performance/Performance.DtoModels/Enum.cs
+4
-1
performance/Performance.DtoModels/Request/CostTransferRequest.cs
+4
-0
performance/Performance.DtoModels/Response/CostTransferResponse.cs
+46
-0
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
+4
-0
performance/Performance.EntityModels/Entity/cost_transfer_item.cs
+4
-0
performance/Performance.Services/CostTransfer/CostTransferService.cs
+250
-11
No files found.
performance/Performance.Api/Controllers/AllotController.cs
View file @
28bf32c3
...
...
@@ -34,6 +34,7 @@ public class AllotController : Controller
private
ILogger
<
AllotController
>
_logger
;
private
ClaimService
_claim
;
private
LogManageService
_logManageService
;
private
readonly
CostTransferService
costTransferService
;
private
IBackgroundTaskQueue
_backgroundTaskQueue
;
private
IServiceScopeFactory
_serviceScopeFactory
;
...
...
@@ -45,7 +46,8 @@ public class AllotController : Controller
IBackgroundTaskQueue
backgroundTaskQueue
,
IServiceScopeFactory
serviceScopeFactory
,
ClaimService
claim
,
LogManageService
logManageService
)
LogManageService
logManageService
,
CostTransferService
costTransferService
)
{
_allotService
=
allotService
;
_resultComputeService
=
resultComputeService
;
...
...
@@ -53,6 +55,7 @@ public class AllotController : Controller
_evn
=
evn
;
_claim
=
claim
;
_logManageService
=
logManageService
;
this
.
costTransferService
=
costTransferService
;
_configService
=
configService
;
_backgroundTaskQueue
=
backgroundTaskQueue
;
_serviceScopeFactory
=
serviceScopeFactory
;
...
...
@@ -96,6 +99,8 @@ public ApiResponse Insert([FromBody] AllotRequest request)
var
userId
=
_claim
.
GetUserId
();
var
result
=
_allotService
.
InsertAllot
(
request
,
userId
);
_configService
.
Copy
(
result
);
//带出上月划拨记录
costTransferService
.
IntoLastTiemData
(
request
.
HospitalId
.
Value
,
request
.
ID
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
...
...
@@ -421,6 +426,8 @@ public ApiResponse Issued([FromBody] AllotRequest request)
_allotService
.
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateSucceed
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateSucceed
));
// 科室下发
_resultComputeService
.
GenerateSecondAllot
(
allot
);
//绩效划拨,下发驳回
costTransferService
.
RejectedApplicat
(
allot
.
ID
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
...
...
performance/Performance.Api/Controllers/CostTransferController.cs
View file @
28bf32c3
using
Microsoft.AspNetCore.Mvc
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
Performance.Services
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
...
...
@@ -7,11 +9,104 @@
namespace
Performance.Api.Controllers
{
[
Route
(
"api/
costtransfer
"
)]
[
Route
(
"api/
[controller]
"
)]
public
class
CostTransferController
:
Controller
{
public
ApiResponse
SubmitApplications
()
private
readonly
CostTransferService
costTransferService
;
private
readonly
ClaimService
claim
;
private
readonly
RoleService
roleService
;
private
readonly
UserService
userService
;
public
CostTransferController
(
CostTransferService
costTransferService
,
ClaimService
claim
,
RoleService
roleService
,
UserService
userService
)
{
this
.
costTransferService
=
costTransferService
;
this
.
claim
=
claim
;
this
.
roleService
=
roleService
;
this
.
userService
=
userService
;
}
/// <summary>
/// 申请划拨
/// </summary>
/// <returns></returns>
[
Route
(
"submit"
)]
[
HttpPost
]
public
ApiResponse
SubmitApplications
([
FromBody
]
CostTransferRequest
request
)
{
if
(
request
.
AllotId
<=
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
result
=
costTransferService
.
Applicat
(
request
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
[
Route
(
"common/{hospitalId}/allot/{allotId}"
)]
[
HttpPost
]
public
ApiResponse
Common
(
int
hospitalId
,
int
allotId
)
{
if
(
hospitalId
<=
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数HospitalId无效!"
);
if
(
allotId
<=
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
userid
=
claim
.
GetUserId
();
var
user
=
userService
.
GetUser
(
userid
);
var
result
=
costTransferService
.
Common
(
allotId
,
hospitalId
);
result
.
deparment
=
user
.
Department
??
""
;
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
/// <summary>
/// 审核列表
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
[
Route
(
"auditlist/{allotId}"
)]
[
HttpPost
]
public
ApiResponse
AuditList
(
int
allotId
)
{
if
(
allotId
<=
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
userid
=
claim
.
GetUserId
();
var
user
=
userService
.
GetUser
(
userid
);
var
role
=
roleService
.
GetARole
(
user
.
UserID
);
var
result
=
costTransferService
.
GetAuditList
(
allotId
,
role
.
Type
.
Value
,
user
.
Department
);
return
new
ApiResponse
(
ResponseType
.
OK
,
result
);
}
/// <summary>
/// 划拨审核
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"costtransferaudit"
)]
[
HttpPost
]
public
ApiResponse
Audit
([
FromBody
]
CostTransferUpdateRequest
request
)
{
if
(
request
.
AllotId
<=
0
)
return
new
ApiResponse
(
ResponseType
.
ParameterError
,
"参数AllotId无效!"
);
var
userid
=
claim
.
GetUserId
();
var
user
=
userService
.
GetUser
(
userid
);
var
role
=
roleService
.
GetARole
(
user
.
UserID
);
var
roleArr
=
new
[]
{
1
,
2
,
5
};
if
(
roleArr
.
Contains
(
role
.
Type
.
Value
))
costTransferService
.
CostTransferAudit
(
request
,
true
);
else
costTransferService
.
CostTransferAudit
(
request
,
false
);
return
new
ApiResponse
(
ResponseType
.
OK
);
}
}
...
...
performance/Performance.Api/Properties/PublishProfiles/FolderProfile.pubxml
View file @
28bf32c3
...
...
@@ -10,7 +10,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
<PublishUrl>
bin\Release\netcoreapp2.2\publish\
</PublishUrl>
<PublishUrl>
D:\publish\jx.suvalue.com2
</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>netcoreapp2.2</TargetFramework>
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
28bf32c3
...
...
@@ -697,6 +697,32 @@
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.CostTransferController.SubmitApplications(Performance.DtoModels.CostTransferRequest)"
>
<summary>
申请划拨
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.CostTransferController.Common(System.Int32,System.Int32)"
>
<summary>
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.CostTransferController.AuditList(System.Int32)"
>
<summary>
审核列表
</summary>
<param
name=
"allotId"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.CostTransferController.Audit(Performance.DtoModels.CostTransferUpdateRequest)"
>
<summary>
划拨审核
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.EmployeeController.GetEmployeeList(Performance.DtoModels.EmployeeRequest)"
>
<summary>
获取人员列表
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
28bf32c3
...
...
@@ -158,11 +158,14 @@
<summary>
归档
</summary>
</member>
<member
name=
"F:Performance.DtoModels.AllotStates.Wait"
>
<summary>
归档
</summary>
<summary>
等待
</summary>
</member>
<member
name=
"F:Performance.DtoModels.AllotStates.GenerateAccomplish"
>
<summary>
绩效结果解析成功
</summary>
</member>
<member
name=
"F:Performance.DtoModels.AllotStates.Issue"
>
<summary>
下发
</summary>
</member>
<member
name=
"F:Performance.DtoModels.AgWorkloadType.SingleAwards"
>
<summary>
单项奖励
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
28bf32c3
...
...
@@ -1181,7 +1181,7 @@
</member>
<member
name=
"P:Performance.EntityModels.ag_secondallot.SubmitType"
>
<summary>
提交类型 1
使用模板 2 其他类型数据
提交类型 1使用模板 2 其他类型数据
</summary>
</member>
<member
name=
"P:Performance.EntityModels.ag_secondallot.SubmitTime"
>
...
...
@@ -1381,7 +1381,7 @@
</member>
<member
name=
"P:Performance.EntityModels.ag_workload.WorkTypeId"
>
<summary>
1、单项奖励 2
、工作量占比 ..(自定义占比)
-1、单项奖励 0
、工作量占比 ..(自定义占比)
</summary>
</member>
<member
name=
"T:Performance.EntityModels.ag_workload_source"
>
...
...
@@ -1431,12 +1431,12 @@
</member>
<member
name=
"P:Performance.EntityModels.ag_workload_source.WorkTypeId"
>
<summary>
1、单项奖励 2
、工作量占比 ..(自定义占比)
-1、单项奖励 0
、工作量占比 ..(自定义占比)
</summary>
</member>
<member
name=
"T:Performance.EntityModels.ag_workload_type"
>
<summary>
二次绩效工作量绩效分类
</summary>
</member>
<member
name=
"P:Performance.EntityModels.ag_workload_type.Id"
>
...
...
@@ -1689,6 +1689,41 @@
参数值
</summary>
</member>
<member
name=
"T:Performance.EntityModels.cof_alias"
>
<summary>
别名配置
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_alias.Id"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_alias.Route"
>
<summary>
前端路由地址
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_alias.Name"
>
<summary>
描述名称
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_alias.OriginalName"
>
<summary>
原始名
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_alias.Alias"
>
<summary>
别名
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cof_alias.States"
>
<summary>
状态 1 可用 0 禁用
</summary>
</member>
<member
name=
"T:Performance.EntityModels.cof_check"
>
<summary>
上传excel文件校验配置
...
...
@@ -2194,6 +2229,111 @@
是否附带上次绩效 0 附带 1 不附带
</summary>
</member>
<member
name=
"T:Performance.EntityModels.cost_transfer"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer.Id"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer.AllotId"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer.ApplicantUnitType"
>
<summary>
申请者核算单元类型
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer.ApplicantDepartment"
>
<summary>
申请者科室
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer.AdoptedUnitType"
>
<summary>
审核者核算单元类型
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer.AdoptedDepartment"
>
<summary>
审核者科室
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer.Status"
>
<summary>
0 未审核 1 部分审核 2 全部审核 3 未含有划拨明细
</summary>
</member>
<member
name=
"T:Performance.EntityModels.cost_transfer_item"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.Id"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.TransferId"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.Source"
>
<summary>
来源,sheet名称
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.Category"
>
<summary>
费用类型
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.Amount"
>
<summary>
金额
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.Ratio"
>
<summary>
分割比例
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.CalculationAmount"
>
<summary>
实际金额
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.IsUseRatio"
>
<summary>
是否使用分割比例
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.Remark"
>
<summary>
备注
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.Status"
>
<summary>
0 默认 1 通过 2 驳回 3 下发驳回
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.AdminStatus"
>
<summary>
0 默认 1 通过 2 驳回 3 下发驳回
</summary>
</member>
<member
name=
"P:Performance.EntityModels.cost_transfer_item.IsWrited"
>
<summary>
数据是否被写入
</summary>
</member>
<member
name=
"T:Performance.EntityModels.cust_script"
>
<summary>
自定义导出
...
...
@@ -2860,19 +3000,19 @@
</summary>
</member>
<member
name=
"T:Performance.EntityModels.his_script"
>
<summary>
<summary>
</summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.his_script.Id"
>
<summary>
<summary>
</summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.his_script.HospitalId"
>
<summary>
<summary>
</summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.his_script.SourceType"
>
<summary>
...
...
@@ -4416,7 +4556,7 @@
</member>
<member
name=
"T:Performance.EntityModels.per_apr_amount_hide"
>
<summary>
医院其他绩效
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_apr_amount_hide.Id"
>
...
...
@@ -4944,24 +5084,24 @@
医院Id
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_dept_dic.
CreateTime
"
>
<member
name=
"P:Performance.EntityModels.per_dept_dic.
IsVerify
"
>
<summary>
0 未通过验证 1 通过验证
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_dept_dic.
CreateUser
"
>
<member
name=
"P:Performance.EntityModels.per_dept_dic.
VerifyMessage
"
>
<summary>
验证失败描述
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_dept_dic.
IsVerify
"
>
<member
name=
"P:Performance.EntityModels.per_dept_dic.
CreateTime
"
>
<summary>
0 未通过验证 1 通过验证
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_dept_dic.
VerifyMessage
"
>
<member
name=
"P:Performance.EntityModels.per_dept_dic.
CreateUser
"
>
<summary>
验证失败描述
</summary>
</member>
<member
name=
"T:Performance.EntityModels.per_employee"
>
...
...
@@ -5026,7 +5166,7 @@
</member>
<member
name=
"P:Performance.EntityModels.per_employee.UnitType"
>
<summary>
核算单元
类别
人员
类别
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_employee.Attendance"
>
...
...
@@ -5079,24 +5219,24 @@
备注
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_employee.
CreateTime
"
>
<member
name=
"P:Performance.EntityModels.per_employee.
IsVerify
"
>
<summary>
0 未通过验证 1 通过验证
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_employee.
CreateUser
"
>
<member
name=
"P:Performance.EntityModels.per_employee.
VerifyMessage
"
>
<summary>
验证失败描述
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_employee.
IsVerify
"
>
<member
name=
"P:Performance.EntityModels.per_employee.
CreateTime
"
>
<summary>
0 未通过验证 1 通过验证
</summary>
</member>
<member
name=
"P:Performance.EntityModels.per_employee.
VerifyMessage
"
>
<member
name=
"P:Performance.EntityModels.per_employee.
CreateUser
"
>
<summary>
验证失败描述
</summary>
</member>
<member
name=
"T:Performance.EntityModels.per_first"
>
...
...
performance/Performance.DtoModels/Enum.cs
View file @
28bf32c3
...
...
@@ -74,12 +74,15 @@ public enum AllotStates
/// <summary> 归档 </summary>
[
Description
(
"归档"
)]
Archive
=
8
,
/// <summary>
归档
</summary>
/// <summary>
等待
</summary>
[
Description
(
"等待"
)]
Wait
=
9
,
/// <summary> 绩效结果解析成功 </summary>
[
Description
(
"数据验证通过"
)]
GenerateAccomplish
=
10
,
/// <summary> 下发 </summary>
[
Description
(
"下发"
)]
Issue
=
11
}
public
enum
AgWorkloadType
...
...
performance/Performance.DtoModels/Request/CostTransferRequest.cs
View file @
28bf32c3
...
...
@@ -27,6 +27,10 @@ public class CostTransferUpdateRequest : CostTransferRequest
{
public
int
TransferId
{
get
;
set
;
}
public
int
[]
TransferItemId
{
get
;
set
;
}
public
int
Status
{
get
;
set
;
}
public
new
List
<
cost_transfer_item
>
Items
{
get
;
set
;
}
}
}
performance/Performance.DtoModels/Response/CostTransferResponse.cs
0 → 100644
View file @
28bf32c3
using
Performance.EntityModels
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.DtoModels
{
public
class
CostTransferResponse
{
public
int
Id
{
get
;
set
;
}
public
string
AdoptedDepartment
{
get
;
set
;
}
public
string
AdoptedUnitType
{
get
;
set
;
}
public
string
ApplicantDepartment
{
get
;
set
;
}
public
string
ApplicantUnitType
{
get
;
set
;
}
public
string
Source
{
get
;
set
;
}
public
string
Category
{
get
;
set
;
}
public
Nullable
<
decimal
>
Amount
{
get
;
set
;
}
public
Nullable
<
decimal
>
Ratio
{
get
;
set
;
}
public
Nullable
<
decimal
>
CalculationAmount
{
get
;
set
;
}
public
string
Remark
{
get
;
set
;
}
public
int
Status
{
get
;
set
;
}
public
int
AdminStatus
{
get
;
set
;
}
//public List<TransferItemResponse> costTransferItem { get; set; }
}
public
class
CommonResponse
{
public
string
deparment
{
get
;
set
;
}
public
string
unitType
{
get
;
set
;
}
public
IEnumerable
<
TitleValue
>
drugType
{
get
;
set
;
}
public
IEnumerable
<
TitleValue
>
sheets
{
get
;
set
;
}
//public List<cof_accounting> accounting { get; set; }
public
IEnumerable
<
TitleValue
>
dept
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
View file @
28bf32c3
...
...
@@ -92,6 +92,10 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public
virtual
DbSet
<
collect_data
>
collect_data
{
get
;
set
;
}
/// <summary> </summary>
public
virtual
DbSet
<
collect_permission
>
collect_permission
{
get
;
set
;
}
public
virtual
DbSet
<
cost_transfer
>
cost_transfer
{
get
;
set
;
}
public
virtual
DbSet
<
cost_transfer_item
>
cost_transfer_item
{
get
;
set
;
}
/// <summary> 自定义导出 </summary>
public
virtual
DbSet
<
cust_script
>
cust_script
{
get
;
set
;
}
/// <summary> </summary>
...
...
performance/Performance.EntityModels/Entity/cost_transfer_item.cs
View file @
28bf32c3
...
...
@@ -67,6 +67,10 @@ public class cost_transfer_item
public
int
Status
{
get
;
set
;
}
/// <summary>
/// 0 默认 1 通过 2 驳回 3 下发驳回
/// </summary>
public
int
AdminStatus
{
get
;
set
;
}
/// <summary>
/// 数据是否被写入
/// </summary>
public
int
IsWrited
{
get
;
set
;
}
...
...
performance/Performance.Services/CostTransfer/CostTransferService.cs
View file @
28bf32c3
using
Microsoft.EntityFrameworkCore.Internal
;
using
Microsoft.Extensions.Logging
;
using
Microsoft.Extensions.Options
;
using
OfficeOpenXml.FormulaParsing.Excel.Functions.Text
;
using
Performance.DtoModels
;
using
Performance.DtoModels.AppSettings
;
using
Performance.EntityModels
;
using
Performance.Infrastructure
;
using
Performance.Repository
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Linq.Expressions
;
namespace
Performance.Services
{
public
class
CostTransferService
:
IAutoInjection
{
private
readonly
ILogger
<
CostTransferService
>
logger
;
private
readonly
Application
application
;
private
readonly
PerforCosttransferRepository
costtransferRepository
;
private
readonly
PerforCosttransferitemRepository
costtransferitemRepository
;
private
readonly
PerforCofdrugtypeRepository
cofdrugtypeRepository
;
private
readonly
PerforPersheetRepository
persheetRepository
;
private
readonly
PerforCofaccountingRepository
cofaccountingRepository
;
private
readonly
PerforPerdeptdicRepository
perdeptdicRepository
;
private
readonly
PerforPerallotRepository
perallotRepository
;
public
CostTransferService
(
ILogger
<
CostTransferService
>
logger
,
IOptions
<
Application
>
application
,
PerforCosttransferRepository
costtransferRepository
,
PerforCosttransferitemRepository
costtransferitemRepository
PerforCosttransferitemRepository
costtransferitemRepository
,
PerforCofdrugtypeRepository
cofdrugtypeRepository
,
PerforPersheetRepository
persheetRepository
,
PerforCofaccountingRepository
cofaccountingRepository
,
PerforPerdeptdicRepository
perdeptdicRepository
,
PerforPerallotRepository
perallotRepository
)
{
this
.
logger
=
logger
;
this
.
application
=
application
.
Value
;
this
.
costtransferRepository
=
costtransferRepository
;
this
.
costtransferitemRepository
=
costtransferitemRepository
;
this
.
cofdrugtypeRepository
=
cofdrugtypeRepository
;
this
.
persheetRepository
=
persheetRepository
;
this
.
cofaccountingRepository
=
cofaccountingRepository
;
this
.
perdeptdicRepository
=
perdeptdicRepository
;
this
.
perallotRepository
=
perallotRepository
;
}
/// <summary>
/// 审核页面
/// </summary>
/// <param name="allotId"></param>
/// <param name="Department"></param>
/// <returns></returns>
public
List
<
CostTransferResponse
>
GetAuditList
(
int
allotId
,
int
roleType
,
string
Department
)
{
var
roleTypes
=
new
[]
{
1
,
2
,
5
}.
Contains
(
roleType
);
Expression
<
Func
<
cof_accounting
,
bool
>>
exp
=
t
=>
t
.
AllotId
==
allotId
&&
t
.
AccountingUnit
==
Department
;
if
(
roleType
==
application
.
DirectorRole
)
exp
=
exp
.
And
(
t
=>
new
List
<
string
>
{
UnitType
.
医生组
.
ToString
(),
UnitType
.
医技组
.
ToString
()
}.
Contains
(
t
.
UnitType
));
else
if
(
roleType
==
application
.
NurseRole
)
exp
=
exp
.
And
(
t
=>
t
.
UnitType
==
UnitType
.
护理组
.
ToString
());
else
if
(
roleType
==
application
.
SpecialRole
)
exp
=
exp
.
And
(
t
=>
t
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
());
else
if
(
roleType
==
application
.
OfficeRole
)
exp
=
exp
.
And
(
t
=>
t
.
UnitType
==
UnitType
.
行政后勤
.
ToString
());
var
account
=
cofaccountingRepository
.
GetEntity
(
exp
);
Expression
<
Func
<
cost_transfer
,
bool
>>
expCost
=
t
=>
t
.
AllotId
==
allotId
;
if
(
roleType
==
application
.
DirectorRole
)
exp
=
exp
.
And
(
t
=>
new
List
<
string
>
{
UnitType
.
医生组
.
ToString
(),
UnitType
.
医技组
.
ToString
()
}.
Contains
(
t
.
UnitType
));
else
if
(
roleType
==
application
.
NurseRole
)
exp
=
exp
.
And
(
t
=>
t
.
UnitType
==
UnitType
.
护理组
.
ToString
());
else
if
(
roleType
==
application
.
SpecialRole
)
exp
=
exp
.
And
(
t
=>
t
.
UnitType
==
UnitType
.
特殊核算组
.
ToString
());
else
if
(
roleType
==
application
.
OfficeRole
)
exp
=
exp
.
And
(
t
=>
t
.
UnitType
==
UnitType
.
行政后勤
.
ToString
());
var
costTransfers
=
costtransferRepository
.
GetEntities
(
expCost
);
if
(!
roleTypes
)
costTransfers
=
costTransfers
?.
FindAll
(
t
=>
t
.
AdoptedDepartment
==
Department
);
if
(
costTransfers
==
null
||
!
costTransfers
.
Any
())
return
new
List
<
CostTransferResponse
>();
var
response
=
new
List
<
CostTransferResponse
>();
var
costsId
=
costTransfers
?.
Select
(
w
=>
w
.
Id
);
//var transfer = costTransfers.FirstOrDefault();
var
costItem
=
costtransferitemRepository
.
GetEntities
(
t
=>
costsId
.
Contains
(
t
.
TransferId
));
//如果是绩效办显示已经被科室同意的数据
if
(
roleTypes
)
costItem
=
costItem
?.
FindAll
(
t
=>
t
.
Status
==
1
);
foreach
(
var
item
in
costTransfers
)
{
var
cost
=
costItem
.
Where
(
t
=>
t
.
TransferId
==
item
.
Id
)?.
Select
(
t
=>
new
CostTransferResponse
{
Id
=
t
.
Id
,
AdoptedDepartment
=
roleTypes
?
item
.
AdoptedDepartment
:
account
?.
AccountingUnit
,
AdoptedUnitType
=
roleTypes
?
item
.
AdoptedUnitType
:
account
?.
UnitType
,
ApplicantDepartment
=
item
.
ApplicantDepartment
,
ApplicantUnitType
=
item
.
ApplicantUnitType
,
Source
=
t
.
Source
,
Category
=
t
.
Category
,
Amount
=
t
.
Amount
,
Ratio
=
t
.
Ratio
,
CalculationAmount
=
t
.
CalculationAmount
,
Status
=
t
.
Status
,
AdminStatus
=
t
.
AdminStatus
,
Remark
=
t
.
Remark
}).
ToList
();
response
.
AddRange
(
cost
);
}
return
response
;
}
/// <summary>
/// 申请页面下拉选项
/// </summary>
/// <param name="allotId"></param>
/// <param name="hospitalId"></param>
/// <returns></returns>
public
CommonResponse
Common
(
int
allotId
,
int
hospitalId
)
{
var
common
=
new
CommonResponse
();
var
sheetList
=
new
TitleValue
[]
{
new
TitleValue
{
Title
=
"1.0.1 额外收入"
,
Value
=
"1.0.1 额外收入"
},
new
TitleValue
{
Title
=
"1.1.1 门诊开单收入"
,
Value
=
"1.1.1 门诊开单收入"
},
new
TitleValue
{
Title
=
"1.1.2 门诊执行收入"
,
Value
=
"1.1.2 门诊执行收入"
},
new
TitleValue
{
Title
=
"1.2.1 住院开单收入"
,
Value
=
"1.2.1 住院开单收入"
},
new
TitleValue
{
Title
=
"1.2.2 住院执行收入"
,
Value
=
"1.2.2 住院执行收入"
},
new
TitleValue
{
Title
=
"2.1 成本支出统计表"
,
Value
=
"2.1 成本支出统计表"
},
new
TitleValue
{
Title
=
"3.1 医生组工作量绩效测算表"
,
Value
=
"3.1 医生组工作量绩效测算表"
},
new
TitleValue
{
Title
=
"3.2 护理组工作量绩效测算表"
,
Value
=
"3.2 护理组工作量绩效测算表"
},
};
var
drugType
=
cofdrugtypeRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
hospitalId
&&
t
.
AllotID
==
allotId
)
?.
Select
(
t
=>
new
TitleValue
{
Title
=
t
.
Charge
,
Value
=
t
.
Charge
}).
ToDistinct
();
var
sheet
=
persheetRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
)
?.
Select
(
t
=>
new
TitleValue
{
Title
=
t
.
SheetName
,
Value
=
t
.
SheetName
}).
ToDistinct
();
//var account = cofaccountingRepository.GetEntities(t => t.AllotId == allotId);
var
dept
=
perdeptdicRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
hospitalId
)
?.
Select
(
t
=>
new
TitleValue
{
Title
=
t
.
AccountingUnit
,
Value
=
t
.
AccountingUnit
}).
ToDistinct
();
common
.
drugType
=
drugType
;
common
.
sheets
=
sheet
??
sheetList
.
ToList
();
//common.accounting = account ?? new List<cof_accounting>();
common
.
dept
=
dept
;
return
common
;
}
/// <summary>
...
...
@@ -43,6 +177,14 @@ public bool Applicat(CostTransferRequest request)
if
(
string
.
IsNullOrEmpty
(
request
.
Adopted
.
UnitType
)
||
string
.
IsNullOrEmpty
(
request
.
Adopted
.
Department
))
throw
new
PerformanceException
(
"参数错误,被划拨科室信息缺失"
);
if
(
request
.
Items
==
null
||
!
request
.
Items
.
Any
())
throw
new
PerformanceException
(
"参数错误,申请条目为空"
);
if
(
request
.
Adopted
.
Department
==
request
.
Applicant
.
Department
&&
request
.
Adopted
.
UnitType
==
request
.
Applicant
.
UnitType
)
throw
new
PerformanceException
(
"参数错误,提交科室相同"
);
var
allot
=
perallotRepository
.
GetEntity
(
t
=>
t
.
ID
==
request
.
AllotId
);
var
allotStatus
=
new
[]
{
(
int
)
AllotStates
.
Issue
,
(
int
)
AllotStates
.
Archive
};
var
transfer
=
new
cost_transfer
{
AllotId
=
request
.
AllotId
,
...
...
@@ -50,27 +192,26 @@ public bool Applicat(CostTransferRequest request)
ApplicantUnitType
=
request
.
Applicant
.
UnitType
,
AdoptedDepartment
=
request
.
Adopted
.
Department
,
AdoptedUnitType
=
request
.
Adopted
.
UnitType
,
Status
=
(
request
.
Items
!=
null
&&
request
.
Items
.
Any
())
?
0
:
3
Status
=
allotStatus
.
Contains
(
allot
.
States
)
?
2
:
0
};
var
result
=
costtransferRepository
.
Add
(
transfer
);
if
(!
result
)
throw
new
PerformanceException
(
"提交申请失败,请重试"
);
if
(
request
.
Items
==
null
||
!
request
.
Items
.
Any
())
return
result
;
var
items
=
request
.
Items
.
Select
(
t
=>
new
cost_transfer_item
var
items
=
request
.
Items
?.
Select
(
t
=>
new
cost_transfer_item
{
TransferId
=
transfer
.
Id
,
Source
=
t
.
Source
,
Category
=
t
.
Source
,
Category
=
t
.
Category
,
Amount
=
t
.
Amount
,
Ratio
=
t
.
Ratio
,
CalculationAmount
=
t
.
CalculationAmount
,
IsUseRatio
=
t
.
IsUseRatio
,
Remark
=
t
.
Remark
,
Status
=
0
Status
=
allotStatus
.
Contains
(
allot
.
States
)
?
3
:
0
,
AdminStatus
=
allotStatus
.
Contains
(
allot
.
States
)
?
3
:
0
}).
ToArray
();
result
=
costtransferitemRepository
.
AddRange
(
items
);
...
...
@@ -192,9 +333,33 @@ public void DeleteApplicat(int transferId)
/// <summary>
/// 划拨审核
/// </summary>
public
void
CostTransferAudit
(
)
public
bool
CostTransferAudit
(
CostTransferUpdateRequest
request
,
bool
isAdmin
)
{
var
costItems
=
costtransferitemRepository
.
GetEntities
(
t
=>
request
.
TransferItemId
.
Contains
(
t
.
Id
));
var
transferId
=
costItems
?.
Select
(
t
=>
t
.
TransferId
).
Distinct
();
var
transfers
=
costtransferRepository
.
GetEntities
(
t
=>
transferId
.
Contains
(
t
.
Id
));
if
(
transfers
.
Any
(
t
=>
t
.
AllotId
!=
request
.
AllotId
))
return
false
;
if
(
isAdmin
)
{
costItems
=
costItems
?.
FindAll
(
t
=>
t
.
AdminStatus
==
0
);
costItems
.
ForEach
(
t
=>
t
.
AdminStatus
=
request
.
Status
);
}
else
{
costItems
=
costItems
?.
FindAll
(
t
=>
t
.
Status
==
0
);
costItems
.
ForEach
(
t
=>
t
.
Status
=
request
.
Status
);
}
//if (costItems == null || !costItems.Any()) return;
var
result
=
costtransferitemRepository
.
UpdateRange
(
costItems
.
ToArray
());
if
(
result
)
foreach
(
var
item
in
transferId
)
{
UpdateCostTransferStatus
(
item
);
}
return
result
;
}
/// <summary>
...
...
@@ -206,15 +371,89 @@ public void CostTransferAudit()
/// <returns></returns>
public
bool
RejectedApplicat
(
int
allotId
,
int
transferId
=
0
,
bool
issue
=
false
)
{
if
(
issue
)
var
costTransfers
=
costtransferRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
&&
(
t
.
Status
==
0
||
t
.
Status
==
1
));
if
(
costTransfers
==
null
||
!
costTransfers
.
Any
())
return
true
;
var
costId
=
costTransfers
?.
Select
(
t
=>
t
.
Id
);
var
costItems
=
costtransferitemRepository
.
GetEntities
(
t
=>
costId
.
Contains
(
t
.
TransferId
));
costItems
.
ForEach
(
t
=>
{
t
.
Status
=
3
;
t
.
AdminStatus
=
3
;
});
}
costTransfers
.
ForEach
(
t
=>
{
t
.
Status
=
2
;
});
costtransferitemRepository
.
UpdateRange
(
costItems
.
ToArray
());
costtransferRepository
.
UpdateRange
(
costTransfers
.
ToArray
());
return
false
;
}
/// <summary>
/// 带入下个月数据
/// </summary>
/// <param name="hospitalId"></param>
/// <param name="allotId"></param>
public
void
IntoLastTiemData
(
int
hospitalId
,
int
allotId
)
{
var
allotList
=
perallotRepository
.
GetEntities
(
w
=>
w
.
HospitalId
==
hospitalId
)?.
OrderBy
(
s
=>
s
.
Year
).
ThenBy
(
s
=>
s
.
Month
).
ToList
();
if
(
allotList
==
null
||
!
allotList
.
Any
())
throw
new
PerformanceException
(
"未查询到符合的绩效记录"
);
var
allot
=
allotList
.
FirstOrDefault
(
w
=>
w
.
ID
==
allotId
);
if
(
allot
==
null
)
throw
new
PerformanceException
(
"未查询到符合的绩效记录"
);
var
index
=
allotList
.
IndexOf
(
allot
);
if
(
index
==
0
)
return
;
var
prevAllot
=
allotList
[
index
-
1
];
var
transfers
=
costtransferRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
prevAllot
.
ID
);
if
(
transfers
==
null
||
!
transfers
.
Any
())
return
;
var
transferLastId
=
transfers
.
Select
(
t
=>
t
.
Id
);
var
costItems
=
costtransferitemRepository
.
GetEntities
(
t
=>
transferLastId
.
Contains
(
t
.
TransferId
)
&&
(
t
.
Status
==
3
||
t
.
AdminStatus
==
3
));
if
(
costItems
==
null
||
!
costItems
.
Any
())
return
;
var
costItemLastId
=
costItems
.
Select
(
t
=>
t
.
TransferId
).
Distinct
();
var
transferLast
=
transfers
.
Where
(
t
=>
costItemLastId
.
Contains
(
t
.
Id
));
foreach
(
var
item
in
transferLast
)
{
var
newTransfers
=
new
cost_transfer
();
newTransfers
.
AllotId
=
allotId
;
newTransfers
.
ApplicantDepartment
=
item
.
ApplicantDepartment
;
newTransfers
.
ApplicantUnitType
=
item
.
ApplicantUnitType
;
newTransfers
.
AdoptedDepartment
=
item
.
AdoptedDepartment
;
newTransfers
.
AdoptedUnitType
=
item
.
AdoptedUnitType
;
newTransfers
.
Status
=
0
;
costtransferRepository
.
Add
(
newTransfers
);
var
newCostItem
=
costItems
.
Where
(
t
=>
t
.
TransferId
==
item
.
Id
).
Select
(
t
=>
new
cost_transfer_item
{
TransferId
=
newTransfers
.
Id
,
Source
=
t
.
Source
,
Category
=
t
.
Category
,
Amount
=
t
.
Amount
,
Ratio
=
t
.
Ratio
,
CalculationAmount
=
t
.
CalculationAmount
,
IsUseRatio
=
t
.
IsUseRatio
,
Remark
=
t
.
Remark
,
Status
=
0
,
AdminStatus
=
0
,
IsWrited
=
t
.
IsWrited
}).
ToArray
();
costtransferitemRepository
.
AddRange
(
newCostItem
);
}
}
/// <summary>
/// 修改申请记录的状态
/// </summary>
/// <param name="transferId"></param>
...
...
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