Browse Source

客户管理代码

master
fanzongzhe 10 months ago
parent
commit
4ae30d7012
  1. 93
      oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerFileRest.java
  2. 151
      oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerTempRest.java
  3. 155
      oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmVisitRest.java
  4. 163
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTemp.java
  5. 144
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempDto.java
  6. 67
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempQuery.java
  7. 233
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java
  8. 115
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempUpdateDto.java
  9. 192
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempVo.java
  10. 58
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileQuery.java
  11. 54
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileService.java
  12. 64
      oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileVo.java
  13. 85
      oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAttachTypeEnum.java
  14. 28
      oms/src/main/java/com/yxt/oms/biz/func/crmfile/PcCommonAppendixDto.java
  15. 98
      oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisit.java
  16. 86
      oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitDto.java
  17. 43
      oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitQuery.java
  18. 122
      oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitService.java
  19. 104
      oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitVo.java
  20. 22
      oms/src/main/java/com/yxt/oms/biz/func/crmvisit/PcCrmVisitAppendixDto.java
  21. 46
      oms/src/main/java/com/yxt/oms/biz/func/sysstafforg/SysStaffOrg.java
  22. 267
      oms/src/main/java/com/yxt/oms/config/DictCommonType.java
  23. 54
      oms/src/main/java/com/yxt/oms/feign/customer/crmfile/CrmFileFeign.java
  24. 66
      oms/src/main/java/com/yxt/oms/feign/customer/crmvisit/CrmVisitFeign.java
  25. 108
      oms/src/main/java/com/yxt/oms/feign/customer/customertemp/CrmCustomerTempFeign.java
  26. 19
      oms/src/main/java/com/yxt/oms/feign/portal/sysstafforg/SysStaffOrgFeign.java
  27. 5
      oms/src/main/java/com/yxt/oms/feign/portal/sysuser/SysUserFeign.java

93
oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerFileRest.java

@ -0,0 +1,93 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.oms.apiadmin.aggregation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.crmcustomerfile.CrmCustomerFileQuery;
import com.yxt.oms.biz.func.crmcustomerfile.CrmCustomerFileService;
import com.yxt.oms.biz.func.crmcustomerfile.CrmCustomerFileVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Project: anrui-crm(客户) <br/>
* File: CrmCustomerFileFeignFallback.java <br/>
* Class: com.yxt.anrui.crm.biz.crmcustomerfile.CrmCustomerFileRest <br/>
* Description: 客户资料初始化表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-02-26 14:10:17 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "客户资料初始化表")
@RestController("com.yxt.anrui.crm.biz.crmcustomerfile.CrmCustomerFileRest")
@RequestMapping("v1/crmcustomerfile")
public class CrmCustomerFileRest {
@Autowired
private CrmCustomerFileService crmCustomerFileService;
/**
* 客户资料初始化分页查询列表
*
* @param pq
* @return
*/
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<CrmCustomerFileVo>> listPage(@RequestBody PagerQuery<CrmCustomerFileQuery> pq) {
return crmCustomerFileService.listPageVo(pq);
}
//
//
// public ResultBean saveCustomerFile(String staffName, String staffSid, String sid, List<CrmFileDto> crmFileDtos) {
// return crmCustomerFileService.saveCustomerFile(staffName, staffSid, sid, crmFileDtos);
// }
//
//
// public ResultBean<CrmCustomerFileListVo> fetchFileListBySid(String sid) {
// return crmCustomerFileService.fetchFileListBySid(sid);
// }
//
//
// public ResultBean<List<CrmCustomerFile>> selectIdImageByCustomerSid(String customerSid) {
// ResultBean rb = ResultBean.fireFail();
// List<CrmCustomerFile> crmCustomerFiles = crmCustomerFileService.selectIdImageByCustomerSid(customerSid);
// return rb.success().setData(crmCustomerFiles);
// }
}

151
oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerTempRest.java

@ -41,81 +41,82 @@ public class CrmCustomerTempRest {
return crmCustomerTempService.chooseCustomerList(pq);
}
//
// /**
// * 潜在客户管理的分页查询
// *
// * @param pq
// * @return
// */
// @ApiOperation("根据条件分页查询数据的列表")
// @PostMapping("/listPage")
// public ResultBean<PagerVo<CrmCustomerTempVo>> listPage(@RequestBody PagerQuery<CrmCustomerTempQuery> pq) {
// return crmCustomerTempService.listPageVo(pq);
// }
//
//
// /**
// * 潜在客户新增保存
// *
// * @param dto 数据传输对象
// * @return
// */
// @ApiOperation("新增保存")
// @PostMapping("/save")
// public ResultBean save(@Valid @RequestBody CrmCustomerTempDto dto) {
// return crmCustomerTempService.saveCrmCustomer(dto);
// }
//
// /**
// * 潜在客户修改保存
// *
// * @param dto 数据传输对象
// * @param sid 潜在客户sid
// * @return
// */
// @ApiOperation("修改保存")
// @PostMapping("/update/{sid}")
// public ResultBean update(@RequestBody CrmCustomerTempUpdateDto dto, @PathVariable("sid") String sid) {
// ResultBean rb = ResultBean.fireFail();
// String weixin = dto.getWeixin();
// if (StringUtils.isNotBlank(weixin)) {
// if (!weixin.matches("^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$") && !weixin.matches("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$")) {
// return rb.setMsg("微信号格式不正确");
// }
// }
// String email = dto.getE_mail();
// if (StringUtils.isNotBlank(email)) {
// if (!email.matches("^[0-9A-Za-z][\\.-_0-9A-Za-z]*@[0-9A-Za-z]+(?:\\.[0-9A-Za-z]+)+$")) {
// return rb.setMsg("邮箱格式不正确");
// }
// }
// ResultBean resultBean = crmCustomerTempService.updateCrmCustomer(dto, sid);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// return rb.success().setMsg(resultBean.getMsg());
// }
//
// @ApiOperation("删除记录")
// @DeleteMapping("/del")
// public ResultBean del(@RequestBody String[] sid) {
// ResultBean rb = ResultBean.fireFail();
// crmCustomerTempService.delBySids(sid);
// return rb.success();
// }
//
// @ApiOperation("获取一条记录")
// @GetMapping("/fetchSid/{sid}")
// public ResultBean<CrmCustomerTempVo> fetchSid(@PathVariable("sid") String sid) {
// ResultBean<CrmCustomerTempVo> rb = ResultBean.fireFail();
// CrmCustomerTemp customerTemp = crmCustomerTempService.fetchBySid(sid);
// if (customerTemp == null) {
// return rb.setMsg("该客户不存在");
// }
// CrmCustomerTempVo vo = crmCustomerTempService.fetchAllBySid(sid);
// return rb.success().setData(vo);
// }
/**
* 潜在客户管理的分页查询
*
* @param pq
* @return
*/
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<CrmCustomerTempVo>> listPage(@RequestBody PagerQuery<CrmCustomerTempQuery> pq) {
return crmCustomerTempService.listPageVo(pq);
}
/**
* 潜在客户新增保存
*
* @param dto 数据传输对象
* @return
*/
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@Valid @RequestBody CrmCustomerTempDto dto) {
return crmCustomerTempService.saveCrmCustomer(dto);
}
@ApiOperation("删除记录")
@DeleteMapping("/del")
public ResultBean del(@RequestBody String[] sid) {
return crmCustomerTempService.del(sid);
}
/**
* 潜在客户修改保存
*
* @param dto 数据传输对象
* @param sid 潜在客户sid
* @return
*/
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody CrmCustomerTempUpdateDto dto, @PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
String weixin = dto.getWeixin();
if (StringUtils.isNotBlank(weixin)) {
if (!weixin.matches("^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$") && !weixin.matches("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$")) {
return rb.setMsg("微信号格式不正确");
}
}
String email = dto.getE_mail();
if (StringUtils.isNotBlank(email)) {
if (!email.matches("^[0-9A-Za-z][\\.-_0-9A-Za-z]*@[0-9A-Za-z]+(?:\\.[0-9A-Za-z]+)+$")) {
return rb.setMsg("邮箱格式不正确");
}
}
ResultBean resultBean = crmCustomerTempService.updateCrmCustomer(dto, sid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setMsg(resultBean.getMsg());
}
@ApiOperation("获取一条记录")
@GetMapping("/fetchSid/{sid}")
public ResultBean<CrmCustomerTempVo> fetchSid(@PathVariable("sid") String sid) {
ResultBean<CrmCustomerTempVo> rb = ResultBean.fireFail();
CrmCustomerTemp customerTemp = crmCustomerTempService.fetchBySid(sid);
if (customerTemp == null) {
return rb.setMsg("该客户不存在");
}
CrmCustomerTempVo vo = crmCustomerTempService.fetchAllBySid(sid);
return rb.success().setData(vo);
}

155
oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmVisitRest.java

