coolcollege_intelligent_74

This commit is contained in:
苏竹红
2024-06-18 14:28:29 +08:00
parent a65bc8ca84
commit 5c05ff1635
9 changed files with 217 additions and 721 deletions

View File

@@ -91,17 +91,17 @@ public enum InterviewTypeEnum {
return result; return result;
} }
public static WorkflowSubStageStatusEnum getWorkflowSubStageStatus(InterviewTypeEnum interviewType){ // public static WorkflowSubStageStatusEnum getWorkflowSubStageStatus(InterviewTypeEnum interviewType){
if(MEET.equals(interviewType)){ // if(MEET.equals(interviewType)){
return WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_15; // return WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_15;
} // }
if(INTERVIEW.equals(interviewType)){ // if(INTERVIEW.equals(interviewType)){
return WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30; // return WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30;
} // }
if(SECOND_INTERVIEW.equals(interviewType)){ // if(SECOND_INTERVIEW.equals(interviewType)){
return WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_105; // return WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_105;
} // }
return null; // return null;
} // }
} }

View File

@@ -11,12 +11,8 @@ public enum WorkflowSubStageEnum{
* 流程子阶段枚举 * 流程子阶段枚举
*/ */
INTEND(1, "加盟意向申请", WorkflowSubStageStatusEnum.INTENT_0,"joinIntentionServiceImpl",0), INTEND(1, "加盟意向申请", WorkflowSubStageStatusEnum.INTENT_0,"joinIntentionServiceImpl",0),
INVITING_INTERVIEWS(5, "邀约面谈", WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_10, "lineInterviewServiceImpl",2),
FIRST_INTERVIEWS(10, "一审面试", WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_25, "lineInterviewServiceImpl",4),
PAY_DEPOSIT(15, "缴纳意向金", WorkflowSubStageStatusEnum.PAY_DEPOSIT_45, "bankServiceImpl",4), PAY_DEPOSIT(15, "缴纳意向金", WorkflowSubStageStatusEnum.PAY_DEPOSIT_45, "bankServiceImpl",4),
SIGN_INTENT_AGREEMENT(20, "签署意向协议", WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_60, "intentAgreementServiceImpl",6), SIGN_INTENT_AGREEMENT(20, "签署意向协议", WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_60, "intentAgreementServiceImpl",6);
STORE_EXPERIENCE(25, "门店体验", WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85, "trainingExperienceServiceImpl",9),
SECOND_INTERVIEWS(30, "二审面试", WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_100, "lineInterviewServiceImpl",10);
private Integer code; private Integer code;
@@ -62,22 +58,12 @@ public enum WorkflowSubStageEnum{
public WorkflowSubStageEnum getNextStage() { public WorkflowSubStageEnum getNextStage() {
switch (this) { switch (this) {
case INTEND: case INTEND:
this.nextStage = INVITING_INTERVIEWS;
break;
case INVITING_INTERVIEWS:
this.nextStage = FIRST_INTERVIEWS;
break;
case FIRST_INTERVIEWS:
this.nextStage = PAY_DEPOSIT; this.nextStage = PAY_DEPOSIT;
break; break;
case PAY_DEPOSIT: case PAY_DEPOSIT:
this.nextStage = SIGN_INTENT_AGREEMENT; this.nextStage = SIGN_INTENT_AGREEMENT;
break; break;
case SIGN_INTENT_AGREEMENT: case SIGN_INTENT_AGREEMENT:
this.nextStage = STORE_EXPERIENCE;
break;
case STORE_EXPERIENCE:
case SECOND_INTERVIEWS:
this.nextStage = null; this.nextStage = null;
break; break;
} }
@@ -92,35 +78,4 @@ public enum WorkflowSubStageEnum{
} }
return null; return null;
} }
/**
* 是否是面试阶段
* @param workflowSubStage
* @return
*/
public static boolean isInterviewStage(Integer workflowSubStage) {
return INVITING_INTERVIEWS.getCode().equals(workflowSubStage) || FIRST_INTERVIEWS.getCode().equals(workflowSubStage) || SECOND_INTERVIEWS.getCode().equals(workflowSubStage);
}
/**
* 是否是重新预约面试阶段
* @param workflowSubStage
* @return
*/
public static boolean isReappointmentStage(Integer workflowSubStage) {
return FIRST_INTERVIEWS.getCode().equals(workflowSubStage) || SECOND_INTERVIEWS.getCode().equals(workflowSubStage);
}
public static InterviewTypeEnum getInterviewType(Integer workflowSubStage){
if(INVITING_INTERVIEWS.getCode().equals(workflowSubStage)){
return InterviewTypeEnum.MEET;
}
if(FIRST_INTERVIEWS.getCode().equals(workflowSubStage)){
return InterviewTypeEnum.INTERVIEW;
}
if(SECOND_INTERVIEWS.getCode().equals(workflowSubStage)){
return InterviewTypeEnum.SECOND_INTERVIEW;
}
return null;
}
} }

View File

@@ -12,19 +12,7 @@ public enum WorkflowSubStageStatusEnum {
INTENT_5(5,"待审核"), INTENT_5(5,"待审核"),
INTENT_7(7,"未通过"), INTENT_7(7,"未通过"),
//邀约面谈 //缴纳意向金
INVITING_INTERVIEWS_10(10,"待预约"),
INVITING_INTERVIEWS_15(15,"待面谈"),
INVITING_INTERVIEWS_20(20,"待审核"),
//一审面试
FIRST_INTERVIEWS_25(25,"待预约"),
FIRST_INTERVIEWS_30(30,"待面试"),
FIRST_INTERVIEWS_35(35,"待审核"),
FIRST_INTERVIEWS_40(40,"一审未通过"),
FIRST_INTERVIEWS_42(42,"一审重新预约"),
//缴纳意向金,装修款
PAY_DEPOSIT_45(45,"待缴费"), PAY_DEPOSIT_45(45,"待缴费"),
PAY_DEPOSIT_50(50,"已缴费"), PAY_DEPOSIT_50(50,"已缴费"),
PAY_FAIL_55(55,"审核未通过"), PAY_FAIL_55(55,"审核未通过"),
@@ -38,19 +26,6 @@ public enum WorkflowSubStageStatusEnum {
SIGN_INTENT_AGREEMENT_80(80,"签约失败"), SIGN_INTENT_AGREEMENT_80(80,"签约失败"),
//门店体验
STORE_EXPERIENCE_85(85,"待体验"),
STORE_EXPERIENCE_90(90,"体验中"),
STORE_EXPERIENCE_95(95,"放弃体验"),
//二审面试
SECOND_INTERVIEWS_100(100,"待预约"),
SECOND_INTERVIEWS_105(105,"待面试"),
SECOND_INTERVIEWS_110(110,"待审核"),
SECOND_INTERVIEWS_115(115,"二审未通过"),
SECOND_INTERVIEWS_120(120,"二审重新预约"),
SECOND_INTERVIEWS_125(125,"二审通过"),
; ;
@@ -72,31 +47,5 @@ public enum WorkflowSubStageStatusEnum {
return message; return message;
} }
public static boolean isReappointmentStatus(Integer workflowSubStageStatus){
return FIRST_INTERVIEWS_42.getCode().equals(workflowSubStageStatus) || SECOND_INTERVIEWS_120.getCode().equals(workflowSubStageStatus);
}
public static boolean isModifyAppointmentTime(Integer workflowSubStageStatus){
return INVITING_INTERVIEWS_15.getCode().equals(workflowSubStageStatus) || FIRST_INTERVIEWS_30.getCode().equals(workflowSubStageStatus) || SECOND_INTERVIEWS_105.getCode().equals(workflowSubStageStatus);
}
public WorkflowSubStageStatusEnum getNextStatus(WorkflowSubStageStatusEnum workflowSubStageStatusEnum) {
switch (workflowSubStageStatusEnum) {
case INTENT_0:
return INTENT_5;
default:
return null;
}
}
public static WorkflowSubStageStatusEnum getInterviewRejectStatus(InterviewTypeEnum interviewType){
if(InterviewTypeEnum.INTERVIEW.equals(interviewType)){
return FIRST_INTERVIEWS_40;
}
if(InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType)){
return SECOND_INTERVIEWS_115;
}
return null;
}
} }

