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
0211ae40
Commit
0211ae40
authored
Jan 19, 2021
by
ruyun.zhang@suvalue.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '医院其他绩效上传核算单元补充2' into v2020morge
parents
21588bf3
0c70484a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
20 deletions
+35
-20
performance/Performance.Services/EmployeeService.cs
+35
-20
No files found.
performance/Performance.Services/EmployeeService.cs
View file @
0211ae40
...
...
@@ -516,17 +516,15 @@ public void ImpoerAprEmployees(int allotid, string path, int userid)
var
sheet
=
workbook
.
GetSheetAt
(
0
);
var
firstRow
=
sheet
.
GetRow
(
0
);
List
<(
string
,
int
)>
excelheader
=
new
List
<(
string
,
int
)
>();
Dictionary
<
int
,
string
>
excelheader
=
new
Dictionary
<
int
,
string
>();
for
(
int
cellindex
=
0
;
cellindex
<
firstRow
.
LastCellNum
+
1
;
cellindex
++)
{
var
cell
=
firstRow
.
GetCell
(
cellindex
);
if
(
cell
==
null
)
continue
;
if
(!
string
.
IsNullOrEmpty
(
cell
.
ToString
()))
excelheader
.
Add
((
cell
.
ToString
(),
cellindex
));
var
value
=
firstRow
.
GetCell
(
cellindex
).
GetValue
();
if
(!
string
.
IsNullOrEmpty
(
value
)
&&
!
excelheader
.
ContainsKey
(
cellindex
))
excelheader
.
Add
(
cellindex
,
value
);
}
if
(
excelheader
==
null
||
!
excelheader
.
Any
()
)
if
(
excelheader
==
null
||
excelheader
.
Count
==
0
)
throw
new
PerformanceException
(
"上传excel内容错误"
);
Dictionary
<
string
,
int
>
dict
=
new
Dictionary
<
string
,
int
>
...
...
@@ -534,16 +532,12 @@ public void ImpoerAprEmployees(int allotid, string path, int userid)
{
"录入科室"
,
-
1
},{
"核算单元"
,
-
1
},{
"人员工号"
,
-
1
},
{
"姓名"
,
-
1
},
{
"绩效类型"
,
-
1
},
{
"金额"
,
-
1
},
};
List
<
string
>
errorHeaders
=
new
List
<
string
>();
foreach
(
var
key
in
dict
.
Keys
.
ToList
())
{
if
(
!
excelheader
.
Select
(
t
=>
t
.
Item1
).
Contains
(
key
))
errorHeaders
.
Add
(
key
);
else
dict
[
key
]
=
excelheader
.
First
(
t
=>
t
.
Item1
==
key
).
Item2
;
if
(
excelheader
.
Any
(
w
=>
w
.
Value
==
key
))
dict
[
key
]
=
excelheader
.
First
(
w
=>
w
.
Value
==
key
).
Key
;
}
if
(
errorHeaders
!=
null
&&
errorHeaders
.
Any
())
throw
new
PerformanceException
(
$"excel缺少列
{
string
.
Join
(
", "
,
errorHeaders
)}
"
);
var
entities
=
new
List
<
per_apr_amount
>();
var
createtime
=
DateTime
.
Now
;
...
...
@@ -555,19 +549,40 @@ public void ImpoerAprEmployees(int allotid, string path, int userid)
var
entity
=
new
per_apr_amount
{
Status
=
2
,
PersonnelNumber
=
row
.
GetCell
(
dict
[
"人员工号"
]).
GetValue
(),
DoctorName
=
row
.
GetCell
(
dict
[
"姓名"
]).
GetValue
(),
PerforType
=
row
.
GetCell
(
dict
[
"绩效类型"
]).
GetValue
(),
Amount
=
ConvertHelper
.
To
<
decimal
>(
row
.
GetCell
(
dict
[
"金额"
]).
GetValue
(),
0
),
TypeInDepartment
=
row
.
GetCell
(
dict
[
"录入科室"
]).
GetValue
(),
AccountingUnit
=
row
.
GetCell
(
dict
[
"核算单元"
]).
GetValue
(),
PersonnelNumber
=
dict
[
"人员工号"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"人员工号"
]).
GetValue
(),
DoctorName
=
dict
[
"姓名"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"姓名"
]).
GetValue
(),
PerforType
=
dict
[
"绩效类型"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"绩效类型"
]).
GetValue
(),
Amount
=
dict
[
"金额"
]
<
0
?
0
:
ConvertHelper
.
To
<
decimal
>(
row
.
GetCell
(
dict
[
"金额"
]).
GetValue
(),
0
),
TypeInDepartment
=
dict
[
"录入科室"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"录入科室"
]).
GetValue
(),
AccountingUnit
=
dict
[
"核算单元"
]
<
0
?
""
:
row
.
GetCell
(
dict
[
"核算单元"
]).
GetValue
(),
AllotId
=
allotid
,
CreateDate
=
createtime
,
CreateUser
=
userid
,
};
entities
.
Add
(
entity
);
}
perapramountRepository
.
AddRange
(
entities
.
ToArray
());
// 补充核算单元
if
(
entities
.
Any
())
{
if
(
entities
.
Any
(
w
=>
string
.
IsNullOrEmpty
(
w
.
PersonnelNumber
)
&&
w
.
Amount
!=
0
))
throw
new
PerformanceException
(
"文件中存在“工号”为空的数据"
);
if
(
entities
.
Any
(
w
=>
string
.
IsNullOrEmpty
(
w
.
PerforType
)
&&
w
.
Amount
!=
0
))
throw
new
PerformanceException
(
"文件中存在“绩效类型”为空的数据"
);
if
(
entities
.
Any
(
w
=>
string
.
IsNullOrEmpty
(
w
.
TypeInDepartment
)
&&
w
.
Amount
!=
0
))
throw
new
PerformanceException
(
"文件中存在“录入科室”为空的数据"
);
var
employees
=
peremployeeRepository
.
GetEntities
(
w
=>
w
.
AllotId
==
allotid
);
foreach
(
var
item
in
entities
.
Where
(
w
=>
!
string
.
IsNullOrEmpty
(
w
.
PersonnelNumber
)
&&
!
string
.
IsNullOrEmpty
(
w
.
AccountingUnit
)))
{
item
.
AccountingUnit
=
employees
?.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
==
item
.
PersonnelNumber
)?.
AccountingUnit
??
""
;
}
perapramountRepository
.
AddRange
(
entities
.
ToArray
());
}
}
catch
(
PerformanceException
ex
)
{
throw
ex
;
}
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