@ -0,0 +1,155 @@
package com.yxt.oms.apiadmin.aggregation;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.crmfile.CommonAttachTypeEnum;
import com.yxt.oms.biz.func.crmfile.PcCommonAppendixDto;
import com.yxt.oms.biz.func.crmvisit.*;
import com.yxt.oms.feign.customer.crmfile.CrmFileFeign;
import com.yxt.oms.feign.customer.crmvisit.CrmVisitFeign;
import com.yxt.oms.feign.customer.customertemp.CrmCustomerTempFeign;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmVisitFeignFallback.java <br/>
* Class: com.yxt.anrui.crm.biz.crmvisit.CrmVisitRest <br/>
* Description: 客户跟进记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-28 09:57:14 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "客户跟进记录")
@RestController
@RequestMapping("v1/crmvisit")
public class CrmVisitRest {
@Autowired
private CrmVisitService crmVisitService;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private CrmFileFeign crmFileFeign;
/**
* pc端某客户的跟进记录分页列表
*
* @param pagerQuery
* @return
*/
@ApiOperation("跟进记录分页列表")
@PostMapping("/pagerList")
public ResultBean<PagerVo<CrmVisitVo>> pagerList(@RequestBody PagerQuery<CrmVisitQuery> pagerQuery) {
return crmVisitService.pagerList(pagerQuery);
}
@ApiOperation("Pc查看详情及修改回显")
@GetMapping("/fetchSid/{sid}")
public ResultBean<CrmVisitVo> fetchSid(@PathVariable("sid") String sid){
return crmVisitService.fetchSid(sid);
}
@ApiOperation("Pc新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody CrmVisitDto dto){
ResultBean rb = ResultBean.fireFail();
String customerSid = dto.getCustomerSid();
int count = crmCustomerTempFeign.selBySid(customerSid);
if (count > 0) {
CrmVisit entity = new CrmVisit();
BeanUtil.copyProperties(dto, entity);
boolean IsSave = crmVisitService.save(entity);
if (!IsSave) {
return rb.fail().setMsg("添加失败");
}
List<PcCrmVisitAppendixDto> pcCrmvisitAppendixDtos = dto.getList();
for (PcCrmVisitAppendixDto pcCrmvisitAppendixDto : pcCrmvisitAppendixDtos) {
PcCommonAppendixDto pcCommonAppendixDto = new PcCommonAppendixDto();
String sid = entity.getSid();
String staffSid = dto.getStaffSid();
BeanUtil.copyProperties(pcCrmvisitAppendixDto, pcCommonAppendixDto);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String createTime = simpleDateFormat.format(new Date());
if (dto.getList().size() != 0) {
crmFileFeign.saveOrUpdatePcAppendix(pcCommonAppendixDto, sid, staffSid, CommonAttachTypeEnum.WITNESS.getAttachType());
}
}
String isOnRemindkey = dto.getIsOnRemindkey();
if (StringUtils.isNotBlank(isOnRemindkey)) { // 0 未开启 1 开启
String remindDay = "未设置提醒";
if (isOnRemindkey.equals("0")) {
//没有开启默认未设置
dto.setRemind_day(remindDay);
dto.setRemind_remark("");
}
if (isOnRemindkey.equals("1")) {
//开启默认判断时间是否是10:00之前
String date = DateUtils.dateConvertStr(new Date(), "yyyy-MM-dd") + " 10:00:00";
if (DateUtils.compTime2(date, dto.getRemind_day())) {
//是的话设置开启时间
dto.setRemind_day(dto.getRemind_day());
} else {
dto.setRemind_day(remindDay);
}
}
}
//更新客户信息的提醒日期、提醒备注、是否提醒。
String remind_day = dto.getRemind_day();
String remind_remark = dto.getRemind_remark();
String isOnRemind = dto.getIsOnRemind();
String follow_state = dto.getFollow_state();
crmCustomerTempFeign.updateRemindAndByCustomerSid(customerSid, remind_day, remind_remark, isOnRemind, isOnRemindkey, follow_state);
return rb.success().setMsg("添加成功");
}
return rb.fail().setMsg("保存失败,该客户不存在");
}
@ApiOperation("Pc修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody CrmVisitDto dto, @PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
int i = crmVisitService.updateBySid(dto, sid);
if (i == 0) {
return rb.fail().setMsg("修改失败");
}
ResultBean delFiles = crmFileFeign.deleteFiles(sid);
if (delFiles != null) {
List<PcCrmVisitAppendixDto> pcCrmvisitAppendixDtos = dto.getList();
for (PcCrmVisitAppendixDto pcCrmvisitAppendixDto : pcCrmvisitAppendixDtos) {
PcCommonAppendixDto pcCommonAppendixDto = new PcCommonAppendixDto();
String staffSid = dto.getStaffSid();
BeanUtil.copyProperties(pcCrmvisitAppendixDto, pcCommonAppendixDto);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String createTime = simpleDateFormat.format(new Date());
if (dto.getList().size() != 0) {
ResultBean resultBean = crmFileFeign.saveOrUpdatePcAppendix(pcCommonAppendixDto, sid, staffSid, CommonAttachTypeEnum.WITNESS.getAttachType());
}
}
return rb.success().setMsg("修改成功");
}
return rb.fail().setMsg("修改失败");
}
@ApiOperation("删除记录")
@DeleteMapping("/del")
public ResultBean del(@RequestBody String[] ids){
return crmVisitService.delBySids(ids);
}
}

163
oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTemp.java

@ -0,0 +1,163 @@
package com.yxt.oms.biz.func.crmcustomer;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmCustomerTemp.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp <br/>
* Description: 潜在客户信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-01-12 11:21:16 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "潜在客户信息", description = "潜在客户信息")
@TableName("crm_customer")
@Data
public class CrmCustomerTemp extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("客户编号(部门编码+客户类型(1位,0个人,1企业)+部门内部流水号(6位))")
private String customerNo;
@ApiModelProperty("客户类型(自然人/法人)")
private String customerType;
@ApiModelProperty("客户类型key")
private String customerTypeKey;
@ApiModelProperty("客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)")
private String customerClass;
@ApiModelProperty("客户分类key")
private String customerClassKey;
@ApiModelProperty("客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)")
private String source;
@ApiModelProperty("客户来源key")
private String sourceKey;
@ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)")
private String level;
@ApiModelProperty("客户级别key")
private String levelKey;
@ApiModelProperty("客户名称")
private String name;
@ApiModelProperty("证件类型key")
private String certificateTypeKey;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
@ApiModelProperty("证件号码(个人为身份证号/企业为统一社会信用代码)")
private String IDNumber;
@ApiModelProperty("证件有效期")
private String endDate;
@ApiModelProperty("行政区划代码(省)")
private String address_province;
@ApiModelProperty("行政区划代码(市)")
private String address_city;
@ApiModelProperty("行政区划代码(县)")
private String address_county;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("县")
private String county;
@ApiModelProperty("详细地址")
private String address;
@ApiModelProperty("邮编")
private String zipCode;
@ApiModelProperty("电子邮箱")
private String e_mail;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("紧急联系电话")
private String emergencyContact;
@ApiModelProperty("紧急联系电话")
private String emergencyMobile;
@ApiModelProperty("微信号码")
private String weixin;
@ApiModelProperty("业务人员sid")
private String staffSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("创建部门sid")
private String useOrgSid;
@ApiModelProperty("性别")
private String sex;
@ApiModelProperty("性别key")
private String sexKey;
@ApiModelProperty("生日")
private String birthday;
@ApiModelProperty("所在公司名称")
private String companyName;
@ApiModelProperty("跟进状态key")
private String follow_state_key;
@ApiModelProperty("跟进状态")
private String follow_state;
@ApiModelProperty("是否开启提醒key(1开启,0不开启)")
private String isOnRemindkey;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemind;
@ApiModelProperty("提醒日期")
private String remind_day;
@ApiModelProperty("提醒备注")
private String remind_remark;
@ApiModelProperty("客户头像")
private String customerPhoto;
@ApiModelProperty("见面方式key")
private String visitWayKey;
@ApiModelProperty("见面方式(到店/电话/拜访)")
private String visitWay;
@ApiModelProperty("证件地址")
private String certificateAddress;
}

144
oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempDto.java

@ -0,0 +1,144 @@
package com.yxt.oms.biz.func.crmcustomer;
import com.yxt.common.core.dto.Dto;
import com.yxt.oms.biz.func.crmvisit.PcCrmVisitAppendixDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmCustomerTempDto.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempDto <br/>
* Description: 潜在客户信息 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-01-12 11:21:16 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "潜在客户信息 数据传输对象", description = "潜在客户信息 数据传输对象")
@Data
public class CrmCustomerTempDto implements Dto {
private static final long serialVersionUID = 793474187074718535L;
@ApiModelProperty(value = "当前登录用户的sid")
private String userSid;
@ApiModelProperty(value = "客户类型(1个人/2企业)", required = true)
@NotBlank(message = "客户类型为必选项")
private String customerType;
@ApiModelProperty(value = "客户类型key", required = true)
@NotBlank(message = "客户类型为必选项")
private String customerTypeKey;
@ApiModelProperty(value = "见面方式key", required = true)
@NotBlank(message = "见面方式为必选项")
private String visitWayKey;
@ApiModelProperty(value = "见面方式(到店/电话/拜访)", required = true)
@NotBlank(message = "见面方式为必选项")
private String visitWay;
@ApiModelProperty(value = "客户名称", required = true)
@NotBlank(message = "客户名称为必填项")
private String name;
@ApiModelProperty("联系电话")
@NotBlank(message = "联系电话为必填项")
private String mobile;
@ApiModelProperty("微信号码")
private String weixin;
@ApiModelProperty("公司名称:个人客户时显示")
private String companyName;
@ApiModelProperty("行政区划代码(省)")
private String address_province;
@ApiModelProperty("行政区划代码(市)")
private String address_city;
@ApiModelProperty("行政区划代码(县)")
private String address_county;
@ApiModelProperty("客户地址:省")
private String province;
@ApiModelProperty("客户地址:市")
private String city;
@ApiModelProperty("客户地址:县")
private String county;
@ApiModelProperty("客户地址:详细地址")
private String address;
@ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)")
private String level;
@ApiModelProperty("客户级别key")
private String levelKey;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemindkey;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemind;
@ApiModelProperty("提醒日期")
private String remind_day;
@ApiModelProperty("提醒备注")
private String remind_remark;
//更多信息
@ApiModelProperty("客户生日:个人客户时显示")
private String birthday;
@ApiModelProperty("性别:个人客户时显示")
private String sex;
@ApiModelProperty("性别key:个人客户时")
private String sexKey;
@ApiModelProperty("证件类型key")
private String certificateTypeKey;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
@ApiModelProperty("证件号码(个人为身份证号/企业为统一社会信用代码)")
private String IDNumber;
@ApiModelProperty("证件有效期")
private String endDate;
@ApiModelProperty("电子邮箱")
private String e_mail;
@ApiModelProperty(value = "联系人")
private String contacts;
@ApiModelProperty("紧急联系人")
private String emergencyContact;
@ApiModelProperty("紧急联系电话")
private String emergencyMobile;
@ApiModelProperty("客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)")
private String source;
@ApiModelProperty("客户来源key")
private String sourceKey;
@ApiModelProperty("客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)")
private String customerClass;
@ApiModelProperty("客户分类key")
private String customerClassKey;
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty("业务人员sid")
private String staffSid;
//见证材料集合
@ApiModelProperty(value = "见证材料的集合,编辑保存时无此字段")
private List<PcCrmVisitAppendixDto> crmVisitAppendixDtoList = new ArrayList<>();
private String orgPath;
private String useOrgSid;
private String customerOrgSid;
private String customerOrgName;
}

