package cn.iocoder.yudao.module.crm.controller.admin.cancellation.vo; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import static cn.iocoder.yudao.module.crm.enums.DictTypeConstants.CRM_CANCELLATION_TYPE; @Schema(description = "管理后台 - CRM 销户申请新增/修改 Request VO") @Data public class CrmCancellationSaveReqVO { @Schema(description = "编号", example = "1024") private Long id; @Schema(description = "销户编号(不传则自动生成)") private String cancellationNo; @Schema(description = "客户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") @NotNull(message = "客户ID不能为空") private Long customerId; @Schema(description = "客户名称") private String customerName; @Schema(description = "合同ID", example = "2048") private Long contractId; @Schema(description = "合同编号") private String contractNo; @Schema(description = "销户类型(用电销户/服务终止/合同到期)", example = "ELECTRICITY") @DictFormat(CRM_CANCELLATION_TYPE) private String cancellationType; @Schema(description = "销户原因") private String cancelReason; @Schema(description = "预计销户日期") private LocalDate expectedCancelDate; @Schema(description = "实际销户日期") private LocalDate actualCancelDate; @Schema(description = "退费金额") private BigDecimal refundAmount; @Schema(description = "申请用户ID", example = "1") private Long applyUserId; @Schema(description = "申请用户姓名", example = "李工") private String applyUserName; @Schema(description = "申请时间") private LocalDateTime applyTime; @Schema(description = "审批状态(0草稿/10待审批/20通过/30驳回)", example = "0") private Integer auditStatus; @Schema(description = "流程实例ID") private String processInstanceId; @Schema(description = "备注") private String remark; }