Files
shanxia2.0/docs/crm-migration/reference/java/quote/domain/vo/CrmQuoteVo.java
T
2026-06-01 08:21:21 +08:00

333 lines
6.2 KiB
Java

package org.dromara.crm.domain.vo;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.crm.domain.CrmQuote;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* 报价单视图对象 crm_quote
*
* @author 系统管理员
* @date 2025-01-03
*/
@Data
@AutoMapper(target = CrmQuote.class)
public class CrmQuoteVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "ID")
private Long id;
/**
* 报价单编号
*/
@ExcelProperty(value = "报价单编号")
private String quoteNo;
/**
* 报价单标题
*/
@ExcelProperty(value = "报价单标题")
private String quoteTitle;
/**
* 报价单类型(sales-销售/purchase-采购)
*/
@ExcelProperty(value = "报价单类型")
private String quoteType;
/**
* 客户ID
*/
private Long customerId;
/**
* 客户名称
*/
@ExcelProperty(value = "客户名称")
private String customerName;
/**
* 商机ID
*/
private Long opportunityId;
/**
* 商机名称
*/
@ExcelProperty(value = "商机名称")
private String opportunityName;
/**
* 联系人ID
*/
private Long contactId;
/**
* 联系人姓名
*/
@ExcelProperty(value = "联系人")
private String contactName;
/**
* 联系人手机
*/
private String contactMobile;
/**
* 联系人邮箱
*/
private String contactEmail;
/**
* 版本号
*/
@ExcelProperty(value = "版本号")
private String version;
/**
* 父版本ID
*/
private Long parentId;
/**
* 是否最新版本
*/
private Integer isLatest;
/**
* 总金额
*/
@ExcelProperty(value = "总金额")
private BigDecimal totalAmount;
/**
* 整单折扣率
*/
@ExcelProperty(value = "折扣率")
private BigDecimal discountRate;
/**
* 折扣金额
*/
@ExcelProperty(value = "折扣金额")
private BigDecimal discountAmount;
/**
* 最终金额
*/
@ExcelProperty(value = "最终金额")
private BigDecimal finalAmount;
/**
* 有效期(天数)
*/
@ExcelProperty(value = "有效期(天)")
private Integer validityDays;
/**
* 报价日期
*/
@ExcelProperty(value = "报价日期")
private LocalDate quoteDate;
/**
* 到期日期
*/
@ExcelProperty(value = "到期日期")
private LocalDate expireDate;
/**
* 状态
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "crm_quote_status")
private String status;
/**
* 拒绝原因
*/
private String rejectReason;
/**
* PDF文件路径
*/
private String pdfUrl;
/**
* PDF是否已生成
*/
private Integer pdfGenerated;
/**
* 分享链接
*/
private String shareLink;
/**
* 分享码
*/
private String shareCode;
/**
* 查看次数
*/
@ExcelProperty(value = "查看次数")
private Integer viewCount;
/**
* 最后查看时间
*/
private LocalDateTime lastViewTime;
/**
* 负责人ID
*/
private Long ownerUserId;
/**
* 负责人姓名
*/
@ExcelProperty(value = "负责人")
private String ownerUserName;
/**
* 负责人手机号
*/
private String ownerUserMobile;
/**
* 报价主体ID
*/
private Long supplierId;
/**
* 报价主体名称
*/
@ExcelProperty(value = "报价主体")
private String supplierName;
/**
* 关联合同ID
*/
private Long contractId;
/**
* 被合同关联次数
*/
private Integer contractLinkedCount;
/**
* 付款条款
*/
private String paymentTerms;
/**
* 交付条款
*/
private String deliveryTerms;
/**
* 运费(元)
*/
@ExcelProperty(value = "运费(元)")
private BigDecimal freight;
/**
* 附件(多个用逗号分隔)
*/
private String attachments;
/**
* 报价单模板内容(富文本HTML)
*/
private String templateContent;
/**
* 创建部门
*/
private Long createDept;
/**
* 创建部门名称
*/
@Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "createDept")
@ExcelProperty(value = "创建部门")
private String createDeptName;
/**
* 创建者
*/
private Long createBy;
/**
* 创建者昵称
*/
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
@ExcelProperty(value = "创建人")
private String createByName;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime;
/**
* 更新者
*/
private Long updateBy;
/**
* 更新者昵称
*/
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "updateBy")
@ExcelProperty(value = "更新人")
private String updateByName;
/**
* 更新时间
*/
@ExcelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updateTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 产品列表
*/
private List<CrmQuoteProductVo> productList;
/**
* 当前用户是否可以审批(前端显示审批按钮时使用)
*/
private Boolean canApprove;
}