67
oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempQuery.java

@ -0,0 +1,67 @@
package com.yxt.oms.biz.func.crmcustomer;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmCustomerTempQuery.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempQuery <br/>
* Description: 潜在客户信息 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-01-12 11:21:16 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "潜在客户信息 查询条件", description = "潜在客户信息 查询条件")
@Data
public class CrmCustomerTempQuery implements Query {
@ApiModelProperty(value = "组织全路径")
private String orgSidPath;
@ApiModelProperty("客户类型key(自然人/法人)")
private String customerTypeKey;
@ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)")
private String levelKey;
@ApiModelProperty("客户名称")
private String name;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("提醒开始日期")
private String remindStartDay;
@ApiModelProperty("提醒结束日期")
private String remindEndDay;
@ApiModelProperty("业务员sid")
private String staffSid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("客户sid")
private List<String> customerSidList;
@ApiModelProperty("创建开始日期")
private String createStartDate;
@ApiModelProperty("创建结束日期")
private String createEndDate;
@ApiModelProperty("销售专员")
private String staffName;
}

233
oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java

@ -1,19 +1,23 @@
package com.yxt.oms.biz.func.crmcustomer;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.HanZiConverterPinYin;
import com.yxt.common.base.utils.HttpStatusEnum;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.crmfile.PcCommonAppendixDto;
import com.yxt.oms.biz.func.crmvisit.CrmVisitService;
import com.yxt.oms.biz.func.crmvisit.PcCrmVisitAppendixDto;
import com.yxt.oms.biz.func.sysorganization.SysOrganizationVo;
import com.yxt.oms.biz.func.sysstafforg.SysStaffOrg;
import com.yxt.oms.config.DictCommonType;
import com.yxt.oms.feign.customer.crmfile.CrmFileFeign;
import com.yxt.oms.feign.customer.customertemp.CrmCustomerTempFeign;
import com.yxt.oms.feign.portal.dictcommon.DictCommonFeign;
import com.yxt.oms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.oms.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.oms.feign.portal.sysuser.SysUserFeign;
import com.yxt.oms.feign.portal.sysuser.SysUserVo;
import org.apache.commons.lang3.StringUtils;
@ -22,10 +26,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui-crm(客户管理) <br/>
@ -44,24 +48,225 @@ import java.util.*;
public class CrmCustomerTempService {
public static final Logger logger = LoggerFactory.getLogger(CrmCustomerTempService.class);
@Autowired
private CrmFileFeign crmFileFeign;
@Autowired
private CrmVisitService crmVisitService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Resource
private SysUserFeign sysUserFeign;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Resource
private DictCommonFeign dictCommonFeign;
@Resource
private SysOrganizationFeign sysOrganizationFeign;
// public ResultBean<PagerVo<CrmCustomerTempVo>> listPageVo(PagerQuery<CrmCustomerTempQuery> pq) {
// if (StringUtils.isNotBlank(pq.getParams().getUserSid())) {
// String staffSid = sysUserFeign.selectBySid(pq.getParams().getUserSid()).getData().getStaffSid();
// pq.getParams().setStaffSid(staffSid);
// }
// return crmCustomerTempFeign.listPage(pq);
// }
public ResultBean<PagerVo<CrmCustomerTempVo>> listPageVo(PagerQuery<CrmCustomerTempQuery> pq) {
if (StringUtils.isNotBlank(pq.getParams().getUserSid())) {
String staffSid = sysUserFeign.selectBySid(pq.getParams().getUserSid()).getData().getStaffSid();
pq.getParams().setStaffSid(staffSid);
}
return crmCustomerTempFeign.listPage(pq);
}
public ResultBean<PagerVo<SalesCustomerVo>> chooseCustomerList(PagerQuery<SalesCustomerQuery> pq) {
ResultBean<PagerVo<SalesCustomerVo>> pagerVoResultBean = crmCustomerTempFeign.chooseCustomerList(pq);
return pagerVoResultBean;
}
/**
* pc端潜在客户新增保存
*
* @param dto 数据传输对象
* state值211为当前用户的客户
* @return
*/
public ResultBean saveCrmCustomer(CrmCustomerTempDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
//手机号
String mobile = dto.getMobile();
//微信号
String weixin = dto.getWeixin();
if (StringUtils.isNotBlank(weixin)) {
if (!weixin.matches("^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$") && !weixin.matches("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$")) {
return rb.setMsg("微信号格式不正确");
}
}
String email = dto.getE_mail();
if (StringUtils.isNotBlank(email)) {
if (!email.matches("^[0-9A-Za-z][\\.-_0-9A-Za-z]*@[0-9A-Za-z]+(?:\\.[0-9A-Za-z]+)+$")) {
return rb.setMsg("邮箱格式不正确");
}
}
String emergencyMobile = dto.getEmergencyMobile();
if (StringUtils.isNotBlank(emergencyMobile)) {
if (!emergencyMobile.matches("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$")) {
return rb.setMsg("紧急联系电话格式不正确");
}
}
//根据用户sid获取业务员信息
SysUserVo sysUserVo = sysUserFeign.fetchBySid(dto.getUserSid()).getData();
if (sysUserVo == null) {
return rb.setMsg("该用户不存在");
}
String staffSid = sysUserVo.getStaffSid();
String name = dto.getName();
//生成客户编码:分公司简称+部门编码+手机号+姓名首字母大写拼写
String customerNo = getPrefix(staffSid, name, mobile);
//查询该客户编码是否存在
CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.selectByCustomerNo(customerNo).getData();
if (crmCustomerTemp != null) {//存在
//查询是否是当前用户客户
if (!dto.getUserSid().equals(crmCustomerTemp.getCreateBySid())) {
String staffName = "";
SysUserVo sysCrmVo = sysUserFeign.fetchBySid(crmCustomerTemp.getCreateBySid()).getData();
if (sysCrmVo != null) {
staffName = sysCrmVo.getName();
return rb.setCode(HttpStatusEnum.CRM_ERROR_NOTBELONG.getCode()).setMsg("为" + staffName + "客户");
}
} else {
// 返回潜在客户sid,跳转维护信息页面
return rb.setCode(HttpStatusEnum.CRM_ERROR_EXIST.getCode()).setMsg(HttpStatusEnum.CRM_ERROR_EXIST.getMsg()).setData(crmCustomerTemp.getSid());
}
} else {//不存在
// 新增
CrmCustomerTemp customerTemp = saveCrmCustomerTemp(dto, sysUserVo);
sid = customerTemp.getSid();
}
return rb.success().setData(sid);
}
/**
* 新增潜在客户信息及运营信息并增加跟进记录
*
* @param dto 潜在客户信息数据传输对象
* @param sysUserInfoVo 当前登录者的组织信息
* @return
*/
private CrmCustomerTemp saveCrmCustomerTemp(CrmCustomerTempDto dto, SysUserVo sysUserInfoVo) {
CrmCustomerTemp crmCustomerTemp = new CrmCustomerTemp();
dto.fillEntity(crmCustomerTemp);
crmCustomerTemp.setCreateBySid(dto.getUserSid());
crmCustomerTemp.setStaffSid(sysUserInfoVo.getStaffSid());
String orgSid = "";
if (StringUtils.isNotBlank(dto.getOrgPath())) {
orgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
} else {
orgSid = sysStaffOrgFeign.getPathSidByUserSid(dto.getUserSid()).getData();
}
crmCustomerTemp.setCreateOrgSid(orgSid);
ResultBean resultBean = dictCommonFeign.getFirstDictKeyByType(DictCommonType.FOLLOW_STATE, "0");
if (resultBean.getSuccess() && resultBean.getData() != null) {
String key = resultBean.getData().toString();
crmCustomerTemp.setFollow_state_key(key);
crmCustomerTemp.setFollow_state(dictCommonFeign.selectBykey(key, DictCommonType.FOLLOW_STATE).getData().getDictValue());
}
//客户编码
String customerNo = getPrefix(crmCustomerTemp.getStaffSid(), crmCustomerTemp.getName(), crmCustomerTemp.getMobile());
crmCustomerTemp.setCustomerNo(customerNo);
if (StringUtils.isNotBlank(dto.getUseOrgSid())) {
crmCustomerTemp.setUseOrgSid(dto.getUseOrgSid());
}
crmCustomerTempFeign.saveEntity(crmCustomerTemp);
// 增加跟进记录
String visitSid = crmVisitService.insertCrmVisitOne(dto.getUserSid(), crmCustomerTemp.getSid(), crmCustomerTemp.getIsOnRemindkey(), crmCustomerTemp.getIsOnRemind(), dto.getVisitWay(), dto.getVisitWayKey());
// 增加附件信息
if (dto.getCrmVisitAppendixDtoList().size() != 0) {
List<PcCommonAppendixDto> pcCommonAppendixDtoList = new ArrayList<>();
List<PcCrmVisitAppendixDto> list = dto.getCrmVisitAppendixDtoList();
for (int i = 0; i < list.size(); i++) {
PcCommonAppendixDto pcCommonAppendixDto = new PcCommonAppendixDto();
PcCrmVisitAppendixDto pcCrmVisitAppendixDto = list.get(i);
BeanUtils.copyProperties(pcCrmVisitAppendixDto, pcCommonAppendixDto);
pcCommonAppendixDtoList.add(pcCommonAppendixDto);
}
crmFileFeign.saveCommonAppendix(visitSid, pcCommonAppendixDtoList);
}
return crmCustomerTemp;
}
public String getPrefix(String staffSid, String name, String mobile) {
String customerNoPrefix = "";
//查询业务员的分公司简称和部门编码
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(staffSid);
if (staffOrgResultBean.getSuccess()) {
SysStaffOrg sysStaffOrg = staffOrgResultBean.getData();
if (sysStaffOrg != null) {
// ResultBean<String> resultBean1 = sysStaffOrgFeign.getOrgSidByPath(sysStaffOrg.getOrgSid());
// if (resultBean1.getSuccess()) {
// String osid = resultBean1.getData();
// if (StringUtils.isNotBlank(osid)) {
// ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(osid);
// if (sysOrganizationVoResultBean.getSuccess()) {
// SysOrganizationVo sysOrganizationVo = sysOrganizationVoResultBean.getData();
// customerNoPrefix = customerNoPrefix + sysOrganizationVo.getOrgAbbre();
// }
// }
// }
String orgSid1 = sysStaffOrg.getOrgSid();
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(orgSid1);
if (sysOrganizationVoResultBean.getSuccess()) {
SysOrganizationVo sysOrganizationVo = sysOrganizationVoResultBean.getData();
customerNoPrefix = customerNoPrefix + sysOrganizationVo.getOrgCode();
}
}
}
customerNoPrefix = customerNoPrefix + mobile + HanZiConverterPinYin.getPinYinFirst(name);
System.out.println(customerNoPrefix.length() > 30 ? customerNoPrefix.substring(0, 30) : customerNoPrefix);
return customerNoPrefix.length() > 30 ? customerNoPrefix.substring(0, 30) : customerNoPrefix;
}
public ResultBean del(String[] sid) {
return crmCustomerTempFeign.del(sid);
}
/**
* 潜在客户的信息的编辑保存
*
* @param dto 数据传输对象
* @param sid 潜在客户的sid
* @return
*/
public ResultBean updateCrmCustomer(CrmCustomerTempUpdateDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchBySid(sid).getData();
if (customerTemp == null) {
return rb.setMsg("该客户不存在");
}
//对比客户名称以及手机号是否变化
if (!customerTemp.getName().equals(dto.getName())) {
return rb.setMsg("客户名称不允许修改");
}
if (!customerTemp.getMobile().equals(dto.getMobile())) {
return rb.setMsg("客户手机号不允许修改");
}
BeanUtil.copyProperties(dto, customerTemp);
if (StringUtils.isNotBlank(dto.getUseOrgSid())) {
customerTemp.setUseOrgSid(dto.getUseOrgSid());
}
crmCustomerTempFeign.updateEntity(customerTemp);
return rb.success();
}
public CrmCustomerTemp fetchBySid(String sid) {
CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchBySid(sid).getData();
return customerTemp;
}
public CrmCustomerTempVo fetchAllBySid(String sid) {
CrmCustomerTempVo vo = new CrmCustomerTempVo();
CrmCustomerTemp crmCustomerTemp = this.fetchBySid(sid);
BeanUtil.copyProperties(crmCustomerTemp, vo);
return vo;
}
}

