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

This commit is contained in:
zhangchenbiao
2024-04-15 09:50:41 +08:00
22 changed files with 493 additions and 61 deletions

View File

@@ -56,7 +56,7 @@ public class LineInfoDAO {
return lineInfoMapper.updateByPrimaryKeySelective(param); return lineInfoMapper.updateByPrimaryKeySelective(param);
} }
public Integer updateWorkflowStage(Long lineId, WorkflowSubStageEnum workflowSubStage, WorkflowSubStageStatusEnum workflowSubStageStatus) { public Integer updateWorkflowStage(Long lineId, WorkflowSubStageEnum workflowSubStage, WorkflowSubStageStatusEnum workflowSubStageStatus,String userId) {
if(Objects.isNull(workflowSubStageStatus)){ if(Objects.isNull(workflowSubStageStatus)){
log.info("更新线索阶段,子阶段 和 子阶段状态不能同时为空"); log.info("更新线索阶段,子阶段 和 子阶段状态不能同时为空");
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
@@ -66,6 +66,9 @@ public class LineInfoDAO {
if(Objects.nonNull(workflowSubStage)){ if(Objects.nonNull(workflowSubStage)){
lineInfo.setWorkflowSubStage(workflowSubStage.getCode()); lineInfo.setWorkflowSubStage(workflowSubStage.getCode());
} }
if(StringUtils.isNotEmpty(userId)){
lineInfo.setUpdateUserId(userId);
}
lineInfo.setWorkflowSubStageStatus(workflowSubStageStatus.getCode()); lineInfo.setWorkflowSubStageStatus(workflowSubStageStatus.getCode());
return lineInfoMapper.updateByPrimaryKeySelective(lineInfo); return lineInfoMapper.updateByPrimaryKeySelective(lineInfo);
} }

View File

@@ -1,9 +1,22 @@
package com.cool.store.mapper; package com.cool.store.mapper;
import com.cool.store.entity.AuditStatusDO; import com.cool.store.entity.AuditStatusDO;
import com.cool.store.response.CheckListResponse;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.Date;
import java.util.List;
@org.apache.ibatis.annotations.Mapper @org.apache.ibatis.annotations.Mapper
public interface AuditStatusMapper extends Mapper<AuditStatusDO> { public interface AuditStatusMapper extends Mapper<AuditStatusDO> {
List<CheckListResponse> checkList(@Param("keyWord") String partnerNameOrPhone,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("region") String region,
@Param("checkStatus") Integer checkStatus,
@Param("checkStage") Integer checkStage,
@Param("pageNum") Integer pageNum,
@Param("pageSize") Integer pageSize);
} }

View File

@@ -28,4 +28,95 @@
update_time, update_time,
audit_stage audit_stage
</sql> </sql>
<select id="checkList" resultType="com.cool.store.response.CheckListResponse">
SELECT
a.id AS checkId,
a.line_id as lineId,
a.interview_id as interviewId,
a.audit_status as checkStatus,
a.audit_stage,
a.audit_user_id,
a.audit_user_name as checkUser,
a.create_time,
a.update_time AS checkTime,
l.id AS line_id,
l.partner_id,
l.region_id AS line_region_id,
l.mobile AS mobile,
l.username as interviewName,
l.sex,
l.want_shop_area_id as wantRegion,
l.live_address,
l.workflow_stage,
l.workflow_sub_stage,
l.workflow_sub_stage_status,
l.want_shop_num,
l.select_site_num,
l.prepare_shop_num,
l.open_shop_num,
l.line_source,
l.investment_manager as investmentId,
l.development_manager,
l.first_interviewer,
l.second_interviewer,
l.user_portrait,
l.join_status,
l.line_status,
l.create_time AS line_create_time,
l.update_time AS line_update_time,
l.create_user_id,
l.update_user_id,
l.deleted,
l.partner_num,
i.id AS interview_id,
i.interview_date,
i.start_time,
i.end_time,
i.join_interview_status,
i.actual_start_time,
i.actual_end_time,
i.room_id,
i.room_password,
i.interviewer_user_id as intervieweeId,
i.room_status,
i.interview_status,
i.interview_type,
i.video_url,
i.audit_id AS interview_audit_id,
i.calendars_event_id,
i.deleted AS interview_deleted,
i.create_time AS interview_create_time,
i.update_time AS interview_update_time,
lai.create_time AS intervieweePassTime
FROM
xfsg_audit_status a
LEFT JOIN
xfsg_line_info l ON a.line_id = l.id
LEFT JOIN
xfsg_line_interview i ON a.interview_id = i.id
LEFT JOIN
xfsg_line_audit_info lai ON lai.id = i.audit_id
<where>
<if test="keyWord != null and keyWord != ''">
AND (
l.username = #{keyWord}
OR l.mobile = #{keyWord}
)
</if>
<if test="startTime != null and endTime != null">
AND lai.create_time BETWEEN #{startTime} AND #{endTime}
</if>
<if test="region != null and region != ''">
AND l.want_shop_area_id = #{region}
</if>
<if test="checkStatus != null">
AND a.audit_status = #{checkStatus}
</if>
<if test="checkStage != null">
AND a.audit_stage = #{checkStage}
</if>
</where>
</select>
</mapper> </mapper>

View File

@@ -314,7 +314,7 @@
<select id="listByInvestmentManager" resultMap="BaseResultMap"> <select id="listByInvestmentManager" resultMap="BaseResultMap">
select * from xfsg_line_info select * from xfsg_line_info
where deleted = 0 where deleted = 0 and line_status = 1
<if test="investmentManagerUserId != null and investmentManagerUserId != ''"> <if test="investmentManagerUserId != null and investmentManagerUserId != ''">
and investment_manager = #{investmentManagerUserId} and investment_manager = #{investmentManagerUserId}
</if> </if>
@@ -329,12 +329,12 @@
<select id="listByInterview" resultMap="BaseResultMap"> <select id="listByInterview" resultMap="BaseResultMap">
select * from xfsg_line_info select * from xfsg_line_info
where deleted = 0 where deleted = 0 and line_status = 1
<if test="interviewType != null and interviewType == 1"> <if test="interviewType != null and interviewType == 1">
and first_interviewer = #{interviewId} and investment_manager = #{interviewId}
</if> </if>
<if test="interviewType != null and interviewType == 2"> <if test="interviewType != null and interviewType == 2">
and second_interviewer = #{interviewId} and investment_manager = #{interviewId}
</if> </if>
<if test="codes !=null and codes.size>0"> <if test="codes !=null and codes.size>0">
<foreach collection="codes" item="code" open="and workflow_sub_stage_status in (" close=")" separator=","> <foreach collection="codes" item="code" open="and workflow_sub_stage_status in (" close=")" separator=",">
@@ -346,15 +346,15 @@
<select id="pendingCount" resultType="com.cool.store.dto.PendingCountDTO"> <select id="pendingCount" resultType="com.cool.store.dto.PendingCountDTO">
SELECT SELECT
sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status = 5, 1, 0 ) ) AS intendPendingCount, sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status = 5, 1, 0 ) ) AS intendPendingCount,
sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status = 20, 1, 0 ) ) AS interviewPendingCount, sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status = 20, 1, 0 ) ) AS interviewPendingCount,
sum( IF ( first_interviewer = #{userId} AND workflow_sub_stage_status IN ( 30, 35, 40 ), 1, 0 ) ) AS firstInterviewPendingCount, sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status IN ( 30, 40 ), 1, 0 ) ) AS firstInterviewPendingCount,
sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status = 50, 1, 0 ) ) AS payStagePendingCount, sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status = 50, 1, 0 ) ) AS payStagePendingCount,
sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status IN ( 63, 70, 80 ), 1, 0 ) ) AS signingPendingCount, sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status IN ( 63, 70, 80 ), 1, 0 ) ) AS signingPendingCount,
sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status IN ( 85, 90 ), 1, 0 ) ) AS storeExperiencePendingCount, sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status IN ( 85, 90 ), 1, 0 ) ) AS storeExperiencePendingCount,
sum( IF ( second_interviewer = #{userId} AND workflow_sub_stage_status IN ( 105, 110, 115 ), 1, 0 ) ) AS secondInterviewPendingCount sum( IF ( investment_manager = #{userId} AND workflow_sub_stage_status IN ( 105, 115 ), 1, 0 ) ) AS secondInterviewPendingCount
FROM FROM
xfsg_line_info where deleted = 0 xfsg_line_info where deleted = 0 and line_status = 1
</select> </select>
<select id="lineList" resultMap="BaseResultMap"> <select id="lineList" resultMap="BaseResultMap">
@@ -416,10 +416,10 @@
and b.area_path like concat('%',#{wantShopAreaName},'%') and b.area_path like concat('%',#{wantShopAreaName},'%')
</if> </if>
<if test="request.queryUserId!=null and request.queryUserId!=''"> <if test="request.queryUserId!=null and request.queryUserId!=''">
<if test="request.queryType != null and request.queryType == '1' "> <if test="request.queryType != null and request.queryType == 1 ">
and a.investment_manager = #{request.queryUserId} and a.investment_manager = #{request.queryUserId}
</if> </if>
<if test="request.queryType != null and request.queryType == '2' "> <if test="request.queryType != null and request.queryType == 2 ">
and a.development_manager = #{request.queryUserId} and a.development_manager = #{request.queryUserId}
</if> </if>
</if> </if>

View File

@@ -20,7 +20,7 @@ public class AuditStatusDO {
@Column(name = "audit_status") @Column(name = "audit_status")
private Integer auditStatus; private Integer auditStatus;
@Column(name = "audit_user_id") @Column(name = "audit_user_id")
private Integer auditUserId; private Long auditUserId;
@Column(name = "audit_user_name") @Column(name = "audit_user_name")
private String auditUserName; private String auditUserName;
@Column(name = "create_time") @Column(name = "create_time")

View File

@@ -0,0 +1,23 @@
package com.cool.store.request;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("稽核请求")
public class AuditCheckRequest {
@ApiModelProperty("稽核id")
private Long checkId;
@ApiModelProperty("稽核状态 0通过 1不通过")
private Integer checkStatus;
@ApiModelProperty("稽核意见")
private String checkResult;
private Long lineId;
}

View File

@@ -0,0 +1,10 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AuditDetailRequest {
@ApiModelProperty("稽核id")
private Long checkId;
}

View File

@@ -0,0 +1,32 @@
package com.cool.store.response;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Data
public class AuditDetailResponse {
@ApiModelProperty("视频链接")
private List<String> videoUrl;
private String startTime;
private String endTime;
private String checkUser;
private String checkTime;
private Integer checkStatus;
private String checkResult;
}

View File

@@ -0,0 +1,60 @@
package com.cool.store.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class CheckListResponse {
private Long lineId;
private Long interviewId;
private Long auditId;
private Long checkId;
@ApiModelProperty("面试人姓名")
private String interviewName;
@ApiModelProperty("面试人手机号")
private String mobile;
@ApiModelProperty("意向区域编码")
private Long wantRegion;
@ApiModelProperty("意向区域名")
private String wantRegionName;
@ApiModelProperty("面审人id")
private String intervieweeId;
@ApiModelProperty("面审人姓名")
private String intervieweeName;
@ApiModelProperty("面审通过时间")
private String intervieweePassTime;
@ApiModelProperty("稽核状态 0未稽核 1合格 2不合格")
private Integer checkStatus;
@ApiModelProperty("招商经理id")
private String investmentId;
@ApiModelProperty("招商经理id")
private String investmentName;
@ApiModelProperty("稽核人")
private String checkUser;
@ApiModelProperty("稽核时间")
private String checkTime;
}

View File

@@ -1,18 +1,23 @@
package com.cool.store.service; package com.cool.store.service;
import com.cool.store.entity.AuditStatusDO; import com.cool.store.entity.AuditStatusDO;
import com.cool.store.request.AuditCheckRequest;
import com.cool.store.request.AuditDetailRequest;
import com.cool.store.response.AuditDetailResponse;
import com.cool.store.response.CheckListResponse;
import com.github.pagehelper.PageInfo;
import java.util.Date;
import java.util.List; import java.util.List;
public interface AuditStatusService { public interface AuditStatusService {
List<AuditStatusDO> list();
/** /**
* 稽核 * 稽核
* @return * @return
*/ */
Boolean audit(); Boolean audit(AuditCheckRequest request);
/** /**
*插入数据 *插入数据
@@ -22,4 +27,18 @@ public interface AuditStatusService {
Long interviewId, Long interviewId,
Long auditId, Long auditId,
Integer auditStage); Integer auditStage);
AuditDetailResponse detail(AuditDetailRequest request);
/**
* 稽核列表
* @param partnerNameOrPhone 关键字
* @param time 时间
* @param region 意向区域
* @param checkStatus 稽核状态
* @param pageNum
* @param pageSize
* @return
*/
PageInfo<CheckListResponse> checkList(String partnerNameOrPhone, String startTime, String endTime, String region, Integer checkStatus, Integer checkStage, Integer pageNum, Integer pageSize);
} }

View File

@@ -1,13 +1,38 @@
package com.cool.store.service.impl; package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.dao.LineAuditInfoDAO;
import com.cool.store.dao.LineInfoDAO;
import com.cool.store.entity.AuditStatusDO; import com.cool.store.entity.AuditStatusDO;
import com.cool.store.entity.LineAuditInfoDO;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.LineInterviewDO;
import com.cool.store.enums.AuditResultTypeEnum;
import com.cool.store.mapper.AuditStatusMapper; import com.cool.store.mapper.AuditStatusMapper;
import com.cool.store.mapper.LineInterviewMapper;
import com.cool.store.request.AuditCheckRequest;
import com.cool.store.request.AuditDetailRequest;
import com.cool.store.response.AuditDetailResponse;
import com.cool.store.response.CheckListResponse;
import com.cool.store.service.AuditStatusService; import com.cool.store.service.AuditStatusService;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.vo.BaseInfoVO;
import com.cool.store.vo.LineListVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
@@ -16,18 +41,52 @@ public class AuditStatusServiceImpl implements AuditStatusService {
@Resource @Resource
AuditStatusMapper auditStatusMapper; AuditStatusMapper auditStatusMapper;
@Resource
private LineInfoDAO lineInfoDAO;
@Resource
private LineAuditInfoDAO lineAuditInfoDAO;
@Resource
private LineInterviewMapper lineInterviewMapper;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@Resource
EnterpriseUserDAO enterpriseUserDAO;
@Override @Override
public List<AuditStatusDO> list() { public Boolean audit(AuditCheckRequest request) {
return null; LoginUserInfo user = CurrentUserHolder.getUser();
//稽核信息
AuditStatusDO auditStatusDO = auditStatusMapper.selectByPrimaryKey(request.getCheckId());
//线索审核信息
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
String partnerId = lineInfo.getPartnerId();
LineAuditInfoDO auditInfo = new LineAuditInfoDO();
auditInfo.setLineId(request.getLineId());
auditInfo.setPartnerId(partnerId);
if (request.getCheckStatus().equals(0)) {
auditInfo.setResultType(AuditResultTypeEnum.PASS.getCode());
auditInfo.setPassReason(request.getCheckResult());
} else if (request.getCheckStatus().equals(1)){
auditInfo.setResultType(AuditResultTypeEnum.REJECT.getCode());
auditInfo.setRejectPublicReason(request.getCheckResult());
auditInfo.setRejectRealReason(request.getCheckResult());
}
Long auditId = lineAuditInfoDAO.addAuditInfo(auditInfo);
auditStatusDO.setAuditId(auditId);
auditStatusDO.setAuditUserId(Long.valueOf(user.getUserId()));
auditStatusDO.setAuditUserName(user.getName());
auditStatusDO.setAuditStatus(request.getCheckStatus());
auditStatusMapper.updateByPrimaryKeySelective(auditStatusDO);
return true;
} }
@Override @Override
public Boolean audit() { public int insert(Long lineId, Long interviewId, Long auditId, Integer auditStage) {
return null;
}
@Override
public int insert(Long lineId, Long interviewId, Long auditId,Integer auditStage) {
AuditStatusDO auditStatusDO = new AuditStatusDO(); AuditStatusDO auditStatusDO = new AuditStatusDO();
auditStatusDO.setLineId(lineId); auditStatusDO.setLineId(lineId);
auditStatusDO.setInterviewId(interviewId); auditStatusDO.setInterviewId(interviewId);
@@ -36,4 +95,61 @@ public class AuditStatusServiceImpl implements AuditStatusService {
int result = auditStatusMapper.insertSelective(auditStatusDO); int result = auditStatusMapper.insertSelective(auditStatusDO);
return result; return result;
} }
@Override
public AuditDetailResponse detail(AuditDetailRequest request) {
AuditDetailResponse response = new AuditDetailResponse();
AuditStatusDO auditStatusDO = auditStatusMapper.selectByPrimaryKey(request.getCheckId());
LineInterviewDO lineInterviewDO = lineInterviewMapper.selectByPrimaryKey(auditStatusDO.getInterviewId());
LineAuditInfoDO auditInfo = lineAuditInfoDAO.getAuditInfo(auditStatusDO.getAuditId());
response.setVideoUrl(JSONObject.parseArray(lineInterviewDO.getVideoUrl(), String.class));
response.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, lineInterviewDO.getActualStartTime()));
response.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, lineInterviewDO.getActualEndTime()));
response.setCheckUser(auditStatusDO.getAuditUserName());
response.setCheckTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, auditStatusDO.getCreateTime()));
response.setCheckStatus(auditStatusDO.getAuditStatus());
if (auditInfo.getResultType() > 0) {
response.setCheckResult(auditInfo.getRejectPublicReason());
} else {
response.setCheckResult(auditInfo.getPassReason());
}
return response;
}
@Override
public PageInfo<CheckListResponse> checkList(String partnerNameOrPhone,
String startTime,
String endTime,
String region,
Integer checkStatus,
Integer checkStage,
Integer pageNum,
Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<CheckListResponse> checkListResponses = auditStatusMapper.checkList(partnerNameOrPhone, startTime, endTime, region, checkStatus, checkStage, pageNum, pageSize);
//意向区域
List<Long> wantRegions = checkListResponses.stream().map(CheckListResponse::getWantRegion).collect(Collectors.toList());
//面审人
List<String> intervieweeIds = checkListResponses.stream().map(CheckListResponse::getIntervieweeId).collect(Collectors.toList());
//招商经理
List<String> investmentIds = checkListResponses.stream().map(CheckListResponse::getInvestmentId).collect(Collectors.toList());
//意向区域Map
Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantRegions);
//招商经理Map
Map<String, String> investmentIdMap = enterpriseUserDAO.getUserNameMap(investmentIds);
//面审人Map
Map<String, String> intervieweeIdMap = enterpriseUserDAO.getUserNameMap(intervieweeIds);
checkListResponses.forEach(x->{
x.setIntervieweeName(intervieweeIdMap.get(x.getIntervieweeId()));
x.setWantRegionName(wantShopAreaMap.get(x.getWantRegion()));
x.setInvestmentName(investmentIdMap.get(x.getIntervieweeId()));
});
PageInfo<CheckListResponse> pageInfo = new PageInfo<>(checkListResponses);
return pageInfo;
}
} }

