yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErrorCodeConstants.java
@@ -13,6 +13,8 @@
    ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_030_100_000, "供应商不存在");
    ErrorCode SUPPLIER_NOT_ENABLE = new ErrorCode(1_030_100_000, "供应商({})未启用");
    ErrorCode SUPPLIER_EXISTS_REFERENCE = new ErrorCode(1_030_100_001, "供应商已被业务引用,无法删除");
    ErrorCode SUPPLIER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_100_002, "导入供应商数据不能为空!");
    ErrorCode SUPPLIER_NAME_EXISTS = new ErrorCode(1_030_100_003, "已存在供应商【{}】,且未开启覆盖!");
    // ========== ERP 采购订单(1-030-101-000) ==========
    ErrorCode PURCHASE_ORDER_NOT_EXISTS = new ErrorCode(1_030_101_000, "采购订单不存在");
@@ -30,6 +32,17 @@
    ErrorCode PURCHASE_ORDER_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_101_012, "采购审核分类下没有可用的流程模型,请先创建并发布流程");
    ErrorCode PURCHASE_ORDER_SUBMIT_FAIL_STATUS = new ErrorCode(1_030_101_013, "提交审批失败,只有未审核状态的采购订单才能提交");
    ErrorCode PURCHASE_ORDER_ALL_IN = new ErrorCode(1_030_101_014, "采购订单已全部入库,无需确认收货");
    ErrorCode PURCHASE_ORDER_SUBMIT_FAIL_NOT_ALLOWED = new ErrorCode(1_030_101_015, "提交失败,只有【未提交】或【审核不通过】状态的采购订单才能提交");
    ErrorCode PURCHASE_ORDER_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_101_016, "审核失败,只有【审批中】状态的采购订单才能审核");
    ErrorCode PURCHASE_ORDER_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_101_017, "审核不通过时必须填写驳回原因");
    ErrorCode PURCHASE_ORDER_SUBMIT_FAIL_ITEM_EMPTY = new ErrorCode(1_030_101_018, "提交失败,采购订单没有订单项,请先添加物料");
    ErrorCode PURCHASE_ORDER_UPDATE_FAIL_PROCESS = new ErrorCode(1_030_101_019, "采购订单({})正在审批中,无法修改");
    ErrorCode PURCHASE_ORDER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_101_020, "导入采购订单数据不能为空!");
    ErrorCode PURCHASE_ORDER_IMPORT_SUPPLIER_NOT_EXISTS = new ErrorCode(1_030_101_021, "供应商【{}】不存在!");
    ErrorCode PURCHASE_ORDER_IMPORT_ORDER_TIME_REQUIRED = new ErrorCode(1_030_101_022, "采购时间不能为空!");
    ErrorCode PURCHASE_ORDER_IMPORT_PRODUCT_NOT_EXISTS = new ErrorCode(1_030_101_023, "物料编码【{}】不存在!");
    ErrorCode PURCHASE_ORDER_IMPORT_UNIT_NOT_EXISTS = new ErrorCode(1_030_101_024, "单位编码【{}】不存在!");
    ErrorCode PURCHASE_ORDER_IMPORT_ACCOUNT_NOT_EXISTS = new ErrorCode(1_030_101_025, "结算账户【{}】不存在!");
    // ========== ERP 采购入库(1-030-102-000) ==========
    ErrorCode PURCHASE_IN_NOT_EXISTS = new ErrorCode(1_030_102_000, "采购入库单不存在");
