project_inventory.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package opsdev
  2. import (
  3. "dashoo.cn/opms_parent/app/model/opsdev/internal"
  4. )
  5. // ProjectInventory 项目清单(复用 OpsDeliveryProject 结构)
  6. type ProjectInventory internal.OpsDeliveryProject
  7. // ProjectInventorySearchReq 项目清单查询请求
  8. type ProjectInventorySearchReq struct {
  9. PageNum int `json:"pageNum" form:"pageNum"` // 页码
  10. PageSize int `json:"pageSize" form:"pageSize"` // 每页条数
  11. ContractNo string `json:"contractNo" form:"contractNo"` // 合同编号
  12. ProjectName string `json:"projectName" form:"projectName"` // 项目名称
  13. ProductLine string `json:"productLine" form:"productLine"` // 产品线
  14. ProjectStatus string `json:"projectStatus" form:"projectStatus"` // 项目状态
  15. DeliveryNode string `json:"deliveryNode" form:"deliveryNode"` // 交付节点
  16. DeliveryUserId int `json:"deliveryUserId" form:"deliveryUserId"` // 交付负责人ID
  17. SalesUserId int `json:"salesUserId" form:"salesUserId"` // 销售负责人ID
  18. PlanDeliveryTimeStart string `json:"planDeliveryTimeStart" form:"planDeliveryTimeStart"` // 计划交付时间开始
  19. PlanDeliveryTimeEnd string `json:"planDeliveryTimeEnd" form:"planDeliveryTimeEnd"` // 计划交付时间结束
  20. PlanAcceptTimeStart string `json:"planAcceptTimeStart" form:"planAcceptTimeStart"` // 计划验收时间开始
  21. PlanAcceptTimeEnd string `json:"planAcceptTimeEnd" form:"planAcceptTimeEnd"` // 计划验收时间结束
  22. }
  23. // ProjectInventoryRsp 项目清单响应(包含合同金额信息)
  24. type ProjectInventoryRsp struct {
  25. Id int `json:"id" orm:"id"` // 主键
  26. ProjectName string `json:"projectName" orm:"project_name"` // 项目名称
  27. ProductLine string `json:"productLine" orm:"product_line"` // 产品线
  28. ProjectStatus string `json:"projectStatus" orm:"project_status"` // 项目状态
  29. DeliveryNode string `json:"deliveryNode" orm:"delivery_node"` // 交付节点
  30. DeliveryUserId int `json:"deliveryUserId" orm:"delivery_user_id"` // 交付负责人ID
  31. DeliveryUserName string `json:"deliveryUserName" orm:"delivery_user_name"` // 交付负责人
  32. SalesUserId int `json:"salesUserId" orm:"sales_user_id"` // 销售负责人ID
  33. SalesUserName string `json:"salesUserName" orm:"sales_user_name"` // 销售负责人
  34. PlanDeliveryTime string `json:"planDeliveryTime" orm:"plan_delivery_time"` // 计划交付时间
  35. PlanAcceptTime string `json:"planAcceptTime" orm:"plan_accept_time"` // 计划验收时间
  36. ContractId int `json:"contractId" orm:"contract_id"` // 合同ID
  37. ContractNo string `json:"contractNo" orm:"contract_no"` // 合同编号
  38. ContractAmount float64 `json:"contractAmount" orm:"contract_amount"` // 合同金额
  39. CollectedAmount float64 `json:"collectedAmount" orm:"collected_amount"` // 回款金额
  40. CustId string `json:"custId" orm:"cust_id"` // 客户ID
  41. CustName string `json:"custName" orm:"cust_name"` // 客户名称
  42. }
  43. // ProjectManagerReq 查询项目经理/交付经理请求
  44. type ProjectManagerReq struct {
  45. RoleType string `json:"roleType" form:"roleType"` // 角色类型:projectManager-项目经理, deliveryManager-交付经理
  46. }
  47. // ProjectManagerRsp 项目管理人员响应
  48. type ProjectManagerRsp struct {
  49. UserId int `json:"userId" orm:"user_id"` // 用户ID
  50. UserName string `json:"userName" orm:"user_name"` // 用户姓名
  51. NickName string `json:"nickName" orm:"nick_name"` // 用户昵称
  52. DeptName string `json:"deptName" orm:"dept_name"` // 部门名称
  53. RoleName string `json:"roleName" orm:"role_name"` // 角色名称
  54. }
  55. // ContractProductReq 查询合同产品请求
  56. type ContractProductReq struct {
  57. ContractId int `json:"contractId" form:"contractId" v:"required#合同ID不能为空"` // 合同ID
  58. }
  59. // ProjectInventoryExportReq 项目清单导出请求
  60. type ProjectInventoryExportReq struct {
  61. ProjectInventorySearchReq
  62. Columns []string `json:"columns"` // 导出列
  63. }
  64. // ProjectInventoryExportData 项目清单导出数据(用于 export 标签定义表头)
  65. type ProjectInventoryExportData struct {
  66. ContractNo string `json:"contractNo" export:"合同编号"`
  67. ProjectName string `json:"projectName" export:"项目名称"`
  68. ProductLine string `json:"productLine" export:"产品线"`
  69. ProjectStatus string `json:"projectStatus" export:"项目状态"`
  70. DeliveryNode string `json:"deliveryNode" export:"交付节点"`
  71. DeliveryUserName string `json:"deliveryUserName" export:"交付负责人"`
  72. SalesUserName string `json:"salesUserName" export:"销售负责人"`
  73. PlanDeliveryTime string `json:"planDeliveryTime" export:"计划交付时间"`
  74. PlanAcceptTime string `json:"planAcceptTime" export:"计划验收时间"`
  75. ContractAmount float64 `json:"contractAmount" export:"合同金额"`
  76. CollectedAmount float64 `json:"collectedAmount" export:"回款金额"`
  77. CustName string `json:"custName" export:"客户名称"`
  78. }
  79. // ProjectInventoryExportContent 项目清单导出内容
  80. type ProjectInventoryExportContent struct {
  81. Content string `json:"content"` // 导出内容(base64编码)
  82. }
  83. // ContractProductRsp 合同产品响应
  84. type ContractProductRsp struct {
  85. Id int `json:"id"` // 主键
  86. ContractId int `json:"contractId"` // 关联合同ID
  87. ContractCode string `json:"contractCode"` // 合同编号
  88. ProdId int `json:"prodId"` // 关联产品ID
  89. ProdCode string `json:"prodCode"` // 产品型号
  90. ProdName string `json:"prodName"` // 产品名称
  91. ProdClass string `json:"prodClass"` // 产品类别
  92. ProdNum int `json:"prodNum"` // 产品数量
  93. MaintTerm int `json:"maintTerm"` // 维保期
  94. SugSalesPrice float64 `json:"sugSalesPrice"` // 建议成交价
  95. TranPrice float64 `json:"tranPrice"` // 成交价格
  96. ContractPrive float64 `json:"contractPrive"` // 合同总价
  97. Remark string `json:"remark"` // 备注
  98. }