9 天以前 3411691fba52492dd417e4d7707c84f6250fff4f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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;
 
}