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
457e181a
Commit
457e181a
authored
Mar 14, 2019
by
zry
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
接口返回数据,保存sheet值 初稿
parent
fdcb6efb
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
497 additions
and
111 deletions
+497
-111
performance/Performance.Api/Controllers/AllotController.cs
+29
-10
performance/Performance.Api/Controllers/SheetController.cs
+30
-15
performance/Performance.ConsoleApp/Program.cs
+31
-27
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
+13
-0
performance/Performance.DtoModels/PerExcel/PerHeader.cs
+2
-2
performance/Performance.DtoModels/Request/AllotRequest.cs
+1
-1
performance/Performance.DtoModels/Request/SheetExportRequest.cs
+23
-0
performance/Performance.DtoModels/Request/SheetRequest.cs
+23
-0
performance/Performance.DtoModels/Response/SheetExportResponse.cs
+80
-0
performance/Performance.DtoModels/Response/SheetResponse.cs
+29
-0
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
+4
-0
performance/Performance.Services/PerExcelService/PerExcelService.cs
+49
-8
performance/Performance.Services/PerExcelService/PerHeaderService.cs
+1
-1
performance/Performance.Services/PerExcelService/PerSheetService.cs
+2
-2
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeEconomic.cs
+1
-1
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeWorkload.cs
+1
-1
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadEmployee.cs
+16
-16
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadExpend.cs
+6
-6
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadIncome.cs
+1
-1
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadOtherIncome.cs
+3
-3
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadUnifyUnit.cs
+15
-15
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadWorkload.cs
+1
-1
performance/Performance.Services/SheetSevice.cs
+136
-1
No files found.
performance/Performance.Api/Controllers/AllotController.cs
View file @
457e181a
...
...
@@ -145,28 +145,47 @@ public ApiResponse Generate([CustomizeValidator(RuleSet = "Delete"), FromBody]Al
if
(
null
==
allot
||
string
.
IsNullOrEmpty
(
allot
.
Path
))
throw
new
PerformanceException
(
"当前绩效记录不存在或没有上传数据文件"
);
Action
<
PerExcelService
>
action
=
(
service
)
=>
{
// 拷贝配置信息
s
ervice
.
Copy
(
allot
.
ID
);
_perExcelS
ervice
.
Copy
(
allot
.
ID
);
// 导出数据
var
excel
=
s
ervice
.
Import
(
allot
.
Path
);
var
excel
=
_perExcelS
ervice
.
Import
(
allot
.
Path
);
// 保存数据
service
.
ImportSave
(
excel
);
//
service.ImportSave(excel);
// 计算合并数据
s
ervice
.
ProcessCompute
(
excel
);
List
<
PerSheet
>
list
=
_perExcelS
ervice
.
ProcessCompute
(
excel
);
// 保存过程数据
service
.
ProcessSave
(
excel
);
_perExcelService
.
ProcessSave
(
list
,
allot
.
ID
);
// 计算最总数据
service
.
Compute
(
excel
);
_perExcelService
.
Compute
(
excel
);
//Action<PerExcelService> action = (service) =>
//{
// // 拷贝配置信息
// service.Copy(allot.ID);
// // 导出数据
// var excel = service.Import(allot.Path);
// // 保存数据
// //service.ImportSave(excel);
// // 计算合并数据
// service.ProcessCompute(excel);
// // 保存过程数据
// service.ProcessSave(excel, allot.ID);
// // 计算最总数据
// service.Compute(excel);
};
BackgroundJob
.
Enqueue
<
PerExcelService
>(
p
=>
action
.
Invoke
(
p
));
//
};
//BackgroundJob.Enqueue(() => action.Invoke(_perExcelService
));
return
new
ApiResponse
(
ResponseType
.
OK
);
}
}
...
...
performance/Performance.Api/Controllers/SheetController.cs
View file @
457e181a
...
...
@@ -17,25 +17,40 @@ namespace Performance.Api.Controllers
[
Route
(
"api/[controller]"
)]
public
class
SheetController
:
Controller
{
private
UserService
_userService
;
private
RoleService
_roleService
;
private
IMemoryCache
_memoryCache
;
private
Application
_options
;
private
SheetSevice
_sheetSevice
;
private
ClaimService
_claim
;
private
HospitalService
_hospitalService
;
public
SheetController
(
UserService
userService
,
HospitalService
hospitalService
,
RoleService
roleService
,
IMemoryCache
memoryCache
,
IOptions
<
Application
>
options
,
public
SheetController
(
SheetSevice
sheetSevice
,
ClaimService
claim
)
{
_userService
=
userService
;
_roleService
=
roleService
;
_memoryCache
=
memoryCache
;
_hospitalService
=
hospitalService
;
_options
=
options
.
Value
;
_sheetSevice
=
sheetSevice
;
_claim
=
claim
;
}
/// <summary>
/// sheet 列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"sheetlist"
)]
[
HttpPost
]
public
ApiResponse
SheetList
([
FromBody
]
SheetRequest
request
)
{
var
sheetList
=
_sheetSevice
.
SheetList
(
request
.
AllotID
);
return
new
ApiResponse
(
ResponseType
.
OK
,
sheetList
);
}
/// <summary>
/// sheet 数据详情
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[
Route
(
"sheetexport"
)]
[
HttpPost
]
public
ApiResponse
SheetExport
([
FromBody
]
SheetExportRequest
request
)
{
var
exportData
=
_sheetSevice
.
SheetExport
(
request
.
SheetID
);
return
new
ApiResponse
(
ResponseType
.
OK
,
exportData
);
}
}
}
performance/Performance.ConsoleApp/Program.cs
View file @
457e181a
using
Performance.DtoModels
;
using
Performance.Infrastructure
;
using
Performance.Repository
;
using
Performance.Services
;
using
System
;
using
System.Collections.Generic
;
...
...
@@ -15,45 +16,48 @@ static void Main(string[] args)
Console
.
WriteLine
(
"Hello World!"
);
PerHeaderService
perHeaderService
=
new
PerHeaderService
();
PerSheetService
perSheetService
=
new
PerSheetService
(
perHeaderService
);
PerExcelService
perExcelService
=
new
PerExcelService
(
perSheetService
,
perHeaderService
);
//var excel = perExcelService.Import(@"E:\code_git\performance\performance\Performance.Api\Files\9\201911\医院绩效分配系统数据收集模板V120190307133444707.xlsx");
// 拷贝配置信息
//perExcelService.Copy(allot.ID);
string
path
=
@"E:\code_git\performance\performance\Performance.Api\Files\9\201911\医院绩效分配系统数据收集模板V120190307133444707.xlsx"
;
// 导出数据
var
excel
=
perExcelService
.
Import
(
path
);
//PerHeaderService perHeaderService = new PerHeaderService();
//PerSheetService perSheetService = new PerSheetService(perHeaderService);
//PerExcelService perExcelService = new PerExcelService(perSheetService, perHeaderService);
////var excel = perExcelService.Import(@"E:\code_git\performance\performance\Performance.Api\Files\9\201911\医院绩效分配系统数据收集模板V120190307133444707.xlsx");
var
workbook1
=
perExcelService
.
ExportCompute
(
excel
.
PerSheet
);
using
(
FileStream
file
=
new
FileStream
(
$@"F:\myworkbook\org_
{
DateTime
.
Now
.
ToString
(
"yyyyMMddhhmmss"
)}
.xlsx"
,
FileMode
.
Create
))
{
workbook1
.
Write
(
file
);
}
//// 拷贝配置信息
////perExcelService.Copy(allot.ID);
//string path = @"E:\code_git\performance\performance\Performance.Api\Files\9\201911\医院绩效分配系统数据收集模板V120190307133444707.xlsx";
//// 导出数据
//var excel = perExcelService.Import(path);
//var workbook1 = perExcelService.ExportCompute(excel.PerSheet);
// 保存数据
//perExcelService.ImportSave(excel);
//using (FileStream file = new FileStream($@"F:\myworkbook\org_{DateTime.Now.ToString("yyyyMMddhhmmss")}.xlsx", FileMode.Create))
//{
// workbook1.Write(file);
//}
//
计算合并
数据
List
<
PerSheet
>
list
=
perExcelService
.
ProcessComput
e
(
excel
);
//
// 保存
数据
////perExcelService.ImportSav
e(excel);
// 保存过程数据
//// 计算合并数据
//List<PerSheet> list = perExcelService.ProcessCompute(excel);
//// 保存过程数据
//perExcelService.ProcessSave(excel);
// 生成结果excel
var
workbook2
=
perExcelService
.
ExportCompute
(
list
);
//
//
生成结果excel
//
var workbook2 = perExcelService.ExportCompute(list);
using
(
FileStream
file
=
new
FileStream
(
$@"F:\myworkbook\comp_
{
DateTime
.
Now
.
ToString
(
"yyyyMMddhhmmss"
)}
.xlsx"
,
FileMode
.
Create
))
{
workbook2
.
Write
(
file
);
}
//
using (FileStream file = new FileStream($@"F:\myworkbook\comp_{DateTime.Now.ToString("yyyyMMddhhmmss")}.xlsx", FileMode.Create))
//
{
//
workbook2.Write(file);
//
}
// 计算最总数据
perExcelService
.
Compute
(
excel
);
//
//
计算最总数据
//
perExcelService.Compute(excel);
Console
.
ReadKey
();
}
...
...
performance/Performance.DtoModels/AutoMapper/AutoMapperConfigs.cs
View file @
457e181a
...
...
@@ -55,6 +55,19 @@ public AutoMapperConfigs()
// 绩效 响应
CreateMap
<
AllotResponse
,
sys_allot
>();
CreateMap
<
sys_allot
,
AllotResponse
>();
// sheet 响应
CreateMap
<
SheetResponse
,
im_sheet
>()
.
ForMember
(
dest
=>
dest
.
ID
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
SheetID
));
CreateMap
<
im_sheet
,
SheetResponse
>()
.
ForMember
(
dest
=>
dest
.
SheetID
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
ID
));
CreateMap
<
PerHeader
,
im_header
>()
.
ForMember
(
dest
=>
dest
.
IsMerge
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
IsMerge
?
1
:
2
));
CreateMap
<
PerData
,
im_data
>()
.
ForMember
(
dest
=>
dest
.
IsFactor
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
IsFactor
?
1
:
2
))
.
ForMember
(
dest
=>
dest
.
UnitType
,
opt
=>
opt
.
MapFrom
(
src
=>
src
.
UnitType
==
"医生组"
?
1
:
(
src
.
UnitType
==
"护理组"
?
2
:
0
)));
}
}
}
performance/Performance.DtoModels/PerExcel/PerHeader.cs
View file @
457e181a
...
...
@@ -16,7 +16,7 @@ public class PerHeader
public
bool
IsMerge
=>
MergeRow
>
1
||
MergeCell
>
1
;
public
int
MergeRow
{
get
;
set
;
}
public
int
MergeCell
{
get
;
set
;
}
public
string
Cell
Nam
e
{
get
;
set
;
}
public
string
Cell
Valu
e
{
get
;
set
;
}
public
int
Level
{
get
;
set
;
}
public
bool
IsHasChildren
=>
Children
!=
null
&&
Children
.
Any
();
...
...
@@ -29,7 +29,7 @@ public PerHeader(int pointRow, int pointCell, string cellName, int level, int me
{
PointRow
=
pointRow
;
PointCell
=
pointCell
;
Cell
Nam
e
=
cellName
;
Cell
Valu
e
=
cellName
;
Level
=
level
;
MergeRow
=
mergeRow
;
MergeCell
=
mergeCell
;
...
...
performance/Performance.DtoModels/Request/AllotRequest.cs
View file @
457e181a
...
...
@@ -5,7 +5,7 @@
namespace
Performance.DtoModels
{
public
class
AllotRequest
public
class
AllotRequest
:
ApiRequest
{
public
int
ID
{
get
;
set
;
}
...
...
performance/Performance.DtoModels/Request/SheetExportRequest.cs
0 → 100644
View file @
457e181a
using
FluentValidation
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.DtoModels
{
/// <summary>
/// sheet数据详情请求
/// </summary>
public
class
SheetExportRequest
:
ApiRequest
{
public
int
SheetID
{
get
;
set
;
}
}
public
class
SheetExportRequestValidator
:
AbstractValidator
<
SheetExportRequest
>
{
public
SheetExportRequestValidator
()
{
RuleFor
(
x
=>
x
.
SheetID
).
NotNull
().
GreaterThan
(
0
);
}
}
}
performance/Performance.DtoModels/Request/SheetRequest.cs
0 → 100644
View file @
457e181a
using
FluentValidation
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.DtoModels
{
/// <summary>
/// sheet页列表请求
/// </summary>
public
class
SheetRequest
:
ApiRequest
{
public
int
AllotID
{
get
;
set
;
}
}
public
class
SheetRequestValidator
:
AbstractValidator
<
SheetRequest
>
{
public
SheetRequestValidator
()
{
RuleFor
(
x
=>
x
.
AllotID
).
NotNull
().
GreaterThan
(
0
);
}
}
}
performance/Performance.DtoModels/Response/SheetExportResponse.cs
0 → 100644
View file @
457e181a
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.DtoModels
{
public
class
SheetExportResponse
{
/// <summary>
/// sheetID
/// </summary>
public
int
SheetID
{
get
;
set
;
}
/// <summary>
/// sheet名称
/// </summary>
public
string
SheetName
{
get
;
set
;
}
/// <summary>
/// sheet模板类型
/// </summary>
public
int
SheetType
{
get
;
set
;
}
/// <summary>
/// sheet头
/// </summary>
public
List
<
Row
>
Header
{
get
;
set
;
}
/// <summary>
/// sheet数据
/// </summary>
public
List
<
Row
>
Row
{
get
;
set
;
}
public
SheetExportResponse
()
{
}
public
SheetExportResponse
(
int
sheetID
,
string
sheetName
,
int
sheetType
)
{
SheetID
=
sheetID
;
SheetName
=
sheetName
;
SheetType
=
sheetType
;
Header
=
new
List
<
Row
>();
Row
=
new
List
<
Row
>();
}
}
public
class
Row
{
public
int
Rownumber
{
get
;
set
;
}
public
string
AccountingUnit
{
get
;
set
;
}
public
List
<
RowData
>
Data
{
get
;
set
;
}
public
Row
()
{
}
public
Row
(
int
rownumber
)
{
Rownumber
=
rownumber
;
Data
=
new
List
<
RowData
>();
}
public
Row
(
int
rownumber
,
string
accountingUnit
)
{
Rownumber
=
rownumber
;
AccountingUnit
=
accountingUnit
;
Data
=
new
List
<
RowData
>();
}
}
public
class
RowData
{
public
int
PointCell
{
get
;
set
;
}
public
object
CellValue
{
get
;
set
;
}
public
int
MergeRow
{
get
;
set
;
}
public
int
MergeCell
{
get
;
set
;
}
public
RowData
()
{
}
public
RowData
(
int
pointCell
,
object
cellValue
,
int
mergeRow
,
int
mergeCell
)
{
PointCell
=
pointCell
;
CellValue
=
cellValue
;
MergeRow
=
mergeRow
;
MergeCell
=
mergeCell
;
}
}
}
performance/Performance.DtoModels/Response/SheetResponse.cs
0 → 100644
View file @
457e181a
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.DtoModels
{
public
class
SheetResponse
{
/// <summary>
/// SheetID
/// </summary>
public
int
SheetID
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Nullable
<
int
>
AllotID
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
string
SheetName
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Nullable
<
int
>
SheetType
{
get
;
set
;
}
}
}
performance/Performance.EntityModels/Context/PerformanceDbContext.cs
View file @
457e181a
...
...
@@ -20,5 +20,9 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public
virtual
DbSet
<
sys_role_menu
>
Sys_Role_Menu
{
get
;
set
;
}
public
virtual
DbSet
<
sys_user_role
>
Sys_User_Role
{
get
;
set
;
}
public
virtual
DbSet
<
sys_allot
>
Sys_Allot
{
get
;
set
;
}
public
virtual
DbSet
<
im_sheet
>
Im_Sheet
{
get
;
set
;
}
public
virtual
DbSet
<
im_employee
>
Im_Employee
{
get
;
set
;
}
public
virtual
DbSet
<
im_header
>
Im_Header
{
get
;
set
;
}
public
virtual
DbSet
<
im_data
>
Im_Data
{
get
;
set
;
}
}
}
performance/Performance.Services/PerExcelService/PerExcelService.cs
View file @
457e181a
using
NPOI.HSSF.UserModel
;
using
AutoMapper
;
using
NPOI.HSSF.UserModel
;
using
NPOI.SS.UserModel
;
using
NPOI.SS.Util
;
using
NPOI.XSSF.UserModel
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
Performance.Infrastructure
;
using
Performance.Repository
;
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
...
...
@@ -16,11 +18,20 @@ public class PerExcelService : IAutoInjection
{
private
PerSheetService
_perSheetService
;
private
PerHeaderService
_perHeaderService
;
private
PerforImSheetRepository
_perforImSheetRepository
;
private
PerforImDataRepository
_perforImDataRepository
;
private
PerforImHeaderRepository
_perforImHeaderRepository
;
public
PerExcelService
(
PerSheetService
perSheetService
,
PerHeaderService
perHeaderService
)
PerHeaderService
perHeaderService
,
PerforImSheetRepository
perforImSheetRepository
,
PerforImDataRepository
perforImDataRepository
,
PerforImHeaderRepository
perforImHeaderRepository
)
{
_perSheetService
=
perSheetService
;
_perHeaderService
=
perHeaderService
;
_perforImSheetRepository
=
perforImSheetRepository
;
_perforImDataRepository
=
perforImDataRepository
;
_perforImHeaderRepository
=
perforImHeaderRepository
;
}
/// <summary>
...
...
@@ -62,7 +73,7 @@ public PerExcel Import(string path)
/// <param name="iD"></param>
public
void
Copy
(
int
iD
)
{
throw
new
NotImplementedException
();
//
throw new NotImplementedException();
}
/// <summary>
...
...
@@ -87,9 +98,39 @@ public List<PerSheet> ProcessCompute(PerExcel excel)
/// 保存绩效结果
/// </summary>
/// <param name="excel"></param>
public
void
ProcessSave
(
PerExcel
excel
)
public
void
ProcessSave
(
List
<
PerSheet
>
perSheets
,
int
allotId
)
{
throw
new
NotImplementedException
();
foreach
(
var
sheet
in
perSheets
)
{
var
imsheet
=
new
im_sheet
{
AllotID
=
allotId
,
SheetName
=
sheet
.
SheetName
,
SheetType
=
(
int
)
sheet
.
SheetType
};
_perforImSheetRepository
.
Add
(
imsheet
);
foreach
(
var
header
in
sheet
.
PerHeader
)
{
var
imheader
=
Mapper
.
Map
<
im_header
>(
header
);
imheader
.
SheetID
=
imsheet
.
ID
;
_perforImHeaderRepository
.
Add
(
imheader
);
if
(
header
.
IsHasChildren
)
{
foreach
(
var
child
in
header
.
Children
)
{
var
imheaderChild
=
Mapper
.
Map
<
im_header
>(
child
);
imheaderChild
.
SheetID
=
imsheet
.
ID
;
imheaderChild
.
ParentID
=
imheader
.
ID
;
_perforImHeaderRepository
.
Add
(
imheaderChild
);
}
}
}
var
dataList
=
sheet
.
PerData
.
Select
(
t
=>
(
PerData
)
t
);
foreach
(
var
data
in
dataList
)
{
var
imdata
=
Mapper
.
Map
<
im_data
>(
data
);
imdata
.
SheetID
=
imsheet
.
ID
;
_perforImDataRepository
.
Add
(
imdata
);
}
}
//throw new NotImplementedException();
}
public
IWorkbook
ExportCompute
(
List
<
PerSheet
>
sheetList
)
...
...
@@ -130,7 +171,7 @@ public IWorkbook ExportCompute(List<PerSheet> sheetList)
dataRow
.
GetCell
(
0
).
CellStyle
=
cellstyle
;
foreach
(
var
header
in
headList
.
OrderBy
(
t
=>
t
.
PointCell
))
{
var
cellValue
=
dataList
.
FirstOrDefault
(
t
=>
t
.
AccountingUnit
==
accountingUnit
&&
t
.
TypeName
==
header
.
Cell
Nam
e
)?.
CellValue
;
var
cellValue
=
dataList
.
FirstOrDefault
(
t
=>
t
.
AccountingUnit
==
accountingUnit
&&
t
.
TypeName
==
header
.
Cell
Valu
e
)?.
CellValue
;
if
(
cellValue
.
HasValue
&&
cellValue
.
Value
>
0
)
{
dataRow
.
CreateCell
(
header
.
PointCell
).
SetCellValue
(
Convert
.
ToDouble
(
cellValue
.
Value
));
...
...
@@ -158,7 +199,7 @@ private IRow CreateRow(ICellStyle cellstyle, ISheet exportSheet, IRow row, PerHe
exportSheet
.
AddMergedRegion
(
cellRange
);
}
row
=
row
??
exportSheet
.
CreateRow
(
header
.
PointRow
);
row
.
CreateCell
(
header
.
PointCell
).
SetCellValue
(
header
.
Cell
Nam
e
);
row
.
CreateCell
(
header
.
PointCell
).
SetCellValue
(
header
.
Cell
Valu
e
);
row
.
GetCell
(
header
.
PointCell
).
CellStyle
=
cellstyle
;
return
row
;
}
...
...
@@ -169,7 +210,7 @@ private IRow CreateRow(ICellStyle cellstyle, ISheet exportSheet, IRow row, PerHe
/// <param name="excel"></param>
public
void
Compute
(
PerExcel
excel
)
{
throw
new
NotImplementedException
();
//
throw new NotImplementedException();
}
}
}
performance/Performance.Services/PerExcelService/PerHeaderService.cs
View file @
457e181a
...
...
@@ -171,7 +171,7 @@ private List<PerHeader> ReadHeadMatrix(ISheet sheet, PerSheetPoint point, List<L
PointCell
=
point
.
HeaderFirstCellNum
.
Value
+
c
,
MergeCell
=
ci
,
MergeRow
=
ri
,
Cell
Nam
e
=
sheet
.
GetRow
(
point
.
HeaderFirstRowNum
.
Value
+
r
)
Cell
Valu
e
=
sheet
.
GetRow
(
point
.
HeaderFirstRowNum
.
Value
+
r
)
?.
GetCell
(
point
.
HeaderFirstCellNum
.
Value
+
c
)
?.
ToString
()
?.
RemoveLineBreak
()
...
...
performance/Performance.Services/PerExcelService/PerSheetService.cs
View file @
457e181a
...
...
@@ -50,8 +50,8 @@ public SheetType GetSheetType(string sheetName)
//else
if
(
sheetName
.
StartsWith
(
"1.0"
))
return
SheetType
.
OtherIncome
;
else
if
(
sheetName
.
StartsWith
(
"1.1"
))
return
SheetType
.
Income
;
//
else if (sheetName.StartsWith("1.1"))
//
return SheetType.Income;
else
if
(
sheetName
.
StartsWith
(
"2."
))
return
SheetType
.
Expend
;
else
if
(
sheetName
.
StartsWith
(
"3."
))
...
...
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeEconomic.cs
View file @
457e181a
...
...
@@ -29,7 +29,7 @@ public PerSheet ProcessCompute(PerExcel excel)
};
//初始核算单元列头
compSheet
.
PerHeader
.
Add
(
new
PerHeader
{
Cell
Nam
e
=
"核算单元"
,
Level
=
0
,
MergeCell
=
1
,
MergeRow
=
2
,
PointCell
=
0
,
PointRow
=
0
});
compSheet
.
PerHeader
.
Add
(
new
PerHeader
{
Cell
Valu
e
=
"核算单元"
,
Level
=
0
,
MergeCell
=
1
,
MergeRow
=
2
,
PointCell
=
0
,
PointRow
=
0
});
//起始列
int
pointCell
=
1
;
//计算需从以下sheet中拿取数据
...
...
performance/Performance.Services/PerExcelService/SheetDataCompute/PerSheetDataComputeWorkload.cs
View file @
457e181a
...
...
@@ -24,7 +24,7 @@ public PerSheet ProcessCompute(PerExcel excel)
};
//初始核算单元列头
compSheet
.
PerHeader
.
Add
(
new
PerHeader
{
Cell
Nam
e
=
"核算单元"
,
Level
=
0
,
MergeCell
=
1
,
MergeRow
=
2
,
PointCell
=
0
,
PointRow
=
0
});
compSheet
.
PerHeader
.
Add
(
new
PerHeader
{
Cell
Valu
e
=
"核算单元"
,
Level
=
0
,
MergeCell
=
1
,
MergeRow
=
2
,
PointCell
=
0
,
PointRow
=
0
});
//起始列
int
pointCell
=
1
;
//计算需从以下sheet中拿取数据
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadEmployee.cs
View file @
457e181a
...
...
@@ -28,27 +28,27 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
for
(
int
r
=
Point
.
DataFirstRowNum
.
Value
;
r
<
sheet
.
LastRowNum
+
1
;
r
++)
{
var
row
=
sheet
.
GetRow
(
r
);
var
accountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"核算单元"
).
PointCell
).
ToString
();
var
accountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"核算单元"
).
PointCell
).
ToString
();
if
(
string
.
IsNullOrEmpty
(
accountingUnit
))
continue
;
PerDataEmployee
employee
=
new
PerDataEmployee
{
RowNumber
=
r
,
AccountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"核算单元"
).
PointCell
).
ToString
(),
Department
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"科室"
).
PointCell
).
ToString
(),
DoctorName
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"医生姓名"
).
PointCell
).
ToString
(),
JobTitle
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"职称"
).
PointCell
).
ToString
(),
FitPeople
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"绩效基数核算参考对象"
).
PointCell
).
ToString
()),
PostCoefficient
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"岗位系数"
).
PointCell
).
ToString
()),
WorkTime
=
ConvertHelper
.
To
<
DateTime
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"考核得分率"
).
PointCell
).
ToString
()),
ScoreAverageRate
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"医生姓名"
).
PointCell
).
ToString
()),
Attendance
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"出勤率"
).
PointCell
).
ToString
()),
PeopleNumber
=
ConvertHelper
.
To
<
int
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"核算单元医生数"
).
PointCell
).
ToString
()),
Workload
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"工作量绩效"
).
PointCell
).
ToString
()),
OthePerfor
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"其他绩效"
).
PointCell
).
ToString
()),
Punishment
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"医院奖罚"
).
PointCell
).
ToString
()),
Adjust
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"调节系数"
).
PointCell
).
ToString
()),
Grant
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"发放系数"
).
PointCell
).
ToString
()),
AccountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"核算单元"
).
PointCell
).
ToString
(),
Department
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"科室"
).
PointCell
).
ToString
(),
DoctorName
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"医生姓名"
).
PointCell
).
ToString
(),
JobTitle
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"职称"
).
PointCell
).
ToString
(),
FitPeople
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"绩效基数核算参考对象"
).
PointCell
).
ToString
()),
PostCoefficient
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"岗位系数"
).
PointCell
).
ToString
()),
WorkTime
=
ConvertHelper
.
To
<
DateTime
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"考核得分率"
).
PointCell
).
ToString
()),
ScoreAverageRate
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"医生姓名"
).
PointCell
).
ToString
()),
Attendance
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"出勤率"
).
PointCell
).
ToString
()),
PeopleNumber
=
ConvertHelper
.
To
<
int
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"核算单元医生数"
).
PointCell
).
ToString
()),
Workload
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"工作量绩效"
).
PointCell
).
ToString
()),
OthePerfor
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"其他绩效"
).
PointCell
).
ToString
()),
Punishment
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"医院奖罚"
).
PointCell
).
ToString
()),
Adjust
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"调节系数"
).
PointCell
).
ToString
()),
Grant
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"发放系数"
).
PointCell
).
ToString
()),
};
dataList
.
Add
(
employee
);
}
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadExpend.cs
View file @
457e181a
...
...
@@ -59,11 +59,11 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
continue
;
var
athead
=
vhead
.
ElementAt
(
c
);
if
(!
string
.
IsNullOrEmpty
(
athead
?.
Cell
Nam
e
)
&&
Point
.
AccountingUnit
.
Any
(
t
=>
athead
.
Cell
Nam
e
.
Contains
(
t
.
UnitType
))
&&
!
athead
.
Cell
Nam
e
.
Contains
(
unit
.
UnitType
))
if
(!
string
.
IsNullOrEmpty
(
athead
?.
Cell
Valu
e
)
&&
Point
.
AccountingUnit
.
Any
(
t
=>
athead
.
Cell
Valu
e
.
Contains
(
t
.
UnitType
))
&&
!
athead
.
Cell
Valu
e
.
Contains
(
unit
.
UnitType
))
continue
;
if
(!
string
.
IsNullOrEmpty
(
athead
?.
Cell
Name
)
&&
athead
.
CellNam
e
.
Contains
(
"备注"
))
if
(!
string
.
IsNullOrEmpty
(
athead
?.
Cell
Value
)
&&
athead
.
CellValu
e
.
Contains
(
"备注"
))
continue
;
PerData
data
=
new
PerData
...
...
@@ -71,14 +71,14 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
RowNumber
=
r
,
AccountingUnit
=
accountingUnit
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
ToString
(),
TypeName
=
athead
?.
Cell
Nam
e
,
TypeName
=
athead
?.
Cell
Valu
e
,
CellValue
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
athead
.
PointCell
)?.
ToString
()),
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
UnitType
=
unit
.
UnitType
,
//手动匹配
IsFactor
=
false
,
};
var
lastcell
=
vhead
.
OrderByDescending
(
t
=>
t
.
PointCell
).
First
();
if
(
lastcell
.
Cell
Nam
e
.
Contains
(
"备注"
))
if
(
lastcell
.
Cell
Valu
e
.
Contains
(
"备注"
))
data
.
Remark
=
row
.
GetCell
(
lastcell
.
PointCell
)?.
ToString
();
dataList
.
Add
(
data
);
}
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadIncome.cs
View file @
457e181a
...
...
@@ -66,7 +66,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
RowNumber
=
r
,
AccountingUnit
=
accountingUnit
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
ToString
(),
TypeName
=
athead
?.
Cell
Nam
e
,
TypeName
=
athead
?.
Cell
Valu
e
,
CellValue
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
athead
.
PointCell
)?.
ToString
()),
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
UnitType
=
unit
.
UnitType
,
//手动匹配
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadOtherIncome.cs
View file @
457e181a
...
...
@@ -54,7 +54,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
RowNumber
=
r
,
AccountingUnit
=
accountingUnit
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
ToString
(),
TypeName
=
athead
?.
Cell
Nam
e
,
TypeName
=
athead
?.
Cell
Valu
e
,
CellValue
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
athead
.
PointCell
)?.
ToString
()),
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
UnitType
=
GetUnitType
(
sheet
.
SheetName
,
perHeader
),
...
...
@@ -79,9 +79,9 @@ private string GetUnitType(string sheetName, List<PerHeader> perHeader)
return
"医生组"
;
else
if
(
sheetName
.
Contains
(
"护理组"
))
return
"护理组"
;
else
if
(
perHeader
.
Any
(
t
=>
t
.
Cell
Name
.
Contains
(
"核算单元"
)
&&
t
.
CellNam
e
.
Contains
(
"医生组"
)))
else
if
(
perHeader
.
Any
(
t
=>
t
.
Cell
Value
.
Contains
(
"核算单元"
)
&&
t
.
CellValu
e
.
Contains
(
"医生组"
)))
return
"医生组"
;
else
if
(
perHeader
.
Any
(
t
=>
t
.
Cell
Name
.
Contains
(
"核算单元"
)
&&
t
.
CellNam
e
.
Contains
(
"护理组"
)))
else
if
(
perHeader
.
Any
(
t
=>
t
.
Cell
Value
.
Contains
(
"核算单元"
)
&&
t
.
CellValu
e
.
Contains
(
"护理组"
)))
return
"护理组"
;
return
""
;
}
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadUnifyUnit.cs
View file @
457e181a
...
...
@@ -33,26 +33,26 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
{
var
row
=
sheet
.
GetRow
(
r
);
var
accountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"核算单元"
).
PointCell
).
ToString
();
var
accountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"核算单元"
).
PointCell
).
ToString
();
if
(
string
.
IsNullOrEmpty
(
accountingUnit
))
continue
;
PerDataUnifyUnit
unifyUnit
=
new
PerDataUnifyUnit
{
RowNumber
=
r
,
AccountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"核算单元"
).
PointCell
).
ToString
(),
Department
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Nam
e
==
"科室"
).
PointCell
).
ToString
(),
DoctorNumber
=
ConvertHelper
.
To
<
int
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"核算单元医生数量"
&&
p
.
Parent
.
CellNam
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorFactor
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"医生预设总系数"
&&
p
.
Parent
.
CellNam
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorOtherPerfor1
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"其他绩效1"
&&
p
.
Parent
.
CellNam
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorOtherPerfor2
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"其他绩效2"
&&
p
.
Parent
.
CellNam
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorExtra
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"医院奖罚"
&&
p
.
Parent
.
CellNam
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorScoringAverage
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"考核对分率"
&&
p
.
Parent
.
CellNam
e
==
"医生组"
).
PointCell
).
ToString
()),
NurseNumber
=
ConvertHelper
.
To
<
int
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"核算单元护士数量"
&&
p
.
Parent
.
CellNam
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseFactor
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"护理预设总系数"
&&
p
.
Parent
.
CellNam
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseOtherPerfor1
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"其他绩效1"
&&
p
.
Parent
.
CellNam
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseOtherPerfor2
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"其他绩效2"
&&
p
.
Parent
.
CellNam
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseExtra
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"医院奖罚"
&&
p
.
Parent
.
CellNam
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseScoringAverage
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Name
==
"考核对分率"
&&
p
.
Parent
.
CellNam
e
==
"护理组"
).
PointCell
).
ToString
()),
AccountingUnit
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"核算单元"
).
PointCell
).
ToString
(),
Department
=
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Valu
e
==
"科室"
).
PointCell
).
ToString
(),
DoctorNumber
=
ConvertHelper
.
To
<
int
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"核算单元医生数量"
&&
p
.
Parent
.
CellValu
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorFactor
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"医生预设总系数"
&&
p
.
Parent
.
CellValu
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorOtherPerfor1
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"其他绩效1"
&&
p
.
Parent
.
CellValu
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorOtherPerfor2
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"其他绩效2"
&&
p
.
Parent
.
CellValu
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorExtra
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"医院奖罚"
&&
p
.
Parent
.
CellValu
e
==
"医生组"
).
PointCell
).
ToString
()),
DoctorScoringAverage
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"考核对分率"
&&
p
.
Parent
.
CellValu
e
==
"医生组"
).
PointCell
).
ToString
()),
NurseNumber
=
ConvertHelper
.
To
<
int
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"核算单元护士数量"
&&
p
.
Parent
.
CellValu
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseFactor
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"护理预设总系数"
&&
p
.
Parent
.
CellValu
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseOtherPerfor1
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"其他绩效1"
&&
p
.
Parent
.
CellValu
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseOtherPerfor2
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"其他绩效2"
&&
p
.
Parent
.
CellValu
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseExtra
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"医院奖罚"
&&
p
.
Parent
.
CellValu
e
==
"护理组"
).
PointCell
).
ToString
()),
NurseScoringAverage
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
perHeader
.
FirstOrDefault
(
p
=>
p
.
Cell
Value
==
"考核对分率"
&&
p
.
Parent
.
CellValu
e
==
"护理组"
).
PointCell
).
ToString
()),
};
dataList
.
Add
(
unifyUnit
);
}
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadWorkload.cs
View file @
457e181a
...
...
@@ -56,7 +56,7 @@ public List<IPerData> ReadData(ISheet sheet, List<PerHeader> perHeader)
RowNumber
=
r
,
AccountingUnit
=
accountingUnit
,
Department
=
row
.
GetCell
(
unit
.
DeptCellNum
.
Value
)?.
ToString
(),
TypeName
=
athead
?.
Cell
Nam
e
,
TypeName
=
athead
?.
Cell
Valu
e
,
CellValue
=
ConvertHelper
.
To
<
decimal
?>(
row
.
GetCell
(
athead
.
PointCell
)?.
ToString
()),
Annotation
=
row
.
GetCell
(
athead
.
PointCell
)?.
CellComment
?.
String
?.
String
,
UnitType
=
unit
.
UnitType
,
...
...
performance/Performance.Services/SheetSevice.cs
View file @
457e181a
using
System
;
using
AutoMapper
;
using
Performance.DtoModels
;
using
Performance.Repository
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
namespace
Performance.Services
...
...
@@ -9,5 +13,136 @@ namespace Performance.Services
/// </summary>
public
class
SheetSevice
:
IAutoInjection
{
private
PerforAllotRepository
_perforAllotRepository
;
private
PerforImSheetRepository
_perforImSheetRepository
;
private
PerforImDataRepository
_perforImDataRepository
;
private
PerforImHeaderRepository
_perforImHeaderRepository
;
private
PerforImEmployeeRepository
_perforImEmployeeRepository
;
public
SheetSevice
(
PerforAllotRepository
perforAllotRepository
,
PerforImSheetRepository
perforImSheetRepository
,
PerforImDataRepository
perforImDataRepository
,
PerforImHeaderRepository
perforImHeaderRepository
,
PerforImEmployeeRepository
perforImEmployeeRepository
)
{
_perforAllotRepository
=
perforAllotRepository
;
_perforImSheetRepository
=
perforImSheetRepository
;
_perforImDataRepository
=
perforImDataRepository
;
_perforImHeaderRepository
=
perforImHeaderRepository
;
_perforImEmployeeRepository
=
perforImEmployeeRepository
;
}
/// <summary>
/// sheet 列表查询
/// </summary>
/// <param name="allotID"></param>
/// <returns></returns>
public
List
<
SheetResponse
>
SheetList
(
int
allotID
)
{
var
allot
=
_perforAllotRepository
.
GetEntity
(
t
=>
t
.
ID
==
allotID
);
if
(
allot
==
null
)
throw
new
PerformanceException
(
"参数allotid无效"
);
var
sheetList
=
_perforImSheetRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotID
);
return
Mapper
.
Map
<
List
<
SheetResponse
>>(
sheetList
);
}
/// <summary>
/// sheet数据查询
/// </summary>
/// <param name="sheetID"></param>
/// <returns></returns>
public
SheetExportResponse
SheetExport
(
int
sheetID
)
{
var
sheet
=
_perforImSheetRepository
.
GetEntity
(
t
=>
t
.
ID
==
sheetID
);
if
(
sheet
==
null
)
throw
new
PerformanceException
(
"参数sheetid无效"
);
SheetExportResponse
response
=
new
SheetExportResponse
(
sheet
.
ID
,
sheet
.
SheetName
,
sheet
.
SheetType
.
Value
);
if
(
sheet
.
SheetType
==
(
int
)
SheetType
.
Employee
)
{
var
employeeList
=
_perforImEmployeeRepository
.
GetEntities
(
t
=>
t
.
SheetID
==
sheetID
);
if
(
employeeList
!=
null
&&
employeeList
.
Count
()
>
0
)
{
var
row
=
new
Row
(
0
);
row
.
Data
.
Add
(
new
RowData
(
1
,
"核算单元"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
2
,
"科室"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
3
,
"医生姓名"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
4
,
"职称"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
5
,
"绩效基数核算参考对象"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
6
,
"岗位系数"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
7
,
"考核得分率"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
8
,
"医生姓名"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
9
,
"出勤率"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
10
,
"核算单元医生数"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
11
,
"工作量绩效"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
12
,
"其他绩效"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
13
,
"医院奖罚"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
14
,
"调节系数"
,
1
,
1
));
row
.
Data
.
Add
(
new
RowData
(
15
,
"发放系数"
,
1
,
1
));
response
.
Header
.
Add
(
row
);
for
(
int
i
=
0
;
i
<
employeeList
.
Count
();
i
++)
{
var
item
=
employeeList
.
ElementAt
(
i
);
var
rowbody
=
new
Row
(
i
);
rowbody
.
Data
.
Add
(
new
RowData
(
1
,
item
.
AccountingUnit
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
2
,
item
.
Department
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
3
,
item
.
DoctorName
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
4
,
item
.
JobTitle
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
5
,
item
.
FitPeople
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
6
,
item
.
PostCoefficient
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
7
,
item
.
WorkTime
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
8
,
item
.
ScoreAverageRate
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
9
,
item
.
Attendance
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
10
,
item
.
PeopleNumber
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
11
,
item
.
Workload
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
12
,
item
.
OthePerfor
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
13
,
item
.
Punishment
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
14
,
item
.
Adjust
,
1
,
1
));
rowbody
.
Data
.
Add
(
new
RowData
(
15
,
item
.
Grant
,
1
,
1
));
response
.
Header
.
Add
(
rowbody
);
}
}
}
else
{
var
headList
=
_perforImHeaderRepository
.
GetEntities
(
t
=>
t
.
SheetID
==
sheetID
);
var
dataList
=
_perforImDataRepository
.
GetEntities
(
t
=>
t
.
SheetID
==
sheetID
);
//创建列头行
var
rowhead
=
new
Row
(
0
);
response
.
Header
.
Add
(
rowhead
);
foreach
(
var
header
in
headList
.
Where
(
t
=>
!
t
.
ParentID
.
HasValue
||
t
.
ParentID
.
Value
==
0
))
{
rowhead
.
Data
.
Add
(
new
RowData
(
header
.
PointCell
.
Value
,
header
.
CellValue
,
header
.
MergeRow
.
Value
,
header
.
MergeCell
.
Value
));
}
if
(
headList
.
Any
(
t
=>
t
.
ParentID
.
HasValue
&&
t
.
ParentID
.
Value
>
0
))
{
var
rowhead2
=
new
Row
(
1
);
response
.
Header
.
Add
(
rowhead2
);
foreach
(
var
header
in
headList
.
Where
(
t
=>
t
.
ParentID
.
HasValue
&&
t
.
ParentID
.
Value
>
0
))
{
rowhead2
.
Data
.
Add
(
new
RowData
(
header
.
PointCell
.
Value
,
header
.
CellValue
,
header
.
MergeRow
.
Value
,
header
.
MergeCell
.
Value
));
}
}
Row
rowbody
=
null
;
foreach
(
var
data
in
dataList
.
OrderBy
(
t
=>
t
.
RowNumber
))
{
var
header
=
headList
.
Where
(
t
=>
t
.
CellValue
==
data
.
TypeName
).
OrderByDescending
(
t
=>
t
.
ParentID
).
FirstOrDefault
();
if
(
rowbody
==
null
||
rowbody
.
Rownumber
!=
data
.
RowNumber
)
{
rowbody
=
new
Row
(
data
.
RowNumber
.
Value
,
data
.
AccountingUnit
);
response
.
Row
.
Add
(
rowbody
);
}
rowbody
.
Data
.
Add
(
new
RowData
(
header
.
PointCell
.
Value
,
data
.
CellValue
,
1
,
1
));
}
}
return
response
;
}
}
}
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