zhangqian
2023-08-19 066a30751bdc20f9e83b34539de71ae392783e1b
api/v1/task.go
@@ -2,13 +2,16 @@
import (
   "apsClient/model"
   "apsClient/model/response"
   _ "apsClient/model/response"
   "apsClient/pkg/contextx"
   "apsClient/pkg/convertx"
   "apsClient/pkg/ecode"
   "apsClient/pkg/logx"
   "apsClient/service"
   "fmt"
   "github.com/gin-gonic/gin"
   "time"
)
type TaskApi struct{}
@@ -34,11 +37,11 @@
}
// TaskStart
// @Tags      Base
// @Tags      Task
// @Summary   任务开始
// @Produce   application/json
// @Param     id  path    int true  "工序id"
// @Success   200   {object}  contextx.Response{service.GetProcessModel}  "成功"
// @Success   200   {object}  contextx.Response{data=[]response.ProcessParams}  "成功"
// @Router    /v1/task/start/{id} [get]
func (slf *TaskApi) TaskStart(c *gin.Context) {
   ctx, ok := contextx.NewContext(c, nil)
@@ -56,33 +59,46 @@
      ctx.Fail(code)
      return
   }
   order, err := service.NewTaskService().GetOrderByOrderId(procedure.OrderID)
   if procedure.Status != model.ProcedureStatusUnFinished {
      ctx.FailWithMsg(ecode.ParamsErr, "该工序已结束")
      return
   }
   order, err := service.NewTaskService().GetOrderByWorkOrderId(procedure.WorkOrderID)
   if err != nil {
      ctx.Fail(ecode.UnknownErr)
      return
   }
   params := service.GetProcessModelParams{
      WorkOrder: "",
      WorkOrder: procedure.WorkOrderID,
      OrderId:   procedure.OrderID,
      Product:   order.ProductName,
      Procedure: procedure.ProceduresInfo.ProcedureName,
      Device:    procedure.ProceduresInfo.DeviceID,
      Device:    procedure.ProceduresInfo.DeviceName,
   }
   resp, err := service.ProcessModel{}.GetProcessModel(params)
   if err != nil {
      logx.Errorf("TaskStart Notice GetProcessModel error: %v", err.Error())
      ctx.Fail(ecode.UnknownErr)
      ctx.FailWithMsg(ecode.UnknownErr, "未获取到工艺参数")
      return
   }
   processParamsArr := make([]*response.ProcessParams, 0, len(resp.ParamsMap))
   for k, v := range resp.ParamsMap {
      processParamsArr = append(processParamsArr, &response.ProcessParams{
         Key:   k,
         Value: v,
      })
   }
   logx.Infof("TaskStart Notice GetProcessModel: %+v", resp)
   ctx.OkWithDetailed(resp)
   ctx.OkWithDetailed(processParamsArr)
}
// TaskFinish
// @Tags      Base
// @Tags      Task
// @Summary   任务结束
// @Produce   application/json
// @Param     id  path    int true  "工序id"
@@ -112,3 +128,55 @@
   }
   ctx.Ok()
}
// SendProcessParams
// @Tags      Task
// @Summary   下发工艺参数
// @Produce   application/json
// @Param     id  path    int true  "工序id"
// @Success   200   {object}  contextx.Response{service.GetProcessModel}  "成功"
// @Router    /v1/task/sendProcessParams/{id} [post]
func (slf *TaskApi) SendProcessParams(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().GetOrderByWorkOrderId(procedure.WorkOrderID)
   if err != nil {
      ctx.Fail(ecode.UnknownErr)
      return
   }
   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("SendProcessModel GetProcessModel err: %v", err.Error())
      ctx.Fail(ecode.UnknownErr)
      return
   }
   fmt.Println("----------------开始下发工艺参数-----------------")
   for k, v := range resp.ParamsMap {
      fmt.Println(fmt.Sprintf("%v : %v", k, v))
      time.Sleep(time.Millisecond * 300)
   }
   fmt.Println("----------------下发工艺参数完毕-----------------")
   ctx.Ok()
}