View File

@@ -16,11 +16,13 @@ import com.cool.store.mapper.LinePayMapper;
import com.cool.store.request.AuditRejectRequest; import com.cool.store.request.AuditRejectRequest;
import com.cool.store.request.BranchBankPageRequest; import com.cool.store.request.BranchBankPageRequest;
import com.cool.store.service.BankService; import com.cool.store.service.BankService;
import com.cool.store.utils.StringUtil;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -69,24 +71,27 @@ public class BankServiceImpl extends LineFlowService implements BankService {
} }
@Override @Override
protected Boolean auditPass(Long auditId, LineInfoDO lineInfo) { protected Boolean auditPass(Long auditId, LineInfoDO lineInfo,String userId) {
WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage()); WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage());
WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage(); WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage();
//更新线索阶段 //更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus()); lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(), userId);
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
protected Boolean auditReject(Long auditId, LineInfoDO lineInfo) { protected Boolean auditReject(Long auditId, LineInfoDO lineInfo,String userId) {
lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.PAY_FAIL_55.getCode()); lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.PAY_FAIL_55.getCode());
if(StringUtils.isNotEmpty(userId)){
lineInfo.setUpdateUserId(userId);
}
lineInfoDAO.updateLineInfo(lineInfo); lineInfoDAO.updateLineInfo(lineInfo);
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
protected Boolean auditClose(Long auditId, LineInfoDO lineInfo) { protected Boolean auditClose(Long auditId, LineInfoDO lineInfo,String userId) {
return Boolean.TRUE; return Boolean.TRUE;
} }