115
oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempUpdateDto.java

@ -0,0 +1,115 @@
package com.yxt.oms.biz.func.crmcustomer;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
/**
* @Author dimengzhe
* @Date 2022/7/12 14:04
* @Description
*/
@Data
public class CrmCustomerTempUpdateDto implements Dto {
private static final long serialVersionUID = -1744083007571476652L;
@ApiModelProperty(value = "当前登录用户的sid")
private String userSid;
@ApiModelProperty(value = "客户类型(个人/企业)", required = true)
@NotBlank(message = "客户类型为必选项")
private String customerType;
@ApiModelProperty(value = "客户类型key", required = true)
@NotBlank(message = "客户类型为必选项")
private String customerTypeKey;
@ApiModelProperty(value = "见面方式key", required = true)
@NotBlank(message = "见面方式为必选项")
private String visitWayKey;
@ApiModelProperty(value = "见面方式(到店/电话/拜访)", required = true)
@NotBlank(message = "见面方式为必选项")
private String visitWay;
@ApiModelProperty(value = "客户名称", required = true)
@NotBlank(message = "客户名称为必填项")
private String name;
@ApiModelProperty("联系电话")
@NotBlank(message = "联系电话为必填项")
@Pattern(regexp = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$", message = "手机号码格式不正确")
private String mobile;
@ApiModelProperty("微信号码")
private String weixin;
@ApiModelProperty("公司名称:个人客户时显示")
private String companyName;
@ApiModelProperty("行政区划代码(省)")
private String address_province;
@ApiModelProperty("行政区划代码(市)")
private String address_city;
@ApiModelProperty("行政区划代码(县)")
private String address_county;
@ApiModelProperty("客户地址:省")
private String province;
@ApiModelProperty("客户地址:市")
private String city;
@ApiModelProperty("客户地址:县")
private String county;
@ApiModelProperty("客户地址:详细地址")
private String address;
@ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)")
private String level;
@ApiModelProperty("客户级别key")
private String levelKey;
//更多信息
@ApiModelProperty("客户生日:个人客户时显示")
private String birthday;
@ApiModelProperty("性别:个人客户时显示")
private String sex;
@ApiModelProperty("性别key:个人客户时")
private String sexKey;
@ApiModelProperty("证件类型key")
private String certificateTypeKey;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
@ApiModelProperty("证件号码(个人为身份证号/企业为统一社会信用代码)")
private String IDNumber;
@ApiModelProperty("证件有效期")
private String endDate;
@ApiModelProperty("电子邮箱")
private String e_mail;
@ApiModelProperty(value = "联系人")
private String contacts;
@ApiModelProperty("紧急联系人")
private String emergencyContact;
@ApiModelProperty("紧急联系电话")
private String emergencyMobile;
@ApiModelProperty("客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)")
private String source;
@ApiModelProperty("客户来源key")
private String sourceKey;
@ApiModelProperty("客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)")
private String customerClass;
@ApiModelProperty("客户分类key")
private String customerClassKey;
@ApiModelProperty(value = "备注")
private String remarks;
private String orgPath;
private String useOrgSid;
private String customerOrgSid;
private String customerOrgName;
}

192
oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempVo.java

@ -0,0 +1,192 @@
package com.yxt.oms.biz.func.crmcustomer;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmCustomerTempVo.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo <br/>
* Description: 潜在客户信息 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-01-12 11:21:16 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "潜在客户信息 视图数据对象", description = "潜在客户信息 视图数据对象")
@Data
public class CrmCustomerTempVo implements Vo {
@ApiModelProperty("潜在客户sid")
private String sid;
@ApiModelProperty("分公司名称")
private String createOrgName;
@ApiModelProperty("业务员名称")
private String staffName;
@ApiModelProperty("部门名称")
private String deptName;
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("登记日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("客户编号(部门编码+客户类型(1位,0个人,1企业)+部门内部流水号(6位))")
private String customerNo;
@ApiModelProperty("客户类型(自然人/法人)")
private String customerType;
@ApiModelProperty("客户类型key")
private String customerTypeKey;
@ApiModelProperty("客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)")
private String customerClass;
@ApiModelProperty("客户分类key")
private String customerClassKey;
@ApiModelProperty("客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)")
private String source;
@ApiModelProperty("客户来源key")
private String sourceKey;
@ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)")
private String level;
@ApiModelProperty("客户级别key")
private String levelKey;
@ApiModelProperty("客户名称")
private String name;
@ApiModelProperty("证件类型key")
private String certificateTypeKey;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
@ApiModelProperty("证件号码(个人为身份证号/企业为统一社会信用代码)")
private String IDNumber;
@ApiModelProperty("证件有效期")
private String endDate;
@ApiModelProperty("行政区划代码(省)")
private String address_province;
@ApiModelProperty("行政区划代码(市)")
private String address_city;
@ApiModelProperty("行政区划代码(县)")
private String address_county;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("县")
private String county;
@ApiModelProperty("客户地址")
private String address;
@ApiModelProperty("邮编")
private String zipCode;
@ApiModelProperty("电子邮箱")
private String e_mail;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("紧急联系电话")
private String emergencyContact;
@ApiModelProperty("紧急联系电话")
private String emergencyMobile;
@ApiModelProperty("微信号码")
private String weixin;
@ApiModelProperty("业务人员sid")
private String staffSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("性别")
private String sex;
@ApiModelProperty("性别key")
private String sexKey;
@ApiModelProperty("客户生日")
private String birthday;
@ApiModelProperty("所在公司名称")
private String companyName;
@ApiModelProperty("跟进状态key")
private String follow_state_key;
@ApiModelProperty("跟进状态")
private String follow_state;
@ApiModelProperty("是否开启提醒key(1开启,0不开启)")
private String isOnRemindkey;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemind;
@ApiModelProperty("提醒日期")
private String remind_day;
@ApiModelProperty("提醒备注")
private String remind_remark;
@ApiModelProperty("客户头像")
private String customerPhoto;
@ApiModelProperty("见面方式key")
private String visitWayKey;
@ApiModelProperty("见面方式(到店/电话/拜访)")
private String visitWay;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("意向车型数量")
private String yxcounts;
@ApiModelProperty("跟进记录数量")
private String gjcounts;
private String useOrgSid;
private String customerOrgSid;
private String customerOrgName;
}

58
oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileQuery.java

@ -0,0 +1,58 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.oms.biz.func.crmcustomerfile;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-crm(客户) <br/>
* File: CrmCustomerFileQuery.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileQuery <br/>
* Description: 客户资料初始化表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-02-26 14:10:17 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "客户资料初始化表 查询条件", description = "客户资料初始化表 查询条件")
@Data
public class CrmCustomerFileQuery implements Query {
private static final long serialVersionUID = -7649979452082150903L;
@ApiModelProperty("文件类别")
private String attachType;
@ApiModelProperty("文件名称")
private String fileName;
@ApiModelProperty("客户sid")
private String customerSid;
}

54
oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileService.java

