zhangqian
2023-08-17 fcc5eaccffbbd0980077cf3fc4707566546f879a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package v1
 
import (
    "apsClient/model"
    _ "apsClient/model/response"
    "apsClient/pkg/contextx"
    "apsClient/pkg/convertx"
    "apsClient/pkg/ecode"
    "apsClient/pkg/logx"
    "apsClient/service"
    "github.com/gin-gonic/gin"
)
 
type TaskApi struct{}
 
// TaskGet
// @Tags      Task
// @Summary   获取任务
// @Produce   application/json
// @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
    }
 
    taskData, code := service.NewTaskService().GetTask()
    if code != ecode.OK {
        ctx.Fail(code)
        return
    }
    ctx.OkWithDetailed(taskData)
}
 
// 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
    }
 
    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()
}