proj_business.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. // ==========================================================================
  2. // This is auto-generated by gf cli tool. Fill this file as you wish.
  3. // ==========================================================================
  4. package model
  5. import (
  6. "dashoo.cn/micro/app/model/proj/internal"
  7. "dashoo.cn/opms_libary/request"
  8. "github.com/gogf/gf/os/gtime"
  9. )
  10. // ProjBusiness is the golang structure for table proj_business.
  11. type ProjBusiness internal.ProjBusiness
  12. // Fill with you ideas below.
  13. type ProjBusinessSearchReq struct {
  14. NboName string `json:"nboName"` // 项目名称
  15. CustName string `json:"custName"` // 客户名称
  16. SaleName string `json:"saleName"` // 销售姓名
  17. NboType string `json:"nboType"` // 项目类别(A类B类C类)
  18. ProductLine string `json:"productLine"` // 产品线
  19. NboSource string `json:"nboSource"` // 项目来源
  20. DistributorName string `json:"distributorName"` // 经销商/代理商名称
  21. //FilingTime *gtime.Time `json:"filingTime"` // 项目备案时间
  22. ProvinceId int `json:"provinceId"`
  23. request.PageReq
  24. }
  25. type ProjBusinessRes struct {
  26. ProjBusiness
  27. CustProvinceId int `orm:"cust_province_id" json:"custProvinceId"` // 所在省ID
  28. CustProvince string `orm:"cust_province" json:"custProvince"` // 所在省
  29. CustCityId int `orm:"cust_city_id" json:"custCityId"` // 所在市ID
  30. CustCity string `orm:"cust_city" json:"custCity"` // 所在市
  31. ContractAmount float64 `json:"contractAmount"` // 合同金额
  32. ProjClosingTime *gtime.Time `json:"projClosingTime"` // 合同金额
  33. }
  34. type AddProjBusinessReq struct {
  35. NboName string `json:"nboName" v:"required#项目名称不能为空"` // 项目名称
  36. CustId int `json:"custId" v:"required|min:1#|关联客户不能为空"` // 关联客户
  37. CustName string `json:"custName" v:"required#关联客户不能为空"` // 客户名称
  38. NboSource string `json:"nboSource" v:"required#项目来源不能为空"` // 项目来源
  39. ContactId int `json:"contactId" v:"required|min:1#|关联联系人不能为空"` // 关联联系人
  40. ContactName string `json:"contactName" v:"required#联系人姓名不能为空"` // 联系人姓名
  41. ContactPostion string `json:"contactPostion"` // 联系人岗位
  42. ContactTelephone string `json:"contactTelephone"` // 联系人电话
  43. SaleId int `json:"saleId" v:"required|min:1#|归属销售不能为空"` // 归属销售
  44. SaleName string `json:"saleName" v:"required#销售姓名不能为空"` // 销售姓名
  45. SalesModel string `json:"salesModel" v:"required|in:10,20,30#销售模式不能为空|销售模式不存在"` // 销售模式(10直销20经销30代理)
  46. DistributorId int `json:"distributorId" v:"required-unless:salesModel,10#经销商/代理商不能为空"` // 经销商/代理商ID
  47. DistributorName string `json:"distributorName" v:"required-unless:salesModel,10#经销商/代理商名称不能为空"` // 经销商/代理商名称
  48. NboType string `json:"nboType"` // 项目级别(A 、B 、C 、成交、储备)
  49. ProductLine string `json:"productLine" v:"required#产品线不能为空"` // 产品线
  50. IsBig string `json:"isBig" v:"required#是否大项目不能为空"` // 是否大项目
  51. NboBudget float64 `json:"nboBudget"` // 项目预算
  52. FilingTime *gtime.Time `json:"filingTime"` // 项目备案时间
  53. PlanPurchaseTime *gtime.Time `json:"planPurchaseTime"` // 计划采购时间
  54. EstTransTime *gtime.Time `json:"estTransTime"` // 预计成交时间
  55. EstTransPrice float64 `json:"estTransPrice"` // 预计成交价格
  56. RiskProfile string `json:"riskProfile"` // 风险情况
  57. Difficulty string `json:"difficulty"` // 困难点
  58. Competitor string `json:"competitor"` // 竞争公司
  59. Intervention string `json:"intervention"` // 介入情况
  60. Remark string `json:"remark"` // 备注
  61. BidId int `json:"bidId"` // 客户招标Id
  62. BidInfo string `json:"bidInfo"` // 客户招标信息
  63. // 跟进日程
  64. //FollowTime *gtime.Time `json:"followTime" v:"required#跟进时间不能为空"` // 跟进时间
  65. //FollowUserId int `json:"followUserId"` // 关联跟进负责人
  66. //FollowUserName string `json:"followUserName"` // 跟进负责人姓名
  67. //FollowContent string `json:"followContent" v:"required#跟进内容不能为空"` // 跟进内容
  68. Products []BusinessProduct `json:"products" v:"required#产品列表不能为空"` // 产品列表
  69. //20230330 添加
  70. NextFollowTime *gtime.Time `json:"nextFollowTime"` // 下次联系时间
  71. FinalFollowTime *gtime.Time `json:"finalFollowTime"` // 最新跟进时间
  72. TechnicalSupportTime *gtime.Time `json:"technicalSupportTime"` // 技术支持时间
  73. TechnicalSupportName string `json:"technicalSupportName"` // 技术支持人员
  74. TechnicalSupportContent string `json:"technicalSupportContent"` // 技术支持内容
  75. ParentReceiver string `json:"parentReceiver"` // 总部对接人
  76. CapitalSource string `json:"capitalSource"` // 资金来源
  77. NboBudgetTime *gtime.Time `json:"nboBudgetTime"` // 项目预算期限
  78. ProductSatisfaction string `json:"productSatisfaction"` // 产品/方案满足情况
  79. PurchasingWay string `json:"purchasingWay"` // 采购方式
  80. PurchasingTime *gtime.Time `json:"purchasingTime"` // 采购时间
  81. MakerName string `json:"makerName"` // 决策人员
  82. MakerDept string `json:"makerDept"` // 决策部门
  83. DealerSalesName string `json:"dealerSalesName"` // 经销商销售人员
  84. Accendant string `json:"accendant"` // 维护部门及人员
  85. IsAdoptDashoo string `json:"isAdoptDashoo"` // 是否采纳大数技术参数
  86. }
  87. type UpdateProjBusinessReq struct {
  88. Id int `p:"id" v:"required# id不能为空"`
  89. *AddProjBusinessReq
  90. }
  91. // BusinessProduct 项目产品
  92. type BusinessProduct struct {
  93. Id int `json:"id"` // 主键
  94. BusId int `json:"busId"` // 关联项目
  95. ProdId int `json:"prodId" v:"required|min:1#|关联产品不能为空"` // 关联产品
  96. ProdName string `json:"prodName" v:"required#产品名称不能为空"` // 产品名称
  97. ProdCode string `json:"prodCode" v:"required#产品编码不能为空"` // 产品编码
  98. ProdClass string `json:"prodClass" v:"required#产品类别不能为空"` // 产品类别
  99. ProdNum int `json:"prodNum" v:"required#产品数量不能为空"` // 产品数量
  100. ProdPrice float64 `json:"prodPrice" v:"required#产品售价不能为空"` // 产品售价
  101. GuidPrice float64 `json:"guidPrice"` // 建议成交价
  102. ProdUnit string `json:"prodUnit"` // 产品单位
  103. TotalPrice int `json:"totalPrice"` // 总价
  104. Remark string `json:"remark"` // 备注
  105. }
  106. // BusinessUpgradeReq 项目升级请求
  107. type BusinessUpgradeReq struct {
  108. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  109. NboType string `json:"nboType" v:"required|in:10,20,30#项目级别不能为空|项目级别错误"` // 项目级别
  110. NboBudget float64 `json:"nboBudget" v:"required-unless:nboType,30#项目预算不能为空"` // 项目预算
  111. DistributorId int `json:"distributorId" ` // 经销商/代理商ID
  112. DistributorName string `json:"distributorName" ` // 经销商/代理商名称
  113. TechnicalSupportName string `json:"technicalSupportName" v:"required-unless:nboType,30#技术支持人员不能为空"` // 技术支持人员
  114. TechnicalSupportContent string `json:"technicalSupportContent" v:"required-unless:nboType,30#技术支持内容不能为空"` // 技术支持内容
  115. TechnicalSupportTime *gtime.Time `json:"technicalSupportTime" v:"required-unless:nboType,30#技术支持时间不能为空"` // 技术支持时间
  116. //CustomerSatisfaction string `json:"customerSatisfaction"` // 客户满意度 (10很满意、20满意、30较满意、40一般、50不满意)
  117. ParentReceiver string `json:"parentReceiver"` // 总部对接人
  118. NboBudgetTime *gtime.Time `json:"nboBudgetTime"` // 项目预算期限
  119. CapitalSource string `json:"capitalSource"` // 资金来源
  120. ProductSatisfaction string `json:"productSatisfaction"` // 产品/方案满足情况
  121. PurchasingWay string `json:"purchasingWay" v:"required-if:nboType,10#采购方式不能为空"` // 采购方式
  122. PurchasingTime *gtime.Time `json:"purchasingTime" v:"required-if:nboType,10#采购时间不能为空"` // 采购时间
  123. IsAdoptDashoo string `json:"isAdoptDashoo" v:"required-if:nboType,10#是否采纳大数技术参数不能为空"` // 是否采纳大数技术参数(上传附件)
  124. MakerId int `json:"makerId"` // 关联决策人
  125. MakerName string `json:"makerName"` // 决策人姓名
  126. MakerDept string `json:"makerDept"` // 决策人部门
  127. HistoricalTransactionInfo string `json:"historicalTransactionInfo"` // 经销商与客户历史成交信息
  128. DealerSalesId int `json:"dealerSalesId"` // 关联经销商销售
  129. DealerSalesName string `json:"dealerSalesName"` // 经销商销售人员
  130. Accendant string `json:"accendant"` // 维护部门及人员
  131. Remark string `json:"remark"` // 备注
  132. ProjConversionReason string `json:"projConversionReason" v:"required-if:nboType,30#转化原因不能为空"` // 项目转化原因
  133. QuotationFile string `json:"quotationFile"` // 报价单文件
  134. DashooParamFile string `json:"dashooParamFile"` // 大数参数文件
  135. }
  136. // BusinessDowngradeReq 项目降级请求
  137. type BusinessDowngradeReq struct {
  138. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  139. NboType string `json:"nboType" v:"required|in:10,20,30,50#项目级别不能为空|项目级别错误"` // 项目级别
  140. TechnicalSupportName string `json:"technicalSupportName"` // 技术支持人员
  141. TechnicalSupportContent string `json:"technicalSupportContent"` // 技术支持内容
  142. TechnicalSupportTime *gtime.Time `json:"technicalSupportTime"` // 技术支持时间
  143. Remark string `json:"remark" v:"required# 降级原因不能为空"` // 备注原因
  144. }
  145. // BusinessTransferReq 项目转移请求
  146. type BusinessTransferReq struct {
  147. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  148. UserId int `json:"userId" v:"required# 负责人不能为空"` // 负责人
  149. UserName string `json:"userName" v:"required# 负责人不能为空"` // 负责人
  150. Remark string `json:"remark"` // 备注
  151. }
  152. // BusinessToReserveReq 项目转为储备项目
  153. type BusinessToReserveReq struct {
  154. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  155. ProjConversionReason string `json:"projConversionReason" v:"required# 项目转化原因不能为空"` // 项目转化原因
  156. }
  157. // BusinessPrimacyContactReq 设置首要联系人请求
  158. type BusinessPrimacyContactReq struct {
  159. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  160. ContactId int `json:"contactId" v:"required#关联联系人不能为空"` // 关联联系人
  161. ContactName string `json:"contactName" v:"required#联系人姓名不能为空"` // 联系人姓名
  162. ContactPostion string `json:"contactPostion"` // 联系人岗位
  163. ContactTelephone string `json:"contactTelephone"` // 联系人电话
  164. Remark string `json:"remark"` // 备注
  165. }
  166. // UpdateBusinessStatusReq 更新项目状态请求
  167. type UpdateBusinessStatusReq struct {
  168. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  169. NboStatus string `json:"nboStatus" v:"required|in:10,20,30# 项目状态不能为空|项目状态不存在"` // 项目状态
  170. Remark string `json:"remark"` // 备注
  171. }
  172. // BusinessReq 获取项目关联信息
  173. type BusinessReq struct {
  174. BusId int64 `json:"busId" v:"required|min:1#|关联项目不能为空"` // 主键
  175. request.PageReq
  176. }
  177. // BusinessDynamicsReq 获取项目关联信息
  178. type BusinessDynamicsReq struct {
  179. BusId int64 `json:"busId" v:"required|min:1#|关联项目不能为空"` // 主键
  180. OpnType string `json:"opnType"` // 操作类型
  181. request.PageReq
  182. }