@ -0,0 +1,54 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.oms.biz.func.crmcustomerfile;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Service;
/**
* Project: anrui-crm(客户) <br/>
* File: CrmCustomerFileService.java <br/>
* Class: com.yxt.anrui.crm.biz.crmcustomerfile.CrmCustomerFileService <br/>
* Description: 客户资料初始化表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-02-26 14:10:17 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class CrmCustomerFileService {
public ResultBean<PagerVo<CrmCustomerFileVo>> listPageVo(PagerQuery<CrmCustomerFileQuery> pq) {
return null;
}
}

64
oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileVo.java

@ -0,0 +1,64 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.oms.biz.func.crmcustomerfile;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-crm(客户) <br/>
* File: CrmCustomerFileVo.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileVo <br/>
* Description: 客户资料初始化表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-02-26 14:10:17 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "客户资料初始化表 视图数据对象", description = "客户资料初始化表 视图数据对象")
@Data
public class CrmCustomerFileVo implements Vo {
private static final long serialVersionUID = -2901642630941149061L;
@ApiModelProperty("客户资料初始化sid")
private String sid;
@ApiModelProperty("文件类别")
private String attachType;
@ApiModelProperty("文件名称")
private String fileName;
@ApiModelProperty("最新上传人")
private String name;
@ApiModelProperty("最新上传时间")
private String createTime;
@ApiModelProperty("示例")
private String sample;
}

85
oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAttachTypeEnum.java

@ -0,0 +1,85 @@
package com.yxt.oms.biz.func.crmfile;
/**
* @Author dimengzhe
* @Date 2022/2/12 10:13
* @Description 附件类型枚举
*/
public enum CommonAttachTypeEnum {
/**
* 附件类型:
* 10001合同
* 20002人行征信
* 30003开票申请附件,
* 40004跟进记录的材料
* 50005家访照片
* 60006_1贷款人证明文_担保人人行征信查询授权书原件
* 70006_2贷款人证明文_贷款人人行征信查询授权书手持
* 80006_3贷款人证明文_配偶人行征信查询授权书原件
* 90006_4贷款人证明文_配偶人行征信查询授权书手持
* 100006_5贷款人证明文_配偶数据查询授权书
* 110006_6贷款人证明文_征信查询报告有效期3个月以内
* 120006_7贷款人证明文_贷款人及配偶居住证明
* 130007_1担保人文件_担保人人行征信查询授权书原件
* 140007_2担保人文件_担保人人行征信查询授权书(手持)
* 150008资产证明
* 160009_01放款文件_家访照片
* 170009_02放款文件_交车照片
* 180009_03放款文件_车辆合格证
* 190009_04放款文件_挂车合格证
* 200009_05放款文件_新车全车照片
* 210009_06放款文件_挂车照片
* 220009_07放款文件_新车发动机号照片
* 230009_08放款文件_新车车架号照片
* 240009_09放款文件_挂车车架号照片
* 250009_10放款文件_放款文件其它资料
* 260009_11放款文件_首付款证明
*/
CONTRACT("0001", "合同"),
CONTRACT_UPLOAD("0001_1", "合同下载"),
CREDIT("0002", "人行征信"),
INVOICE("0003", "开票申请附件"),
INVOICE_KHKPSQS("0003_1", "客户开票申请书"),
INVOICE_CLDJHT("0003_2", "车辆登记合同"),
INVOICE_KPXXQRS("0003_3", "开票信息确认书"),
WITNESS("0004", "跟进记录的材料"),
ADVANCE_GIN("0005", "提前开票附件"),
ADVANCE_KHKPSQS("0005_1", "客户开票申请书"),
ADVANCE_CLDJHT("0005_2", "车辆登记合同"),
ADVANCE_KPXXQRS("0005_3", "开票信息确认书"),
CUSTOMER_FILE("0006", "客户资料附件"),
ARREARS("0007", "欠款提车附件"),
SCENESIGN("0008", "现场签署附件"),
PAYMENT_VOUCHER("0009", "打款凭证附件"),
REMITTAN_CECONFIRMATION("0010", "汇款确认书附件"),
SEAL_APPLY("0011", "盖章附件"),
BILL_APPLICAYION("0012", "开票申请附件"),
MANUFACTOR_SUB("0013", "厂商认款附件"),
MANUFACTOR_RETWARE("0014", "厂家退库车辆附件"),
SHUNTINGINVOICINAPPLY("0015", "调车开票附件"),
OUTSOURCINGAPPLY("0016", "外采申请附件"),
INBOUNDAPPLY("0017", "入账申请附件"),
VEHBUYBLANK("0018", "车辆买断附件");
/**
* 附件类型
*/
private final String attachType;
/**
* 代号
*/
private final String mark;
CommonAttachTypeEnum(String attachType, String mark) {
this.attachType = attachType;
this.mark = mark;
}
public String getAttachType() {
return attachType;
}
public String getMark() {
return mark;
}
}

28
oms/src/main/java/com/yxt/oms/biz/func/crmfile/PcCommonAppendixDto.java

@ -0,0 +1,28 @@
package com.yxt.oms.biz.func.crmfile;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/11/22
*/
@Data
public class PcCommonAppendixDto implements Dto {
private static final long serialVersionUID = 2211027947432178940L;
@ApiModelProperty("上传人sid")
private String createBySid;
@ApiModelProperty("上传人")
private String name;
@ApiModelProperty("文件名")
private String fileName;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("文件大小")
private String fileSize;
@ApiModelProperty("文件的路径")
private String filePath;
}

98
oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisit.java

@ -0,0 +1,98 @@
package com.yxt.oms.biz.func.crmvisit;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmVisit.java <br/>
* Class: com.yxt.anrui.crm.api.crmvisit.CrmVisit <br/>
* Description: 客户跟进记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-28 09:57:14 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "客户跟进记录", description = "客户跟进记录")
@TableName("crm_visit")
@Data
public class CrmVisit extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("员工Sid")
private String staffSid;
@ApiModelProperty("跟进形式key")
private String follow_form_key;
@ApiModelProperty("跟进形式(电话/上门/微信/到店)")
private String follow_form;
@ApiModelProperty("跟进类别key")
private String follow_type_key;
@ApiModelProperty("跟进类别(例行安排/临时)")
private String follow_type;
@ApiModelProperty("跟进时间")
private String follow_time;
@ApiModelProperty("跟进效果")
private String follow_result;
@ApiModelProperty("拜访见证材料")
private String visit_witness_materials;
@ApiModelProperty("组织sid")
private String orgSid;
@ApiModelProperty("跟进状态key")
private String follow_state_key;
@ApiModelProperty("跟进状态(新获取/待跟进/初步意向/准客户/成交/失效)")
private String follow_state;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemind;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemindkey;
@ApiModelProperty("设置提醒日期的时间")
private String setTime;
@ApiModelProperty("提醒日期(天)")
private String remind_day;
@ApiModelProperty("提醒日期(天)key")
private String remind_day_key;
@ApiModelProperty("提醒备注")
private String remind_remark;
@ApiModelProperty("位置信息")
private String positionInformation;
/* @ApiModelProperty("区域代码(省)")
private String address_province;
@ApiModelProperty("区域代码(市)")
private String address_city;
@ApiModelProperty("区域代码(县)")
private String address_county;*/
@ApiModelProperty("经度")
private String longitude;
@ApiModelProperty("纬度")
private String latitude;
}

86
oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitDto.java

@ -0,0 +1,86 @@
package com.yxt.oms.biz.func.crmvisit;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmVisitDto.java <br/>
* Class: com.yxt.anrui.crm.api.crmvisit.CrmVisitDto <br/>
* Description: 客户跟进记录 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-28 09:57:14 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "客户跟进记录 数据传输对象", description = "客户跟进记录 数据传输对象")
@Data
public class CrmVisitDto implements Dto {
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("员工Sid")
private String staffSid;
@ApiModelProperty("跟进形式key")
private String follow_form_key;
@ApiModelProperty("跟进形式(电话/上门/微信/到店)")
private String follow_form;
@ApiModelProperty("跟进类别key")
private String follow_type_key;
@ApiModelProperty("跟进类别(例行安排/临时)")
private String follow_type;
@ApiModelProperty("跟进时间")
private String follow_time;
@ApiModelProperty("跟进效果")
private String follow_result;
@ApiModelProperty("拜访见证材料")
private String visit_witness_materials;
@ApiModelProperty("组织sid")
private String orgSid;
@ApiModelProperty("跟进状态key")
private String follow_state_key;
@ApiModelProperty("跟进状态(新获取/待跟进/初步意向/准客户/成交/失效)")
private String follow_state;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemindkey;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemind;
@ApiModelProperty("设置提醒日期的时间")
private String setTime;
@ApiModelProperty("提醒日期(天)")
private String remind_day;
@ApiModelProperty("提醒日期(天)key")
private String remind_day_key;
@ApiModelProperty("提醒备注")
private String remind_remark;
@ApiModelProperty("附件信息")
private List<PcCrmVisitAppendixDto> list;
}

43
oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitQuery.java

@ -0,0 +1,43 @@
package com.yxt.oms.biz.func.crmvisit;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmVisitQuery.java <br/>
* Class: com.yxt.anrui.crm.api.crmvisit.CrmVisitQuery <br/>
* Description: 客户跟进记录 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-28 09:57:14 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "客户跟进记录 查询条件", description = "客户跟进记录 查询条件")
@Data
public class CrmVisitQuery implements Query {
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("员工Sid")
private String staffSid;
@ApiModelProperty("跟进形式key")
private String follow_form_key;
@ApiModelProperty("起始跟进时间")
private String start_follow_time;
@ApiModelProperty("结束跟进时间")
private String end_follow_time;
@ApiModelProperty("跟进状态key")
private String follow_state_key;
}

122
oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitService.java

