coolcollege_intelligent_74
This commit is contained in:
@@ -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;
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
return null;
|
||||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
|
|
||||||
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineId, interviewTypeEnum);
|
|
||||||
if(Objects.isNull(lineInfo) || Objects.isNull(interviewInfo)){
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user