View File

@@ -99,8 +99,7 @@ public class DeskServiceImpl implements DeskService {
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_35.getCode(), Arrays.asList(WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_40.getCode(),
WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_40.getCode(),
WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30.getCode())); WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30.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);
@@ -132,7 +131,6 @@ public class DeskServiceImpl implements DeskService {
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(), Arrays.asList(WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_105.getCode(),
WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_110.getCode(),
WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_115.getCode())); WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_115.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);
@@ -196,7 +194,7 @@ public class DeskServiceImpl implements DeskService {
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<SigningBaseInfoDO> signingBaseInfoDOS = intentAgreementMapper.selectByLineIds(lineIds); List<SigningBaseInfoDO> signingBaseInfoDOS = intentAgreementMapper.selectByLineIds(lineIds);
Map<Long, Date> dateMap = signingBaseInfoDOS.stream().collect(Collectors.toMap(SigningBaseInfoDO::getId, SigningBaseInfoDO::getCreateTime)); Map<Long, Date> dateMap = signingBaseInfoDOS.stream().collect(Collectors.toMap(SigningBaseInfoDO::getLineId, SigningBaseInfoDO::getCreateTime));
List<SigningPendingVO> list = new ArrayList<>(); List<SigningPendingVO> list = new ArrayList<>();
lineInfoDOS.forEach(x->{ lineInfoDOS.forEach(x->{
BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap);

View File

@@ -24,6 +24,7 @@ import com.cool.store.utils.SecureUtil;
import com.cool.store.utils.StringUtil; import com.cool.store.utils.StringUtil;
import com.cool.store.utils.poi.constant.Constants; import com.cool.store.utils.poi.constant.Constants;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -121,7 +122,7 @@ public class IntentAgreementServiceImpl extends LineFlowService implements Inten
} }
@Override @Override
protected Boolean auditPass(Long auditId, LineInfoDO lineInfo) { protected Boolean auditPass(Long auditId, LineInfoDO lineInfo,String userId) {
//校验是否是审核节点 //校验是否是审核节点
if (!lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_63.getCode()) && if (!lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_63.getCode()) &&
!lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_75.getCode())) { !lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_75.getCode())) {
@@ -137,7 +138,7 @@ public class IntentAgreementServiceImpl extends LineFlowService implements Inten
WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage()); WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage());
WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage(); WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage();
//更新线索阶段 //更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus()); lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(),userId);
//更新auditId //更新auditId
SigningBaseInfoDO signingBaseInfoDO = intentAgreementMapper.selectByPartnerIdOrLineId(null, lineInfo.getId()); SigningBaseInfoDO signingBaseInfoDO = intentAgreementMapper.selectByPartnerIdOrLineId(null, lineInfo.getId());
if (Objects.nonNull(signingBaseInfoDO)) { if (Objects.nonNull(signingBaseInfoDO)) {
@@ -151,7 +152,7 @@ public class IntentAgreementServiceImpl extends LineFlowService implements Inten
} }
@Override @Override
protected Boolean auditReject(Long auditId, LineInfoDO lineInfo) { protected Boolean auditReject(Long auditId, LineInfoDO lineInfo,String userId) {
if ((!lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_63.getCode()) && if ((!lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_63.getCode()) &&
!lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_75.getCode()))) { !lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_75.getCode()))) {
throw new ServiceException(ErrorCodeEnum.NOT_APPROVE_NODE); throw new ServiceException(ErrorCodeEnum.NOT_APPROVE_NODE);
@@ -159,11 +160,13 @@ public class IntentAgreementServiceImpl extends LineFlowService implements Inten
//待审核code 63 处理逻辑 //待审核code 63 处理逻辑
if (lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_63.getCode())) { if (lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_63.getCode())) {
lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_65.getCode()); lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_65.getCode());
lineInfo.setUpdateUserId(userId);
lineInfoDAO.updateLineInfo(lineInfo); lineInfoDAO.updateLineInfo(lineInfo);
} }
//待OA审核code 75 处理逻辑 //待OA审核code 75 处理逻辑
if (lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_75.getCode())) { if (lineInfo.getWorkflowSubStageStatus().equals(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_75.getCode())) {
lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_80.getCode()); lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_80.getCode());
lineInfo.setUpdateUserId(userId);
lineInfoDAO.updateLineInfo(lineInfo); lineInfoDAO.updateLineInfo(lineInfo);
//更新auditId //更新auditId
intentAgreementMapper.updateAuditId(lineInfo.getId(), auditId); intentAgreementMapper.updateAuditId(lineInfo.getId(), auditId);
@@ -172,7 +175,7 @@ public class IntentAgreementServiceImpl extends LineFlowService implements Inten
} }
@Override @Override
protected Boolean auditClose(Long auditId, LineInfoDO lineInfo) { protected Boolean auditClose(Long auditId, LineInfoDO lineInfo,String userId) {
return Boolean.TRUE; return Boolean.TRUE;
} }

