📖 CRM:线索 clue 新增/修改的完善

This commit is contained in:
YunaiV 2024-02-19 19:02:12 +08:00
parent 49bc70ed82
commit fe330482b3
11 changed files with 27 additions and 230 deletions

View File

@ -70,10 +70,6 @@ public class CrmClueRespVO {
@ExcelProperty("电话")
private String telephone;
@Schema(description = "网址", example = "25682")
@ExcelProperty("网址")
private String website;
@Schema(description = "QQ", example = "25682")
@ExcelProperty("QQ")
private String qq;
@ -86,9 +82,15 @@ public class CrmClueRespVO {
@ExcelProperty("email")
private String email;
@Schema(description = "地址", example = "北京市海淀区")
@ExcelProperty("地址")
private String address;
@Schema(description = "地区编号", example = "1024")
@ExcelProperty("地区编号")
private Integer areaId;
@Schema(description = "地区名称", example = "北京市")
@ExcelProperty("地区名称")
private String areaName;
@Schema(description = "详细地址", example = "北京市成华大道")
@ExcelProperty("详细地址")
private String detailAddress;
@Schema(description = "所属行业", requiredMode = Schema.RequiredMode.REQUIRED, example = "13563")
@ExcelProperty(value = "所属行业", converter = DictConvert.class)
@ -105,10 +107,6 @@ public class CrmClueRespVO {
@DictFormat(cn.iocoder.yudao.module.crm.enums.DictTypeConstants.CRM_CUSTOMER_SOURCE)
private Integer source;
@Schema(description = "客户描述", example = "25682")
@ExcelProperty("客户描述")
private String description;
@Schema(description = "备注", example = "随便")
@ExcelProperty("备注")
private String remark;

View File

@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.crm.enums.customer.CrmCustomerLevelEnum;
import cn.iocoder.yudao.module.crm.framework.operatelog.core.CrmCustomerIndustryParseFunction;
import cn.iocoder.yudao.module.crm.framework.operatelog.core.CrmCustomerLevelParseFunction;
import cn.iocoder.yudao.module.crm.framework.operatelog.core.CrmCustomerSourceParseFunction;
import cn.iocoder.yudao.module.crm.framework.operatelog.core.SysAreaParseFunction;
import com.mzt.logapi.starter.annotation.DiffLogField;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Email;
@ -56,10 +57,6 @@ public class CrmClueSaveReqVO {
@Telephone
private String telephone;
@Schema(description = "网址", example = "https://www.baidu.com")
@DiffLogField(name = "网址")
private String website;
@Schema(description = "QQ", example = "123456789")
@DiffLogField(name = "QQ")
@Size(max = 20, message = "QQ长度不能超过 20 个字符")
@ -76,9 +73,13 @@ public class CrmClueSaveReqVO {
@Size(max = 255, message = "邮箱长度不能超过 255 个字符")
private String email;
@Schema(description = "地址", example = "北京市海淀区")
@DiffLogField(name = "地址")
private String address;
@Schema(description = "地区编号", example = "20158")
@DiffLogField(name = "地区编号", function = SysAreaParseFunction.NAME)
private Integer areaId;
@Schema(description = "详细地址", example = "北京市海淀区")
@DiffLogField(name = "详细地址")
private String detailAddress;
@Schema(description = "所属行业", example = "1")
@DiffLogField(name = "所属行业", function = CrmCustomerIndustryParseFunction.NAME)

View File

@ -239,10 +239,10 @@ public class CrmCustomerController {
// 手动创建导出 demo
List<CrmCustomerImportExcelVO> list = Arrays.asList(
CrmCustomerImportExcelVO.builder().name("芋道").industryId(1).level(1).source(1).mobile("15601691300").telephone("")
.website("https://doc.iocoder.cn/").qq("").wechat("").email("yunai@iocoder.cn").description("").remark("")
.qq("").wechat("").email("yunai@iocoder.cn").description("").remark("")
.areaId(null).detailAddress("").build(),
CrmCustomerImportExcelVO.builder().name("源码").industryId(1).level(1).source(1).mobile("15601691300").telephone("")
.website("https://doc.iocoder.cn/").qq("").wechat("").email("yunai@iocoder.cn").description("").remark("")
.qq("").wechat("").email("yunai@iocoder.cn").description("").remark("")
.areaId(null).detailAddress("").build()
);
// 输出

View File

@ -43,9 +43,6 @@ public class CrmCustomerImportExcelVO {
@ExcelProperty("电话")
private String telephone;
@ExcelProperty("网址")
private String website;
@ExcelProperty("QQ")
private String qq;

View File

@ -64,10 +64,6 @@ public class CrmCustomerRespVO {
@ExcelProperty("电话")
private String telephone;
@Schema(description = "负责人的用户编号", example = "25682")
@ExcelProperty("网址")
private String website;
@Schema(description = "负责人的用户编号", example = "25682")
@ExcelProperty("QQ")
private String qq;
@ -80,10 +76,6 @@ public class CrmCustomerRespVO {
@ExcelProperty("email")
private String email;
@Schema(description = "负责人的用户编号", example = "25682")
@ExcelProperty("客户描述")
private String description;
@Schema(description = "负责人的用户编号", example = "25682")
@ExcelProperty("备注")
private String remark;

View File

@ -58,10 +58,6 @@ public class CrmCustomerSaveReqVO {
@Telephone
private String telephone;
@Schema(description = "网址", example = "https://www.baidu.com")
@DiffLogField(name = "网址")
private String website;
@Schema(description = "QQ", example = "123456789")
@DiffLogField(name = "QQ")
@Size(max = 20, message = "QQ长度不能超过 20 个字符")

View File

@ -80,10 +80,6 @@ public class CrmClueDO extends BaseDO {
* 电话
*/
private String telephone;
/**
* 网址
*/
private String website;
/**
* QQ
*/
@ -97,9 +93,15 @@ public class CrmClueDO extends BaseDO {
*/
private String email;
/**
* 地址
* 所在地
*
* 关联 {@link cn.iocoder.yudao.framework.ip.core.Area#getId()} 字段
*/
private String address;
private Integer areaId;
/**
* 详细地址
*/
private String detailAddress;
/**
* 所属行业
*
@ -118,10 +120,6 @@ public class CrmClueDO extends BaseDO {
* 对应字典 {@link DictTypeConstants#CRM_CUSTOMER_SOURCE}
*/
private Integer source;
/**
* 客户描述
*/
private String description;
/**
* 备注
*/

View File

@ -79,10 +79,6 @@ public class CrmCustomerDO extends BaseDO {
* 电话
*/
private String telephone;
/**
* 网址
*/
private String website;
/**
* QQ
*/
@ -123,10 +119,6 @@ public class CrmCustomerDO extends BaseDO {
* 对应字典 {@link DictTypeConstants#CRM_CUSTOMER_SOURCE}
*/
private Integer source;
/**
* 客户描述
*/
private String description;
/**
* 备注
*/

View File

@ -64,10 +64,6 @@ public class CrmCustomerCreateReqBO {
*/
@Telephone
private String telephone;
/**
* 网址
*/
private String website;
/**
* QQ
*/

View File

@ -1,11 +0,0 @@
DELETE FROM "crm_contract";
DELETE FROM "crm_clue";
DELETE FROM "crm_receivable";
DELETE FROM "crm_receivable_plan";
DELETE FROM "crm_customer";
DELETE FROM "crm_customer_limit_config";

View File

@ -1,162 +0,0 @@
CREATE TABLE IF NOT EXISTS "crm_contract" (
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"name" varchar NOT NULL,
"customer_id" bigint,
"business_id" bigint,
"process_instance_id" bigint,
"order_date" varchar,
"owner_user_id" bigint,
"no" varchar,
"start_time" varchar,
"end_time" varchar,
"price" int,
"discount_percent" int,
"product_price" int,
"ro_user_ids" varchar,
"rw_user_ids" varchar,
"contact_id" bigint,
"sign_user_id" bigint,
"contact_last_time" varchar,
"remark" varchar,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
PRIMARY KEY ("id")
) COMMENT '合同表';
CREATE TABLE IF NOT EXISTS "crm_clue" (
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"transform_status" bit NOT NULL,
"follow_up_status" bit NOT NULL,
"name" varchar NOT NULL,
"customer_id" bigint NOT NULL,
"contact_next_time" varchar,
"telephone" varchar,
"mobile" varchar,
"address" varchar,
"owner_user_id" bigint,
"contact_last_time" varchar,
"remark" varchar,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint NOT NULL,
PRIMARY KEY ("id")
) COMMENT '线索表';
CREATE TABLE IF NOT EXISTS "crm_receivable" (
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"no" varchar,
"plan_id" bigint,
"customer_id" bigint,
"contract_id" bigint,
"check_status" int,
"process_instance_id" bigint,
"return_time" varchar,
"return_type" varchar,
"price" varchar,
"owner_user_id" bigint,
"batch_id" bigint,
"sort" int,
"data_scope" int,
"data_scope_dept_ids" varchar,
"status" int NOT NULL,
"remark" varchar,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
PRIMARY KEY ("id")
) COMMENT '回款';
CREATE TABLE IF NOT EXISTS "crm_receivable_plan" (
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"index_no" bigint,
"receivable_id" bigint,
"status" int NOT NULL,
"check_status" varchar,
"process_instance_id" bigint,
"price" varchar,
"return_time" varchar,
"remind_days" bigint,
"remind_time" varchar,
"customer_id" bigint,
"contract_id" bigint,
"owner_user_id" bigint,
"sort" int,
"remark" varchar,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
PRIMARY KEY ("id")
) COMMENT '回款计划';
CREATE TABLE IF NOT EXISTS "crm_customer" (
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"name" varchar(255),
"follow_up_status" int NOT NULL,
"lock_status" int NOT NULL,
"deal_status" int NOT NULL,
"industry_id" int,
"level" int,
"source" int,
"mobile" varchar(255),
"telephone" varchar(255),
"website" varchar(255),
"qq" varchar(255),
"wechat" varchar(255),
"email" varchar(255),
"description" varchar(255),
"remark" varchar(255),
"owner_user_id" bigint,
"area_id" int,
"detail_address" varchar(255),
"contact_last_time" datetime,
"contact_next_time" datetime,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint NOT NULL,
PRIMARY KEY ("id")
) COMMENT '客户表';
CREATE TABLE IF NOT EXISTS "crm_customer_limit_config" (
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"type" int NOT NULL,
"user_ids" varchar,
"dept_ids" varchar,
"max_count" int NOT NULL,
"deal_count_enabled" varchar,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint NOT NULL,
PRIMARY KEY ("id")
) COMMENT '客户限制配置表';
CREATE TABLE IF NOT EXISTS "crm_permission"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"biz_id" bigint NOT NULL,
"biz_type" int NOT NULL,
"user_id" bigint NOT NULL,
"level" int NOT NULL,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint NOT NULL,
PRIMARY KEY ("id")
) COMMENT '客户限制配置表';