View File

@@ -85,95 +85,95 @@ public class DeskServiceImpl implements DeskService {
@Override @Override
public PageInfo<InterviewPendingVO> interviewPendingList(Integer pageNum, Integer pageSize, String userId) { public PageInfo<InterviewPendingVO> interviewPendingList(Integer pageNum, Integer pageSize, String userId) {
PageHelper.startPage(pageNum, pageSize); // PageHelper.startPage(pageNum, pageSize);
List<LineInfoDO> lineInfoDOS = lineInfoDAO.listByInvestmentManager(userId,Arrays.asList(WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_20.getCode())); // List<LineInfoDO> lineInfoDOS = lineInfoDAO.listByInvestmentManager(userId,Arrays.asList(WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_20.getCode()));
PageInfo page = new PageInfo(lineInfoDOS); // PageInfo page = new PageInfo(lineInfoDOS);
Map<Long, HyPartnerLabelDO> userPortraitMap = this.getUserPortraitMap(lineInfoDOS); // Map<Long, HyPartnerLabelDO> userPortraitMap = this.getUserPortraitMap(lineInfoDOS);
List<Long> wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); // List<Long> wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList());
Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); // Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds);
List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); // List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList());
List<LineInterviewDO> interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.MEET); // List<LineInterviewDO> interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.MEET);
Map<Long, LineInterviewDO> interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1)); // Map<Long, LineInterviewDO> interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1));
//
List<InterviewPendingVO> list = new ArrayList<>(); // List<InterviewPendingVO> list = new ArrayList<>();
lineInfoDOS.forEach(x->{ // lineInfoDOS.forEach(x->{
BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); // BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap);
InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO); // InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO);
LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId()); // LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId());
if (lineInterviewDO != null){ // if (lineInterviewDO != null){
interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime())); // interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime()));
interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime())); // interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime()));
} // }
list.add(interviewPendingVO); // list.add(interviewPendingVO);
}); // });
page.setList(list); // page.setList(list);
return page; return new PageInfo<>();
} }
@Override @Override
public PageInfo<InterviewPendingVO> firstInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo userInfo) { public PageInfo<InterviewPendingVO> firstInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo userInfo) {
PageHelper.startPage(pageNum, pageSize); // PageHelper.startPage(pageNum, pageSize);
List<LineInfoDO> lineInfoDOS = lineInfoDAO.listByInterview(userInfo.getUserId(),InterviewTypeEnum.INTERVIEW.getCode(), // List<LineInfoDO> lineInfoDOS = lineInfoDAO.listByInterview(userInfo.getUserId(),InterviewTypeEnum.INTERVIEW.getCode(),
Arrays.asList(WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30.getCode(),WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_35.getCode()),WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_40.getCode(),null); // Arrays.asList(WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30.getCode(),WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_35.getCode()),WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_40.getCode(),null);
PageInfo page = new PageInfo(lineInfoDOS); // PageInfo page = new PageInfo(lineInfoDOS);
Map<Long, HyPartnerLabelDO> userPortraitMap = this.getUserPortraitMap(lineInfoDOS); // Map<Long, HyPartnerLabelDO> userPortraitMap = this.getUserPortraitMap(lineInfoDOS);
List<Long> wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); // List<Long> wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList());
Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); // Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds);
List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); // List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList());
List<LineInterviewDO> interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.INTERVIEW); // List<LineInterviewDO> interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.INTERVIEW);
Map<Long, LineInterviewDO> interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1)); // Map<Long, LineInterviewDO> interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1));
List<String> userIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getFirstInterviewer() != null).map(LineInfoDO::getFirstInterviewer).collect(Collectors.toList()); // List<String> userIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getFirstInterviewer() != null).map(LineInfoDO::getFirstInterviewer).collect(Collectors.toList());
Map<String, EnterpriseUserDO> userInfoMap = enterpriseUserDAO.getUserInfoMap(userIds); // Map<String, EnterpriseUserDO> userInfoMap = enterpriseUserDAO.getUserInfoMap(userIds);
//
List<InterviewPendingVO> list = new ArrayList<>(); // List<InterviewPendingVO> list = new ArrayList<>();
lineInfoDOS.forEach(x->{ // lineInfoDOS.forEach(x->{
BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); // BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap);
InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO); // InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO);
LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId()); // LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId());
if (lineInterviewDO != null){ // if (lineInterviewDO != null){
interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime())); // interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime()));
interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime())); // interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime()));
interviewPendingVO.setInterviewer(userInfoMap.getOrDefault(x.getFirstInterviewer(),new EnterpriseUserDO()).getName()); // interviewPendingVO.setInterviewer(userInfoMap.getOrDefault(x.getFirstInterviewer(),new EnterpriseUserDO()).getName());
interviewPendingVO.setInterviewId(lineInterviewDO.getId()); // interviewPendingVO.setInterviewId(lineInterviewDO.getId());
} // }
list.add(interviewPendingVO); // list.add(interviewPendingVO);
}); // });
page.setList(list); // page.setList(list);
return page; return new PageInfo<>();
} }
@Override @Override
public PageInfo<InterviewPendingVO> secondInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo userInfo) { public PageInfo<InterviewPendingVO> secondInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo userInfo) {
PageHelper.startPage(pageNum, pageSize); // PageHelper.startPage(pageNum, pageSize);
List<LineInfoDO> lineInfoDOS = lineInfoDAO.listByInterview(userInfo.getUserId(),InterviewTypeEnum.SECOND_INTERVIEW.getCode(), // List<LineInfoDO> lineInfoDOS = lineInfoDAO.listByInterview(userInfo.getUserId(),InterviewTypeEnum.SECOND_INTERVIEW.getCode(),
Arrays.asList(WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_105.getCode(),WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_110.getCode()), WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_115.getCode(),null); // Arrays.asList(WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_105.getCode(),WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_110.getCode()), WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_115.getCode(),null);
PageInfo page = new PageInfo(lineInfoDOS); // PageInfo page = new PageInfo(lineInfoDOS);
Map<Long, HyPartnerLabelDO> userPortraitMap = this.getUserPortraitMap(lineInfoDOS); // Map<Long, HyPartnerLabelDO> userPortraitMap = this.getUserPortraitMap(lineInfoDOS);
List<Long> wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); // List<Long> wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList());
Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); // Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds);
List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); // List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList());
List<LineInterviewDO> interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.SECOND_INTERVIEW); // List<LineInterviewDO> interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.SECOND_INTERVIEW);
Map<Long, LineInterviewDO> interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1)); // Map<Long, LineInterviewDO> interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1));
List<String> userIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getSecondInterviewer() != null).map(LineInfoDO::getSecondInterviewer).collect(Collectors.toList()); // List<String> userIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getSecondInterviewer() != null).map(LineInfoDO::getSecondInterviewer).collect(Collectors.toList());
Map<String, EnterpriseUserDO> userInfoMap = enterpriseUserDAO.getUserInfoMap(userIds); // Map<String, EnterpriseUserDO> userInfoMap = enterpriseUserDAO.getUserInfoMap(userIds);
//
//
List<InterviewPendingVO> list = new ArrayList<>(); // List<InterviewPendingVO> list = new ArrayList<>();
lineInfoDOS.forEach(x->{ // lineInfoDOS.forEach(x->{
BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); // BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap);
InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO); // InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO);
LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId()); // LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId());
if (lineInterviewDO != null){ // if (lineInterviewDO != null){
interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime())); // interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime()));
interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime())); // interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime()));
interviewPendingVO.setInterviewer(userInfoMap.getOrDefault(x.getSecondInterviewer(),new EnterpriseUserDO()).getName()); // interviewPendingVO.setInterviewer(userInfoMap.getOrDefault(x.getSecondInterviewer(),new EnterpriseUserDO()).getName());
interviewPendingVO.setInterviewId(lineInterviewDO.getId()); // interviewPendingVO.setInterviewId(lineInterviewDO.getId());
} // }
list.add(interviewPendingVO); // list.add(interviewPendingVO);
}); // });
page.setList(list); // page.setList(list);
return page; return new PageInfo<>();
} }
@Override @Override
@@ -231,34 +231,34 @@ public class DeskServiceImpl implements DeskService {
@Override @Override
public PageInfo<StoreExperiencePendingVO> storeExperiencePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { public PageInfo<StoreExperiencePendingVO> storeExperiencePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) {
PageHelper.startPage(pageNum, pageSize); // PageHelper.startPage(pageNum, pageSize);
List<LineInfoDO> lineInfoDOS = lineInfoDAO.listByInvestmentManager(user.getUserId(), // List<LineInfoDO> lineInfoDOS = lineInfoDAO.listByInvestmentManager(user.getUserId(),
Arrays.asList(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode(), // Arrays.asList(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode(),
WorkflowSubStageStatusEnum.STORE_EXPERIENCE_95.getCode())); // WorkflowSubStageStatusEnum.STORE_EXPERIENCE_95.getCode()));
PageInfo page = new PageInfo(lineInfoDOS); // PageInfo page = new PageInfo(lineInfoDOS);
Map<Long, HyPartnerLabelDO> userPortraitMap = this.getUserPortraitMap(lineInfoDOS); // Map<Long, HyPartnerLabelDO> userPortraitMap = this.getUserPortraitMap(lineInfoDOS);
List<Long> wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); // List<Long> wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList());
Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); // Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds);
List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); // List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList());
Map<Long, LeaseBaseInfoDO> infoDOMap = new HashMap<>(); // Map<Long, LeaseBaseInfoDO> infoDOMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(lineIds)){ // if (CollectionUtils.isNotEmpty(lineIds)){
List<LeaseBaseInfoDO> leaseBaseInfoDOS = trainingExperienceMapper.selectByLineIds(lineIds); // List<LeaseBaseInfoDO> leaseBaseInfoDOS = trainingExperienceMapper.selectByLineIds(lineIds);
infoDOMap = leaseBaseInfoDOS.stream().collect(Collectors.toMap(LeaseBaseInfoDO::getLineId, x -> x)); // infoDOMap = leaseBaseInfoDOS.stream().collect(Collectors.toMap(LeaseBaseInfoDO::getLineId, x -> x));
} // }
List<StoreExperiencePendingVO> list = new ArrayList<>(); // List<StoreExperiencePendingVO> list = new ArrayList<>();
Map<Long, LeaseBaseInfoDO> finalInfoDOMap = infoDOMap; // Map<Long, LeaseBaseInfoDO> finalInfoDOMap = infoDOMap;
lineInfoDOS.forEach(x->{ // lineInfoDOS.forEach(x->{
BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); // BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap);
StoreExperiencePendingVO storeExperiencePendingVO = new StoreExperiencePendingVO(baseInfoVO); // StoreExperiencePendingVO storeExperiencePendingVO = new StoreExperiencePendingVO(baseInfoVO);
LeaseBaseInfoDO date = finalInfoDOMap.get(x.getId()); // LeaseBaseInfoDO date = finalInfoDOMap.get(x.getId());
if (date != null && date.getExperienceStartTime() != null && date.getExperienceEndTime() != null){ // if (date != null && date.getExperienceStartTime() != null && date.getExperienceEndTime() != null){
storeExperiencePendingVO.setExperienceStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1,date.getExperienceStartTime())); // storeExperiencePendingVO.setExperienceStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1,date.getExperienceStartTime()));
storeExperiencePendingVO.setExperienceEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_2,date.getExperienceEndTime())); // storeExperiencePendingVO.setExperienceEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_2,date.getExperienceEndTime()));
} // }
list.add(storeExperiencePendingVO); // list.add(storeExperiencePendingVO);
}); // });
page.setList(list); // page.setList(list);
return page ; return new PageInfo<>() ;
} }

