zhangqian
2023-08-17 fcc5eaccffbbd0980077cf3fc4707566546f879a
api/v1/task.go
@@ -1,47 +1,114 @@
package v1
import (
   "apsClient/model/request"
   "apsClient/model"
   _ "apsClient/model/response"
   "apsClient/pkg/contextx"
   "apsClient/pkg/convertx"
   "apsClient/pkg/ecode"
   "apsClient/pkg/logx"
   "apsClient/service"
   "encoding/json"
   "github.com/gin-gonic/gin"
)
type TaskApi struct{}
// TaskList
// @Tags      Base
// @Summary   任务开启通知
// TaskGet
// @Tags      Task
// @Summary   获取任务
// @Produce   application/json
// @Param     object  query    request.TaskList true  "查询参数"
// @Success   200   {object}  contextx.Response{data=[]model.ScheduleTask}  "成功"
// @Router    /v1/task/list [get]
func (slf *TaskApi) TaskList(c *gin.Context) {
   var params request.TaskList
   ctx, ok := contextx.NewContext(c, &params)
// @Success   200   {object}  contextx.Response{data=response.TaskData}  "成功"
// @Router    /v1/task/get [get]
func (slf *TaskApi) TaskGet(c *gin.Context) {
   ctx, ok := contextx.NewContext(c, nil)
   if !ok {
      return
   }
   taskList, total, code := service.NewTaskService().GetTaskList(params.Page, params.PageSize)
   taskData, code := service.NewTaskService().GetTask()
   if code != ecode.OK {
      ctx.Fail(code)
      return
   }
   ctx.OkWithDetailed(taskData)
}
   for _, task := range taskList {
      if task.Data != "" {
         err := json.Unmarshal([]byte(task.Data), &task.TaskInfo)
         if err != nil {
            ctx.Fail(ecode.UnknownErr)
            return
         }
      }
// TaskStart
// @Tags      Base
// @Summary   任务开始
// @Produce   application/json
// @Param     id  path    int true  "工序id"
// @Success   200   {object}  contextx.Response{service.GetProcessModel}  "成功"
// @Router    /v1/task/start/{id} [get]
func (slf *TaskApi) TaskStart(c *gin.Context) {
   ctx, ok := contextx.NewContext(c, nil)
   if !ok {
      return
   }
   idx := c.Param("id")
   if idx == "" {
      ctx.Fail(ecode.ParamsErr)
      return
   }
   id := convertx.Atoi(idx)
   procedure, code := service.NewTaskService().GetProcedureById(id)
   if code != ecode.OK {
      ctx.Fail(code)
      return
   }
   order, err := service.NewTaskService().GetOrderByOrderId(procedure.OrderID)
   if err != nil {
      ctx.Fail(ecode.UnknownErr)
      return
   }
   ctx.ResultList(taskList, total)
   params := service.GetProcessModelParams{
      WorkOrder: "",
      OrderId:   procedure.OrderID,
      Product:   order.ProductName,
      Procedure: procedure.ProceduresInfo.ProcedureName,
      Device:    procedure.ProceduresInfo.DeviceID,
   }
   resp, err := service.ProcessModel{}.GetProcessModel(params)
   if err != nil {
      logx.Errorf("TaskStart Notice GetProcessModel error: %v", err.Error())
      ctx.Fail(ecode.UnknownErr)
      return
   }
   logx.Infof("TaskStart Notice GetProcessModel: %+v", resp)
   ctx.OkWithDetailed(resp)
}
// TaskFinish
// @Tags      Base
// @Summary   任务结束
// @Produce   application/json
// @Param     id  path    int true  "工序id"
// @Success   200   {object}  contextx.Response{service.GetProcessModel}  "成功"
// @Router    /v1/task/finish/{id} [put]
func (slf *TaskApi) TaskFinish(c *gin.Context) {
   ctx, ok := contextx.NewContext(c, nil)
   if !ok {
      return
   }
   idx := c.Param("id")
   if idx == "" {
      ctx.Fail(ecode.ParamsErr)
      return
   }
   id := convertx.Atoi(idx)
   _, code := service.NewTaskService().GetProcedureById(id)
   if code != ecode.OK {
      ctx.Fail(code)
      return
   }
   err := service.NewTaskService().UpdateProcedureStatus(id, model.ProcedureStatusFinished)
   if err != nil {
      logx.Errorf("UpdateProcedureStatus err: %v", err.Error())
      ctx.Fail(ecode.UnknownErr)
      return
   }
   ctx.Ok()
}