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
80cfbc09
Commit
80cfbc09
authored
Dec 04, 2020
by
lcx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
二次绩效其他模板详情
parent
68811594
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
199 additions
and
38 deletions
+199
-38
performance/Performance.Api/Controllers/SecondAllotController.cs
+2
-1
performance/Performance.DtoModels/Request/AgOtherRequest.cs
+4
-0
performance/Performance.Services/Details/SecondAllotDetails.cs
+193
-37
No files found.
performance/Performance.Api/Controllers/SecondAllotController.cs
View file @
80cfbc09
...
...
@@ -401,7 +401,8 @@ public ApiResponse NursingDeptAuditResult([FromBody] SecondAuditRequest request)
[
HttpPost
]
public
ApiResponse
OtherList
([
FromBody
]
AgOtherRequest
request
)
{
var
result
=
secondAllotService
.
OtherList
(
request
.
SecondId
,
claimService
.
GetUserId
());
//var result = secondAllotService.OtherList(request.SecondId, claimService.GetUserId());
var
result
=
secondAllotDetails
.
GetOtherTempDetails
(
claimService
.
GetUserId
(),
request
.
SecondId
,
request
.
IsArchive
,
request
.
EmployeeSource
);
var
obj
=
new
{
header
=
secondAllotService
.
OtherListHeader
(
request
.
SecondId
,
result
?.
Sum
(
t
=>
t
.
RealAmount
)),
...
...
performance/Performance.DtoModels/Request/AgOtherRequest.cs
View file @
80cfbc09
...
...
@@ -9,6 +9,10 @@ public class AgOtherRequest
{
public
int
SecondId
{
get
;
set
;
}
public
int
IsArchive
{
get
;
set
;
}
public
int
EmployeeSource
{
get
;
set
;
}
public
List
<
ag_othersource
>
Othersources
{
get
;
set
;
}
}
}
performance/Performance.Services/Details/SecondAllotDetails.cs
View file @
80cfbc09
...
...
@@ -17,9 +17,11 @@ public class SecondAllotDetails : IAutoInjection
private
readonly
PerforAgworkloadRepository
agworkloadRepository
;
private
readonly
PerforAgworkloadtypeRepository
agworkloadtypeRepository
;
private
readonly
PerforAgfixatitemRepository
agfixatitemRepository
;
private
readonly
PerforAgothersourceRepository
agothersourceRepository
;
private
readonly
PerforPerallotRepository
perallotRepository
;
private
readonly
PerforCofagainRepository
cofagainRepository
;
private
readonly
PerforPerapramountRepository
perapramountRepository
;
private
readonly
PerforRescomputeRepository
rescomputeRepository
;
private
readonly
PersonService
personService
;
public
SecondAllotDetails
(
...
...
@@ -29,9 +31,11 @@ public class SecondAllotDetails : IAutoInjection
PerforAgworkloadRepository
agworkloadRepository
,
PerforAgworkloadtypeRepository
agworkloadtypeRepository
,
PerforAgfixatitemRepository
agfixatitemRepository
,
PerforAgothersourceRepository
agothersourceRepository
,
PerforPerallotRepository
perallotRepository
,
PerforCofagainRepository
cofagainRepository
,
PerforPerapramountRepository
perapramountRepository
,
PerforRescomputeRepository
rescomputeRepository
,
PersonService
personService
)
{
...
...
@@ -41,12 +45,16 @@ PersonService personService
this
.
agworkloadRepository
=
agworkloadRepository
;
this
.
agworkloadtypeRepository
=
agworkloadtypeRepository
;
this
.
agfixatitemRepository
=
agfixatitemRepository
;
this
.
agothersourceRepository
=
agothersourceRepository
;
this
.
perallotRepository
=
perallotRepository
;
this
.
cofagainRepository
=
cofagainRepository
;
this
.
perapramountRepository
=
perapramountRepository
;
this
.
rescomputeRepository
=
rescomputeRepository
;
this
.
personService
=
personService
;
}
#
region
横向纵向模板详情
/// <summary>
/// 二次绩效详情
/// </summary>
...
...
@@ -189,7 +197,7 @@ public List<BodyItem> GetBodyItems(int userId, int employeeSource, ag_secondallo
return
GetEmployeeFromEmployeeDict
(
userId
,
secondAllot
,
otherShowColumns
);
case
(
int
)
EmployeeSource
.
PrevSecondAllot
:
return
GetEmployeeFromPrevData
(
prevSecondAllot
,
otherShowColumns
);
return
GetEmployeeFromPrevData
(
userId
,
secondAllot
,
prevSecondAllot
,
otherShowColumns
);
default
:
return
new
List
<
BodyItem
>();
...
...
@@ -244,26 +252,25 @@ public List<BodyItem> GetEmployeeFromEmployeeDict(int userId, ag_secondallot sec
if
(
otherShowColumns
==
null
||
!
otherShowColumns
.
Any
())
return
tableFixedDataList
;
var
employeeList
=
personService
.
GetPersons
(
secondAllot
.
AllotId
.
Value
,
userId
);
;
var
employeeList
=
personService
.
GetPersons
(
secondAllot
.
AllotId
.
Value
,
userId
);
if
(
employeeList
==
null
||
!
employeeList
.
Any
())
return
tableFixedDataList
;
var
perapramounts
=
perapramountRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
secondAllot
.
AllotId
&&
t
.
Status
==
3
);
Func
<
per_employee
,
decimal
?>
getAprAmount
=
(
t
)
=>
perapramounts
?.
Where
(
w
=>
w
.
AccountingUnit
?.
Trim
()
==
secondAllot
.
Department
?.
Trim
()
&&
w
.
DoctorName
?.
Trim
()
==
t
.
DoctorName
?.
Trim
()
&&
w
.
PersonnelNumber
?.
Trim
()
==
t
.
JobNumber
?.
Trim
())
?.
Sum
(
w
=>
w
.
Amount
);
//
var perapramounts = perapramountRepository.GetEntities(t => t.AllotId == secondAllot.AllotId && t.Status == 3);
//
Func<per_employee, decimal?> getAprAmount = (t) => perapramounts
//
?.Where(w => w.AccountingUnit?.Trim() == secondAllot.Department?.Trim() && w.DoctorName?.Trim() == t.DoctorName?.Trim() && w.PersonnelNumber?.Trim() == t.JobNumber?.Trim())
//
?.Sum(w => w.Amount);
var
employeeColumns
=
new
List
<
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>>
{
new
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>(
"人员工号"
,
"PersonnelNumber"
,
(
t
)
=>
t
.
JobNumber
),
new
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>(
"姓名"
,
"FullName"
,
(
t
)
=>
t
.
DoctorName
),
new
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>(
"岗位"
,
"Post"
,
"岗位"
,
"Post"
,
(
t
)
=>
!
string
.
IsNullOrEmpty
(
t
.
Duty
)
&&
(
t
.
Duty
.
IndexOf
(
"主任"
)
>
-
1
||
t
.
Duty
.
IndexOf
(
"护士长"
)
>
-
1
)
?
"主任"
:
"其他"
),
new
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>(
"出勤"
,
"ActualAttendance"
,
(
t
)
=>
t
.
AttendanceDay
),
new
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>(
"职称"
,
"JobTitle"
,
(
t
)
=>
t
.
JobTitle
),
new
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>(
"预留比例"
,
"ReservedRatio"
,
(
t
)
=>
t
.
ReservedRatio
),
new
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>(
"医院其他绩效"
,
"OtherPerformance"
,
(
t
)
=>
getAprAmount
(
t
)
)
new
Tuple
<
string
,
string
,
Func
<
per_employee
,
object
>>(
"医院其他绩效"
,
"OtherPerformance"
,
(
t
)
=>
0
)
};
int
rowNumber
=
0
;
...
...
@@ -279,10 +286,11 @@ public List<BodyItem> GetEmployeeFromEmployeeDict(int userId, ag_secondallot sec
var
value
=
column
.
Item3
.
Invoke
(
employee
);
tableFixedData
.
Value
=
value
?.
ToString
();
tableFixedData
.
RowNumber
=
rowNumber
;
tableFixedDataList
.
Add
(
tableFixedData
);
}
rowNumber
++;
}
SupplementOtherPerfor
(
secondAllot
,
tableFixedDataList
);
return
tableFixedDataList
;
}
...
...
@@ -292,7 +300,7 @@ public List<BodyItem> GetEmployeeFromEmployeeDict(int userId, ag_secondallot sec
/// <param name="prevSecondAllot"></param>
/// <param name="otherShowColumns"></param>
/// <returns></returns>
public
List
<
BodyItem
>
GetEmployeeFromPrevData
(
ag_secondallot
prevSecondAllot
,
List
<
HeadItem
>
otherShowColumns
)
public
List
<
BodyItem
>
GetEmployeeFromPrevData
(
int
userId
,
ag_secondallot
secondAllot
,
ag_secondallot
prevSecondAllot
,
List
<
HeadItem
>
otherShowColumns
)
{
var
tableFixedDataList
=
new
List
<
BodyItem
>();
...
...
@@ -301,15 +309,30 @@ public List<BodyItem> GetEmployeeFromPrevData(ag_secondallot prevSecondAllot, Li
var
savedDataList
=
agfixatitemRepository
.
GetEntities
(
w
=>
w
.
SecondId
==
prevSecondAllot
.
Id
&&
w
.
RowNumber
.
HasValue
&&
w
.
RowNumber
>
-
1
);
if
(
savedDataList
==
null
||
!
savedDataList
.
Any
())
return
tableFixedDataList
;
var
employeeList
=
personService
.
GetPersons
(
secondAllot
.
AllotId
.
Value
,
userId
);
var
employeeColumns
=
new
List
<
Tuple
<
string
,
string
>>
{
new
Tuple
<
string
,
string
>(
"人员工号"
,
"PersonnelNumber"
),
new
Tuple
<
string
,
string
>(
"姓名"
,
"FullName"
),
new
Tuple
<
string
,
string
>(
"岗位"
,
"Post"
),
new
Tuple
<
string
,
string
>(
"人员系数"
,
"StaffCoefficient"
),
new
Tuple
<
string
,
string
>(
"职称"
,
"JobTitle"
),
new
Tuple
<
string
,
string
>(
"职称系数"
,
"TitleCoefficient"
)
};
var
rowNumberList
=
savedDataList
.
Select
(
w
=>
w
.
RowNumber
.
Value
).
Distinct
().
OrderBy
(
t
=>
t
).
ToList
();
if
(
rowNumberList
!=
null
&&
rowNumberList
.
Any
())
{
foreach
(
var
rowNumber
in
rowNumberList
)
{
foreach
(
var
column
in
otherShow
Columns
)
foreach
(
var
column
in
employee
Columns
)
{
var
tableFixedData
=
new
BodyItem
(
column
);
var
savedData
=
savedDataList
.
FirstOrDefault
(
w
=>
w
.
RowNumber
==
rowNumber
&&
w
.
Type
==
column
.
Type
&&
w
.
ItemName
==
column
.
FiledName
);
var
headItem
=
otherShowColumns
.
FirstOrDefault
(
w
=>
w
.
FiledName
==
column
.
Item1
&&
w
.
FiledId
==
column
.
Item2
&&
w
.
Type
==
(
int
)
TempColumnType
.
TableFixedColumns
);
if
(
headItem
==
null
)
continue
;
var
tableFixedData
=
new
BodyItem
(
headItem
);
var
savedData
=
savedDataList
.
FirstOrDefault
(
w
=>
w
.
RowNumber
==
rowNumber
&&
w
.
Type
==
(
int
)
TempColumnType
.
TableFixedColumns
&&
w
.
ItemName
==
column
.
Item1
);
if
(
savedData
!=
null
)
{
tableFixedData
.
Value
=
savedData
.
ItemValue
;
...
...
@@ -317,32 +340,27 @@ public List<BodyItem> GetEmployeeFromPrevData(ag_secondallot prevSecondAllot, Li
}
tableFixedDataList
.
Add
(
tableFixedData
);
}
}
}
return
tableFixedDataList
;
}
/// <summary>
/// 获取上一次的二次绩效信息
/// </summary>
/// <param name="hospitalId"></param>
/// <param name="secondAllot"></param>
/// <returns></returns>
private
ag_secondallot
GetPreviousSecondAllot
(
int
hospitalId
,
ag_secondallot
secondAllot
)
{
// 历史删除绩效时,未删除对应的二次绩效记录
var
allotList
=
perallotRepository
.
GetEntities
(
w
=>
w
.
HospitalId
==
hospitalId
)?.
OrderBy
(
s
=>
s
.
Year
).
ThenBy
(
s
=>
s
.
Month
).
ToList
();
if
(
allotList
==
null
||
!
allotList
.
Any
())
throw
new
PerformanceException
(
"未查询到符合的绩效记录"
);
#
region
获取人员字典中录入的出勤
var
allot
=
allotList
.
FirstOrDefault
(
w
=>
w
.
ID
==
secondAllot
.
AllotId
);
if
(
allot
==
null
)
throw
new
PerformanceException
(
"未查询到符合的绩效记录"
);
var
attenItem
=
otherShowColumns
.
FirstOrDefault
(
w
=>
w
.
FiledName
==
"出勤"
&&
w
.
FiledId
==
"ActualAttendance"
&&
w
.
Type
==
(
int
)
TempColumnType
.
TableFixedColumns
);
if
(
attenItem
==
null
)
continue
;
var
attendance
=
new
BodyItem
(
attenItem
);
var
index
=
allotList
.
IndexOf
(
allot
);
if
(
index
==
0
)
return
null
;
var
jobNumber
=
savedDataList
.
FirstOrDefault
(
w
=>
w
.
RowNumber
==
rowNumber
&&
w
.
ItemName
==
"人员工号"
)?.
ItemValue
;
var
personName
=
savedDataList
.
FirstOrDefault
(
w
=>
w
.
RowNumber
==
rowNumber
&&
w
.
ItemName
==
"姓名"
)?.
ItemValue
;
var
employeeAttendance
=
employeeList
.
FirstOrDefault
(
w
=>
w
.
JobNumber
==
jobNumber
&&
w
.
DoctorName
==
personName
)?.
AttendanceDay
.
ToString
();
var
prevAllot
=
allotList
[
index
-
1
];
var
prevSecondAllot
=
agsecondallotRepository
.
GetEntity
(
w
=>
w
.
AllotId
==
prevAllot
.
ID
&&
w
.
UnitType
==
secondAllot
.
UnitType
&&
w
.
Department
==
secondAllot
.
Department
);
return
prevSecondAllot
;
attendance
.
Value
=
employeeAttendance
;
attendance
.
RowNumber
=
rowNumber
;
tableFixedDataList
.
Add
(
attendance
);
#
endregion
获取人员字典中录入的出勤
}
SupplementOtherPerfor
(
secondAllot
,
tableFixedDataList
);
}
return
tableFixedDataList
;
}
/// <summary>
...
...
@@ -402,7 +420,7 @@ private void SupplementOtherPerfor(ag_secondallot secondAllot, List<BodyItem> bo
var
fullName
=
rowData
.
FirstOrDefault
(
w
=>
w
.
FiledId
==
"FullName"
)?.
Value
;
var
amount
=
perapramounts
?.
Where
(
w
=>
w
.
AccountingUnit
?.
Trim
()
==
secondAllot
.
Department
?.
Trim
()
&&
w
.
PersonnelNumber
?.
Trim
()
==
personnelNumber
?.
Trim
()
&&
w
.
DoctorName
?.
Trim
()
==
fullName
?.
Trim
()
)
?.
Where
(
w
=>
w
.
AccountingUnit
?.
Trim
()
==
secondAllot
.
Department
?.
Trim
()
&&
w
.
PersonnelNumber
?.
Trim
()
==
personnelNumber
?.
Trim
())
?.
Sum
(
w
=>
w
.
Amount
);
var
otherPerfor
=
rowData
.
FirstOrDefault
(
w
=>
w
.
FiledId
==
"OtherPerformance"
);
if
(
otherPerfor
!=
null
)
...
...
@@ -488,6 +506,144 @@ private void SupplyHeaderByWorkItem(int hospitalId, SecondResponse result, ag_se
}
}
}
#
endregion
横向纵向模板详情
#
region
其他模板详情
public
List
<
ag_othersource
>
GetOtherTempDetails
(
int
userId
,
int
secondId
,
int
isArchive
,
int
employeeSource
)
{
var
secondAllot
=
agsecondallotRepository
.
GetEntity
(
t
=>
t
.
Id
==
secondId
);
if
(
secondAllot
==
null
)
throw
new
PerformanceException
(
"二次绩效信息无效!"
);
var
allot
=
perallotRepository
.
GetEntity
(
w
=>
w
.
ID
==
secondAllot
.
AllotId
);
if
(
allot
==
null
)
throw
new
PerformanceException
(
"未查询到匹配的绩效信息"
);
var
prevSecondAllot
=
GetPreviousSecondAllot
(
allot
.
HospitalId
,
secondAllot
);
var
result
=
new
List
<
ag_othersource
>();
var
savedDataList
=
agothersourceRepository
.
GetEntities
(
t
=>
t
.
SecondId
==
secondId
);
var
isSupplementTitlePerformance
=
savedDataList
==
null
||
!
savedDataList
.
Any
();
if
(
employeeSource
==
(
int
)
EmployeeSource
.
Initial
)
{
employeeSource
=
(
savedDataList
==
null
||
!
savedDataList
.
Any
())
&&
prevSecondAllot
==
null
?
(
int
)
EmployeeSource
.
EmployeeDict
:
(
int
)
EmployeeSource
.
PrevSecondAllot
;
}
if
(
isArchive
==
1
||
new
List
<
int
>
{
(
int
)
SecondAllotStatus
.
WaitReview
,
(
int
)
SecondAllotStatus
.
PassAudit
}.
Contains
(
secondAllot
.
Status
??
(
int
)
SecondAllotStatus
.
Uncommitted
))
employeeSource
=
(
int
)
EmployeeSource
.
Initial
;
var
employees
=
personService
.
GetPersons
(
secondAllot
.
AllotId
.
Value
,
userId
)?.
Where
(
t
=>
t
.
UnitType
==
secondAllot
.
UnitType
).
ToList
();
switch
(
employeeSource
)
{
case
(
int
)
EmployeeSource
.
Initial
:
result
=
savedDataList
.
OrderBy
(
t
=>
t
.
Id
).
ToList
();
break
;
case
(
int
)
EmployeeSource
.
EmployeeDict
:
if
(
employees
==
null
||
!
employees
.
Any
())
return
new
List
<
ag_othersource
>();
result
=
employees
.
Select
(
t
=>
new
ag_othersource
{
SecondId
=
secondId
,
WorkNumber
=
t
.
JobNumber
??
t
.
PersonnelNumber
,
Name
=
t
.
DoctorName
,
Department
=
t
.
Department
,
WorkPost
=
t
.
JobTitle
,
}).
ToList
();
break
;
case
(
int
)
EmployeeSource
.
PrevSecondAllot
:
var
prevSavedDataList
=
agothersourceRepository
.
GetEntities
(
t
=>
t
.
SecondId
==
prevSecondAllot
.
Id
);
isSupplementTitlePerformance
=
prevSavedDataList
==
null
||
!
prevSavedDataList
.
Any
();
if
(
prevSavedDataList
!=
null
&&
prevSavedDataList
.
Any
())
{
result
=
prevSavedDataList
.
OrderBy
(
t
=>
t
.
Id
)
.
Select
(
t
=>
new
ag_othersource
{
SecondId
=
secondId
,
WorkNumber
=
t
.
WorkNumber
,
Name
=
t
.
Name
,
Department
=
t
.
Department
,
WorkPost
=
t
.
WorkPost
,
}).
ToList
();
}
break
;
default
:
break
;
}
SupplementSecondDetail
(
secondAllot
,
employees
,
result
,
isSupplementTitlePerformance
);
return
result
;
}
/// <summary>
/// 补充二次分配 人员明细
/// </summary>
/// <param name="second"></param>
/// <param name="employees"></param>
/// <param name="result"></param>
/// <param name="isTitlePerformance">是否补全职称绩效</param>
private
void
SupplementSecondDetail
(
ag_secondallot
second
,
List
<
per_employee
>
employees
,
List
<
ag_othersource
>
result
,
bool
isTitlePerformance
=
true
)
{
if
(
employees
==
null
||
!
employees
.
Any
(
t
=>
t
.
UnitType
==
second
.
UnitType
))
return
;
// 补充医院其他绩效 及 预留比例
var
perapramounts
=
perapramountRepository
.
GetEntities
(
t
=>
t
.
AllotId
==
second
.
AllotId
&&
t
.
Status
==
3
);
Func
<
per_employee
,
decimal
?>
getAprAmount
=
(
t
)
=>
perapramounts
?.
Where
(
w
=>
w
.
AccountingUnit
?.
Trim
()
==
second
.
Department
?.
Trim
()
&&
w
.
DoctorName
?.
Trim
()
==
t
.
DoctorName
?.
Trim
()
&&
w
.
PersonnelNumber
?.
Trim
()
==
t
.
PersonnelNumber
?.
Trim
())
?.
Sum
(
w
=>
w
.
Amount
);
var
distPerformance
=
rescomputeRepository
.
GetEntities
(
t
=>
t
.
AllotID
==
second
.
AllotId
&&
employees
.
Select
(
s
=>
s
.
DoctorName
).
Contains
(
t
.
EmployeeName
));
Func
<
per_employee
,
decimal
?>
getDistPerformance
=
(
t
)
=>
0
;
if
(
second
.
UnitType
==
UnitType
.
行政后勤
.
ToString
())
getDistPerformance
=
(
t
)
=>
distPerformance
?.
Where
(
w
=>
w
.
AccountingUnit
?.
Trim
()
==
second
.
Department
?.
Trim
()
&&
w
.
EmployeeName
?.
Trim
()
==
t
.
DoctorName
?.
Trim
()
&&
w
.
JobNumber
?.
Trim
()
==
t
.
PersonnelNumber
?.
Trim
())
?.
Sum
(
w
=>
w
.
GiveFee
);
foreach
(
var
item
in
result
)
{
var
empl
=
employees
.
FirstOrDefault
(
w
=>
w
.
PersonnelNumber
?.
Trim
()
==
item
.
WorkNumber
?.
Trim
()
&&
w
.
DoctorName
?.
Trim
()
==
item
.
Name
?.
Trim
());
if
(
empl
!=
null
)
{
item
.
ReservedRatio
=
empl
.
ReservedRatio
;
item
.
OtherPerformance
=
getAprAmount
(
empl
);
if
(
isTitlePerformance
)
item
.
TitlePerformance
=
getDistPerformance
(
empl
);
}
}
}
#
endregion
其他模板详情
/// <summary>
/// 获取上一次的二次绩效
/// </summary>
/// <param name="hospitalId"></param>
/// <param name="secondAllot"></param>
/// <returns></returns>
private
ag_secondallot
GetPreviousSecondAllot
(
int
hospitalId
,
ag_secondallot
secondAllot
)
{
// 历史删除绩效时,未删除对应的二次绩效记录
var
allotList
=
perallotRepository
.
GetEntities
(
w
=>
w
.
HospitalId
==
hospitalId
)?.
OrderBy
(
s
=>
s
.
Year
).
ThenBy
(
s
=>
s
.
Month
).
ToList
();
if
(
allotList
==
null
||
!
allotList
.
Any
())
throw
new
PerformanceException
(
"未查询到符合的绩效记录"
);
var
allot
=
allotList
.
FirstOrDefault
(
w
=>
w
.
ID
==
secondAllot
.
AllotId
);
if
(
allot
==
null
)
throw
new
PerformanceException
(
"未查询到符合的绩效记录"
);
var
index
=
allotList
.
IndexOf
(
allot
);
if
(
index
==
0
)
return
null
;
var
prevAllot
=
allotList
[
index
-
1
];
var
prevSecondAllot
=
agsecondallotRepository
.
GetEntity
(
w
=>
w
.
AllotId
==
prevAllot
.
ID
&&
w
.
UnitType
==
secondAllot
.
UnitType
&&
w
.
Department
==
secondAllot
.
Department
);
return
prevSecondAllot
;
}
}
/// <summary>
...
...
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