View File

@@ -92,9 +92,10 @@ public class JoinIntentionServiceImpl extends LineFlowService implements JoinInt
requestMap.put("lineId", String.valueOf(lineInfoParam.getId())); requestMap.put("lineId", String.valueOf(lineInfoParam.getId()));
HyOpenAreaInfoDO openAreaInfoDO = openAreaInfoMapper.selectById(lineInfoParam.getWantShopAreaId()); HyOpenAreaInfoDO openAreaInfoDO = openAreaInfoMapper.selectById(lineInfoParam.getWantShopAreaId());
requestMap.put("regionName", openAreaInfoDO.getAreaName()); requestMap.put("regionName", openAreaInfoDO.getAreaName());
commonService.sendMessage(Collections.singletonList(lineInfoParam.getInvestmentManager()), //工作通知后面对接企业微信
MessageEnum.MESSAGE_29, // commonService.sendMessage(Collections.singletonList(lineInfoParam.getInvestmentManager()),
requestMap); // MessageEnum.MESSAGE_29,
// requestMap);
return Boolean.TRUE; return Boolean.TRUE;
} }

View File

@@ -80,440 +80,66 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
@Override @Override
public List<AppointmentTimeVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate) { public List<AppointmentTimeVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate) {
InterviewTypeEnum interviewTypeEnum = InterviewTypeEnum.match(interviewType); return null;
List<Pair<String, Boolean>> timeSlots = InterviewTypeEnum.getTimeSlots(interviewTypeEnum, appointmentDate);
List<LineCalendarsEventDO> eventList = null;
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
if(Objects.isNull(lineInfo)){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
//如果是面谈 获取招商经理的时间 如果是面试 获取大区的时间
if(InterviewTypeEnum.MEET.equals(interviewTypeEnum)){
eventList = lineCalendarsEventDAO.getInterviewerLineCalendarsEvent(lineInfo.getInvestmentManager(), appointmentDate);
}else{
eventList = lineCalendarsEventDAO.getRegionLineCalendarsEvent(lineInfo.getRegionId(), appointmentDate);
}
List<AppointmentTimeVO> resultList = AppointmentTimeVO.getAppointmentTime(appointmentDate, timeSlots, eventList);
return resultList;
} }
@Override @Override
public List<AppointmentTimeListVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentStartDate, LocalDate appointmentEndDate) { public List<AppointmentTimeListVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentStartDate, LocalDate appointmentEndDate) {
if(Objects.isNull(lineId) || Objects.isNull(interviewType) || Objects.isNull(appointmentStartDate) || Objects.isNull(appointmentEndDate)){ return null;
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
List<AppointmentTimeListVO> resultList = new ArrayList<>();
while (appointmentEndDate.isAfter(appointmentStartDate) || appointmentStartDate.equals(appointmentEndDate)){
List<AppointmentTimeVO> appointmentTime = getAppointmentTime(lineId, interviewType, appointmentStartDate);
AppointmentTimeListVO appointmentTimeList = new AppointmentTimeListVO(appointmentStartDate.toString(), appointmentStartDate.getDayOfWeek().getValue(), appointmentTime);
resultList.add(appointmentTimeList);
appointmentStartDate = appointmentStartDate.plusDays(1);
}
return resultList;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean appointmentTime(AppointmentTimeRequest request) { public Boolean appointmentTime(AppointmentTimeRequest request) {
Date startTime = DateUtils.strToDate(request.getStartTime(), DateUtils.YYYY_MM_DD_HH_MM_SS); return null;
Date endTime = DateUtils.strToDate(request.getEndTime(), DateUtils.YYYY_MM_DD_HH_MM_SS);
Date now = new Date();
if(now.getTime() >= startTime.getTime()){
throw new ServiceException(ErrorCodeEnum.APPOINTMENT_TIME_FAIL);
}
//查询线索信息
//如果是面谈获取招商经理 如果是面试获取大区经理
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
if(Objects.isNull(lineInfo)){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
//判断是否存在当前类型的面审如果存在 删除面审信息 生成新的面审
if(!WorkflowSubStageEnum.isInterviewStage(lineInfo.getWorkflowSubStage())){
log.info("线索当前所处阶段不可预约日程");
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
}
InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage());
String interviewerUserId = lineInfo.getInvestmentManager(), firstInterviewer = null, secondInterviewer = null;
if(!InterviewTypeEnum.MEET.equals(interviewType)){
EnterpriseUserDO enterpriseUser = userAuthMappingService.getUserByRoleEnumAndWantShopAreaId(UserRoleEnum.REGION_MANAGER, lineInfo.getWantShopAreaId());
interviewerUserId = Optional.ofNullable(enterpriseUser).map(EnterpriseUserDO::getUserId).orElse(null);
}
firstInterviewer = InterviewTypeEnum.INTERVIEW.equals(interviewType) ? interviewerUserId : null;
secondInterviewer = InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType) ? interviewerUserId : null;
Boolean occupied = lineCalendarsEventDAO.isOccupied(interviewType.getCode(), lineInfo.getRegionId(), interviewerUserId, request.getStartTime(), request.getEndTime(), null);
if(occupied){
throw new ServiceException(ErrorCodeEnum.TIME_OCCUPIED);
}
LineCalendarsEventDO calendarsEvent = LineCalendarsEventDO.convertDO(lineInfo, interviewType.getCode(), startTime, endTime, interviewerUserId);
Long eventId = lineCalendarsEventDAO.addCalendarsEvent(calendarsEvent);
WorkflowSubStageStatusEnum workflowSubStageStatus = InterviewTypeEnum.getWorkflowSubStageStatus(interviewType);
//跟新线索状态为已预约
lineInfoDAO.updateWorkflowStageAndInterviewer(lineInfo.getId(), workflowSubStageStatus, firstInterviewer, secondInterviewer);
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineInfo.getId(), interviewType);
if(Objects.nonNull(interviewInfo)){
if(!WorkflowSubStageStatusEnum.isReappointmentStatus(lineInfo.getWorkflowSubStageStatus())){
log.info("当前线索状态不是重新预约状态");
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
}
//删除该面试记录
lineInterviewDAO.deleteInterviewInfo(interviewInfo.getId());
}
LineInterviewDO addInterview = LineInterviewDO.convertDO(lineInfo, startTime, endTime, UUIDUtils.get8UUID(), interviewerUserId, interviewType.getCode(), eventId);
lineInterviewDAO.addInterviewInfo(addInterview);
MessageEnum messageEnum = MessageEnum.MESSAGE_2;
MessageEnum investmentManagerMessageEnum = null;
if(InterviewTypeEnum.INTERVIEW.equals(interviewType)){
messageEnum = MessageEnum.MESSAGE_3;
investmentManagerMessageEnum = MessageEnum.MESSAGE_3_1;
}
if(InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType)){
messageEnum = MessageEnum.MESSAGE_10;
investmentManagerMessageEnum = MessageEnum.MESSAGE_10_1;
}
Map<String, String> messageMap = new HashMap<>();
messageMap.put("lineId", String.valueOf(lineInfo.getId()));
messageMap.put("partnerUsername", lineInfo.getUsername());
messageMap.put("appointmentTime", DateUtils.parseDateToStr(DateUtils.NOTICE_DATE, startTime));
messageMap.put("interviewUsername", enterpriseUserDAO.getUserName(interviewerUserId));
commonService.sendMessage(Arrays.asList(interviewerUserId), messageEnum, messageMap);
if(Objects.nonNull(investmentManagerMessageEnum)){
commonService.sendMessage(Arrays.asList(lineInfo.getInvestmentManager()), investmentManagerMessageEnum, messageMap);
}
return Boolean.TRUE;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean modifyAppointmentTime(AppointmentTimeRequest request) { public Boolean modifyAppointmentTime(AppointmentTimeRequest request) {
Date startTime = DateUtils.strToDate(request.getStartTime(), DateUtils.YYYY_MM_DD_HH_MM_SS); return null;
Date endTime = DateUtils.strToDate(request.getEndTime(), DateUtils.YYYY_MM_DD_HH_MM_SS);
Date nowTime = new Date();
if(nowTime.getTime() >= startTime.getTime()){
throw new ServiceException(ErrorCodeEnum.APPOINTMENT_TIME_FAIL);
}
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
if(Objects.isNull(lineInfo)){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
if(!WorkflowSubStageEnum.isInterviewStage(lineInfo.getWorkflowSubStage())){
//当前线索状态不允许修改面审时间
log.info("当前线索所处阶段不允许修改面审时间");
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
}
if(!WorkflowSubStageStatusEnum.isModifyAppointmentTime(lineInfo.getWorkflowSubStageStatus())){
log.info("当前线索所处子状态不允许修改面审时间");
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
}
InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage());
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(request.getLineId(), interviewType);
if(Objects.isNull(interviewInfo)){
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
Boolean occupied = lineCalendarsEventDAO.isOccupied(interviewType.getCode(), lineInfo.getRegionId(), interviewInfo.getInterviewerUserId(), request.getStartTime(), request.getEndTime(), interviewInfo.getId());
if(occupied){
throw new ServiceException(ErrorCodeEnum.TIME_OCCUPIED);
}
LocalDateTime startDateTime = LocalDateTime.ofInstant(startTime.toInstant(), ZoneId.systemDefault()).minusMinutes(10);
LocalDateTime now = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
if(startDateTime.isBefore(now)){
throw new ServiceException(ErrorCodeEnum.FEISHU_UPDATE_SCHEDULE_ERROR);
}
LineInterviewDO updateInterview = new LineInterviewDO();
updateInterview.setId(interviewInfo.getId());
updateInterview.setInterviewDate(startTime);
updateInterview.setStartTime(startTime);
updateInterview.setEndTime(endTime);
lineInterviewDAO.updateInterviewInfo(updateInterview);
LineCalendarsEventDO updateEvent = new LineCalendarsEventDO();
updateEvent.setId(interviewInfo.getCalendarsEventId());
updateEvent.setStartTime(startTime);
updateEvent.setEndTime(endTime);
updateEvent.setInterviewDate(startTime);
lineCalendarsEventDAO.updateCalendarsEvent(updateEvent);
Map<String, String> templateParam = new HashMap<>();
templateParam.put("interviewTime", DateUtils.parseDateToStr(DateUtils.NOTICE_DATE, startTime));
SMSMsgEnum smsMsgEnum = null;
if(InterviewTypeEnum.MEET.equals(interviewType)){
smsMsgEnum = SMSMsgEnum.INTERVIEW_TIME_MODIFY;
}
if(InterviewTypeEnum.INTERVIEW.equals(interviewType)){
smsMsgEnum = SMSMsgEnum.FIRST_INTERVIEW_TIME_MODIFY;
}
if(InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType)){
smsMsgEnum = SMSMsgEnum.SECOND_INTERVIEW_TIME_MODIFY;
}
commonService.sendSms(lineInfo.getMobile(), smsMsgEnum, templateParam);
return true;
} }
@Override @Override
public Boolean modifyInterviewer(ModifyInterviewerRequest request) { public Boolean modifyInterviewer(ModifyInterviewerRequest request) {
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); return null;
if(Objects.isNull(lineInfo)){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
InterviewTypeEnum interviewType = InterviewTypeEnum.match(request.getInterviewType());
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(request.getLineId(), interviewType);
if(Objects.isNull(interviewInfo)){
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
LineInterviewDO updateInterview = new LineInterviewDO();
updateInterview.setId(interviewInfo.getId());
updateInterview.setInterviewerUserId(request.getInterviewerUserId());
lineInterviewDAO.updateInterviewInfo(updateInterview);
LineCalendarsEventDO update = new LineCalendarsEventDO();
update.setId(interviewInfo.getCalendarsEventId());
update.setInterviewerUserId(request.getInterviewerUserId());
lineCalendarsEventDAO.updateCalendarsEvent(update);
LineInfoDO updateLineInfo = new LineInfoDO();
updateLineInfo.setId(request.getLineId());
if(InterviewTypeEnum.INTERVIEW.equals(interviewType)){
updateLineInfo.setFirstInterviewer(request.getInterviewerUserId());
}
if(InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType)){
updateLineInfo.setSecondInterviewer(request.getInterviewerUserId());
}
lineInfoDAO.updateLineInfo(updateLineInfo);
transferLogService.addLog(lineInfo, request.getOperatorUserId(), request.getInterviewerUserId(), OperationLogTypeEnum.ENTRUST_INTERVIEW);
return true;
} }
@Override @Override
public PageInfo<LineInterviewPageVO> getInterviewerPage(LineInterviewPageRequest request, String userId, Boolean isTeam) { public PageInfo<LineInterviewPageVO> getInterviewerPage(LineInterviewPageRequest request, String userId, Boolean isTeam) {
if(isTeam && !sysRoleService.checkIsAdmin(userId)){ return null;
List<Long> wantShopAreaIds = userAuthMappingService.listWantShopAreaIdByUserId(userId);
if(CollectionUtils.isEmpty(wantShopAreaIds)){
request.setInterviewerUserId(userId);
}else{
request.setWantShopAreaIds(wantShopAreaIds);
}
}
if(Objects.nonNull(request.getWantShopAreaId())){
HyOpenAreaInfoDO areaInfo = hyOpenAreaInfoDAO.selectById(request.getWantShopAreaId());
if(Objects.nonNull(areaInfo)){
request.setAreaPath(areaInfo.getAreaPath());
}
}
Page<LineInterviewPageDTO> pageInfo = lineInterviewDAO.getInterviewerPage(request);
List<String> userPortraitList = pageInfo.stream().filter(x -> StringUtils.isNotEmpty(x.getUserPortrait() )).map(LineInterviewPageDTO::getUserPortrait).collect(Collectors.toList());
List<String> investmentManagerUserIds = pageInfo.stream().filter(x -> StringUtils.isNotEmpty(x.getInvestmentManager() )).map(LineInterviewPageDTO::getInvestmentManager).collect(Collectors.toList());
List<String> interviewerUserIds = pageInfo.stream().filter(x -> StringUtils.isNotEmpty(x.getInterviewerUserId() )).map(LineInterviewPageDTO::getInterviewerUserId).collect(Collectors.toList());
List<Long> wantShopAreaIds = pageInfo.stream().filter(x -> Objects.nonNull(x.getWantShopAreaId() )).map(LineInterviewPageDTO::getWantShopAreaId).collect(Collectors.toList());
List<Integer> lineSourceIds = pageInfo.stream().filter(lineInfoDO -> lineInfoDO.getLineSource() != null).map(LineInterviewPageDTO::getLineSource).collect(Collectors.toList());
Map<Long, String> cityNameMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds);
List<String> userIds = Stream.concat(investmentManagerUserIds.stream(), interviewerUserIds.stream()).distinct().collect(Collectors.toList());
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(userIds);
Map<Long, String> userPortraitMap = labelService.getUserPortraitMap(userPortraitList);
Map<Integer, String> channelMap = hyPartnerUserChannelDAO.getChannelMapByIds(lineSourceIds);
List<LineInterviewPageVO> resultList = LineInterviewPageVO.convertList(pageInfo, userPortraitMap, userNameMap, cityNameMap, channelMap);
PageInfo resultPage = new PageInfo(pageInfo);
resultPage.setList(resultList);
return resultPage;
} }
@Override @Override
public EnterInterviewVO enterInterviewRoom(Long interviewId, String interviewUserId, InterviewUserTypeEnum userType) { public EnterInterviewVO enterInterviewRoom(Long interviewId, String interviewUserId, InterviewUserTypeEnum userType) {
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfoById(interviewId); return null;
if(Objects.isNull(interviewInfo)){
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
//已关闭就禁止进入房间了
if (interviewInfo.getRoomStatus().equals(RoomStatus.CLOSED.getCode())) {
throw new ServiceException(ErrorCodeEnum.ROOM_STATUS_ERROR);
}
if(InterviewUserTypeEnum.INTERVIEWER.equals(userType) && !interviewUserId.equals(interviewInfo.getInterviewerUserId())){
throw new ServiceException(ErrorCodeEnum.USER_NOT_ALLOW_ENTER_ROOM);
}
if(InterviewUserTypeEnum.LINE.equals(userType) && !interviewUserId.equals(interviewInfo.getPartnerId())){
throw new ServiceException(ErrorCodeEnum.USER_NOT_ALLOW_ENTER_ROOM);
}
String userName = enterpriseUserDAO.getUserName(interviewInfo.getInterviewerUserId());
Long lineId = interviewInfo.getLineId();
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
if(Objects.isNull(lineInfo)){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
Integer joinInterviewStatus = JoinInterviewStatusEnum.getJoinInterviewStatus(interviewInfo.getJoinInterviewStatus(), userType);
if(Objects.isNull(interviewInfo.getActualStartTime())){
interviewInfo.setActualStartTime(new Date());
}
interviewInfo.setRoomStatus(RoomStatus.OPEN.getCode());
interviewInfo.setJoinInterviewStatus(joinInterviewStatus);
lineInterviewDAO.updateInterviewInfo(interviewInfo);
String userSig = TRTCUtils.genUserSig(sdkAppId, key, interviewUserId);
return new EnterInterviewVO(interviewInfo.getLineId(), lineInfo.getPartnerId(), interviewInfo.getRoomId(), userSig, interviewInfo.getInterviewerUserId(), userName, lineInfo.getUsername());
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Integer finishInterview(Long interviewId, String userId) { public Integer finishInterview(Long interviewId, String userId) {
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfoById(interviewId); return null;
if(Objects.isNull(interviewInfo)){
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
//已关闭就禁止进入房间了
if (interviewInfo.getRoomStatus().equals(RoomStatus.CLOSED.getCode())) {
throw new ServiceException(ErrorCodeEnum.ROOM_STATUS_ERROR);
}
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(interviewInfo.getLineId());
if(!WorkflowSubStageEnum.isReappointmentStage(lineInfo.getWorkflowSubStage())){
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
}
LineInterviewDO updateInterviewInfo = new LineInterviewDO();
updateInterviewInfo.setId(interviewId);
updateInterviewInfo.setRoomStatus(RoomStatus.CLOSED.getCode());
updateInterviewInfo.setActualEndTime(new Date());
updateInterviewInfo.setInterviewStatus(InterviewStatusEnum.WAIT_AUDIT.getCode());
//更新线索状态
WorkflowSubStageStatusEnum workflowSubStageStatus = null;
if(InterviewTypeEnum.INTERVIEW.getCode().equals(interviewInfo.getInterviewType())){
workflowSubStageStatus = WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_35;
}
if(InterviewTypeEnum.SECOND_INTERVIEW.getCode().equals(interviewInfo.getInterviewType())){
workflowSubStageStatus = WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_110;
}
lineInfoDAO.updateWorkflowStage(interviewInfo.getLineId(), null, workflowSubStageStatus,userId);
return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo);
} }
@Override @Override
public InterviewDetailVO getInterviewDetail(Long lineId, Integer interviewType) { public InterviewDetailVO getInterviewDetail(Long lineId, Integer interviewType) {
InterviewTypeEnum interviewTypeEnum = InterviewTypeEnum.match(interviewType);
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineId, interviewTypeEnum);
if(Objects.isNull(lineInfo) || Objects.isNull(interviewInfo)){
return null; return null;
} }
InterviewDetailVO result = InterviewDetailVO.convertVO(lineInfo, interviewInfo);
result.setInterviewerUsername(enterpriseUserDAO.getUserName(interviewInfo.getInterviewerUserId()));
Long auditId = interviewInfo.getAuditId();
if(Objects.nonNull(auditId) && auditId > CommonConstants.ZERO_LONG){
LineAuditInfoDO auditInfo = lineAuditInfoDAO.getAuditInfo(auditId);
result.setAuditInfo(LineAuditInfoVO.convertVO(auditInfo));
}
return result;
}
@Override @Override
public Integer uploadVideo(Long interviewId, List<String> videoUrlList) { public Integer uploadVideo(Long interviewId, List<String> videoUrlList) {
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfoById(interviewId); return null;
if(Objects.isNull(interviewInfo)){
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
List<String> videoList = JSONObject.parseArray(interviewInfo.getVideoUrl(), String.class);
if(videoList == null){
videoList = new ArrayList<>();
}
videoList.addAll(videoUrlList);
LineInterviewDO updateInterviewInfo = new LineInterviewDO();
updateInterviewInfo.setId(interviewId);
updateInterviewInfo.setVideoUrl(JSONObject.toJSONString(videoList.stream().distinct().collect(Collectors.toList())));
return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo);
} }
@Override @Override
public Integer reappointment(Long lineId) { public Integer reappointment(Long lineId) {
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId); return null;
if(Objects.isNull(lineInfo)){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
if(!WorkflowSubStageEnum.isReappointmentStage(lineInfo.getWorkflowSubStage())){
log.info("当前线索状态不允许重新预约");
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
}
WorkflowSubStageStatusEnum workflowSubStageStatus = null;
if(WorkflowSubStageEnum.FIRST_INTERVIEWS.getCode().equals(lineInfo.getWorkflowSubStage())){
workflowSubStageStatus = WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_42;
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.FIRST_INTERVIEW_REAPPOINTMENT, null);
}
if(WorkflowSubStageEnum.SECOND_INTERVIEWS.getCode().equals(lineInfo.getWorkflowSubStage())){
workflowSubStageStatus = WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_120;
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SECOND_INTERVIEW_REAPPOINTMENT, null);
}
return lineInfoDAO.updateWorkflowStage(lineInfo.getId(), null, workflowSubStageStatus,null);
} }
@Override @Override
protected Boolean auditPass(Long auditId, LineInfoDO lineInfo, String userId) { protected Boolean auditPass(Long auditId, LineInfoDO lineInfo, String userId) {
InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage()); return null;
WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage());
WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage();
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineInfo.getId(), interviewType);
if(Objects.isNull(interviewInfo)){
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
if(!InterviewStatusEnum.WAIT_AUDIT.getCode().equals(interviewInfo.getInterviewStatus())){
throw new ServiceException(ErrorCodeEnum.INTERVIEW_STATUS_WAS_AUDITED);
}
LineInterviewDO updateInterviewInfo = new LineInterviewDO();
updateInterviewInfo.setId(interviewInfo.getId());
updateInterviewInfo.setAuditId(auditId);
updateInterviewInfo.setInterviewStatus(InterviewStatusEnum.PASS.getCode());
if(WorkflowSubStageEnum.INVITING_INTERVIEWS.equals(workflowSubStageEnum)){
//更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(),userId);
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.FIRST_INTERVIEW_APPOINTMENT_SUCCESS, null);
}
if(WorkflowSubStageEnum.FIRST_INTERVIEWS.equals(workflowSubStageEnum)){
//更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(),userId);
//一审稽核
auditStatusService.insert(lineInfo.getId(),interviewInfo.getId(),auditId,AuditStageEnum.ONE.getCode());
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.INTENTION_PAYMENT, null);
}
if(WorkflowSubStageEnum.SECOND_INTERVIEWS.equals(workflowSubStageEnum)){
LineInfoDO updateLine = new LineInfoDO();
updateLine.setId(lineInfo.getId());
updateLine.setWorkflowStage(WorkflowStageEnum.STORE.getCode());
updateLine.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_125.getCode());
EnterpriseUserDO enterpriseUser = userAuthMappingService.getUserByRoleEnumAndWantShopAreaId(UserRoleEnum.SELECT_SITE_COMMISSIONER, lineInfo.getWantShopAreaId());
String developmentManager = Optional.ofNullable(enterpriseUser).map(EnterpriseUserDO::getUserId).orElse(null);
updateLine.setDevelopmentManager(developmentManager);
updateLine.setUpdateUserId(userId);
lineInfoDAO.updateLineInfo(updateLine);
//初始化店铺
shopService.initShop(lineInfo);
//发送短信
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.TRAINING_REGISTER_SUCCESS, null);
//二审稽核
auditStatusService.insert(lineInfo.getId(),interviewInfo.getId(),auditId,AuditStageEnum.TWO.getCode());
//发送短信
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SECOND_INTERVIEW_SUCCESS, null);
String wantShopName = hyOpenAreaInfoDAO.selectNameMapById(lineInfo.getWantShopAreaId());
Map<String, String> messageMap = new HashMap<>();
messageMap.put("lineId", String.valueOf(lineInfo.getId()));
messageMap.put("partnerUsername", lineInfo.getUsername());
messageMap.put("partnerMobile", lineInfo.getMobile());
messageMap.put("wantShopName", wantShopName);
commonService.sendMessage(Arrays.asList(developmentManager), MessageEnum.MESSAGE_14, messageMap);
}
return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo) > 0;
} }
@Override @Override
protected Boolean auditReject(Long auditId, LineInfoDO lineInfo, String userId) { protected Boolean auditReject(Long auditId, LineInfoDO lineInfo, String userId) {
InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage()); return null;
if(InterviewTypeEnum.MEET.equals(interviewType)){
return Boolean.FALSE;
} }
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineInfo.getId(), interviewType);
if(Objects.isNull(interviewInfo)){
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
LineInterviewDO updateInterviewInfo = new LineInterviewDO();
updateInterviewInfo.setId(interviewInfo.getId());
updateInterviewInfo.setAuditId(auditId);
updateInterviewInfo.setInterviewStatus(InterviewStatusEnum.NOT_PASS.getCode());
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), null, WorkflowSubStageStatusEnum.getInterviewRejectStatus(interviewType),userId);
String noticeTime = DateUtils.parseDateToStr(DateUtils.NOTICE_DATE, interviewInfo.getStartTime());
String interviewUserName = enterpriseUserDAO.getUserName(interviewInfo.getInterviewerUserId());
Map<String, String> messageMap = new HashMap<>();
messageMap.put("lineId", String.valueOf(lineInfo.getId()));
messageMap.put("partnerUsername", lineInfo.getUsername());
messageMap.put("interviewTime", noticeTime);
messageMap.put("interviewUsername", interviewUserName);
commonService.sendMessage(Arrays.asList(lineInfo.getInvestmentManager()), MessageEnum.MESSAGE_4, messageMap);
return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo) > 0;
}
} }

