271 lines
11 KiB
Python
271 lines
11 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 "否"
|
|
|
|
|
|
def _join_brand_names(value) -> str:
|
|
if not value:
|
|
return ""
|
|
if isinstance(value, list):
|
|
names = [str(x.get("brandName", "")) for x in value if isinstance(x, dict)]
|
|
return "、".join(n for n in names if n)
|
|
return str(value)
|
|
|
|
|
|
def _join_alias_names(value) -> str:
|
|
if not value:
|
|
return ""
|
|
if isinstance(value, list):
|
|
names = [str(x.get("aliasName", "")) for x in value if isinstance(x, dict)]
|
|
return "、".join(n for n in names if n)
|
|
return str(value)
|
|
|
|
|
|
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"),
|
|
)
|
|
|
|
|
|
POOL_CUSTOMER_EXPORT_COLUMNS = (
|
|
ExportColumn("客户编号", "customerNo"),
|
|
ExportColumn("客户名称", "customerName"),
|
|
ExportColumn("客户简称", "shortName"),
|
|
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("所在园区", "parkArea", dict_type="crm_customer_park"),
|
|
ExportColumn("手机号", "mobile"),
|
|
ExportColumn("电话", "telephone"),
|
|
ExportColumn("邮箱", "email"),
|
|
ExportColumn("地址", "address"),
|
|
ExportColumn("成交状态", "dealStatus", dict_type="crm_deal_status"),
|
|
ExportColumn("原负责人", "ownerUserName"),
|
|
ExportColumn("跟进次数", "followCount"),
|
|
ExportColumn("最后跟进时间", "lastTime"),
|
|
ExportColumn("进入公海时间", "intoPoolTime"),
|
|
ExportColumn("创建时间", "createTime"),
|
|
ExportColumn("备注", "remark"),
|
|
)
|
|
|
|
POOL_RULE_EXPORT_COLUMNS = (
|
|
ExportColumn("规则名称", "poolName"),
|
|
ExportColumn("规则类型", "ruleType"),
|
|
ExportColumn("超时天数", "timeoutDays"),
|
|
ExportColumn("保护天数", "protectDays"),
|
|
ExportColumn("状态", "status"),
|
|
ExportColumn("排序", "sort"),
|
|
ExportColumn("创建时间", "createTime"),
|
|
ExportColumn("备注", "remark"),
|
|
)
|
|
|
|
PRODUCT_EXPORT_COLUMNS = (
|
|
ExportColumn("产品编号", "productNo"),
|
|
ExportColumn("产品名称", "productName"),
|
|
ExportColumn("分类名称", "categoryName"),
|
|
ExportColumn("品牌", "brands", formatter=_join_brand_names),
|
|
ExportColumn("别名", "aliases", formatter=_join_alias_names),
|
|
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"),
|
|
)
|