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
0270963e
Commit
0270963e
authored
Jun 20, 2022
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
报聘提醒辅导人审批问题修复
parent
4cf0f8d5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
141 deletions
+32
-141
yd-api/src/main/java/com/yd/api/agms/service/impl/AgmsHiringServiceImpl.java
+1
-133
yd-api/src/main/java/com/yd/api/practitioner/service/impl/PractitionerHiringServiceImpl.java
+28
-8
yd-api/src/main/java/com/yd/dal/service/agms/AgmsHiringDALService.java
+3
-0
yd-api/src/main/java/com/yd/dal/service/agms/impl/AgmsHiringDALServiceImpl.java
+0
-0
No files found.
yd-api/src/main/java/com/yd/api/agms/service/impl/AgmsHiringServiceImpl.java
View file @
0270963e
...
...
@@ -6,7 +6,6 @@ import com.yd.api.agms.vo.hiring.*;
import
com.yd.api.result.CommonResult
;
import
com.yd.dal.entity.agms.hiring.*
;
import
com.yd.dal.entity.customer.*
;
import
com.yd.dal.entity.customer.practitioner.PractitionerInfo
;
import
com.yd.dal.entity.meta.MdDropOptions
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.practitioner.hiring.HiringApproveRecords
;
...
...
@@ -22,10 +21,6 @@ import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import
com.yd.dal.service.user.AclUserDALService
;
import
com.yd.rmi.ali.send.service.SendService
;
import
com.yd.rmi.cache.SystemConfigService
;
import
com.yd.rmi.tencent.wechat.service.WechatService
;
import
com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.DataDetailInfo
;
import
com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.SendTemplateRequest
;
import
com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.TemplateDataInfo
;
import
com.yd.util.CommonUtil
;
import
com.yd.util.config.ZHBErrorConfig
;
import
com.yd.util.page.PageInfoUtils
;
...
...
@@ -73,8 +68,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
private
AclPractitionerPotentialAssignedTrackDALService
aclPractitionerPotentialAssignedTrackDALService
;
@Autowired
private
MdDropOptionsDALService
mdDropOptionsDALService
;
@Autowired
private
WechatService
wechatService
;
@Autowired
public
void
setAgmsHiringDalService
(
AgmsHiringDALService
agmsHiringDalService
){
...
...
@@ -415,7 +408,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
boolean
flag
=
this
.
isHasNextStep
(
loginPractitionerId
,
mobileNo
,
basicInfoId
,
nextStep
);
if
(!
flag
)
{
// 发送短信通知及公众号推送通知下一位审批人进行审批
noticeNextStep
(
nextStep
,
basicInfoId
);
agmsHiringDalService
.
noticeNextStep
(
nextStep
,
basicInfoId
);
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
return
;
...
...
@@ -425,131 +418,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
}
private
void
noticeNextStep
(
MdPractitionerHiringApproveSteps
nextStep
,
Long
basicInfoId
)
{
AclPractitionerHiringBasicInfo
basicInfo
=
aclPractitionerHiringBasicInfoDalService
.
findById
(
basicInfoId
);
// 查询辅导人所在S1,S2,S3
AclPractitionerHiringMembership
hiringMemberShip
=
practitionerHiringDalService
.
queryHiringMemberShip
(
basicInfoId
);
// 1.获取下一步审批人的手机号
String
[]
mobileNoArray
=
new
String
[
1
];
// 1.1 如果是体系负责人
if
(
StringUtils
.
isNotEmpty
(
nextStep
.
getApproveRole
()))
{
Long
practitionerId
=
hiringMemberShip
.
getApprovedBy
();
AclPractitioner
aclPractitioner
=
aclPractitionerMapper
.
selectByPrimaryKey
(
practitionerId
);
mobileNoArray
[
0
]
=
aclPractitioner
.
getMobileNo
();
}
else
{
// 1.2 团队长之后的环节, 可能会有多个审批人
mobileNoArray
=
nextStep
.
getAppointedApprovePractitioners
().
split
(
","
);
}
// 1.3 查询审批人列表
List
<
PractitionerInfo
>
practitionerList
=
aclPractitionerDalService
.
findPractitionerInfoByMobileList
(
Arrays
.
asList
(
mobileNoArray
));
// 2.报聘人组织关系, 姓名
StringBuilder
name2
=
new
StringBuilder
();
String
s3SubordinateSystemName
=
hiringMemberShip
.
getS3SubordinateSystemName
();
String
s2SubordinateSystemName
=
hiringMemberShip
.
getS2SubordinateSystemName
();
String
s1SubordinateSystemName
=
hiringMemberShip
.
getS1SubordinateSystemName
();
boolean
flag
=
false
;
if
(
StringUtils
.
isNotEmpty
(
s3SubordinateSystemName
))
{
name2
.
append
(
s3SubordinateSystemName
);
if
(
s3SubordinateSystemName
.
indexOf
(
"纵队"
)
<
0
)
{
name2
.
append
(
"纵队"
);
}
flag
=
true
;
}
if
(
StringUtils
.
isNotEmpty
(
s2SubordinateSystemName
))
{
name2
.
append
(
s2SubordinateSystemName
);
if
(
s2SubordinateSystemName
.
indexOf
(
"体系"
)
<
0
)
{
name2
.
append
(
"体系"
);
}
flag
=
true
;
}
if
(
StringUtils
.
isNotEmpty
(
s1SubordinateSystemName
))
{
name2
.
append
(
s1SubordinateSystemName
);
if
(
s1SubordinateSystemName
.
indexOf
(
"分部"
)
<
0
)
{
name2
.
append
(
"分部"
);
}
flag
=
true
;
}
if
(
flag
)
{
name2
.
append
(
"的"
);
}
name2
.
append
(
basicInfo
.
getName
());
// 发送短信通知下一位审批人进行审批
this
.
noticeSendSMS
(
name2
.
toString
(),
practitionerList
,
basicInfo
);
// 公众号推送通知下一位审批人进行审批
this
.
noticeSendWeChatMsg
(
name2
.
toString
(),
practitionerList
,
basicInfo
);
}
private
void
noticeSendWeChatMsg
(
String
hiringName
,
List
<
PractitionerInfo
>
practitionerList
,
AclPractitionerHiringBasicInfo
basicInfo
)
{
// 读取数据库配置
String
templateId
=
systemConfigService
.
getSingleConfigValue
(
"TENCENT_WECHAT_TEMPLATE_ID_HIRING"
);
String
jumpUrl
=
systemConfigService
.
getSingleConfigValue
(
"hiringApprove_page_url"
);
// String templateId = "4_GL7QFaFxucU4K35-2dy6RcjuPE6eQjJyf_2BKddx4";
// String jumpUrl = "https://mdev.zuihuibi.cn/ydLife/login";
String
firstValue
=
systemConfigService
.
getSingleConfigValue
(
"TENCENT_WECHAT_TEMPLATE_FIRST_HIRING"
);
String
remarkValue
=
systemConfigService
.
getSingleConfigValue
(
"TENCENT_WECHAT_TEMPLATE_REMARK_HIRING"
);
String
color
=
systemConfigService
.
getSingleConfigValue
(
"TENCENT_WECHAT_TEMPLATE_COLOR_XB"
);
// 组装模板数据
TemplateDataInfo
dataInfo
=
new
TemplateDataInfo
();
DataDetailInfo
first
=
new
DataDetailInfo
();
DataDetailInfo
keyword1
=
new
DataDetailInfo
(
"待审批"
,
color
);
DataDetailInfo
keyword2
=
new
DataDetailInfo
(
CommonUtil
.
dateParseString
(
basicInfo
.
getCreatedAt
(),
"yyyy-MM-dd HH:mm:ss"
),
null
);
DataDetailInfo
remark
=
new
DataDetailInfo
(
remarkValue
,
null
);
dataInfo
.
setFirst
(
first
);
dataInfo
.
setKeyword1
(
keyword1
);
dataInfo
.
setKeyword2
(
keyword2
);
dataInfo
.
setRemark
(
remark
);
// 调微信接口
if
(
StringUtils
.
isNotBlank
(
templateId
))
{
SendTemplateRequest
sendTemplateRequest
=
new
SendTemplateRequest
();
sendTemplateRequest
.
setTemplateId
(
templateId
);
sendTemplateRequest
.
setData
(
dataInfo
);
sendTemplateRequest
.
setUrl
(
jumpUrl
);
for
(
PractitionerInfo
practitionerInfo
:
practitionerList
)
{
// openId不为null, 执行
if
(
StringUtils
.
isNotBlank
(
practitionerInfo
.
getYdWechatOpenid
()))
{
sendTemplateRequest
.
setToUser
(
practitionerInfo
.
getYdWechatOpenid
());
// 审批人姓名
first
.
setValue
(
firstValue
.
replace
(
"name"
,
practitionerInfo
.
getName
()).
replace
(
"hiringName"
,
hiringName
));
logger
.
error
(
"【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息审批人"
);
logger
.
error
(
"【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》"
+
practitionerInfo
.
getName
());
// 微信通知
wechatService
.
sendTemplateMessage
(
sendTemplateRequest
);
}
}
}
}
private
void
noticeSendSMS
(
String
hiringName
,
List
<
PractitionerInfo
>
practitionerList
,
AclPractitionerHiringBasicInfo
basicInfo
)
{
// 审批人姓名, 手机号
String
name
;
String
mobileNo
;
for
(
PractitionerInfo
practitionerInfo
:
practitionerList
)
{
name
=
practitionerInfo
.
getName
();
mobileNo
=
practitionerInfo
.
getMobileNo
();
if
(
StringUtils
.
isNotBlank
(
mobileNo
))
{
// 发短信
// ${name},您好!${name2}(S3纵队S2体系S1分部的XX)经纪人已提交报聘审批,请至“赢家平台>我的团队-报聘审批”进行查看审批,谢谢!
String
templateCode
=
systemConfigService
.
getSingleConfigValue
(
"ALI_SMS_HiringApproveNotice"
);
String
content
=
"{\"name\":\""
+
name
+
"\",\"hiringName\":\""
+
hiringName
+
"\"}"
;
sendService
.
sendEmailOrSMS
(
"sms"
,
mobileNo
,
"0"
,
content
,
templateCode
,
null
,
null
,
"电子报聘审批通知"
,
99
,
basicInfo
.
getId
());
}
else
{
logger
.
error
(
"【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》电子报聘审批人电话号码不存在"
);
throw
new
RuntimeException
(
"电子报聘审批人电话号码不存在"
);
}
}
}
private
boolean
isHasNextStep
(
Long
loginPractitionerId
,
String
mobileNo
,
Long
basicInfoId
,
MdPractitionerHiringApproveSteps
nextStep
)
{
// 判断是辅导人和团队长
if
(!
CommonUtil
.
isNullOrZero
(
loginPractitionerId
))
{
...
...
yd-api/src/main/java/com/yd/api/practitioner/service/impl/PractitionerHiringServiceImpl.java
View file @
0270963e
...
...
@@ -9,9 +9,11 @@ import com.yd.dal.entity.customer.*;
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.agms.AgmsHiringDALService
;
import
com.yd.dal.service.customer.AclFileUploadDALService
;
import
com.yd.dal.service.customer.AclPractitionerDALService
;
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.ali.send.service.SendService
;
...
...
@@ -64,6 +66,10 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
private
AclPractitionerPotentialMapper
aclPractitionerPotentialMapper
;
@Autowired
private
AclFileUploadDALService
aclFileUploadDALService
;
@Autowired
private
MdPractitionerHiringApproveStepsDALService
mdPractitionerHiringApproveStepsDalService
;
@Autowired
private
AgmsHiringDALService
agmsHiringDalService
;
private
PractitionerHiringDALService
practitionerHiringDalService
;
private
SystemConfigService
systemConfigService
;
...
...
@@ -895,18 +901,34 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
try
{
AclPractitionerHiringBasicInfo
basicInfo
=
new
AclPractitionerHiringBasicInfo
();
basicInfo
.
setId
(
basicInfoId
);
AclPractitionerHiringMembership
hiringMemberShip
=
membershipMapper
.
selectByHiringBasicInfoId
(
basicInfoId
);
// 查询辅导人所在S1,S2,S3
AclPractitionerHiringMembership
hiringMemberShip
=
practitionerHiringDalService
.
queryHiringMemberShip
(
basicInfoId
);
if
(
basicInfoId
==
null
||
hiringMemberShip
==
null
)
{
resp
.
setCommonResult
(
new
CommonResult
(
false
,
"保存失败"
));
return
resp
;
}
// 计算审批流程
basicInfo
.
setApproveStatus
(
this
.
handleApproveStatus
(
hiringMemberShip
));
String
stepSeq
=
this
.
handleApproveStatus
(
hiringMemberShip
);
basicInfo
.
setApproveStatus
(
stepSeq
);
basicInfoMapper
.
updateByPrimaryKeySelective
(
basicInfo
);
// 将申请人分配给体系负责人
this
.
distributeToSubsystemOwner
(
hiringMemberShip
);
basicInfoMapper
.
updateByPrimaryKeySelective
(
basicInfo
);
// 发短信及微信推送下一步审批人
String
nextStepSeq
=
"2"
.
equals
(
stepSeq
)
?
"3"
:
"1"
;
// 查询下一步审批
List
<
MdPractitionerHiringApproveSteps
>
approveStepsList
=
mdPractitionerHiringApproveStepsDalService
.
findAll
();
MdPractitionerHiringApproveSteps
nextStep
=
null
;
for
(
MdPractitionerHiringApproveSteps
item
:
approveStepsList
)
{
if
(
nextStepSeq
.
equals
(
item
.
getStepSeq
()))
{
nextStep
=
item
;
break
;
}
}
if
(
nextStep
!=
null
)
{
agmsHiringDalService
.
noticeNextStep
(
nextStep
,
basicInfoId
);
}
resp
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
...
...
@@ -995,15 +1017,13 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
return
resp
;
}
private
void
distributeToSubsystemOwner
(
AclPractitionerHiringMembership
m
emberShip
)
{
Long
hiringBasicInfoId
=
memberShip
.
getHiringBasicInfoId
();
String
mdDropOptionName
=
m
emberShip
.
getMdDropOptionName
();
private
void
distributeToSubsystemOwner
(
AclPractitionerHiringMembership
hiringM
emberShip
)
{
String
mdDropOptionName
=
hiringM
emberShip
.
getMdDropOptionName
();
// S2,S3报聘不用团队长审批
if
(
mdDropOptionName
.
indexOf
(
"S2"
)>=
0
||
mdDropOptionName
.
indexOf
(
"S3"
)>=
0
)
{
return
;
}
// 查询辅导人所在S1,S2,S3
AclPractitionerHiringMembership
hiringMemberShip
=
practitionerHiringDalService
.
queryHiringMemberShip
(
hiringBasicInfoId
);
Long
s1TeamLeaderId
=
hiringMemberShip
.
getS1TeamLeaderId
();
Long
s2TeamLeaderId
=
hiringMemberShip
.
getS2TeamLeaderId
();
...
...
yd-api/src/main/java/com/yd/dal/service/agms/AgmsHiringDALService.java
View file @
0270963e
...
...
@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import
com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO
;
import
com.yd.dal.entity.agms.hiring.*
;
import
com.yd.dal.entity.customer.AclPractitionerHiringMembership
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
java.util.List
;
...
...
@@ -68,4 +69,6 @@ public interface AgmsHiringDALService {
List
<
PractitionerHiringListInfo
>
queryUnhandledList
(
PractitionerHiringListRequestVO
requestVO
);
AclPractitionerHiringMembership
queryHiringMemberShip
(
Long
hiringBasicInfoId
);
void
noticeNextStep
(
MdPractitionerHiringApproveSteps
nextStep
,
Long
basicInfoId
);
}
yd-api/src/main/java/com/yd/dal/service/agms/impl/AgmsHiringDALServiceImpl.java
View file @
0270963e
This diff is collapsed.
Click to expand it.
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