proj_business.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  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. CustId int `json:"custId"` // 客户名称
  16. CustName string `json:"custName"` // 客户名称
  17. SaleName string `json:"saleName"` // 销售姓名
  18. NboType string `json:"nboType"` // 项目类别(A类B类C类)
  19. ProductLine string `json:"productLine"` // 产品线
  20. NboSource string `json:"nboSource"` // 项目来源
  21. DistributorName string `json:"distributorName"` // 经销商/代理商名称
  22. //FilingTime *gtime.Time `json:"filingTime"` // 项目备案时间
  23. ProvinceId int `json:"provinceId"`
  24. request.PageReq
  25. }
  26. type ProjBusinessRes struct {
  27. ProjBusiness
  28. ContractAmount float64 `json:"contractAmount"` // 合同金额
  29. ProjClosingTime *gtime.Time `json:"projClosingTime"` // 合同金额
  30. FollowCount int `json:"followCount"` // 跟进次数
  31. QuotationFileList []*ProjBusinessFile `json:"quotationFileList" ` // 报价单文件
  32. Products []BusinessProduct `json:"products" ` // 产品列表
  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. ProductLine string `json:"productLine" v:"required#产品线不能为空"` // 产品线
  39. NboSource string `json:"nboSource" v:"required#项目来源不能为空"` // 项目来源
  40. BidId int `json:"bidId" v:"required-if:nboSource,80#客户招标不能为空"` // 客户招标Id
  41. BidInfo string `json:"bidInfo" v:"required-if:nboSource,80#客户招标信息不能为空"` // 客户招标信息
  42. SaleId int `json:"saleId" v:"required|min:1#|归属销售不能为空"` // 归属销售
  43. SaleName string `json:"saleName" v:"required#销售姓名不能为空"` // 销售姓名
  44. SalesModel string `json:"salesModel" v:"required|in:10,20,30#销售模式不能为空|销售模式不存在"` // 销售模式(10直销20经销30代理)
  45. DistributorId int `json:"distributorId" v:"required-unless:salesModel,10#经销商/代理商不能为空"` // 经销商/代理商ID
  46. DistributorName string `json:"distributorName" v:"required-unless:salesModel,10#经销商/代理商名称不能为空"` // 经销商/代理商名称
  47. NboType string `json:"nboType" v:"required|in:30,50#项目级别不能为空|项目级别错误"` // 项目级别
  48. IsBig string `json:"isBig" v:"required#是否大项目不能为空"` // 是否大项目
  49. Intervention string `json:"intervention" ` // 介入情况(科室)
  50. Remark string `json:"remark" ` // 备注
  51. }
  52. type UpdateProjBusinessReq struct {
  53. Id int `json:"id" ` // 主键
  54. NboType string `json:"nboType" ` // 项目级别
  55. // 创建
  56. NboName string `json:"nboName" ` // 项目名称
  57. CustId int `json:"custId" ` // 关联客户
  58. CustName string `json:"custName" ` // 客户名称
  59. ProductLine string `json:"productLine" ` // 产品线
  60. NboSource string `json:"nboSource" ` // 项目来源
  61. BidId int `json:"bidId" ` // 客户招标Id
  62. BidInfo string `json:"bidInfo" ` // 客户招标信息
  63. SaleId int `json:"saleId" ` // 归属销售
  64. SaleName string `json:"saleName" ` // 销售姓名
  65. SalesModel string `json:"salesModel" ` // 销售模式(10直销20经销30代理)
  66. DistributorId int `json:"distributorId" ` // 经销商/代理商ID
  67. DistributorName string `json:"distributorName" ` // 经销商/代理商名称
  68. IsBig string `json:"isBig" ` // 是否大项目
  69. // C => B
  70. NboBudget float64 `json:"nboBudget" ` // 项目预算
  71. DealerSalesId int `json:"dealerSalesId" ` // 关联经销商销售
  72. DealerSalesName string `json:"dealerSalesName" ` // 经销商销售名称
  73. DealerSalesContact string `json:"dealerSalesContact" ` // 经销商销售电话/微信
  74. EstTransPrice float64 `json:"estTransPrice" ` // 预计出货金额
  75. //QuotationFile string `json:"quotationFile" v:"required#报价单文件不能为空"` // 报价单文件
  76. Products []BusinessProduct `json:"products" ` // 产品列表
  77. // B => A
  78. PurchasingWay string `json:"purchasingWay" ` // 采购方式
  79. CapitalSource string `json:"capitalSource" ` // 资金来源
  80. PlanPurchaseTime *gtime.Time `json:"planPurchaseTime" ` // 计划采购时间
  81. ContactId int `json:"contactId" ` // 关联联系人
  82. ContactName string `json:"contactName" ` // 联系人姓名
  83. ContactTelephone string `json:"contactTelephone" ` // 联系人电话
  84. //ContactWechat string `json:"contactWechat" v:"required#联系人微信不能为空"` // 联系人微信
  85. //MakerId int `json:"makerId" v:"required|min:1#|关联决策人不能为空"` // 关联决策人
  86. MakerName string `json:"makerName" ` // 决策人姓名
  87. MakerDept string `json:"makerDept" ` // 决策人部门
  88. //IsAdoptDashoo string `json:"isAdoptDashoo" v:"required#是否采纳大数技术参数不能为空"` // 是否采纳大数技术参数(上传附件)
  89. //DashooParamFile string `json:"dashooParamFile" v:"required-if:isAdoptDashoo,10#大数参数文件不能为空"` // 大数参数文件
  90. Competitor string `json:"competitor" ` // 竞争公司
  91. CustomerIntentionFactory string `json:"customerIntentionFactory" ` // 客户倾向厂家
  92. Remark string `json:"remark" ` // 备注
  93. }
  94. // 必填原因注释
  95. //type UpdateProjBusinessReq struct {
  96. // Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  97. // NboType string `json:"nboType" v:"required|in:10,20,30#项目级别不能为空|项目级别错误"` // 项目级别
  98. // // 创建
  99. // NboName string `json:"nboName" v:"required#项目名称不能为空"` // 项目名称
  100. // CustId int `json:"custId" v:"required|min:1#|关联客户不能为空"` // 关联客户
  101. // CustName string `json:"custName" v:"required#关联客户不能为空"` // 客户名称
  102. // ProductLine string `json:"productLine" v:"required#产品线不能为空"` // 产品线
  103. // NboSource string `json:"nboSource" v:"required#项目来源不能为空"` // 项目来源
  104. // BidId int `json:"bidId" v:"required-if:nboSource,80#客户招标不能为空"` // 客户招标Id
  105. // BidInfo string `json:"bidInfo" v:"required-if:nboSource,80#客户招标信息不能为空"` // 客户招标信息
  106. // SaleId int `json:"saleId" v:"required|min:1#|归属销售不能为空"` // 归属销售
  107. // SaleName string `json:"saleName" v:"required#销售姓名不能为空"` // 销售姓名
  108. // SalesModel string `json:"salesModel" v:"required|in:10,20,30#销售模式不能为空|销售模式错误"` // 销售模式(10直销20经销30代理)
  109. // DistributorId int `json:"distributorId" v:"required-unless:salesModel,10|min:1#|经销商/代理商不能为空"` // 经销商/代理商ID
  110. // DistributorName string `json:"distributorName" v:"required-unless:salesModel,10#经销商/代理商名称不能为空"` // 经销商/代理商名称
  111. // IsBig string `json:"isBig" v:"required#是否大项目不能为空"` // 是否大项目
  112. //
  113. // // C => B
  114. // NboBudget float64 `json:"nboBudget" v:"required|min:1#|项目预算不能为空"` // 项目预算
  115. // DealerSalesId int `json:"dealerSalesId" v:"required-with:distributorName#|经销商销售不能为空"` // 关联经销商销售
  116. // DealerSalesName string `json:"dealerSalesName" v:"required-with:distributorName#经销商销售名称不能为空"` // 经销商销售名称
  117. // DealerSalesContact string `json:"dealerSalesContact" v:"required-with:distributorName#经销商销售电话不能为空"` // 经销商销售电话/微信
  118. // EstTransPrice float64 `json:"estTransPrice" v:"required#预计出货金额不能为空"` // 预计出货金额
  119. // //QuotationFile string `json:"quotationFile" v:"required#报价单文件不能为空"` // 报价单文件
  120. // Products []BusinessProduct `json:"products" v:"required#产品列表不能为空"` // 产品列表
  121. // // B => A
  122. // PurchasingWay string `json:"purchasingWay" v:"required#采购方式不能为空"` // 采购方式
  123. // CapitalSource string `json:"capitalSource" v:"required#资金来源不能为空"` // 资金来源
  124. // PlanPurchaseTime *gtime.Time `json:"planPurchaseTime" v:"required#计划采购时间不能为空"` // 计划采购时间
  125. // ContactId int `json:"contactId" v:"required|min:1#|联系人不能为空"` // 关联联系人
  126. // ContactName string `json:"contactName" v:"required#联系人姓名不能为空"` // 联系人姓名
  127. // ContactTelephone string `json:"contactTelephone" v:"required#联系人电话不能为空"` // 联系人电话
  128. // //ContactWechat string `json:"contactWechat" v:"required#联系人微信不能为空"` // 联系人微信
  129. // //MakerId int `json:"makerId" v:"required|min:1#|关联决策人不能为空"` // 关联决策人
  130. // MakerName string `json:"makerName" v:"required#决策人姓名不能为空"` // 决策人姓名
  131. // MakerDept string `json:"makerDept" v:"required#决策人部门不能为空"` // 决策人部门
  132. // //IsAdoptDashoo string `json:"isAdoptDashoo" v:"required#是否采纳大数技术参数不能为空"` // 是否采纳大数技术参数(上传附件)
  133. // //DashooParamFile string `json:"dashooParamFile" v:"required-if:isAdoptDashoo,10#大数参数文件不能为空"` // 大数参数文件
  134. // Competitor string `json:"competitor" v:"required#竞争公司不能为空"` // 竞争公司
  135. // CustomerIntentionFactory string `json:"customerIntentionFactory" v:"required#客户倾向厂家不能为空"` // 客户倾向厂家
  136. // Remark string `json:"remark" ` // 备注
  137. //}
  138. // BusinessProduct 项目产品
  139. type BusinessProduct struct {
  140. Id int `json:"id"` // 主键
  141. BusId int `json:"busId"` // 关联项目
  142. ProdId int `json:"prodId" v:"required|min:1#|关联产品不能为空"` // 关联产品
  143. ProdName string `json:"prodName" v:"required#产品名称不能为空"` // 产品名称
  144. ProdCode string `json:"prodCode" v:"required#产品编码不能为空"` // 产品编码
  145. ProdClass string `json:"prodClass" v:"required#产品类别不能为空"` // 产品类别
  146. ProdNum int `json:"prodNum" v:"required#产品数量不能为空"` // 产品数量
  147. ProdPrice float64 `json:"prodPrice" v:"required#产品售价不能为空"` // 产品售价
  148. GuidPrice float64 `json:"guidPrice"` // 建议成交价
  149. ProdUnit string `json:"prodUnit"` // 产品单位
  150. TotalPrice int `json:"totalPrice"` // 总价
  151. Remark string `json:"remark"` // 备注
  152. }
  153. // BusinessUpgradeReq 项目升级请求
  154. type BusinessUpgradeReq struct {
  155. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  156. NboType string `json:"nboType" v:"required|in:10,20,30#项目级别不能为空|项目级别错误"` // 项目级别
  157. // C => B
  158. NboBudget float64 `json:"nboBudget" v:"required-unless:nboType,30#项目预算不能为空"` // 项目预算
  159. SalesModel string `json:"salesModel" v:"required-unless:nboType,30|in:10,20,30#销售模式不能为空|销售模式错误"` // 销售模式(10直销20经销30代理)
  160. DealerSalesId int `json:"dealerSalesId" v:"required-unless:nboType,30,salesModel,10#经销商销售不能为空"` // 关联经销商销售
  161. DealerSalesName string `json:"dealerSalesName" v:"required-unless:nboType,30,salesModel,10#经销商销售名称不能为空"` // 经销商销售名称
  162. DealerSalesContact string `json:"dealerSalesContact" v:"required-unless:nboType,30,salesModel,10#经销商销售电话/微信不能为空"` // 经销商销售电话/微信
  163. EstTransPrice float64 `json:"estTransPrice" v:"required-unless:nboType,30#预计出货金额不能为空"` // 预计出货金额
  164. QuotationFile string `json:"quotationFile" v:"required-unless:nboType,30#报价单文件不能为空"` // 报价单文件
  165. Products []BusinessProduct `json:"products" v:"required-unless:nboType,30#产品列表不能为空"` // 产品列表
  166. // B => A
  167. PurchasingWay string `json:"purchasingWay" v:"required-if:nboType,10#采购方式不能为空"` // 采购方式
  168. CapitalSource string `json:"capitalSource" v:"required-if:nboType,10#资金来源不能为空"` // 资金来源
  169. PlanPurchaseTime *gtime.Time `json:"planPurchaseTime" v:"required-if:nboType,10#计划采购时间不能为空"` // 计划采购时间
  170. ContactId int `json:"contactId" v:"required-if:nboType,10#联系人不能为空"` // 关联联系人
  171. ContactName string `json:"contactName" v:"required-if:nboType,10#联系人姓名不能为空"` // 联系人姓名
  172. ContactTelephone string `json:"contactTelephone" v:"required-if:nboType,10#联系人电话不能为空"` // 联系人电话
  173. MakerId int `json:"makerId" v:"required-if:nboType,10#关联决策人不能为空"` // 关联决策人
  174. MakerName string `json:"makerName" v:"required-if:nboType,10#决策人姓名不能为空"` // 决策人姓名
  175. MakerDept string `json:"makerDept" v:"required-if:nboType,10#决策人部门不能为空"` // 决策人部门
  176. IsAdoptDashoo string `json:"isAdoptDashoo" v:"required-if:nboType,10#是否采纳大数技术参数不能为空"` // 是否采纳大数技术参数(上传附件)
  177. DashooParamFile string `json:"dashooParamFile" v:"required-if:isAdoptDashoo,10#大数参数文件不能为空"` // 大数参数文件
  178. Competitor string `json:"competitor" v:"required-if:nboType,10#竞争公司不能为空"` // 竞争公司
  179. CustomerIntentionFactory string `json:"customerIntentionFactory" v:"required-if:nboType,10#客户倾向厂家不能为空"` // 客户倾向厂家
  180. // 储备 => C
  181. ProjConversionReason string `json:"projConversionReason" v:"required-if:nboType,30#转化原因不能为空"` // 项目转化原因
  182. Remark string `json:"remark"` // 备注
  183. }
  184. // BusinessDowngradeReq 项目降级请求
  185. type BusinessDowngradeReq struct {
  186. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  187. NboType string `json:"nboType" v:"required|in:10,20,30,50#项目级别不能为空|项目级别错误"` // 项目级别
  188. Remark string `json:"remark" v:"required# 降级原因不能为空"` // 备注原因
  189. }
  190. // BusinessTransferReq 项目转移请求
  191. type BusinessTransferReq struct {
  192. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  193. UserId int `json:"userId" v:"required# 负责人不能为空"` // 负责人
  194. UserName string `json:"userName" v:"required# 负责人不能为空"` // 负责人
  195. Remark string `json:"remark"` // 备注
  196. }
  197. // SysAdminBusinessTransferReq 系统管理员项目转移请求
  198. type SysAdminBusinessTransferReq struct {
  199. Ids []int `json:"ids" v:"required# ids不能为空"` // 主键
  200. UserId int `json:"userId" v:"required# 负责人不能为空"` // 负责人
  201. UserName string `json:"userName" v:"required# 负责人不能为空"` // 负责人
  202. Remark string `json:"remark"` // 备注
  203. }
  204. // BusinessToReserveReq 项目转为储备项目
  205. type BusinessToReserveReq struct {
  206. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  207. ProjConversionReason string `json:"projConversionReason" v:"required# 项目转化原因不能为空"` // 项目转化原因
  208. }
  209. // BusinessPrimacyContactReq 设置首要联系人请求
  210. type BusinessPrimacyContactReq struct {
  211. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  212. ContactId int `json:"contactId" v:"required#关联联系人不能为空"` // 关联联系人
  213. ContactName string `json:"contactName" v:"required#联系人姓名不能为空"` // 联系人姓名
  214. ContactPostion string `json:"contactPostion"` // 联系人岗位
  215. ContactTelephone string `json:"contactTelephone"` // 联系人电话
  216. Remark string `json:"remark"` // 备注
  217. }
  218. // UpdateBusinessStatusReq 更新项目状态请求
  219. type UpdateBusinessStatusReq struct {
  220. Id int `json:"id" v:"required|min:1#|id不能为空"` // 主键
  221. NboStatus string `json:"nboStatus" v:"required|in:10,20,30# 项目状态不能为空|项目状态不存在"` // 项目状态
  222. Remark string `json:"remark"` // 备注
  223. }
  224. // BusinessReq 获取项目关联信息
  225. type BusinessReq struct {
  226. BusId int64 `json:"busId" v:"required|min:1#|关联项目不能为空"` // 主键
  227. request.PageReq
  228. }
  229. // BusinessDynamicsReq 获取项目关联信息
  230. type BusinessDynamicsReq struct {
  231. BusId int64 `json:"busId" v:"required|min:1#|关联项目不能为空"` // 主键
  232. OpnType string `json:"opnType"` // 操作类型
  233. request.PageReq
  234. }
  235. type SetBusinessContactReq struct {
  236. BusId int `json:"busId" ` // 关联项目
  237. ContactId int `json:"contactIds" ` // 联系人主键
  238. ContactType string `json:"contactType" ` // 联系人类型
  239. }