package controllers
|
|
import (
|
"github.com/gin-gonic/gin"
|
"github.com/spf13/cast"
|
"wms/constvar"
|
cd "wms/extend/code"
|
"wms/extend/util"
|
"wms/models"
|
"wms/pkg/contextx"
|
"wms/pkg/logx"
|
"wms/proto/code"
|
"wms/proto/init_client"
|
"wms/request"
|
)
|
|
type CodeApi struct{}
|
|
//var (
|
// codeServiceConn *grpc.ClientConn
|
//)
|
//
|
//func InitCodeServiceConn() {
|
// var err error
|
// codeServiceConn, err = grpc.Dial(conf.GrpcServerConf.ApsAddr, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
// if err != nil {
|
// logx.Errorf("grpc dial product service error: %v", err.Error())
|
// return
|
// }
|
//}
|
//
|
//func CloseCodeServiceConn() {
|
// if codeServiceConn != nil {
|
// codeServiceConn.Close()
|
// }
|
//}
|
|
// GetCodeList
|
//
|
// @Tags 编码
|
// @Summary 获取编码列表
|
// @Produce application/json
|
// @Param object query request.GetCodeList true "参数"
|
// @Success 200 {object} util.ResponseList{data=[]code.CodeStandard}
|
//
|
// @Router /api-wms/v1/code/getCodeList [get]
|
func (ca *CodeApi) GetCodeList(c *gin.Context) {
|
var params request.GetCodeList
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
params.CodeStandID = c.Query("codeStandID")
|
params.Name = c.Query("name")
|
params.Type = c.Query("type")
|
client := code.NewCodeServiceClient(init_client.ApsConn)
|
list, err := client.GetCodeList(ctx.GetCtx(), &code.GetCodeListRequest{
|
Page: cast.ToInt32(params.Page),
|
PageSize: cast.ToInt32(params.PageSize),
|
CodeStandID: params.CodeStandID,
|
Name: params.Name,
|
Type: params.Type,
|
})
|
if err != nil {
|
logx.Errorf("GetCodeList err: %v", err.Error())
|
util.ResponseFormat(c, cd.RequestParamError, "产品名称不能为空")
|
return
|
}
|
util.ResponseFormatList(c, cd.Success, list.List, int(list.Total))
|
}
|
|
// GetAutoCode
|
//
|
// @Tags 编码
|
// @Summary 获取自动编码
|
// @Produce application/json
|
// @Param object body code.CodeStandard true "参数"
|
// @Success 200 {object} util.ResponseList{data=map[string]interface{}}
|
//
|
// @Router /api-wms/v1/code/getAutoCode [post]
|
func (ca *CodeApi) GetAutoCode(c *gin.Context) {
|
var params code.CodeStandard
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
var (
|
id = 0
|
err error
|
)
|
switch constvar.CodeStandardType(params.Type) {
|
case constvar.CodeStandardType_Material:
|
id, err = models.NewMaterialSearch().MaxAutoIncr()
|
case constvar.CodeStandardType_Incoming:
|
id, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeIncoming).MaxAutoIncr()
|
case constvar.CodeStandardType_Outgoing:
|
id, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeOutgoing).MaxAutoIncr()
|
case constvar.CodeStandardType_Internal:
|
id, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeInternal).MaxAutoIncr()
|
case constvar.CodeStandardType_Disuse:
|
id, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeDisuse).MaxAutoIncr()
|
default:
|
util.ResponseFormat(c, cd.RequestError, "编码规则不存在")
|
return
|
}
|
if err != nil {
|
util.ResponseFormat(c, cd.RequestError, "获取最大值失败")
|
return
|
}
|
m := make(map[string]interface{})
|
autoCode := models.GetAutoCode(id, ¶ms)
|
m["id"] = autoCode
|
m["codeStandardID"] = params.ID
|
m["maxAutoIncr"] = id + 1
|
ctx.OkWithDetailed(m)
|
}
|