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
b6481b96
Commit
b6481b96
authored
Nov 05, 2020
by
lcx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
写入采集数据
parent
992bef89
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
231 additions
and
25 deletions
+231
-25
performance/Performance.Services/ExtractExcelService/ExtractHelper/WriteDataHelper.cs
+123
-1
performance/Performance.Services/ExtractExcelService/ExtractService.cs
+22
-19
performance/Performance.Services/ExtractExcelService/SheetDataWrite/AccountBasicDataWrite.cs
+7
-1
performance/Performance.Services/ExtractExcelService/SheetDataWrite/ClinicEmployeeDataWrite.cs
+7
-1
performance/Performance.Services/ExtractExcelService/SheetDataWrite/EmployeeDataWrite.cs
+5
-0
performance/Performance.Services/ExtractExcelService/SheetDataWrite/ISheetDataWrite.cs
+3
-0
performance/Performance.Services/ExtractExcelService/SheetDataWrite/IncomeDataWrite.cs
+19
-1
performance/Performance.Services/ExtractExcelService/SheetDataWrite/OtherIncomeDataWrite.cs
+18
-0
performance/Performance.Services/ExtractExcelService/SheetDataWrite/SpecialUnitDataWrite.cs
+8
-2
performance/Performance.Services/ExtractExcelService/SheetDataWrite/WorkloadDataWrite.cs
+18
-0
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadExpend.cs
+1
-0
No files found.
performance/Performance.Services/ExtractExcelService/ExtractHelper/WriteDataHelper.cs
View file @
b6481b96
using
NPOI.SS.UserModel
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
...
...
@@ -84,6 +85,8 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
}
}
#
region
ExtractData
public
static
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
string
>
headers
,
List
<
ExtractTransDto
>
data
)
{
var
columnHeader
=
sheet
.
GetOrCreate
(
point
.
HeaderFirstRowNum
.
Value
);
...
...
@@ -122,13 +125,14 @@ public static void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType s
var
cell
=
row
.
GetOrCreate
(
cellIndex
);
var
value
=
deptData
.
FirstOrDefault
(
t
=>
t
.
Category
==
column
)?.
Value
;
var
notWrite
=
!
value
.
HasValue
&&
!
string
.
IsNullOrEmpty
(
cell
.
GetDecodeEscapes
());
if
(
sheetType
==
SheetType
.
Income
)
{
cell
.
SetCellValue
<
decimal
>(
value
);
cell
.
CellStyle
=
cellStyle
;
}
else
if
(
cell
.
CellType
!=
CellType
.
Formula
)
else
if
(
cell
.
CellType
!=
CellType
.
Formula
&&
!
notWrite
)
{
cell
.
SetCellValue
<
decimal
>(
value
);
if
(
headers
!=
null
&&
headers
.
Contains
(
column
))
...
...
@@ -228,5 +232,123 @@ public static string HasValue(params string[] list)
{
"科室名称"
,
(
dto
)
=>
dto
.
Department
},
{
"核算单元"
,
(
dto
)
=>
new
string
[]{
dto
.
OutNurseAccounting
,
dto
.
InpatNurseAccounting
}.
FirstOrDefault
(
t
=>
!
string
.
IsNullOrEmpty
(
t
))
},
};
#
endregion
#
region
CollectData
public
static
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
string
>
headers
,
List
<
collect_data
>
data
)
{
var
columnHeader
=
sheet
.
GetOrCreate
(
point
.
HeaderFirstRowNum
.
Value
);
int
dataFirstRowNum
=
point
.
DataFirstRowNum
.
Value
;
WriteCollectDataExistent
(
sheet
,
columnHeader
,
point
,
sheetType
,
style
,
headers
,
data
,
ref
dataFirstRowNum
);
if
(
data
==
null
||
!
data
.
Any
(
t
=>
!
string
.
IsNullOrEmpty
(
t
.
Department
)))
return
;
WriteCollectDataNonexistent
(
sheet
,
columnHeader
,
point
,
sheetType
,
style
,
headers
,
data
,
dataFirstRowNum
);
}
private
static
void
WriteCollectDataExistent
(
ISheet
sheet
,
IRow
columnHeader
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
string
>
headers
,
List
<
collect_data
>
data
,
ref
int
dataFirstRowNum
)
{
if
(
sheet
.
LastRowNum
<=
dataFirstRowNum
)
return
;
var
cellStyle
=
style
.
SetBgkColorAndFormat
(
style
.
GetCellStyle
(),
StyleType
.
数据
);
int
dataFirstCellNum
=
point
.
DataFirstCellNum
.
Value
;
for
(
int
rowIndex
=
dataFirstRowNum
;
rowIndex
<
sheet
.
LastRowNum
+
1
;
rowIndex
++)
{
var
row
=
sheet
.
GetRow
(
rowIndex
);
if
(
row
==
null
)
continue
;
string
department
=
row
.
GetOrCreate
(
dataFirstCellNum
-
1
).
GetDecodeEscapes
();
if
(
string
.
IsNullOrEmpty
(
department
))
continue
;
var
deptData
=
data
.
Where
(
t
=>
t
.
Department
==
department
);
if
(
deptData
==
null
||
!
deptData
.
Any
())
continue
;
for
(
int
cellIndex
=
dataFirstCellNum
;
cellIndex
<
columnHeader
.
LastCellNum
;
cellIndex
++)
{
var
column
=
columnHeader
.
GetOrCreate
(
cellIndex
).
GetDecodeEscapes
();
var
cell
=
row
.
GetOrCreate
(
cellIndex
);
var
value
=
deptData
.
FirstOrDefault
(
t
=>
t
.
TypeName
==
column
)?.
CellValue
;
if
(
sheetType
==
SheetType
.
Income
)
{
cell
.
SetCellValue
<
decimal
>(
value
);
cell
.
CellStyle
=
cellStyle
;
}
else
if
(
cell
.
CellType
!=
CellType
.
Formula
)
{
cell
.
SetCellValue
<
decimal
>(
value
);
if
(
headers
!=
null
&&
headers
.
Contains
(
column
))
{
cell
.
CellStyle
=
cellStyle
;
}
}
}
data
.
RemoveAll
(
t
=>
t
.
Department
==
department
);
if
(
rowIndex
>
dataFirstRowNum
)
dataFirstRowNum
=
rowIndex
+
1
;
}
}
private
static
void
WriteCollectDataNonexistent
(
ISheet
sheet
,
IRow
columnHeader
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
string
>
headers
,
List
<
collect_data
>
data
,
int
dataFirstRowNum
)
{
var
departments
=
data
.
Select
(
s
=>
s
.
Department
).
Where
(
w
=>
!
string
.
IsNullOrEmpty
(
w
)).
Distinct
().
ToList
();
var
filed
=
sheet
.
SheetName
.
Contains
(
"工作量"
)
?
collectWork
:
collectIncome
;
var
deptStyle
=
style
.
GetCellStyle
();
var
cellStyle
=
style
.
SetBgkColorAndFormat
(
style
.
GetCellStyle
(),
StyleType
.
数据
);
foreach
(
string
department
in
departments
)
{
var
deptData
=
data
.
Where
(
t
=>
t
.
Department
==
department
);
if
(
deptData
==
null
||
!
deptData
.
Any
())
continue
;
var
row
=
sheet
.
GetOrCreate
(
dataFirstRowNum
);
for
(
int
cellIndex
=
point
.
HeaderFirstCellNum
.
Value
;
cellIndex
<
columnHeader
.
LastCellNum
;
cellIndex
++)
{
var
column
=
columnHeader
.
GetCell
(
cellIndex
).
GetDecodeEscapes
();
var
cell
=
row
.
CreateCell
(
cellIndex
);
if
(
filed
.
ContainsKey
(
column
))
{
cell
.
SetCellOValue
(
filed
[
column
]?.
Invoke
(
deptData
.
First
()));
cell
.
CellStyle
=
deptStyle
;
}
else
if
(
sheetType
==
SheetType
.
Income
||
(
headers
!=
null
&&
headers
.
Contains
(
column
)))
{
var
value
=
deptData
.
FirstOrDefault
(
t
=>
t
.
TypeName
==
column
)?.
CellValue
;
cell
.
SetCellValue
<
decimal
>(
value
);
cell
.
CellStyle
=
cellStyle
;
}
}
dataFirstRowNum
++;
}
}
/// <summary> 收入固定列 </summary>
private
static
readonly
Dictionary
<
string
,
Func
<
collect_data
,
string
>>
collectIncome
=
new
Dictionary
<
string
,
Func
<
collect_data
,
string
>>
{
{
"科室名称"
,
(
dto
)
=>
dto
.
Department
},
{
"核算单元(医生组)"
,
(
dto
)
=>
dto
.
AccountingUnitDoctor
},
{
"核算单元(护理组)"
,
(
dto
)
=>
dto
.
AccountingUnitNurse
},
{
"核算单元(医技组)"
,
(
dto
)
=>
dto
.
AccountingUnitTechnician
},
};
/// <summary> 工作量固定列 </summary>
private
static
readonly
Dictionary
<
string
,
Func
<
collect_data
,
string
>>
collectWork
=
new
Dictionary
<
string
,
Func
<
collect_data
,
string
>>
{
{
"科室名称"
,
(
dto
)
=>
dto
.
Department
},
{
"核算单元"
,
(
dto
)
=>
dto
.
AccountingUnitDoctor
},
};
#
endregion
}
}
performance/Performance.Services/ExtractExcelService/ExtractService.cs
View file @
b6481b96
...
...
@@ -58,6 +58,7 @@ PerforPeremployeeRepository peremployeeRepository
public
string
Main
(
int
allotId
,
int
hospitalId
,
string
email
,
string
groupName
=
null
,
string
filePath
=
null
)
{
string
extractFilePath
=
""
;
IWorkbook
workbook
=
null
;
try
{
logService
.
ClearExtractLog
(
allotId
);
...
...
@@ -74,13 +75,16 @@ public string Main(int allotId, int hospitalId, string email, string groupName =
var
standData
=
StandDataFormat
(
hospitalId
,
data
);
var
statesArray
=
new
int
[]
{
(
int
)
AllotStates
.
GenerateSucceed
,
(
int
)
AllotStates
.
Archive
};
var
lastAllot
=
allots
.
Where
(
t
=>
statesArray
.
Contains
(
t
.
States
))?.
OrderByDescending
(
t
=>
t
.
Year
)?.
ThenByDescending
(
t
=>
t
.
Month
)?.
Firs
t
();
//var lastAllot = allots.Where(t => statesArray.Contains(t.States))?.OrderByDescending(t => t.Year).ThenByDescending(t => t.Month).FirstOrDefaul
t();
var
templateFilePath
=
ExtractHelper
.
GetExtractFile
(
hospitalId
,
ref
extractFilePath
,
filePath
);
WriteDataToFile
(
templateFilePath
,
extractFilePath
,
allotId
,
dict
,
standData
);
if
(!
FileHelper
.
IsExistFile
(
templateFilePath
))
throw
new
PerformanceException
(
"抽取文件创建失败"
);
return
templateFilePath
;
workbook
=
ExcelHelper
.
GetWorkbook
(
templateFilePath
);
if
(
workbook
==
null
)
throw
new
PerformanceException
(
"文件读取失败"
);
WriteDataToFile
(
workbook
,
allotId
,
dict
,
standData
);
}
catch
(
Exception
ex
)
{
...
...
@@ -88,26 +92,24 @@ public string Main(int allotId, int hospitalId, string email, string groupName =
}
finally
{
using
(
FileStream
file
=
new
FileStream
(
extractFilePath
,
FileMode
.
OpenOrCreate
))
{
workbook
.
Write
(
file
);
}
workbook
.
Close
();
}
return
extractFilePath
;
}
private
void
WriteDataToFile
(
string
templateFile
,
string
extractFile
,
int
allotId
,
Dictionary
<
ExDataDict
,
object
>
exdict
,
List
<
ExtractTransDto
>
extractDto
)
private
void
WriteDataToFile
(
IWorkbook
workbook
,
int
allotId
,
Dictionary
<
ExDataDict
,
object
>
exdict
,
List
<
ExtractTransDto
>
extractDto
)
{
if
(!
FileHelper
.
IsExistFile
(
templateFile
))
throw
new
PerformanceException
(
""
);
var
workbook
=
ExcelHelper
.
GetWorkbook
(
templateFile
);
if
(
workbook
==
null
)
throw
new
PerformanceException
(
"文件读取失败"
);
ExcelStyle
style
=
new
ExcelStyle
(
workbook
);
var
models
=
exdict
[
ExDataDict
.
ExModule
]
as
List
<
ex_module
>;
ExtractHelper
.
CreateNotExistSheet
(
models
,
workbook
);
var
employeeDict
=
peremployeeRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
allotId
);
var
collectData
=
collectdataRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
allotId
);
WriteDataFactory
factory
=
new
WriteDataFactory
();
for
(
int
sheetIndex
=
0
;
sheetIndex
<
workbook
.
NumberOfSheets
;
sheetIndex
++)
...
...
@@ -118,22 +120,23 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI
if
(
sheetType
==
SheetType
.
Unidentifiable
)
continue
;
var
point
=
PerSheetDataFactory
.
GetDataRead
(
sheetType
)?.
Point
;
if
(
point
!=
null
)
if
(
point
!=
null
&&
point
.
DataFirstCellNum
.
HasValue
)
ExtractHelper
.
ClearSheetPartialData
(
sheet
,
point
,
sheetType
);
var
customer
=
factory
.
GetWriteData
(
sheetType
);
if
(
customer
!=
null
)
{
var
exdata
=
extractDto
.
Where
(
t
=>
t
.
SheetName
.
NoBlank
()
==
sheet
.
SheetName
.
NoBlank
())?.
ToList
();
string
sheetName
=
sheet
.
SheetName
.
NoBlank
();
var
collects
=
collectData
.
Where
(
t
=>
t
.
SheetName
.
NoBlank
()
==
sheetName
)?.
ToList
();
if
(
collects
!=
null
&&
collects
.
Any
())
{
customer
.
WriteCollectData
(
sheet
,
point
,
sheetType
,
style
,
collects
);
}
var
exdata
=
extractDto
.
Where
(
t
=>
t
.
SheetName
.
NoBlank
()
==
sheetName
)?.
ToList
();
var
data
=
GetDataBySheetType
(
sheetType
,
exdata
,
employeeDict
);
customer
.
WriteSheetData
(
sheet
,
point
,
sheetType
,
style
,
data
,
exdict
);
}
}
using
(
FileStream
file
=
new
FileStream
(
extractFile
,
FileMode
.
OpenOrCreate
))
{
workbook
.
Write
(
file
);
}
}
private
object
GetDataBySheetType
(
SheetType
sheetType
,
List
<
ExtractTransDto
>
extractDto
,
List
<
per_employee
>
employeeDict
)
...
...
performance/Performance.Services/ExtractExcelService/SheetDataWrite/AccountBasicDataWrite.cs
View file @
b6481b96
using
NPOI.SS.UserModel
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
...
...
@@ -8,9 +9,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
class
AccountBasicDataWrite
:
ISheetDataWrite
{
public
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
collect_data
>
collects
)
{
}
public
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
object
data
,
Dictionary
<
ExDataDict
,
object
>
exdict
=
null
)
{
throw
new
NotImplementedException
();
}
}
}
performance/Performance.Services/ExtractExcelService/SheetDataWrite/ClinicEmployeeDataWrite.cs
View file @
b6481b96
using
NPOI.SS.UserModel
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
...
...
@@ -8,9 +9,14 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
class
ClinicEmployeeDataWrite
:
ISheetDataWrite
{
public
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
collect_data
>
collects
)
{
}
public
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
object
data
,
Dictionary
<
ExDataDict
,
object
>
exdict
=
null
)
{
throw
new
NotImplementedException
();
}
}
}
performance/Performance.Services/ExtractExcelService/SheetDataWrite/EmployeeDataWrite.cs
View file @
b6481b96
...
...
@@ -10,6 +10,11 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
public
class
EmployeeDataWrite
:
ISheetDataWrite
{
public
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
collect_data
>
collects
)
{
}
public
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
object
data
,
Dictionary
<
ExDataDict
,
object
>
exdict
)
{
if
(
data
is
List
<
per_employee
>
employees
&&
employees
.
Any
(
t
=>
accountingUnits
.
Contains
(
t
.
UnitType
)))
...
...
performance/Performance.Services/ExtractExcelService/SheetDataWrite/ISheetDataWrite.cs
View file @
b6481b96
using
NPOI.SS.UserModel
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
...
...
@@ -8,6 +9,8 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
public
interface
ISheetDataWrite
{
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
collect_data
>
collects
);
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
object
data
,
Dictionary
<
ExDataDict
,
object
>
exdict
=
null
);
}
}
performance/Performance.Services/ExtractExcelService/SheetDataWrite/IncomeDataWrite.cs
View file @
b6481b96
...
...
@@ -10,6 +10,24 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
public
class
IncomeDataWrite
:
ISheetDataWrite
{
public
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
collect_data
>
collects
)
{
if
(
collects
==
null
||
!
collects
.
Any
(
t
=>
!
string
.
IsNullOrEmpty
(
t
.
TypeName
)))
return
;
var
columns
=
collects
.
Where
(
t
=>
!
string
.
IsNullOrEmpty
(
t
.
TypeName
)).
Select
(
t
=>
t
.
TypeName
).
Distinct
().
OrderBy
(
t
=>
t
).
ToList
();
var
headers
=
columns
.
Select
(
t
=>
new
ExcelHeader
{
ColumnName
=
t
.
Trim
(),
DoctorFactor
=
0
,
NurseFactor
=
0
,
TechnicianFactor
=
0
}).
ToList
();
WriteDataHelper
.
WriteSheetHeader
(
sheet
,
point
,
sheetType
,
style
,
headers
);
WriteDataHelper
.
WriteCollectData
(
sheet
,
point
,
sheetType
,
style
,
columns
,
collects
);
}
public
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
object
data
,
Dictionary
<
ExDataDict
,
object
>
exdict
=
null
)
{
var
modules
=
exdict
[
ExDataDict
.
ExModule
]
as
List
<
ex_module
>;
...
...
@@ -22,7 +40,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp
var
headers
=
modelItems
.
Select
(
t
=>
new
ExcelHeader
{
ColumnName
=
t
.
ItemName
,
ColumnName
=
t
.
ItemName
.
Trim
()
,
DoctorFactor
=
t
.
FactorValue1
??
0
,
NurseFactor
=
t
.
FactorValue2
??
0
,
TechnicianFactor
=
t
.
FactorValue3
??
0
...
...
performance/Performance.Services/ExtractExcelService/SheetDataWrite/OtherIncomeDataWrite.cs
View file @
b6481b96
...
...
@@ -10,6 +10,24 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
public
class
OtherIncomeDataWrite
:
ISheetDataWrite
{
public
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
collect_data
>
collects
)
{
if
(
collects
==
null
||
!
collects
.
Any
(
t
=>
!
string
.
IsNullOrEmpty
(
t
.
TypeName
)))
return
;
var
columns
=
collects
.
Where
(
t
=>
!
string
.
IsNullOrEmpty
(
t
.
TypeName
)).
Select
(
t
=>
t
.
TypeName
).
Distinct
().
OrderBy
(
t
=>
t
).
ToList
();
var
headers
=
columns
.
Select
(
t
=>
new
ExcelHeader
{
ColumnName
=
t
.
Trim
(),
DoctorFactor
=
0
,
NurseFactor
=
0
,
TechnicianFactor
=
0
}).
ToList
();
WriteDataHelper
.
WriteSheetHeader
(
sheet
,
point
,
sheetType
,
style
,
headers
);
WriteDataHelper
.
WriteCollectData
(
sheet
,
point
,
sheetType
,
style
,
columns
,
collects
);
}
public
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
object
data
,
Dictionary
<
ExDataDict
,
object
>
exdict
=
null
)
{
var
modules
=
exdict
[
ExDataDict
.
ExModule
]
as
List
<
ex_module
>;
...
...
performance/Performance.Services/ExtractExcelService/SheetDataWrite/SpecialUnitDataWrite.cs
View file @
b6481b96
using
NPOI.SS.UserModel
;
using
Performance.DtoModels
;
using
Performance.EntityModels
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Performance.Services.ExtractExcelService.SheetDataWrite
{
class
SpecialUnitDataWrite
:
ISheetDataWrite
public
class
SpecialUnitDataWrite
:
ISheetDataWrite
{
public
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
collect_data
>
collects
)
{
}
public
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
object
data
,
Dictionary
<
ExDataDict
,
object
>
exdict
=
null
)
{
throw
new
NotImplementedException
();
}
}
}
performance/Performance.Services/ExtractExcelService/SheetDataWrite/WorkloadDataWrite.cs
View file @
b6481b96
...
...
@@ -10,6 +10,24 @@ namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
public
class
WorkloadDataWrite
:
ISheetDataWrite
{
public
void
WriteCollectData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
List
<
collect_data
>
collects
)
{
if
(
collects
==
null
||
!
collects
.
Any
(
t
=>
!
string
.
IsNullOrEmpty
(
t
.
TypeName
)))
return
;
var
columns
=
collects
.
Where
(
t
=>
!
string
.
IsNullOrEmpty
(
t
.
TypeName
)).
Select
(
t
=>
t
.
TypeName
).
Distinct
().
OrderBy
(
t
=>
t
).
ToList
();
var
headers
=
columns
.
Select
(
t
=>
new
ExcelHeader
{
ColumnName
=
t
.
Trim
(),
DoctorFactor
=
0
,
NurseFactor
=
0
,
TechnicianFactor
=
0
}).
ToList
();
WriteDataHelper
.
WriteSheetHeader
(
sheet
,
point
,
sheetType
,
style
,
headers
);
WriteDataHelper
.
WriteCollectData
(
sheet
,
point
,
sheetType
,
style
,
columns
,
collects
);
}
public
void
WriteSheetData
(
ISheet
sheet
,
PerSheetPoint
point
,
SheetType
sheetType
,
ExcelStyle
style
,
object
data
,
Dictionary
<
ExDataDict
,
object
>
exdict
=
null
)
{
var
modules
=
exdict
[
ExDataDict
.
ExModule
]
as
List
<
ex_module
>;
...
...
performance/Performance.Services/PerExcelService/SheetDataRead/PerSheetDataReadExpend.cs
View file @
b6481b96
...
...
@@ -19,6 +19,7 @@ public class PerSheetDataReadExpend : IPerSheetDataRead
HeaderLastRowNum
=
4
,
HeaderFirstCellNum
=
3
,
DataFirstRowNum
=
5
,
DataFirstCellNum
=
7
,
AccountingUnit
=
new
List
<
AccountingUnit
>
{
new
AccountingUnit
...
...
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