View File

@@ -97,19 +97,20 @@ public class JoinIntentionServiceImpl extends LineFlowService implements JoinInt
} }
@Override @Override
protected Boolean auditPass(Long auditId, LineInfoDO lineInfo) { protected Boolean auditPass(Long auditId, LineInfoDO lineInfo,String userId) {
WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage()); WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage());
WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage(); WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage();
//更新线索阶段 //更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus()); lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(), userId);
//更新加盟问卷信息 //更新加盟问卷信息
joinIntentionMapper.updateAuditIdByLineId(auditId,lineInfo.getId()); joinIntentionMapper.updateAuditIdByLineId(auditId,lineInfo.getId());
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
protected Boolean auditReject(Long auditId, LineInfoDO lineInfo) { protected Boolean auditReject(Long auditId, LineInfoDO lineInfo,String userId) {
lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.INTENT_7.getCode()); lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.INTENT_7.getCode());
lineInfo.setUpdateUserId(userId);
lineInfoDAO.updateLineInfo(lineInfo); lineInfoDAO.updateLineInfo(lineInfo);
//更新加盟问卷信息 //更新加盟问卷信息
joinIntentionMapper.updateAuditIdByLineId(auditId,lineInfo.getId()); joinIntentionMapper.updateAuditIdByLineId(auditId,lineInfo.getId());
@@ -118,7 +119,7 @@ public class JoinIntentionServiceImpl extends LineFlowService implements JoinInt
@Override @Override
protected Boolean auditClose(Long auditId, LineInfoDO lineInfo) { protected Boolean auditClose(Long auditId, LineInfoDO lineInfo,String userId) {
return Boolean.TRUE; return Boolean.TRUE;
} }

