CRM后端六模块代码生成完毕

This commit is contained in:
liuzongkun999
2025-03-12 12:56:45 +08:00
parent 519df7599c
commit c8cce87fe2
48 changed files with 3770 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 商机对象 oa_business
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_business")
public class OaBusiness extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 编号
*/
@TableId(value = "business_id")
private Long businessId;
/**
* 商机名称
*/
private String name;
/**
* 客户编号
*/
private Long customerId;
/**
* 跟进状态
*/
private Integer followUpStatus;
/**
* 最后跟进时间
*/
private Date contactLastTime;
/**
* 下次联系时间
*/
private Date contactNextTime;
/**
* 负责人的用户编号
*/
private Long ownerUserId;
/**
* 商机状态类型编号
*/
private Long statusTypeId;
/**
* 商机状态编号
*/
private Long statusId;
/**
* 结束状态1-赢单 2-输单3-无效
*/
private Long endStatus;
/**
* 预计成交日期
*/
private Date dealTime;
/**
* 产品总金额,单位:元
*/
private BigDecimal totalProductPrice;
/**
* 整单折扣,百分比
*/
private BigDecimal discountPercent;
/**
* 商机总金额,单位:元
*/
private BigDecimal totalPrice;
/**
* 备注
*/
private String remark;
/**
* 结束时的备注
*/
private String endRemark;
/**
* 逻辑删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,61 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 商机产品关联对象 oa_business_product
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_business_product")
public class OaBusinessProduct extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "business_product_id")
private Long businessProductId;
/**
* 商机编号
*/
private Long businessId;
/**
* 产品编号
*/
private Long productId;
/**
* 产品单价
*/
private BigDecimal productPrice;
/**
* 商机价格
*/
private BigDecimal businessPrice;
/**
* 数量
*/
private BigDecimal count;
/**
* 总计价格
*/
private BigDecimal totalPrice;
/**
* 是否删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,114 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 线索对象 oa_clue
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_clue")
public class OaClue extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 编号,主键自增
*/
@TableId(value = "clue_id")
private Long clueId;
/**
* 线索名称
*/
private String clueName;
/**
* 跟进状态
*/
private Integer followUpStatus;
/**
* 最后跟进时间
*/
private Date contactLastTime;
/**
* 最后跟进内容
*/
private String contactLastContent;
/**
* 下次联系时间
*/
private Date contactNextTime;
/**
* 负责人的用户编号
*/
private Long ownerUserId;
/**
* 转化状态
*/
private Integer transformStatus;
/**
* 客户编号
*/
private Long customerId;
/**
* 手机号
*/
private String mobile;
/**
* 电话
*/
private String telephone;
/**
* QQ
*/
private String qq;
/**
* 微信
*/
private String wechat;
/**
* 邮箱
*/
private String email;
/**
* 地区编号
*/
private Long areaId;
/**
* 详细地址
*/
private String detailAddress;
/**
* 所属行业
*/
private Long industryId;
/**
* 客户等级
*/
private Long level;
/**
* 客户来源
*/
private Long source;
/**
* 备注
*/
private String remark;
/**
* 是否删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,114 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 客户对象 oa_customer
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_customer")
public class OaCustomer extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 编号,主键自增
*/
@TableId(value = "customer_id")
private Long customerId;
/**
* 客户名称
*/
private String name;
/**
* 跟进状态
*/
private Integer followUpStatus;
/**
* 最后跟进时间
*/
private Date contactLastTime;
/**
* 最后跟进内容
*/
private String contactLastContent;
/**
* 下次联系时间
*/
private Date contactNextTime;
/**
* 负责人的用户编号
*/
private Long ownerUserId;
/**
* 成为负责人的时间
*/
private Date ownerTime;
/**
* 成交状态
*/
private Long dealStatus;
/**
* 手机
*/
private String mobile;
/**
* 电话
*/
private String telephone;
/**
* QQ
*/
private String qq;
/**
* 微信
*/
private String wechat;
/**
* 邮箱
*/
private String email;
/**
* 地区编号
*/
private Long areaId;
/**
* 详细地址
*/
private String detailAddress;
/**
* 所属行业
*/
private Long industryId;
/**
* 客户等级
*/
private Long level;
/**
* 客户来源
*/
private Long source;
/**
* 备注
*/
private String remark;
/**
* 是否删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,70 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 跟进记录对象 oa_follow_up_record
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_follow_up_record")
public class OaFollowUpRecord extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 编号
*/
@TableId(value = "follow_id")
private Long followId;
/**
* 跟进类型
*/
private Long type;
/**
* 跟进内容
*/
private String content;
/**
* 下次联系时间
*/
private Date nextTime;
/**
* 图片
*/
private String picUrls;
/**
* 附件
*/
private String fileUrls;
/**
* 关联的商机编号数组
*/
private String businessIds;
/**
* 暂用此代替商机记录
*/
private Long businessId;
/**
* 关联的联系人编号数组
*/
private String contactIds;
/**
* 是否删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,68 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 产品对象 oa_product
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_product")
public class OaProduct extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 产品编号
*/
@TableId(value = "product_id")
private Long productId;
/**
* 产品名称
*/
private String productName;
/**
* 产品编码
*/
private String productNumber;
/**
* 单位
*/
private Long unit;
/**
* 价格,单位:元
*/
private BigDecimal price;
/**
* 状态
*/
private Long status;
/**
* 产品分类编号
*/
private Long categoryId;
/**
* 产品描述
*/
private String description;
/**
* 负责人的用户编号
*/
private Long ownerUserId;
/**
* 是否删除
*/
private Long deleted;
}

