feat(oa): 添加客户跟进记录功能

- 新增跟进记录添加接口和页面
- 实现客户id查询跟进记录列表功能
- 新增跟进记录相关BO和VO类
This commit is contained in:
LingWei
2025-03-14 17:10:16 +08:00
parent 61f2d1cbc1
commit c76fb356fa
8 changed files with 203 additions and 16 deletions

View File

@@ -1,11 +1,10 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.OaBusiness;
import com.ruoyi.oa.domain.vo.OaBusinessVo;
import com.ruoyi.oa.domain.bo.OaBusinessBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.oa.domain.vo.OaFollowUpRecordVo;
import com.ruoyi.oa.domain.vo.OaProductVo;
import java.util.Collection;
@@ -55,4 +54,9 @@ public interface IOaBusinessService {
*/
TableDataInfo<OaProductVo> getBusinessProducts(OaBusinessBo bo);
/**
* 查询CRM 批量商机
*/
List<OaBusinessVo> queryByIds(Collection<Long> list);
}

View File

@@ -1,6 +1,8 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.OaFollowUpRecord;
import com.ruoyi.oa.domain.bo.OaFollowUpRecordAddBo;
import com.ruoyi.oa.domain.vo.OaFollowUpRecordQueryVo;
import com.ruoyi.oa.domain.vo.OaFollowUpRecordVo;
import com.ruoyi.oa.domain.bo.OaFollowUpRecordBo;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -48,4 +50,8 @@ public interface IOaFollowUpRecordService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
List<OaFollowUpRecordVo> selectByBusinessIds(Collection<Long> list);
OaFollowUpRecordQueryVo selectByCustomerId(Long customerId);
Boolean insertByAddBo(OaFollowUpRecordAddBo bo);
}

View File

@@ -8,7 +8,6 @@ import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.vo.OaFollowUpRecordVo;
import com.ruoyi.oa.domain.vo.OaProductVo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -133,4 +132,15 @@ public class OaBusinessServiceImpl implements IOaBusinessService {
queryWrapper.eq(bo.getBusinessId() != null,"ob.business_id", bo.getBusinessId());
return TableDataInfo.build(baseMapper.getBusinessProducts(bo,queryWrapper));
}
/**
* 查询CRM 批量商机
*/
@Override
public List<OaBusinessVo> queryByIds(Collection<Long> list) {
if (list == null || list.isEmpty()) {
return Collections.emptyList();
}
return baseMapper.selectVoList(new LambdaQueryWrapper<OaBusiness>().in(OaBusiness::getBusinessId, list));
}
}

View File

@@ -7,7 +7,11 @@ import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.bo.OaFollowUpRecordAddBo;
import com.ruoyi.oa.domain.vo.OaFollowUpRecordQueryVo;
import com.ruoyi.oa.service.IOaBusinessService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.oa.domain.bo.OaFollowUpRecordBo;
import com.ruoyi.oa.domain.vo.OaFollowUpRecordVo;
@@ -15,10 +19,8 @@ import com.ruoyi.oa.domain.OaFollowUpRecord;
import com.ruoyi.oa.mapper.OaFollowUpRecordMapper;
import com.ruoyi.oa.service.IOaFollowUpRecordService;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
import java.util.stream.Collectors;
/**
* CRM 跟进记录Service业务层处理
@@ -32,6 +34,9 @@ public class OaFollowUpRecordServiceImpl implements IOaFollowUpRecordService {
private final OaFollowUpRecordMapper baseMapper;
@Autowired
private IOaBusinessService oaBusinessService;
/**
* 查询CRM 跟进记录
*/
@@ -127,4 +132,37 @@ public class OaFollowUpRecordServiceImpl implements IOaFollowUpRecordService {
return baseMapper.selectVoList(queryWrapper);
}
/**
* 添加跟进记录
*/
@Override
public Boolean insertByAddBo(OaFollowUpRecordAddBo bo) {
OaFollowUpRecord add = BeanUtil.toBean(bo, OaFollowUpRecord.class);
add.setContent(bo.getContactLastContent());
validEntityBeforeSave(add);
return baseMapper.insert(add) > 0;
}
/**
* 通过顾客id获取跟进记录
*/
@Override
public OaFollowUpRecordQueryVo selectByCustomerId(Long customerId) {
//通过customerId查询出跟进记录
OaFollowUpRecord followUpRecord=baseMapper.selectOne(new LambdaQueryWrapper<OaFollowUpRecord>().eq(OaFollowUpRecord::getCustomerId,customerId));
OaFollowUpRecordQueryVo queryVo=BeanUtil.toBean(followUpRecord,OaFollowUpRecordQueryVo.class);
//通过businessIds查询出业务
if (StringUtils.isNotBlank(followUpRecord.getBusinessIds())){
//分割businessIds
List<Long> businessIds = Arrays.stream(followUpRecord.getBusinessIds().split(","))
.map(String::trim)
.map(Long::parseLong)
.collect(Collectors.toList());
//批量查询出业务
queryVo.setBusinessVoList(oaBusinessService.queryByIds(businessIds));
}
return queryVo;
}
}