@ -0,0 +1,122 @@
package com.yxt.oms.biz.func.crmvisit;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.dictcommon.DictCommonVo;
import com.yxt.oms.config.DictCommonType;
import com.yxt.oms.feign.customer.crmvisit.CrmVisitFeign;
import com.yxt.oms.feign.portal.dictcommon.DictCommonFeign;
import com.yxt.oms.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.oms.feign.portal.sysuser.SysStaffOrgVo;
import com.yxt.oms.feign.portal.sysuser.SysUser;
import com.yxt.oms.feign.portal.sysuser.SysUserFeign;
import com.yxt.oms.feign.portal.sysuser.SysUserVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmVisitService.java <br/>
* Class: com.yxt.anrui.crm.biz.crmvisit.CrmVisitService <br/>
* Description: 客户跟进记录 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-28 09:57:14 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class CrmVisitService {
@Resource
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Resource
private DictCommonFeign dictCommonFeign;
@Autowired
private CrmVisitFeign crmVisitFeign;
public String insertCrmVisitOne(String userSid, String customerSid, String isOnRemindkey, String isOnRemind, String visitWay, String visitWayKey) {
CrmVisit visit = new CrmVisit();
//查询用户信息
SysUserVo user = sysUserFeign.fetchBySid(userSid).getData();
visit.setCreateBySid(userSid);
visit.setCustomerSid(customerSid);
visit.setStaffSid(user.getStaffSid());
visit.setFollow_time(DateUtils.dateConvertStr(new Date(), "yyyy-MM-dd"));
visit.setFollow_result("客户登记");
visit.setFollow_form(visitWay);
visit.setFollow_form_key(visitWayKey);
//visit.setVisit_witness_materials();
//查询组织
List<SysStaffOrgVo> list = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(user.getStaffSid()).getData();
if (list.size() > 0) {
SysStaffOrgVo sysStaffOrgVo = list.get(0);
visit.setOrgSid(sysStaffOrgVo.getOrgSid());
}
ResultBean resultBean = dictCommonFeign.getFirstDictKeyByType(DictCommonType.FOLLOW_STATE, "0");
if (resultBean.getSuccess() && resultBean.getData() != null) {
String key = resultBean.getData().toString();
visit.setFollow_state_key(key);
visit.setFollow_state(dictCommonFeign.selectBykey(key, DictCommonType.FOLLOW_STATE).getData().getDictValue());
}
visit.setIsOnRemindkey(isOnRemindkey);
visit.setIsOnRemind(isOnRemind);
List<DictCommonVo> commonVoList = dictCommonFeign.getTypeValues(DictCommonType.REMIND_DAY, "0").getData();
String remindDayKey = "";
if (commonVoList.size() > 0) {
remindDayKey = commonVoList.get(0).getDictKey();
}
visit.setRemind_day_key(remindDayKey);
visit.setRemind_day(dictCommonFeign.selectBykey(remindDayKey, DictCommonType.REMIND_DAY).getData().getDictValue());
crmVisitFeign.saveEntity(visit);
return visit.getSid();
}
public ResultBean<PagerVo<CrmVisitVo>> pagerList(PagerQuery<CrmVisitQuery> pagerQuery) {
ResultBean<PagerVo<CrmVisitVo>> rb = ResultBean.fireFail();
String staffSid = pagerQuery.getParams().getStaffSid();
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.selectByStaffsid(staffSid);
String name = sysUserVoResultBean.getData().getName();
IPage<CrmVisitVo> page = crmVisitFeign.pageList(pagerQuery);
PagerVo<CrmVisitVo> pv = new PagerVo<>();
PagerVo<CrmVisitVo> pv1 = PagerUtil.pageToVo(page, pv);
List<CrmVisitVo> list = pv1.getRecords();
for (CrmVisitVo crmVisitVo : list) {
crmVisitVo.setStaffName(name);
}
return rb.success().setData(pv1);
}
public ResultBean<CrmVisitVo> fetchSid(String sid) {
return crmVisitFeign.fetchSid(sid);
}
public boolean save(CrmVisit entity) {
return crmVisitFeign.saveEntity(entity);
}
public int updateBySid(CrmVisitDto dto, String sid) {
return crmVisitFeign.update(dto,sid);
}
public ResultBean delBySids(String[] ids) {
return crmVisitFeign.del(ids);
}
}

104
oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitVo.java

@ -0,0 +1,104 @@
package com.yxt.oms.biz.func.crmvisit;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmVisitVo.java <br/>
* Class: com.yxt.anrui.crm.api.crmvisit.CrmVisitVo <br/>
* Description: 客户跟进记录 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-28 09:57:14 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "客户跟进记录 视图数据对象", description = "客户跟进记录 视图数据对象")
@Data
public class CrmVisitVo implements Vo {
private static final long serialVersionUID = 3237477051430279347L;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("员工Sid")
private String staffSid;
@ApiModelProperty("员工Name")
private String staffName;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("跟进形式key")
private String follow_form_key;
@ApiModelProperty("跟进形式(电话/上门/微信/到店)")
private String follow_form;
@ApiModelProperty("跟进类别key")
private String follow_type_key;
@ApiModelProperty("跟进类别(例行安排/临时)")
private String follow_type;
@ApiModelProperty("跟进时间")
private String follow_time;
@ApiModelProperty("跟进效果")
private String follow_result;
@ApiModelProperty("拜访见证材料")
private String visit_witness_materials;
@ApiModelProperty("组织sid")
private String orgSid;
@ApiModelProperty("跟进状态key")
private String follow_state_key;
@ApiModelProperty("跟进状态(新获取/待跟进/初步意向/准客户/成交/失效)")
private String follow_state;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemind;
@ApiModelProperty("是否开启提醒(1开启,0不开启)")
private String isOnRemindkey;
@ApiModelProperty("设置提醒日期的时间")
private String setTime;
@ApiModelProperty("提醒日期(天)")
private String remind_day;
@ApiModelProperty("提醒日期(天)key")
private String remind_day_key;
@ApiModelProperty("提醒备注")
private String remind_remark;
@ApiModelProperty("位置信息")
private String positionInformation;
@ApiModelProperty("经度")
private String longitude;
@ApiModelProperty("纬度")
private String latitude;
@ApiModelProperty("经纬度")
private String location;
@ApiModelProperty("区域代码描述")
private String locationStr;
@ApiModelProperty("车辆需求条数")
private String xqcounts;
}

22
oms/src/main/java/com/yxt/oms/biz/func/crmvisit/PcCrmVisitAppendixDto.java

@ -0,0 +1,22 @@
package com.yxt.oms.biz.func.crmvisit;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class PcCrmVisitAppendixDto implements Dto {
private static final long serialVersionUID = -215934317034761854L;
//附件类型:1、0001:合同,2、0002:人行征信,3、0003:开票申请附件,4、0004:跟进记录的材料
@ApiModelProperty("上传人sid")
private String createBySid;
@ApiModelProperty("文件名")
private String fileName;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("文件大小")
private String fileSize;
@ApiModelProperty("文件的路径")
private String filePath;
}

46
oms/src/main/java/com/yxt/oms/biz/func/sysstafforg/SysStaffOrg.java

@ -0,0 +1,46 @@
package com.yxt.oms.biz.func.sysstafforg;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysStaffOrg.java <br/>
* Class: com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg <br/>
* Description: 员工部门关联表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "员工部门关联表", description = "员工部门关联表")
@TableName("sys_staff_org")
@Data
public class SysStaffOrg extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("部门sid")
private String orgSid;
@ApiModelProperty("部门名称")
private String orgName;
@ApiModelProperty("人员sid")
private String staffSid;
// @ApiModelProperty("部门路径")
// private String orgSidPath;
// @ApiModelProperty("部门名称路径")
// private String orgNamePath;
@ApiModelProperty("管理类型:1、主管。2、分管。3、员工")
private String manageType;
}

267
oms/src/main/java/com/yxt/oms/config/DictCommonType.java

