project_inventory.go 6.5 KB

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