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
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
186 additions
and
141 deletions
+186
-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
+154
-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.*;
...
@@ -6,7 +6,6 @@ import com.yd.api.agms.vo.hiring.*;
import
com.yd.api.result.CommonResult
;
import
com.yd.api.result.CommonResult
;
import
com.yd.dal.entity.agms.hiring.*
;
import
com.yd.dal.entity.agms.hiring.*
;
import
com.yd.dal.entity.customer.*
;
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.MdDropOptions
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.practitioner.hiring.HiringApproveRecords
;
import
com.yd.dal.entity.practitioner.hiring.HiringApproveRecords
;
...
@@ -22,10 +21,6 @@ import com.yd.dal.service.practitioner.PractitionerHiringDALService;
...
@@ -22,10 +21,6 @@ import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import
com.yd.dal.service.user.AclUserDALService
;
import
com.yd.dal.service.user.AclUserDALService
;
import
com.yd.rmi.ali.send.service.SendService
;
import
com.yd.rmi.ali.send.service.SendService
;
import
com.yd.rmi.cache.SystemConfigService
;
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.CommonUtil
;
import
com.yd.util.config.ZHBErrorConfig
;
import
com.yd.util.config.ZHBErrorConfig
;
import
com.yd.util.page.PageInfoUtils
;
import
com.yd.util.page.PageInfoUtils
;
...
@@ -73,8 +68,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
...
@@ -73,8 +68,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
private
AclPractitionerPotentialAssignedTrackDALService
aclPractitionerPotentialAssignedTrackDALService
;
private
AclPractitionerPotentialAssignedTrackDALService
aclPractitionerPotentialAssignedTrackDALService
;
@Autowired
@Autowired
private
MdDropOptionsDALService
mdDropOptionsDALService
;
private
MdDropOptionsDALService
mdDropOptionsDALService
;
@Autowired
private
WechatService
wechatService
;
@Autowired
@Autowired
public
void
setAgmsHiringDalService
(
AgmsHiringDALService
agmsHiringDalService
){
public
void
setAgmsHiringDalService
(
AgmsHiringDALService
agmsHiringDalService
){
...
@@ -415,7 +408,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
...
@@ -415,7 +408,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
boolean
flag
=
this
.
isHasNextStep
(
loginPractitionerId
,
mobileNo
,
basicInfoId
,
nextStep
);
boolean
flag
=
this
.
isHasNextStep
(
loginPractitionerId
,
mobileNo
,
basicInfoId
,
nextStep
);
if
(!
flag
)
{
if
(!
flag
)
{
// 发送短信通知及公众号推送通知下一位审批人进行审批
// 发送短信通知及公众号推送通知下一位审批人进行审批
noticeNextStep
(
nextStep
,
basicInfoId
);
agmsHiringDalService
.
noticeNextStep
(
nextStep
,
basicInfoId
);
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
return
;
return
;
...
@@ -425,131 +418,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
...
@@ -425,131 +418,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
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
)
{
private
boolean
isHasNextStep
(
Long
loginPractitionerId
,
String
mobileNo
,
Long
basicInfoId
,
MdPractitionerHiringApproveSteps
nextStep
)
{
// 判断是辅导人和团队长
// 判断是辅导人和团队长
if
(!
CommonUtil
.
isNullOrZero
(
loginPractitionerId
))
{
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.*;
...
@@ -9,9 +9,11 @@ import com.yd.dal.entity.customer.*;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.practitioner.hiring.*
;
import
com.yd.dal.entity.practitioner.hiring.*
;
import
com.yd.dal.mapper.customer.*
;
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.AclFileUploadDALService
;
import
com.yd.dal.service.customer.AclPractitionerDALService
;
import
com.yd.dal.service.customer.AclPractitionerDALService
;
import
com.yd.dal.service.customer.AclPractitionerHiringApproveRecordsDALService
;
import
com.yd.dal.service.customer.AclPractitionerHiringApproveRecordsDALService
;
import
com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService
;
import
com.yd.dal.service.practitioner.PractitionerHiringDALService
;
import
com.yd.dal.service.practitioner.PractitionerHiringDALService
;
import
com.yd.rmi.ali.oss.service.OssService
;
import
com.yd.rmi.ali.oss.service.OssService
;
import
com.yd.rmi.ali.send.service.SendService
;
import
com.yd.rmi.ali.send.service.SendService
;
...
@@ -64,6 +66,10 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
...
@@ -64,6 +66,10 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
private
AclPractitionerPotentialMapper
aclPractitionerPotentialMapper
;
private
AclPractitionerPotentialMapper
aclPractitionerPotentialMapper
;
@Autowired
@Autowired
private
AclFileUploadDALService
aclFileUploadDALService
;
private
AclFileUploadDALService
aclFileUploadDALService
;
@Autowired
private
MdPractitionerHiringApproveStepsDALService
mdPractitionerHiringApproveStepsDalService
;
@Autowired
private
AgmsHiringDALService
agmsHiringDalService
;
private
PractitionerHiringDALService
practitionerHiringDalService
;
private
PractitionerHiringDALService
practitionerHiringDalService
;
private
SystemConfigService
systemConfigService
;
private
SystemConfigService
systemConfigService
;
...
@@ -895,18 +901,34 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
...
@@ -895,18 +901,34 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
try
{
try
{
AclPractitionerHiringBasicInfo
basicInfo
=
new
AclPractitionerHiringBasicInfo
();
AclPractitionerHiringBasicInfo
basicInfo
=
new
AclPractitionerHiringBasicInfo
();
basicInfo
.
setId
(
basicInfoId
);
basicInfo
.
setId
(
basicInfoId
);
AclPractitionerHiringMembership
hiringMemberShip
=
membershipMapper
.
selectByHiringBasicInfoId
(
basicInfoId
);
// 查询辅导人所在S1,S2,S3
AclPractitionerHiringMembership
hiringMemberShip
=
practitionerHiringDalService
.
queryHiringMemberShip
(
basicInfoId
);
if
(
basicInfoId
==
null
||
hiringMemberShip
==
null
)
{
if
(
basicInfoId
==
null
||
hiringMemberShip
==
null
)
{
resp
.
setCommonResult
(
new
CommonResult
(
false
,
"保存失败"
));
resp
.
setCommonResult
(
new
CommonResult
(
false
,
"保存失败"
));
return
resp
;
return
resp
;
}
}
// 计算审批流程
// 计算审批流程
basicInfo
.
setApproveStatus
(
this
.
handleApproveStatus
(
hiringMemberShip
));
String
stepSeq
=
this
.
handleApproveStatus
(
hiringMemberShip
);
basicInfo
.
setApproveStatus
(
stepSeq
);
basicInfoMapper
.
updateByPrimaryKeySelective
(
basicInfo
);
// 将申请人分配给体系负责人
// 将申请人分配给体系负责人
this
.
distributeToSubsystemOwner
(
hiringMemberShip
);
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"
)));
resp
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
...
@@ -995,15 +1017,13 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
...
@@ -995,15 +1017,13 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
return
resp
;
return
resp
;
}
}
private
void
distributeToSubsystemOwner
(
AclPractitionerHiringMembership
m
emberShip
)
{
private
void
distributeToSubsystemOwner
(
AclPractitionerHiringMembership
hiringM
emberShip
)
{
Long
hiringBasicInfoId
=
memberShip
.
getHiringBasicInfoId
();
String
mdDropOptionName
=
m
emberShip
.
getMdDropOptionName
();
String
mdDropOptionName
=
hiringM
emberShip
.
getMdDropOptionName
();
// S2,S3报聘不用团队长审批
// S2,S3报聘不用团队长审批
if
(
mdDropOptionName
.
indexOf
(
"S2"
)>=
0
||
mdDropOptionName
.
indexOf
(
"S3"
)>=
0
)
{
if
(
mdDropOptionName
.
indexOf
(
"S2"
)>=
0
||
mdDropOptionName
.
indexOf
(
"S3"
)>=
0
)
{
return
;
return
;
}
}
// 查询辅导人所在S1,S2,S3
AclPractitionerHiringMembership
hiringMemberShip
=
practitionerHiringDalService
.
queryHiringMemberShip
(
hiringBasicInfoId
);
Long
s1TeamLeaderId
=
hiringMemberShip
.
getS1TeamLeaderId
();
Long
s1TeamLeaderId
=
hiringMemberShip
.
getS1TeamLeaderId
();
Long
s2TeamLeaderId
=
hiringMemberShip
.
getS2TeamLeaderId
();
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;
...
@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import
com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO
;
import
com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO
;
import
com.yd.dal.entity.agms.hiring.*
;
import
com.yd.dal.entity.agms.hiring.*
;
import
com.yd.dal.entity.customer.AclPractitionerHiringMembership
;
import
com.yd.dal.entity.customer.AclPractitionerHiringMembership
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
java.util.List
;
import
java.util.List
;
...
@@ -68,4 +69,6 @@ public interface AgmsHiringDALService {
...
@@ -68,4 +69,6 @@ public interface AgmsHiringDALService {
List
<
PractitionerHiringListInfo
>
queryUnhandledList
(
PractitionerHiringListRequestVO
requestVO
);
List
<
PractitionerHiringListInfo
>
queryUnhandledList
(
PractitionerHiringListRequestVO
requestVO
);
AclPractitionerHiringMembership
queryHiringMemberShip
(
Long
hiringBasicInfoId
);
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
...
@@ -6,21 +6,35 @@ import com.github.pagehelper.PageInfo;
...
@@ -6,21 +6,35 @@ import com.github.pagehelper.PageInfo;
import
com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO
;
import
com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO
;
import
com.yd.dal.entity.agms.hiring.*
;
import
com.yd.dal.entity.agms.hiring.*
;
import
com.yd.dal.entity.customer.AclPractitioner
;
import
com.yd.dal.entity.customer.AclPractitioner
;
import
com.yd.dal.entity.customer.AclPractitionerHiringBasicInfo
;
import
com.yd.dal.entity.customer.AclPractitionerHiringMembership
;
import
com.yd.dal.entity.customer.AclPractitionerHiringMembership
;
import
com.yd.dal.entity.customer.AclPractitionerSubordinateSystem
;
import
com.yd.dal.entity.customer.AclPractitionerSubordinateSystem
;
import
com.yd.dal.entity.customer.practitioner.PractitionerInfo
;
import
com.yd.dal.entity.customer.practitioner.PractitionerSubordinateInfo
;
import
com.yd.dal.entity.customer.practitioner.PractitionerSubordinateInfo
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps
;
import
com.yd.dal.entity.user.AclUser
;
import
com.yd.dal.entity.user.AclUser
;
import
com.yd.dal.mapper.agms.AgmsHiringMapper
;
import
com.yd.dal.mapper.agms.AgmsHiringMapper
;
import
com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper
;
import
com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper
;
import
com.yd.dal.mapper.customer.AclPractitionerMapper
;
import
com.yd.dal.service.agms.AgmsHiringDALService
;
import
com.yd.dal.service.agms.AgmsHiringDALService
;
import
com.yd.dal.service.customer.AclPractitionerDALService
;
import
com.yd.dal.service.customer.AclPractitionerDALService
;
import
com.yd.dal.service.customer.AclPractitionerHiringBasicInfoDALService
;
import
com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService
;
import
com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService
;
import
com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService
;
import
com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService
;
import
com.yd.dal.service.practitioner.PractitionerHiringDALService
;
import
com.yd.dal.service.practitioner.PractitionerHiringDALService
;
import
com.yd.dal.service.user.AclUserDALService
;
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.page.PageInfoUtils
;
import
com.yd.util.page.PageInfoUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -33,6 +47,7 @@ import java.util.stream.Collectors;
...
@@ -33,6 +47,7 @@ import java.util.stream.Collectors;
*/
*/
@Service
(
"agmsHiringDALService"
)
@Service
(
"agmsHiringDALService"
)
public
class
AgmsHiringDALServiceImpl
implements
AgmsHiringDALService
{
public
class
AgmsHiringDALServiceImpl
implements
AgmsHiringDALService
{
private
final
static
Logger
logger
=
LoggerFactory
.
getLogger
(
AgmsHiringDALServiceImpl
.
class
);
private
AgmsHiringMapper
agmsHiringMapper
;
private
AgmsHiringMapper
agmsHiringMapper
;
@Autowired
@Autowired
...
@@ -47,6 +62,16 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
...
@@ -47,6 +62,16 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
private
AclPractitionerHiringMembershipMapper
membershipMapper
;
private
AclPractitionerHiringMembershipMapper
membershipMapper
;
@Autowired
@Autowired
private
AclPractitionerDALService
aclPractitionerDALService
;
private
AclPractitionerDALService
aclPractitionerDALService
;
@Autowired
private
AclPractitionerHiringBasicInfoDALService
aclPractitionerHiringBasicInfoDalService
;
@Autowired
private
AclPractitionerMapper
aclPractitionerMapper
;
@Autowired
private
SystemConfigService
systemConfigService
;
@Autowired
private
WechatService
wechatService
;
@Autowired
private
SendService
sendService
;
@Autowired
@Autowired
public
void
setAgmsHiringMapper
(
AgmsHiringMapper
agmsHiringMapper
){
public
void
setAgmsHiringMapper
(
AgmsHiringMapper
agmsHiringMapper
){
...
@@ -136,6 +161,135 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
...
@@ -136,6 +161,135 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
}
}
@Override
@Override
public
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
(
"mentor"
.
equals
(
nextStep
.
getApproveRole
()))
{
AclPractitioner
aclPractitioner
=
aclPractitionerMapper
.
selectByPrimaryKey
(
hiringMemberShip
.
getMentorPractitionerId
());
mobileNoArray
[
0
]
=
aclPractitioner
.
getMobileNo
();
}
else
if
(
"subsystemOwner"
.
equals
(
nextStep
.
getApproveRole
()))
{
AclPractitioner
aclPractitioner
=
aclPractitionerMapper
.
selectByPrimaryKey
(
hiringMemberShip
.
getApprovedBy
());
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
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
);
}
else
{
logger
.
error
(
"【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息审批人"
);
logger
.
error
(
"【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》"
+
practitionerInfo
.
getName
());
}
}
}
}
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
))
{
mobileNo
=
"18353621360"
;
// 发短信
// ${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
(
"电子报聘审批人电话号码不存在"
);
}
}
}
@Override
public
List
<
PractitionerHiringWorkingExperience
>
findPractitionerHiringWorkingExperienceList
(
Long
hiringBasicInfoId
)
{
public
List
<
PractitionerHiringWorkingExperience
>
findPractitionerHiringWorkingExperienceList
(
Long
hiringBasicInfoId
)
{
return
agmsHiringMapper
.
findPractitionerHiringWorkingExperienceList
(
hiringBasicInfoId
);
return
agmsHiringMapper
.
findPractitionerHiringWorkingExperienceList
(
hiringBasicInfoId
);
}
}
...
...
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