Commit d1ef92cc by jianan

电子报聘回退优化2

parent 1f38a5fb
...@@ -7,6 +7,7 @@ import com.yd.api.result.CommonResult; ...@@ -7,6 +7,7 @@ import com.yd.api.result.CommonResult;
import com.yd.api.result.CommonResultResponseVO; import com.yd.api.result.CommonResultResponseVO;
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;
...@@ -524,7 +525,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -524,7 +525,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
if (CommonUtil.isNullOrZero(requestVO.getApprovingStatus())) { if (CommonUtil.isNullOrZero(requestVO.getApprovingStatus())) {
// 审批回退, 将指定审批记录设置"回退"状态 // 审批回退, 将指定审批记录设置"回退"状态
this.setRecordsRollBack(stepsSeqBackTo, step.getStepSeq(), basicInfoId); this.setRecordsRollBack(stepsSeqBackTo, step.getStepSeq(), requestVO.getRejectNote(), basicInfoId);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return; return;
...@@ -565,62 +566,79 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -565,62 +566,79 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} }
private void setRecordsRollBack(String stepsSeqBackTo, Integer stepSeq, Long basicInfoId) { private void setRecordsRollBack(String stepsSeqBackTo, Integer stepSeq, String rejectNote, Long basicInfoId) {
List<AclPractitionerHiringApproveRecords> recordsList = aclPractitionerHiringApproveRecordsDalService.queryListByBasicInfoId(basicInfoId);
int stepSeqStart; int stepSeqStart;
switch (stepsSeqBackTo) { switch (stepsSeqBackTo) {
case "-2" : case "-2":
stepSeqStart = 1; stepSeqStart = 1;
break; break;
case "1" : case "1":
stepSeqStart = 2; stepSeqStart = 2;
break; break;
case "2" : case "2":
stepSeqStart = 3; stepSeqStart = 3;
break; break;
case "3" : case "3":
stepSeqStart = 4; stepSeqStart = 4;
break; break;
case "4" : case "4":
stepSeqStart = 5; stepSeqStart = 5;
break; break;
default: default:
stepSeqStart = 1; stepSeqStart = 1;
break; break;
} }
List<AclPractitionerHiringApproveRecords> records = recordsList.stream() // 查询审批记录
.filter((AclPractitionerHiringApproveRecords i) -> (Integer.valueOf(i.getStepSeq()) >= stepSeqStart && Integer.valueOf(i.getStepSeq()) < stepSeq) List<AclPractitionerHiringApproveRecords> recordsList = aclPractitionerHiringApproveRecordsDalService.queryListByBasicInfoId(basicInfoId);
// 筛选需要提醒的经纪人id
List<Long> practitionerIds = recordsList.stream()
.filter(i -> (Integer.valueOf(i.getStepSeq()) >= stepSeqStart && Integer.valueOf(i.getStepSeq()) < stepSeq)
) )
.map(i -> i.getApprovingPractitionerId())
.collect(Collectors.toList()); .collect(Collectors.toList());
List<Long> practitionerIds = new ArrayList<>(); List<PractitionerInfo> practitionerList = aclPractitionerDalService.findPractitionerInfoByIdList(practitionerIds);
for (AclPractitionerHiringApproveRecords record : records) { // 回退提醒发消息(短信和微信推送)
record.setIsBack(1); this.approveRollBackNoticeSendMsg(rejectNote, practitionerList, basicInfoId);
// 退回发短信的经纪人Id }
practitionerIds.add(record.getApprovingPractitionerId());
} private void approveRollBackNoticeSendMsg(String rejectNote, List<PractitionerInfo> practitionerList, Long basicInfoId) {
aclPractitionerHiringApproveRecordsDalService.updateBatch(records); AclPractitionerHiringBasicInfo basicInfo = aclPractitionerHiringBasicInfoDalService.findById(basicInfoId);
// 查询辅导人所在S1,S2,S3
List<AclPractitioner> practitionerList = aclPractitionerDalService.findByIds(practitionerIds); AclPractitionerHiringMembership hiringMemberShip = practitionerHiringDalService.queryHiringMemberShip(basicInfoId);
// String mobileNo;
// String name; // 短信模板
// for (AclPractitioner practitioner : practitionerList) { String templateCode = systemConfigService.getSingleConfigValue("ALI_SMS_HiringApproveNotice");
// mobileNo = practitioner.getMobileNo();
// name = practitioner.getName(); // 被提醒人的姓名手机号
// if (StringUtils.isNotBlank(mobileNo)) { String mobileNo;
// logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》电子报聘回退发送短信"); String name;
// logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + name + ": " + mobileNo); for (PractitionerInfo practitioner : practitionerList) {
// // 发短信 mobileNo = practitioner.getMobileNo();
// // ${name},您好!${name2}(S3纵队S2体系S1分部的XX)经纪人已提交报聘审批,请至“赢家平台>我的团队-报聘审批”进行查看审批,谢谢! name = practitioner.getName();
// String templateCode = systemConfigService.getSingleConfigValue("ALI_SMS_HiringApproveNotice"); // 1.发短信
// String content = "{\"name\":\"" + name + "\",\"hiringName\":\"" + "已回退: " + "\"}"; if (StringUtils.isNotBlank(mobileNo)) {
// sendService.sendEmailOrSMS("sms", mobileNo, "0", content, templateCode, null, null, "电子报聘审批回退", 99, basicInfoId); logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》电子报聘回退发送短信");
// } else { logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + name + ": " + mobileNo);
// logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》电子报聘审批人电话号码不存在"); // 发短信
// throw new RuntimeException("电子报聘审批人电话号码不存在"); String content = "{\"name\":\"" + name + "\",\"hiringName\":\"" + "已回退: " + "\"}";
// } sendService.sendEmailOrSMS("sms", mobileNo, "0", content, templateCode, null, null, "电子报聘审批回退", 99, basicInfoId);
// } } else {
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》电子报聘审批人电话号码不存在");
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + name + ": " + mobileNo);
}
// 2.微信公众号推送
}
// 微信模板
String firstValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_FIRST_HIRING");
String orgInfo = practitionerHiringDalService.getHiringOrganizationInfo(basicInfo, hiringMemberShip);
firstValue.replace("hiringName", orgInfo);
StringBuffer stringBuffer = new StringBuffer(firstValue);
stringBuffer.append(";审批回退,回退原因<").append(rejectNote).append(">");
// 用现有方法发微信
agmsHiringDalService.noticeSendWeChatMsg(stringBuffer.toString(), "回退待审批", practitionerList, basicInfo);
} }
private boolean isHasNextStep(Long loginPractitionerId, String mobileNo, Long basicInfoId, MdPractitionerHiringApproveSteps nextStep) { private boolean isHasNextStep(Long loginPractitionerId, String mobileNo, Long basicInfoId, MdPractitionerHiringApproveSteps nextStep) {
......
package com.yd.dal.mapper.customer; package com.yd.dal.mapper.customer;
import com.yd.api.practitioner.vo.businessCard.Certificate; import com.yd.api.practitioner.vo.businessCard.Certificate;
import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardRequestVO;
import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardResponseVO; import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardResponseVO;
import com.yd.api.practitioner.vo.payscale.PayScaleInfo; import com.yd.api.practitioner.vo.payscale.PayScaleInfo;
import com.yd.api.practitioner.vo.subordinate.TeamMemberDetail; import com.yd.api.practitioner.vo.subordinate.TeamMemberDetail;
import com.yd.api.practitioner.vo.unionSales.UnionSalesPractitionerInfo; import com.yd.api.practitioner.vo.unionSales.UnionSalesPractitionerInfo;
import com.yd.dal.entity.customer.AclPractitioner; import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.entity.customer.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;
import com.yd.dal.entity.practitioner.opportunity.OwnOpportunityInfo;
import com.yd.dal.entity.practitioner.opportunity.PlayerSalesActivityInfo;
import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import com.yd.dal.entity.customer.practitioner.PractitionerBasicInfo;import com.yd.dal.entity.customer.practitioner.PractitionerInfo;import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;import com.yd.dal.entity.practitioner.opportunity.OwnOpportunityInfo;import com.yd.dal.entity.practitioner.opportunity.PlayerSalesActivityInfo;import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo;import org.apache.ibatis.annotations.Param;
public interface AclPractitionerMapper { public interface AclPractitionerMapper {
int deleteByPrimaryKey(Long id); int deleteByPrimaryKey(Long id);
...@@ -153,4 +159,5 @@ public interface AclPractitionerMapper { ...@@ -153,4 +159,5 @@ public interface AclPractitionerMapper {
*/ */
List<Certificate> findCertificate(List<Long> certIdList); List<Certificate> findCertificate(List<Long> certIdList);
List<PractitionerInfo> findPractitionerInfoByIdList(List<Long> idList);
} }
...@@ -3,7 +3,9 @@ package com.yd.dal.service.agms; ...@@ -3,7 +3,9 @@ package com.yd.dal.service.agms;
import com.github.pagehelper.PageInfo; 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.AclPractitionerHiringBasicInfo;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership; import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps; import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps;
import java.util.List; import java.util.List;
...@@ -73,4 +75,6 @@ public interface AgmsHiringDALService { ...@@ -73,4 +75,6 @@ public interface AgmsHiringDALService {
AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId); AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId);
void noticeNextStep(MdPractitionerHiringApproveSteps nextStep, Long basicInfoId); void noticeNextStep(MdPractitionerHiringApproveSteps nextStep, Long basicInfoId);
void noticeSendWeChatMsg(String firstValue, String noticeMsg, List<PractitionerInfo> practitionerList, AclPractitionerHiringBasicInfo basicInfo);
} }
...@@ -181,48 +181,19 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService { ...@@ -181,48 +181,19 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
} }
// 1.3 查询审批人列表 // 1.3 查询审批人列表
List<PractitionerInfo> practitionerList = aclPractitionerDALService.findPractitionerInfoByMobileList(Arrays.asList(mobileNoArray)); List<PractitionerInfo> practitionerList = aclPractitionerDALService.findPractitionerInfoByMobileList(Arrays.asList(mobileNoArray));
// 2.报聘人组织关系, 姓名 // 2.获取报聘人组织架构信息
StringBuilder orgInfo = new StringBuilder(); String orgInfo = practitionerHiringDalService.getHiringOrganizationInfo(basicInfo, hiringMemberShip);
String s3SubordinateSystemName = hiringMemberShip.getS3SubordinateSystemName();
String s2SubordinateSystemName = hiringMemberShip.getS2SubordinateSystemName();
String s1SubordinateSystemName = hiringMemberShip.getS1SubordinateSystemName();
boolean flag = false;
if (StringUtils.isNotEmpty(s3SubordinateSystemName)) {
orgInfo.append(s3SubordinateSystemName);
if (s3SubordinateSystemName.indexOf("纵队") < 0) {
orgInfo.append("纵队");
}
flag = true;
}
if (StringUtils.isNotEmpty(s2SubordinateSystemName)) {
orgInfo.append(s2SubordinateSystemName);
if (s2SubordinateSystemName.indexOf("体系") < 0) {
orgInfo.append("体系");
}
flag = true;
}
if (StringUtils.isNotEmpty(s1SubordinateSystemName)) {
orgInfo.append(s1SubordinateSystemName);
if (s1SubordinateSystemName.indexOf("分部") < 0) {
orgInfo.append("分部");
}
flag = true;
}
if (flag) {
orgInfo.append("的");
}
orgInfo.append(basicInfo.getName());
// 发送短信通知下一位审批人进行审批 // 发送短信通知下一位审批人进行审批
this.noticeSendSMS(orgInfo.toString(), practitionerList, basicInfo); this.noticeSendSMS(orgInfo, practitionerList, basicInfo);
// 公众号推送通知下一位审批人进行审批 // 公众号推送通知下一位审批人进行审批
String firstValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_FIRST_HIRING"); String firstValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_FIRST_HIRING");
firstValue.replace("hiringName", orgInfo.toString()); firstValue.replace("hiringName", orgInfo);
this.noticeSendWeChatMsg(firstValue, "待审批", practitionerList, basicInfo); this.noticeSendWeChatMsg(firstValue, "待审批", practitionerList, basicInfo);
} }
private void noticeSendWeChatMsg(String firstValue, String noticeMsg, List<PractitionerInfo> practitionerList, AclPractitionerHiringBasicInfo basicInfo) { @Override
public void noticeSendWeChatMsg(String firstValue, String noticeMsg, List<PractitionerInfo> practitionerList, AclPractitionerHiringBasicInfo basicInfo) {
// 读取数据库配置 // 读取数据库配置
String templateId = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_ID_HIRING"); String templateId = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_ID_HIRING");
String jumpUrl = systemConfigService.getSingleConfigValue("hiringApprove_page_url"); String jumpUrl = systemConfigService.getSingleConfigValue("hiringApprove_page_url");
......
package com.yd.dal.service.customer; package com.yd.dal.service.customer;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.yd.api.practitioner.vo.businessCard.Certificate; import com.yd.api.practitioner.vo.businessCard.Certificate;
import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardResponseVO; import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardResponseVO;
import com.yd.api.practitioner.vo.payscale.PayScaleInfo; import com.yd.api.practitioner.vo.payscale.PayScaleInfo;
...@@ -18,6 +13,10 @@ import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo; ...@@ -18,6 +13,10 @@ import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;
import com.yd.dal.entity.practitioner.opportunity.OwnOpportunityInfo; import com.yd.dal.entity.practitioner.opportunity.OwnOpportunityInfo;
import com.yd.dal.entity.practitioner.opportunity.PlayerSalesActivityInfo; import com.yd.dal.entity.practitioner.opportunity.PlayerSalesActivityInfo;
import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo; import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service("aclPractitionerDALService") @Service("aclPractitionerDALService")
public interface AclPractitionerDALService { public interface AclPractitionerDALService {
...@@ -221,6 +220,8 @@ public interface AclPractitionerDALService { ...@@ -221,6 +220,8 @@ public interface AclPractitionerDALService {
List<PractitionerInfo> findPractitionerInfoByMobileList(List<String> mobileList); List<PractitionerInfo> findPractitionerInfoByMobileList(List<String> mobileList);
List<PractitionerInfo> findPractitionerInfoByIdList(List<Long> idList);
List<PayScaleInfo> queryEGHistorySalaryPDFByPractitionerId(Long practitionerId); List<PayScaleInfo> queryEGHistorySalaryPDFByPractitionerId(Long practitionerId);
/** /**
......
package com.yd.dal.service.customer.impl; package com.yd.dal.service.customer.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.yd.api.practitioner.service.PractitionerService; import com.yd.api.practitioner.service.PractitionerService;
import com.yd.api.practitioner.vo.businessCard.Certificate; import com.yd.api.practitioner.vo.businessCard.Certificate;
...@@ -40,6 +26,18 @@ import com.yd.util.auth.setting.JwtTokenUtil; ...@@ -40,6 +26,18 @@ import com.yd.util.auth.setting.JwtTokenUtil;
import com.yd.util.deshandler.DESTypeHandler; import com.yd.util.deshandler.DESTypeHandler;
import com.yd.util.intercept.annotation.TargetDataSource; import com.yd.util.intercept.annotation.TargetDataSource;
import com.yd.util.intercept.commons.DataSourceKey; import com.yd.util.intercept.commons.DataSourceKey;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("aclPractitionerDALService") @Service("aclPractitionerDALService")
public class AclPractitionerDALServiceImpl implements AclPractitionerDALService { public class AclPractitionerDALServiceImpl implements AclPractitionerDALService {
...@@ -270,6 +268,11 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService ...@@ -270,6 +268,11 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService
} }
@Override @Override
public List<PractitionerInfo> findPractitionerInfoByIdList(List<Long> idList) {
return aclPractitionerMapper.findPractitionerInfoByIdList(idList);
}
@Override
public List<PayScaleInfo> queryEGHistorySalaryPDFByPractitionerId(Long practitionerId) { public List<PayScaleInfo> queryEGHistorySalaryPDFByPractitionerId(Long practitionerId) {
return aclPractitionerMapper.queryEGHistorySalaryPDFByPractitionerId(practitionerId); return aclPractitionerMapper.queryEGHistorySalaryPDFByPractitionerId(practitionerId);
} }
......
package com.yd.dal.service.practitioner; package com.yd.dal.service.practitioner;
import com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms; import com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms;
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.practitioner.hiring.*; import com.yd.dal.entity.practitioner.hiring.*;
...@@ -106,4 +107,14 @@ public interface PractitionerHiringDALService { ...@@ -106,4 +107,14 @@ public interface PractitionerHiringDALService {
* @return * @return
*/ */
AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId); AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId);
/**
* 获取报聘经纪人组织架构信息
* XX纵队XX体系XX分部的XX经纪人
*
* @param basicInfo
* @param hiringMemberShip
* @return
*/
String getHiringOrganizationInfo(AclPractitionerHiringBasicInfo basicInfo, AclPractitionerHiringMembership hiringMemberShip);
} }
...@@ -2,14 +2,12 @@ package com.yd.dal.service.practitioner.impl; ...@@ -2,14 +2,12 @@ package com.yd.dal.service.practitioner.impl;
import com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms; import com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms;
import com.yd.dal.entity.agms.hiring.PractitionerHiringListInfo; import com.yd.dal.entity.agms.hiring.PractitionerHiringListInfo;
import com.yd.dal.entity.customer.AclPractitioner; import com.yd.dal.entity.customer.*;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import com.yd.dal.entity.customer.AclPractitionerSubordinateSystem;
import com.yd.dal.entity.customer.CustomerFileUpload;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo; import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
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.agms.AgmsHiringMapper; import com.yd.dal.mapper.agms.AgmsHiringMapper;
import com.yd.dal.mapper.customer.AclPractitionerHiringBasicInfoMapper;
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.mapper.customer.AclPractitionerMapper;
import com.yd.dal.mapper.practitioner.PractitionerHiringMapper; import com.yd.dal.mapper.practitioner.PractitionerHiringMapper;
...@@ -21,6 +19,7 @@ import com.yd.dal.service.practitioner.PractitionerHiringDALService; ...@@ -21,6 +19,7 @@ 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.cache.SystemConfigService; import com.yd.rmi.cache.SystemConfigService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
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;
...@@ -55,6 +54,8 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -55,6 +54,8 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
private AclUserDALService aclUserDalService; private AclUserDALService aclUserDalService;
@Autowired @Autowired
private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDALService; private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDALService;
@Autowired
private AclPractitionerHiringBasicInfoMapper basicInfoMapper;
@Override @Override
public List<HiringListInfo> findHiringList(Long practitionerId, Long approvingStatus) { public List<HiringListInfo> findHiringList(Long practitionerId, Long approvingStatus) {
...@@ -88,14 +89,18 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -88,14 +89,18 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
@Override @Override
public List<HiringApproveRecords> findHiringApproveRecordsList(Long hiringBasicInfoId) { public List<HiringApproveRecords> findHiringApproveRecordsList(Long hiringBasicInfoId) {
// 当前审核状态
AclPractitionerHiringBasicInfo basicInfo = basicInfoMapper.selectByPrimaryKey(hiringBasicInfoId);
String approveStatus = basicInfo.getApproveStatus();
List<HiringApproveRecords> records = practitionerHiringMapper.findHiringApproveRecordsList(hiringBasicInfoId); List<HiringApproveRecords> records = practitionerHiringMapper.findHiringApproveRecordsList(hiringBasicInfoId);
PractitionerInfo practitionerInfo; PractitionerInfo practitionerInfo;
CustomerFileUpload fileUpload; CustomerFileUpload fileUpload;
String imagePath; String imagePath;
String levelName; String levelName;
// 创建一个Map
Map<Long, HiringApproveRecords> map = new HashMap<>();
for (HiringApproveRecords item : records) { for (HiringApproveRecords item : records) {
// 获取职级 // 获取职级
practitionerInfo = aclPractitionerDALService.findPractitionerInfoByPractitionerId(item.getApprovingPractitionerId()); practitionerInfo = aclPractitionerDALService.findPractitionerInfoByPractitionerId(item.getApprovingPractitionerId());
...@@ -106,8 +111,6 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -106,8 +111,6 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
item.setHeadImagePath(imagePath); item.setHeadImagePath(imagePath);
item.setLevelName(levelName); item.setLevelName(levelName);
map.put(item.getApproveStepId(), item);
} }
// 声明最终返回的List // 声明最终返回的List
...@@ -124,10 +127,11 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -124,10 +127,11 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
subsystemOwnerName = (approvedBy != null) ? approvedBy.getName() : ""; subsystemOwnerName = (approvedBy != null) ? approvedBy.getName() : "";
} }
HiringApproveRecords record; // 如果已审核结束,则不需要手动创建未审批的流程
if ("0".equals(approveStatus)) {
for (MdPractitionerHiringApproveSteps step : stepsList) { for (MdPractitionerHiringApproveSteps step : stepsList) {
// S2前2步不用审批 // S2前2步不用审批
if ((mdDropOptionName.indexOf("S2")>=0 || mdDropOptionName.indexOf("S3")>=0) if ((mdDropOptionName.indexOf("S2") >= 0 || mdDropOptionName.indexOf("S3") >= 0)
&& (step.getStepSeq() == 1 || step.getStepSeq() == 2) && (step.getStepSeq() == 1 || step.getStepSeq() == 2)
) { ) {
continue; continue;
...@@ -138,10 +142,9 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -138,10 +142,9 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
) { ) {
continue; continue;
} }
record = map.get(step.getId());
if (record != null) { if (step.getStepSeq() >= Integer.valueOf(approveStatus)) {
resultList.add(record);
} else {
HiringApproveRecords obj = new HiringApproveRecords(); HiringApproveRecords obj = new HiringApproveRecords();
obj.setApproveStepId(step.getId()); obj.setApproveStepId(step.getId());
obj.setApproveStepName(step.getStepName()); obj.setApproveStepName(step.getStepName());
...@@ -161,6 +164,7 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -161,6 +164,7 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
resultList.add(obj); resultList.add(obj);
} }
} }
}
return resultList; return resultList;
} }
...@@ -384,4 +388,39 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe ...@@ -384,4 +388,39 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
} }
return hiringMemberShip; return hiringMemberShip;
} }
@Override
public String getHiringOrganizationInfo(AclPractitionerHiringBasicInfo basicInfo, AclPractitionerHiringMembership hiringMemberShip) {
StringBuilder orgInfo = new StringBuilder();
String s3SubordinateSystemName = hiringMemberShip.getS3SubordinateSystemName();
String s2SubordinateSystemName = hiringMemberShip.getS2SubordinateSystemName();
String s1SubordinateSystemName = hiringMemberShip.getS1SubordinateSystemName();
boolean flag = false;
if (StringUtils.isNotEmpty(s3SubordinateSystemName)) {
orgInfo.append(s3SubordinateSystemName);
if (s3SubordinateSystemName.indexOf("纵队") < 0) {
orgInfo.append("纵队");
}
flag = true;
}
if (StringUtils.isNotEmpty(s2SubordinateSystemName)) {
orgInfo.append(s2SubordinateSystemName);
if (s2SubordinateSystemName.indexOf("体系") < 0) {
orgInfo.append("体系");
}
flag = true;
}
if (StringUtils.isNotEmpty(s1SubordinateSystemName)) {
orgInfo.append(s1SubordinateSystemName);
if (s1SubordinateSystemName.indexOf("分部") < 0) {
orgInfo.append("分部");
}
flag = true;
}
if (flag) {
orgInfo.append("的");
}
return orgInfo.append(basicInfo.getName()).toString();
}
} }
...@@ -229,10 +229,10 @@ ...@@ -229,10 +229,10 @@
<if test="status != null"> <if test="status != null">
<choose> <choose>
<when test='status == "1" '> <when test='status == "1" '>
and t.approving_status = 1 and (b.approve_status > t.approve_step_id OR b.approve_status = 0)
</when> </when>
<when test='status == "2" '> <when test='status == "2" '>
and t.approving_status = 0 and b.approve_status &lt;= t.approve_step_id and b.approve_status != 0
</when> </when>
</choose> </choose>
</if> </if>
......
...@@ -1957,6 +1957,37 @@ ...@@ -1957,6 +1957,37 @@
and p.is_active = 1 and p.is_active = 1
</select> </select>
<select id="findPractitionerInfoByIdList" resultMap="practitioner_info_map">
select
p.customer_id as customerId,
p.id as practitionerId,
p.name as name,
p.gender as gender,
s.practitioner_type_id as practitionerType,
sys.name as subsystem,
o.drop_option_code as levelCode,
o.drop_option_name as levelName,
b.branch_name as insurerBranchName,
p.subordinate_system_id as subordinateId,
p.wechat_id as weChatId,
p.qq_id as qqId,
p.practitioner_reg_no as practitionerRegNo,
p.mobile_no,
p.mentor_id mentorId,
c.yd_wechat_openid,
p.can_see_salary_list as canSeeSalaryList
from ag_acl_practitioner p
left join ag_acl_customer c on c.id = p.customer_id
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
left join ag_acl_practitioner_subordinate_system sys on p.subordinate_system_id = sys.id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
left join ag_md_drop_options o on s.practitioner_level = o.id
where p.id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and p.is_active = 1
</select>
<select id="queryEGHistorySalaryPDFByPractitionerId" resultType="com.yd.api.practitioner.vo.payscale.PayScaleInfo"> <select id="queryEGHistorySalaryPDFByPractitionerId" resultType="com.yd.api.practitioner.vo.payscale.PayScaleInfo">
select p.id, select p.id,
......
...@@ -216,7 +216,16 @@ ...@@ -216,7 +216,16 @@
from from
ag_acl_practitioner_hiring_approve_records t ag_acl_practitioner_hiring_approve_records t
where t.approving_practitioner_id = #{practitionerId,jdbcType=BIGINT} where t.approving_practitioner_id = #{practitionerId,jdbcType=BIGINT}
and t.approving_status = #{approvingStatus,jdbcType=BIGINT} <if test="approvingStatus != null">
<choose>
<when test='approvingStatus == "1" '>
and (b.approve_status > t.approve_step_id OR b.approve_status = 0)
</when>
<when test='approvingStatus == "2" '>
and b.approve_status &lt;= t.approve_step_id and b.approve_status != 0
</when>
</choose>
</if>
) )
</select> </select>
......
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