@ -0,0 +1,267 @@
package com.yxt.oms.config;
import io.swagger.annotations.ApiModelProperty;
/**
* @author dimengzhe
* @date 2021/7/1 10:23
* @description 常量值管理
*/
public class DictCommonType {
//客户端获取手机验证码redis前缀定义
public static final String WX_REGIST = "wx-regist-";//注册获取验证码
public static final String WX_LOGIN = "wx-login-";//登录获取验证码
public static final String WX_FORGET = "wx-forget-";//忘记密码获取验证码
public static final String WX_UPDATE = "wx-update-";//忘记密码获取验证码
public static final String WX_NEW = "wx-new-";//新手机号获取验证码
/*供应厂商相关*/
@ApiModelProperty(value = "供应商分类")
public static final String SUPPLIER_TYPE = "supplierType";//数据字典已添加
@ApiModelProperty(value = "供应类别")
public static final String SUPPLY_TYPE = "supplyType";//数据字典已添加
@ApiModelProperty(value = "供应商分组")
public static final String SUPPLIE_RGROUP = "supplierGroup";//数据字典已添加
/*供应厂商财务信息相关*/
@ApiModelProperty(value = "结算币种")
public static final String SETTLEMENT_CURRENCY = "settlementCurrency";//数据字典已添加
@ApiModelProperty(value = "结算方式")
public static final String SETTLEMENT_WAY = "settlementWay";//数据字典已添加
@ApiModelProperty(value = "税分类")
public static final String TAX_CLASSIFICATION = "taxClassification";//数据字典已添加
/*基础信息品牌相关*/
@ApiModelProperty(value = "品牌类型")
public static final String BRAND_TYPE = "brandType";//数据字典已添加
@ApiModelProperty(value = "职级(岗位)")
public static final String POSTLEVEL = "postLevel";
/*车型、车型配置、车辆信息相关*/
@ApiModelProperty(value = "车辆类型")
public static final String VEHICLE_TYPE = "vehicleType";//数据字典已添加
@ApiModelProperty(value = "排放标准")
public static final String EMISSION_STANDARD = "emissionStandard";//数据字典已添加
@ApiModelProperty(value = "产品线")
public static final String PRODUCT_LINE = "productLine";//数据字典已添加
@ApiModelProperty(value = "后桥")
public static final String REAR_AXLE = "rearAxle";//数据字典已添加
@ApiModelProperty(value = "速比")
public static final String SPEED_RATIO = "speedRatio";//数据字典已添加
@ApiModelProperty(value = "系别")
private static final String SERIES = "series";//数据字典已添加
@ApiModelProperty(value = "车辆功能")
private static final String VEHICLE_FUNCTION = "vehicleFunction";//数据字典已添加
@ApiModelProperty(value = "细分市场")
private static final String MARKETSEGMENTS = "marketSegments";//数据字典已添加
@ApiModelProperty(value = "车身颜色")
public static final String BODYCOLOR = "bodyColor";
@ApiModelProperty(value = "缓速器")
public static final String SLOWMACHINE = "slowMachine";
@ApiModelProperty(value = "后视镜")
public static final String REARVIEWMIRROR = "rearViewMirror";
@ApiModelProperty(value = "轮胎")
public static final String TIRESIZE = "tireSize";
@ApiModelProperty(value = "驾驶室")
public static final String SPECIFICATION = "specification";
@ApiModelProperty(value = "后桥速比")
public static final String REARAXLERATIO = "rearAxleRatio";
@ApiModelProperty(value = "轮毂材质")
public static final String HUBMATERIAL = "hubMaterial";
@ApiModelProperty(value = "悬架")
public static final String SUSPENSION = "suspension";
@ApiModelProperty(value = "座椅")
public static final String SEAT = "seat";
@ApiModelProperty(value = "鞍座")
public static final String SADDLE = "saddle";
@ApiModelProperty(value = "轴距")
public static final String WHEELBASE = "wheelbase";
@ApiModelProperty(value = "保险杠")
public static final String BUMPER = "bumper";
@ApiModelProperty(value = "配置包")
public static final String CONFIGURINGBAO = "configuringBao";
@ApiModelProperty(value = "独立热源")
public static final String INDEPENDENTSOURCES = "independentSources";
@ApiModelProperty(value = "燃料箱")
public static final String FUELTANK = "fuelTank";
@ApiModelProperty(value = "有无:1有0无")
public static final String WHETHER = "whether";
@ApiModelProperty(value = "车辆状态")
public static final String VEHICLE_STATE = "vehicleState";
@ApiModelProperty(value = "车辆状态(车辆台账)")
public static final String VEHICLE_LEDGER_STATE = "vehicleLedgerState";
@ApiModelProperty(value = "驱动")
public static final String DRIVER = "driver";
@ApiModelProperty(value = "马力")
public static final String HORSEPOWER = "horsepower";
@ApiModelProperty(value = "锁定状态")
public static final String LOCKED_STATE = "lockedState";
@ApiModelProperty(value = "预计订金日期")
public static final String RESERVE_DEPOSIT_DATE = "reserveDepositDate";
@ApiModelProperty(value = "贷款主体类型")
public static final String LOANTYPE = "loanType";
@ApiModelProperty(value = "打包项目")
public static final String PACKAGINGPROJECT = "packagingProject";
@ApiModelProperty(value = "融资项目(比打包项目多一个“配件”)")
public static final String PACKAGINGPROJECTFIN = "packagingProjectFin";
@ApiModelProperty(value = "变速箱")
public static final String GEARBOX = "gearbox";
@ApiModelProperty(value = "燃料种类")
public static final String FUELTYPE = "fuelType";
@ApiModelProperty(value = "版本(车辆需求)")
public static final String VEHICLEVERSION = "vehicleVersion";
@ApiModelProperty(value = "采购形式")
public static final String PURCHASINGFORM = "purchasingForm";
/*经销商相关*/
@ApiModelProperty(value = "经销商分类")
public static final String DISTRIBUTOR_CLASSIFICATION = "distributorClassification";//数据字典已添加
@ApiModelProperty(value = "经销商类型")
public static final String DISTRIBUTOR_TYPE = "distributorType";//数据字典已添加
@ApiModelProperty(value = "经销商等级")
public static final String DISTRIBUTOR_LEVEL = "distributorLevel";//数据字典已添加
@ApiModelProperty(value = "企业性质")
public static final String ENTERPRISE_NATURE = "enterpriseNature";//数据字典已添加
@ApiModelProperty(value = "登记状态")
public static final String REGIST_STATE = "registState";
@ApiModelProperty(value = "注册资本单位")
public static final String REGISTEREDCAPITAL_ORG = "registeredCapitalOrg";
@ApiModelProperty(value = "项目类型")
public static final String PROJECT_TYPE = "projectType";
/*经销商相关结束*/
@ApiModelProperty(value = "合格证情况:0001虚拟 ,002正式")
public static final String CERTIFICATE_SITUATION = "certificateSituation";
@ApiModelProperty(value = "客户类型:1个人2企业")
public static final String CUSTOMER_TYPE = "customerType";
@ApiModelProperty(value = "登记注册号类型")
public static final String REGIST_NUM_TYPE = "registNumType";
@ApiModelProperty(value = "现居住状况")
public static final String CURRENT_LIVE_STATE = "currentlivestate";
@ApiModelProperty(value = "教育程度")
public static final String EDUCATION_DEGREE = "educationdegree";
@ApiModelProperty(value = "雇员类型")
public static final String EMPLOYEE_TYPE = "employeetype";
@ApiModelProperty(value = "证件类型")
public static final String DOCUMENT_TYPE = "documenttype";
@ApiModelProperty(value = "行业类别")
public static final String INDUSTRY_TYPE = "industrytype";
@ApiModelProperty(value = "经济类型")
public static final String ECONOMIC_TYPE = "economictype";
@ApiModelProperty(value = "组织机构类别")
public static final String ORGANIZATION_TYPE = "organizationtype";
@ApiModelProperty(value = "组织机构类别细分")
public static final String ORGANIZATION_TYPE_DETAILS = "organizationtypedetails";
@ApiModelProperty(value = "是或否")
public static final String IS_TRUE = "isTrue";
@ApiModelProperty(value = "准驾车型")
public static final String CAR_TYPE = "carType";
@ApiModelProperty(value = "与客户关系")
public static final String RELATION_SHIP = "relationship";
@ApiModelProperty(value = "现工作单位性质")
public static final String ORG_NATURE = "orgNature";
@ApiModelProperty(value = "主要收入来源")
public static final String INCOME_SOURCE = "incomeSource";
@ApiModelProperty(value = "职位")
public static final String POSITION = "position";
@ApiModelProperty(value = "经销商类型")
public static final String DEALERS_TYPE = "dealersType";
@ApiModelProperty(value = "附件类型")
public static final String ATTACH_TYPE = "attachType";
@ApiModelProperty(value = "信用记录")
public static final String CREDIT_RECORD = "creditRecord";
@ApiModelProperty(value = "拟租赁形式l")
public static final String PLANS_TO_LEASE = "plansToLease";
@ApiModelProperty(value = "去返程货物")
public static final String GO_GOODS = "goGoods";
@ApiModelProperty(value = "经营业务范围")
public static final String BUSINESSSCOPE = "businessScope";
/* 客户信息相关*/
@ApiModelProperty(value = "客户分类")
public static final String CUSTOMER_CLASS = "customerClass";
@ApiModelProperty(value = "客户来源")
public static final String CUSTOMER_SOURCE = "customerSource";
@ApiModelProperty(value = "客户等级")
public static final String CUSTOMER_LEVEL = "customerLevel";
@ApiModelProperty(value = "来访方式")
public static final String VISIT_WAY = "visitWay";
@ApiModelProperty(value = "跟进状态")
public static final String FOLLOW_STATE = "followState";
@ApiModelProperty(value = "提醒日期(天)")
public static final String REMIND_DAY = "remindDay";
@ApiModelProperty(value = "承运货物类型")
public static final String CONSIGNMENT_TYPE = "consignmentType";
@ApiModelProperty(value = "承运货物(暂为假数据)")
public static final String CONSIGNMENT = "consignment";
@ApiModelProperty(value = "购车方式")
public static final String PURCHASETYPE = "purchaseType";
@ApiModelProperty(value = "提车方式")
public static final String SALETYPE = "saleType";
/* 车辆订单 */
@ApiModelProperty(value = "单据类型")
public static final String BILLSTYPE = "billsType";
@ApiModelProperty(value = "合同类型")
public static final String CONTRACTTYPE = "contractType";
@ApiModelProperty(value = "主车优惠类型")
public static final String DISCOUNTTYPE = "discountType";
@ApiModelProperty(value = "还款方式")
public static final String MODEOFREPAY = "modeOfRePay";
@ApiModelProperty(value = "保证金方式")
public static final String BONDMETHOD = "bondMethod";
@ApiModelProperty(value = "业务类型")
public static final String BUSINESSTYPE = "businessType";
@ApiModelProperty(value = "开户银行")
public static final String BANK = "bank";
@ApiModelProperty(value = "账户类型")
public static final String ACCOUNTTYPE = "accountType";
@ApiModelProperty(value = "运输货物")
public static final String TRANSPORTCARGO = "transportCargo";
@ApiModelProperty(value = "结账周期")
public static final String CHECKOUTCYCLE = "checkoutCycle";
@ApiModelProperty(value = "虚拟订单类型")
public static final String DEPOSITBILLTYPE = "depositBillType";
@ApiModelProperty(value = "付款方式")
public static final String PAYMENTTYPE = "paymentType";
/* 物料相关 */
@ApiModelProperty(value = "物料分组")
public static final String MATERIAL_GROUP = "materialGroup";
@ApiModelProperty(value = "物料属性")
public static final String MATERIAL_PROPERTIES = "materialProperties";
@ApiModelProperty(value = "存货类别")
public static final String STOCK_TYPE = "stockType";
@ApiModelProperty(value = "基本单位")
public static final String BASIC_UNIT = "basicUnit";
/* 合同相关 */
@ApiModelProperty(value = "人员类型")
public static final String PERSONNEL_TYPE = "personnelType";
/* 开票申请单相关 */
@ApiModelProperty(value = "开票性质")
public static final String INVOICING_NATURE = "invoicingNature";
/*员工信息管理相关*/
@ApiModelProperty(value = "婚姻状况")
public static final String MARITAL_STATUS = "maritalstatus";
@ApiModelProperty(value = "民族")
public static final String NATIONAL = "national";
@ApiModelProperty(value = "性别")
public static final String SEX = "sex";
@ApiModelProperty(value = "政治面貌")
public static final String POLITICAL = "political";
/*资料清单相关*/
@ApiModelProperty(value = "资料类别")
public static final String DATA_TYPE = "dataType";
@ApiModelProperty(value = "文件格式")
public static final String FILE_TYPE = "fileType";
}

