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
19801009
Commit
19801009
authored
Dec 30, 2020
by
ruyun.zhang@suvalue.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
行政科室二次分配人员带出逻辑修改
parent
79e03c5e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
95 additions
and
34 deletions
+95
-34
performance/Performance.Services/Details/SecondAllotDetails.cs
+77
-34
performance/Performance.Services/UserService.cs
+18
-0
No files found.
performance/Performance.Services/Details/SecondAllotDetails.cs
View file @
19801009
using
AutoMapper
;
using
Microsoft.Extensions.Logging
;
using
Microsoft.Extensions.Options
;
using
Performance.DtoModels
;
using
Performance.DtoModels.AppSettings
;
using
Performance.EntityModels
;
using
Performance.Infrastructure
;
using
Performance.Repository
;
...
...
@@ -14,6 +16,8 @@ namespace Performance.Services
public
class
SecondAllotDetails
:
IAutoInjection
{
private
readonly
ILogger
<
SecondAllotDetails
>
_logger
;
private
readonly
PerforImemployeelogisticsRepository
_imemployeelogisticsRepository
;
private
readonly
Application
_application
;
private
readonly
PerforAgsecondallotRepository
agsecondallotRepository
;
private
readonly
PerforAgusetempRepository
agusetempRepository
;
private
readonly
PerforAgtempitemRepository
agtempitemRepository
;
...
...
@@ -26,9 +30,12 @@ public class SecondAllotDetails : IAutoInjection
private
readonly
PerforPerapramountRepository
perapramountRepository
;
private
readonly
PerforRescomputeRepository
rescomputeRepository
;
private
readonly
PersonService
personService
;
private
readonly
UserService
_userService
;
public
SecondAllotDetails
(
ILogger
<
SecondAllotDetails
>
logger
,
IOptions
<
Application
>
application
,
PerforImemployeelogisticsRepository
imemployeelogisticsRepository
,
PerforAgsecondallotRepository
agsecondallotRepository
,
PerforAgusetempRepository
agusetempRepository
,
PerforAgtempitemRepository
agtempitemRepository
,
...
...
@@ -40,10 +47,13 @@ public class SecondAllotDetails : IAutoInjection
PerforCofagainRepository
cofagainRepository
,
PerforPerapramountRepository
perapramountRepository
,
PerforRescomputeRepository
rescomputeRepository
,
PersonService
personService
PersonService
personService
,
UserService
userService
)
{
_logger
=
logger
;
_imemployeelogisticsRepository
=
imemployeelogisticsRepository
;
_application
=
application
.
Value
;
this
.
agsecondallotRepository
=
agsecondallotRepository
;
this
.
agusetempRepository
=
agusetempRepository
;
this
.
agtempitemRepository
=
agtempitemRepository
;
...
...
@@ -56,6 +66,7 @@ PersonService personService
this
.
perapramountRepository
=
perapramountRepository
;
this
.
rescomputeRepository
=
rescomputeRepository
;
this
.
personService
=
personService
;
_userService
=
userService
;
}
#
region
横向纵向模板详情
...
...
@@ -556,6 +567,7 @@ private void SupplyHeaderByWorkItem(int hospitalId, SecondResponse result, ag_se
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
(
"二次绩效信息无效!"
);
...
...
@@ -580,45 +592,69 @@ public List<ag_othersource> GetOtherTempDetails(int userId, int secondId, int is
var
employees
=
personService
.
GetPersons
(
secondAllot
.
AllotId
.
Value
,
userId
)?.
Where
(
t
=>
t
.
UnitType
==
secondAllot
.
UnitType
).
ToList
();
switch
(
employeeSource
)
var
role
=
_userService
.
GetUserFirstRole
(
userId
);
//行政科室 只有两种逻辑,或从保存中加载,或加载EXCEL表
if
(
role
?.
Type
==
_application
.
OfficeRole
)
{
case
(
int
)
EmployeeSource
.
Initial
:
// 如果已经保存>>走保存加载逻辑
if
(
employeeSource
==
(
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
}
// 如果没保存>>走加载im_employee_logistics人员名单逻辑
else
{
var
types
=
new
string
[]
{
"行政后勤"
,
"行政工勤"
};
var
logistics
=
_imemployeelogisticsRepository
.
GetEntities
(
w
=>
w
.
AllotID
==
secondAllot
.
AllotId
&&
types
.
Contains
(
w
.
AccountType
)
&&
w
.
AccountingUnit
==
secondAllot
.
Department
);
result
=
(
logistics
??
new
List
<
im_employee_logistics
>()).
Select
(
w
=>
new
ag_othersource
{
SecondId
=
secondId
,
WorkNumber
=
t
.
PersonnelNumber
,
Name
=
t
.
DoctorName
,
Department
=
t
.
Departmen
t
,
WorkPost
=
t
.
JobTitle
,
WorkNumber
=
w
.
PersonnelNumber
,
Name
=
w
.
DoctorName
,
Department
=
w
.
AccountingUni
t
,
WorkPost
=
w
.
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
;
}
}
//非行政科室 有三种逻辑,或从保存中加载,或从人员字典加载,或从上次绩效中加载
else
{
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
.
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
;
}
}
var
originalEmployees
=
personService
.
GetPerEmployee
(
secondAllot
.
AllotId
.
Value
);
SupplementSecondDetail
(
secondAllot
,
originalEmployees
,
result
,
isSupplementTitlePerformance
);
...
...
@@ -657,7 +693,14 @@ private void SupplementSecondDetail(ag_secondallot second, List<per_employee> em
item
.
ReservedRatio
=
empl
.
ReservedRatio
;
item
.
OtherPerformance
=
getAprAmount
(
empl
);
if
(
isTitlePerformance
)
item
.
TitlePerformance
=
getDistPerformance
(
empl
);
{
// 如果是行政后勤,则把绩效放在工作量上
if
(
second
.
UnitType
==
UnitType
.
行政后勤
.
ToString
())
item
.
WorkPerformance
=
getDistPerformance
(
empl
);
// 其他人群则把绩效放在职称上
else
item
.
TitlePerformance
=
getDistPerformance
(
empl
);
}
}
}
}
...
...
performance/Performance.Services/UserService.cs
View file @
19801009
...
...
@@ -109,6 +109,24 @@ public UserIdentity GetUser(int userId)
}
/// <summary>
/// 获取用户第一个角色
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public
sys_role
GetUserFirstRole
(
int
userId
)
{
var
user
=
_userRepository
.
GetEntity
(
t
=>
t
.
ID
==
userId
);
if
(
user
==
null
)
throw
new
PerformanceException
(
"用户信息查询失败"
);
var
userrole
=
_userroleRepository
.
GetEntity
(
t
=>
t
.
UserID
==
userId
);
if
(
userrole
==
null
)
throw
new
PerformanceException
(
"角色信息查询失败"
);
var
role
=
_roleRepository
.
GetEntity
(
t
=>
t
.
ID
==
userrole
.
RoleID
);
return
role
;
}
/// <summary>
/// 查询用户列表
/// </summary>
/// <param name="userID"></param>
...
...
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