Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-backend
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
AutogeneralShanghai
yd-backend
Commits
add1ea5b
Commit
add1ea5b
authored
Jan 18, 2021
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
AGMS审批人要在ydLife上能审批
parent
bf328037
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
208 additions
and
27 deletions
+208
-27
yd-api/src/main/java/com/yd/api/agms/service/impl/AgmsHiringServiceImpl.java
+75
-15
yd-api/src/main/java/com/yd/api/practitioner/service/impl/PractitionerHiringServiceImpl.java
+1
-0
yd-api/src/main/java/com/yd/dal/mapper/agms/AgmsHiringMapper.java
+1
-1
yd-api/src/main/java/com/yd/dal/service/agms/impl/AgmsHiringDALServiceImpl.java
+2
-1
yd-api/src/main/java/com/yd/dal/service/practitioner/PractitionerHiringDALService.java
+7
-0
yd-api/src/main/java/com/yd/dal/service/practitioner/impl/PractitionerHiringDALServiceImpl.java
+106
-1
yd-api/src/main/java/com/yd/util/CommonUtil.java
+16
-0
yd-api/src/main/resources/mapper/practitioner/PractitionerHiringMapper.xml
+0
-9
No files found.
yd-api/src/main/java/com/yd/api/agms/service/impl/AgmsHiringServiceImpl.java
View file @
add1ea5b
...
...
@@ -8,9 +8,11 @@ import com.yd.dal.entity.agms.hiring.*;
import
com.yd.dal.entity.customer.*
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.user.AclUser
;
import
com.yd.dal.mapper.customer.AclPractitionerHiringBasicInfoMapper
;
import
com.yd.dal.service.agms.AgmsHiringDALService
;
import
com.yd.dal.service.customer.*
;
import
com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService
;
import
com.yd.dal.service.practitioner.PractitionerHiringDALService
;
import
com.yd.dal.service.user.AclUserDALService
;
import
com.yd.rmi.cache.SystemConfigService
;
import
com.yd.util.CommonUtil
;
...
...
@@ -44,6 +46,11 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
private
AclPractitionerSubordinateSystemDALService
aclPractitionerSubordinateSystemDalService
;
private
AclCustomerDALService
aclCustomerDalService
;
@Autowired
private
AclPractitionerHiringBasicInfoMapper
basicInfoMapper
;
@Autowired
private
PractitionerHiringDALService
practitionerHiringDalService
;
@Autowired
public
void
setAgmsHiringDalService
(
AgmsHiringDALService
agmsHiringDalService
){
this
.
agmsHiringDalService
=
agmsHiringDalService
;
}
...
...
@@ -206,20 +213,36 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
String
mobileNo
,
List
<
MdPractitionerHiringApproveSteps
>
hiringApproveStepsList
,
PractitionerHiringApproveRequestVO
requestVO
,
PractitionerHiringApproveResponseVO
responseVO
)
{
BeanPropertyValueEqualsPredicate
predicate
=
new
BeanPropertyValueEqualsPredicate
(
"stepSeq"
,
requestVO
.
getHiringApproveStepsSeq
());
List
<
MdPractitionerHiringApproveSteps
>
steps
=
(
List
<
MdPractitionerHiringApproveSteps
>)
CollectionUtils
.
select
(
hiringApproveStepsList
,
predicate
);
Long
basicInfoId
=
requestVO
.
getHiringBasicInfoId
();
// 先查出当前审批流程
AclPractitionerHiringBasicInfo
basicInfo
=
basicInfoMapper
.
selectByPrimaryKey
(
basicInfoId
);
Integer
hiringApproveStepsSeq
;
if
(
basicInfo
==
null
)
{
responseVO
.
setHiringBasicInfoId
(
requestVO
.
getHiringBasicInfoId
());
responseVO
.
setCommonResult
(
new
CommonResult
(
false
,
ZHBErrorConfig
.
getErrorInfo
(
"830025"
)));
return
;
}
else
{
// 获取下一步的序号
hiringApproveStepsSeq
=
this
.
getNextStepSeq
(
basicInfo
.
getApproveStatus
());
}
BeanPropertyValueEqualsPredicate
predicate
=
new
BeanPropertyValueEqualsPredicate
(
"stepSeq"
,
hiringApproveStepsSeq
);
List
<
MdPractitionerHiringApproveSteps
>
steps
=
(
List
<
MdPractitionerHiringApproveSteps
>)
CollectionUtils
.
select
(
hiringApproveStepsList
,
predicate
);
System
.
out
.
println
(
"看看审批操作中处理后的步骤是不是每次都只有一个"
);
System
.
out
.
println
(
steps
);
if
(
steps
.
size
()
!=
1
){
if
(
steps
.
size
()
!=
1
)
{
responseVO
.
setHiringBasicInfoId
(
requestVO
.
getHiringBasicInfoId
());
responseVO
.
setCommonResult
(
new
CommonResult
(
false
,
ZHBErrorConfig
.
getErrorInfo
(
"830025"
)));
return
;
}
AclPractitionerHiringApproveRecords
records
=
new
AclPractitionerHiringApproveRecords
();
MdPractitionerHiringApproveSteps
step
=
steps
.
get
(
0
);
records
.
setHiringBasicInfoId
(
requestVO
.
getHiringBasicInfoId
()
);
records
.
setHiringBasicInfoId
(
basicInfoId
);
records
.
setApproveStepId
(
step
.
getId
().
toString
());
records
.
setApproveStepName
(
step
.
getStepName
());
records
.
setApprovingPractitionerId
(
loginPractitionerId
);
...
...
@@ -231,7 +254,13 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
records
.
setUpdatedAt
(
new
Date
());
records
.
setUpdatedBy
(
loginPractitionerId
);
aclPractitionerHiringApproveRecordsDalService
.
save
(
records
);
if
(
CommonUtil
.
isNullOrZero
(
requestVO
.
getApprovingStatus
())){
// 更新basicInfo表审批状态
AclPractitionerHiringBasicInfo
updateObj
=
new
AclPractitionerHiringBasicInfo
();
updateObj
.
setId
(
basicInfoId
);
updateObj
.
setApproveStatus
(
step
.
getStepSeq
().
toString
());
basicInfoMapper
.
updateByPrimaryKeySelective
(
updateObj
);
if
(
CommonUtil
.
isNullOrZero
(
requestVO
.
getApprovingStatus
()))
{
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
return
;
}
...
...
@@ -240,32 +269,63 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
MdPractitionerHiringApproveSteps
lastStep
=
hiringApproveStepsList
.
get
(
hiringApproveStepsList
.
size
()
-
1
);
Long
lastStepId
=
lastStep
.
getId
();
//这是最后一个步骤
if
(
id
.
equals
(
lastStepId
)){
if
(
id
.
equals
(
lastStepId
))
{
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
return
;
}
//下一个步骤
MdPractitionerHiringApproveSteps
nextSt
o
p
=
new
MdPractitionerHiringApproveSteps
();
for
(
int
i
=
0
;
i
<
hiringApproveStepsList
.
size
();
i
++)
{
MdPractitionerHiringApproveSteps
nextSt
e
p
=
new
MdPractitionerHiringApproveSteps
();
for
(
int
i
=
0
;
i
<
hiringApproveStepsList
.
size
();
i
++)
{
MdPractitionerHiringApproveSteps
stop
=
hiringApproveStepsList
.
get
(
i
);
Long
stopId
=
stop
.
getId
();
if
(
id
.
equals
(
stopId
)){
nextSt
op
=
hiringApproveStepsList
.
get
(
i
+
1
);
if
(
id
.
equals
(
stopId
))
{
nextSt
ep
=
hiringApproveStepsList
.
get
(
i
+
1
);
break
;
}
}
String
appointedApprovePractitioners
=
nextStop
.
getAppointedApprovePractitioners
();
List
<
String
>
hiringApproveMobileNos
=
new
ArrayList
<>(
Arrays
.
asList
(
appointedApprovePractitioners
.
split
(
","
)));
//不是他
if
(!
hiringApproveMobileNos
.
contains
(
mobileNo
))
{
boolean
flag
=
this
.
isHasNextStep
(
loginPractitionerId
,
mobileNo
,
nextStep
);
if
(!
flag
)
{
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
return
;
}
requestVO
.
setHiringApproveStepsSeq
(
nextSt
o
p
.
getStepSeq
());
saveRecords
(
loginPractitionerId
,
mobileNo
,
hiringApproveStepsList
,
requestVO
,
responseVO
);
requestVO
.
setHiringApproveStepsSeq
(
nextSt
e
p
.
getStepSeq
());
saveRecords
(
loginPractitionerId
,
mobileNo
,
hiringApproveStepsList
,
requestVO
,
responseVO
);
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
}
private
Integer
getNextStepSeq
(
String
approveStatus
)
{
switch
(
approveStatus
)
{
case
"-2"
:
return
Integer
.
valueOf
(
"1"
);
case
"1"
:
return
Integer
.
valueOf
(
"2"
);
case
"2"
:
return
Integer
.
valueOf
(
"3"
);
case
"3"
:
return
Integer
.
valueOf
(
"4"
);
case
"4"
:
return
Integer
.
valueOf
(
"5"
);
}
return
null
;
}
private
boolean
isHasNextStep
(
Long
loginPractitionerId
,
String
mobileNo
,
MdPractitionerHiringApproveSteps
nextStep
)
{
// 先判断是否是AGMS中审批的人员
String
appointedApprovePractitioners
=
nextStep
.
getAppointedApprovePractitioners
();
List
<
String
>
hiringApproveMobileNos
=
new
ArrayList
<>(
Arrays
.
asList
(
appointedApprovePractitioners
.
split
(
","
)));
if
(
hiringApproveMobileNos
.
contains
(
mobileNo
))
{
return
true
;
}
// 不是AGMS审批人;只有既是辅导人又是团队长才有下一步
int
approvalIdentity
=
practitionerHiringDalService
.
queryApprovalIdentity
(
loginPractitionerId
);
if
(
approvalIdentity
==
0
)
{
return
true
;
}
return
false
;
}
private
void
updatePractitionerInfo
(
Long
hiringBasicInfoId
,
Long
loginId
)
{
//更新经纪人系类表
//ag_acl_practitioner
...
...
yd-api/src/main/java/com/yd/api/practitioner/service/impl/PractitionerHiringServiceImpl.java
View file @
add1ea5b
...
...
@@ -9,6 +9,7 @@ import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps;
import
com.yd.dal.entity.practitioner.hiring.*
;
import
com.yd.dal.mapper.customer.*
;
import
com.yd.dal.service.customer.AclPractitionerHiringApproveRecordsDALService
;
import
com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService
;
import
com.yd.dal.service.practitioner.PractitionerHiringDALService
;
import
com.yd.rmi.ali.oss.service.OssService
;
import
com.yd.rmi.cache.SystemConfigService
;
...
...
yd-api/src/main/java/com/yd/dal/mapper/agms/AgmsHiringMapper.java
View file @
add1ea5b
...
...
@@ -70,7 +70,7 @@ public interface AgmsHiringMapper {
@Param
(
"name"
)
Long
name
);
Page
<
PractitionerHiringListInfo
>
queryUnhandledList
(
@Param
(
"approveStatus"
)
Integer
approveStatus
,
Page
<
PractitionerHiringListInfo
>
queryUnhandledList
(
@Param
(
"approveStatus"
)
String
approveStatus
,
@Param
(
"list"
)
List
<
String
>
canAprroveGrades
,
@Param
(
"branchId"
)
Long
branchId
,
@Param
(
"deptId"
)
Long
deptId
,
...
...
yd-api/src/main/java/com/yd/dal/service/agms/impl/AgmsHiringDALServiceImpl.java
View file @
add1ea5b
...
...
@@ -122,8 +122,9 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
List
<
String
>
canAprroveGrades
=
new
ArrayList
<>();
canAprroveGrades
.
addAll
(
Arrays
.
asList
(
canAprroveGrade
.
split
(
","
)));
String
approveStatus
=
CommonUtil
.
getApproveStatusByStepSeq
(
stepSeq
);
List
<
PractitionerHiringListInfo
>
resultList
=
agmsHiringMapper
.
queryUnhandledList
(
stepSeq
-
1
,
canAprroveGrades
,
agmsHiringMapper
.
queryUnhandledList
(
approveStatus
,
canAprroveGrades
,
requestVO
.
getBranchId
(),
requestVO
.
getDeptId
(),
requestVO
.
getSubsystemId
(),
...
...
yd-api/src/main/java/com/yd/dal/service/practitioner/PractitionerHiringDALService.java
View file @
add1ea5b
...
...
@@ -87,4 +87,11 @@ public interface PractitionerHiringDALService {
* @return
*/
List
<
HiringListInfo
>
queryUnhandledList
(
Long
practitionerId
);
/**
* 查询审批身份 0.既是辅导人又是团队长 1.辅导人 2.团队长
* @param practitionerId
* @return
*/
int
queryApprovalIdentity
(
Long
practitionerId
);
}
yd-api/src/main/java/com/yd/dal/service/practitioner/impl/PractitionerHiringDALServiceImpl.java
View file @
add1ea5b
package
com
.
yd
.
dal
.
service
.
practitioner
.
impl
;
import
com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms
;
import
com.yd.dal.entity.agms.hiring.PractitionerHiringListInfo
;
import
com.yd.dal.entity.customer.AclPractitioner
;
import
com.yd.dal.entity.customer.CustomerFileUpload
;
import
com.yd.dal.entity.customer.practitioner.PractitionerInfo
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.practitioner.hiring.*
;
import
com.yd.dal.mapper.agms.AgmsHiringMapper
;
import
com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper
;
import
com.yd.dal.mapper.customer.AclPractitionerMapper
;
import
com.yd.dal.mapper.practitioner.PractitionerHiringMapper
;
import
com.yd.dal.service.customer.AclFileUploadDALService
;
import
com.yd.dal.service.customer.AclPractitionerDALService
;
import
com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService
;
import
com.yd.dal.service.practitioner.PractitionerHiringDALService
;
import
com.yd.util.CommonUtil
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author xxy
...
...
@@ -29,6 +41,12 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
private
AclFileUploadDALService
aclFileUploadDALService
;
@Autowired
private
AclPractitionerHiringMembershipMapper
membershipMapper
;
@Autowired
private
MdPractitionerHiringApproveStepsDALService
mdPractitionerHiringApproveStepsDalService
;
@Autowired
private
AclPractitionerMapper
aclPractitionerMapper
;
@Autowired
private
AgmsHiringMapper
agmsHiringMapper
;
@Override
public
List
<
HiringListInfo
>
findHiringList
(
Long
practitionerId
,
Long
approvingStatus
)
{
...
...
@@ -91,8 +109,51 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
return
practitionerHiringMapper
.
queryHandledList
(
practitionerId
,
approvingStatus
);
}
/**
* 需求需要AGMS用户也能在ydLife中审批,
* 所以在响应报文一致的情况下,需要合并两个查询接口的结果集
*/
@Override
public
List
<
HiringListInfo
>
queryUnhandledList
(
Long
practitionerId
)
{
List
<
HiringListInfo
>
resultList
=
new
ArrayList
<>();
AclPractitioner
practitioner
=
aclPractitionerMapper
.
selectByPrimaryKey
(
practitionerId
);
// AGMS接口查询逻辑的数据
List
<
HiringListInfo
>
agmsDataList
=
this
.
queryAGMSHiringinfoList
(
practitioner
.
getMobileNo
());
System
.
out
.
println
(
"------------------------------AGMS接口查询逻辑的数据--------------------------"
);
System
.
out
.
println
(
agmsDataList
);
List
<
HiringListInfo
>
ydLifeDataList
=
this
.
queryYdLifeHiringinfoList
(
practitionerId
);
System
.
out
.
println
(
"-----------------------------ydLife接口查询逻辑的数据-------------------------"
);
System
.
out
.
println
(
ydLifeDataList
);
resultList
.
addAll
(
agmsDataList
);
resultList
.
addAll
(
ydLifeDataList
);
resultList
=
this
.
unrepeatedObjList
(
ydLifeDataList
);
System
.
out
.
println
(
"去重后的数据"
);
System
.
out
.
println
(
resultList
);
return
resultList
;
}
private
List
<
HiringListInfo
>
unrepeatedObjList
(
List
<
HiringListInfo
>
list
)
{
List
<
Long
>
names
=
new
ArrayList
<>();
//用来临时存储元素的id
List
<
HiringListInfo
>
resultList
=
list
.
stream
().
filter
(
// 过滤去重
v
->
{
boolean
flag
=
!
names
.
contains
(
v
.
getHiringBasicInfoId
());
names
.
add
(
v
.
getHiringBasicInfoId
());
return
flag
;
}
).
collect
(
Collectors
.
toList
());
return
resultList
;
}
private
List
<
HiringListInfo
>
queryYdLifeHiringinfoList
(
Long
practitionerId
)
{
// 查询审批身份 0.既是辅导人又是团队长 1.辅导人 2.团队长
int
approvalIdentity
=
this
.
queryApprovalIdentity
(
practitionerId
);
...
...
@@ -110,7 +171,51 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
return
resultList
;
}
private
int
queryApprovalIdentity
(
Long
practitionerId
)
{
private
List
<
HiringListInfo
>
queryAGMSHiringinfoList
(
String
practitionerMobileNo
)
{
// 结果集
List
<
PractitionerHiringListInfo
>
dataList
=
new
ArrayList
<>();
List
<
MdPractitionerHiringApproveSteps
>
ownSteps
=
mdPractitionerHiringApproveStepsDalService
.
findByAppointedApprovePractitioners
(
practitionerMobileNo
);
// 根据当前用户拥有的审批步骤查询每一步能够审批的数据
String
stepName
;
Integer
stepSeq
;
String
canAprroveGrade
;
for
(
MdPractitionerHiringApproveSteps
step
:
ownSteps
)
{
stepName
=
step
.
getStepName
();
stepSeq
=
step
.
getStepSeq
();
canAprroveGrade
=
step
.
getCanAprroveGrade
();
List
<
String
>
canAprroveGrades
=
new
ArrayList
<>();
canAprroveGrades
.
addAll
(
Arrays
.
asList
(
canAprroveGrade
.
split
(
","
)));
String
approveStatus
=
CommonUtil
.
getApproveStatusByStepSeq
(
stepSeq
);
List
<
PractitionerHiringListInfo
>
resultList
=
agmsHiringMapper
.
queryUnhandledList
(
approveStatus
,
canAprroveGrades
,
null
,
null
,
null
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
resultList
))
{
dataList
.
addAll
(
resultList
);
}
if
(
"公司老板"
.
equals
(
stepName
))
{
List
<
PractitionerHiringListInfo
>
s2List
=
agmsHiringMapper
.
queryS2List
();
dataList
.
addAll
(
s2List
);
}
}
List
<
HiringListInfo
>
list
=
new
ArrayList
<>();
for
(
PractitionerHiringListInfo
item
:
dataList
)
{
HiringListInfo
hiringInfo
=
new
HiringListInfo
();
BeanUtils
.
copyProperties
(
hiringInfo
,
item
);
list
.
add
(
hiringInfo
);
}
return
list
;
}
@Override
public
int
queryApprovalIdentity
(
Long
practitionerId
)
{
// 审批身份 0.既是辅导人又是团队长 1.辅导人 2.团队长
int
isMentor
=
membershipMapper
.
isMentor
(
practitionerId
);
int
isSystemOwner
=
membershipMapper
.
isSystemOwner
(
practitionerId
);
...
...
yd-api/src/main/java/com/yd/util/CommonUtil.java
View file @
add1ea5b
...
...
@@ -1503,4 +1503,20 @@ public class CommonUtil {
return
sumDay
;
}
public
static
String
getApproveStatusByStepSeq
(
Integer
stepSeq
){
switch
(
stepSeq
)
{
case
1
:
return
"-2"
;
case
2
:
return
"1"
;
case
3
:
return
"2"
;
case
4
:
return
"3"
;
case
5
:
return
"4"
;
}
return
null
;
}
}
yd-api/src/main/resources/mapper/practitioner/PractitionerHiringMapper.xml
View file @
add1ea5b
...
...
@@ -211,15 +211,6 @@
where t.approving_practitioner_id = #{practitionerId,jdbcType=BIGINT}
and t.approving_status = #{approvingStatus,jdbcType=BIGINT}
)
and (m.mentor_practitioner_id = #{practitionerId,jdbcType=BIGINT} or
m.subsystem_owner_id = #{practitionerId,jdbcType=BIGINT})
and m.md_drop_option_id != (select id
from ag_md_drop_options
where drop_option_code = 'S2'
and drop_master_id = (select id
from ag_md_drop_master
where scenario_code = 'practitioner_level'))
</select>
<select
id=
"queryMentorUnhandledList"
resultMap=
"HiringListInfo"
>
...
...
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