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() }