crm_export_columns.py 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. """CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。"""
  2. from __future__ import annotations
  3. from app.utils.excel_export import ExportColumn
  4. def _yes_no(value) -> str:
  5. if value in (True, 1, "1", "true", "True"):
  6. return "是"
  7. if value in (None, "", False, 0, "0"):
  8. return ""
  9. return "否"
  10. CLUE_EXPORT_COLUMNS = (
  11. ExportColumn("线索姓名", "clueName"),
  12. ExportColumn("手机号", "mobile"),
  13. ExportColumn("公司名称", "company"),
  14. ExportColumn("客户类型", "customerType", dict_type="crm_customer_type"),
  15. ExportColumn("线索来源", "source", dict_type="crm_clue_source"),
  16. ExportColumn("线索等级", "level", dict_type="crm_clue_level"),
  17. ExportColumn("线索状态", "status", dict_type="crm_clue_status"),
  18. ExportColumn("所属行业", "industry", dict_type="crm_customer_industry"),
  19. ExportColumn("所在园区", "parkArea", dict_type="crm_customer_park"),
  20. ExportColumn("负责人", "ownerUserName"),
  21. ExportColumn("跟进次数", "followCount"),
  22. ExportColumn("最后跟进时间", "lastTime"),
  23. ExportColumn("下次联系时间", "nextTime"),
  24. ExportColumn("创建时间", "createTime"),
  25. ExportColumn("备注", "remark"),
  26. )
  27. CUSTOMER_EXPORT_COLUMNS = (
  28. ExportColumn("客户编号", "customerNo"),
  29. ExportColumn("客户名称", "customerName"),
  30. ExportColumn("客户类型", "customerType", dict_type="crm_customer_type"),
  31. ExportColumn("级别", "level", dict_type="crm_customer_level"),
  32. ExportColumn("来源", "source", dict_type="crm_clue_source"),
  33. ExportColumn("行业", "industry", dict_type="crm_customer_industry"),
  34. ExportColumn("手机号", "mobile"),
  35. ExportColumn("电话", "phone"),
  36. ExportColumn("邮箱", "email"),
  37. ExportColumn("地址", "address"),
  38. ExportColumn("负责人", "ownerUserName"),
  39. ExportColumn("成交状态", "dealStatus", dict_type="crm_deal_status"),
  40. ExportColumn("跟进状态", "followStatus"),
  41. ExportColumn("创建时间", "createTime"),
  42. ExportColumn("备注", "remark"),
  43. )
  44. PRODUCT_EXPORT_COLUMNS = (
  45. ExportColumn("产品编号", "productNo"),
  46. ExportColumn("产品名称", "productName"),
  47. ExportColumn("分类名称", "categoryName"),
  48. ExportColumn("规格型号", "model"),
  49. ExportColumn("单位", "unit"),
  50. ExportColumn("标准单价", "price"),
  51. ExportColumn("成本价", "costPrice"),
  52. ExportColumn("状态", "status", dict_type="crm_product_status"),
  53. ExportColumn("备注", "remark"),
  54. )
  55. CONTACT_EXPORT_COLUMNS = (
  56. ExportColumn("联系人姓名", "contactName"),
  57. ExportColumn("客户名称", "customerName"),
  58. ExportColumn("职位", "position"),
  59. ExportColumn("手机号", "mobile"),
  60. ExportColumn("电话", "phone"),
  61. ExportColumn("邮箱", "email"),
  62. ExportColumn("是否主要联系人", "isPrimary", formatter=_yes_no),
  63. ExportColumn("是否决策人", "isDecision", formatter=_yes_no),
  64. ExportColumn("备注", "remark"),
  65. )
  66. CUSTOMER_FOLLOW_EXPORT_COLUMNS = (
  67. ExportColumn("客户名称", "customerName"),
  68. ExportColumn("跟进方式", "followType", dict_type="crm_follow_type"),
  69. ExportColumn("跟进内容", "content"),
  70. ExportColumn("跟进人", "followUserName"),
  71. ExportColumn("跟进时间", "followTime"),
  72. ExportColumn("备注", "remark"),
  73. )
  74. OPPORTUNITY_EXPORT_COLUMNS = (
  75. ExportColumn("商机编号", "opportunityNo"),
  76. ExportColumn("商机名称", "opportunityName"),
  77. ExportColumn("客户名称", "customerName"),
  78. ExportColumn("阶段", "stage", dict_type="crm_opportunity_stage"),
  79. ExportColumn("状态", "status", dict_type="crm_opportunity_status"),
  80. ExportColumn("金额", "amount"),
  81. ExportColumn("预计成交日期", "expectDealDate"),
  82. ExportColumn("负责人", "ownerUserName"),
  83. ExportColumn("跟进次数", "followCount"),
  84. ExportColumn("最后跟进时间", "lastTime"),
  85. ExportColumn("创建时间", "createTime"),
  86. ExportColumn("备注", "remark"),
  87. )
  88. SUPPLIER_INFO_EXPORT_COLUMNS = (
  89. ExportColumn("供方名称", "supplierName"),
  90. ExportColumn("供方简称", "shortName"),
  91. ExportColumn("供方编码", "supplierCode"),
  92. ExportColumn("单位地址", "supplierAddress"),
  93. ExportColumn("法定代表人", "legalPerson"),
  94. ExportColumn("代理人", "agent"),
  95. ExportColumn("电话/传真", "phoneFax"),
  96. ExportColumn("开户银行", "bankName"),
  97. ExportColumn("账号", "bankAccount"),
  98. ExportColumn("状态", "status", dict_type="sys_normal_disable"),
  99. ExportColumn("备注", "remark"),
  100. ExportColumn("创建时间", "createTime"),
  101. ExportColumn("更新时间", "updateTime"),
  102. )
  103. QUOTE_EXPORT_COLUMNS = (
  104. ExportColumn("报价单编号", "quoteNo"),
  105. ExportColumn("报价单标题", "quoteTitle"),
  106. ExportColumn("报价单类型", "quoteType"),
  107. ExportColumn("客户名称", "customerName"),
  108. ExportColumn("商机名称", "opportunityName"),
  109. ExportColumn("联系人", "contactName"),
  110. ExportColumn("版本号", "version"),
  111. ExportColumn("总金额", "totalAmount"),
  112. ExportColumn("折扣率", "discountRate"),
  113. ExportColumn("折扣金额", "discountAmount"),
  114. ExportColumn("最终金额", "finalAmount"),
  115. ExportColumn("有效期(天)", "validityDays"),
  116. ExportColumn("报价日期", "quoteDate"),
  117. ExportColumn("到期日期", "expireDate"),
  118. ExportColumn("状态", "status", dict_type="crm_quote_status"),
  119. ExportColumn("查看次数", "viewCount"),
  120. ExportColumn("负责人", "ownerUserName"),
  121. ExportColumn("报价主体", "supplierName"),
  122. ExportColumn("备注", "remark"),
  123. ExportColumn("创建时间", "createTime"),
  124. )
  125. CONTRACT_EXPORT_COLUMNS = (
  126. ExportColumn("合同编号", "contractNo"),
  127. ExportColumn("合同名称", "contractName"),
  128. ExportColumn("客户名称", "customerName"),
  129. ExportColumn("续签次数", "renewalCount"),
  130. ExportColumn("合同模版", "contractTemplate", dict_type="crm_contract_template"),
  131. ExportColumn("联系人", "contactName"),
  132. ExportColumn("合同类型", "contractType", dict_type="crm_contract_type"),
  133. ExportColumn("合同性质", "contractNature", dict_type="crm_contract_nature"),
  134. ExportColumn("合同金额", "amount"),
  135. ExportColumn("币种", "currency", dict_type="crm_currency"),
  136. ExportColumn("税率(%)", "taxRate"),
  137. ExportColumn("含税金额", "amountWithTax"),
  138. ExportColumn("签订日期", "signDate"),
  139. ExportColumn("实际签订日期", "actualSignDate"),
  140. ExportColumn("开始日期", "startDate"),
  141. ExportColumn("结束日期", "endDate"),
  142. ExportColumn("合同期限(月)", "contractPeriod"),
  143. ExportColumn("合同状态", "status", dict_type="crm_contract_status"),
  144. ExportColumn("履约状态", "performanceStatus", dict_type="crm_performance_status"),
  145. ExportColumn("履约完成度(%)", "performanceRate"),
  146. ExportColumn("客户满意度", "customerSatisfaction"),
  147. ExportColumn("审批状态", "approvalStatus", dict_type="crm_contract_approval_status"),
  148. ExportColumn("负责人", "ownerUserName"),
  149. ExportColumn("已回款金额", "receivedAmount"),
  150. ExportColumn("未回款金额", "unreceivedAmount"),
  151. ExportColumn("已开票金额", "invoiceAmount"),
  152. ExportColumn("未开票金额", "uninvoiceAmount"),
  153. ExportColumn("甲方", "partyA"),
  154. ExportColumn("乙方", "partyB"),
  155. ExportColumn("乙方法定代表人", "partyBLegalPerson"),
  156. ExportColumn("乙方代理人", "partyBAgent"),
  157. ExportColumn("乙方电话/传真", "partyBPhoneFax"),
  158. ExportColumn("乙方开户银行", "partyBBank"),
  159. ExportColumn("乙方银行账号", "partyBAccount"),
  160. ExportColumn("创建时间", "createTime"),
  161. ExportColumn("更新时间", "updateTime"),
  162. ExportColumn("备注", "remark"),
  163. )
  164. CONTRACT_CHANGE_EXPORT_COLUMNS = (
  165. ExportColumn("合同编号", "contractNo"),
  166. ExportColumn("合同名称", "contractName"),
  167. ExportColumn("变更类型", "changeType", dict_type="crm_contract_change_type"),
  168. ExportColumn("变更原因", "changeReason"),
  169. ExportColumn("变更内容", "changeContent"),
  170. ExportColumn("变更金额", "changeAmount"),
  171. ExportColumn("审批状态", "approvalStatus", dict_type="crm_approval_status"),
  172. ExportColumn("审批人", "approverName"),
  173. ExportColumn("审批时间", "approvalTime"),
  174. ExportColumn("创建时间", "createTime"),
  175. ExportColumn("备注", "remark"),
  176. )
  177. CONTRACT_TEMPLATE_EXPORT_COLUMNS = (
  178. ExportColumn("模板编号", "templateNo"),
  179. ExportColumn("模板名称", "templateName"),
  180. ExportColumn("合同类型", "contractType", dict_type="crm_contract_type"),
  181. ExportColumn("乙方", "partyB"),
  182. ExportColumn("默认币种", "defaultCurrency"),
  183. ExportColumn("默认税率(%)", "defaultTaxRate"),
  184. ExportColumn("默认期限(月)", "defaultPeriod"),
  185. ExportColumn("是否启用", "isActive", formatter=_yes_no),
  186. ExportColumn("使用次数", "usageCount"),
  187. ExportColumn("创建时间", "createTime"),
  188. ExportColumn("备注", "remark"),
  189. )
  190. CONTRACT_APPROVAL_EXPORT_COLUMNS = (
  191. ExportColumn("合同ID", "contractId"),
  192. ExportColumn("审批步骤", "step"),
  193. ExportColumn("步骤名称", "stepName"),
  194. ExportColumn("审批人", "approverName"),
  195. ExportColumn("审批结果", "approvalResult", dict_type="crm_approval_status"),
  196. ExportColumn("审批意见", "approvalOpinion"),
  197. ExportColumn("审批时间", "approvalTime"),
  198. ExportColumn("创建时间", "createTime"),
  199. ExportColumn("备注", "remark"),
  200. )