Files
shanxia2.0/backend/app/utils/crm_export_columns.py
T
2026-06-06 19:44:18 +08:00

217 lines
9.4 KiB
Python

"""CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。"""
from __future__ import annotations
from app.utils.excel_export import ExportColumn
def _yes_no(value) -> str:
if value in (True, 1, "1", "true", "True"):
return "是"
if value in (None, "", False, 0, "0"):
return ""
return "否"
CLUE_EXPORT_COLUMNS = (
ExportColumn("线索姓名", "clueName"),
ExportColumn("手机号", "mobile"),
ExportColumn("公司名称", "company"),
ExportColumn("客户类型", "customerType", dict_type="crm_customer_type"),
ExportColumn("线索来源", "source", dict_type="crm_clue_source"),
ExportColumn("线索等级", "level", dict_type="crm_clue_level"),
ExportColumn("线索状态", "status", dict_type="crm_clue_status"),
ExportColumn("所属行业", "industry", dict_type="crm_customer_industry"),
ExportColumn("所在园区", "parkArea", dict_type="crm_customer_park"),
ExportColumn("负责人", "ownerUserName"),
ExportColumn("跟进次数", "followCount"),
ExportColumn("最后跟进时间", "lastTime"),
ExportColumn("下次联系时间", "nextTime"),
ExportColumn("创建时间", "createTime"),
ExportColumn("备注", "remark"),
)
CUSTOMER_EXPORT_COLUMNS = (
ExportColumn("客户编号", "customerNo"),
ExportColumn("客户名称", "customerName"),
ExportColumn("客户类型", "customerType", dict_type="crm_customer_type"),
ExportColumn("级别", "level", dict_type="crm_customer_level"),
ExportColumn("来源", "source", dict_type="crm_clue_source"),
ExportColumn("行业", "industry", dict_type="crm_customer_industry"),
ExportColumn("手机号", "mobile"),
ExportColumn("电话", "phone"),
ExportColumn("邮箱", "email"),
ExportColumn("地址", "address"),
ExportColumn("负责人", "ownerUserName"),
ExportColumn("成交状态", "dealStatus", dict_type="crm_deal_status"),
ExportColumn("跟进状态", "followStatus"),
ExportColumn("创建时间", "createTime"),
ExportColumn("备注", "remark"),
)
PRODUCT_EXPORT_COLUMNS = (
ExportColumn("产品编号", "productNo"),
ExportColumn("产品名称", "productName"),
ExportColumn("分类名称", "categoryName"),
ExportColumn("规格型号", "model"),
ExportColumn("单位", "unit"),
ExportColumn("标准单价", "price"),
ExportColumn("成本价", "costPrice"),
ExportColumn("状态", "status", dict_type="crm_product_status"),
ExportColumn("备注", "remark"),
)
CONTACT_EXPORT_COLUMNS = (
ExportColumn("联系人姓名", "contactName"),
ExportColumn("客户名称", "customerName"),
ExportColumn("职位", "position"),
ExportColumn("手机号", "mobile"),
ExportColumn("电话", "phone"),
ExportColumn("邮箱", "email"),
ExportColumn("是否主要联系人", "isPrimary", formatter=_yes_no),
ExportColumn("是否决策人", "isDecision", formatter=_yes_no),
ExportColumn("备注", "remark"),
)
CUSTOMER_FOLLOW_EXPORT_COLUMNS = (
ExportColumn("客户名称", "customerName"),
ExportColumn("跟进方式", "followType", dict_type="crm_follow_type"),
ExportColumn("跟进内容", "content"),
ExportColumn("跟进人", "followUserName"),
ExportColumn("跟进时间", "followTime"),
ExportColumn("备注", "remark"),
)
OPPORTUNITY_EXPORT_COLUMNS = (
ExportColumn("商机编号", "opportunityNo"),
ExportColumn("商机名称", "opportunityName"),
ExportColumn("客户名称", "customerName"),
ExportColumn("阶段", "stage", dict_type="crm_opportunity_stage"),
ExportColumn("状态", "status", dict_type="crm_opportunity_status"),
ExportColumn("金额", "amount"),
ExportColumn("预计成交日期", "expectDealDate"),
ExportColumn("负责人", "ownerUserName"),
ExportColumn("跟进次数", "followCount"),
ExportColumn("最后跟进时间", "lastTime"),
ExportColumn("创建时间", "createTime"),
ExportColumn("备注", "remark"),
)
SUPPLIER_INFO_EXPORT_COLUMNS = (
ExportColumn("供方名称", "supplierName"),
ExportColumn("供方简称", "shortName"),
ExportColumn("供方编码", "supplierCode"),
ExportColumn("单位地址", "supplierAddress"),
ExportColumn("法定代表人", "legalPerson"),
ExportColumn("代理人", "agent"),
ExportColumn("电话/传真", "phoneFax"),
ExportColumn("开户银行", "bankName"),
ExportColumn("账号", "bankAccount"),
ExportColumn("状态", "status", dict_type="sys_normal_disable"),
ExportColumn("备注", "remark"),
ExportColumn("创建时间", "createTime"),
ExportColumn("更新时间", "updateTime"),
)
QUOTE_EXPORT_COLUMNS = (
ExportColumn("报价单编号", "quoteNo"),
ExportColumn("报价单标题", "quoteTitle"),
ExportColumn("报价单类型", "quoteType"),
ExportColumn("客户名称", "customerName"),
ExportColumn("商机名称", "opportunityName"),
ExportColumn("联系人", "contactName"),
ExportColumn("版本号", "version"),
ExportColumn("总金额", "totalAmount"),
ExportColumn("折扣率", "discountRate"),
ExportColumn("折扣金额", "discountAmount"),
ExportColumn("最终金额", "finalAmount"),
ExportColumn("有效期(天)", "validityDays"),
ExportColumn("报价日期", "quoteDate"),
ExportColumn("到期日期", "expireDate"),
ExportColumn("状态", "status", dict_type="crm_quote_status"),
ExportColumn("查看次数", "viewCount"),
ExportColumn("负责人", "ownerUserName"),
ExportColumn("报价主体", "supplierName"),
ExportColumn("备注", "remark"),
ExportColumn("创建时间", "createTime"),
)
CONTRACT_EXPORT_COLUMNS = (
ExportColumn("合同编号", "contractNo"),
ExportColumn("合同名称", "contractName"),
ExportColumn("客户名称", "customerName"),
ExportColumn("续签次数", "renewalCount"),
ExportColumn("合同模版", "contractTemplate", dict_type="crm_contract_template"),
ExportColumn("联系人", "contactName"),
ExportColumn("合同类型", "contractType", dict_type="crm_contract_type"),
ExportColumn("合同性质", "contractNature", dict_type="crm_contract_nature"),
ExportColumn("合同金额", "amount"),
ExportColumn("币种", "currency", dict_type="crm_currency"),
ExportColumn("税率(%)", "taxRate"),
ExportColumn("含税金额", "amountWithTax"),
ExportColumn("签订日期", "signDate"),
ExportColumn("实际签订日期", "actualSignDate"),
ExportColumn("开始日期", "startDate"),
ExportColumn("结束日期", "endDate"),
ExportColumn("合同期限(月)", "contractPeriod"),
ExportColumn("合同状态", "status", dict_type="crm_contract_status"),
ExportColumn("履约状态", "performanceStatus", dict_type="crm_performance_status"),
ExportColumn("履约完成度(%)", "performanceRate"),
ExportColumn("客户满意度", "customerSatisfaction"),
ExportColumn("审批状态", "approvalStatus", dict_type="crm_contract_approval_status"),
ExportColumn("负责人", "ownerUserName"),
ExportColumn("已回款金额", "receivedAmount"),
ExportColumn("未回款金额", "unreceivedAmount"),
ExportColumn("已开票金额", "invoiceAmount"),
ExportColumn("未开票金额", "uninvoiceAmount"),
ExportColumn("甲方", "partyA"),
ExportColumn("乙方", "partyB"),
ExportColumn("乙方法定代表人", "partyBLegalPerson"),
ExportColumn("乙方代理人", "partyBAgent"),
ExportColumn("乙方电话/传真", "partyBPhoneFax"),
ExportColumn("乙方开户银行", "partyBBank"),
ExportColumn("乙方银行账号", "partyBAccount"),
ExportColumn("创建时间", "createTime"),
ExportColumn("更新时间", "updateTime"),
ExportColumn("备注", "remark"),
)
CONTRACT_CHANGE_EXPORT_COLUMNS = (
ExportColumn("合同编号", "contractNo"),
ExportColumn("合同名称", "contractName"),
ExportColumn("变更类型", "changeType", dict_type="crm_contract_change_type"),
ExportColumn("变更原因", "changeReason"),
ExportColumn("变更内容", "changeContent"),
ExportColumn("变更金额", "changeAmount"),
ExportColumn("审批状态", "approvalStatus", dict_type="crm_approval_status"),
ExportColumn("审批人", "approverName"),
ExportColumn("审批时间", "approvalTime"),
ExportColumn("创建时间", "createTime"),
ExportColumn("备注", "remark"),
)
CONTRACT_TEMPLATE_EXPORT_COLUMNS = (
ExportColumn("模板编号", "templateNo"),
ExportColumn("模板名称", "templateName"),
ExportColumn("合同类型", "contractType", dict_type="crm_contract_type"),
ExportColumn("乙方", "partyB"),
ExportColumn("默认币种", "defaultCurrency"),
ExportColumn("默认税率(%)", "defaultTaxRate"),
ExportColumn("默认期限(月)", "defaultPeriod"),
ExportColumn("是否启用", "isActive", formatter=_yes_no),
ExportColumn("使用次数", "usageCount"),
ExportColumn("创建时间", "createTime"),
ExportColumn("备注", "remark"),
)
CONTRACT_APPROVAL_EXPORT_COLUMNS = (
ExportColumn("合同ID", "contractId"),
ExportColumn("审批步骤", "step"),
ExportColumn("步骤名称", "stepName"),
ExportColumn("审批人", "approverName"),
ExportColumn("审批结果", "approvalResult", dict_type="crm_approval_status"),
ExportColumn("审批意见", "approvalOpinion"),
ExportColumn("审批时间", "approvalTime"),
ExportColumn("创建时间", "createTime"),
ExportColumn("备注", "remark"),
)