gaoluyang
3 天以前 d39e4f7d839167c16425086dfa2f8747bccfdff9
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
package cn.iocoder.yudao.module.crm.enums;
 
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
 
/**
 * CRM 错误码枚举类
 * <p>
 * crm 系统,使用 1-020-000-000 段
 */
public interface ErrorCodeConstants {
 
    // ========== 合同管理 1-020-000-000 ==========
    ErrorCode CONTRACT_NOT_EXISTS = new ErrorCode(1_020_000_000, "合同不存在");
    ErrorCode CONTRACT_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_020_000_001, "合同更新失败,原因:合同不是草稿状态");
    ErrorCode CONTRACT_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_020_000_002, "合同提交审核失败,原因:合同没处在未提交状态");
    ErrorCode CONTRACT_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_020_000_003, "更新合同审核状态失败,原因:合同不是审核中状态");
    ErrorCode CONTRACT_NO_EXISTS = new ErrorCode(1_020_000_004, "生成合同序列号重复,请重试");
    ErrorCode CONTRACT_DELETE_FAIL = new ErrorCode(1_020_000_005, "删除合同失败,原因:有被回款所使用");
    ErrorCode CONTRACT_GENERATE_ORDER_FAIL_NOT_APPROVE = new ErrorCode(1_020_000_006, "生成销售订单失败,原因:合同未审批通过");
    ErrorCode CONTRACT_GENERATE_ORDER_FAIL_EXISTS_ORDER = new ErrorCode(1_020_000_007, "生成销售订单失败,原因:已关联销售订单【{}】");
    ErrorCode CONTRACT_GENERATE_ORDER_FAIL_NO_PRODUCT = new ErrorCode(1_020_000_008, "生成销售订单失败,原因:合同没有产品信息");
    ErrorCode CONTRACT_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_020_000_009, "合同审批流程不存在或未激活,请检查 BPM 配置");
 
    // ========== 线索管理 1-020-001-000 ==========
    ErrorCode CLUE_NOT_EXISTS = new ErrorCode(1_020_001_000, "线索不存在");
    ErrorCode CLUE_TRANSFORM_FAIL_ALREADY = new ErrorCode(1_020_001_001, "线索已经转化过了,请勿重复转化");
 
    // ========== 商机管理 1-020-002-000 ==========
    ErrorCode BUSINESS_NOT_EXISTS = new ErrorCode(1_020_002_000, "商机不存在");
    ErrorCode BUSINESS_DELETE_FAIL_CONTRACT_EXISTS = new ErrorCode(1_020_002_001, "商机已关联合同,不能删除");
    ErrorCode BUSINESS_UPDATE_STATUS_FAIL_END_STATUS = new ErrorCode(1_020_002_002, "更新商机状态失败,原因:已经是结束状态");
    ErrorCode BUSINESS_UPDATE_STATUS_FAIL_STATUS_EQUALS = new ErrorCode(1_020_002_003, "更新商机状态失败,原因:已经是该状态");
    ErrorCode BUSINESS_CONTACT_CUSTOMER_NOT_MATCH = new ErrorCode(1_020_002_004, "商机关联的联系人不属于该客户");
 
    // ========== 联系人管理 1-020-003-000 ==========
    ErrorCode CONTACT_NOT_EXISTS = new ErrorCode(1_020_003_000, "联系人不存在");
    ErrorCode CONTACT_DELETE_FAIL_CONTRACT_LINK_EXISTS = new ErrorCode(1_020_003_002, "联系人已关联合同,不能删除");
    ErrorCode CONTACT_UPDATE_OWNER_USER_FAIL = new ErrorCode(1_020_003_003, "更新联系人负责人失败");
 
    // ========== 回款 1-020-004-000 ==========
    ErrorCode RECEIVABLE_NOT_EXISTS = new ErrorCode(1_020_004_000, "回款不存在");
    ErrorCode RECEIVABLE_UPDATE_FAIL_EDITING_PROHIBITED = new ErrorCode(1_020_004_001, "更新回款失败,原因:禁止编辑");
    ErrorCode RECEIVABLE_DELETE_FAIL = new ErrorCode(1_020_004_002, "删除回款失败,原因: 被回款计划所使用,不允许删除");
    ErrorCode RECEIVABLE_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_020_004_003, "回款提交审核失败,原因:回款没处在未提交状态");
    ErrorCode RECEIVABLE_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_020_004_004, "更新回款审核状态失败,原因:回款不是审核中状态");
    ErrorCode RECEIVABLE_NO_EXISTS = new ErrorCode(1_020_004_005, "生成回款序列号重复,请重试");
    ErrorCode RECEIVABLE_CREATE_FAIL_CONTRACT_NOT_APPROVE = new ErrorCode(1_020_004_006, "创建回款失败,原因:合同不是审核通过状态");
    ErrorCode RECEIVABLE_CREATE_FAIL_PRICE_EXCEEDS_LIMIT = new ErrorCode(1_020_004_007, "创建回款失败,原因:回款金额超出合同金额,目前剩余可退:{} 元");
    ErrorCode RECEIVABLE_DELETE_FAIL_IS_APPROVE = new ErrorCode(1_020_004_008, "删除回款失败,原因:回款审批已通过");
    ErrorCode RECEIVABLE_APPROVE_FAIL = new ErrorCode(1_020_004_009, "审核失败,只有未审核的回款才能审核");
    ErrorCode RECEIVABLE_PROCESS_FAIL = new ErrorCode(1_020_004_010, "反审核失败,只有已审核的回款才能反审核");
    ErrorCode RECEIVABLE_ITEM_BIZ_TYPE_INVALID = new ErrorCode(1_020_004_011, "核销明细校验失败,原因:第 {} 行的业务类型[{}]不正确,可选 20销售订单、21销售出库、23开票。请重新选择");
    ErrorCode RECEIVABLE_ITEM_BIZ_NOT_EXISTS = new ErrorCode(1_020_004_012, "核销明细校验失败,原因:第 {} 行选择的{}[{}]不存在。请重新选择关联单据");
    ErrorCode RECEIVABLE_ITEM_PRICE_INVALID = new ErrorCode(1_020_004_013, "核销明细校验失败,原因:第 {} 行{}[{}]的本次核销金额为 {},必须大于 0。请修改该行核销金额");
    ErrorCode RECEIVABLE_ITEM_SUM_MISMATCH = new ErrorCode(1_020_004_014, "核销明细校验失败,原因:核销明细合计 {} 元,与回款金额 {} 元不一致。请调整明细金额,使两者相等");
    ErrorCode RECEIVABLE_ITEM_PRICE_EXCEEDS = new ErrorCode(1_020_004_015, "核销明细校验失败,原因:第 {} 行{}[{}]本次核销 {} 元,超出该单据剩余应收 {} 元(应收 {} 元,已核销 {} 元)。请调小该行金额,或改选其他单据");
 
    // ========== 回款计划 1-020-005-000 ==========
    ErrorCode RECEIVABLE_PLAN_NOT_EXISTS = new ErrorCode(1_020_005_000, "回款计划不存在");
    ErrorCode RECEIVABLE_PLAN_UPDATE_FAIL = new ErrorCode(1_020_006_000, "更想回款计划失败,原因:已经有对应的还款");
    ErrorCode RECEIVABLE_PLAN_EXISTS_RECEIVABLE = new ErrorCode(1_020_006_001, "回款计划已经有对应的回款,不能使用");
 
    // ========== 客户管理 1_020_006_000 ==========
    ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(1_020_006_000, "客户不存在");
    ErrorCode CUSTOMER_OWNER_EXISTS = new ErrorCode(1_020_006_001, "客户【{}】已存在所属负责人");
    ErrorCode CUSTOMER_LOCKED = new ErrorCode(1_020_006_002, "客户【{}】状态已锁定");
    ErrorCode CUSTOMER_ALREADY_DEAL = new ErrorCode(1_020_006_003, "客户已交易");
    ErrorCode CUSTOMER_IN_POOL = new ErrorCode(1_020_006_004, "客户【{}】放入公海失败,原因:已经是公海客户");
    ErrorCode CUSTOMER_LOCKED_PUT_POOL_FAIL = new ErrorCode(1_020_006_005, "客户【{}】放入公海失败,原因:客户已锁定");
    ErrorCode CUSTOMER_UPDATE_OWNER_USER_FAIL = new ErrorCode(1_020_006_006, "更新客户【{}】负责人失败, 原因:系统异常");
    ErrorCode CUSTOMER_LOCK_FAIL_IS_LOCK = new ErrorCode(1_020_006_007, "锁定客户失败,它已经处于锁定状态");
    ErrorCode CUSTOMER_UNLOCK_FAIL_IS_UNLOCK = new ErrorCode(1_020_006_008, "解锁客户失败,它已经处于未锁定状态");
    ErrorCode CUSTOMER_LOCK_EXCEED_LIMIT = new ErrorCode(1_020_006_009, "锁定客户失败,超出锁定规则上限");
    ErrorCode CUSTOMER_OWNER_EXCEED_LIMIT = new ErrorCode(1_020_006_010, "操作失败,超出客户数拥有上限");
    ErrorCode CUSTOMER_DELETE_FAIL_HAVE_REFERENCE = new ErrorCode(1_020_006_011, "删除客户失败,有关联{}");
    ErrorCode CUSTOMER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_020_006_012, "导入客户数据不能为空!");
    ErrorCode CUSTOMER_CREATE_NAME_NOT_NULL = new ErrorCode(1_020_006_013, "客户名称不能为空!");
    ErrorCode CUSTOMER_NAME_EXISTS = new ErrorCode(1_020_006_014, "已存在名为【{}】的客户!");
    ErrorCode CUSTOMER_UPDATE_DEAL_STATUS_FAIL = new ErrorCode(1_020_006_015, "更新客户的成交状态失败,原因:已经是该状态,无需更新");
 
    // ========== 权限管理 1_020_007_000 ==========
    ErrorCode CRM_PERMISSION_NOT_EXISTS = new ErrorCode(1_020_007_000, "数据权限不存在");
    ErrorCode CRM_PERMISSION_DENIED = new ErrorCode(1_020_007_001, "{}操作失败,原因:没有权限");
    ErrorCode CRM_PERMISSION_MODEL_TRANSFER_FAIL_OWNER_USER_EXISTS = new ErrorCode(1_020_007_003, "{}操作失败,原因:转移对象已经是该负责人");
    ErrorCode CRM_PERMISSION_DELETE_FAIL = new ErrorCode(1_020_007_004, "删除数据权限失败,原因:批量删除权限的时候,只能属于同一个 bizId 下");
    ErrorCode CRM_PERMISSION_DELETE_DENIED = new ErrorCode(1_020_007_006, "删除数据权限失败,原因:没有权限");
    ErrorCode CRM_PERMISSION_DELETE_SELF_PERMISSION_FAIL_EXIST_OWNER = new ErrorCode(1_020_007_007, "删除数据权限失败,原因:不能删除负责人");
    ErrorCode CRM_PERMISSION_CREATE_FAIL = new ErrorCode(1_020_007_008, "创建数据权限失败,原因:所加用户已有权限");
    ErrorCode CRM_PERMISSION_CREATE_FAIL_EXISTS = new ErrorCode(1_020_007_009, "同时添加数据权限失败,原因:用户【{}】已有模块【{}】数据【{}】的【{}】权限");
 
    // ========== 产品 1_020_008_000 ==========
    ErrorCode PRODUCT_NOT_EXISTS = new ErrorCode(1_020_008_000, "产品不存在");
    ErrorCode PRODUCT_NO_EXISTS = new ErrorCode(1_020_008_001, "产品编号已存在");
    ErrorCode PRODUCT_NOT_ENABLE = new ErrorCode(1_020_008_002, "产品【{}】已禁用");
 
    // ========== 产品分类 1_020_009_000 ==========
    ErrorCode PRODUCT_CATEGORY_NOT_EXISTS = new ErrorCode(1_020_009_000, "产品分类不存在");
    ErrorCode PRODUCT_CATEGORY_EXISTS = new ErrorCode(1_020_009_001, "产品分类已存在");
    ErrorCode PRODUCT_CATEGORY_USED = new ErrorCode(1_020_009_002, "产品分类已关联产品");
    ErrorCode PRODUCT_CATEGORY_PARENT_NOT_EXISTS = new ErrorCode(1_020_009_003, "父分类不存在");
    ErrorCode PRODUCT_CATEGORY_PARENT_NOT_FIRST_LEVEL = new ErrorCode(1_020_009_004, "父分类不能是二级分类");
    ErrorCode PRODUCT_CATEGORY_EXISTS_CHILDREN = new ErrorCode(1_020_009_005, "存在子分类,无法删除");
 
    // ========== 商机状态 1_020_010_000 ==========
    ErrorCode BUSINESS_STATUS_TYPE_NOT_EXISTS = new ErrorCode(1_020_010_000, "商机状态组不存在");
    ErrorCode BUSINESS_STATUS_TYPE_NAME_EXISTS = new ErrorCode(1_020_010_001, "商机状态组的名称已存在");
    ErrorCode BUSINESS_STATUS_UPDATE_FAIL_USED = new ErrorCode(1_020_010_002, "已经被使用的商机状态组,无法进行更新");
    ErrorCode BUSINESS_STATUS_DELETE_FAIL_USED = new ErrorCode(1_020_010_002, "已经被使用的商机状态组,无法进行删除");
    ErrorCode BUSINESS_STATUS_NOT_EXISTS = new ErrorCode(1_020_010_003, "商机状态不存在");
 
    // ========== 客户公海规则设置 1_020_012_000 ==========
    ErrorCode CUSTOMER_LIMIT_CONFIG_NOT_EXISTS = new ErrorCode(1_020_012_001, "客户限制配置不存在");
 
    // ========== 跟进记录 1_020_013_000 ==========
    ErrorCode FOLLOW_UP_RECORD_NOT_EXISTS = new ErrorCode(1_020_013_000, "跟进记录不存在");
    ErrorCode FOLLOW_UP_RECORD_DELETE_DENIED = new ErrorCode(1_020_013_001, "删除跟进记录失败,原因:没有权限");
 
    // ========== 数据统计 1_020_014_000 ==========
 
    // ========== 销售报价 1_020_015_000 ==========
    ErrorCode SALE_QUOTATION_NOT_EXISTS = new ErrorCode(1_020_015_000, "销售报价单不存在");
    ErrorCode SALE_QUOTATION_NO_EXISTS = new ErrorCode(1_020_015_001, "报价单号【{}】已被占用,不能重复使用。请换一个编号,或清空编号由系统自动生成(已删除的报价单也会占用其原编号)");
    ErrorCode SALE_QUOTATION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_020_015_002, "销售报价单({})不是草稿状态,无法修改");
    ErrorCode SALE_QUOTATION_DELETE_FAIL_NOT_DRAFT = new ErrorCode(1_020_015_003, "销售报价单({})不是草稿状态,无法删除");
    ErrorCode SALE_QUOTATION_CONVERT_FAIL_NOT_DRAFT = new ErrorCode(1_020_015_004, "销售报价单({})不是草稿状态,无法转合同");
    ErrorCode SALE_QUOTATION_ITEM_NOT_EXISTS = new ErrorCode(1_020_015_005, "物料不存在或未启用");
    ErrorCode SALE_QUOTATION_CONTRACT_EXISTS = new ErrorCode(1_020_015_006, "销售报价单已转合同,请勿重复操作");
 
    // ========== 开票 1_020_016_000 ==========
    ErrorCode INVOICE_NOT_EXISTS = new ErrorCode(1_020_016_000, "开票不存在");
    ErrorCode INVOICE_NO_EXISTS = new ErrorCode(1_020_016_001, "生成开票序列号重复,请重试");
    ErrorCode INVOICE_UPDATE_FAIL_EDITING_PROHIBITED = new ErrorCode(1_020_016_002, "更新开票失败:当前状态为【{}】,仅未提交、审批中的开票单允许编辑");
    ErrorCode INVOICE_DELETE_FAIL_IS_APPROVE = new ErrorCode(1_020_016_003, "删除开票失败,原因:开票审批已通过");
    ErrorCode INVOICE_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_020_016_004, "开票提交审核失败,原因:开票没处在未提交状态");
    ErrorCode INVOICE_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_020_016_005, "更新开票审核状态失败,原因:开票不是审核中状态");
    ErrorCode INVOICE_CREATE_FAIL_CONTRACT_NOT_APPROVE = new ErrorCode(1_020_016_006, "创建开票失败,原因:合同不是审核通过状态");
    ErrorCode INVOICE_CREATE_FAIL_PRICE_EXCEEDS_LIMIT = new ErrorCode(1_020_016_007, "创建开票失败,原因:开票金额超出合同金额,目前可开票:{} 元");
    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_NOT_EXISTS = new ErrorCode(1_020_016_008, "创建回款失败,原因:关联的开票不存在");
    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_NOT_APPROVE = new ErrorCode(1_020_016_009, "创建回款失败,原因:关联的开票不是审批通过状态");
    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_NOT_ATTACHMENT = new ErrorCode(1_020_016_010, "创建回款失败,原因:关联的开票未上传发票附件");
    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_CONTRACT_MISMATCH = new ErrorCode(1_020_016_011, "创建回款失败,原因:关联的开票与所选合同不匹配");
    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_PRICE_EXCEEDS = new ErrorCode(1_020_016_012, "创建回款失败,原因:回款金额超出该开票剩余可回款金额,目前可回款:{} 元");
    ErrorCode INVOICE_CREATE_FAIL_SALE_ORDER_NOT_EXISTS = new ErrorCode(1_020_016_013, "创建开票失败,原因:销售订单[{}]不存在。请在开票单选择已审核的销售订单,或先到「销售订单」中创建并审核该订单");
    ErrorCode INVOICE_CREATE_FAIL_SALE_ORDER_NOT_APPROVE = new ErrorCode(1_020_016_014, "创建开票失败,原因:销售订单[{}]当前状态为【{}】,只有「已审核」的销售订单才能开票。请先完成该订单审核,或改选其他已审核订单");
    ErrorCode INVOICE_CREATE_FAIL_SALE_ORDER_MISMATCH = new ErrorCode(1_020_016_015, "创建开票失败,原因:销售订单[{}]的客户或合同与当前开票单不一致(订单客户={}、订单合同={};开票客户={}、开票合同={})。请改选与当前合同、客户一致的销售订单");
    ErrorCode INVOICE_CREATE_FAIL_SALE_OUT_NOT_EXISTS = new ErrorCode(1_020_016_016, "创建开票失败,原因:出库单(ID={})不存在或已删除。请重新选择该销售订单下的出库单");
    ErrorCode INVOICE_CREATE_FAIL_SALE_OUT_NOT_FINISHED = new ErrorCode(1_020_016_017, "创建开票失败,原因:出库单[{}]当前状态为【{}】,只有「已完成」的出库单才能开票。请等待出库完成后再开票,或改选其他已完成出库单");
    ErrorCode INVOICE_CREATE_FAIL_SALE_OUT_MISMATCH_ORDER = new ErrorCode(1_020_016_018, "创建开票失败,原因:出库单[{}]不属于所选销售订单[{}](出库单实际订单={})。请改选该销售订单下的出库单");
    ErrorCode INVOICE_CREATE_FAIL_SALE_OUT_MISMATCH_CUSTOMER = new ErrorCode(1_020_016_019, "创建开票失败,原因:出库单[{}]的客户(ID={})与开票客户(ID={})不一致。请改选当前客户名下的出库单");
    ErrorCode INVOICE_CREATE_FAIL_PRICE_EXCEEDS_SALE_ORDER = new ErrorCode(1_020_016_020, "创建开票失败,原因:开票金额超出销售订单[{}]剩余可开票金额 {} 元(订单金额 {} 元,已开票 {} 元)。请调整开票金额,或先核对已开票金额");
    ErrorCode INVOICE_CREATE_FAIL_PRICE_EXCEEDS_SALE_OUT = new ErrorCode(1_020_016_021, "创建开票失败,原因:开票金额超出出库单[{}]剩余可开票金额 {} 元(出库金额 {} 元,已开票 {} 元)。请调整开票金额,或改选其他出库单");
    ErrorCode INVOICE_ENTRY_FAIL_NOT_APPROVE = new ErrorCode(1_020_016_022, "录入发票失败,原因:开票单[{}]当前审批状态为【{}】,只有「审批通过」的开票申请才能录入发票。请先完成开票申请审批");
    ErrorCode INVOICE_ENTRY_FAIL_INVOICE_NO_EXISTS = new ErrorCode(1_020_016_023, "录入发票失败,原因:发票号码[{}]已被开票单[{}]使用。请核对发票号码,或到该开票单中查看");
    ErrorCode INVOICE_PAYMENT_NODE_INVALID = new ErrorCode(1_020_016_024, "收款节点校验失败,原因:第 {} 行阶段[{}]的金额为 {},必须大于 0。请修改该节点金额");
    ErrorCode INVOICE_PAYMENT_NODE_TIME_REQUIRED = new ErrorCode(1_020_016_025, "收款节点校验失败,原因:阶段[{}]未选择计划回款时间。请为该节点选择时间节点");
    ErrorCode INVOICE_PAYMENT_NODE_STAGE_INVALID = new ErrorCode(1_020_016_026, "收款节点校验失败,原因:第 {} 行的阶段值[{}]不正确,可选 1合同款、2预付款、3到货款、4验收款、5质保金。请重新选择");
    ErrorCode INVOICE_PAYMENT_NODE_STAGE_DUPLICATE = new ErrorCode(1_020_016_027, "收款节点校验失败,原因:阶段[{}]重复出现。同一阶段只能填写一个节点,请合并或删除重复行");
    ErrorCode INVOICE_PAYMENT_NODE_ALREADY_RECEIPTED = new ErrorCode(1_020_016_028, "保存收款节点失败,原因:阶段[{}]已有回款记录(已回款 {} 元),不能删除或修改。请先在「回款管理」中删除对应回款,或保留该节点");
 
    ErrorCode CRM_SALES_TARGET_NOT_EXISTS = new ErrorCode(1_020_017_000, "销售目标不存在");
    ErrorCode CRM_SALES_TARGET_PERIOD_VALUE_INVALID = new ErrorCode(1_020_017_001, "周期值【{}】格式不正确,应为 {}");
    ErrorCode CRM_SALES_TARGET_DIMENSION_TARGET_MISSING = new ErrorCode(1_020_017_002, "请填写目标{}编号");
 
}