View File

@@ -46,14 +46,14 @@ public class KdzApiServiceImpl implements KdzApiService {
auditPassRequest.setLineId(lineInfoDO.getId()); auditPassRequest.setLineId(lineInfoDO.getId());
auditPassRequest.setPassReason(request.getCause()); auditPassRequest.setPassReason(request.getCause());
auditPassRequest.setWorkflowSubStage(lineInfoDO.getWorkflowSubStage()); auditPassRequest.setWorkflowSubStage(lineInfoDO.getWorkflowSubStage());
commonService.getLineFlowService(auditPassRequest.getWorkflowSubStage()).auditPass(auditPassRequest); commonService.getLineFlowService(auditPassRequest.getWorkflowSubStage()).auditPass(auditPassRequest,null);
}else if (request.getAuditResult() == 0){ }else if (request.getAuditResult() == 0){
AuditRejectRequest auditRejectRequest = new AuditRejectRequest(); AuditRejectRequest auditRejectRequest = new AuditRejectRequest();
auditRejectRequest.setLineId(lineInfoDO.getId()); auditRejectRequest.setLineId(lineInfoDO.getId());
auditRejectRequest.setWorkflowSubStage(lineInfoDO.getWorkflowSubStage()); auditRejectRequest.setWorkflowSubStage(lineInfoDO.getWorkflowSubStage());
auditRejectRequest.setRejectPublicReason(request.getCause()); auditRejectRequest.setRejectPublicReason(request.getCause());
auditRejectRequest.setRejectRealReason(request.getFailureCause()); auditRejectRequest.setRejectRealReason(request.getFailureCause());
commonService.getLineFlowService(auditRejectRequest.getWorkflowSubStage()).auditReject(auditRejectRequest); commonService.getLineFlowService(auditRejectRequest.getWorkflowSubStage()).auditReject(auditRejectRequest,null);
} }
}catch (Exception e){ }catch (Exception e){
throw new ServiceException(ErrorCodeEnum.UNKNOWN); throw new ServiceException(ErrorCodeEnum.UNKNOWN);

View File

@@ -41,7 +41,7 @@ public abstract class LineFlowService {
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean auditPass(AuditPassRequest request){ public Boolean auditPass(AuditPassRequest request,String userId){
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
if(!lineInfo.getWorkflowSubStage().equals(request.getWorkflowSubStage())){ if(!lineInfo.getWorkflowSubStage().equals(request.getWorkflowSubStage())){
throw new ServiceException(ErrorCodeEnum.WORK_FLOW_STAGE_PASS_ERROR); throw new ServiceException(ErrorCodeEnum.WORK_FLOW_STAGE_PASS_ERROR);
@@ -54,7 +54,7 @@ public abstract class LineFlowService {
auditInfo.setPassReason(request.getPassReason()); auditInfo.setPassReason(request.getPassReason());
auditInfo.setCertifyFile(JSONObject.toJSONString(request.getCertifyFile())); auditInfo.setCertifyFile(JSONObject.toJSONString(request.getCertifyFile()));
Long auditId = lineAuditInfoDAO.addAuditInfo(auditInfo); Long auditId = lineAuditInfoDAO.addAuditInfo(auditInfo);
return auditPass(auditId, lineInfo); return auditPass(auditId, lineInfo,userId);
} }
/** /**
@@ -63,7 +63,7 @@ public abstract class LineFlowService {
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean auditReject(AuditRejectRequest request){ public Boolean auditReject(AuditRejectRequest request,String userId){
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
if(!lineInfo.getWorkflowSubStage().equals(request.getWorkflowSubStage())){ if(!lineInfo.getWorkflowSubStage().equals(request.getWorkflowSubStage())){
throw new ServiceException(ErrorCodeEnum.WORK_FLOW_STAGE_PASS_ERROR); throw new ServiceException(ErrorCodeEnum.WORK_FLOW_STAGE_PASS_ERROR);
@@ -77,7 +77,7 @@ public abstract class LineFlowService {
auditInfo.setRejectRealReason(request.getRejectRealReason()); auditInfo.setRejectRealReason(request.getRejectRealReason());
auditInfo.setCertifyFile(JSONObject.toJSONString(request.getCertifyFile())); auditInfo.setCertifyFile(JSONObject.toJSONString(request.getCertifyFile()));
Long auditId = lineAuditInfoDAO.addAuditInfo(auditInfo); Long auditId = lineAuditInfoDAO.addAuditInfo(auditInfo);
return auditReject(auditId, lineInfo); return auditReject(auditId, lineInfo,userId);
} }
/** /**
@@ -102,13 +102,14 @@ public abstract class LineFlowService {
Long auditId = lineAuditInfoDAO.addAuditInfo(auditInfo); Long auditId = lineAuditInfoDAO.addAuditInfo(auditInfo);
LineInfoDO updateLineInfo = new LineInfoDO(); LineInfoDO updateLineInfo = new LineInfoDO();
updateLineInfo.setId(request.getLineId()); updateLineInfo.setId(request.getLineId());
updateLineInfo.setUpdateUserId(user.getUserId());
updateLineInfo.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode()); updateLineInfo.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode());
lineInfoDAO.updateLineInfo(updateLineInfo); lineInfoDAO.updateLineInfo(updateLineInfo);
LineFollowLogRequest lineFollowLogRequest = new LineFollowLogRequest(); LineFollowLogRequest lineFollowLogRequest = new LineFollowLogRequest();
lineFollowLogRequest.setLineId(request.getLineId()); lineFollowLogRequest.setLineId(request.getLineId());
lineFollowLogRequest.setMessage(String.format("结束跟进原因:%s", request.getRejectRealReason())); lineFollowLogRequest.setMessage(String.format("结束跟进原因:%s", request.getRejectRealReason()));
lineFollowService.addFollowLog(lineFollowLogRequest,user.getUserId(),user.getName()); lineFollowService.addFollowLog(lineFollowLogRequest,user.getUserId(),user.getName());
return auditClose(auditId, lineInfo); return auditClose(auditId, lineInfo,user.getUserId());
} }
protected abstract Boolean initStage(Long auditId, LineInfoDO lineInfo); protected abstract Boolean initStage(Long auditId, LineInfoDO lineInfo);
@@ -119,7 +120,7 @@ public abstract class LineFlowService {
* @param lineInfo * @param lineInfo
* @return * @return
*/ */
protected abstract Boolean auditPass(Long auditId, LineInfoDO lineInfo); protected abstract Boolean auditPass(Long auditId, LineInfoDO lineInfo,String userId);
/** /**
* 审核拒绝 * 审核拒绝
@@ -127,7 +128,7 @@ public abstract class LineFlowService {
* @param lineInfo * @param lineInfo
* @return * @return
*/ */
protected abstract Boolean auditReject(Long auditId, LineInfoDO lineInfo); protected abstract Boolean auditReject(Long auditId, LineInfoDO lineInfo,String userId);
/** /**
* 结束跟进 * 结束跟进
@@ -135,7 +136,7 @@ public abstract class LineFlowService {
* @param lineInfo * @param lineInfo
* @return * @return
*/ */
protected abstract Boolean auditClose(Long auditId, LineInfoDO lineInfo); protected abstract Boolean auditClose(Long auditId, LineInfoDO lineInfo,String userId);

View File

@@ -329,7 +329,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
if(InterviewTypeEnum.SECOND_INTERVIEW.getCode().equals(interviewInfo.getInterviewType())){ if(InterviewTypeEnum.SECOND_INTERVIEW.getCode().equals(interviewInfo.getInterviewType())){
workflowSubStageStatus = WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_110; workflowSubStageStatus = WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_110;
} }
lineInfoDAO.updateWorkflowStage(interviewInfo.getLineId(), null, workflowSubStageStatus); lineInfoDAO.updateWorkflowStage(interviewInfo.getLineId(), null, workflowSubStageStatus,userId);
return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo); return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo);
} }
@@ -385,7 +385,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
if(WorkflowSubStageEnum.SECOND_INTERVIEWS.getCode().equals(lineInfo.getWorkflowSubStage())){ if(WorkflowSubStageEnum.SECOND_INTERVIEWS.getCode().equals(lineInfo.getWorkflowSubStage())){
workflowSubStageStatus = WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_120; workflowSubStageStatus = WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_120;
} }
return lineInfoDAO.updateWorkflowStage(lineInfo.getId(), null, workflowSubStageStatus); return lineInfoDAO.updateWorkflowStage(lineInfo.getId(), null, workflowSubStageStatus,null);
} }
@@ -395,7 +395,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
} }
@Override @Override
protected Boolean auditPass(Long auditId, LineInfoDO lineInfo) { protected Boolean auditPass(Long auditId, LineInfoDO lineInfo,String userId) {
InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage()); InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage());
WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage()); WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage());
WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage(); WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage();
@@ -409,7 +409,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
updateInterviewInfo.setInterviewStatus(InterviewStatusEnum.PASS.getCode()); updateInterviewInfo.setInterviewStatus(InterviewStatusEnum.PASS.getCode());
if(!WorkflowSubStageEnum.SECOND_INTERVIEWS.equals(workflowSubStageEnum)){ if(!WorkflowSubStageEnum.SECOND_INTERVIEWS.equals(workflowSubStageEnum)){
//更新线索阶段 //更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus()); lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(),userId);
if (WorkflowSubStageEnum.FIRST_INTERVIEWS.equals(workflowSubStageEnum)){ if (WorkflowSubStageEnum.FIRST_INTERVIEWS.equals(workflowSubStageEnum)){
//一审稽核 //一审稽核
auditStatusService.insert(lineInfo.getId(),interviewInfo.getId(),auditId,AuditStageEnum.ONE.getCode()); auditStatusService.insert(lineInfo.getId(),interviewInfo.getId(),auditId,AuditStageEnum.ONE.getCode());
@@ -422,6 +422,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
EnterpriseUserDO enterpriseUser = userAuthMappingService.getUserByRoleEnumAndAreaId(UserRoleEnum.SELECT_SITE_MANAGER, lineInfo.getWantShopAreaId()); EnterpriseUserDO enterpriseUser = userAuthMappingService.getUserByRoleEnumAndAreaId(UserRoleEnum.SELECT_SITE_MANAGER, lineInfo.getWantShopAreaId());
String developmentManager = Optional.ofNullable(enterpriseUser).map(EnterpriseUserDO::getUserId).orElse(null); String developmentManager = Optional.ofNullable(enterpriseUser).map(EnterpriseUserDO::getUserId).orElse(null);
updateLine.setDevelopmentManager(developmentManager); updateLine.setDevelopmentManager(developmentManager);
updateLine.setUpdateUserId(userId);
lineInfoDAO.updateLineInfo(updateLine); lineInfoDAO.updateLineInfo(updateLine);
//初始化店铺 //初始化店铺
shopService.initShop(lineInfo); shopService.initShop(lineInfo);
@@ -432,7 +433,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
} }
@Override @Override
protected Boolean auditReject(Long auditId, LineInfoDO lineInfo) { protected Boolean auditReject(Long auditId, LineInfoDO lineInfo,String userId) {
InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage()); InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage());
if(InterviewTypeEnum.MEET.equals(interviewType)){ if(InterviewTypeEnum.MEET.equals(interviewType)){
return Boolean.FALSE; return Boolean.FALSE;
@@ -445,12 +446,12 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
updateInterviewInfo.setId(interviewInfo.getId()); updateInterviewInfo.setId(interviewInfo.getId());
updateInterviewInfo.setAuditId(auditId); updateInterviewInfo.setAuditId(auditId);
updateInterviewInfo.setInterviewStatus(InterviewStatusEnum.NOT_PASS.getCode()); updateInterviewInfo.setInterviewStatus(InterviewStatusEnum.NOT_PASS.getCode());
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), null, WorkflowSubStageStatusEnum.getInterviewRejectStatus(interviewType)); lineInfoDAO.updateWorkflowStage(lineInfo.getId(), null, WorkflowSubStageStatusEnum.getInterviewRejectStatus(interviewType),userId);
return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo) > 0; return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo) > 0;
} }
@Override @Override
protected Boolean auditClose(Long auditId, LineInfoDO lineInfo) { protected Boolean auditClose(Long auditId, LineInfoDO lineInfo,String userId) {
return Boolean.TRUE; return Boolean.TRUE;
} }

