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
4433472b
Commit
4433472b
authored
Mar 09, 2021
by
lcx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改返回signalr的方法
parent
7157d4fc
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
440 additions
and
136 deletions
+440
-136
performance/Performance.Api/Controllers/AllotController.cs
+27
-26
performance/Performance.Api/wwwroot/Performance.Api.xml
+34
-0
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
+70
-0
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
+63
-0
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
+3
-0
performance/Performance.DtoModels/Hubs/Enum.cs
+1
-1
performance/Performance.DtoModels/Hubs/MessageInfo.cs
+11
-3
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
+3
-0
performance/Performance.EntityModels/Entity/log_signalr.cs
+69
-0
performance/Performance.Repository/Repository/PerforLogdsignalrRepository.cs
+20
-0
performance/Performance.Services/AllotService.cs
+90
-86
performance/Performance.Services/Hubs/AllotLogHub.cs
+25
-17
performance/Performance.Services/Hubs/NotificationsService.cs
+24
-3
No files found.
performance/Performance.Api/Controllers/AllotController.cs
View file @
4433472b
...
...
@@ -24,35 +24,34 @@ namespace Performance.Api.Controllers
[
Route
(
"api/[controller]"
)]
public
class
AllotController
:
Controller
{
private
AllotService
_allotService
;
private
ResultComputeService
_resultComputeService
;
private
ConfigService
_configService
;
private
IHostingEnvironment
_evn
;
private
ILogger
<
AllotController
>
_logger
;
private
ClaimService
_claim
;
private
LogManageService
_logManageService
;
private
IBackgroundTaskQueue
_backgroundTaskQueue
;
private
IServiceScopeFactory
_serviceScopeFactory
;
public
AllotController
(
AllotService
allotService
,
ResultComputeService
resultComputeService
,
ConfigService
configService
,
ILogger
<
AllotController
>
logger
,
private
readonly
IHostingEnvironment
_evn
;
private
readonly
ClaimService
_claim
;
private
readonly
IBackgroundTaskQueue
_backgroundTaskQueue
;
private
readonly
IServiceScopeFactory
_serviceScopeFactory
;
private
readonly
AllotService
_allotService
;
private
readonly
ConfigService
_configService
;
private
readonly
NotificationsService
_notificationsService
;
private
readonly
ResultComputeService
_resultComputeService
;
public
AllotController
(
IHostingEnvironment
evn
,
ClaimService
claim
,
IBackgroundTaskQueue
backgroundTaskQueue
,
IServiceScopeFactory
serviceScopeFactory
,
ClaimService
claim
,
LogManageService
logManageService
)
AllotService
allotService
,
ConfigService
configService
,
NotificationsService
notificationsService
,
ResultComputeService
resultComputeService
)
{
_allotService
=
allotService
;
_resultComputeService
=
resultComputeService
;
_logger
=
logger
;
_evn
=
evn
;
_claim
=
claim
;
_logManageService
=
logManageService
;
_configService
=
configService
;
_backgroundTaskQueue
=
backgroundTaskQueue
;
_serviceScopeFactory
=
serviceScopeFactory
;
_allotService
=
allotService
;
_configService
=
configService
;
_notificationsService
=
notificationsService
;
_resultComputeService
=
resultComputeService
;
}
/// <summary>
...
...
@@ -177,7 +176,7 @@ public ApiResponse Import([FromForm] IFormCollection form)
/// <summary>
/// 上传文件
/// </summary>
/// <param name="
form
"></param>
/// <param name="
allotId
"></param>
/// <returns></returns>
[
Route
(
"ImportExtraction/{allotId}"
)]
[
HttpPost
]
...
...
@@ -236,11 +235,13 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody] A
if
(
allot
.
States
==
(
int
)
AllotStates
.
Wait
)
return
new
ApiResponse
(
ResponseType
.
OK
,
"当前绩效正在等待生成"
);
_logManageService
.
WriteMsg
(
"生成绩效准备中"
,
$"准备生成
{
allot
.
Year
}
-
{
allot
.
Month
.
ToString
().
PadLeft
(
2
,
'0'
)}
月份绩效,请稍等!"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
int
userId
=
_claim
.
GetUserId
();
var
uuid
=
Guid
.
NewGuid
().
ToString
(
"N"
);
_notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
$"准备生成
{
allot
.
Year
}
-
{
allot
.
Month
.
ToString
().
PadLeft
(
2
,
'0'
)}
月份绩效,请稍等!"
);
_allotService
.
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
Wait
,
EnumHelper
.
GetDescription
(
AllotStates
.
Wait
),
allot
.
Generate
);
if
(
_evn
.
IsEnvironment
(
"Localhost"
))
{
_allotService
.
Generate
(
allot
,
email
);
_allotService
.
Generate
(
allot
,
email
,
uuid
,
userId
);
}
else
{
...
...
@@ -251,13 +252,13 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody] A
using
(
var
scope
=
_serviceScopeFactory
.
CreateScope
())
{
var
scopedServices
=
scope
.
ServiceProvider
.
GetRequiredService
<
AllotService
>();
scopedServices
.
Generate
(
allot
,
email
);
scopedServices
.
Generate
(
allot
,
email
,
uuid
,
userId
);
await
Task
.
Delay
(
TimeSpan
.
FromSeconds
(
5
),
token
);
}
});
}
_
logManageService
.
WriteMsg
(
"等待绩效生成"
,
$"等待绩效生成
{
allot
.
Year
}
-
{
allot
.
Month
.
ToString
().
PadLeft
(
2
,
'0'
)}
月份绩效!"
,
1
,
allot
.
ID
,
"ReceiveMessage
"
);
_
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
$"等待绩效生成
{
allot
.
Year
}
-
{
allot
.
Month
.
ToString
().
PadLeft
(
2
,
'0'
)}
月份绩效,请稍等!
"
);
//_allotService.Generate(allot, email);
////BackgroundJob.Enqueue(() => _allotService.Generate(allot, email));
return
new
ApiResponse
(
ResponseType
.
OK
);
...
...
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
4433472b
...
...
@@ -110,6 +110,33 @@
<param
name=
"userId"
>
用户id
</param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AccountController.SelfInfos"
>
<summary>
查询用户信息
</summary>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AccountController.InsertUser(Performance.DtoModels.UserRequest)"
>
<summary>
新增用户
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AccountController.UpdateUser(Performance.DtoModels.UserRequest)"
>
<summary>
编辑用户
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AccountController.DeleteUser(Performance.DtoModels.UserRequest)"
>
<summary>
新增用户
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"T:Performance.Api.Controllers.AgainAllotController"
>
<summary>
科室二次分配
...
...
@@ -177,6 +204,13 @@
<param
name=
"form"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AllotController.ImportExtraction(System.Int32)"
>
<summary>
上传文件
</summary>
<param
name=
"allotId"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.AllotController.Generate(Performance.DtoModels.AllotRequest)"
>
<summary>
绩效生成
...
...
performance/Performance.Api/wwwroot/Performance.DtoModels.xml
View file @
4433472b
...
...
@@ -221,6 +221,71 @@
结果值
</summary>
</member>
<member
name=
"F:Performance.DtoModels.Classify.Notification"
>
<summary>
通知
</summary>
</member>
<member
name=
"F:Performance.DtoModels.Classify.Progress"
>
<summary>
进度条
</summary>
</member>
<member
name=
"F:Performance.DtoModels.NoticeType.success"
>
<summary>
成功
</summary>
</member>
<member
name=
"F:Performance.DtoModels.NoticeType.info"
>
<summary>
消息
</summary>
</member>
<member
name=
"F:Performance.DtoModels.NoticeType.warning"
>
<summary>
警告
</summary>
</member>
<member
name=
"F:Performance.DtoModels.NoticeType.error"
>
<summary>
错误
</summary>
</member>
<member
name=
"F:Performance.DtoModels.NoticeType.exception"
>
<summary>
异常
</summary>
</member>
<member
name=
"P:Performance.DtoModels.MessageInfo.Classify"
>
<summary>
分类
</summary>
</member>
<member
name=
"P:Performance.DtoModels.MessageInfo.Type"
>
<summary>
类型
</summary>
</member>
<member
name=
"P:Performance.DtoModels.MessageInfo.Title"
>
<summary>
标题
</summary>
</member>
<member
name=
"P:Performance.DtoModels.MessageInfo.Message"
>
<summary>
消息
</summary>
</member>
<member
name=
"P:Performance.DtoModels.MessageInfo.Percentage"
>
<summary>
百分比
</summary>
</member>
<member
name=
"P:Performance.DtoModels.MessageInfo.TypeValue"
>
<summary>
类型值
</summary>
</member>
<member
name=
"P:Performance.DtoModels.PerAgainData.RowNumber"
>
<summary>
行号
...
...
@@ -2273,6 +2338,11 @@
角色
</summary>
</member>
<member
name=
"P:Performance.DtoModels.UserRequest.RoleArr"
>
<summary>
角色Arr
</summary>
</member>
<member
name=
"P:Performance.DtoModels.UserRequest.HosIDArray"
>
<summary>
用户医院ID
...
...
performance/Performance.Api/wwwroot/Performance.EntityModels.xml
View file @
4433472b
...
...
@@ -151,6 +151,9 @@
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.log_dbug"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.log_signalr"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.PerformanceDbContext.mod_dic"
>
<summary>
部分公共数据抽取SQL
</summary>
</member>
...
...
@@ -2961,6 +2964,61 @@
1、绩效生成日志 2、绩效提取日志 3、绩效提取进度
</summary>
</member>
<member
name=
"T:Performance.EntityModels.log_signalr"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.Id"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.HospitalId"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.AllotId"
>
<summary>
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.Classify"
>
<summary>
分类
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.TypeValue"
>
<summary>
类型值
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.Type"
>
<summary>
类型
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.Title"
>
<summary>
标题
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.Message"
>
<summary>
消息
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.Percentage"
>
<summary>
百分比
</summary>
</member>
<member
name=
"P:Performance.EntityModels.log_signalr.CreateTime"
>
<summary>
</summary>
</member>
<member
name=
"T:Performance.EntityModels.mod_dic"
>
<summary>
部分公共数据抽取SQL
...
...
@@ -5731,6 +5789,11 @@
删除状态 1可用 2删除
</summary>
</member>
<member
name=
"P:Performance.EntityModels.sys_user.ParentID"
>
<summary>
父级ID
</summary>
</member>
<member
name=
"T:Performance.EntityModels.sys_user_hospital"
>
<summary>
...
...
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
View file @
4433472b
...
...
@@ -236,6 +236,9 @@ public AutoMapperConfigs()
CreateMap
<
HistoryData
,
report_original_surgery
>()
.
ForMember
(
dest
=>
dest
.
PersonTime
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ResultData
))
.
ReverseMap
();
CreateMap
<
log_signalr
,
MessageInfo
>()
.
ReverseMap
();
}
public
void
xx
()
...
...
performance/Performance.
Service
s/Hubs/Enum.cs
→
performance/Performance.
DtoModel
s/Hubs/Enum.cs
View file @
4433472b
...
...
@@ -3,7 +3,7 @@
using
System.ComponentModel
;
using
System.Text
;
namespace
Performance.
Service
s
namespace
Performance.
DtoModel
s
{
public
enum
Classify
{
...
...
performance/Performance.
Service
s/Hubs/MessageInfo.cs
→
performance/Performance.
DtoModel
s/Hubs/MessageInfo.cs
View file @
4433472b
...
...
@@ -3,19 +3,27 @@
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.
Service
s
namespace
Performance.
DtoModel
s
{
public
class
MessageInfo
{
public
MessageInfo
(
NoticeType
typeValue
)
public
MessageInfo
(
NoticeType
typeValue
,
string
uuid
=
null
,
Classify
classify
=
Classify
.
Notification
)
{
TypeValue
=
typeValue
;
Uuid
=
uuid
;
Classify
=
classify
;
}
public
string
Uuid
{
get
;
set
;
}
public
int
HospitalId
{
get
;
set
;
}
public
int
AllotId
{
get
;
set
;
}
/// <summary>
/// 分类
/// </summary>
public
Classify
Classify
{
get
;
set
;
}
=
Classify
.
Notification
;
public
Classify
Classify
{
get
;
set
;
}
/// <summary>
/// 类型
...
...
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
View file @
4433472b
...
...
@@ -164,6 +164,9 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
/// <summary> </summary>
public
virtual
DbSet
<
log_dbug
>
log_dbug
{
get
;
set
;
}
/// <summary> </summary>
public
virtual
DbSet
<
log_signalr
>
log_signalr
{
get
;
set
;
}
/// <summary> 部分公共数据抽取SQL </summary>
public
virtual
DbSet
<
mod_dic
>
mod_dic
{
get
;
set
;
}
...
...
performance/Performance.EntityModels/Entity/log_signalr.cs
0 → 100644
View file @
4433472b
//-----------------------------------------------------------------------
// <copyright file=" log_signalr.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using
System
;
using
System.ComponentModel.DataAnnotations
;
using
System.ComponentModel.DataAnnotations.Schema
;
namespace
Performance.EntityModels
{
/// <summary>
///
/// </summary>
[
Table
(
"log_signalr"
)]
public
class
log_signalr
{
/// <summary>
///
/// </summary>
[
Key
]
public
int
Id
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
int
HospitalId
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
int
AllotId
{
get
;
set
;
}
/// <summary>
/// 分类
/// </summary>
public
int
Classify
{
get
;
set
;
}
/// <summary>
/// 类型值
/// </summary>
public
int
TypeValue
{
get
;
set
;
}
/// <summary>
/// 类型
/// </summary>
public
string
Type
{
get
;
set
;
}
/// <summary>
/// 标题
/// </summary>
public
string
Title
{
get
;
set
;
}
/// <summary>
/// 消息
/// </summary>
public
string
Message
{
get
;
set
;
}
/// <summary>
/// 百分比
/// </summary>
public
Nullable
<
decimal
>
Percentage
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Nullable
<
DateTime
>
CreateTime
{
get
;
set
;
}
}
}
performance/Performance.Repository/Repository/PerforLogdsignalrRepository.cs
0 → 100644
View file @
4433472b
//-----------------------------------------------------------------------
// <copyright file=" log_signalr.cs">
// * FileName: log_signalr.cs
// </copyright>
//-----------------------------------------------------------------------
using
System
;
using
Performance.EntityModels
;
namespace
Performance.Repository
{
/// <summary>
/// log_signalr Repository
/// </summary>
public
partial
class
PerforLogdsignalrRepository
:
PerforRepository
<
log_signalr
>
{
public
PerforLogdsignalrRepository
(
PerformanceDbContext
context
)
:
base
(
context
)
{
}
}
}
performance/Performance.Services/AllotService.cs
View file @
4433472b
...
...
@@ -20,93 +20,95 @@ namespace Performance.Services
{
public
class
AllotService
:
IAutoInjection
{
private
BaiscNormService
baiscNormService
;
private
CheckDataService
checkDataService
;
private
ImportDataService
importDataService
;
private
ProcessComputService
processComputService
;
private
ResultComputeService
resultComputeService
;
private
PerforLogdbugRepository
logdbug
;
private
readonly
PerforresreservedRepository
perforresreservedRepository
;
private
ConfigService
configService
;
private
IHostingEnvironment
_evn
;
private
ILogger
<
AllotService
>
_logger
;
private
PerforPerallotRepository
_allotRepository
;
private
IEmailService
emailService
;
private
readonly
IHostingEnvironment
_evn
;
private
readonly
ILogger
<
AllotService
>
_logger
;
private
readonly
IOptions
<
Application
>
options
;
private
readonly
ComputeDirector
_computeDirector
;
private
readonly
PerforRescomputeRepository
_perforRescomputeRepository
;
private
readonly
PerforPeragainallotRepository
_againallotRepository
;
private
readonly
PerforPerallotRepository
_allotRepository
;
private
readonly
PerforImemployeeRepository
_perforImEmployeeRepository
;
private
PerforPeragainallotRepository
_againallotRepository
;
private
PerforLogcheckRepository
perforLogcheckRepository
;
private
readonly
PerforRescomputeRepository
_perforRescomputeRepository
;
private
readonly
PerforLogdbugRepository
logdbug
;
private
readonly
PerforresreservedRepository
perforresreservedRepository
;
private
readonly
PerforCofdirectorRepository
perforCofdirectorRepository
;
private
readonly
PerforHospitalRepository
perforHospitalRepository
;
private
readonly
PerforHospitalconfigRepository
perforHospitalconfigRepository
;
private
readonly
PerforLogcheckRepository
perforLogcheckRepository
;
private
readonly
PerforResbaiscnormRepository
perforResbaiscnormRepository
;
private
PerforHospitalconfigRepository
perforHospitalconfigRepository
;
private
readonly
BaiscNormService
baiscNormService
;
private
readonly
CheckDataService
checkDataService
;
private
readonly
ConfigService
configService
;
private
readonly
IEmailService
emailService
;
private
readonly
ImportDataService
importDataService
;
//private readonly LogManageService logManageService;
private
readonly
NotificationsService
notificationsService
;
private
readonly
ProcessComputService
processComputService
;
private
readonly
QueryDataService
queryDataService
;
private
readonly
ReportService
reportService
;
private
readonly
ResultComputeService
resultComputeService
;
private
readonly
RoleService
roleService
;
private
readonly
UserService
userService
;
private
PerforCofdirectorRepository
perforCofdirectorRepository
;
//private readonly IHubContext<AllotLogHub> hubContext;
private
readonly
LogManageService
logManageService
;
private
readonly
ReportService
reportService
;
private
readonly
QueryDataService
queryDataService
;
public
AllotService
(
PerforPerallotRepository
allotRepository
,
BaiscNormService
baiscNormService
,
CheckDataService
checkDataService
,
ImportDataService
importDataService
,
ProcessComputService
processComputService
,
ResultComputeService
resultComputeService
,
ConfigService
configService
,
PerforLogdbugRepository
logdbug
,
PerforresreservedRepository
perforresreservedRepository
,
IHostingEnvironment
evn
,
ILogger
<
AllotService
>
logger
,
IEmailService
emailService
,
IOptions
<
Application
>
options
,
ComputeDirector
computeDirector
,
PerforRescomputeRepository
perforRescomputeRepository
,
PerforImemployeeRepository
perforImEmployeeRepository
,
PerforPeragainallotRepository
againallotRepository
,
PerforLogcheckRepository
perforLogcheckRepository
,
PerforHospitalRepository
perforHospitalRepository
,
PerforResbaiscnormRepository
perforResbaiscnormRepository
,
PerforHospitalconfigRepository
perforHospitalconfigRepository
,
//IHubContext<AllotLogHub> hubContext
RoleService
roleService
,
UserService
userService
,
LogManageService
logManageService
,
ReportService
reportService
,
PerforCofdirectorRepository
perforCofdirectorRepository
,
QueryDataService
queryDataService
)
public
AllotService
(
IHostingEnvironment
evn
,
ILogger
<
AllotService
>
logger
,
IOptions
<
Application
>
options
,
ComputeDirector
computeDirector
,
PerforPeragainallotRepository
againallotRepository
,
PerforPerallotRepository
allotRepository
,
PerforImemployeeRepository
perforImEmployeeRepository
,
PerforRescomputeRepository
perforRescomputeRepository
,
PerforLogdbugRepository
logdbug
,
PerforresreservedRepository
perforresreservedRepository
,
PerforCofdirectorRepository
perforCofdirectorRepository
,
PerforHospitalRepository
perforHospitalRepository
,
PerforHospitalconfigRepository
perforHospitalconfigRepository
,
PerforLogcheckRepository
perforLogcheckRepository
,
PerforResbaiscnormRepository
perforResbaiscnormRepository
,
BaiscNormService
baiscNormService
,
CheckDataService
checkDataService
,
ConfigService
configService
,
IEmailService
emailService
,
ImportDataService
importDataService
,
//LogManageService logManageService,
NotificationsService
notificationsService
,
ProcessComputService
processComputService
,
QueryDataService
queryDataService
,
ReportService
reportService
,
ResultComputeService
resultComputeService
,
RoleService
roleService
,
UserService
userService
)
{
_allotRepository
=
allotRepository
;
_againallotRepository
=
againallotRepository
;
_logger
=
logger
;
_evn
=
evn
;
this
.
baiscNormService
=
baiscNormService
;
this
.
checkDataService
=
checkDataService
;
this
.
importDataService
=
importDataService
;
this
.
processComputService
=
processComputService
;
this
.
resultComputeService
=
resultComputeService
;
this
.
emailService
=
emailService
;
this
.
_evn
=
evn
;
this
.
_logger
=
logger
;
this
.
options
=
options
;
_computeDirector
=
computeDirector
;
_perforRescomputeRepository
=
perforRescomputeRepository
;
_perforImEmployeeRepository
=
perforImEmployeeRepository
;
this
.
configService
=
configService
;
this
.
_computeDirector
=
computeDirector
;
this
.
_againallotRepository
=
againallotRepository
;
this
.
_allotRepository
=
allotRepository
;
this
.
_perforImEmployeeRepository
=
perforImEmployeeRepository
;
this
.
_perforRescomputeRepository
=
perforRescomputeRepository
;
this
.
logdbug
=
logdbug
;
this
.
perforresreservedRepository
=
perforresreservedRepository
;
this
.
perfor
LogcheckRepository
=
perforLogcheck
Repository
;
this
.
perfor
CofdirectorRepository
=
perforCofdirector
Repository
;
this
.
perforHospitalRepository
=
perforHospitalRepository
;
this
.
perforResbaiscnormRepository
=
perforResbaiscnormRepository
;
this
.
perforHospitalconfigRepository
=
perforHospitalconfigRepository
;
this
.
perforLogcheckRepository
=
perforLogcheckRepository
;
this
.
perforResbaiscnormRepository
=
perforResbaiscnormRepository
;
this
.
baiscNormService
=
baiscNormService
;
this
.
checkDataService
=
checkDataService
;
this
.
configService
=
configService
;
this
.
emailService
=
emailService
;
this
.
importDataService
=
importDataService
;
//this.logManageService = logManageService;
this
.
notificationsService
=
notificationsService
;
this
.
processComputService
=
processComputService
;
this
.
queryDataService
=
queryDataService
;
this
.
reportService
=
reportService
;
this
.
resultComputeService
=
resultComputeService
;
this
.
roleService
=
roleService
;
this
.
userService
=
userService
;
//this.hubContext = hubContext;
this
.
logManageService
=
logManageService
;
this
.
reportService
=
reportService
;
this
.
perforCofdirectorRepository
=
perforCofdirectorRepository
;
this
.
queryDataService
=
queryDataService
;
}
#
region
基础功能
...
...
@@ -303,25 +305,27 @@ public per_allot UpdateAllotShowFormula(int allotId)
/// </summary>
/// <param name="allot"></param>
/// <param name="user"></param>
public
void
Generate
(
per_allot
allot
,
string
mail
)
/// <param name="uuid"></param>
/// <param name="userId"></param>
public
void
Generate
(
per_allot
allot
,
string
mail
,
string
uuid
,
int
userId
)
{
DateTime
time
=
DateTime
.
Now
;
try
{
logManageService
.
WriteMsg
(
"绩效开始执行"
,
$"正在生成
{
allot
.
Year
}
-
{
allot
.
Month
.
ToString
().
PadLeft
(
2
,
'0'
)}
月份绩效!"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
$"正在生成
{
allot
.
Year
}
-
{
allot
.
Month
.
ToString
().
PadLeft
(
2
,
'0'
)}
月份绩效!"
);
var
excel
=
new
PerExcel
();
int
generate
=
allot
.
Generate
;
if
(
new
int
[]
{
(
int
)
AllotGenerate
.
OriginalDataEdited
,
(
int
)
AllotGenerate
.
PersonnelOffice
}.
Contains
(
allot
.
Generate
))
{
logManageService
.
WriteMsg
(
"绩效开始执行"
,
$"数据来源:生成成功后被修改的原数据。"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"绩效开始生成,数据来源:生成成功后被修改的原数据。"
);
generate
=
(
int
)
AllotGenerate
.
Success
;
configService
.
ClearResData
(
allot
.
ID
);
excel
=
queryDataService
.
QueryDataAndHeader
(
allot
);
}
else
{
logManageService
.
WriteMsg
(
"绩效开始执行"
,
$"数据来源:用户上传的Excel。"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"绩效开始生成,数据来源:用户上传的Excel。"
);
configService
.
Clear
(
allot
.
ID
);
// 关闭筛选功能
...
...
@@ -348,7 +352,7 @@ public void Generate(per_allot allot, string mail)
//根据当前业绩绩效核算出最终绩效结果
//科室经济核算汇总、工作量汇总
logManageService
.
WriteMsg
(
"科室业绩汇总"
,
"正在生成科室收入支出汇总、工作量汇总"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"科室业绩汇总,正在生成科室收入支出汇总、工作量汇总"
);
var
(
list
,
mergeSheets
)
=
processComputService
.
MergeCompute
(
excel
,
allot
.
ID
);
processComputService
.
Save
(
list
,
allot
.
ID
);
...
...
@@ -404,11 +408,11 @@ public void Generate(per_allot allot, string mail)
#
endregion
注释
//重新计算科室业绩(含所有提供保底金额)
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室业绩分"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
$"计算科室业绩分值"
);
var
sheetLast
=
processComputService
.
Compute
(
excel
,
mergeSheets
,
allot
);
//保存计算过程数据
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存科室业绩结果及计算过程中产生的数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"保存科室业绩结果及计算过程中产生的数据"
);
processComputService
.
Save
(
sheetLast
,
allot
.
ID
);
////业务中层行政中高层医院奖罚
...
...
@@ -416,23 +420,23 @@ public void Generate(per_allot allot, string mail)
//var employeeExtra = processComputService.GetEmployeeExtra(excel);
// 计算最总数据
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"计算并保存最终绩效数据"
);
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
sheetLast
);
// 计算行政科室绩效
processComputService
.
ComputeOffice
(
allot
,
excel
);
// 计算特殊科室
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"计算最终特殊科室绩效数据"
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
baiscnormList
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终特殊科室绩效数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"保存最终特殊科室绩效数据"
);
//保存 绩效人均参考标准
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存绩效人均参考标准"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"保存绩效人均参考标准"
);
perforResbaiscnormRepository
.
AddRange
(
baiscnormList
.
ToArray
());
// 保存预留绩效
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存预留绩效金额"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"保存预留绩效金额"
);
resultComputeService
.
SaveReserved
(
allot
);
// 科室下发
...
...
@@ -441,20 +445,20 @@ public void Generate(per_allot allot, string mail)
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateAccomplish
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateAccomplish
),
generate
);
perforCofdirectorRepository
.
SupplementaryData
(
allot
.
ID
);
logManageService
.
WriteMsg
(
"正在生成报表数据"
,
"正在生成报表数据"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"正在生成报表数据"
);
var
res
=
reportService
.
ImportData
(
allot
);
var
flag
=
reportService
.
UpdateData
(
allot
);
logManageService
.
WriteMsg
(
"正在生成报表数据"
,
$"报表数据生成完成;受影响:
{
res
}
行"
,
1
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"报表数据生成完成,受影响:{res}行"
);
////发送邮件
//logManageService.WriteMsg("正在发送邮件", "正在发送邮件", 1, allot.ID, "ReceiveMessage", true);
//SendEmail(allot, mail, 1, time);
//logdbug.Add(allot.ID, "绩效开始执行", "绩效生成成功");
logManageService
.
WriteMsg
(
"绩效生成结束"
,
"绩效生成成功"
,
5
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"绩效生成成功"
,
NoticeType
.
success
);
}
catch
(
Exception
ex
)
{
logManageService
.
WriteMsg
(
"绩效生成失败"
,
ex
.
Message
,
4
,
allot
.
ID
,
"ReceiveMessage"
);
notificationsService
.
SendGenerateMessage
(
userId
,
allot
,
uuid
,
"绩效生成失败"
,
NoticeType
.
error
);
logdbug
.
Add
(
allot
.
ID
,
"绩效生成失败"
,
ex
.
ToString
(),
4
,
1
);
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateFail
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateFail
));
//SendEmail(allot, mail, 2, time);
...
...
performance/Performance.Services/Hubs/AllotLogHub.cs
View file @
4433472b
...
...
@@ -10,40 +10,48 @@
namespace
Performance.Services
{
[
Authorize
]
public
class
AllotLogHub
:
Hub
{
private
readonly
IMemoryCache
cache
;
private
readonly
ILogger
<
AllotLogHub
>
logger
;
private
readonly
NotificationsService
service
;
public
AllotLogHub
(
IMemoryCache
cache
,
ILogger
<
AllotLogHub
>
logger
,
NotificationsService
service
ILogger
<
AllotLogHub
>
logger
)
{
this
.
cache
=
cache
;
this
.
logger
=
logger
;
this
.
service
=
service
;
}
private
readonly
MemoryCacheHelper
helper
=
new
MemoryCacheHelper
();
public
void
LoginService
(
string
userId
)
public
override
Task
OnConnectedAsync
()
{
if
(
helper
.
Exists
(
userId
))
helper
.
Remove
(
userId
);
var
dateTime
=
DateTime
.
Now
;
var
slidingtimespan
=
helper
.
ToUnixTimestampBySeconds
(
dateTime
.
AddMinutes
(
30
));
var
absolutetimespan
=
helper
.
ToUnixTimestampBySeconds
(
dateTime
.
AddHours
(
2
));
helper
.
Set
(
userId
,
Context
.
ConnectionId
,
slidingtimespan
,
absolutetimespan
);
string
key
=
Context
.
User
.
Claims
.
FirstOrDefault
(
t
=>
t
.
Type
==
"id"
)?.
Value
;
if
(!
string
.
IsNullOrEmpty
(
key
))
{
if
(
cache
.
TryGetValue
(
key
,
out
_
))
{
cache
.
Remove
(
key
);
}
cache
.
Set
(
key
,
Context
.
ConnectionId
);
}
logger
.
LogInformation
(
$"用户在
{
DateTime
.
Now
.
ToString
(
"yyyy年MM月dd日 hh时mm分ss秒"
)}
创建连接"
);
return
base
.
OnConnectedAsync
();
}
public
void
LogoutService
(
string
userId
)
public
override
Task
OnDisconnectedAsync
(
Exception
exception
)
{
if
(
helper
.
Exists
(
userId
))
helper
.
Remove
(
userId
);
string
key
=
Context
.
User
.
Claims
.
FirstOrDefault
(
t
=>
t
.
Type
==
"id"
)?.
Value
;
if
(!
string
.
IsNullOrEmpty
(
key
))
{
if
(
cache
.
TryGetValue
(
key
,
out
_
))
{
cache
.
Remove
(
key
);
}
}
logger
.
LogInformation
(
$"用户在
{
DateTime
.
Now
.
ToString
(
"yyyy年MM月dd日 hh时mm分ss秒"
)}
断开连接"
);
return
base
.
OnDisconnectedAsync
(
exception
);
}
}
}
performance/Performance.Services/Hubs/NotificationsService.cs
View file @
4433472b
using
Microsoft.AspNetCore.SignalR
;
using
Microsoft.Extensions.Caching.Memory
;
using
Microsoft.Extensions.Logging
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
Performance.Infrastructure
;
using
Performance.Repository
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
...
...
@@ -11,23 +15,40 @@ namespace Performance.Services
public
class
NotificationsService
:
IAutoInjection
{
private
readonly
ILogger
logger
;
private
readonly
IMemoryCache
cache
;
private
readonly
IHubContext
<
AllotLogHub
>
hubContext
;
private
readonly
PerforLogdsignalrRepository
repository
;
public
NotificationsService
(
ILogger
<
NotificationsService
>
logger
,
IHubContext
<
AllotLogHub
>
hubContext
IMemoryCache
cache
,
IHubContext
<
AllotLogHub
>
hubContext
,
PerforLogdsignalrRepository
repository
)
{
this
.
logger
=
logger
;
this
.
cache
=
cache
;
this
.
hubContext
=
hubContext
;
this
.
repository
=
repository
;
}
public
void
SendGenerateMessage
(
int
userId
,
per_allot
allot
,
string
uuid
,
string
message
,
NoticeType
typeValue
=
NoticeType
.
info
)
{
var
info
=
new
MessageInfo
(
typeValue
,
uuid
,
Classify
.
Notification
)
{
HospitalId
=
allot
.
HospitalId
,
AllotId
=
allot
.
ID
,
Title
=
"生成绩效"
,
Message
=
message
};
SendMessage
(
userId
,
info
);
}
private
readonly
MemoryCacheHelper
helper
=
new
MemoryCacheHelper
();
public
void
SendMessage
(
int
userId
,
MessageInfo
data
)
{
string
key
=
userId
.
ToString
();
if
(
helper
.
Exists
(
key
)
&&
helper
.
Get
(
key
)
is
string
connectionId
&&
!
string
.
IsNullOrEmpty
(
connectionId
))
if
(
cache
.
TryGetValue
(
key
,
out
string
connectionId
)
&&
!
string
.
IsNullOrEmpty
(
connectionId
))
{
SendMessageToClient
(
connectionId
,
data
);
}
...
...
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