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
eecae4aa
Commit
eecae4aa
authored
Sep 16, 2020
by
lcx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
3fdd62b3
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
68 additions
and
35 deletions
+68
-35
performance/Performance.Services/DFExtractService.cs
+67
-34
performance/Performance.Services/LogManageService.cs
+1
-1
No files found.
performance/Performance.Services/DFExtractService.cs
View file @
eecae4aa
...
...
@@ -417,7 +417,7 @@ public string TemplateExecute(string email, sys_hospital hospital, List<sys_hosp
// WriteAccountBasic(sheet, sheetRead);
// break;
case
SheetType
.
SpecialUnit
:
WriteSpecialUnit
(
sheet
,
sheetRead
,
specials
,
data
);
WriteSpecialUnit
(
sheet
,
sheetRead
,
specials
,
data
,
sheetRead
.
Point
.
DataFirstRowNum
.
Value
);
break
;
}
logManage
.
ReturnTheLog
(
Allot
.
ID
,
GroupName
,
2
,
"写入数据"
,
$"sheet“
{
sheet
.
SheetName
}
”已完成数据写入"
);
...
...
@@ -493,28 +493,28 @@ public string AlllotExecute(string email, sys_hospital hospital, List<sys_hospit
//case SheetType.ClinicEmployee:
// WriteClinicEmployee(sheet, sheetRead, false);
// break;
case
SheetType
.
OtherIncome
:
ClearData
(
sheet
,
5
,
7
);
WriteOtherIncome
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
false
);
break
;
case
SheetType
.
Income
:
ClearData
(
sheet
,
5
,
3
,
true
);
WriteIncome
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
false
);
break
;
case
SheetType
.
Expend
:
ClearData
(
sheet
,
5
,
7
);
WriteExpend
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
false
);
break
;
case
SheetType
.
Workload
:
ClearData
(
sheet
,
3
,
3
);
WriteWorkload
(
sheet
,
sheetRead
,
modules
,
items
,
extracts
,
false
);
break
;
//
case SheetType.OtherIncome:
//
ClearData(sheet, 5, 7);
//
WriteOtherIncome(sheet, sheetRead, modules, items, extracts, false);
//
break;
//
case SheetType.Income:
//
ClearData(sheet, 5, 3, true);
//
WriteIncome(sheet, sheetRead, modules, items, extracts, false);
//
break;
//
case SheetType.Expend:
//
ClearData(sheet, 5, 7);
//
WriteExpend(sheet, sheetRead, modules, items, extracts, false);
//
break;
//
case SheetType.Workload:
//
ClearData(sheet, 3, 3);
//
WriteWorkload(sheet, sheetRead, modules, items, extracts, false);
//
break;
//case SheetType.AccountBasic:
// WriteAccountBasic(sheet, sheetRead, false);
// break;
case
SheetType
.
SpecialUnit
:
ClearData
(
sheet
,
2
,
0
);
Write
SpecialUnit
(
sheet
,
sheetRead
,
specials
,
extracts
,
lastAllot
,
false
);
//
ClearData(sheet, 2, 0);
Supply
SpecialUnit
(
sheet
,
sheetRead
,
specials
,
extracts
,
lastAllot
,
false
);
break
;
}
logManage
.
ReturnTheLog
(
Allot
.
ID
,
GroupName
,
2
,
"写入数据"
,
$"sheet“
{
sheet
.
SheetName
}
”已完成数据写入"
);
...
...
@@ -1250,7 +1250,7 @@ private void WriteWorkload(ISheet sheet, IPerSheetDataRead sheetRead, List<ex_mo
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
写入结束."
);
}
private
void
WriteSpecialUnit
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_special
>
specials
,
List
<
NewExtractDto
>
data
,
per_allot
lastAllot
=
null
,
bool
IsWriteHead
=
true
)
private
void
WriteSpecialUnit
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_special
>
specials
,
List
<
NewExtractDto
>
data
,
int
beginRowIndex
,
per_allot
lastAllot
=
null
,
bool
IsWriteHead
=
true
)
{
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
var
dictionary
=
new
Dictionary
<
string
,
Func
<
ex_special
,
List
<
im_specialunit
>,
object
>>
...
...
@@ -1270,11 +1270,11 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
if
(
lastAllot
!=
null
)
allotDataList
=
perforImspecialunitRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
lastAllot
.
ID
);
//取消合并单元格
foreach
(
var
merge
in
sheet
.
MergedRegions
)
{
sheet
.
RemoveMergedRegion
(
sheet
.
MergedRegions
.
IndexOf
(
merge
));
}
//
//
取消合并单元格
//
foreach (var merge in sheet.MergedRegions)
//
{
//
sheet.RemoveMergedRegion(sheet.MergedRegions.IndexOf(merge));
//
}
var
modDataGroup
=
speaialList
.
GroupBy
(
t
=>
new
{
t
.
Department
}).
Select
(
group
=>
new
{
...
...
@@ -1282,8 +1282,8 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
Count
=
group
.
Count
()
})?.
OrderBy
(
t
=>
t
.
Department
);
int
mergedBegin
=
sheetRead
.
Point
.
DataFirstRowNum
.
Value
;
int
mergedEnd
=
sheetRead
.
Point
.
DataFirstRowNum
.
Value
;
int
mergedBegin
=
beginRowIndex
;
int
mergedEnd
=
beginRowIndex
;
var
extractdata
=
data
.
Where
(
t
=>
t
.
SheetName
==
specialname
).
ToList
();
logger
.
LogInformation
(
$"data有
{
extractdata
?.
Count
??
0
}
个."
);
...
...
@@ -1294,7 +1294,7 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
var
headIndex
=
sheetRead
.
Point
.
HeaderFirstRowNum
;
var
cellList
=
sheet
.
GetRow
(
headIndex
.
Value
).
Cells
;
var
rowIndex
=
sheetRead
.
Point
.
DataFirstRowNum
.
Value
+
i
;
var
rowIndex
=
beginRowIndex
+
i
;
var
importRow
=
sheet
.
CreateRow
(
rowIndex
);
int
cellIndex
=
0
;
...
...
@@ -1339,7 +1339,23 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<ex
private
void
SupplySpecialUnit
(
ISheet
sheet
,
IPerSheetDataRead
sheetRead
,
List
<
ex_special
>
specials
,
List
<
NewExtractDto
>
data
,
per_allot
lastAllot
=
null
,
bool
IsWriteHead
=
true
)
{
try
{
logger
.
LogInformation
(
$"
{
sheet
.
SheetName
}
开始执行写入."
);
var
dictionary
=
new
Dictionary
<
string
,
Func
<
ex_special
,
List
<
im_specialunit
>,
object
>>
{
{
"科室"
,
(
special
,
lastallot
)
=>
special
.
Department
},
{
"人数"
,
(
special
,
lastallot
)
=>
lastallot
.
Where
(
t
=>
special
.
Department
==
t
.
Department
).
Max
(
t
=>
t
.
Number
)
},
{
"量化指标"
,
(
special
,
lastallot
)
=>
special
.
Target
},
{
"量化指标绩效分值"
,(
special
,
lastallot
)
=>
special
.
TargetFactor
},
{
"调节系数"
,
(
special
,
lastallot
)
=>
special
.
AdjustFactor
},
};
List
<
im_specialunit
>
allotDataList
=
new
List
<
im_specialunit
>();
if
(
lastAllot
!=
null
)
allotDataList
=
perforImspecialunitRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
lastAllot
.
ID
);
var
speaialList
=
specials
?.
OrderBy
(
t
=>
t
.
Department
).
ToList
();
logger
.
LogInformation
(
$"item有
{
speaialList
?.
Count
??
0
}
个."
);
if
(
speaialList
==
null
||
!
speaialList
.
Any
())
return
;
...
...
@@ -1357,10 +1373,14 @@ private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<e
if
(!
headerDict
.
ContainsKey
(
"科室"
)
||
!
headerDict
.
ContainsKey
(
"量化指标"
))
return
;
var
extractdata
=
data
.
Where
(
t
=>
t
.
SheetName
==
specialname
).
ToList
();
var
merges
=
mergefunc
.
Invoke
(
sheet
,
sheetRead
.
Point
.
DataFirstRowNum
);
if
(
merges
==
null
||
!
merges
.
Any
())
return
;
merges
=
merges
.
OrderBy
(
t
=>
t
.
FirstRow
).
ToList
();
var
allmerge
=
sheet
.
MergedRegions
;
int
startRowIndex
=
sheetRead
.
Point
.
DataFirstRowNum
??
2
;
foreach
(
var
merge
in
merges
)
{
...
...
@@ -1382,9 +1402,13 @@ private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<e
if
(
deptSpecials
!=
null
&&
deptSpecials
.
Any
())
{
foreach
(
var
spec
in
deptSpecials
)
{
sheet
.
ShiftRows
(
merge
.
LastRow
+
1
,
sheet
.
LastRowNum
,
1
,
true
,
false
);
var
shiftrow
=
sheet
.
CreateRow
(
merge
.
LastRow
+
1
);
WriteSpecialCellValue
(
dictionary
,
shiftrow
,
cellList
,
spec
,
allotDataList
,
extractdata
);
var
thanmerges
=
merges
.
Where
(
t
=>
t
.
FirstRow
>
merge
.
LastRow
)?.
ToList
();
if
(
thanmerges
!=
null
&&
thanmerges
.
Any
())
{
...
...
@@ -1396,6 +1420,7 @@ private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<e
}
merge
.
LastRow
+=
1
;
}
}
speaialList
.
RemoveAll
(
t
=>
t
.
Department
==
merge
.
Value
);
}
...
...
@@ -1411,19 +1436,28 @@ private void SupplySpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<e
}
//取消合并单元格
foreach
(
var
merge
in
sheet
.
MergedRegions
)
foreach
(
var
merge
in
allmerge
)
{
sheet
.
RemoveMergedRegion
(
sheet
.
MergedRegions
.
IndexOf
(
merge
));
if
(
merge
.
LastRow
>
merge
.
FirstRow
)
sheet
.
RemoveMergedRegion
(
allmerge
.
IndexOf
(
merge
));
}
foreach
(
var
merge
in
merges
)
foreach
(
var
merge
in
merges
.
Where
(
t
=>
t
.
FirstColumn
==
0
)
)
{
if
(
merge
.
LastRow
>
merge
.
FirstRow
||
merge
.
LastColumn
>
merge
.
FirstColumn
)
if
(
merge
.
LastRow
>
merge
.
FirstRow
)
{
CellRangeAddress
region
=
new
CellRangeAddress
(
merge
.
FirstRow
,
merge
.
LastRow
,
merge
.
FirstColumn
,
merge
.
LastColumn
);
CellRangeAddress
region
=
new
CellRangeAddress
(
merge
.
FirstRow
,
merge
.
LastRow
,
headerDict
[
"科室"
],
headerDict
[
"科室"
]
);
sheet
.
AddMergedRegion
(
region
);
sheet
.
AddMergedRegion
(
new
CellRangeAddress
(
merge
.
FirstRow
,
merge
.
LastRow
,
headerDict
[
"人数"
],
headerDict
[
"人数"
]));
}
}
WriteSpecialUnit
(
sheet
,
sheetRead
,
speaialList
,
data
,
sheet
.
LastRowNum
+
1
,
lastAllot
,
false
);
}
catch
(
Exception
ex
)
{
logger
.
LogError
(
"补充特殊科室数据发生异常"
+
ex
.
ToString
());
}
}
private
void
WriteSpecialCellValue
(
Dictionary
<
string
,
Func
<
ex_special
,
List
<
im_specialunit
>,
object
>>
dictionary
,
IRow
row
,
List
<
ICell
>
cellList
,
ex_special
special
,
List
<
im_specialunit
>
allotDataList
,
List
<
NewExtractDto
>
extractdata
)
...
...
@@ -1443,7 +1477,6 @@ private void WriteSpecialCellValue(Dictionary<string, Func<ex_special, List<im_s
}
var
newCell
=
row
.
CreateCell
(
cellList
.
IndexOf
(
cell
));
//newCell.SetCellValue(Verify(value));
OutToExcelCell
(
newCell
,
value
);
if
(
dictionary
.
ContainsKey
(
cell
.
StringCellValue
)
||
(
cell
.
StringCellValue
==
"数量"
&&
!
string
.
IsNullOrEmpty
(
value
?.
ToString
())))
newCell
.
CellStyle
=
style
;
...
...
performance/Performance.Services/LogManageService.cs
View file @
eecae4aa
...
...
@@ -83,7 +83,7 @@ public void ReturnTheLog(int allotId, string groupName, int type, string tag, ob
var
http
=
url
.
ImportFile
+
$"/template/returnlog?type=
{
type
}
&tag=
{
tag
}
&message=
{
message
}
&level=
{
level
}
&groupName=
{
groupName
}
"
;
//logger.LogInformation("发送日志:" + http);
logdbug
.
Add
(
allotId
,
tag
,
message
.
ToString
(),
level
,
type
);
HttpHelper
.
HttpPost
(
http
);
//
HttpHelper.HttpPost(http);
}
catch
(
Exception
ex
)
{
...
...
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