View File

@@ -404,6 +404,8 @@ public class LineServiceImpl implements LineService {
Long regionId = regionAreaConfigDao.getByWantShopAreaId(addLineRequest.getWantShopAreaId()); Long regionId = regionAreaConfigDao.getByWantShopAreaId(addLineRequest.getWantShopAreaId());
lineInfoDO.setRegionId(regionId); lineInfoDO.setRegionId(regionId);
lineInfoDO.setInvestmentManager(userId); lineInfoDO.setInvestmentManager(userId);
lineInfoDO.setCreateUserId(userId);
lineInfoDO.setUpdateUserId(userId);
lineInfoDAO.insertOrUpdate(lineInfoDO); lineInfoDAO.insertOrUpdate(lineInfoDO);
return Boolean.TRUE; return Boolean.TRUE;
} }

View File

@@ -128,22 +128,22 @@ public class TrainingExperienceServiceImpl extends LineFlowService implements Tr
} }
@Override @Override
protected Boolean auditPass(Long auditId, LineInfoDO lineInfo) { protected Boolean auditPass(Long auditId, LineInfoDO lineInfo,String userId) {
WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage()); WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(lineInfo.getWorkflowSubStage());
WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage(); WorkflowSubStageEnum nextStage = workflowSubStageEnum.getNextStage();
//更新线索阶段 //更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus()); lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(),userId);
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
protected Boolean auditReject(Long auditId, LineInfoDO lineInfo) { protected Boolean auditReject(Long auditId, LineInfoDO lineInfo,String userId) {
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override @Override
protected Boolean auditClose(Long auditId, LineInfoDO lineInfo) { protected Boolean auditClose(Long auditId, LineInfoDO lineInfo,String userId) {
return Boolean.TRUE; return Boolean.TRUE;
} }

View File

@@ -0,0 +1,54 @@
package com.cool.store.controller.webb;
import com.cool.store.request.AuditCheckRequest;
import com.cool.store.request.AuditDetailRequest;
import com.cool.store.response.AuditDetailResponse;
import com.cool.store.response.CheckListResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.AuditStatusService;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
@Api(tags = "稽核相关")
@RestController
@RequestMapping("pc/audit/stage")
public class AuditStatusController {
@Resource
AuditStatusService auditStatusService;
@ApiOperation("稽核")
@PostMapping("/check")
public ResponseResult<Boolean> check(@RequestBody AuditCheckRequest request) {
return ResponseResult.success(auditStatusService.audit(request));
}
@ApiOperation("查看/稽核按钮")
@PostMapping("/detail")
public ResponseResult<AuditDetailResponse> detail(@RequestBody AuditDetailRequest request) {
return ResponseResult.success(auditStatusService.detail(request));
}
@ApiOperation("稽核列表")
@GetMapping("/checkList")
public ResponseResult<PageInfo<CheckListResponse>> checkList(@RequestParam(value = "partnerNameOrPhone",required = false) String partnerNameOrPhone,
@RequestParam(value = "startTime",required = false) String startTime,
@RequestParam(value = "endTime",required = false) String endTime,
@RequestParam(value = "region",required = false) String region,
@RequestParam(value = "checkStatus",required = false) Integer checkStatus,
@RequestParam(value = "checkStage",defaultValue = "1") Integer checkStage,
@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize) {
return ResponseResult.success(auditStatusService.checkList(partnerNameOrPhone,startTime,endTime,region,checkStatus,checkStage,pageNum,pageSize));
}
}

View File

@@ -42,13 +42,13 @@ public class LineAuditController {
@ApiOperation("审核通过") @ApiOperation("审核通过")
@PostMapping("/pass") @PostMapping("/pass")
public ResponseResult<Boolean> auditPass(@RequestBody AuditPassRequest request){ public ResponseResult<Boolean> auditPass(@RequestBody AuditPassRequest request){
return ResponseResult.success(commonService.getLineFlowService(request.getWorkflowSubStage()).auditPass(request)); return ResponseResult.success(commonService.getLineFlowService(request.getWorkflowSubStage()).auditPass(request,CurrentUserHolder.getUserId()));
} }
@ApiOperation("审核拒绝") @ApiOperation("审核拒绝")
@PostMapping("/reject") @PostMapping("/reject")
public ResponseResult<Boolean> auditReject(@RequestBody AuditRejectRequest request){ public ResponseResult<Boolean> auditReject(@RequestBody AuditRejectRequest request){
return ResponseResult.success(commonService.getLineFlowService(request.getWorkflowSubStage()).auditReject(request)); return ResponseResult.success(commonService.getLineFlowService(request.getWorkflowSubStage()).auditReject(request,CurrentUserHolder.getUserId()));
} }
@ApiOperation("重新缴费") @ApiOperation("重新缴费")