@@ -46,14 +59,14 @@
    ErrorCode PURCHASE_REQUEST_NOT_EXISTS = new ErrorCode(1_030_104_000, "采购申请单不存在");
    ErrorCode PURCHASE_REQUEST_DELETE_FAIL_NOT_DRAFT = new ErrorCode(1_030_104_001, "采购申请单({})不是草稿状态,无法删除");
    ErrorCode PURCHASE_REQUEST_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_104_002, "采购申请单({})不是草稿状态,无法修改");
    ErrorCode PURCHASE_REQUEST_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_030_104_003, "提交失败,只有草稿状态的申请单才能提交");
    ErrorCode PURCHASE_REQUEST_NO_EXISTS = new ErrorCode(1_030_104_004, "生成申请单号失败,请重新提交");
    ErrorCode PURCHASE_REQUEST_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_030_104_005, "更新审批状态失败,只有审批中的申请单才能更新");
    ErrorCode PURCHASE_REQUEST_NOT_APPROVE = new ErrorCode(1_030_104_006, "采购申请单未审核通过,无法操作");
    ErrorCode PURCHASE_REQUEST_ORDER_EXISTS = new ErrorCode(1_030_104_007, "采购申请单已生成采购订单,请勿重复操作");
    ErrorCode PURCHASE_REQUEST_BPM_CATEGORY_NOT_EXISTS = new ErrorCode(1_030_104_008, "采购申请审批分类不存在,请先在BPM模块创建采购申请审批流程分类");
    ErrorCode PURCHASE_REQUEST_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_104_009, "采购申请审批分类下没有可用的流程模型,请先创建并发布流程");
    ErrorCode PURCHASE_REQUEST_ITEM_PRICE_EMPTY = new ErrorCode(1_030_104_021, "采购申请明细({})金额信息不完整,无法生成采购订单");
    ErrorCode PURCHASE_REQUEST_SUBMIT_FAIL_NOT_ALLOWED = new ErrorCode(1_030_104_022, "提交失败,只有草稿或审核不通过状态的采购申请才能提交");
    ErrorCode PURCHASE_REQUEST_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_104_023, "审核失败,只有审批中状态的采购申请才能审核");
    ErrorCode PURCHASE_REQUEST_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_104_024, "审核不通过时必须填写不通过原因");
    ErrorCode PURCHASE_REQUEST_ITEM_EMPTY = new ErrorCode(1_030_104_025, "采购申请单没有申请明细,无法提交审批");
    // ========== ERP 采购计划(1-030-104-010) ==========
    ErrorCode PURCHASE_PLAN_NOT_EXISTS = new ErrorCode(1_030_104_010, "采购计划不存在");
@@ -67,6 +80,25 @@
    ErrorCode PURCHASE_PLAN_BPM_CATEGORY_NOT_EXISTS = new ErrorCode(1_030_104_018, "采购计划审批分类不存在,请先在BPM模块创建采购计划审批流程分类");
    ErrorCode PURCHASE_PLAN_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_104_019, "采购计划审批分类下没有可用的流程模型,请先创建并发布流程");
    ErrorCode PURCHASE_PLAN_ITEM_EMPTY = new ErrorCode(1_030_104_020, "采购计划明细不能为空");
    ErrorCode PURCHASE_PLAN_STOCK_ALERT_NO_ITEM = new ErrorCode(1_030_104_022,
            "没有符合库存预警条件的物料,请检查物料是否配置默认仓库和最低库存,并确认当前库存低于最低库存");
    ErrorCode PURCHASE_PLAN_SUBMIT_FAIL_NOT_ALLOWED = new ErrorCode(1_030_104_023, "提交失败,只有草稿或审核不通过状态的采购计划才能提交");
    ErrorCode PURCHASE_PLAN_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_104_024, "审核失败,只有审批中状态的采购计划才能审核");
    ErrorCode PURCHASE_PLAN_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_104_025, "审核不通过时必须填写不通过原因");
    ErrorCode PURCHASE_PLAN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_104_030, "导入采购计划数据不能为空!");
    ErrorCode PURCHASE_PLAN_IMPORT_NAME_REQUIRED = new ErrorCode(1_030_104_031, "计划名称不能为空!");
    ErrorCode PURCHASE_PLAN_IMPORT_PLAN_DATE_REQUIRED = new ErrorCode(1_030_104_032, "计划日期不能为空!");
    ErrorCode PURCHASE_PLAN_IMPORT_SUPPLIER_NOT_EXISTS = new ErrorCode(1_030_104_033, "供应商【{}】不存在!");
    ErrorCode PURCHASE_PLAN_IMPORT_PRODUCT_NOT_EXISTS = new ErrorCode(1_030_104_034, "物料编码【{}】不存在!");
    ErrorCode PURCHASE_PLAN_IMPORT_UNIT_NOT_EXISTS = new ErrorCode(1_030_104_035, "单位编码【{}】不存在!");
    // ========== ERP 采购申请导入(1-030-104-040) ==========
    ErrorCode PURCHASE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_104_040, "导入采购申请数据不能为空!");
    ErrorCode PURCHASE_REQUEST_IMPORT_REQUEST_TIME_REQUIRED = new ErrorCode(1_030_104_041, "申请时间不能为空!");
    ErrorCode PURCHASE_REQUEST_IMPORT_SUPPLIER_NOT_EXISTS = new ErrorCode(1_030_104_042, "供应商【{}】不存在!");
    ErrorCode PURCHASE_REQUEST_IMPORT_PRODUCT_NOT_EXISTS = new ErrorCode(1_030_104_043, "物料编码【{}】不存在!");
    ErrorCode PURCHASE_REQUEST_IMPORT_UNIT_NOT_EXISTS = new ErrorCode(1_030_104_044, "单位编码【{}】不存在!");
    ErrorCode PURCHASE_REQUEST_IMPORT_ALL_ROWS_SKIPPED = new ErrorCode(1_030_104_045, "所有行均未导入,被跳过的行:{}。请检查物料编码是否填写。");
    // ========== ERP 采购来票(1-030-105-000) ==========
    ErrorCode PURCHASE_INVOICE_NOT_EXISTS = new ErrorCode(1_030_105_000, "来票不存在");
