package org.dromara.crm.domain.bo; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.*; import lombok.Data; import lombok.EqualsAndHashCode; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.crm.domain.CrmQuoteApproval; import java.time.LocalDateTime; /** * 报价单审批业务对象 crm_quote_approval * * @author 系统管理员 * @date 2025-01-03 */ @Data @EqualsAndHashCode(callSuper = true) @AutoMapper(target = CrmQuoteApproval.class, reverseConvertGenerate = false) public class CrmQuoteApprovalBo extends BaseEntity { /** * 主键ID */ @NotNull(message = "主键不能为空", groups = { EditGroup.class }) private Long id; /** * 报价单ID */ @NotNull(message = "报价单ID不能为空", groups = { AddGroup.class }) private Long quoteId; /** * 报价单编号(冗余) */ private String quoteNo; /** * 审批步骤(1/2/3...) */ private Integer step; /** * 审批人ID */ @NotNull(message = "审批人ID不能为空", groups = { AddGroup.class }) private Long approverId; /** * 审批人姓名(冗余) */ private String approverName; /** * 审批结果(pending-待审批/approved-通过/rejected-拒绝) */ @NotBlank(message = "审批结果不能为空", groups = { EditGroup.class }) private String approvalResult; /** * 审批意见 */ private String approvalOpinion; /** * 审批时间 */ private LocalDateTime approvalTime; /** * 备注 */ private String remark; }