package cn.iocoder.yudao.module.crm.dal.dataobject.quotation; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO; import cn.iocoder.yudao.module.crm.dal.dataobject.contact.CrmContactDO; import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO; import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO; import cn.iocoder.yudao.module.crm.enums.quotation.CrmSaleQuotationStatusEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; import java.math.BigDecimal; import java.time.LocalDateTime; /** * CRM 销售报价单 DO * * @author 超级管理员 */ @TableName("crm_sale_quotation") @KeySequence("crm_sale_quotation_seq") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class CrmSaleQuotationDO extends BaseDO { /** * 编号 */ @TableId private Long id; /** * 报价单号 */ private String no; /** * 报价单名称 */ private String name; /** * 客户编号 * * 关联 {@link CrmCustomerDO#getId()} */ private Long customerId; /** * 商机编号,非必须 * * 关联 {@link CrmBusinessDO#getId()} */ private Long businessId; /** * 联系人编号,非必须 * * 关联 {@link CrmContactDO#getId()} */ private Long contactId; /** * 负责人用户编号 * * 关联 AdminUserDO 的 id 字段 */ private Long ownerUserId; /** * 审批状态 * * 枚举 {@link CrmSaleQuotationStatusEnum} */ private Integer status; /** * 工作流编号 * * 关联 ProcessInstance 的 id 属性 */ private String processInstanceId; /** * 报价日期 */ private LocalDateTime quotationTime; /** * 有效期至 */ private LocalDateTime validUntil; /** * 产品总金额,单位:元 */ private BigDecimal totalProductPrice; /** * 整单折扣,百分比 */ private BigDecimal discountPercent; /** * 优惠金额,单位:元 */ private BigDecimal discountPrice; /** * 报价总金额,单位:元 * * totalPrice = totalProductPrice - discountPrice */ private BigDecimal totalPrice; /** * 税率,百分比 */ private BigDecimal taxRate; /** * 税额,单位:元 */ private BigDecimal taxPrice; /** * 关联合同编号 * * 关联 {@link CrmContractDO#getId()} */ private Long contractId; /** * 关联合同单号 */ private String contractNo; /** * 备注 */ private String remark; /** * 报价类型(电力CRM扩展) * * 字典 crm_quotation_type:general=通用 / power=电力报价 / energy=能源服务 */ private String quotationType; /** * 合同容量(kVA,仅电力/能源报价) */ private BigDecimal capacity; /** * 最大需量(kW,仅两部制电价) */ private BigDecimal maxDemand; /** * 电度单价(元/kWh) */ private BigDecimal unitPrice; /** * 电价模式 * * 字典 crm_tariff_mode:single=单一制 / two-part=两部制 / tier=阶梯 / tou=峰谷分时 */ private String tariffMode; /** * 力调电费(元) */ private BigDecimal powerFactorFee; /** * 结算周期(月) */ private Integer billingCycle; }