View File

@@ -346,15 +346,15 @@ public class LineServiceImpl implements LineService {
HashMap<Integer, Date> map = new HashMap<>(); HashMap<Integer, Date> map = new HashMap<>();
interviewDOMap.forEach((k, v) ->{ interviewDOMap.forEach((k, v) ->{
if (k.equals(InterviewTypeEnum.MEET.getCode())){ // if (k.equals(InterviewTypeEnum.MEET.getCode())){
map.put(WorkflowSubStageEnum.INVITING_INTERVIEWS.getCode(),dateMap.get(v)); // map.put(WorkflowSubStageEnum.INVITING_INTERVIEWS.getCode(),dateMap.get(v));
} // }
if (k.equals(InterviewTypeEnum.INTERVIEW.getCode())){ // if (k.equals(InterviewTypeEnum.INTERVIEW.getCode())){
map.put(WorkflowSubStageEnum.FIRST_INTERVIEWS.getCode(),dateMap.get(v)); // map.put(WorkflowSubStageEnum.FIRST_INTERVIEWS.getCode(),dateMap.get(v));
} // }
if (k.equals(InterviewTypeEnum.SECOND_INTERVIEW.getCode())){ // if (k.equals(InterviewTypeEnum.SECOND_INTERVIEW.getCode())){
map.put(WorkflowSubStageEnum.SECOND_INTERVIEWS.getCode(),dateMap.get(v)); // map.put(WorkflowSubStageEnum.SECOND_INTERVIEWS.getCode(),dateMap.get(v));
} // }
if (k.equals(10)){ if (k.equals(10)){
map.put(WorkflowSubStageEnum.INTEND.getCode(),dateMap.get(v)); map.put(WorkflowSubStageEnum.INTEND.getCode(),dateMap.get(v));
} }
@@ -365,9 +365,9 @@ public class LineServiceImpl implements LineService {
if (signingBaseInfoDO != null){ if (signingBaseInfoDO != null){
map.put(WorkflowSubStageEnum.SIGN_INTENT_AGREEMENT.getCode(),signingBaseInfoDO.getCreateTime()); map.put(WorkflowSubStageEnum.SIGN_INTENT_AGREEMENT.getCode(),signingBaseInfoDO.getCreateTime());
} }
if (trainingExperience != null){ // if (trainingExperience != null){
map.put(WorkflowSubStageEnum.STORE_EXPERIENCE.getCode(),trainingExperience.getExperienceEndTime()); // map.put(WorkflowSubStageEnum.STORE_EXPERIENCE.getCode(),trainingExperience.getExperienceEndTime());
} // }
List<IntendProcessVO> list = new ArrayList<>(); List<IntendProcessVO> list = new ArrayList<>();
for (WorkflowSubStageEnum workflowSubStageEnum : WorkflowSubStageEnum.values()) { for (WorkflowSubStageEnum workflowSubStageEnum : WorkflowSubStageEnum.values()) {

View File

@@ -61,66 +61,66 @@ public class TrainingExperienceServiceImpl extends LineFlowService implements Tr
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean distribution(TrainingExperienceDistributionRequest request) { public boolean distribution(TrainingExperienceDistributionRequest request) {
if (Objects.isNull(request)) { // if (Objects.isNull(request)) {
return Boolean.FALSE; // return Boolean.FALSE;
} // }
if (Objects.isNull(request.getLineId())) { // if (Objects.isNull(request.getLineId())) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_LINE_ID_IS_NULL); // throw new ServiceException(ErrorCodeEnum.INTERVIEW_LINE_ID_IS_NULL);
} // }
LeaseBaseInfoDO leaseBaseInfoDO = request.toLeaseBaseInfoDO(); // LeaseBaseInfoDO leaseBaseInfoDO = request.toLeaseBaseInfoDO();
Date currentDate = new Date(); // Date currentDate = new Date();
LineInfoDO lineInfoDO = new LineInfoDO(); // LineInfoDO lineInfoDO = new LineInfoDO();
if (request.getExperienceStartTime().compareTo(request.getExperienceEndTime()) >= 0) { // if (request.getExperienceStartTime().compareTo(request.getExperienceEndTime()) >= 0) {
throw new ServiceException(ErrorCodeEnum.TIME_FALSE); // throw new ServiceException(ErrorCodeEnum.TIME_FALSE);
} // }
if (currentDate.before(request.getExperienceStartTime())) { // if (currentDate.before(request.getExperienceStartTime())) {
leaseBaseInfoDO.setExperienceStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode()); // leaseBaseInfoDO.setExperienceStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode());
lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode()); // lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode());
LineInfoDO msgLineInfo = lineInfoMapper.getByLineId(request.getLineId()); // LineInfoDO msgLineInfo = lineInfoMapper.getByLineId(request.getLineId());
Map<String, String> templateParam = new HashMap<>(); // Map<String, String> templateParam = new HashMap<>();
templateParam.put("shopName", request.getStoreName()); // templateParam.put("shopName", request.getStoreName());
templateParam.put("experienceTime", String.format("%s 到 %s", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, request.getExperienceStartTime()), // templateParam.put("experienceTime", String.format("%s 到 %s", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, request.getExperienceStartTime()),
DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, request.getExperienceEndTime()))); // DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, request.getExperienceEndTime())));
commonService.sendSms(msgLineInfo.getMobile(), SMSMsgEnum.SHOP_EXPERIENCE,templateParam); // commonService.sendSms(msgLineInfo.getMobile(), SMSMsgEnum.SHOP_EXPERIENCE,templateParam);
} else if (currentDate.after(request.getExperienceStartTime()) || currentDate.before(request.getExperienceEndTime())) { // } else if (currentDate.after(request.getExperienceStartTime()) || currentDate.before(request.getExperienceEndTime())) {
leaseBaseInfoDO.setExperienceStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_90.getCode()); // leaseBaseInfoDO.setExperienceStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_90.getCode());
lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_90.getCode()); // lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_90.getCode());
} else { // } else {
throw new ServiceException("时间"); // throw new ServiceException("时间");
} // }
trainingExperienceMapper.insert(leaseBaseInfoDO); // trainingExperienceMapper.insert(leaseBaseInfoDO);
lineInfoDO.setWorkflowSubStage(WorkflowSubStageEnum.STORE_EXPERIENCE.getCode()); // lineInfoDO.setWorkflowSubStage(WorkflowSubStageEnum.STORE_EXPERIENCE.getCode());
lineInfoDO.setId(request.getLineId()); // lineInfoDO.setId(request.getLineId());
lineInfoMapper.updateByPrimaryKeySelective(lineInfoDO); // lineInfoMapper.updateByPrimaryKeySelective(lineInfoDO);
return true; return true;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void experienceStatusChange(Long lineId, Integer status, String abandonCause) { public void experienceStatusChange(Long lineId, Integer status, String abandonCause) {
trainingExperienceMapper.updateStatus(lineId, status, abandonCause); // trainingExperienceMapper.updateStatus(lineId, status, abandonCause);
LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(lineId); // LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(lineId);
if (ExperienceStatusEnum.DONE.getExperienceStatus().equals(status)) { // if (ExperienceStatusEnum.DONE.getExperienceStatus().equals(status)) {
if (Objects.isNull(lineInfoDO)) { // if (Objects.isNull(lineInfoDO)) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PARTNER_NOT_EXIST); // throw new ServiceException(ErrorCodeEnum.INTERVIEW_PARTNER_NOT_EXIST);
} // }
lineInfoDO.setWorkflowSubStage(WorkflowSubStageEnum.SECOND_INTERVIEWS.getCode()); // lineInfoDO.setWorkflowSubStage(WorkflowSubStageEnum.SECOND_INTERVIEWS.getCode());
lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_100.getCode()); // lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_100.getCode());
lineInfoMapper.updateByPrimaryKeySelective(lineInfoDO); // lineInfoMapper.updateByPrimaryKeySelective(lineInfoDO);
commonService.sendSms(lineInfoDO.getMobile(),SMSMsgEnum.SECOND_INTERVIEW_APPOINTMENT); // commonService.sendSms(lineInfoDO.getMobile(),SMSMsgEnum.SECOND_INTERVIEW_APPOINTMENT);
} else { // } else {
lineInfoDO.setWorkflowSubStage(WorkflowSubStageEnum.STORE_EXPERIENCE.getCode()); // lineInfoDO.setWorkflowSubStage(WorkflowSubStageEnum.STORE_EXPERIENCE.getCode());
lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_95.getCode()); // lineInfoDO.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_95.getCode());
lineInfoMapper.updateByPrimaryKeySelective(lineInfoDO); // lineInfoMapper.updateByPrimaryKeySelective(lineInfoDO);
//
Map<String, String> requestMap = new HashMap<>(); // Map<String, String> requestMap = new HashMap<>();
requestMap.put("partnerUsername",lineInfoDO.getUsername()); // requestMap.put("partnerUsername",lineInfoDO.getUsername());
requestMap.put("partnerMobile",lineInfoDO.getMobile()); // requestMap.put("partnerMobile",lineInfoDO.getMobile());
requestMap.put("lineId",String.valueOf(lineInfoDO.getId())); // requestMap.put("lineId",String.valueOf(lineInfoDO.getId()));
commonService.sendMessage(Collections.singletonList(lineInfoDO.getInvestmentManager()), // commonService.sendMessage(Collections.singletonList(lineInfoDO.getInvestmentManager()),
MessageEnum.MESSAGE_33, // MessageEnum.MESSAGE_33,
requestMap); // requestMap);
} // }
} }
@@ -132,17 +132,17 @@ public class TrainingExperienceServiceImpl extends LineFlowService implements Tr
roleNames.add("店长"); roleNames.add("店长");
LeaseBaseInfoDO leaseBaseInfoDO = trainingExperienceMapper.selectByLineId(lineId); LeaseBaseInfoDO leaseBaseInfoDO = trainingExperienceMapper.selectByLineId(lineId);
if (Objects.isNull(leaseBaseInfoDO)) { // if (Objects.isNull(leaseBaseInfoDO)) {
leaseBaseInfoDO = new LeaseBaseInfoDO(); // leaseBaseInfoDO = new LeaseBaseInfoDO();
LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(lineId); // LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(lineId);
if (Objects.nonNull(lineInfoDO) // if (Objects.nonNull(lineInfoDO)
&& lineInfoDO.getWorkflowSubStage().equals(WorkflowSubStageEnum.STORE_EXPERIENCE.getCode()) // && lineInfoDO.getWorkflowSubStage().equals(WorkflowSubStageEnum.STORE_EXPERIENCE.getCode())
&& lineInfoDO.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode())) { // && lineInfoDO.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode())) {
leaseBaseInfoDO.setExperienceStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode()); // leaseBaseInfoDO.setExperienceStatus(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode());
return leaseBaseInfoDO; // return leaseBaseInfoDO;
} // }
return null; // return null;
} // }
List<SysRoleDO> xfStoreManager = sysRoleMapper.getXFStoreManager(roleNames); List<SysRoleDO> xfStoreManager = sysRoleMapper.getXFStoreManager(roleNames);
List<Long> roleIds = xfStoreManager.stream().map(SysRoleDO::getId).collect(Collectors.toList()); List<Long> roleIds = xfStoreManager.stream().map(SysRoleDO::getId).collect(Collectors.toList());
//店长角色的用户id //店长角色的用户id

