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
c5d7f4fc
Commit
c5d7f4fc
authored
Dec 30, 2021
by
纪旭 韦
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
基本完成绩效汇总三个表
parent
cdff00e8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
340 additions
and
62 deletions
+340
-62
performance/Performance.Api/Controllers/ReportController.cs
+167
-27
performance/Performance.Api/Program.cs
+1
-0
performance/Performance.Api/wwwroot/Performance.Api.xml
+38
-3
performance/Performance.DtoModels/Request/ComputerRequest.cs
+15
-6
performance/Performance.EntityModels/Other/view_allot_sign_dept.cs
+1
-1
performance/Performance.Repository/PerforReportRepository .cs
+35
-16
performance/Performance.Services/ComputeService.cs
+79
-5
performance/Performance.Services/DownloadService.cs
+4
-4
No files found.
performance/Performance.Api/Controllers/ReportController.cs
View file @
c5d7f4fc
...
...
@@ -279,6 +279,7 @@ public ApiResponse TableSpecial([FromBody] ConditionRequest request)
#
region
全院发放
/// <summary>
/// 全院绩效发放(视图)
/// </summary>
...
...
@@ -347,8 +348,67 @@ public IActionResult AllComputeViewDownload([FromBody] BeginEndTimeDown request)
return
File
(
memoryStream
,
memi
,
Path
.
GetFileName
(
fileInfo
.
Name
));
}
/// <summary>
/// 全院绩效发放汇总表(视图)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"wholehospital_grant_summary"
)]
[
HttpPost
]
public
ApiResponse
GetWholeHospitalGrantSummary
([
FromBody
]
HospitalGrantSummary
request
)
{
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
_computeService
.
GetPerformanceSummary
(
request
,
"view_allot_sign_emp"
));
}
/// <summary>
/// 全院绩效发放汇总表(视图)下载
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"wholehospital_grant_summary/download"
)]
[
HttpPost
]
public
IActionResult
WholeHospitalGrantSummaryDownload
([
FromBody
]
HospitalGrantSummaryDown
request
)
{
if
(
request
.
HospitalId
==
0
)
throw
new
PerformanceException
(
"医院ID不能为空"
);
DateTime
bdate
=
DateTime
.
Now
;
DateTime
edate
=
DateTime
.
Now
;
if
(
string
.
IsNullOrEmpty
(
request
.
BeginTime
)
||
!
DateTime
.
TryParse
(
request
.
BeginTime
,
out
bdate
)
||
string
.
IsNullOrEmpty
(
request
.
EndTime
)
||
!
DateTime
.
TryParse
(
request
.
EndTime
,
out
edate
))
throw
new
PerformanceException
(
"请输入正确的时间"
);
var
(
a
,
list
)
=
_computeService
.
GetAllComputeViewByDateAndTotal
(
"view_allot_sign_emp"
,
bdate
,
edate
.
AddMonths
(
1
),
request
.
GroupBy
,
request
.
SumBy
);
if
(
null
==
list
)
throw
new
PerformanceException
(
"当前绩效记录不存在"
);
List
<
string
>
headlist
=
new
List
<
string
>();
foreach
(
var
item
in
request
.
GroupBy
.
Union
(
request
.
SumBy
).
ToList
())
{
headlist
.
Add
(
item
.
ToLower
());
}
var
filepath
=
downloadService
.
AllComputerViewReportByDate
(
request
.
HospitalId
,
list
,
"/report/wholehospital_grant_summary"
,
"全院绩效发放"
,
bdate
,
edate
.
AddMonths
(
1
),
headlist
.
ToArray
());
var
memoryStream
=
new
MemoryStream
();
using
(
var
stream
=
new
FileStream
(
filepath
,
FileMode
.
Open
))
{
stream
.
CopyToAsync
(
memoryStream
).
Wait
();
}
memoryStream
.
Seek
(
0
,
SeekOrigin
.
Begin
);
var
provider
=
new
FileExtensionContentTypeProvider
();
FileInfo
fileInfo
=
new
FileInfo
(
filepath
);
var
memi
=
provider
.
Mappings
[
".xlsx"
];
return
File
(
memoryStream
,
memi
,
Path
.
GetFileName
(
fileInfo
.
Name
));
}
#
endregion
#
region
全院核算发放
/// <summary>
/// 全院核算绩效发放(视图)
/// </summary>
/// <param name="request"></param>
...
...
@@ -380,58 +440,66 @@ public ApiResponse GethosdataView([FromBody] BeginEndTime request)
}
/// <summary>
/// 全院核算绩效发放
汇总表(视图)
/// 全院核算绩效发放
(视图) 下载
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"
wholehospital_grant_summary
"
)]
[
Route
(
"
gethosdataView/download
"
)]
[
HttpPost
]
public
ApiResponse
GetWholeHospitalGrantSummary
([
FromBody
]
HospitalGrantSummary
request
)
public
IActionResult
GethosdataView
([
FromBody
]
BeginEndTimeDown
request
)
{
if
(
request
.
HospitalId
==
0
)
throw
new
PerformanceException
(
"医院ID不能为空"
);
DateTime
bdate
=
DateTime
.
Now
;
DateTime
edate
=
DateTime
.
Now
;
if
(
string
.
IsNullOrEmpty
(
request
.
BeginTime
)
||
!
DateTime
.
TryParse
(
request
.
BeginTime
,
out
bdate
)
||
string
.
IsNullOrEmpty
(
request
.
EndTime
)
||
!
DateTime
.
TryParse
(
request
.
EndTime
,
out
edate
))
throw
new
PerformanceException
(
"请输入正确的时间"
);
var
datas
=
_computeService
.
GetAllComputeViewByDateAndTotal
(
"view_allot_sign_dept"
,
bdate
,
edate
.
AddMonths
(
1
),
request
.
GroupBy
,
request
.
SumBy
);
if
(
null
==
datas
)
var
list
=
_computeService
.
GetAllComputeViewByDate
(
"view_allot_sign_dept"
,
bdate
,
edate
.
AddMonths
(
1
)
);
if
(
null
==
list
)
throw
new
PerformanceException
(
"当前绩效记录不存在"
);
var
headlist
=
request
.
GroupBy
.
Union
(
request
.
SumBy
).
Select
(
t
=>
t
.
ToLower
()).
ToList
();
var
AllComputeView
=
ComputeConfig
.
AllComputeView
.
Where
(
t
=>
headlist
.
Contains
(
t
.
Name
.
ToLower
())).
ToList
();
var
filepath
=
downloadService
.
AllComputerViewReportByDate
(
request
.
HospitalId
,
list
,
"/report/wholehospital_accounting_grant"
,
"全院核算绩效发放"
,
bdate
,
edate
.
AddMonths
(
1
));
List
<
Head
>
head
=
new
List
<
Head
>();
foreach
(
var
item
in
AllComputeView
)
{
Head
head1
=
new
Head
()
var
memoryStream
=
new
MemoryStream
();
using
(
var
stream
=
new
FileStream
(
filepath
,
FileMode
.
Open
))
{
Name
=
item
.
Name
,
Alias
=
item
.
Alias
};
head
.
Add
(
head1
);
stream
.
CopyToAsync
(
memoryStream
).
Wait
();
}
memoryStream
.
Seek
(
0
,
SeekOrigin
.
Begin
);
var
provider
=
new
FileExtensionContentTypeProvider
();
FileInfo
fileInfo
=
new
FileInfo
(
filepath
);
var
memi
=
provider
.
Mappings
[
".xlsx"
];
return
File
(
memoryStream
,
memi
,
Path
.
GetFileName
(
fileInfo
.
Name
));
}
var
list
=
new
QueryComputeByDateGetTotal
/// <summary>
/// 全院核算绩效发放汇总表(视图)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"wholehospital_accounting_grant_summary"
)]
[
HttpPost
]
public
ApiResponse
GetWholeHospitalAccountingGrantSummary
([
FromBody
]
HospitalGrantSummary
request
)
{
Head
=
head
,
Data
=
datas
.
ToList
(),
TotalData
=
_computeService
.
SumDatas
(
datas
),
};
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
list
);
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
_computeService
.
GetPerformanceSummary
(
request
,
"view_allot_sign_dept"
));
}
/// <summary>
/// 全院核算绩效发放
(视图)
下载
/// 全院核算绩效发放
汇总表(视图)
下载
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"
gethosdataView
/download"
)]
[
Route
(
"
wholehospital_accounting_grant_summary
/download"
)]
[
HttpPost
]
public
IActionResult
GethosdataView
([
FromBody
]
BeginEndTime
Down
request
)
public
IActionResult
WholeHospitalAccountingGrantSummaryDownload
([
FromBody
]
HospitalGrantSummary
Down
request
)
{
if
(
request
.
HospitalId
==
0
)
throw
new
PerformanceException
(
"医院ID不能为空"
);
...
...
@@ -442,11 +510,19 @@ public IActionResult GethosdataView([FromBody] BeginEndTimeDown request)
string
.
IsNullOrEmpty
(
request
.
EndTime
)
||
!
DateTime
.
TryParse
(
request
.
EndTime
,
out
edate
))
throw
new
PerformanceException
(
"请输入正确的时间"
);
var
list
=
_computeService
.
GetAllComputeViewByDate
(
"view_allot_sign_dept"
,
bdate
,
edate
.
AddMonths
(
1
));
var
(
a
,
list
)
=
_computeService
.
GetAllComputeViewByDateAndTotal
(
"view_allot_sign_dept"
,
bdate
,
edate
.
AddMonths
(
1
),
request
.
GroupBy
,
request
.
SumBy
);
if
(
null
==
list
)
throw
new
PerformanceException
(
"当前绩效记录不存在"
);
var
filepath
=
downloadService
.
AllComputerViewReportByDate
(
request
.
HospitalId
,
list
,
"/report/wholehospital_accounting_grant"
,
"全院核算绩效发放"
,
bdate
,
edate
.
AddMonths
(
1
));
List
<
string
>
headlist
=
new
List
<
string
>();
foreach
(
var
item
in
request
.
GroupBy
.
Union
(
request
.
SumBy
).
ToList
())
{
headlist
.
Add
(
item
.
ToLower
());
}
var
filepath
=
downloadService
.
AllComputerViewReportByDate
(
request
.
HospitalId
,
list
,
"/report/wholehospital_accounting_grant_summary"
,
"全院绩效发放"
,
bdate
,
edate
.
AddMonths
(
1
),
headlist
.
ToArray
());
var
memoryStream
=
new
MemoryStream
();
using
(
var
stream
=
new
FileStream
(
filepath
,
FileMode
.
Open
))
...
...
@@ -458,9 +534,12 @@ public IActionResult GethosdataView([FromBody] BeginEndTimeDown request)
FileInfo
fileInfo
=
new
FileInfo
(
filepath
);
var
memi
=
provider
.
Mappings
[
".xlsx"
];
return
File
(
memoryStream
,
memi
,
Path
.
GetFileName
(
fileInfo
.
Name
));
}
#
endregion
#
region
全院财务发放
/// <summary>
/// 获取财务全院绩效列表(视图)
/// </summary>
...
...
@@ -528,6 +607,66 @@ public IActionResult AllComputeByPMViewDownLoad([FromBody] BeginEndTimeDown requ
var
memi
=
provider
.
Mappings
[
".xlsx"
];
return
File
(
memoryStream
,
memi
,
Path
.
GetFileName
(
fileInfo
.
Name
));
}
/// <summary>
/// 财务全院绩效发放汇总表(视图)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"wholehospital_finance_grant_summary"
)]
[
HttpPost
]
public
ApiResponse
GetWholeHospitalFinanceGrantSummary
([
FromBody
]
HospitalGrantSummary
request
)
{
return
new
ApiResponse
(
ResponseType
.
OK
,
"ok"
,
_computeService
.
GetPerformanceSummary
(
request
,
"view_allot_sign_emp_finance"
));
}
/// <summary>
/// 财务全院绩效发放汇总表(视图)下载
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"wholehospital_finance_grant_summary/download"
)]
[
HttpPost
]
public
IActionResult
WholeHospitalFinanceGrantSummaryDownload
([
FromBody
]
HospitalGrantSummaryDown
request
)
{
if
(
request
.
HospitalId
==
0
)
throw
new
PerformanceException
(
"医院ID不能为空"
);
DateTime
bdate
=
DateTime
.
Now
;
DateTime
edate
=
DateTime
.
Now
;
if
(
string
.
IsNullOrEmpty
(
request
.
BeginTime
)
||
!
DateTime
.
TryParse
(
request
.
BeginTime
,
out
bdate
)
||
string
.
IsNullOrEmpty
(
request
.
EndTime
)
||
!
DateTime
.
TryParse
(
request
.
EndTime
,
out
edate
))
throw
new
PerformanceException
(
"请输入正确的时间"
);
var
(
a
,
list
)
=
_computeService
.
GetAllComputeViewByDateAndTotal
(
"view_allot_sign_dept"
,
bdate
,
edate
.
AddMonths
(
1
),
request
.
GroupBy
,
request
.
SumBy
);
if
(
null
==
list
)
throw
new
PerformanceException
(
"当前绩效记录不存在"
);
List
<
string
>
headlist
=
new
List
<
string
>();
foreach
(
var
item
in
request
.
GroupBy
.
Union
(
request
.
SumBy
).
ToList
())
{
headlist
.
Add
(
item
.
ToLower
());
}
var
filepath
=
downloadService
.
AllComputerViewReportByDate
(
request
.
HospitalId
,
list
,
"/report/wholehospital_finance_grant"
,
"全院绩效发放"
,
bdate
,
edate
.
AddMonths
(
1
),
headlist
.
ToArray
());
var
memoryStream
=
new
MemoryStream
();
using
(
var
stream
=
new
FileStream
(
filepath
,
FileMode
.
Open
))
{
stream
.
CopyToAsync
(
memoryStream
).
Wait
();
}
memoryStream
.
Seek
(
0
,
SeekOrigin
.
Begin
);
var
provider
=
new
FileExtensionContentTypeProvider
();
FileInfo
fileInfo
=
new
FileInfo
(
filepath
);
var
memi
=
provider
.
Mappings
[
".xlsx"
];
return
File
(
memoryStream
,
memi
,
Path
.
GetFileName
(
fileInfo
.
Name
));
}
#
endregion
#
endregion
}
}
\ No newline at end of file
performance/Performance.Api/Program.cs
View file @
c5d7f4fc
...
...
@@ -45,5 +45,6 @@ public static void Main(string[] args)
logging
.
SetMinimumLevel
(
LogLevel
.
Trace
);
})
.
UseNLog
();
}
}
performance/Performance.Api/wwwroot/Performance.Api.xml
View file @
c5d7f4fc
...
...
@@ -1663,6 +1663,20 @@
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportController.GetWholeHospitalGrantSummary(Performance.DtoModels.HospitalGrantSummary)"
>
<summary>
全院绩效发放汇总表(视图)
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportController.WholeHospitalGrantSummaryDownload(Performance.DtoModels.HospitalGrantSummaryDown)"
>
<summary>
全院绩效发放汇总表(视图)下载
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportController.GethosdataView(Performance.DtoModels.BeginEndTime)"
>
<summary>
全院核算绩效发放(视图)
...
...
@@ -1670,16 +1684,23 @@
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportController.GetWholeHospitalGrantSummary(Performance.DtoModels.HospitalGrantSummary)"
>
<member
name=
"M:Performance.Api.Controllers.ReportController.GethosdataView(Performance.DtoModels.BeginEndTimeDown)"
>
<summary>
全院核算绩效发放(视图) 下载
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportController.GetWholeHospitalAccountingGrantSummary(Performance.DtoModels.HospitalGrantSummary)"
>
<summary>
全院核算绩效发放汇总表(视图)
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportController.
GethosdataView(Performance.DtoModels.BeginEndTime
Down)"
>
<member
name=
"M:Performance.Api.Controllers.ReportController.
WholeHospitalAccountingGrantSummaryDownload(Performance.DtoModels.HospitalGrantSummary
Down)"
>
<summary>
全院核算绩效发放
(视图)
下载
全院核算绩效发放
汇总表(视图)
下载
</summary>
<param
name=
"request"
></param>
<returns></returns>
...
...
@@ -1698,6 +1719,20 @@
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportController.GetWholeHospitalFinanceGrantSummary(Performance.DtoModels.HospitalGrantSummary)"
>
<summary>
财务全院绩效发放汇总表(视图)
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportController.WholeHospitalFinanceGrantSummaryDownload(Performance.DtoModels.HospitalGrantSummaryDown)"
>
<summary>
财务全院绩效发放汇总表(视图)下载
</summary>
<param
name=
"request"
></param>
<returns></returns>
</member>
<member
name=
"M:Performance.Api.Controllers.ReportGlobalController.GetAllReportGlobal(System.Int32)"
>
<summary>
获取报表配置信息
...
...
performance/Performance.DtoModels/Request/ComputerRequest.cs
View file @
c5d7f4fc
...
...
@@ -73,25 +73,34 @@ public class HospitalGrantSummary : BeginEndTime
public
List
<
string
>
GroupBy
{
get
;
set
;
}
public
List
<
string
>
SumBy
{
get
;
set
;
}
}
public
class
HospitalGrantSummaryDown
:
HospitalGrantSummary
{
public
int
HospitalId
{
get
;
set
;
}
public
string
[]
heads
{
get
;
set
;
}
}
public
class
QueryComputeByDateGetPage
public
class
QueryComputeByDateGetPage
:
GetPage
{
public
List
<
dynamic
>
Data
{
get
;
set
;
}
public
Dictionary
<
string
,
decimal
>
TotalData
{
get
;
set
;
}
}
public
class
GetPage
{
public
int
CurrentPage
{
get
;
set
;
}
public
int
TotalPages
{
get
;
set
;
}
public
int
PageSize
{
get
;
set
;
}
public
int
TotalCount
{
get
;
set
;
}
}
public
class
QueryComputeByDateGetTotal
public
class
QueryComputeByDateGetTotal
:
GetPage
{
public
List
<
Head
>
Head
{
get
;
set
;
}
public
List
<
dynamic
>
Data
{
get
;
set
;
}
public
Dictionary
<
string
,
decimal
>
TotalData
{
get
;
set
;
}}
public
decimal
TotalData
{
get
;
set
;
}}
}
public
class
Head
{
public
class
Head
{
public
string
Name
{
get
;
set
;
}
public
string
Alias
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Other/view_allot_sign_dept.cs
View file @
c5d7f4fc
...
...
@@ -6,7 +6,7 @@ public class view_allot_sign_dept
public
int
AllotID
{
get
;
set
;
}
public
int
Year
{
get
;
set
;
}
public
int
Month
{
get
;
set
;
}
public
int
Unit
Nam
e
{
get
;
set
;
}
public
int
Unit
Typ
e
{
get
;
set
;
}
public
int
AccountingUnit
{
get
;
set
;
}
public
int
PerforFee
{
get
;
set
;
}
public
int
WorkloadFee
{
get
;
set
;
}
...
...
performance/Performance.Repository/PerforReportRepository .cs
View file @
c5d7f4fc
using
Microsoft.EntityFrameworkCore
;
using
Dapper
;
using
Microsoft.EntityFrameworkCore
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
System
;
...
...
@@ -406,25 +407,43 @@ public List<dynamic> QueryComputeByDate(string viewName, DateTime beginTime, Dat
return
DapperQuery
<
dynamic
>(
sql
,
new
{
beginTime
=
beginTime
.
ToString
(
"yyyy-MM-dd"
),
endTime
=
endTime
.
ToString
(
"yyyy-MM-dd"
)
}).
ToList
();
}
public
List
<
dynamic
>
QueryComputeByDateAndTotal
(
string
viewName
,
DateTime
beginTime
,
DateTime
endTime
,
List
<
string
>
groupBy
,
List
<
string
>
sumBy
)
{
string
Groupby
=
""
;
string
Sumby
=
""
;
foreach
(
var
item
in
groupBy
)
public
(
int
count
,
List
<
dynamic
>
data
)
QueryComputeByDateAndTotal
(
string
viewName
,
DateTime
beginTime
,
DateTime
endTime
,
List
<
string
>
groupBy
,
List
<
string
>
sumBy
,
int
pageNumber
,
int
pageSize
)
{
Groupby
+=
$@"
{
item
}
,"
;
}
foreach
(
var
item
in
sumBy
)
if
(!
new
string
[]
{
"view_allot_sign_dept"
,
"view_allot_sign_emp"
,
"view_allot_sign_emp_finance"
}.
Contains
(
viewName
))
return
(
0
,
new
List
<
dynamic
>());
var
sql
=
$@" SELECT * FROM
{
viewName
}
where STR_TO_DATE(concat(Year,'-',Month,'-01'),'%Y-%m-%d') >= @beginTime
and STR_TO_DATE(concat(Year,'-',Month,'-01'),'%Y-%m-%d') < @endTime "
;
Dictionary
<
string
,
List
<
string
>>
dict
=
new
Dictionary
<
string
,
List
<
string
>>
{
Sumby
+=
$@"Sum(
{
item
}
)
{
item
}
,"
;
}
Groupby
=
Groupby
.
Substring
(
0
,
Groupby
.
Length
-
1
);
Sumby
=
Sumby
.
Substring
(
0
,
Sumby
.
Length
-
1
);
{
"view_allot_sign_dept_group"
,
new
List
<
string
>{
"hospitalid"
,
"allotid"
,
"year"
,
"month"
,
"unittype"
,
"accountingunit"
}
},
{
"view_allot_sign_dept_sum"
,
new
List
<
string
>{
"perforfee"
,
"workloadfee"
,
"assessbeforeotherfee"
,
"perfortotal"
,
"scoringaverage"
,
"extra"
,
"medicineextra"
,
"materialsextra"
,
"assesslaterotherfee"
,
"assesslaterperfortotal"
,
"adjustfactor"
,
"adjustlaterotherfee"
,
"aprperforamount"
,
"hideaprotherperforamount"
,
"assesslatermanagementfee"
,
"realgivefee"
}
},
{
"view_allot_sign_emp_group"
,
new
List
<
string
>{
"hospitalid"
,
"year"
,
"month"
,
"source"
,
"allotid"
,
"secondid"
,
"states"
,
"unittype"
,
"accountingunit"
,
"isshowmanage"
,
"employeename"
,
"jobnumber"
,
"jobtitle"
,
"emp_unittype"
,
"emp_accountingunit"
,
"bankcard"
,
"batch"
,
"jobcategory"
,
"duty"
,
"titleposition"
}
},
{
"view_allot_sign_emp_sum"
,
new
List
<
string
>{
"perforsumfee"
,
"performanagementfee"
,
"nightworkperfor"
,
"adjustlaterotherfee"
,
"otherperfor"
,
"hideotherperfor"
,
"shouldgivefee"
,
"reservedratiofee"
,
"realgivefee"
}
},
{
"view_allot_sign_emp_finance_group"
,
new
List
<
string
>{
"hospitalid"
,
"year"
,
"month"
,
"allotid"
,
"jobnumber"
,
"employeename"
,
"jobtitle"
,
"unittype"
,
"accountingunit"
,
"bankcard"
,
"jobcategory"
,
"duty"
,
"titleposition"
}
},
{
"view_allot_sign_emp_finance_sum"
,
new
List
<
string
>{
"perforsumfee"
,
"performanagementfee"
,
"nightworkperfor"
,
"adjustlaterotherfee"
,
"otherperfor"
,
"hideotherperfor"
,
"shouldgivefee"
,
"reservedratiofee"
,
"realgivefee"
}
},
};
var
sql
=
$@"SELECT
{
Groupby
}
,
{
Sumby
}
FROM
{
viewName
}
where STR_TO_DATE(concat(Year,'-',Month,'-01'),'%Y-%m-%d') >= @beginTime
and STR_TO_DATE(concat(Year,'-',Month,'-01'),'%Y-%m-%d') < @endTime Group By
{
Groupby
}
"
;
if
(
groupBy
==
null
||
!
groupBy
.
Any
(
t
=>
!
string
.
IsNullOrEmpty
(
t
)))
groupBy
=
dict
[
viewName
+
"_group"
];
return
DapperQuery
<
dynamic
>(
sql
,
new
{
beginTime
=
beginTime
.
ToString
(
"yyyy-MM-dd"
),
endTime
=
endTime
.
ToString
(
"yyyy-MM-dd"
)
}).
ToList
();
if
(
sumBy
==
null
||
!
sumBy
.
Any
(
t
=>
!
string
.
IsNullOrEmpty
(
t
)))
sumBy
=
dict
[
viewName
+
"_sum"
];
sql
=
$"select
{
string
.
Join
(
","
,
groupBy
)}
,
{
string
.
Join
(
","
,
sumBy
.
Select
(
t
=>
$"sum(
{
t
}
)
{
t
}
"
))}
from (
{
sql
}
) tab group by
{
string
.
Join
(
","
,
groupBy
)}
"
;
sql
=
$@" select 0 as count;
{
sql
}
"
;
if
(
pageNumber
!=
0
&&
pageSize
!=
0
)
sql
=
$@" select count(1) count from (
{
sql
}
) tab;
select * from (
{
sql
}
) tab limit
{
pageSize
}
offset
{(
pageNumber
-
1
)
*
pageSize
}
;"
;
var
queryMulti
=
context
.
Database
.
GetDbConnection
().
QueryMultiple
(
sql
,
new
{
beginTime
,
endTime
});
var
count
=
queryMulti
.
ReadFirstOrDefault
<
int
>();
var
data
=
queryMulti
.
Read
<
dynamic
>()?.
ToList
();
return
(
count
,
data
);
}
public
CustonPagingData
QueryCustom
(
CustomPagingRequest
request
,
bool
IsHead
)
...
...
performance/Performance.Services/ComputeService.cs
View file @
c5d7f4fc
...
...
@@ -1999,7 +1999,7 @@ private decimal GetDecimal(decimal? value, decimal _ = 0)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public
List
<
cof_alias
>
CustomColumnHeaders
(
int
hospitalId
,
string
route
)
public
List
<
cof_alias
>
CustomColumnHeaders
(
int
hospitalId
,
string
route
,
params
string
[]
heads
)
{
var
init
=
new
List
<
cof_alias
>();
var
alias
=
cofaliasRepository
.
GetEntities
(
t
=>
t
.
HospitalId
==
hospitalId
)
??
new
List
<
cof_alias
>();
...
...
@@ -2016,6 +2016,11 @@ public List<cof_alias> CustomColumnHeaders(int hospitalId, string route)
{
"/report/wholehospital_grant"
,
ComputeConfig
.
AllComputeViewByDate
},
{
"/report/wholehospital_accounting_grant"
,
ComputeConfig
.
AllComputeDepartmentViewByDate
},
{
"/report/wholehospital_finance_grant"
,
ComputeConfig
.
AllComputePersonViewByDate
},
{
"/report/wholehospital_grant_summary"
,
ComputeConfig
.
PerformanceTotal
(
route
,
heads
)
},
{
"/report/wholehospital_accounting_grant_summary"
,
ComputeConfig
.
PerformanceTotal
(
route
,
heads
)
},
{
"/report/wholehospital_finance_grant_summary"
,
ComputeConfig
.
PerformanceTotal
(
route
,
heads
)
},
};
init
=
pairs
.
ContainsKey
(
route
.
ToLower
())
?
pairs
[
route
.
ToLower
()]
:
new
List
<
cof_alias
>();
}
...
...
@@ -2074,12 +2079,68 @@ public List<dynamic> GetAllComputeViewByDate(string viewName, DateTime beginTime
{
return
reportRepository
.
QueryComputeByDate
(
viewName
,
beginTime
,
endTime
);
}
public
List
<
dynamic
>
GetAllComputeViewByDateAndTotal
(
string
viewName
,
DateTime
beginTime
,
DateTime
endTime
,
List
<
string
>
groupBy
,
List
<
string
>
sumBy
)
public
(
int
count
,
List
<
dynamic
>
data
)
GetAllComputeViewByDateAndTotal
(
string
viewName
,
DateTime
beginTime
,
DateTime
endTime
,
List
<
string
>
groupBy
,
List
<
string
>
sumBy
,
int
pageNumber
=
0
,
int
pageSize
=
0
)
{
return
reportRepository
.
QueryComputeByDateAndTotal
(
viewName
,
beginTime
,
endTime
,
groupBy
,
sumBy
,
pageNumber
,
pageSize
);
}
public
QueryComputeByDateGetTotal
GetPerformanceSummary
(
HospitalGrantSummary
request
,
string
ViewName
)
{
DateTime
bdate
=
DateTime
.
Now
;
DateTime
edate
=
DateTime
.
Now
;
if
(
string
.
IsNullOrEmpty
(
request
.
BeginTime
)
||
!
DateTime
.
TryParse
(
request
.
BeginTime
,
out
bdate
)
||
string
.
IsNullOrEmpty
(
request
.
EndTime
)
||
!
DateTime
.
TryParse
(
request
.
EndTime
,
out
edate
))
throw
new
PerformanceException
(
"请输入正确的时间"
);
var
headlist
=
request
.
GroupBy
.
Union
(
request
.
SumBy
).
Select
(
t
=>
t
.
ToLower
()).
ToList
();
List
<
cof_alias
>
AllComputeView
=
ComputeConfig
.
AllComputeView
.
ToList
();
List
<
Head
>
head
=
new
List
<
Head
>();
if
((
request
.
GroupBy
!=
null
&&
request
.
GroupBy
.
Any
(
t
=>
!
string
.
IsNullOrEmpty
(
t
)))
&&
(
request
.
SumBy
!=
null
&&
request
.
SumBy
.
Any
(
t
=>
!
string
.
IsNullOrEmpty
(
t
))))
AllComputeView
=
ComputeConfig
.
AllComputeView
.
Where
(
t
=>
headlist
.
Contains
(
t
.
Name
.
ToLower
())).
ToList
();
foreach
(
var
item
in
AllComputeView
)
{
Head
head1
=
new
Head
()
{
Name
=
item
.
Name
,
Alias
=
item
.
Alias
};
head
.
Add
(
head1
);
}
decimal
TotalData
=
0
;
var
(
TotalCount
,
datas
)
=
GetAllComputeViewByDateAndTotal
(
ViewName
,
bdate
,
edate
.
AddMonths
(
1
),
request
.
GroupBy
,
request
.
SumBy
);
if
(
null
==
datas
)
throw
new
PerformanceException
(
"当前绩效记录不存在"
);
foreach
(
var
item
in
SumDatas
(
datas
))
{
TotalData
+=
item
.
Value
;
}
var
list
=
new
QueryComputeByDateGetTotal
{
return
reportRepository
.
QueryComputeByDateAndTotal
(
viewName
,
beginTime
,
endTime
,
groupBy
,
sumBy
);
Head
=
head
,
Data
=
datas
,
TotalData
=
TotalData
,
TotalCount
=
TotalCount
,
TotalPages
=
(
int
)
Math
.
Ceiling
((
double
)
TotalCount
/
request
.
PageSize
),
CurrentPage
=
request
.
CurrentPage
,
PageSize
=
request
.
PageSize
};
return
list
;
}
/// <summary>
///
///
合计数据
/// </summary>
/// <param name="datas"></param>
/// <returns></returns>
...
...
@@ -2119,6 +2180,16 @@ public List<dynamic> GetAllComputeViewByDateAndTotal(string viewName, DateTime b
public
class
ComputeConfig
{
public
static
List
<
cof_alias
>
PerformanceTotal
(
string
route
,
string
[]
heads
)
{
if
(
route
==
"/report/wholehospital_grant_summary"
)
return
AllComputeView
.
Where
(
t
=>
heads
.
Contains
(
t
.
Name
.
ToLower
())).
ToList
();
if
(
route
==
"/report/wholehospital_accounting_grant_summary"
)
return
AllComputeDepartmentView
.
Where
(
t
=>
heads
.
Contains
(
t
.
Name
.
ToLower
())).
ToList
();
if
(
route
==
"/report/wholehospital_finance_grant_summary"
)
return
AllComputePersonView
.
Where
(
t
=>
heads
.
Contains
(
t
.
Name
.
ToLower
())).
ToList
();
return
null
;
}
public
static
List
<
cof_alias
>
AllComputeView
{
get
;
}
=
new
List
<
cof_alias
>
{
new
cof_alias
{
Alias
=
"来源"
,
Name
=
nameof
(
view_allot_sign_emp
.
Source
),
States
=
1
},
...
...
@@ -2161,6 +2232,9 @@ public static List<cof_alias> AllComputeViewByDate
}
public
static
List
<
cof_alias
>
AllComputePersonView
{
get
;
}
=
new
List
<
cof_alias
>
{
new
cof_alias
{
Alias
=
"科室类别"
,
Name
=
nameof
(
view_allot_sign_emp
.
UnitType
),
States
=
1
},
...
...
@@ -2194,7 +2268,7 @@ public static List<cof_alias> AllComputePersonViewByDate
}
public
static
List
<
cof_alias
>
AllComputeDepartmentView
{
get
;
}
=
new
List
<
cof_alias
>
{
new
cof_alias
{
Alias
=
"核算群体"
,
Name
=
nameof
(
view_allot_sign_dept
.
Unit
Nam
e
),
States
=
1
},
new
cof_alias
{
Alias
=
"核算群体"
,
Name
=
nameof
(
view_allot_sign_dept
.
Unit
Typ
e
),
States
=
1
},
new
cof_alias
{
Alias
=
"核算单元"
,
Name
=
nameof
(
view_allot_sign_dept
.
AccountingUnit
),
States
=
1
},
new
cof_alias
{
Alias
=
"业绩绩效"
,
Name
=
nameof
(
view_allot_sign_dept
.
PerforFee
),
States
=
1
},
new
cof_alias
{
Alias
=
"工作量绩效"
,
Name
=
nameof
(
view_allot_sign_dept
.
WorkloadFee
),
States
=
1
},
...
...
performance/Performance.Services/DownloadService.cs
View file @
c5d7f4fc
...
...
@@ -191,18 +191,18 @@ public string AllComputerViewReport(int allotId, List<dynamic> dynamics, string
/// <param name="allData"></param>
/// <param name="isAll"></param>
/// <returns></returns>
public
string
AllComputerViewReportByDate
(
int
hospitalId
,
List
<
dynamic
>
dynamics
,
string
route
,
string
name
,
DateTime
beginTime
,
DateTime
endTime
)
public
string
AllComputerViewReportByDate
(
int
hospitalId
,
List
<
dynamic
>
dynamics
,
string
route
,
string
name
,
DateTime
beginTime
,
DateTime
endTime
,
params
string
[]
headlist
)
{
var
hospital
=
perforHospital
.
GetEntity
(
t
=>
t
.
ID
==
hospitalId
);
var
title
=
(
beginTime
.
AddMonths
(
1
).
Date
==
endTime
.
Date
)
?
$"
{
beginTime
.
ToString
(
"yyyy年MM月"
)}{
hospital
.
HosName
}
医院 ---
{
name
}
"
:
$"
{
beginTime
.
ToString
(
"yyyy年MM月"
)}
至
{
endTime
.
ToString
(
"yyyy年MM月"
)}{
hospital
.
HosName
}
医院 ---
{
name
}
"
;
return
AllComputerDown
(
hospital
,
dynamics
,
route
,
title
,
name
);
return
AllComputerDown
(
hospital
,
dynamics
,
route
,
title
,
name
,
headlist
);
}
public
string
AllComputerDown
(
sys_hospital
hospital
,
List
<
dynamic
>
dynamics
,
string
route
,
string
title
,
string
name
)
public
string
AllComputerDown
(
sys_hospital
hospital
,
List
<
dynamic
>
dynamics
,
string
route
,
string
title
,
string
name
,
params
string
[]
headlist
)
{
var
headList
=
_computeService
.
CustomColumnHeaders
(
hospital
.
ID
,
route
).
Where
(
w
=>
w
.
States
==
1
).
ToList
();
var
headList
=
_computeService
.
CustomColumnHeaders
(
hospital
.
ID
,
route
,
headlist
).
Where
(
w
=>
w
.
States
==
1
).
ToList
();
var
dpath
=
Path
.
Combine
(
evn
.
ContentRootPath
,
"Files"
,
"PerformanceRelease"
,
$"
{
hospital
.
ID
}
"
);
FileHelper
.
CreateDirectory
(
dpath
);
string
filepath
=
Path
.
Combine
(
dpath
,
$"
{
hospital
.
HosName
}
-
{
name
}
-
{
DateTime
.
Now
:
yyyy
年
MM
月
dd
日
}
"
);
...
...
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