package v1
|
|
import (
|
"apsClient/constvar"
|
"apsClient/model/response"
|
_ "apsClient/model/response"
|
"apsClient/pkg/contextx"
|
"apsClient/pkg/ecode"
|
"apsClient/service"
|
"github.com/gin-gonic/gin"
|
"github.com/spf13/cast"
|
)
|
|
type PlcApi struct{}
|
|
// GetProductProgress
|
// @Tags 生产数量
|
// @Summary 获取生产进度
|
// @Produce application/json
|
// @Success 200 {object} contextx.Response{data=response.ProductProgress} "成功"
|
// @Router /v1/plc/productProgress [get]
|
func (slf *PlcApi) GetProductProgress(c *gin.Context) {
|
ctx, ok := contextx.NewContext(c, nil)
|
if !ok {
|
return
|
}
|
finishNumber, _ := service.PlcCacheGet(constvar.PlcCacheKeyFinishNumber)
|
totalNumber, _ := service.PlcCacheGet(constvar.PlcCacheKeyTotalNumber)
|
resp := new(response.ProductProgress)
|
resp.FinishNumber = cast.ToInt(finishNumber)
|
resp.TotalNumber = cast.ToInt(totalNumber)
|
ctx.OkWithDetailed(resp)
|
}
|
|
// SetProductNumber
|
// @Tags 生产数量
|
// @Summary 设置生产总量
|
// @Produce application/json
|
// @Success 200 {object} contextx.Response{} "成功"
|
// @Router /v1/plc/setProductNumber [post]
|
func (slf *PlcApi) SetProductNumber(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
|
}
|
|
if taskData.Order == nil {
|
ctx.FailWithMsg(ecode.UnknownErr, "当前没有待生产工单")
|
return
|
}
|
|
plcConfig, code := service.NewDevicePlcService().GetDevicePlc()
|
if code != ecode.OK {
|
ctx.FailWithMsg(ecode.UnknownErr, "请先配置PLC")
|
return
|
}
|
|
err := service.PlcWrite(plcConfig, constvar.PlcStartAddressTypeTotalNumber, taskData.Order.Amount.IntPart())
|
if err != nil {
|
ctx.FailWithMsg(ecode.UnknownErr, "设置失败,请检查plc配置")
|
return
|
}
|
ctx.Ok()
|
}
|