// ========================================================================== // Software Delivery Task Model - Contains DTOs and constants for ops_event_task // ========================================================================== package opsdev import ( "dashoo.cn/opms_libary/request" "dashoo.cn/opms_parent/app/model/opsdev/internal" "github.com/gogf/gf/os/gtime" ) // OpsEventTask is the golang structure for table ops_event_task. type OpsEventTask internal.OpsEventTask // Task Status Constants const ( TaskStatusTodo = "10" // 待处理 TaskStatusProcessing = "20" // 处理中 TaskStatusPaused = "25" // 暂停 TaskStatusCompleted = "30" // 已完成 TaskStatusBlocked = "70" // 阻塞 TaskStatusCancelled = "90" // 作废 ) // Task Type Constants const ( TaskTypeReqReview = "10" // 需求评审 TaskTypeFeatureDev = "20" // 功能开发 TaskTypeFeatureTest = "30" // 功能测试 TaskTypeBug = "35" // BUG TaskTypeSystemRelease = "40" // 系统发版 TaskTypeSystemReleaseEvt = "38" // 系统发版(事件关联自动创建) TaskTypeHardwareDeliver = "42" // 硬件发货 TaskTypeHardwareInstall = "41" // 硬件安装 ) // Priority Constants const ( PriorityUrgent = "10" // 紧急 PriorityHigh = "20" // 高 PriorityMedium = "30" // 中 PriorityLow = "40" // 低 ) // Event Type Constants (for EventId reference) const ( EventTypeDelivery = "10" // 交付 EventTypeOps = "20" // 运维 ) // Attachment 附件信息 type Attachment struct { FileName string `json:"fileName"` // 文件名 FileUrl string `json:"fileUrl"` // 文件URL FileType string `json:"fileType"` // 文件类型 } // OpsEventTaskSearchReq 任务列表查询请求 type OpsEventTaskSearchReq struct { request.PageReq ProjectId int `json:"projectId"` // 项目ID EventId int `json:"eventId"` // 关联事件ID TaskTitle string `json:"taskTitle"` // 任务标题(模糊查询) TaskType []string `json:"taskType"` // 任务类型(多选) TaskStatus []string `json:"taskStatus"` // 任务状态(多选) Priority []string `json:"priority"` // 优先级(多选) OpsUserName []string `json:"opsUserName"` // 执行人姓名(多选) SortFields []SortField `json:"sortFields"` // 排序字段 // 计划结束日期范围 PlanEndDateStart string `json:"planEndDateStart"` // 计划结束开始日期 PlanEndDateEnd string `json:"planEndDateEnd"` // 计划结束结束日期 // 创建日期范围 CreatedTimeStart string `json:"createdTimeStart"` // 创建开始日期 CreatedTimeEnd string `json:"createdTimeEnd"` // 创建结束日期 // 完成日期范围 CompleteTimeStart string `json:"completeTimeStart"` // 完成开始日期 CompleteTimeEnd string `json:"completeTimeEnd"` // 完成结束日期 // 发布版本为空查询(用于发版任务选择未发版任务) ReleaseVersionEmpty bool `json:"releaseVersionEmpty"` // 是否查询release_version为空的任务 } // OpsEventTaskAddReq 新增任务请求 type OpsEventTaskAddReq struct { ProjectId int `json:"projectId" v:"required#项目ID不能为空"` // 项目ID TaskTitle string `json:"taskTitle" v:"required#任务标题不能为空"` // 任务标题 TaskDesc string `json:"taskDesc" v:"required#任务描述不能为空"` // 任务描述 FunctionName string `json:"functionName" v:"required#功能模块不能为空"` // 功能模块 TaskType string `json:"taskType" v:"required#任务类型不能为空"` // 任务类型 Priority string `json:"priority" v:"required#优先级不能为空"` // 优先级 OpsUserId int `json:"opsUserId"` // 执行人ID OpsUserName string `json:"opsUserName"` // 执行人姓名 PlanStartTime string `json:"planStartTime"` // 计划开始时间 PlanEndTime string `json:"planEndTime"` // 计划结束时间 EstimateWorkHour float64 `json:"estimateWorkHour"` // 预估工作量(小时) DefectType string `json:"defectType"` // 缺陷类型(10前端 20后端) ReleaseVersion string `json:"releaseVersion"` // 发布版本 Remark string `json:"remark"` // 备注 EventId int `json:"eventId"` // 关联事件ID EventType string `json:"eventType"` // 关联事件类型 TaskParentId int `json:"taskParentId"` // 父任务ID Attribute2 string `json:"attribute2"` // 历史遗留(10-是 20-否) Attachments []Attachment `json:"attachments"` // 附件列表 } // OpsEventTaskUpdateReq 更新任务请求 type OpsEventTaskUpdateReq struct { Id int `json:"id" v:"required#任务ID不能为空"` // 任务ID TaskTitle string `json:"taskTitle"` // 任务标题 TaskDesc string `json:"taskDesc"` // 任务描述 FunctionName string `json:"functionName"` // 功能模块 TaskType string `json:"taskType"` // 任务类型 Priority string `json:"priority"` // 优先级 OpsUserId int `json:"opsUserId"` // 执行人ID OpsUserName string `json:"opsUserName"` // 执行人姓名 PlanStartTime string `json:"planStartTime"` // 计划开始时间 PlanEndTime string `json:"planEndTime"` // 计划结束时间 EstimateWorkHour float64 `json:"estimateWorkHour"` // 预估工作量(小时) DefectType string `json:"defectType"` // 缺陷类型(10前端 20后端) ReleaseVersion string `json:"releaseVersion"` // 发布版本 Remark string `json:"remark"` // 备注 Attribute2 string `json:"attribute2"` // 历史遗留(10-是 20-否) } // OpsEventTaskScheduleReq 任务排期请求 type OpsEventTaskScheduleReq struct { Id int `json:"id" v:"required#任务ID不能为空"` // 任务ID OpsUserId int `json:"opsUserId" v:"required#执行人不能为空"` // 执行人ID OpsUserName string `json:"opsUserName" v:"required#执行人姓名不能为空"` // 执行人姓名 PlanStartTime string `json:"planStartTime" v:"required#计划开始时间不能为空"` // 计划开始时间 PlanEndTime string `json:"planEndTime" v:"required#计划结束时间不能为空"` // 计划结束时间 EstimateWorkHour float64 `json:"estimateWorkHour"` // 预估工作量(小时) } // OpsEventTaskCompleteReq 任务完成请求 type OpsEventTaskCompleteReq struct { Id int `json:"id" v:"required#任务ID不能为空"` // 任务ID ActualWorkHour float64 `json:"actualWorkHour"` // 实际工作量(小时) Remark string `json:"remark"` // 完成备注 Attachments []Attachment `json:"attachments"` // 附件列表 TestResult string `json:"testResult"` // 测试结果:pass-通过,fail-不通过(仅功能测试任务有效) DevTaskIds []int `json:"devTaskIds"` // 关联的研发任务ID列表(仅系统发版任务有效) IsReleaseComplete bool `json:"isReleaseComplete"` // 是否系统发版完成操作 } // OpsEventTaskPauseReq 任务暂停请求 type OpsEventTaskPauseReq struct { Id int `json:"id" v:"required#任务ID不能为空"` // 任务ID Remark string `json:"remark"` // 暂停原因 } // OpsEventTaskBlockReq 任务阻塞请求 type OpsEventTaskBlockReq struct { Id int `json:"id" v:"required#任务ID不能为空"` // 任务ID Remark string `json:"remark"` // 阻塞原因 } // OpsEventTaskCancelReq 任务作废请求 type OpsEventTaskCancelReq struct { Id int `json:"id" v:"required#任务ID不能为空"` // 任务ID Remark string `json:"remark"` // 作废原因 } // OpsEventTaskStartReq 任务开始请求 type OpsEventTaskStartReq struct { Id int `json:"id" v:"required#任务ID不能为空"` // 任务ID } // OpsEventTaskDeleteReq 任务删除请求 type OpsEventTaskDeleteReq struct { Ids []int64 `json:"ids" v:"required#请选择需要删除的任务"` // 任务ID列表 } // OpsEventTaskRsp 任务响应结构体 type OpsEventTaskRsp struct { Id int `json:"id"` // 任务ID TaskNo string `json:"taskNo"` // 任务编号 EventId int `json:"eventId"` // 关联事件ID EventType string `json:"eventType"` // 关联事件类型 ProjectId int `json:"projectId"` // 项目ID TaskTitle string `json:"taskTitle"` // 任务标题 TaskDesc string `json:"taskDesc"` // 任务描述 TaskType string `json:"taskType"` // 任务类型 TaskStatus string `json:"taskStatus"` // 任务状态 OpsUserId int `json:"opsUserId"` // 执行人ID OpsUserName string `json:"opsUserName"` // 执行人姓名 PlanStartTime *gtime.Time `json:"planStartTime"` // 计划开始时间 PlanEndTime *gtime.Time `json:"planEndTime"` // 计划结束时间 CompleteTime *gtime.Time `json:"completeTime"` // 完成时间 EstimateWorkHour float64 `json:"estimateWorkHour"` // 预估工作量(小时) ActualWorkHour float64 `json:"actualWorkHour"` // 实际工作量(小时) TaskParentId int `json:"taskParentId"` // 父任务ID Priority string `json:"priority"` // 优先级 Remark string `json:"remark"` // 备注 CreatedBy int `json:"createdBy"` // 创建人ID CreatedName string `json:"createdName"` // 创建人 CreatedTime *gtime.Time `json:"createdTime"` // 创建时间 UpdatedBy int `json:"updatedBy"` // 更新人ID UpdatedName string `json:"updatedName"` // 更新人 UpdatedTime *gtime.Time `json:"updatedTime"` // 更新时间 // 扩展字段 FunctionName string `json:"functionName"` // 功能模块 DefectType string `json:"defectType"` // 缺陷类型 ReleaseVersion string `json:"releaseVersion"` // 发布版本 Attribute2 string `json:"attribute2"` // 历史遗留(10-是 20-否) // 关联信息 ProjectName string `json:"projectName"` // 项目名称 ContractNo string `json:"contractNo"` // 合同编号 } // OpsEventTaskRecordSearchReq 任务过程记录查询请求 type OpsEventTaskRecordSearchReq struct { TaskId int `json:"taskId" v:"required#任务ID不能为空"` // 任务ID } // OpsEventTaskRecordAddReq 添加任务过程记录请求 type OpsEventTaskRecordAddReq struct { TaskId int `json:"taskId" v:"required#任务ID不能为空"` // 任务ID HandleContent string `json:"handleContent"` // 处理内容 Attachments []Attachment `json:"attachments"` // 附件列表 } // OpsEventTaskRecordWithAttachments 任务过程记录(带附件) type OpsEventTaskRecordWithAttachments struct { OpsEventTaskRecord Attachments []*OpsEventTaskAttachment `json:"attachments"` // 附件列表 } // IdReq ID请求 type IdReq struct { Id int `json:"id" v:"required#ID不能为空"` // ID } // OpsEventTaskReleaseListReq 查询发布版本关联任务请求 type OpsEventTaskReleaseListReq struct { ReleaseTaskId int `json:"releaseTaskId" v:"required#发版任务ID不能为空"` // 发版任务ID } // OpsEventTaskReleaseRsp 发布版本关联任务响应 type OpsEventTaskReleaseRsp struct { Id int `json:"id"` // 关联记录ID DevTaskId int `json:"devTaskId"` // 开发任务ID TaskNo string `json:"taskNo"` // 任务编号 TaskTitle string `json:"taskTitle"` // 任务标题 TaskType string `json:"taskType"` // 任务类型 TaskStatus string `json:"taskStatus"` // 任务状态 OpsUserName string `json:"opsUserName"` // 执行人姓名 ProjectId int `json:"projectId"` // 项目ID CreatedTime string `json:"createdTime"` // 创建时间 } // OpsEventTaskWorkHourAddReq 添加工时登记请求 type OpsEventTaskWorkHourAddReq struct { TaskId int `json:"taskId" v:"required#任务ID不能为空"` // 任务ID WorkDate string `json:"workDate" v:"required#工作日期不能为空"` // 工作日期 ActualHour float64 `json:"actualHour" v:"required#实际工时不能为空"` // 实际工时 Remark string `json:"remark" v:"required#工作进展不能为空"` // 工作进展 } // OpsEventTaskWorkHourListReq 查询工时登记列表请求 type OpsEventTaskWorkHourListReq struct { TaskId int `json:"taskId" v:"required#任务ID不能为空"` // 任务ID } // OpsEventTaskWorkHourRsp 工时登记响应 type OpsEventTaskWorkHourRsp struct { Id int `json:"id"` // ID TaskId int `json:"taskId"` // 任务ID WorkDate string `json:"workDate"` // 工作日期 ActualHour float64 `json:"actualHour"` // 实际工时 Remark string `json:"remark"` // 工作进展 CreatedName string `json:"createdName"` // 登记人 CreatedTime string `json:"createdTime"` // 登记时间 }