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