@@ -75,6 +107,10 @@
    ErrorCode PURCHASE_INVOICE_CREATE_FAIL_ORDER_NOT_APPROVE = new ErrorCode(1_030_105_006, "创建来票失败,原因:采购订单不是审核通过状态");
    ErrorCode PURCHASE_INVOICE_CREATE_FAIL_SUPPLIER_MISMATCH = new ErrorCode(1_030_105_007, "创建来票失败,原因:来票供应商与采购订单不一致");
    ErrorCode PURCHASE_INVOICE_CREATE_FAIL_PRICE_EXCEEDS_LIMIT = new ErrorCode(1_030_105_008, "创建来票失败,原因:来票金额超出采购订单金额,目前可开票:{} 元");
    ErrorCode PURCHASE_INVOICE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_105_010, "导入来票数据不能为空!");
    ErrorCode PURCHASE_INVOICE_IMPORT_ORDER_NOT_EXISTS = new ErrorCode(1_030_105_011, "采购订单号【{}】不存在!");
    ErrorCode PURCHASE_INVOICE_IMPORT_INVOICE_TIME_REQUIRED = new ErrorCode(1_030_105_012, "来票日期不能为空!");
    ErrorCode PURCHASE_INVOICE_IMPORT_PRICE_REQUIRED = new ErrorCode(1_030_105_013, "来票金额不能为空!");
    // ========== ERP 采购退货(1-030-103-000) ==========
    ErrorCode PURCHASE_RETURN_NOT_EXISTS = new ErrorCode(1_030_103_000, "采购退货单不存在");
@@ -109,6 +145,13 @@
    ErrorCode SALE_ORDER_CANCEL_FAIL = new ErrorCode(1_020_201_014, "作废失败,请刷新页面后重试");
    ErrorCode SALE_ORDER_ENABLE_FAIL_NOT_CANCEL = new ErrorCode(1_020_201_015, "启用失败,销售订单({})未作废,只有已作废的订单才能重新启用");
    ErrorCode SALE_ORDER_ENABLE_FAIL = new ErrorCode(1_020_201_016, "启用失败,请刷新页面后重试");
    ErrorCode SALE_ORDER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_020_201_017, "导入销售订单数据不能为空!");
    ErrorCode SALE_ORDER_IMPORT_CUSTOMER_NOT_EXISTS = new ErrorCode(1_020_201_018, "客户【{}】不存在!");
    ErrorCode SALE_ORDER_IMPORT_ORDER_TIME_REQUIRED = new ErrorCode(1_020_201_019, "下单时间不能为空!");
    ErrorCode SALE_ORDER_IMPORT_PRODUCT_NOT_EXISTS = new ErrorCode(1_020_201_020, "物料编码【{}】不存在!");
    ErrorCode SALE_ORDER_IMPORT_UNIT_NOT_EXISTS = new ErrorCode(1_020_201_021, "单位编码【{}】不存在!");
    ErrorCode SALE_ORDER_IMPORT_SALE_USER_NOT_EXISTS = new ErrorCode(1_020_201_022, "销售员【{}】不存在!");
    ErrorCode SALE_ORDER_IMPORT_ACCOUNT_NOT_EXISTS = new ErrorCode(1_020_201_023, "结算账户【{}】不存在!");
    // ========== ERP 销售出库(1-030-202-000) ==========
    ErrorCode SALE_OUT_NOT_EXISTS = new ErrorCode(1_020_202_000, "销售出库单不存在");