54
oms/src/main/java/com/yxt/oms/feign/customer/crmfile/CrmFileFeign.java

@ -0,0 +1,54 @@
package com.yxt.oms.feign.customer.crmfile;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.oms.biz.func.crmfile.CommonAttachTypeEnum;
import com.yxt.oms.biz.func.crmfile.PcCommonAppendixDto;
import com.yxt.oms.biz.func.crmvisit.CrmVisit;
import com.yxt.oms.biz.func.crmvisit.CrmVisitQuery;
import com.yxt.oms.biz.func.crmvisit.CrmVisitVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmCustomerTempFeign.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign <br/>
* Description: 潜在客户信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-01-12 11:21:16 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "潜在客户信息")
@FeignClient(
contextId = "ss-common-customer-CrmFile",
name = "ss-common-customer",
path = "v1/crmfile"
)
public interface CrmFileFeign {
@ApiOperation("附件保存")
@PostMapping("/saveCommonAppendix")
ResultBean saveCommonAppendix(@RequestParam(value = "linkSid") String linkSid, @RequestBody List<PcCommonAppendixDto> list);
@ApiOperation("PC端保存/修改附件")
@PostMapping("/saveOrUpdatePcAppendix")
public ResultBean saveOrUpdatePcAppendix(@RequestBody PcCommonAppendixDto dto, @RequestParam("sid") String sid, @RequestParam("staffSid") String staffSid, @RequestParam("attachType") String attachType);
@ApiOperation(value = "批量删除文件")
@PostMapping("/deleteFiles")
ResultBean deleteFiles(@RequestParam(value = "linkSid") String linkSid);
}

66
oms/src/main/java/com/yxt/oms/feign/customer/crmvisit/CrmVisitFeign.java

@ -0,0 +1,66 @@
package com.yxt.oms.feign.customer.crmvisit;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.crmcustomer.*;
import com.yxt.oms.biz.func.crmvisit.CrmVisit;
import com.yxt.oms.biz.func.crmvisit.CrmVisitDto;
import com.yxt.oms.biz.func.crmvisit.CrmVisitQuery;
import com.yxt.oms.biz.func.crmvisit.CrmVisitVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* Project: anrui-crm(客户管理) <br/>
* File: CrmCustomerTempFeign.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign <br/>
* Description: 潜在客户信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-01-12 11:21:16 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "潜在客户信息")
@FeignClient(
contextId = "ss-common-customer-CrmVisit",
name = "ss-common-customer",
path = "v1/crmvisit"
)
public interface CrmVisitFeign {
@ApiOperation("保存")
@PostMapping("/saveEntity")
public boolean saveEntity(@RequestBody CrmVisit visit);
/**
* 客户跟进记录分页列表
*
* @param pagerQuery 查询条件
* @return
*/
@ApiOperation("客户跟进记录分页列表")
@PostMapping("/pageList")
public IPage<CrmVisitVo> pageList(PagerQuery<CrmVisitQuery> pagerQuery);
@ApiOperation("Pc查看详情及修改回显")
@GetMapping("/fetchSid/{sid}")
public ResultBean<CrmVisitVo> fetchSid(@PathVariable("sid") String sid);
@ApiOperation("修改")
@PostMapping("/update")
public int update(@RequestBody CrmVisitDto dto, @PathVariable("sid") String sid);
@ApiOperation("删除记录")
@DeleteMapping("/del")
public ResultBean del(@RequestBody String[] ids);
}

108
oms/src/main/java/com/yxt/oms/feign/customer/customertemp/CrmCustomerTempFeign.java

@ -38,57 +38,65 @@ public interface CrmCustomerTempFeign {
@PostMapping("/chooseCustomerList")
public ResultBean<PagerVo<SalesCustomerVo>> chooseCustomerList(@RequestBody PagerQuery<SalesCustomerQuery> pq);
// /**
// * 潜在客户管理的分页查询
// *
// * @param pq
// * @return
// */
// @ApiOperation("根据条件分页查询数据的列表")
// @PostMapping("/listPage")
// public ResultBean<PagerVo<CrmCustomerTempVo>> listPage(@RequestBody PagerQuery<CrmCustomerTempQuery> pq);
//
// /**
// * pc端潜在客户新增保存
// *
// * @param dto 客户信息及运行信息数据传输对象
// * @return
// */
// @ApiOperation("新增保存")
// @PostMapping("/save")
// public ResultBean save(@Valid @RequestBody CrmCustomerTempDto dto);
//
// /**
// * pc端潜在客户编辑保存
// *
// * @param dto 数据传输对象
// * @param sid 潜在客户sid
// * @return
// */
// @ApiOperation("修改保存")
// @PostMapping("/update/{sid}")
// public ResultBean update(@RequestBody CrmCustomerTempUpdateDto dto, @PathVariable("sid") String sid);
//
// /**
// * pc潜在客户的批量删除
// *
// * @param sid
// * @return
// */
// @ApiOperation("删除记录")
// @DeleteMapping("/del")
// public ResultBean del(@RequestBody String[] sid);
//
// /**
// * pc潜在客户的编辑回显
// *
// * @param sid
// * @return
// */
// @ApiOperation("获取一条记录")
// @GetMapping("/fetchSid/{sid}")
// public ResultBean<CrmCustomerTempVo> fetchSid(@PathVariable("sid") String sid);
/**
* 潜在客户管理的分页查询
*
* @param pq
* @return
*/
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<CrmCustomerTempVo>> listPage(@RequestBody PagerQuery<CrmCustomerTempQuery> pq);
@ApiOperation("根据客户编码查询客户")
@GetMapping("/selectByCustomerNo")
public ResultBean<CrmCustomerTemp> selectByCustomerNo(@RequestParam("customerNo") String customerNo);
@ApiOperation("保存")
@PostMapping("/saveEntity")
public ResultBean saveEntity(@RequestBody CrmCustomerTemp temp);
/**
* pc潜在客户的批量删除
*
* @param sid
* @return
*/
@ApiOperation("删除记录")
@DeleteMapping("/del")
public ResultBean del(@RequestBody String[] sid);
@ApiOperation("根据客户编码查询客户")
@GetMapping("/fetchBySid")
public ResultBean<CrmCustomerTemp> fetchBySid(@RequestParam("sid") String sid);
@ApiOperation("修改")
@PostMapping("/updateEntity")
public ResultBean updateEntity(@RequestBody CrmCustomerTemp temp);
/**
* 添加运营情况信息时/添加跟进记录查询客户是否存在
*
* @param customerSid
* @return
*/
@ApiOperation("添加运营情况信息时/添加跟进记录查询客户是否存在")
@GetMapping("/selBySid")
public int selBySid(@RequestParam("customerSid") String customerSid);
/**
* 添加运营情况信息时/添加跟进记录查询客户是否存在
*
* @param customerSid
* @return
*/
@ApiOperation("添加运营情况信息时/添加跟进记录查询客户是否存在")
@PostMapping("/selBySid")
public int updateRemindAndByCustomerSid(@RequestParam(value = "customerSid", required = false) String customerSid,
@RequestParam(value = "remind_day", required = false) String remind_day,
@RequestParam(value = "remind_remark", required = false) String remind_remark,
@RequestParam(value = "isOnRemind", required = false) String isOnRemind,
@RequestParam(value = "isOnRemindkey", required = false) String isOnRemindkey,
@RequestParam(value = "follow_state", required = false) String follow_state);
}

19
oms/src/main/java/com/yxt/oms/feign/portal/sysstafforg/SysStaffOrgFeign.java

@ -1,10 +1,14 @@
package com.yxt.oms.feign.portal.sysstafforg;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import com.yxt.oms.biz.func.sysstafforg.SysStaffOrg;
import com.yxt.oms.biz.func.sysstafforg.SysStaffOrgByUserVo;
import com.yxt.oms.feign.portal.sysuser.SysStaffOrgVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@ -30,4 +34,19 @@ public interface SysStaffOrgFeign {
@ResponseBody
@ApiOperation("根据组织全路径查询当前部门下的所有员工")
public ResultBean<List<SysStaffOrgByUserVo>> selAllByOrgSidPath(String orgSidPath);
@GetMapping("/getOrgByStaffSid")
@ResponseBody
@ApiOperation("根据用户组织全路径获取用户的分公司sid")
public ResultBean<SysStaffOrg> getOrgByStaffSid(@RequestParam("staffSid") String staffSid);
@GetMapping("/getPathSidByUserSid")
@ResponseBody
@ApiOperation("根据组织全路径查询当前部门下的所有员工")
public ResultBean<String> getPathSidByUserSid(@RequestParam(value = "userSid") String applySid);
@ApiOperation("根据员工sid获取部门信息")
@ResponseBody
@GetMapping("/getSysStaffOrgListByStaffSid/{staffSid}")
public ResultBean<List<SysStaffOrgVo>> getSysStaffOrgListByStaffSid(@PathVariable("staffSid") String staffSid);
}

5
oms/src/main/java/com/yxt/oms/feign/portal/sysuser/SysUserFeign.java

@ -95,4 +95,9 @@ public interface SysUserFeign {
@ApiOperation("根据sid查询用户信息")
@PostMapping("/selectBySid")
public ResultBean<SysUser> selectBySid(@RequestParam("sid") String sid);
@ApiOperation("根据staffsid查询用户")
@ResponseBody
@GetMapping("/selectByStaffsid/{staffsid}")
public ResultBean<SysUserVo> selectByStaffsid(@PathVariable("staffsid") String staffsid);
}

Loading…
Cancel
Save