diff --git a/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerFileRest.java b/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerFileRest.java
new file mode 100644
index 0000000..736f8b5
--- /dev/null
+++ b/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(客户)
+ * File: CrmCustomerFileFeignFallback.java
+ * Class: com.yxt.anrui.crm.biz.crmcustomerfile.CrmCustomerFileRest
+ * Description: 客户资料初始化表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-02-26 14:10:17
+ *
+ * @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> listPage(@RequestBody PagerQuery pq) {
+ return crmCustomerFileService.listPageVo(pq);
+ }
+//
+//
+// public ResultBean saveCustomerFile(String staffName, String staffSid, String sid, List crmFileDtos) {
+// return crmCustomerFileService.saveCustomerFile(staffName, staffSid, sid, crmFileDtos);
+// }
+//
+//
+// public ResultBean fetchFileListBySid(String sid) {
+// return crmCustomerFileService.fetchFileListBySid(sid);
+// }
+//
+//
+// public ResultBean> selectIdImageByCustomerSid(String customerSid) {
+// ResultBean rb = ResultBean.fireFail();
+// List crmCustomerFiles = crmCustomerFileService.selectIdImageByCustomerSid(customerSid);
+// return rb.success().setData(crmCustomerFiles);
+// }
+
+
+}
diff --git a/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerTempRest.java b/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerTempRest.java
index e459d4a..dd99285 100644
--- a/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmCustomerTempRest.java
+++ b/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> listPage(@RequestBody PagerQuery 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 fetchSid(@PathVariable("sid") String sid) {
-// ResultBean 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> listPage(@RequestBody PagerQuery 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 fetchSid(@PathVariable("sid") String sid) {
+ ResultBean rb = ResultBean.fireFail();
+ CrmCustomerTemp customerTemp = crmCustomerTempService.fetchBySid(sid);
+ if (customerTemp == null) {
+ return rb.setMsg("该客户不存在");
+ }
+ CrmCustomerTempVo vo = crmCustomerTempService.fetchAllBySid(sid);
+ return rb.success().setData(vo);
+ }
diff --git a/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmVisitRest.java b/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmVisitRest.java
new file mode 100644
index 0000000..7523d31
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmVisitFeignFallback.java
+ * Class: com.yxt.anrui.crm.biz.crmvisit.CrmVisitRest
+ * Description: 客户跟进记录.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-28 09:57:14
+ *
+ * @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> pagerList(@RequestBody PagerQuery pagerQuery) {
+ return crmVisitService.pagerList(pagerQuery);
+ }
+
+ @ApiOperation("Pc查看详情及修改回显")
+ @GetMapping("/fetchSid/{sid}")
+ public ResultBean 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 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 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);
+ }
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTemp.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTemp.java
new file mode 100644
index 0000000..922a954
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmCustomerTemp.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp
+ * Description: 潜在客户信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ *
+ * @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;
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempDto.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempDto.java
new file mode 100644
index 0000000..bbe35a3
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmCustomerTempDto.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempDto
+ * Description: 潜在客户信息 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ *
+ * @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 crmVisitAppendixDtoList = new ArrayList<>();
+
+
+ private String orgPath;
+ private String useOrgSid;
+ private String customerOrgSid;
+ private String customerOrgName;
+
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempQuery.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempQuery.java
new file mode 100644
index 0000000..a846628
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmCustomerTempQuery.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempQuery
+ * Description: 潜在客户信息 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ *
+ * @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 customerSidList;
+
+ @ApiModelProperty("创建开始日期")
+ private String createStartDate;
+
+ @ApiModelProperty("创建结束日期")
+ private String createEndDate;
+
+ @ApiModelProperty("销售专员")
+ private String staffName;
+
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java
index 9fe395d..e2b1f67 100644
--- a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java
+++ b/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(客户管理)
@@ -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> listPageVo(PagerQuery 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> listPageVo(PagerQuery 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> chooseCustomerList(PagerQuery pq) {
ResultBean> 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 pcCommonAppendixDtoList = new ArrayList<>();
+ List 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 staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(staffSid);
+ if (staffOrgResultBean.getSuccess()) {
+ SysStaffOrg sysStaffOrg = staffOrgResultBean.getData();
+ if (sysStaffOrg != null) {
+// ResultBean resultBean1 = sysStaffOrgFeign.getOrgSidByPath(sysStaffOrg.getOrgSid());
+// if (resultBean1.getSuccess()) {
+// String osid = resultBean1.getData();
+// if (StringUtils.isNotBlank(osid)) {
+// ResultBean sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(osid);
+// if (sysOrganizationVoResultBean.getSuccess()) {
+// SysOrganizationVo sysOrganizationVo = sysOrganizationVoResultBean.getData();
+// customerNoPrefix = customerNoPrefix + sysOrganizationVo.getOrgAbbre();
+// }
+// }
+// }
+ String orgSid1 = sysStaffOrg.getOrgSid();
+ ResultBean 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;
+ }
}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempUpdateDto.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempUpdateDto.java
new file mode 100644
index 0000000..8957ce4
--- /dev/null
+++ b/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;
+
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempVo.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempVo.java
new file mode 100644
index 0000000..753353f
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmCustomerTempVo.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo
+ * Description: 潜在客户信息 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ *
+ * @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;
+
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileQuery.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileQuery.java
new file mode 100644
index 0000000..1973ddb
--- /dev/null
+++ b/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(客户)
+ * File: CrmCustomerFileQuery.java
+ * Class: com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileQuery
+ * Description: 客户资料初始化表 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-02-26 14:10:17
+ *
+ * @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;
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileService.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileService.java
new file mode 100644
index 0000000..c41f4be
--- /dev/null
+++ b/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(客户)
+ * File: CrmCustomerFileService.java
+ * Class: com.yxt.anrui.crm.biz.crmcustomerfile.CrmCustomerFileService
+ * Description: 客户资料初始化表 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-02-26 14:10:17
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Service
+public class CrmCustomerFileService {
+
+
+ public ResultBean> listPageVo(PagerQuery pq) {
+ return null;
+ }
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileVo.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomerfile/CrmCustomerFileVo.java
new file mode 100644
index 0000000..19e8dbd
--- /dev/null
+++ b/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(客户)
+ * File: CrmCustomerFileVo.java
+ * Class: com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileVo
+ * Description: 客户资料初始化表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-02-26 14:10:17
+ *
+ * @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;
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAttachTypeEnum.java b/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAttachTypeEnum.java
new file mode 100644
index 0000000..b7d7f6a
--- /dev/null
+++ b/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 {
+ /**
+ * 附件类型:
+ * 1、0001:合同,
+ * 2、0002:人行征信,
+ * 3、0003:开票申请附件,
+ * 4、0004:跟进记录的材料
+ * 5、0005:家访照片
+ * 6、0006_1:贷款人证明文_担保人人行征信查询授权书(原件)
+ * 7、0006_2:贷款人证明文_贷款人人行征信查询授权书(手持)
+ * 8、0006_3:贷款人证明文_配偶人行征信查询授权书(原件)
+ * 9、0006_4:贷款人证明文_配偶人行征信查询授权书(手持)
+ * 10、0006_5:贷款人证明文_配偶数据查询授权书
+ * 11、0006_6:贷款人证明文_征信查询报告(有效期:3个月以内)
+ * 12、0006_7:贷款人证明文_贷款人及配偶居住证明
+ * 13、0007_1:担保人文件_担保人人行征信查询授权书(原件)
+ * 14、0007_2:担保人文件_担保人人行征信查询授权书(手持)
+ * 15、0008:资产证明
+ * 16、0009_01:放款文件_家访照片
+ * 17、0009_02:放款文件_交车照片
+ * 18、0009_03:放款文件_车辆合格证
+ * 19、0009_04:放款文件_挂车合格证
+ * 20、0009_05:放款文件_新车全车照片
+ * 21、0009_06:放款文件_挂车照片
+ * 22、0009_07:放款文件_新车发动机号照片
+ * 23、0009_08:放款文件_新车车架号照片
+ * 24、0009_09:放款文件_挂车车架号照片
+ * 25、0009_10:放款文件_放款文件其它资料
+ * 26、0009_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;
+ }
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmfile/PcCommonAppendixDto.java b/oms/src/main/java/com/yxt/oms/biz/func/crmfile/PcCommonAppendixDto.java
new file mode 100644
index 0000000..941cbb4
--- /dev/null
+++ b/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;
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisit.java b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisit.java
new file mode 100644
index 0000000..214e0b1
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmVisit.java
+ * Class: com.yxt.anrui.crm.api.crmvisit.CrmVisit
+ * Description: 客户跟进记录.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-28 09:57:14
+ *
+ * @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;
+
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitDto.java b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitDto.java
new file mode 100644
index 0000000..b045053
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmVisitDto.java
+ * Class: com.yxt.anrui.crm.api.crmvisit.CrmVisitDto
+ * Description: 客户跟进记录 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-28 09:57:14
+ *
+ * @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 list;
+
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitQuery.java b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitQuery.java
new file mode 100644
index 0000000..7a3986d
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmVisitQuery.java
+ * Class: com.yxt.anrui.crm.api.crmvisit.CrmVisitQuery
+ * Description: 客户跟进记录 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-28 09:57:14
+ *
+ * @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;
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitService.java b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitService.java
new file mode 100644
index 0000000..bb662e9
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmVisitService.java
+ * Class: com.yxt.anrui.crm.biz.crmvisit.CrmVisitService
+ * Description: 客户跟进记录 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-28 09:57:14
+ *
+ * @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 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 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> pagerList(PagerQuery pagerQuery) {
+ ResultBean> rb = ResultBean.fireFail();
+ String staffSid = pagerQuery.getParams().getStaffSid();
+ ResultBean sysUserVoResultBean = sysUserFeign.selectByStaffsid(staffSid);
+ String name = sysUserVoResultBean.getData().getName();
+ IPage page = crmVisitFeign.pageList(pagerQuery);
+ PagerVo pv = new PagerVo<>();
+ PagerVo pv1 = PagerUtil.pageToVo(page, pv);
+ List list = pv1.getRecords();
+ for (CrmVisitVo crmVisitVo : list) {
+ crmVisitVo.setStaffName(name);
+ }
+ return rb.success().setData(pv1);
+
+ }
+
+ public ResultBean 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);
+ }
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitVo.java b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitVo.java
new file mode 100644
index 0000000..6286e83
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmVisitVo.java
+ * Class: com.yxt.anrui.crm.api.crmvisit.CrmVisitVo
+ * Description: 客户跟进记录 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-09-28 09:57:14
+ *
+ * @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;
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/PcCrmVisitAppendixDto.java b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/PcCrmVisitAppendixDto.java
new file mode 100644
index 0000000..087dc9d
--- /dev/null
+++ b/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;
+}
diff --git a/oms/src/main/java/com/yxt/oms/biz/func/sysstafforg/SysStaffOrg.java b/oms/src/main/java/com/yxt/oms/biz/func/sysstafforg/SysStaffOrg.java
new file mode 100644
index 0000000..8f9a1ff
--- /dev/null
+++ b/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(门户建设)
+ * File: SysStaffOrg.java
+ * Class: com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg
+ * Description: 员工部门关联表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:29
+ *
+ * @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;
+}
diff --git a/oms/src/main/java/com/yxt/oms/config/DictCommonType.java b/oms/src/main/java/com/yxt/oms/config/DictCommonType.java
new file mode 100644
index 0000000..80d149a
--- /dev/null
+++ b/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";
+}
diff --git a/oms/src/main/java/com/yxt/oms/feign/customer/crmfile/CrmFileFeign.java b/oms/src/main/java/com/yxt/oms/feign/customer/crmfile/CrmFileFeign.java
new file mode 100644
index 0000000..af41b2c
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmCustomerTempFeign.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign
+ * Description: 潜在客户信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ *
+ * @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 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);
+
+
+
+}
diff --git a/oms/src/main/java/com/yxt/oms/feign/customer/crmvisit/CrmVisitFeign.java b/oms/src/main/java/com/yxt/oms/feign/customer/crmvisit/CrmVisitFeign.java
new file mode 100644
index 0000000..77c9796
--- /dev/null
+++ b/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(客户管理)
+ * File: CrmCustomerTempFeign.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign
+ * Description: 潜在客户信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ *
+ * @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 pageList(PagerQuery pagerQuery);
+
+
+ @ApiOperation("Pc查看详情及修改回显")
+ @GetMapping("/fetchSid/{sid}")
+ public ResultBean 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);
+}
diff --git a/oms/src/main/java/com/yxt/oms/feign/customer/customertemp/CrmCustomerTempFeign.java b/oms/src/main/java/com/yxt/oms/feign/customer/customertemp/CrmCustomerTempFeign.java
index 2d49bdd..4212f03 100644
--- a/oms/src/main/java/com/yxt/oms/feign/customer/customertemp/CrmCustomerTempFeign.java
+++ b/oms/src/main/java/com/yxt/oms/feign/customer/customertemp/CrmCustomerTempFeign.java
@@ -38,57 +38,65 @@ public interface CrmCustomerTempFeign {
@PostMapping("/chooseCustomerList")
public ResultBean> chooseCustomerList(@RequestBody PagerQuery pq);
-// /**
-// * 潜在客户管理的分页查询
-// *
-// * @param pq
-// * @return
-// */
-// @ApiOperation("根据条件分页查询数据的列表")
-// @PostMapping("/listPage")
-// public ResultBean> listPage(@RequestBody PagerQuery 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 fetchSid(@PathVariable("sid") String sid);
+ /**
+ * 潜在客户管理的分页查询
+ *
+ * @param pq
+ * @return
+ */
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage")
+ public ResultBean> listPage(@RequestBody PagerQuery pq);
+ @ApiOperation("根据客户编码查询客户")
+ @GetMapping("/selectByCustomerNo")
+ public ResultBean 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 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);
}
diff --git a/oms/src/main/java/com/yxt/oms/feign/portal/sysstafforg/SysStaffOrgFeign.java b/oms/src/main/java/com/yxt/oms/feign/portal/sysstafforg/SysStaffOrgFeign.java
index a274a80..fd92a88 100644
--- a/oms/src/main/java/com/yxt/oms/feign/portal/sysstafforg/SysStaffOrgFeign.java
+++ b/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> selAllByOrgSidPath(String orgSidPath);
+
+ @GetMapping("/getOrgByStaffSid")
+ @ResponseBody
+ @ApiOperation("根据用户组织全路径获取用户的分公司sid")
+ public ResultBean getOrgByStaffSid(@RequestParam("staffSid") String staffSid);
+
+ @GetMapping("/getPathSidByUserSid")
+ @ResponseBody
+ @ApiOperation("根据组织全路径查询当前部门下的所有员工")
+ public ResultBean getPathSidByUserSid(@RequestParam(value = "userSid") String applySid);
+
+ @ApiOperation("根据员工sid获取部门信息")
+ @ResponseBody
+ @GetMapping("/getSysStaffOrgListByStaffSid/{staffSid}")
+ public ResultBean> getSysStaffOrgListByStaffSid(@PathVariable("staffSid") String staffSid);
}
diff --git a/oms/src/main/java/com/yxt/oms/feign/portal/sysuser/SysUserFeign.java b/oms/src/main/java/com/yxt/oms/feign/portal/sysuser/SysUserFeign.java
index c1e2c36..66274b3 100644
--- a/oms/src/main/java/com/yxt/oms/feign/portal/sysuser/SysUserFeign.java
+++ b/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 selectBySid(@RequestParam("sid") String sid);
+
+ @ApiOperation("根据staffsid查询用户")
+ @ResponseBody
+ @GetMapping("/selectByStaffsid/{staffsid}")
+ public ResultBean selectByStaffsid(@PathVariable("staffsid") String staffsid);
}