Commit 0270963e by jianan

报聘提醒辅导人审批问题修复

parent 4cf0f8d5
...@@ -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)) {
......
...@@ -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 memberShip) { private void distributeToSubsystemOwner(AclPractitionerHiringMembership hiringMemberShip) {
Long hiringBasicInfoId = memberShip.getHiringBasicInfoId();
String mdDropOptionName = memberShip.getMdDropOptionName(); String mdDropOptionName = hiringMemberShip.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();
......
...@@ -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);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment