CrmQuoteVo.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. package org.dromara.crm.domain.vo;
  2. import cn.idev.excel.annotation.ExcelProperty;
  3. import io.github.linpeilie.annotations.AutoMapper;
  4. import lombok.Data;
  5. import org.dromara.common.excel.annotation.ExcelDictFormat;
  6. import org.dromara.common.excel.convert.ExcelDictConvert;
  7. import org.dromara.common.translation.annotation.Translation;
  8. import org.dromara.common.translation.constant.TransConstant;
  9. import org.dromara.crm.domain.CrmQuote;
  10. import com.fasterxml.jackson.annotation.JsonFormat;
  11. import java.io.Serial;
  12. import java.io.Serializable;
  13. import java.math.BigDecimal;
  14. import java.time.LocalDate;
  15. import java.time.LocalDateTime;
  16. import java.util.Date;
  17. import java.util.List;
  18. /**
  19. * 报价单视图对象 crm_quote
  20. *
  21. * @author 系统管理员
  22. * @date 2025-01-03
  23. */
  24. @Data
  25. @AutoMapper(target = CrmQuote.class)
  26. public class CrmQuoteVo implements Serializable {
  27. @Serial
  28. private static final long serialVersionUID = 1L;
  29. /**
  30. * 主键ID
  31. */
  32. @ExcelProperty(value = "ID")
  33. private Long id;
  34. /**
  35. * 报价单编号
  36. */
  37. @ExcelProperty(value = "报价单编号")
  38. private String quoteNo;
  39. /**
  40. * 报价单标题
  41. */
  42. @ExcelProperty(value = "报价单标题")
  43. private String quoteTitle;
  44. /**
  45. * 报价单类型(sales-销售/purchase-采购)
  46. */
  47. @ExcelProperty(value = "报价单类型")
  48. private String quoteType;
  49. /**
  50. * 客户ID
  51. */
  52. private Long customerId;
  53. /**
  54. * 客户名称
  55. */
  56. @ExcelProperty(value = "客户名称")
  57. private String customerName;
  58. /**
  59. * 商机ID
  60. */
  61. private Long opportunityId;
  62. /**
  63. * 商机名称
  64. */
  65. @ExcelProperty(value = "商机名称")
  66. private String opportunityName;
  67. /**
  68. * 联系人ID
  69. */
  70. private Long contactId;
  71. /**
  72. * 联系人姓名
  73. */
  74. @ExcelProperty(value = "联系人")
  75. private String contactName;
  76. /**
  77. * 联系人手机
  78. */
  79. private String contactMobile;
  80. /**
  81. * 联系人邮箱
  82. */
  83. private String contactEmail;
  84. /**
  85. * 版本号
  86. */
  87. @ExcelProperty(value = "版本号")
  88. private String version;
  89. /**
  90. * 父版本ID
  91. */
  92. private Long parentId;
  93. /**
  94. * 是否最新版本
  95. */
  96. private Integer isLatest;
  97. /**
  98. * 总金额
  99. */
  100. @ExcelProperty(value = "总金额")
  101. private BigDecimal totalAmount;
  102. /**
  103. * 整单折扣率
  104. */
  105. @ExcelProperty(value = "折扣率")
  106. private BigDecimal discountRate;
  107. /**
  108. * 折扣金额
  109. */
  110. @ExcelProperty(value = "折扣金额")
  111. private BigDecimal discountAmount;
  112. /**
  113. * 最终金额
  114. */
  115. @ExcelProperty(value = "最终金额")
  116. private BigDecimal finalAmount;
  117. /**
  118. * 有效期(天数)
  119. */
  120. @ExcelProperty(value = "有效期(天)")
  121. private Integer validityDays;
  122. /**
  123. * 报价日期
  124. */
  125. @ExcelProperty(value = "报价日期")
  126. private LocalDate quoteDate;
  127. /**
  128. * 到期日期
  129. */
  130. @ExcelProperty(value = "到期日期")
  131. private LocalDate expireDate;
  132. /**
  133. * 状态
  134. */
  135. @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
  136. @ExcelDictFormat(dictType = "crm_quote_status")
  137. private String status;
  138. /**
  139. * 拒绝原因
  140. */
  141. private String rejectReason;
  142. /**
  143. * PDF文件路径
  144. */
  145. private String pdfUrl;
  146. /**
  147. * PDF是否已生成
  148. */
  149. private Integer pdfGenerated;
  150. /**
  151. * 分享链接
  152. */
  153. private String shareLink;
  154. /**
  155. * 分享码
  156. */
  157. private String shareCode;
  158. /**
  159. * 查看次数
  160. */
  161. @ExcelProperty(value = "查看次数")
  162. private Integer viewCount;
  163. /**
  164. * 最后查看时间
  165. */
  166. private LocalDateTime lastViewTime;
  167. /**
  168. * 负责人ID
  169. */
  170. private Long ownerUserId;
  171. /**
  172. * 负责人姓名
  173. */
  174. @ExcelProperty(value = "负责人")
  175. private String ownerUserName;
  176. /**
  177. * 负责人手机号
  178. */
  179. private String ownerUserMobile;
  180. /**
  181. * 报价主体ID
  182. */
  183. private Long supplierId;
  184. /**
  185. * 报价主体名称
  186. */
  187. @ExcelProperty(value = "报价主体")
  188. private String supplierName;
  189. /**
  190. * 关联合同ID
  191. */
  192. private Long contractId;
  193. /**
  194. * 被合同关联次数
  195. */
  196. private Integer contractLinkedCount;
  197. /**
  198. * 付款条款
  199. */
  200. private String paymentTerms;
  201. /**
  202. * 交付条款
  203. */
  204. private String deliveryTerms;
  205. /**
  206. * 运费(元)
  207. */
  208. @ExcelProperty(value = "运费(元)")
  209. private BigDecimal freight;
  210. /**
  211. * 附件(多个用逗号分隔)
  212. */
  213. private String attachments;
  214. /**
  215. * 报价单模板内容(富文本HTML)
  216. */
  217. private String templateContent;
  218. /**
  219. * 创建部门
  220. */
  221. private Long createDept;
  222. /**
  223. * 创建部门名称
  224. */
  225. @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "createDept")
  226. @ExcelProperty(value = "创建部门")
  227. private String createDeptName;
  228. /**
  229. * 创建者
  230. */
  231. private Long createBy;
  232. /**
  233. * 创建者昵称
  234. */
  235. @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
  236. @ExcelProperty(value = "创建人")
  237. private String createByName;
  238. /**
  239. * 创建时间
  240. */
  241. @ExcelProperty(value = "创建时间")
  242. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
  243. private Date createTime;
  244. /**
  245. * 更新者
  246. */
  247. private Long updateBy;
  248. /**
  249. * 更新者昵称
  250. */
  251. @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "updateBy")
  252. @ExcelProperty(value = "更新人")
  253. private String updateByName;
  254. /**
  255. * 更新时间
  256. */
  257. @ExcelProperty(value = "更新时间")
  258. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
  259. private Date updateTime;
  260. /**
  261. * 备注
  262. */
  263. @ExcelProperty(value = "备注")
  264. private String remark;
  265. /**
  266. * 产品列表
  267. */
  268. private List<CrmQuoteProductVo> productList;
  269. /**
  270. * 当前用户是否可以审批(前端显示审批按钮时使用)
  271. */
  272. private Boolean canApprove;
  273. }