package cn.iocoder.yudao.module.crm.controller.admin.salesTarget.vo;
|
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
import cn.iocoder.yudao.module.crm.enums.DictTypeConstants;
|
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
import cn.idev.excel.annotation.ExcelProperty;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import lombok.Data;
|
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
|
@Schema(description = "管理后台 - CRM 销售目标 Response VO")
|
@Data
|
@ExcelIgnoreUnannotated
|
public class CrmSalesTargetRespVO {
|
|
@Schema(description = "编号", example = "1")
|
@ExcelProperty("编号")
|
private Long id;
|
|
@Schema(description = "目标名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "2026 上半年销售目标")
|
@ExcelProperty("目标名称")
|
private String name;
|
|
@Schema(description = "周期类型", example = "1")
|
@ExcelProperty(value = "周期类型", converter = DictConvert.class)
|
@DictFormat(DictTypeConstants.CRM_SALES_TARGET_PERIOD_TYPE)
|
private Integer periodType;
|
|
@Schema(description = "周期值,如 2026 / 2026-Q1 / 2026-07", example = "2026-Q1")
|
@ExcelProperty("周期值")
|
private String periodValue;
|
|
@Schema(description = "周期开始时间", example = "2026-01-01 00:00:00")
|
private LocalDateTime startTime;
|
|
@Schema(description = "周期结束时间", example = "2026-03-31 23:59:59")
|
private LocalDateTime endTime;
|
|
@Schema(description = "目标维度", example = "1")
|
@ExcelProperty(value = "目标维度", converter = DictConvert.class)
|
@DictFormat(DictTypeConstants.CRM_SALES_TARGET_DIMENSION)
|
private Integer targetDimension;
|
|
@Schema(description = "目标用户编号(维度=个人)", example = "1")
|
private Long targetUserId;
|
@Schema(description = "目标用户名称", example = "张三")
|
@ExcelProperty("目标对象")
|
private String targetUserName;
|
|
@Schema(description = "目标部门编号(维度=部门)", example = "100")
|
private Long targetDeptId;
|
@Schema(description = "目标部门名称", example = "销售部")
|
private String targetDeptName;
|
|
@Schema(description = "目标物料编号(维度=产品)", example = "1")
|
private Long targetItemId;
|
@Schema(description = "目标物料名称", example = "螺丝")
|
private String targetItemName;
|
|
@Schema(description = "合同金额目标(元)", example = "1000000")
|
@ExcelProperty("合同金额目标")
|
private BigDecimal contractTarget;
|
@Schema(description = "回款金额目标(元)", example = "800000")
|
@ExcelProperty("回款金额目标")
|
private BigDecimal receivableTarget;
|
@Schema(description = "商机金额目标(元)", example = "1500000")
|
@ExcelProperty("商机金额目标")
|
private BigDecimal businessTarget;
|
@Schema(description = "新增客户数目标", example = "50")
|
@ExcelProperty("新增客户数目标")
|
private Integer customerTarget;
|
@Schema(description = "新增合同数目标", example = "30")
|
@ExcelProperty("新增合同数目标")
|
private Integer contractCountTarget;
|
|
@Schema(description = "实际合同金额(元)", example = "500000")
|
@ExcelProperty("实际合同金额")
|
private BigDecimal actualContractPrice;
|
@Schema(description = "实际回款金额(元)", example = "300000")
|
@ExcelProperty("实际回款金额")
|
private BigDecimal actualReceivablePrice;
|
@Schema(description = "实际商机金额(元)", example = "800000")
|
@ExcelProperty("实际商机金额")
|
private BigDecimal actualBusinessPrice;
|
@Schema(description = "实际新增客户数", example = "20")
|
@ExcelProperty("实际新增客户数")
|
private Long actualCustomerCount;
|
@Schema(description = "实际新增合同数", example = "15")
|
@ExcelProperty("实际新增合同数")
|
private Long actualContractCount;
|
|
@Schema(description = "合同达成率(百分比)", example = "50.0")
|
@ExcelProperty("合同达成率(%)")
|
private BigDecimal contractRate;
|
@Schema(description = "回款达成率(百分比)", example = "37.5")
|
@ExcelProperty("回款达成率(%)")
|
private BigDecimal receivableRate;
|
@Schema(description = "商机达成率(百分比)", example = "53.3")
|
@ExcelProperty("商机达成率(%)")
|
private BigDecimal businessRate;
|
@Schema(description = "新增客户数达成率(百分比)", example = "40.0")
|
@ExcelProperty("新增客户数达成率(%)")
|
private BigDecimal customerRate;
|
@Schema(description = "新增合同数达成率(百分比)", example = "50.0")
|
@ExcelProperty("新增合同数达成率(%)")
|
private BigDecimal contractCountRate;
|
|
@Schema(description = "状态", example = "1")
|
@ExcelProperty(value = "状态", converter = DictConvert.class)
|
@DictFormat(DictTypeConstants.CRM_SALES_TARGET_STATUS)
|
private Integer status;
|
|
@Schema(description = "备注", example = "备注")
|
@ExcelProperty("备注")
|
private String remark;
|
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
@ExcelProperty("创建时间")
|
private LocalDateTime createTime;
|
|
@Schema(description = "创建人", example = "1")
|
private String creator;
|
@Schema(description = "创建人名称", example = "超级管理员")
|
@ExcelProperty("创建人")
|
private String creatorName;
|
|
}
|