package services import ( "fmt" "server/models" "time" ) // ListOATasks 服务层:分页查询任务 func ListOATasks(tenantId int, keyword, status, priority string, page, pageSize int) (tasks []*models.Task, total int64, err error) { return models.ListTasks(tenantId, keyword, status, priority, page, pageSize) } // GetOATaskById 服务层:获取任务详情 func GetOATaskById(id int) (*models.Task, error) { return models.GetTaskById(id) } // CreateOATask 服务层:创建任务 func CreateOATask(t *models.Task, tenantId int, username string) error { // 填充租户 if t.TenantId == 0 && tenantId > 0 { t.TenantId = tenantId } // 默认状态与优先级 if t.TaskStatus == "" { t.TaskStatus = "" } if t.Priority == "" { t.Priority = "" } // 任务编号 if t.TaskNo == "" { t.TaskNo = genTaskNo(t.TenantId) } // 创建人与操作人 if t.CreatorName == "" && username != "" { t.CreatorName = username } if t.OperatorName == "" && username != "" { t.OperatorName = username } return models.CreateTask(t) } // UpdateOATask 服务层:更新任务 func UpdateOATask(t *models.Task, username string, cols ...string) error { if username != "" { t.OperatorName = username } return models.UpdateTask(t, cols...) } // DeleteOATask 服务层:软删除任务 func DeleteOATask(id int, operatorName string, operatorId int) error { // 读取当前任务 t, err := models.GetTaskById(id) if err != nil { return err } now := time.Now() t.DeletedTime = &now t.OperatorName = operatorName t.OperatorId = operatorId return models.UpdateTask(t, "deleted_time", "operator_name", "operator_id") } // 生成任务编号:TASK{tenantId}{YYYYMMDDHHMMSS} func genTaskNo(tenantId int) string { return fmt.Sprintf("TASK%d%s", tenantId, time.Now().Format("20060102150405")) }