Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner

This commit is contained in:
苏竹红
2023-07-05 16:40:24 +08:00
7 changed files with 69 additions and 31 deletions

View File

@@ -38,8 +38,14 @@ public enum OperateLogFieldValueEnum {
BEFORE_USERINFO_UPDATE("beforeUserinfoUpdate", "修改前的用户信息"),
AFTER_USERINFO_UPDATE("afterUserinfoUpdate", "修改后的用户信息"),
BEFORE_INTENT_INFO_UPDATE("beforeIntentInfoUpdate", "修改前的意向申请"),
AFTER_INTENT_INFO_UPDATE("afterIntentInfoUpdate", "修改后的意向申请"),
BEFORE_BASE_INFO_UPDATE("beforeBaseInfoUpdate", "修改前的意向书基本信息"),
AFTER_BASE_INFO_UPDATE("afterBaseInfoUpdate", "修改后的意向书基本信息"),
BEFORE_INTENT_INFO_UPDATE("beforeIntentInfoUpdate", "修改前的意向行业信息"),
AFTER_INTENT_INFO_UPDATE("afterIntentInfoUpdate", "修改后的意向行业信息"),
BEFORE_CLERK_INFO_UPDATE("beforeClerkUpdate", "修改前的意向书员工信息"),
AFTER_CLERK_INFO_UPDATE("afterClerkUpdate", "修改后的意向书员工信息"),
;

View File

@@ -29,8 +29,8 @@ public enum OperateTypeEnum {
REJECT_INTERVIEW("reject_interview", "合作资格面试-拒绝并结束跟进", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON,REJECT_REAL_REASON, CERTIFY_FILE)),
CREATE_QUALIFYVERIFY("create_qualifyverify", "合作资格面试-创建资格审核", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME,SUMMARY,QUALI_VERIFY_CONTENT)),
USERINFO_UPDATE("userinfo_update", "修改(修改意向信息)", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_USERINFO_UPDATE, AFTER_USERINFO_UPDATE)),
INTENT_INFO_SUBMIT("intent_info_submit", "提交意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INTENT_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE)),
INTENT_INFO_UPDATE("intent_info_update", "修改意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INTENT_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE)),
INTENT_INFO_SUBMIT("intent_info_submit", "提交意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, AFTER_BASE_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE, AFTER_CLERK_INFO_UPDATE)),
INTENT_INFO_UPDATE("intent_info_update", "修改意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_BASE_INFO_UPDATE, AFTER_BASE_INFO_UPDATE, BEFORE_INTENT_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE, BEFORE_CLERK_INFO_UPDATE, AFTER_CLERK_INFO_UPDATE)),
ADD_TAGS("add_tags", "修改意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME)),
;

View File

@@ -4,6 +4,7 @@ import lombok.Data;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
/**
* @Author: wxp
@@ -20,8 +21,8 @@ public class WantInfoUpdateDTO extends LogBasicDTO{
private IntentInfoUpdate beforeIntentInfoUpdate;
private IntentInfoUpdate afterIntentInfoUpdate;
private ClerkUpdate beforeClerkUpdate;
private ClerkUpdate afterClerkUpdate;
private List<ClerkUpdate> beforeClerkUpdate;
private List<ClerkUpdate> afterClerkUpdate;
@Data
public static class BaseInfoUpdate{

View File

@@ -124,6 +124,7 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
}
WantInfoUpdateDTO.BaseInfoUpdate beforeBaseInfoUpdate = new WantInfoUpdateDTO.BaseInfoUpdate();
WantInfoUpdateDTO.BaseInfoUpdate afterBaseInfoUpdate = new WantInfoUpdateDTO.BaseInfoUpdate();
OperateTypeEnum operateTypeEnum = OperateTypeEnum.INTENT_INFO_UPDATE;
HyPartnerBaseInfoDO baseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
if(baseInfoDO == null){
@@ -131,6 +132,7 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
fillBaseInfo(baseInfoDO, request);
hyPartnerBaseInfoDAO.insertSelective(baseInfoDO);
BeanUtil.copyProperties(baseInfoDO, afterBaseInfoUpdate);
operateTypeEnum = OperateTypeEnum.INTENT_INFO_SUBMIT;
}else {
BeanUtil.copyProperties(baseInfoDO, beforeBaseInfoUpdate);
fillBaseInfo(baseInfoDO, request);
@@ -164,7 +166,7 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
WantInfoUpdateDTO log = WantInfoUpdateDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getPartnerId()).operateUsername(operator.getUsername())
.operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC))
.beforeBaseInfoUpdate(beforeBaseInfoUpdate).afterBaseInfoUpdate(afterBaseInfoUpdate).build();
logService.recordPartnerBizLog(operator, baseInfoDO.getPartnerLineId(), OperateTypeEnum.INTENT_INFO_UPDATE,log);
logService.recordPartnerBizLog(operator, baseInfoDO.getPartnerLineId(), operateTypeEnum,log);
return Boolean.TRUE;
}
@@ -220,9 +222,6 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
oldBaseInfo.getSex(), oldBaseInfo.getBirthdate(), oldBaseInfo.getNation(), oldBaseInfo.getLiveAddress(), oldBaseInfo.getStatus());
newBaseInfo.setStatus(oldBaseInfo.getStatus());
hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(newBaseInfo);
// 老的身份证信息置空
fillBaseInfoIdCard(oldBaseInfo, null, null, null, null, null, null, null, null, null);
oldBaseInfo.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode()));
//修改名称
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(newPartnerId);
HyPartnerIntentInfoDO oldIntentInfo = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(oldLineInfo.getPartnerId(), oldLineInfo.getId());
@@ -233,6 +232,9 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
hyPartnerUserInfoDO.setAcceptAdjustType(oldIntentInfo.getAcceptAdjustType());
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
}
// 老的身份证信息置空
fillBaseInfoIdCard(oldBaseInfo, null, null, null, null, null, null, null, null, null);
oldBaseInfo.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode()));
hyPartnerBaseInfoDAO.updateByPrimaryKey(oldBaseInfo);
hyPartnerIntentInfoDAO.updateLineId(newPartnerId,newLindId,oldLineInfo.getId());
hyPartnerClerkDAO.updateLineId(newPartnerId,newLindId,oldLineInfo.getId());

View File

@@ -1,26 +1,37 @@
package com.cool.store.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.RedisConstant;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dao.HyPartnerClerkDAO;
import com.cool.store.dto.enterprise.SysDepartmentDTO;
import com.cool.store.dto.log.WantInfoUpdateDTO;
import com.cool.store.entity.HyPartnerClerkDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.OperateTypeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.PartnerClerkInfoRequest;
import com.cool.store.service.HyPartnerClerkService;
import com.cool.store.service.LogService;
import com.cool.store.utils.CoolDateUtils;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.StringUtil;
import com.cool.store.vo.PartnerClerkVO;
import com.cool.store.vo.PartnerUserInfoVO;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -40,6 +51,9 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService {
@Resource
private RedisUtilPool redisUtilPool;
@Autowired
private LogService logService;
@Override
public List<PartnerClerkVO> getPartnerClerkList(Long lineId) {
List<HyPartnerClerkDO> hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId);
@@ -60,15 +74,18 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService {
@Override
public Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request) {
log.info("HyPartnerClerkServiceImpl#submitPartnerClerkInfo request:{}", JSONObject.toJSONString(request));
if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
String cacheKey = MessageFormat.format(RedisConstant.PARTNER_CLERKINFO_CACHE_KEY, request.getPartnerId(), request.getPartnerLineId());
if(!request.getSubmitFlag()){
// 自动保存时
redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS);
return Boolean.TRUE;
}
if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
List<WantInfoUpdateDTO.ClerkUpdate> beforeClerkUpdate = Lists.newArrayList();
List<WantInfoUpdateDTO.ClerkUpdate> afterClerkUpdate = Lists.newArrayList();
List<HyPartnerClerkDO> beforClerkDOList = hyPartnerClerkDAO.listByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
hyPartnerClerkDAO.deleteByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
List<HyPartnerClerkDO> clerkDOList = new ArrayList<>();
ListUtils.emptyIfNull(request.getPartnerClerkRequestList()).stream().forEach(x->{
@@ -83,8 +100,18 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService {
});
if (CollectionUtils.isNotEmpty(clerkDOList)){
hyPartnerClerkDAO.batchInsert(clerkDOList);
afterClerkUpdate = JSONObject.parseArray(JSONObject.toJSONString(clerkDOList), WantInfoUpdateDTO.ClerkUpdate.class);
}
if (CollectionUtils.isNotEmpty(beforClerkDOList)){
beforeClerkUpdate = JSONObject.parseArray(JSONObject.toJSONString(beforClerkDOList), WantInfoUpdateDTO.ClerkUpdate.class);
}
redisUtilPool.delKey(cacheKey);
//记录日志
PartnerUserInfoVO operator = PartnerUserHolder.getUser();
WantInfoUpdateDTO log = WantInfoUpdateDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getPartnerId()).operateUsername(operator.getUsername())
.operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC))
.beforeClerkUpdate(beforeClerkUpdate).afterClerkUpdate(afterClerkUpdate).build();
logService.recordPartnerBizLog(operator, request.getPartnerLineId(), OperateTypeEnum.INTENT_INFO_UPDATE,log);
return true;
}

View File

@@ -193,13 +193,14 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
}
WantInfoUpdateDTO.IntentInfoUpdate beforeIntentInfoUpdate = new WantInfoUpdateDTO.IntentInfoUpdate();
WantInfoUpdateDTO.IntentInfoUpdate afterIntentInfoUpdate = new WantInfoUpdateDTO.IntentInfoUpdate();
OperateTypeEnum operateTypeEnum = OperateTypeEnum.INTENT_INFO_UPDATE;
HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
if(intentInfoDO == null){
intentInfoDO = new HyPartnerIntentInfoDO();
fillIntentInfo(intentInfoDO, request);
hyPartnerIntentInfoDAO.insertSelective(intentInfoDO);
BeanUtil.copyProperties(intentInfoDO, afterIntentInfoUpdate);
operateTypeEnum = OperateTypeEnum.INTENT_INFO_SUBMIT;
}else {
BeanUtil.copyProperties(intentInfoDO, beforeIntentInfoUpdate);
fillIntentInfo(intentInfoDO, request);
@@ -231,7 +232,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
WantInfoUpdateDTO log = WantInfoUpdateDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getPartnerId()).operateUsername(operator.getUsername())
.operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC))
.beforeIntentInfoUpdate(beforeIntentInfoUpdate).afterIntentInfoUpdate(afterIntentInfoUpdate).build();
logService.recordPartnerBizLog(operator,hyPartnerLineInfoDO.getId(), OperateTypeEnum.INTENT_INFO_UPDATE,log);
logService.recordPartnerBizLog(operator,hyPartnerLineInfoDO.getId(), operateTypeEnum, log);
return hyPartnerLineInfoDO.getLineStatus();
}

View File

@@ -169,16 +169,7 @@ public class InterviewServiceImpl implements InterviewService {
if(RoomStatus.WAIT_FOR_OPEN.getCode() != Integer.parseInt(interviewInfo.getRoomStatus())){
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
}
//1.面试官日程删除
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
if(userCalendarsEventDTO == null ){
throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
}
//2.新面试官日程新增
//1.面试官日程新增
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
createCalendarEventDTO.setStartTime(DateUtil.parse(interviewInfo.getStartTime()).getTime());
createCalendarEventDTO.setEndTime(DateUtil.parse(interviewInfo.getEndTime()).getTime());
@@ -189,18 +180,28 @@ public class InterviewServiceImpl implements InterviewService {
if(userCalendarEvent == null ){
throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
}
// 3.面试信息变更
//2.原面试官日程删除
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
if(userCalendarsEventDTO == null ){
throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
}
// 3.面试信息计划变更
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setInterviewer(request.getNewInterviewerId());
record.setUpdateTime(new Date());
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
//更新面试计划信息
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewPlanId()));
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
record.setFeishuScheduleId(userCalendarEvent.getEventId());
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
//更新面试信息
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewPlanId()));
hyPartnerInterviewDO.setInterviewer(request.getNewInterviewerId());
hyPartnerInterviewDO.setUpdateTime(new Date());
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);