View File

@@ -0,0 +1,124 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 商机业务对象 oa_business
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaBusinessBo extends BaseEntity {
/**
* 编号
*/
@NotNull(message = "编号不能为空", groups = { EditGroup.class })
private Long businessId;
/**
* 商机名称
*/
@NotBlank(message = "商机名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 客户编号
*/
@NotNull(message = "客户编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long customerId;
/**
* 跟进状态
*/
@NotNull(message = "跟进状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer followUpStatus;
/**
* 最后跟进时间
*/
@NotNull(message = "最后跟进时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date contactLastTime;
/**
* 下次联系时间
*/
@NotNull(message = "下次联系时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date contactNextTime;
/**
* 负责人的用户编号
*/
@NotNull(message = "负责人的用户编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long ownerUserId;
/**
* 商机状态类型编号
*/
@NotNull(message = "商机状态类型编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long statusTypeId;
/**
* 商机状态编号
*/
@NotNull(message = "商机状态编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long statusId;
/**
* 结束状态1-赢单 2-输单3-无效
*/
@NotNull(message = "结束状态1-赢单 2-输单3-无效不能为空", groups = { AddGroup.class, EditGroup.class })
private Long endStatus;
/**
* 预计成交日期
*/
@NotNull(message = "预计成交日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date dealTime;
/**
* 产品总金额,单位:元
*/
@NotNull(message = "产品总金额,单位:元不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal totalProductPrice;
/**
* 整单折扣,百分比
*/
@NotNull(message = "整单折扣,百分比不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal discountPercent;
/**
* 商机总金额,单位:元
*/
@NotNull(message = "商机总金额,单位:元不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal totalPrice;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
/**
* 结束时的备注
*/
@NotBlank(message = "结束时的备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String endRemark;
}

View File

@@ -0,0 +1,68 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 商机产品关联业务对象 oa_business_product
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaBusinessProductBo extends BaseEntity {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long businessProductId;
/**
* 商机编号
*/
@NotNull(message = "商机编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long businessId;
/**
* 产品编号
*/
@NotNull(message = "产品编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long productId;
/**
* 产品单价
*/
@NotNull(message = "产品单价不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal productPrice;
/**
* 商机价格
*/
@NotNull(message = "商机价格不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal businessPrice;
/**
* 数量
*/
@NotNull(message = "数量不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal count;
/**
* 总计价格
*/
@NotNull(message = "总计价格不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal totalPrice;
}

View File

@@ -0,0 +1,147 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 线索业务对象 oa_clue
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaClueBo extends BaseEntity {
/**
* 编号,主键自增
*/
@NotNull(message = "编号,主键自增不能为空", groups = { EditGroup.class })
private Long clueId;
/**
* 线索名称
*/
@NotBlank(message = "线索名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String clueName;
/**
* 跟进状态
*/
@NotNull(message = "跟进状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer followUpStatus;
/**
* 最后跟进时间
*/
@NotNull(message = "最后跟进时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date contactLastTime;
/**
* 最后跟进内容
*/
@NotBlank(message = "最后跟进内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String contactLastContent;
/**
* 下次联系时间
*/
@NotNull(message = "下次联系时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date contactNextTime;
/**
* 负责人的用户编号
*/
@NotNull(message = "负责人的用户编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long ownerUserId;
/**
* 转化状态
*/
@NotNull(message = "转化状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer transformStatus;
/**
* 客户编号
*/
@NotNull(message = "客户编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long customerId;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空", groups = { AddGroup.class, EditGroup.class })
private String mobile;
/**
* 电话
*/
@NotBlank(message = "电话不能为空", groups = { AddGroup.class, EditGroup.class })
private String telephone;
/**
* QQ
*/
@NotBlank(message = "QQ不能为空", groups = { AddGroup.class, EditGroup.class })
private String qq;
/**
* 微信
*/
@NotBlank(message = "微信不能为空", groups = { AddGroup.class, EditGroup.class })
private String wechat;
/**
* 邮箱
*/
@NotBlank(message = "邮箱不能为空", groups = { AddGroup.class, EditGroup.class })
private String email;
/**
* 地区编号
*/
@NotNull(message = "地区编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long areaId;
/**
* 详细地址
*/
@NotBlank(message = "详细地址不能为空", groups = { AddGroup.class, EditGroup.class })
private String detailAddress;
/**
* 所属行业
*/
@NotNull(message = "所属行业不能为空", groups = { AddGroup.class, EditGroup.class })
private Long industryId;
/**
* 客户等级
*/
@NotNull(message = "客户等级不能为空", groups = { AddGroup.class, EditGroup.class })
private Long level;
/**
* 客户来源
*/
@NotNull(message = "客户来源不能为空", groups = { AddGroup.class, EditGroup.class })
private Long source;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}

View File

@@ -0,0 +1,147 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 客户业务对象 oa_customer
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaCustomerBo extends BaseEntity {
/**
* 编号,主键自增
*/
@NotNull(message = "编号,主键自增不能为空", groups = { EditGroup.class })
private Long customerId;
/**
* 客户名称
*/
@NotBlank(message = "客户名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 跟进状态
*/
@NotNull(message = "跟进状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer followUpStatus;
/**
* 最后跟进时间
*/
@NotNull(message = "最后跟进时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date contactLastTime;
/**
* 最后跟进内容
*/
@NotBlank(message = "最后跟进内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String contactLastContent;
/**
* 下次联系时间
*/
@NotNull(message = "下次联系时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date contactNextTime;
/**
* 负责人的用户编号
*/
@NotNull(message = "负责人的用户编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long ownerUserId;
/**
* 成为负责人的时间
*/
@NotNull(message = "成为负责人的时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date ownerTime;
/**
* 成交状态
*/
@NotNull(message = "成交状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long dealStatus;
/**
* 手机
*/
@NotBlank(message = "手机不能为空", groups = { AddGroup.class, EditGroup.class })
private String mobile;
/**
* 电话
*/
@NotBlank(message = "电话不能为空", groups = { AddGroup.class, EditGroup.class })
private String telephone;
/**
* QQ
*/
@NotBlank(message = "QQ不能为空", groups = { AddGroup.class, EditGroup.class })
private String qq;
/**
* 微信
*/
@NotBlank(message = "微信不能为空", groups = { AddGroup.class, EditGroup.class })
private String wechat;
/**
* 邮箱
*/
@NotBlank(message = "邮箱不能为空", groups = { AddGroup.class, EditGroup.class })
private String email;
/**
* 地区编号
*/
@NotNull(message = "地区编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long areaId;
/**
* 详细地址
*/
@NotBlank(message = "详细地址不能为空", groups = { AddGroup.class, EditGroup.class })
private String detailAddress;
/**
* 所属行业
*/
@NotNull(message = "所属行业不能为空", groups = { AddGroup.class, EditGroup.class })
private Long industryId;
/**
* 客户等级
*/
@NotNull(message = "客户等级不能为空", groups = { AddGroup.class, EditGroup.class })
private Long level;
/**
* 客户来源
*/
@NotNull(message = "客户来源不能为空", groups = { AddGroup.class, EditGroup.class })
private Long source;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}

View File

@@ -0,0 +1,81 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 跟进记录业务对象 oa_follow_up_record
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaFollowUpRecordBo extends BaseEntity {
/**
* 编号
*/
@NotNull(message = "编号不能为空", groups = { EditGroup.class })
private Long followId;
/**
* 跟进类型
*/
@NotNull(message = "跟进类型不能为空", groups = { AddGroup.class, EditGroup.class })
private Long type;
/**
* 跟进内容
*/
@NotBlank(message = "跟进内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String content;
/**
* 下次联系时间
*/
@NotNull(message = "下次联系时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date nextTime;
/**
* 图片
*/
@NotBlank(message = "图片不能为空", groups = { AddGroup.class, EditGroup.class })
private String picUrls;
/**
* 附件
*/
@NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private String fileUrls;
/**
* 关联的商机编号数组
*/
@NotBlank(message = "关联的商机编号数组不能为空", groups = { AddGroup.class, EditGroup.class })
private String businessIds;
/**
* 暂用此代替商机记录
*/
@NotNull(message = "暂用此代替商机记录不能为空", groups = { AddGroup.class, EditGroup.class })
private Long businessId;
/**
* 关联的联系人编号数组
*/
@NotBlank(message = "关联的联系人编号数组不能为空", groups = { AddGroup.class, EditGroup.class })
private String contactIds;
}

View File

@@ -0,0 +1,86 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* CRM 产品业务对象 oa_product
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaProductBo extends BaseEntity {
/**
* 产品编号
*/
@NotNull(message = "产品编号不能为空", groups = { EditGroup.class })
private Long productId;
/**
* 产品名称
*/
@NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String productName;
/**
* 产品编码
*/
@NotBlank(message = "产品编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String productNumber;
/**
* 单位
*/
@NotNull(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class })
private Long unit;
/**
* 价格,单位:元
*/
@NotNull(message = "价格,单位:元不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal price;
/**
* 状态
*/
@NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
/**
* 产品分类编号
*/
@NotNull(message = "产品分类编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long categoryId;
/**
* 产品描述
*/
@NotBlank(message = "产品描述不能为空", groups = { AddGroup.class, EditGroup.class })
private String description;
/**
* 负责人的用户编号
*/
@NotNull(message = "负责人的用户编号不能为空", groups = { AddGroup.class, EditGroup.class })
private Long ownerUserId;
/**
* 是否删除
*/
@NotNull(message = "是否删除不能为空", groups = { AddGroup.class, EditGroup.class })
private Long deleted;
}

View File

@@ -0,0 +1,68 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* CRM 商机产品关联视图对象 oa_business_product
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@ExcelIgnoreUnannotated
public class OaBusinessProductVo {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ExcelProperty(value = "主键")
private Long businessProductId;
/**
* 商机编号
*/
@ExcelProperty(value = "商机编号")
private Long businessId;
/**
* 产品编号
*/
@ExcelProperty(value = "产品编号")
private Long productId;
/**
* 产品单价
*/
@ExcelProperty(value = "产品单价")
private BigDecimal productPrice;
/**
* 商机价格
*/
@ExcelProperty(value = "商机价格")
private BigDecimal businessPrice;
/**
* 数量
*/
@ExcelProperty(value = "数量")
private BigDecimal count;
/**
* 总计价格
*/
@ExcelProperty(value = "总计价格")
private BigDecimal totalPrice;
}

View File

@@ -0,0 +1,124 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* CRM 商机视图对象 oa_business
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@ExcelIgnoreUnannotated
public class OaBusinessVo {
private static final long serialVersionUID = 1L;
/**
* 编号
*/
@ExcelProperty(value = "编号")
private Long businessId;
/**
* 商机名称
*/
@ExcelProperty(value = "商机名称")
private String name;
/**
* 客户编号
*/
@ExcelProperty(value = "客户编号")
private Long customerId;
/**
* 跟进状态
*/
@ExcelProperty(value = "跟进状态")
private Integer followUpStatus;
/**
* 最后跟进时间
*/
@ExcelProperty(value = "最后跟进时间")
private Date contactLastTime;
/**
* 下次联系时间
*/
@ExcelProperty(value = "下次联系时间")
private Date contactNextTime;
/**
* 负责人的用户编号
*/
@ExcelProperty(value = "负责人的用户编号")
private Long ownerUserId;
/**
* 商机状态类型编号
*/
@ExcelProperty(value = "商机状态类型编号")
private Long statusTypeId;
/**
* 商机状态编号
*/
@ExcelProperty(value = "商机状态编号")
private Long statusId;
/**
* 结束状态1-赢单 2-输单3-无效
*/
@ExcelProperty(value = "结束状态1-赢单 2-输单3-无效")
private Long endStatus;
/**
* 预计成交日期
*/
@ExcelProperty(value = "预计成交日期")
private Date dealTime;
/**
* 产品总金额,单位:元
*/
@ExcelProperty(value = "产品总金额,单位:元")
private BigDecimal totalProductPrice;
/**
* 整单折扣,百分比
*/
@ExcelProperty(value = "整单折扣,百分比")
private BigDecimal discountPercent;
/**
* 商机总金额,单位:元
*/
@ExcelProperty(value = "商机总金额,单位:元")
private BigDecimal totalPrice;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 结束时的备注
*/
@ExcelProperty(value = "结束时的备注")
private String endRemark;
}

View File

@@ -0,0 +1,147 @@
package com.ruoyi.oa.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* CRM 线索视图对象 oa_clue
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@ExcelIgnoreUnannotated
public class OaClueVo {
private static final long serialVersionUID = 1L;
/**
* 编号,主键自增
*/
@ExcelProperty(value = "编号,主键自增")
private Long clueId;
/**
* 线索名称
*/
@ExcelProperty(value = "线索名称")
private String clueName;
/**
* 跟进状态
*/
@ExcelProperty(value = "跟进状态")
private Integer followUpStatus;
/**
* 最后跟进时间
*/
@ExcelProperty(value = "最后跟进时间")
private Date contactLastTime;
/**
* 最后跟进内容
*/
@ExcelProperty(value = "最后跟进内容")
private String contactLastContent;
/**
* 下次联系时间
*/
@ExcelProperty(value = "下次联系时间")
private Date contactNextTime;
/**
* 负责人的用户编号
*/
@ExcelProperty(value = "负责人的用户编号")
private Long ownerUserId;
/**
* 转化状态
*/
@ExcelProperty(value = "转化状态")
private Integer transformStatus;
/**
* 客户编号
*/
@ExcelProperty(value = "客户编号")
private Long customerId;
/**
* 手机号
*/
@ExcelProperty(value = "手机号")
private String mobile;
/**
* 电话
*/
@ExcelProperty(value = "电话")
private String telephone;
/**
* QQ
*/
@ExcelProperty(value = "QQ")
private String qq;
/**
* 微信
*/
@ExcelProperty(value = "微信")
private String wechat;
/**
* 邮箱
*/
@ExcelProperty(value = "邮箱")
private String email;
/**
* 地区编号
*/
@ExcelProperty(value = "地区编号")
private Long areaId;
/**
* 详细地址
*/
@ExcelProperty(value = "详细地址")
private String detailAddress;
/**
* 所属行业
*/
@ExcelProperty(value = "所属行业")
private Long industryId;
/**
* 客户等级
*/
@ExcelProperty(value = "客户等级")
private Long level;
/**
* 客户来源
*/
@ExcelProperty(value = "客户来源")
private Long source;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,147 @@
package com.ruoyi.oa.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* CRM 客户视图对象 oa_customer
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@ExcelIgnoreUnannotated
public class OaCustomerVo {
private static final long serialVersionUID = 1L;
/**
* 编号,主键自增
*/
@ExcelProperty(value = "编号,主键自增")
private Long customerId;
/**
* 客户名称
*/
@ExcelProperty(value = "客户名称")
private String name;
/**
* 跟进状态
*/
@ExcelProperty(value = "跟进状态")
private Integer followUpStatus;
/**
* 最后跟进时间
*/
@ExcelProperty(value = "最后跟进时间")
private Date contactLastTime;
/**
* 最后跟进内容
*/
@ExcelProperty(value = "最后跟进内容")
private String contactLastContent;
/**
* 下次联系时间
*/
@ExcelProperty(value = "下次联系时间")
private Date contactNextTime;
/**
* 负责人的用户编号
*/
@ExcelProperty(value = "负责人的用户编号")
private Long ownerUserId;
/**
* 成为负责人的时间
*/
@ExcelProperty(value = "成为负责人的时间")
private Date ownerTime;
/**
* 成交状态
*/
@ExcelProperty(value = "成交状态")
private Long dealStatus;
/**
* 手机
*/
@ExcelProperty(value = "手机")
private String mobile;
/**
* 电话
*/
@ExcelProperty(value = "电话")
private String telephone;
/**
* QQ
*/
@ExcelProperty(value = "QQ")
private String qq;
/**
* 微信
*/
@ExcelProperty(value = "微信")
private String wechat;
/**
* 邮箱
*/
@ExcelProperty(value = "邮箱")
private String email;
/**
* 地区编号
*/
@ExcelProperty(value = "地区编号")
private Long areaId;
/**
* 详细地址
*/
@ExcelProperty(value = "详细地址")
private String detailAddress;
/**
* 所属行业
*/
@ExcelProperty(value = "所属行业")
private Long industryId;
/**
* 客户等级
*/
@ExcelProperty(value = "客户等级")
private Long level;
/**
* 客户来源
*/
@ExcelProperty(value = "客户来源")
private Long source;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,81 @@
package com.ruoyi.oa.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* CRM 跟进记录视图对象 oa_follow_up_record
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@ExcelIgnoreUnannotated
public class OaFollowUpRecordVo {
private static final long serialVersionUID = 1L;
/**
* 编号
*/
@ExcelProperty(value = "编号")
private Long followId;
/**
* 跟进类型
*/
@ExcelProperty(value = "跟进类型")
private Long type;
/**
* 跟进内容
*/
@ExcelProperty(value = "跟进内容")
private String content;
/**
* 下次联系时间
*/
@ExcelProperty(value = "下次联系时间")
private Date nextTime;
/**
* 图片
*/
@ExcelProperty(value = "图片")
private String picUrls;
/**
* 附件
*/
@ExcelProperty(value = "附件")
private String fileUrls;
/**
* 关联的商机编号数组
*/
@ExcelProperty(value = "关联的商机编号数组")
private String businessIds;
/**
* 暂用此代替商机记录
*/
@ExcelProperty(value = "暂用此代替商机记录")
private Long businessId;
/**
* 关联的联系人编号数组
*/
@ExcelProperty(value = "关联的联系人编号数组")
private String contactIds;
}

View File

@@ -0,0 +1,86 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* CRM 产品视图对象 oa_product
*
* @author ruoyi
* @date 2025-03-12
*/
@Data
@ExcelIgnoreUnannotated
public class OaProductVo {
private static final long serialVersionUID = 1L;
/**
* 产品编号
*/
@ExcelProperty(value = "产品编号")
private Long productId;
/**
* 产品名称
*/
@ExcelProperty(value = "产品名称")
private String productName;
/**
* 产品编码
*/
@ExcelProperty(value = "产品编码")
private String productNumber;
/**
* 单位
*/
@ExcelProperty(value = "单位")
private Long unit;
/**
* 价格,单位:元
*/
@ExcelProperty(value = "价格,单位:元")
private BigDecimal price;
/**
* 状态
*/
@ExcelProperty(value = "状态")
private Long status;
/**
* 产品分类编号
*/
@ExcelProperty(value = "产品分类编号")
private Long categoryId;
/**
* 产品描述
*/
@ExcelProperty(value = "产品描述")
private String description;
/**
* 负责人的用户编号
*/
@ExcelProperty(value = "负责人的用户编号")
private Long ownerUserId;
/**
* 是否删除
*/
@ExcelProperty(value = "是否删除")
private Long deleted;
}