View File

@@ -92,43 +92,8 @@ public class XxlJobHandler {
@Resource @Resource
private OpenAcceptanceInfoDAO openAcceptanceInfoDAO; private OpenAcceptanceInfoDAO openAcceptanceInfoDAO;
/**
* 每天都将待体验门店信息变更到体验中
*/
@XxlJob("updateStoreExperience")
public void updateStoreExperience() {
log.info("------实训体验状态变更------");
String param = XxlJobHelper.getJobParam();
String enterpriseId = param;
//查出数据并更新为体验中
List<LeaseBaseInfoDO> leaseBaseInfoDOS = trainingExperienceMapper.selectESTime();
if (CollectionUtils.isEmpty(leaseBaseInfoDOS)) {
log.info("------今日没有待更新数据------");
return;
}
//线索ids
List<Long> lineIds = leaseBaseInfoDOS.stream().map(LeaseBaseInfoDO::getLineId).collect(Collectors.toList());
WorkflowSubStageStatusEnum storeExperience90 = WorkflowSubStageStatusEnum.STORE_EXPERIENCE_90;
lineInfoMapper.toExperiencing(lineIds, storeExperience90.getCode());
log.info("------实训体验状态变更结束------");
XxlJobHelper.handleSuccess();
}
@XxlJob("batchUpdateInterviewWorkflowStage")
public void batchUpdateInterviewWorkflowStage() {
log.info("------面谈待审核状态变更------");
List<LineInterviewDO> interviewList = lineInterviewDAO.getWaitAuditInterview();
if (CollectionUtils.isEmpty(interviewList)) {
log.info("------今日没有待更新数据------");
return;
}
List<Long> lineIds = interviewList.stream().map(LineInterviewDO::getLineId).collect(Collectors.toList());
List<Long> interviewIds = interviewList.stream().map(LineInterviewDO::getId).collect(Collectors.toList());
lineInfoDAO.batchUpdateInterviewWorkflowStage(lineIds, WorkflowSubStageEnum.INVITING_INTERVIEWS, WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_20);
lineInterviewDAO.batchUpdateInterviewStatus(interviewIds, InterviewStatusEnum.WAIT_AUDIT);
XxlJobHelper.handleSuccess();
}
/** /**
* @Auther: wangshuo * @Auther: wangshuo