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
db51957b
Commit
db51957b
authored
Aug 14, 2019
by
李承祥
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
界面日志信息输出
parent
1c089166
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
170 additions
and
48 deletions
+170
-48
performance/Performance.Services/AllotCompute/CheckDataService.cs
+5
-1
performance/Performance.Services/AllotCompute/ImportDataService.cs
+16
-8
performance/Performance.Services/AllotCompute/ProcessComputService.cs
+14
-1
performance/Performance.Services/AllotCompute/ResultComputeService.cs
+8
-2
performance/Performance.Services/AllotService.cs
+28
-14
performance/Performance.Services/ConfigService.cs
+22
-14
performance/Performance.Services/Hubs/AllotLogHub.cs
+14
-3
performance/Performance.Services/LogManageService.cs
+37
-0
performance/Performance.Services/NewExtractService.cs
+26
-5
No files found.
performance/Performance.Services/AllotCompute/CheckDataService.cs
View file @
db51957b
...
@@ -15,16 +15,19 @@ public class CheckDataService : IAutoInjection
...
@@ -15,16 +15,19 @@ public class CheckDataService : IAutoInjection
private
PerforCofcheckRepository
perforCofcheckRepository
;
private
PerforCofcheckRepository
perforCofcheckRepository
;
private
PerforLogcheckRepository
perforLogcheckRepository
;
private
PerforLogcheckRepository
perforLogcheckRepository
;
private
PerforCofdrugtypeRepository
perforCofdrugtypeRepository
;
private
PerforCofdrugtypeRepository
perforCofdrugtypeRepository
;
private
LogManageService
logManageService
;
public
CheckDataService
(
PerSheetService
perSheetService
,
public
CheckDataService
(
PerSheetService
perSheetService
,
PerforCofcheckRepository
perforCofcheckRepository
,
PerforCofcheckRepository
perforCofcheckRepository
,
PerforLogcheckRepository
perforLogcheckRepository
,
PerforLogcheckRepository
perforLogcheckRepository
,
PerforCofdrugtypeRepository
perforCofdrugtypeRepository
PerforCofdrugtypeRepository
perforCofdrugtypeRepository
,
LogManageService
logManageService
)
)
{
{
this
.
perSheetService
=
perSheetService
;
this
.
perSheetService
=
perSheetService
;
this
.
perforCofcheckRepository
=
perforCofcheckRepository
;
this
.
perforCofcheckRepository
=
perforCofcheckRepository
;
this
.
perforLogcheckRepository
=
perforLogcheckRepository
;
this
.
perforLogcheckRepository
=
perforLogcheckRepository
;
this
.
perforCofdrugtypeRepository
=
perforCofdrugtypeRepository
;
this
.
perforCofdrugtypeRepository
=
perforCofdrugtypeRepository
;
this
.
logManageService
=
logManageService
;
}
}
internal
bool
Check
(
PerExcel
excel
,
per_allot
allot
)
internal
bool
Check
(
PerExcel
excel
,
per_allot
allot
)
{
{
...
@@ -232,6 +235,7 @@ public void InsertLog(int allotId, int type, int level, string title, string mes
...
@@ -232,6 +235,7 @@ public void InsertLog(int allotId, int type, int level, string title, string mes
Message
=
message
Message
=
message
};
};
perforLogcheckRepository
.
Add
(
model
);
perforLogcheckRepository
.
Add
(
model
);
logManageService
.
WriteMsg
(
"绩效数据校验"
,
$"
{
title
}
-
{
message
}
"
,
allotId
,
"ReceiveMessage"
);
}
}
#
endregion
#
endregion
}
}
...
...
performance/Performance.Services/AllotCompute/ImportDataService.cs
View file @
db51957b
...
@@ -27,7 +27,8 @@ public class ImportDataService : IAutoInjection
...
@@ -27,7 +27,8 @@ public class ImportDataService : IAutoInjection
private
PerforImemployeeRepository
perforImEmployeeRepository
;
private
PerforImemployeeRepository
perforImEmployeeRepository
;
private
PerforImaccountbasicRepository
perforImaccountbasicRepository
;
private
PerforImaccountbasicRepository
perforImaccountbasicRepository
;
private
PerforImspecialunitRepository
perforImspecialunitRepository
;
private
PerforImspecialunitRepository
perforImspecialunitRepository
;
private
PerforLogdbugRepository
logdbug
;
//private PerforLogdbugRepository logdbug;
private
readonly
LogManageService
logManageService
;
public
ImportDataService
(
PerSheetService
perSheetService
,
public
ImportDataService
(
PerSheetService
perSheetService
,
PerforPersheetRepository
perforPerSheetRepository
,
PerforPersheetRepository
perforPerSheetRepository
,
PerforPerallotRepository
perforPerallotRepository
,
PerforPerallotRepository
perforPerallotRepository
,
...
@@ -36,7 +37,8 @@ public class ImportDataService : IAutoInjection
...
@@ -36,7 +37,8 @@ public class ImportDataService : IAutoInjection
PerforImemployeeRepository
perforImEmployeeRepository
,
PerforImemployeeRepository
perforImEmployeeRepository
,
PerforImaccountbasicRepository
perforImaccountbasicRepository
,
PerforImaccountbasicRepository
perforImaccountbasicRepository
,
PerforImspecialunitRepository
perforImspecialunitRepository
,
PerforImspecialunitRepository
perforImspecialunitRepository
,
PerforLogdbugRepository
logdbug
)
//PerforLogdbugRepository logdbug
LogManageService
logManageService
)
{
{
this
.
perSheetService
=
perSheetService
;
this
.
perSheetService
=
perSheetService
;
this
.
perforPerSheetRepository
=
perforPerSheetRepository
;
this
.
perforPerSheetRepository
=
perforPerSheetRepository
;
...
@@ -46,7 +48,8 @@ public class ImportDataService : IAutoInjection
...
@@ -46,7 +48,8 @@ public class ImportDataService : IAutoInjection
this
.
perforImEmployeeRepository
=
perforImEmployeeRepository
;
this
.
perforImEmployeeRepository
=
perforImEmployeeRepository
;
this
.
perforImaccountbasicRepository
=
perforImaccountbasicRepository
;
this
.
perforImaccountbasicRepository
=
perforImaccountbasicRepository
;
this
.
perforImspecialunitRepository
=
perforImspecialunitRepository
;
this
.
perforImspecialunitRepository
=
perforImspecialunitRepository
;
this
.
logdbug
=
logdbug
;
//this.logdbug = logdbug;
this
.
logManageService
=
logManageService
;
}
}
/// <summary>
/// <summary>
...
@@ -86,7 +89,8 @@ private PerExcel Import(per_allot allot)
...
@@ -86,7 +89,8 @@ private PerExcel Import(per_allot allot)
var
sheet
=
workbook
.
GetSheetAt
(
i
);
var
sheet
=
workbook
.
GetSheetAt
(
i
);
var
sheetType
=
perSheetService
.
GetSheetType
(
sheet
.
SheetName
);
var
sheetType
=
perSheetService
.
GetSheetType
(
sheet
.
SheetName
);
logdbug
.
Add
(
allot
.
ID
,
"开始读取excel文件"
,
JsonHelper
.
Serialize
(
new
{
sheetType
,
Description
=
EnumHelper
.
GetDescription
(
sheetType
),
name
=
sheet
.
SheetName
}));
//logdbug.Add(allot.ID, "开始读取excel文件", JsonHelper.Serialize(new { sheetType, Description = EnumHelper.GetDescription(sheetType), name = sheet.SheetName }));
logManageService
.
WriteMsg
(
"开始读取excel文件"
,
JsonHelper
.
Serialize
(
new
{
sheetType
,
Description
=
EnumHelper
.
GetDescription
(
sheetType
),
name
=
sheet
.
SheetName
}),
allot
.
ID
,
"ReceiveMessage"
,
true
);
if
(
SheetType
.
Unidentifiable
!=
sheetType
)
if
(
SheetType
.
Unidentifiable
!=
sheetType
)
{
{
var
st
=
perSheetService
.
Sheet
(
sheet
);
var
st
=
perSheetService
.
Sheet
(
sheet
);
...
@@ -233,22 +237,26 @@ private bool Save(PerExcel excel, int allotId)
...
@@ -233,22 +237,26 @@ private bool Save(PerExcel excel, int allotId)
{
{
if
(
sheet
.
SheetType
==
SheetType
.
Employee
)
if
(
sheet
.
SheetType
==
SheetType
.
Employee
)
{
{
logdbug
.
Add
(
allotId
,
"开始保存人员数据数据"
,
sheet
.
SheetName
);
//logdbug.Add(allotId, "开始保存人员数据数据", sheet.SheetName);
logManageService
.
WriteMsg
(
"保存基础数据"
,
"开始保存人员数据数据"
,
allotId
,
"ReceiveMessage"
,
true
);
SaveEmployee
(
sheet
,
allotId
);
SaveEmployee
(
sheet
,
allotId
);
}
}
else
if
(
sheet
.
SheetType
==
SheetType
.
AccountBasic
)
else
if
(
sheet
.
SheetType
==
SheetType
.
AccountBasic
)
{
{
logdbug
.
Add
(
allotId
,
"开始保存临床科室医护绩效测算基础数据"
,
sheet
.
SheetName
);
//logdbug.Add(allotId, "开始保存临床科室医护绩效测算基础数据", sheet.SheetName);
logManageService
.
WriteMsg
(
"保存基础数据"
,
"开始保存临床科室医护绩效测算基础数据"
,
allotId
,
"ReceiveMessage"
,
true
);
SaveAccountBasic
(
sheet
,
allotId
);
SaveAccountBasic
(
sheet
,
allotId
);
}
}
else
if
(
sheet
.
SheetType
==
SheetType
.
SpecialUnit
)
else
if
(
sheet
.
SheetType
==
SheetType
.
SpecialUnit
)
{
{
logdbug
.
Add
(
allotId
,
"开始保存特殊核算单元数据"
,
sheet
.
SheetName
);
//logdbug.Add(allotId, "开始保存特殊核算单元数据", sheet.SheetName);
logManageService
.
WriteMsg
(
"保存基础数据"
,
"开始保存特殊核算单元数据"
,
allotId
,
"ReceiveMessage"
,
true
);
SaveSpecialUnit
(
sheet
,
allotId
);
SaveSpecialUnit
(
sheet
,
allotId
);
}
}
else
else
{
{
logdbug
.
Add
(
allotId
,
"开始保存统一格式数据"
,
sheet
.
SheetName
);
//logdbug.Add(allotId, "开始保存统一格式数据", sheet.SheetName);
logManageService
.
WriteMsg
(
"保存基础数据"
,
$"开始保存
{
sheet
.
SheetName
}
数据"
,
allotId
,
"ReceiveMessage"
,
true
);
SaveCommon
(
sheet
,
allotId
);
SaveCommon
(
sheet
,
allotId
);
}
}
}
}
...
...
performance/Performance.Services/AllotCompute/ProcessComputService.cs
View file @
db51957b
...
@@ -25,6 +25,7 @@ public class ProcessComputService : IAutoInjection
...
@@ -25,6 +25,7 @@ public class ProcessComputService : IAutoInjection
private
PerforResaccountRepository
perforResaccountRepository
;
private
PerforResaccountRepository
perforResaccountRepository
;
private
PerforResbaiscnormRepository
perforResbaiscnormRepository
;
private
PerforResbaiscnormRepository
perforResbaiscnormRepository
;
private
PerforCofdrugtypeRepository
perforCofdrugtypeRepository
;
private
PerforCofdrugtypeRepository
perforCofdrugtypeRepository
;
private
readonly
LogManageService
logManageService
;
public
ProcessComputService
(
PerforCofincomeRepository
perforCofincomeRepository
,
public
ProcessComputService
(
PerforCofincomeRepository
perforCofincomeRepository
,
PerforCofdrugpropRepository
perforCofdrugpropRepository
,
PerforCofdrugpropRepository
perforCofdrugpropRepository
,
PerforPersheetRepository
perforPerSheetRepository
,
PerforPersheetRepository
perforPerSheetRepository
,
...
@@ -33,7 +34,8 @@ public class ProcessComputService : IAutoInjection
...
@@ -33,7 +34,8 @@ public class ProcessComputService : IAutoInjection
PerforImemployeeRepository
perforImEmployeeRepository
,
PerforImemployeeRepository
perforImEmployeeRepository
,
PerforResaccountRepository
perforResaccountRepository
,
PerforResaccountRepository
perforResaccountRepository
,
PerforResbaiscnormRepository
perforResbaiscnormRepository
,
PerforResbaiscnormRepository
perforResbaiscnormRepository
,
PerforCofdrugtypeRepository
perforCofdrugtypeRepository
)
PerforCofdrugtypeRepository
perforCofdrugtypeRepository
,
LogManageService
logManageService
)
{
{
this
.
perforCofincomeRepository
=
perforCofincomeRepository
;
this
.
perforCofincomeRepository
=
perforCofincomeRepository
;
this
.
perforCofdrugpropRepository
=
perforCofdrugpropRepository
;
this
.
perforCofdrugpropRepository
=
perforCofdrugpropRepository
;
...
@@ -44,6 +46,7 @@ public class ProcessComputService : IAutoInjection
...
@@ -44,6 +46,7 @@ public class ProcessComputService : IAutoInjection
this
.
perforResaccountRepository
=
perforResaccountRepository
;
this
.
perforResaccountRepository
=
perforResaccountRepository
;
this
.
perforResbaiscnormRepository
=
perforResbaiscnormRepository
;
this
.
perforResbaiscnormRepository
=
perforResbaiscnormRepository
;
this
.
perforCofdrugtypeRepository
=
perforCofdrugtypeRepository
;
this
.
perforCofdrugtypeRepository
=
perforCofdrugtypeRepository
;
this
.
logManageService
=
logManageService
;
}
}
/// <summary>
/// <summary>
...
@@ -160,6 +163,7 @@ private void Save(List<PerSheet> perSheets, int allotId)
...
@@ -160,6 +163,7 @@ private void Save(List<PerSheet> perSheets, int allotId)
{
{
foreach
(
var
sheet
in
perSheets
)
foreach
(
var
sheet
in
perSheets
)
{
{
logManageService
.
WriteMsg
(
"正在生成绩效"
,
$"保存核算数据 -
{
sheet
.
SheetName
}
"
,
allotId
,
"ReceiveMessage"
);
if
(
sheet
.
SheetType
==
SheetType
.
ComputeDoctorAccount
)
if
(
sheet
.
SheetType
==
SheetType
.
ComputeDoctorAccount
)
{
{
SaveComputeDoctorAccount
(
sheet
,
allotId
);
SaveComputeDoctorAccount
(
sheet
,
allotId
);
...
@@ -187,25 +191,31 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
...
@@ -187,25 +191,31 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
//合并科室收入、支出
//合并科室收入、支出
var
incomeconfs
=
perforCofincomeRepository
.
GetEntities
();
var
incomeconfs
=
perforCofincomeRepository
.
GetEntities
();
var
economicCompute
=
new
PerSheetDataComputeEconomic
();
var
economicCompute
=
new
PerSheetDataComputeEconomic
();
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室经济核算汇总表"
,
allotid
,
"ReceiveMessage"
);
var
mergeResult
=
economicCompute
.
MergeCompute
(
excel
,
incomeconfs
);
var
mergeResult
=
economicCompute
.
MergeCompute
(
excel
,
incomeconfs
);
//一次计算
//一次计算
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室经济核算汇总表 -- 第一次计算"
,
allotid
,
"ReceiveMessage"
);
var
onceEconomic
=
economicCompute
.
OnceCompute
(
mergeResult
);
var
onceEconomic
=
economicCompute
.
OnceCompute
(
mergeResult
);
//二次计算
//二次计算
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室经济核算汇总表 -- 第二次计算"
,
allotid
,
"ReceiveMessage"
);
var
twiceEconomicResult
=
economicCompute
.
TwiceCompute
(
onceEconomic
);
var
twiceEconomicResult
=
economicCompute
.
TwiceCompute
(
onceEconomic
);
twiceEconomicResult
.
Sheet
.
SheetType
=
SheetType
.
ComputeEconomic
;
twiceEconomicResult
.
Sheet
.
SheetType
=
SheetType
.
ComputeEconomic
;
perSheet
.
Add
(
twiceEconomicResult
.
Sheet
);
perSheet
.
Add
(
twiceEconomicResult
.
Sheet
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室经济核算汇总表 -- 计算完成"
,
allotid
,
"ReceiveMessage"
);
//工作量
//工作量
var
workloadCompute
=
new
PerSheetDataComputeWorkload
();
var
workloadCompute
=
new
PerSheetDataComputeWorkload
();
var
workload1
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
Workload
&&
t
.
SheetName
.
Contains
(
"医生组"
));
var
workload1
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
Workload
&&
t
.
SheetName
.
Contains
(
"医生组"
));
workload1
.
SheetName
=
"医生组工作量绩效测算表"
;
workload1
.
SheetName
=
"医生组工作量绩效测算表"
;
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"获取药品费用分割比例"
,
allotid
,
"ReceiveMessage"
);
var
confs
=
GetDrugConfig
(
excel
,
allotid
);
var
confs
=
GetDrugConfig
(
excel
,
allotid
);
//医生组 一次计算
//医生组 一次计算
//var onceWorkload1 = workloadCompute.OnceCompute(workload1, confs);
//var onceWorkload1 = workloadCompute.OnceCompute(workload1, confs);
//医生组 二次计算
//医生组 二次计算
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"医生组工作量计算"
,
allotid
,
"ReceiveMessage"
);
var
twiceWorkloadResult1
=
workloadCompute
.
TwiceCompute
(
workload1
);
var
twiceWorkloadResult1
=
workloadCompute
.
TwiceCompute
(
workload1
);
twiceWorkloadResult1
.
Sheet
.
SheetType
=
SheetType
.
ComputeDoctorWorkload
;
twiceWorkloadResult1
.
Sheet
.
SheetType
=
SheetType
.
ComputeDoctorWorkload
;
...
@@ -216,6 +226,7 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
...
@@ -216,6 +226,7 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
//护理组 一次计算
//护理组 一次计算
//var onceWorkload2 = workloadCompute.OnceCompute(workload2);
//var onceWorkload2 = workloadCompute.OnceCompute(workload2);
//护理组 二次计算
//护理组 二次计算
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"护理组工作量计算"
,
allotid
,
"ReceiveMessage"
);
var
twiceWorkloadResult2
=
workloadCompute
.
TwiceCompute
(
workload2
);
var
twiceWorkloadResult2
=
workloadCompute
.
TwiceCompute
(
workload2
);
twiceWorkloadResult2
.
Sheet
.
SheetType
=
SheetType
.
ComputeNurseWorkload
;
twiceWorkloadResult2
.
Sheet
.
SheetType
=
SheetType
.
ComputeNurseWorkload
;
...
@@ -224,8 +235,10 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
...
@@ -224,8 +235,10 @@ private List<PerSheet> MergeCompute(PerExcel excel, int allotid)
var
deptAccounting
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
);
var
deptAccounting
=
excel
.
PerSheet
.
FirstOrDefault
(
t
=>
t
.
SheetType
==
SheetType
.
AccountBasic
);
var
dataList
=
deptAccounting
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
var
dataList
=
deptAccounting
.
PerData
.
Select
(
t
=>
(
PerDataAccountBaisc
)
t
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算保底绩效参考标准"
,
allotid
,
"ReceiveMessage"
);
var
baiscnormList
=
ComputeMinimum
(
dataList
,
twiceEconomicResult
.
PerData
,
twiceWorkloadResult1
.
PerData
,
twiceWorkloadResult2
.
PerData
,
allotid
);
var
baiscnormList
=
ComputeMinimum
(
dataList
,
twiceEconomicResult
.
PerData
,
twiceWorkloadResult1
.
PerData
,
twiceWorkloadResult2
.
PerData
,
allotid
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算科室绩效"
,
allotid
,
"ReceiveMessage"
);
var
sheet
=
Compute
(
dataList
,
twiceEconomicResult
.
PerData
,
twiceWorkloadResult1
.
PerData
,
twiceWorkloadResult2
.
PerData
,
baiscnormList
);
var
sheet
=
Compute
(
dataList
,
twiceEconomicResult
.
PerData
,
twiceWorkloadResult1
.
PerData
,
twiceWorkloadResult2
.
PerData
,
baiscnormList
);
perSheet
.
AddRange
(
sheet
);
perSheet
.
AddRange
(
sheet
);
...
...
performance/Performance.Services/AllotCompute/ResultComputeService.cs
View file @
db51957b
...
@@ -22,6 +22,7 @@ public class ResultComputeService : IAutoInjection
...
@@ -22,6 +22,7 @@ public class ResultComputeService : IAutoInjection
private
readonly
PerforResbaiscnormRepository
perforResbaiscnormRepository
;
private
readonly
PerforResbaiscnormRepository
perforResbaiscnormRepository
;
private
readonly
PerforResspecialunitRepository
perforResspecialunitRepository
;
private
readonly
PerforResspecialunitRepository
perforResspecialunitRepository
;
private
readonly
PerforImaccountbasicRepository
perforImaccountbasicRepository
;
private
readonly
PerforImaccountbasicRepository
perforImaccountbasicRepository
;
private
readonly
LogManageService
logManageService
;
public
ResultComputeService
(
public
ResultComputeService
(
PerforImemployeeRepository
perforImEmployeeRepository
,
PerforImemployeeRepository
perforImEmployeeRepository
,
...
@@ -29,7 +30,8 @@ public class ResultComputeService : IAutoInjection
...
@@ -29,7 +30,8 @@ public class ResultComputeService : IAutoInjection
PerforResbaiscnormRepository
perforResbaiscnormRepository
,
PerforResbaiscnormRepository
perforResbaiscnormRepository
,
PerforResspecialunitRepository
perforResspecialunitRepository
,
PerforResspecialunitRepository
perforResspecialunitRepository
,
PerforImaccountbasicRepository
perforImaccountbasicRepository
,
PerforImaccountbasicRepository
perforImaccountbasicRepository
,
BaiscNormService
baiscNormService
,
ComputeDirector
computeDirector
)
BaiscNormService
baiscNormService
,
ComputeDirector
computeDirector
,
LogManageService
logManageService
)
{
{
this
.
baiscNormService
=
baiscNormService
;
this
.
baiscNormService
=
baiscNormService
;
this
.
computeDirector
=
computeDirector
;
this
.
computeDirector
=
computeDirector
;
...
@@ -38,6 +40,7 @@ public class ResultComputeService : IAutoInjection
...
@@ -38,6 +40,7 @@ public class ResultComputeService : IAutoInjection
this
.
perforResbaiscnormRepository
=
perforResbaiscnormRepository
;
this
.
perforResbaiscnormRepository
=
perforResbaiscnormRepository
;
this
.
perforResspecialunitRepository
=
perforResspecialunitRepository
;
this
.
perforResspecialunitRepository
=
perforResspecialunitRepository
;
this
.
perforImaccountbasicRepository
=
perforImaccountbasicRepository
;
this
.
perforImaccountbasicRepository
=
perforImaccountbasicRepository
;
this
.
logManageService
=
logManageService
;
}
}
/// <summary>
/// <summary>
...
@@ -51,13 +54,15 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
...
@@ -51,13 +54,15 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
var
accountbasicList
=
perforImaccountbasicRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
var
accountbasicList
=
perforImaccountbasicRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allot
.
ID
);
List
<
ComputeEmployee
>
computeEmployees
=
Mapper
.
Map
<
List
<
ComputeEmployee
>>(
empolyeeList
);
List
<
ComputeEmployee
>
computeEmployees
=
Mapper
.
Map
<
List
<
ComputeEmployee
>>(
empolyeeList
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"临床科室主任、临床科室副主任、临床科室护士长 最终绩效数据计算"
,
allot
.
ID
,
"ReceiveMessage"
);
var
computResult
=
computeDirector
.
Compute
(
computeEmployees
,
accountbasicList
,
allot
);
var
computResult
=
computeDirector
.
Compute
(
computeEmployees
,
accountbasicList
,
allot
);
//计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值)
//计算 绩效标准 基数(科主任、副主任、护士长 =>> 平均值)
List
<
res_baiscnorm
>
baiscnormList
=
new
List
<
res_baiscnorm
>();
List
<
res_baiscnorm
>
baiscnormList
=
new
List
<
res_baiscnorm
>();
baiscNormService
.
ComputeAvg
(
baiscnormList
,
accountbasicList
,
computResult
);
baiscNormService
.
ComputeAvg
(
baiscnormList
,
accountbasicList
,
computResult
);
baiscNormService
.
DocterNurseBaiscnorm
(
baiscnormList
,
accountbasicList
,
perSheets
);
baiscNormService
.
DocterNurseBaiscnorm
(
baiscnormList
,
accountbasicList
,
perSheets
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"院领导、业务中层、工勤人员 最终绩效数据计算"
,
allot
.
ID
,
"ReceiveMessage"
);
var
computResult2
=
computeDirector
.
Compute
(
computeEmployees
,
allot
,
baiscnormList
);
var
computResult2
=
computeDirector
.
Compute
(
computeEmployees
,
allot
,
baiscnormList
);
//计算 行政人员 平均值
//计算 行政人员 平均值
baiscNormService
.
ComputeOtherAvg
(
baiscnormList
,
computResult2
,
empolyeeList
);
baiscNormService
.
ComputeOtherAvg
(
baiscnormList
,
computResult2
,
empolyeeList
);
...
@@ -68,6 +73,7 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
...
@@ -68,6 +73,7 @@ public List<res_baiscnorm> Compute(per_allot allot, PerExcel excel, List<PerShee
perforRescomputeRepository
.
AddRange
(
computes
.
ToArray
());
perforRescomputeRepository
.
AddRange
(
computes
.
ToArray
());
baiscnormList
.
ForEach
(
t
=>
t
.
AllotID
=
allot
.
ID
);
baiscnormList
.
ForEach
(
t
=>
t
.
AllotID
=
allot
.
ID
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终绩效数据"
,
allot
.
ID
,
"ReceiveMessage"
);
perforResbaiscnormRepository
.
AddRange
(
baiscnormList
.
ToArray
());
perforResbaiscnormRepository
.
AddRange
(
baiscnormList
.
ToArray
());
return
baiscnormList
;
return
baiscnormList
;
...
...
performance/Performance.Services/AllotService.cs
View file @
db51957b
...
@@ -24,7 +24,7 @@ public class AllotService : IAutoInjection
...
@@ -24,7 +24,7 @@ public class AllotService : IAutoInjection
private
ImportDataService
importDataService
;
private
ImportDataService
importDataService
;
private
ProcessComputService
processComputService
;
private
ProcessComputService
processComputService
;
private
ResultComputeService
resultComputeService
;
private
ResultComputeService
resultComputeService
;
private
PerforLogdbugRepository
logdbug
;
//
private PerforLogdbugRepository logdbug;
private
ConfigService
configService
;
private
ConfigService
configService
;
private
IHostingEnvironment
_evn
;
private
IHostingEnvironment
_evn
;
...
@@ -35,7 +35,8 @@ public class AllotService : IAutoInjection
...
@@ -35,7 +35,8 @@ public class AllotService : IAutoInjection
private
PerforPeragainallotRepository
_againallotRepository
;
private
PerforPeragainallotRepository
_againallotRepository
;
private
PerforLogcheckRepository
perforLogcheckRepository
;
private
PerforLogcheckRepository
perforLogcheckRepository
;
private
readonly
PerforHospitalRepository
perforHospitalRepository
;
private
readonly
PerforHospitalRepository
perforHospitalRepository
;
private
readonly
IHubContext
<
AllotLogHub
>
hubContext
;
//private readonly IHubContext<AllotLogHub> hubContext;
private
readonly
LogManageService
logManageService
;
public
AllotService
(
PerforPerallotRepository
allotRepository
,
public
AllotService
(
PerforPerallotRepository
allotRepository
,
BaiscNormService
baiscNormService
,
BaiscNormService
baiscNormService
,
...
@@ -44,14 +45,15 @@ public class AllotService : IAutoInjection
...
@@ -44,14 +45,15 @@ public class AllotService : IAutoInjection
ProcessComputService
processComputService
,
ProcessComputService
processComputService
,
ResultComputeService
resultComputeService
,
ResultComputeService
resultComputeService
,
ConfigService
configService
,
ConfigService
configService
,
PerforLogdbugRepository
logdbug
,
//
PerforLogdbugRepository logdbug,
IHostingEnvironment
evn
,
ILogger
<
AllotService
>
logger
,
IHostingEnvironment
evn
,
ILogger
<
AllotService
>
logger
,
IEmailService
emailService
,
IEmailService
emailService
,
IOptions
<
Application
>
options
,
IOptions
<
Application
>
options
,
PerforPeragainallotRepository
againallotRepository
,
PerforPeragainallotRepository
againallotRepository
,
PerforLogcheckRepository
perforLogcheckRepository
,
PerforLogcheckRepository
perforLogcheckRepository
,
PerforHospitalRepository
perforHospitalRepository
,
PerforHospitalRepository
perforHospitalRepository
,
IHubContext
<
AllotLogHub
>
hubContext
)
//IHubContext<AllotLogHub> hubContext
LogManageService
logManageService
)
{
{
_allotRepository
=
allotRepository
;
_allotRepository
=
allotRepository
;
_againallotRepository
=
againallotRepository
;
_againallotRepository
=
againallotRepository
;
...
@@ -65,10 +67,11 @@ public class AllotService : IAutoInjection
...
@@ -65,10 +67,11 @@ public class AllotService : IAutoInjection
this
.
emailService
=
emailService
;
this
.
emailService
=
emailService
;
this
.
options
=
options
;
this
.
options
=
options
;
this
.
configService
=
configService
;
this
.
configService
=
configService
;
this
.
logdbug
=
logdbug
;
//
this.logdbug = logdbug;
this
.
perforLogcheckRepository
=
perforLogcheckRepository
;
this
.
perforLogcheckRepository
=
perforLogcheckRepository
;
this
.
perforHospitalRepository
=
perforHospitalRepository
;
this
.
perforHospitalRepository
=
perforHospitalRepository
;
this
.
hubContext
=
hubContext
;
//this.hubContext = hubContext;
this
.
logManageService
=
logManageService
;
}
}
#
region
基础功能
#
region
基础功能
...
@@ -212,41 +215,52 @@ public void Generate(per_allot allot, string mail)
...
@@ -212,41 +215,52 @@ public void Generate(per_allot allot, string mail)
DateTime
time
=
DateTime
.
Now
;
DateTime
time
=
DateTime
.
Now
;
try
try
{
{
hubContext
.
Clients
.
Group
(
"aaaa"
).
SendAsync
(
"ReceiveMessage"
,
"绩效开始执行"
,
"绩效开始执行"
);
//hubContext.Clients.Group("aaaa").SendAsync("ReceiveMessage", "绩效开始执行", "绩效开始执行");
logdbug
.
Add
(
allot
.
ID
,
"绩效开始执行"
,
JsonHelper
.
Serialize
(
allot
));
//logdbug.Add(allot.ID, "绩效开始执行", JsonHelper.Serialize(allot));
logManageService
.
WriteMsg
(
"绩效开始执行"
,
JsonHelper
.
Serialize
(
allot
),
allot
.
ID
,
"ReceiveMessage"
,
true
);
configService
.
Clear
(
allot
.
ID
);
configService
.
Clear
(
allot
.
ID
);
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InCheckData
,
EnumHelper
.
GetDescription
(
AllotStates
.
InCheckData
));
// 导出数据
// 导出数据
var
excel
=
importDataService
.
ReadDataAndSave
(
allot
);
var
excel
=
importDataService
.
ReadDataAndSave
(
allot
);
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InCheckData
,
EnumHelper
.
GetDescription
(
AllotStates
.
InCheckData
));
if
(!
checkDataService
.
Check
(
excel
,
allot
))
if
(!
checkDataService
.
Check
(
excel
,
allot
))
{
{
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
CheckFail
,
EnumHelper
.
GetDescription
(
AllotStates
.
CheckFail
));
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
CheckFail
,
EnumHelper
.
GetDescription
(
AllotStates
.
CheckFail
));
SendEmail
(
allot
,
mail
,
3
,
time
);
SendEmail
(
allot
,
mail
,
3
,
time
);
logdbug
.
Add
(
allot
.
ID
,
"绩效数据校验失败"
,
JsonHelper
.
Serialize
(
allot
));
//logdbug.Add(allot.ID, "绩效数据校验失败", JsonHelper.Serialize(allot));
logManageService
.
WriteMsg
(
"绩效数据校验失败"
,
JsonHelper
.
Serialize
(
allot
),
allot
.
ID
,
"ReceiveMessage"
,
true
);
return
;
return
;
}
}
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InGenerate
,
EnumHelper
.
GetDescription
(
AllotStates
.
InGenerate
));
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
InGenerate
,
EnumHelper
.
GetDescription
(
AllotStates
.
InGenerate
));
// 计算合并数据
// 计算合并数据
logdbug
.
Add
(
allot
.
ID
,
"计算合并数据"
,
JsonHelper
.
Serialize
(
allot
));
//logdbug.Add(allot.ID, "计算合并数据", JsonHelper.Serialize(allot));
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算合并数据"
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
List
<
PerSheet
>
list
=
processComputService
.
MergeAndSave
(
excel
,
allot
);
List
<
PerSheet
>
list
=
processComputService
.
MergeAndSave
(
excel
,
allot
);
//var baiscnorm = baiscNormService.NurseBaiscnorm(list);
//var baiscnorm = baiscNormService.NurseBaiscnorm(list);
//logdbug.Add(allot.ID, "护士平均绩效", JsonHelper.Serialize(baiscnorm));
//logdbug.Add(allot.ID, "护士平均绩效", JsonHelper.Serialize(baiscnorm));
// 计算最总数据
// 计算最总数据
logdbug
.
Add
(
allot
.
ID
,
"绩效结果计算数据开始"
,
""
);
//logdbug.Add(allot.ID, "绩效结果计算数据开始", "");
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终绩效数据"
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
excel
,
list
);
var
baiscnormList
=
resultComputeService
.
Compute
(
allot
,
excel
,
list
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"计算最终特殊科室绩效数据"
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
baiscnormList
);
resultComputeService
.
SpecialUnitCompute
(
excel
,
allot
,
baiscnormList
);
logManageService
.
WriteMsg
(
"正在生成绩效"
,
"保存最终特殊科室绩效数据"
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateSucceed
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateSucceed
));
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateSucceed
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateSucceed
));
//发送邮件
//发送邮件
SendEmail
(
allot
,
mail
,
1
,
time
);
SendEmail
(
allot
,
mail
,
1
,
time
);
logdbug
.
Add
(
allot
.
ID
,
"绩效开始执行"
,
"绩效生成成功"
);
//logdbug.Add(allot.ID, "绩效开始执行", "绩效生成成功");
logManageService
.
WriteMsg
(
"绩效生成结束"
,
"绩效生成成功"
,
allot
.
ID
,
"ReceiveMessage"
,
true
);
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateFail
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateFail
));
UpdateAllotStates
(
allot
.
ID
,
(
int
)
AllotStates
.
GenerateFail
,
EnumHelper
.
GetDescription
(
AllotStates
.
GenerateFail
));
SendEmail
(
allot
,
mail
,
2
,
time
);
SendEmail
(
allot
,
mail
,
2
,
time
);
logdbug
.
Add
(
allot
.
ID
,
"绩效开始执行"
,
ex
.
ToString
());
//logdbug.Add(allot.ID, "绩效开始执行", ex.ToString());
logManageService
.
WriteMsg
(
"绩效生成失败"
,
ex
.
ToString
(),
allot
.
ID
,
"ReceiveMessage"
,
true
);
//throw ex;
//throw ex;
}
}
}
}
...
...
performance/Performance.Services/ConfigService.cs
View file @
db51957b
...
@@ -13,6 +13,7 @@ namespace Performance.Services
...
@@ -13,6 +13,7 @@ namespace Performance.Services
{
{
public
class
ConfigService
:
IAutoInjection
public
class
ConfigService
:
IAutoInjection
{
{
#
region
private
PerforCofdirectorRepository
_directorRepository
;
private
PerforCofdirectorRepository
_directorRepository
;
private
PerforCofdrugpropRepository
_drugpropRepository
;
private
PerforCofdrugpropRepository
_drugpropRepository
;
private
PerforCofincomeRepository
_incomeRepository
;
private
PerforCofincomeRepository
_incomeRepository
;
...
@@ -22,7 +23,8 @@ public class ConfigService : IAutoInjection
...
@@ -22,7 +23,8 @@ public class ConfigService : IAutoInjection
private
PerforPerallotRepository
perforPerAllotRepository
;
private
PerforPerallotRepository
perforPerAllotRepository
;
private
PerforPeragainallotRepository
perforPeragainallotRepository
;
private
PerforPeragainallotRepository
perforPeragainallotRepository
;
private
PerforHospitalRepository
perforHospitalRepository
;
private
PerforHospitalRepository
perforHospitalRepository
;
private
PerforLogdbugRepository
logdbug
;
//private PerforLogdbugRepository logdbug;
private
readonly
LogManageService
logManageService
;
public
ConfigService
(
PerforCofdirectorRepository
cofdirectorRepository
,
public
ConfigService
(
PerforCofdirectorRepository
cofdirectorRepository
,
PerforCofdrugpropRepository
cofdrugpropRepository
,
PerforCofdrugpropRepository
cofdrugpropRepository
,
PerforCofincomeRepository
cofincomeRepository
,
PerforCofincomeRepository
cofincomeRepository
,
...
@@ -32,7 +34,8 @@ public class ConfigService : IAutoInjection
...
@@ -32,7 +34,8 @@ public class ConfigService : IAutoInjection
PerforPerallotRepository
perforPerAllotRepository
,
PerforPerallotRepository
perforPerAllotRepository
,
PerforPeragainallotRepository
perforPeragainallotRepository
,
PerforPeragainallotRepository
perforPeragainallotRepository
,
PerforHospitalRepository
perforHospitalRepository
,
PerforHospitalRepository
perforHospitalRepository
,
PerforLogdbugRepository
logdbug
)
//PerforLogdbugRepository logdbug
LogManageService
logManageService
)
{
{
this
.
_directorRepository
=
cofdirectorRepository
;
this
.
_directorRepository
=
cofdirectorRepository
;
this
.
_drugpropRepository
=
cofdrugpropRepository
;
this
.
_drugpropRepository
=
cofdrugpropRepository
;
...
@@ -43,8 +46,10 @@ public class ConfigService : IAutoInjection
...
@@ -43,8 +46,10 @@ public class ConfigService : IAutoInjection
this
.
perforPerAllotRepository
=
perforPerAllotRepository
;
this
.
perforPerAllotRepository
=
perforPerAllotRepository
;
this
.
perforPeragainallotRepository
=
perforPeragainallotRepository
;
this
.
perforPeragainallotRepository
=
perforPeragainallotRepository
;
this
.
perforHospitalRepository
=
perforHospitalRepository
;
this
.
perforHospitalRepository
=
perforHospitalRepository
;
this
.
logdbug
=
logdbug
;
//this.logdbug = logdbug;
this
.
logManageService
=
logManageService
;
}
}
#
endregion
#
region
cof_director
规模
/
效率绩效配置
#
region
cof_director
规模
/
效率绩效配置
/// <summary>
/// <summary>
...
@@ -343,16 +348,6 @@ public bool WorkDelete(WorkyearRequest request)
...
@@ -343,16 +348,6 @@ public bool WorkDelete(WorkyearRequest request)
}
}
#
endregion
#
endregion
/// <summary>
/// 清楚无效数据
/// </summary>
/// <param name="allotId"></param>
public
void
Clear
(
int
allotId
)
{
var
count
=
_directorRepository
.
DeleteData
(
allotId
);
logdbug
.
Add
(
allotId
,
"清理无效数据"
,
$"受影响行数:
{
count
}
"
);
}
#
region
Copy
#
region
Copy
/// <summary>
/// <summary>
/// 复制报表基础配置
/// 复制报表基础配置
...
@@ -486,6 +481,17 @@ public bool AgainDelete(CofAgainRequest request)
...
@@ -486,6 +481,17 @@ public bool AgainDelete(CofAgainRequest request)
}
}
#
endregion
#
endregion
#
region
清楚无效数据
Clear
/// <summary>
/// 清楚无效数据
/// </summary>
/// <param name="allotId"></param>
public
void
Clear
(
int
allotId
)
{
var
count
=
_directorRepository
.
DeleteData
(
allotId
);
//logdbug.Add(allotId, "清理无效数据", $"受影响行数:{count}");
logManageService
.
WriteMsg
(
"清理无效数据"
,
$"清理无效数据,受影响行数:
{
count
}
"
,
0
,
""
,
true
);
}
/// <summary>
/// <summary>
/// 清除二次绩效中无效数据
/// 清除二次绩效中无效数据
...
@@ -494,7 +500,9 @@ public bool AgainDelete(CofAgainRequest request)
...
@@ -494,7 +500,9 @@ public bool AgainDelete(CofAgainRequest request)
public
void
ClearAgain
(
int
againId
)
public
void
ClearAgain
(
int
againId
)
{
{
var
count
=
_directorRepository
.
DelAgain
(
againId
);
var
count
=
_directorRepository
.
DelAgain
(
againId
);
logdbug
.
Add
(
againId
,
"清除二次绩效中无效数据"
,
$"受影响行数:
{
count
}
"
);
//logdbug.Add(againId, "清除二次绩效中无效数据", $"受影响行数:{count}");
logManageService
.
WriteMsg
(
"清理无效数据"
,
$"清除二次绩效中无效数据,受影响行数:
{
count
}
"
,
0
,
""
,
true
);
}
}
#
endregion
}
}
}
}
performance/Performance.Services/Hubs/AllotLogHub.cs
View file @
db51957b
...
@@ -19,6 +19,11 @@ public override Task OnDisconnectedAsync(Exception exception)
...
@@ -19,6 +19,11 @@ public override Task OnDisconnectedAsync(Exception exception)
var
groupName
=
"aaaa"
;
var
groupName
=
"aaaa"
;
//2 删除数据库中用户分组数据
//2 删除数据库中用户分组数据
if
(
RedisHelper
.
HExists
(
"MyGroup"
,
groupName
))
{
var
connectionId
=
Context
.
ConnectionId
;
RedisHelper
.
HDel
(
"MyGroup"
,
groupName
);
}
//3 分组中删除用户
//3 分组中删除用户
Groups
.
RemoveFromGroupAsync
(
Context
.
ConnectionId
,
groupName
);
Groups
.
RemoveFromGroupAsync
(
Context
.
ConnectionId
,
groupName
);
...
@@ -27,10 +32,16 @@ public override Task OnDisconnectedAsync(Exception exception)
...
@@ -27,10 +32,16 @@ public override Task OnDisconnectedAsync(Exception exception)
public
async
Task
AddGroup
(
string
token
,
string
groupName
)
public
async
Task
AddGroup
(
string
token
,
string
groupName
)
{
{
//1 向数据库中插入用户及分组信息
if
(!
RedisHelper
.
HExists
(
"MyGroup"
,
groupName
))
{
//1 向数据库中插入用户及分组信息
var
connectionId
=
Context
.
ConnectionId
;
RedisHelper
.
HSet
(
"MyGroup"
,
groupName
,
connectionId
);
//2 将用户插入分组
await
Groups
.
AddToGroupAsync
(
Context
.
ConnectionId
,
groupName
);
//2 将用户插入分组
await
Groups
.
AddToGroupAsync
(
Context
.
ConnectionId
,
groupName
);
}
}
}
}
}
}
}
performance/Performance.Services/LogManageService.cs
0 → 100644
View file @
db51957b
using
Microsoft.AspNetCore.Mvc.ViewFeatures
;
using
Microsoft.AspNetCore.SignalR
;
using
Performance.Repository
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.Services
{
public
class
LogManageService
:
IAutoInjection
{
private
readonly
IHubContext
<
AllotLogHub
>
hubContext
;
private
PerforLogdbugRepository
logdbug
;
public
LogManageService
(
IHubContext
<
AllotLogHub
>
hubContext
,
PerforLogdbugRepository
logdbug
)
{
this
.
hubContext
=
hubContext
;
this
.
logdbug
=
logdbug
;
}
/// <summary>
///
/// </summary>
/// <param name="tag">标签</param>
/// <param name="message">内容</param>
/// <param name="allotId">绩效Id</param>
/// <param name="method">方法名称</param>
public
void
WriteMsg
(
string
tag
,
string
message
,
int
allotId
,
string
method
,
bool
isDebug
=
false
)
{
hubContext
.
Clients
.
Group
(
allotId
.
ToString
()).
SendAsync
(
method
,
tag
,
message
);
if
(
isDebug
)
{
logdbug
.
Add
(
allotId
,
tag
,
message
);
}
}
}
}
performance/Performance.Services/NewExtractService.cs
View file @
db51957b
This diff is collapsed.
Click to expand it.
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