@@ -194,6 +237,8 @@
    // ========== ERP 结算账户 1-030-600-000 ==========
    ErrorCode ACCOUNT_NOT_EXISTS = new ErrorCode(1_030_600_000, "结算账户不存在");
    ErrorCode ACCOUNT_NOT_ENABLE = new ErrorCode(1_030_600_001, "结算账户({})未启用");
    ErrorCode ACCOUNT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_600_002, "导入结算账户数据不能为空!");
    ErrorCode ACCOUNT_NAME_EXISTS = new ErrorCode(1_030_600_003, "已存在结算账户【{}】,且未开启覆盖!");
    // ========== ERP 付款单 1-030-601-000 ==========
    ErrorCode FINANCE_PAYMENT_NOT_EXISTS = new ErrorCode(1_030_601_000, "付款单不存在");
@@ -206,11 +251,11 @@
    ErrorCode FINANCE_PAYMENT_CREATE_FAIL_INVOICE_NOT_ATTACHMENT = new ErrorCode(1_030_601_008, "创建付款单失败,原因:关联的来票未上传发票附件");
    ErrorCode FINANCE_PAYMENT_CREATE_FAIL_INVOICE_SUPPLIER_MISMATCH = new ErrorCode(1_030_601_009, "创建付款单失败,原因:关联的来票与所选供应商不匹配");
    ErrorCode FINANCE_PAYMENT_CREATE_FAIL_INVOICE_PRICE_EXCEEDS = new ErrorCode(1_030_601_010, "创建付款单失败,原因:付款金额超出该来票剩余可付金额,目前可付:{} 元");
    ErrorCode FINANCE_PAYMENT_SUBMIT_FAIL_STATUS = new ErrorCode(1_030_601_011, "提交审批失败,只有未审核状态的付款单才能提交");
    ErrorCode FINANCE_PAYMENT_BPM_CATEGORY_NOT_EXISTS = new ErrorCode(1_030_601_012, "付款单审批分类不存在,请先在BPM模块创建采购审核流程分类");
    ErrorCode FINANCE_PAYMENT_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_601_013, "付款单审批分类下没有可用的流程模型,请先创建并发布流程");
    ErrorCode FINANCE_PAYMENT_UPDATE_FAIL_APPROVING = new ErrorCode(1_030_601_014, "付款单({})审批中,无法修改");
    ErrorCode FINANCE_PAYMENT_DELETE_FAIL_APPROVING = new ErrorCode(1_030_601_015, "付款单({})审批中,无法删除");
    ErrorCode FINANCE_PAYMENT_SUBMIT_FAIL_NOT_ALLOWED = new ErrorCode(1_030_601_016, "提交失败,只有未审核状态的付款单才能提交");
    ErrorCode FINANCE_PAYMENT_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_601_017, "审核失败,只有审批中状态的付款单才能审核");
    ErrorCode FINANCE_PAYMENT_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_601_018, "审核不通过时必须填写不通过原因");
    // ========== ERP 收款单 1-030-602-000 ==========
    ErrorCode FINANCE_RECEIPT_NOT_EXISTS = new ErrorCode(1_030_602_000, "收款单不存在");
@@ -224,4 +269,4 @@
    ErrorCode WAREHOUSE_MAPPING_NOT_EXISTS = new ErrorCode(1_030_700_000, "仓库映射不存在");
    ErrorCode WAREHOUSE_MAPPING_EXISTS = new ErrorCode(1_030_700_001, "该ERP仓库已存在映射配置");
}
}