zhansan
2023-09-18 edf6810f2ff9ac32230f58f62a753454b8e24269
Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS
2个文件已添加
6个文件已修改
1003 ■■■■■ 已修改文件
constvar/const.go 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/product_controller.go 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/docs.go 303 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.json 301 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.yaml 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/product.go 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
request/product_request.go 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
constvar/const.go
@@ -46,9 +46,30 @@
type ProductType int
const (
    ProductTypeRaw      = iota + 1 // 原材料
    ProductTypeSemi                // 半成品
    ProductTypeFinished            // 成品
    Consumables   ProductType = iota + 1 // 消耗品
    Server                               // 服务
    StoredProduct                        // 可储存的产品
)
// InvoicingStrategy 开票策略
type InvoicingStrategy int
const (
    IndentNumber       InvoicingStrategy = iota + 1 //订购数量
    DeliverNumber                                   //交付数量
    PrepaidPrice                                    //预付\固定价格
    Milestones                                      //基于里程碑
    BasedDeliverNumber                              //基于交付数量
)
// OrderCreation 订单创建
type OrderCreation int
const (
    Nothing       OrderCreation = iota + 1 //不操作
    Task                                   //任务
    Object                                 //项目
    TaskAndObject                          //任务和项目
)
type ProductStatus int
controllers/product_controller.go
New file
@@ -0,0 +1,78 @@
package controllers
import (
    "github.com/gin-gonic/gin"
    "wms/extend/code"
    "wms/extend/util"
    "wms/models"
    "wms/request"
)
type ProductController struct {
}
// AddProduct
// @Tags      产品
// @Summary   添加产品
// @Produce   application/json
// @Param     object  body  models.Product true  "产品信息"
// @Success   200 {object} util.Response "成功"
// @Router    /api-wms/v1/product/addProduct [post]
func (slf ProductController) AddProduct(c *gin.Context) {
    var params models.Product
    if err := c.BindJSON(&params); err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    if params.Name == "" {
        util.ResponseFormat(c, code.RequestParamError, "产品名称不能为空")
        return
    }
    if params.SalePrice.IntPart() <= 0 {
        util.ResponseFormat(c, code.RequestParamError, "产品售价不能小于等于零")
        return
    }
    err := models.NewProductSearch().Create(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "产品信息保存失败")
        return
    }
    util.ResponseFormat(c, code.Success, "保存成功")
}
// GetProductList
// @Tags      产品
// @Summary   获取产品列表
// @Produce   application/json
// @Param     object  body  request.GetProductList true  "查询参数"
// @Success   200 {object} util.ResponseList{data=[]models.Product}    "成功"
// @Router    /api-wms/v1/product/getProductList [post]
func (slf ProductController) GetProductList(c *gin.Context) {
    var params request.GetProductList
    if err := c.BindJSON(&params); err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    search := models.NewProductSearch()
    if params.PageInfo.Check() {
        search.SetPage(params.Page, params.PageSize)
    }
    products, total, err := search.SetKeyword(params.KeyWord).SetOrder("created_at desc").Find()
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "查找失败")
        return
    }
    util.ResponseFormatList(c, code.Success, products, int(total))
}
// GetProductDetails
// @Tags      产品
// @Summary   获取产品详情
// @Produce   application/json
// @Param     object  body  request.GetProductList true  "查询参数"
// @Success   200 {object} util.ResponseList{data=[]models.Product}    "成功"
// @Router    /api-wms/v1/product/getProductList [post]
func (slf ProductController) GetProductDetails(c *gin.Context) {
}
docs/docs.go
@@ -324,6 +324,81 @@
                }
            }
        },
        "/api-wms/v1/product/addProduct": {
            "post": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "产品"
                ],
                "summary": "添加产品",
                "parameters": [
                    {
                        "description": "产品信息",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.Product"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/util.Response"
                        }
                    }
                }
            }
        },
        "/api-wms/v1/product/getProductList": {
            "post": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "产品"
                ],
                "summary": "获取产品详情",
                "parameters": [
                    {
                        "description": "查询参数",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.GetProductList"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/util.ResponseList"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/models.Product"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api-wms/v1/warehouse/operationType": {
            "get": {
                "produces": [
@@ -632,6 +707,30 @@
                "BaseOperationTypeInternal"
            ]
        },
        "constvar.InvoicingStrategy": {
            "type": "integer",
            "enum": [
                1,
                2,
                3,
                4,
                5
            ],
            "x-enum-comments": {
                "BasedDeliverNumber": "基于交付数量",
                "DeliverNumber": "交付数量",
                "IndentNumber": "订购数量",
                "Milestones": "基于里程碑",
                "PrepaidPrice": "预付\\固定价格"
            },
            "x-enum-varnames": [
                "IndentNumber",
                "DeliverNumber",
                "PrepaidPrice",
                "Milestones",
                "BasedDeliverNumber"
            ]
        },
        "constvar.LocationType": {
            "type": "integer",
            "enum": [
@@ -681,6 +780,45 @@
                "OperationStatus_Waiting",
                "OperationStatus_Ready",
                "OperationStatus_Finish"
            ]
        },
        "constvar.OrderCreation": {
            "type": "integer",
            "enum": [
                1,
                2,
                3,
                4
            ],
            "x-enum-comments": {
                "Nothing": "不操作",
                "Object": "项目",
                "Task": "任务",
                "TaskAndObject": "任务和项目"
            },
            "x-enum-varnames": [
                "Nothing",
                "Task",
                "Object",
                "TaskAndObject"
            ]
        },
        "constvar.ProductType": {
            "type": "integer",
            "enum": [
                1,
                2,
                3
            ],
            "x-enum-comments": {
                "Consumables": "消耗品",
                "Server": "服务",
                "StoredProduct": "可储存的产品"
            },
            "x-enum-varnames": [
                "Consumables",
                "Server",
                "StoredProduct"
            ]
        },
        "constvar.ReservationMethod": {
@@ -947,6 +1085,153 @@
                }
            }
        },
        "models.Product": {
            "type": "object",
            "properties": {
                "HSCode": {
                    "type": "string"
                },
                "barcode": {
                    "description": "条码",
                    "type": "string"
                },
                "buyExplain": {
                    "type": "string"
                },
                "canBePurchased": {
                    "description": "是否可采购",
                    "type": "boolean"
                },
                "canBeSell": {
                    "description": "是否销售",
                    "type": "boolean"
                },
                "categoryId": {
                    "description": "产品分类id",
                    "type": "integer"
                },
                "companyId": {
                    "type": "integer"
                },
                "companyName": {
                    "type": "string"
                },
                "controlStrategy": {
                    "$ref": "#/definitions/constvar.InvoicingStrategy"
                },
                "cost": {
                    "description": "成本",
                    "type": "number"
                },
                "createTime": {
                    "type": "string"
                },
                "currencyId": {
                    "type": "integer"
                },
                "currencyName": {
                    "type": "string"
                },
                "customerAdvanceTime": {
                    "type": "number"
                },
                "customerTaxes": {
                    "description": "客户税百分比",
                    "type": "number"
                },
                "deliveryAdvanceTime": {
                    "type": "number"
                },
                "id": {
                    "type": "integer"
                },
                "inStorageExplain": {
                    "type": "string"
                },
                "internalNotes": {
                    "description": "内部说明",
                    "type": "string"
                },
                "internalReference": {
                    "description": "内部参考",
                    "type": "string"
                },
                "internalTransferExplain": {
                    "type": "string"
                },
                "invoicingStrategy": {
                    "$ref": "#/definitions/constvar.InvoicingStrategy"
                },
                "name": {
                    "description": "产品名称",
                    "type": "string"
                },
                "objectTemplateId": {
                    "type": "string"
                },
                "orderCreation": {
                    "$ref": "#/definitions/constvar.OrderCreation"
                },
                "originCountryId": {
                    "type": "integer"
                },
                "originCountryName": {
                    "type": "string"
                },
                "outStorageExplain": {
                    "type": "string"
                },
                "price": {
                    "type": "number"
                },
                "principal": {
                    "description": "负责人",
                    "type": "string"
                },
                "productTagId": {
                    "description": "产品标签",
                    "type": "integer"
                },
                "productTagName": {
                    "type": "string"
                },
                "salePrice": {
                    "description": "销售价格",
                    "type": "number"
                },
                "selectProduct": {
                    "type": "integer"
                },
                "sellExplain": {
                    "type": "string"
                },
                "supplierId": {
                    "type": "integer"
                },
                "supplierName": {
                    "type": "string"
                },
                "type": {
                    "description": "产品类型",
                    "allOf": [
                        {
                            "$ref": "#/definitions/constvar.ProductType"
                        }
                    ]
                },
                "updateTime": {
                    "type": "string"
                },
                "volume": {
                    "description": "体积",
                    "type": "number"
                },
                "weight": {
                    "description": "重量",
                    "type": "number"
                }
            }
        },
        "models.Warehouse": {
            "type": "object",
            "required": [
@@ -1190,6 +1475,22 @@
                }
            }
        },
        "request.GetProductList": {
            "type": "object",
            "properties": {
                "keyWord": {
                    "type": "string"
                },
                "page": {
                    "description": "页码",
                    "type": "integer"
                },
                "pageSize": {
                    "description": "每页大小",
                    "type": "integer"
                }
            }
        },
        "request.OperationDetails": {
            "type": "object",
            "properties": {
@@ -1413,6 +1714,8 @@
    Description:      "",
    InfoInstanceName: "swagger",
    SwaggerTemplate:  docTemplate,
    LeftDelim:        "{{",
    RightDelim:       "}}",
}
func init() {
docs/swagger.json
@@ -312,6 +312,81 @@
                }
            }
        },
        "/api-wms/v1/product/addProduct": {
            "post": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "产品"
                ],
                "summary": "添加产品",
                "parameters": [
                    {
                        "description": "产品信息",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.Product"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/util.Response"
                        }
                    }
                }
            }
        },
        "/api-wms/v1/product/getProductList": {
            "post": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "产品"
                ],
                "summary": "获取产品详情",
                "parameters": [
                    {
                        "description": "查询参数",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/request.GetProductList"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/util.ResponseList"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/models.Product"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api-wms/v1/warehouse/operationType": {
            "get": {
                "produces": [
@@ -620,6 +695,30 @@
                "BaseOperationTypeInternal"
            ]
        },
        "constvar.InvoicingStrategy": {
            "type": "integer",
            "enum": [
                1,
                2,
                3,
                4,
                5
            ],
            "x-enum-comments": {
                "BasedDeliverNumber": "基于交付数量",
                "DeliverNumber": "交付数量",
                "IndentNumber": "订购数量",
                "Milestones": "基于里程碑",
                "PrepaidPrice": "预付\\固定价格"
            },
            "x-enum-varnames": [
                "IndentNumber",
                "DeliverNumber",
                "PrepaidPrice",
                "Milestones",
                "BasedDeliverNumber"
            ]
        },
        "constvar.LocationType": {
            "type": "integer",
            "enum": [
@@ -669,6 +768,45 @@
                "OperationStatus_Waiting",
                "OperationStatus_Ready",
                "OperationStatus_Finish"
            ]
        },
        "constvar.OrderCreation": {
            "type": "integer",
            "enum": [
                1,
                2,
                3,
                4
            ],
            "x-enum-comments": {
                "Nothing": "不操作",
                "Object": "项目",
                "Task": "任务",
                "TaskAndObject": "任务和项目"
            },
            "x-enum-varnames": [
                "Nothing",
                "Task",
                "Object",
                "TaskAndObject"
            ]
        },
        "constvar.ProductType": {
            "type": "integer",
            "enum": [
                1,
                2,
                3
            ],
            "x-enum-comments": {
                "Consumables": "消耗品",
                "Server": "服务",
                "StoredProduct": "可储存的产品"
            },
            "x-enum-varnames": [
                "Consumables",
                "Server",
                "StoredProduct"
            ]
        },
        "constvar.ReservationMethod": {
@@ -935,6 +1073,153 @@
                }
            }
        },
        "models.Product": {
            "type": "object",
            "properties": {
                "HSCode": {
                    "type": "string"
                },
                "barcode": {
                    "description": "条码",
                    "type": "string"
                },
                "buyExplain": {
                    "type": "string"
                },
                "canBePurchased": {
                    "description": "是否可采购",
                    "type": "boolean"
                },
                "canBeSell": {
                    "description": "是否销售",
                    "type": "boolean"
                },
                "categoryId": {
                    "description": "产品分类id",
                    "type": "integer"
                },
                "companyId": {
                    "type": "integer"
                },
                "companyName": {
                    "type": "string"
                },
                "controlStrategy": {
                    "$ref": "#/definitions/constvar.InvoicingStrategy"
                },
                "cost": {
                    "description": "成本",
                    "type": "number"
                },
                "createTime": {
                    "type": "string"
                },
                "currencyId": {
                    "type": "integer"
                },
                "currencyName": {
                    "type": "string"
                },
                "customerAdvanceTime": {
                    "type": "number"
                },
                "customerTaxes": {
                    "description": "客户税百分比",
                    "type": "number"
                },
                "deliveryAdvanceTime": {
                    "type": "number"
                },
                "id": {
                    "type": "integer"
                },
                "inStorageExplain": {
                    "type": "string"
                },
                "internalNotes": {
                    "description": "内部说明",
                    "type": "string"
                },
                "internalReference": {
                    "description": "内部参考",
                    "type": "string"
                },
                "internalTransferExplain": {
                    "type": "string"
                },
                "invoicingStrategy": {
                    "$ref": "#/definitions/constvar.InvoicingStrategy"
                },
                "name": {
                    "description": "产品名称",
                    "type": "string"
                },
                "objectTemplateId": {
                    "type": "string"
                },
                "orderCreation": {
                    "$ref": "#/definitions/constvar.OrderCreation"
                },
                "originCountryId": {
                    "type": "integer"
                },
                "originCountryName": {
                    "type": "string"
                },
                "outStorageExplain": {
                    "type": "string"
                },
                "price": {
                    "type": "number"
                },
                "principal": {
                    "description": "负责人",
                    "type": "string"
                },
                "productTagId": {
                    "description": "产品标签",
                    "type": "integer"
                },
                "productTagName": {
                    "type": "string"
                },
                "salePrice": {
                    "description": "销售价格",
                    "type": "number"
                },
                "selectProduct": {
                    "type": "integer"
                },
                "sellExplain": {
                    "type": "string"
                },
                "supplierId": {
                    "type": "integer"
                },
                "supplierName": {
                    "type": "string"
                },
                "type": {
                    "description": "产品类型",
                    "allOf": [
                        {
                            "$ref": "#/definitions/constvar.ProductType"
                        }
                    ]
                },
                "updateTime": {
                    "type": "string"
                },
                "volume": {
                    "description": "体积",
                    "type": "number"
                },
                "weight": {
                    "description": "重量",
                    "type": "number"
                }
            }
        },
        "models.Warehouse": {
            "type": "object",
            "required": [
@@ -1178,6 +1463,22 @@
                }
            }
        },
        "request.GetProductList": {
            "type": "object",
            "properties": {
                "keyWord": {
                    "type": "string"
                },
                "page": {
                    "description": "页码",
                    "type": "integer"
                },
                "pageSize": {
                    "description": "每页大小",
                    "type": "integer"
                }
            }
        },
        "request.OperationDetails": {
            "type": "object",
            "properties": {
docs/swagger.yaml
@@ -13,6 +13,26 @@
    - BaseOperationTypeIncoming
    - BaseOperationTypeOutgoing
    - BaseOperationTypeInternal
  constvar.InvoicingStrategy:
    enum:
    - 1
    - 2
    - 3
    - 4
    - 5
    type: integer
    x-enum-comments:
      BasedDeliverNumber: 基于交付数量
      DeliverNumber: 交付数量
      IndentNumber: 订购数量
      Milestones: 基于里程碑
      PrepaidPrice: 预付\固定价格
    x-enum-varnames:
    - IndentNumber
    - DeliverNumber
    - PrepaidPrice
    - Milestones
    - BasedDeliverNumber
  constvar.LocationType:
    enum:
    - 1
@@ -56,6 +76,37 @@
    - OperationStatus_Waiting
    - OperationStatus_Ready
    - OperationStatus_Finish
  constvar.OrderCreation:
    enum:
    - 1
    - 2
    - 3
    - 4
    type: integer
    x-enum-comments:
      Nothing: 不操作
      Object: 项目
      Task: 任务
      TaskAndObject: 任务和项目
    x-enum-varnames:
    - Nothing
    - Task
    - Object
    - TaskAndObject
  constvar.ProductType:
    enum:
    - 1
    - 2
    - 3
    type: integer
    x-enum-comments:
      Consumables: 消耗品
      Server: 服务
      StoredProduct: 可储存的产品
    x-enum-varnames:
    - Consumables
    - Server
    - StoredProduct
  constvar.ReservationMethod:
    enum:
    - 1
@@ -231,6 +282,107 @@
        description: 仓库id
        type: integer
    type: object
  models.Product:
    properties:
      HSCode:
        type: string
      barcode:
        description: 条码
        type: string
      buyExplain:
        type: string
      canBePurchased:
        description: 是否可采购
        type: boolean
      canBeSell:
        description: 是否销售
        type: boolean
      categoryId:
        description: 产品分类id
        type: integer
      companyId:
        type: integer
      companyName:
        type: string
      controlStrategy:
        $ref: '#/definitions/constvar.InvoicingStrategy'
      cost:
        description: 成本
        type: number
      createTime:
        type: string
      currencyId:
        type: integer
      currencyName:
        type: string
      customerAdvanceTime:
        type: number
      customerTaxes:
        description: 客户税百分比
        type: number
      deliveryAdvanceTime:
        type: number
      id:
        type: integer
      inStorageExplain:
        type: string
      internalNotes:
        description: 内部说明
        type: string
      internalReference:
        description: 内部参考
        type: string
      internalTransferExplain:
        type: string
      invoicingStrategy:
        $ref: '#/definitions/constvar.InvoicingStrategy'
      name:
        description: 产品名称
        type: string
      objectTemplateId:
        type: string
      orderCreation:
        $ref: '#/definitions/constvar.OrderCreation'
      originCountryId:
        type: integer
      originCountryName:
        type: string
      outStorageExplain:
        type: string
      price:
        type: number
      principal:
        description: 负责人
        type: string
      productTagId:
        description: 产品标签
        type: integer
      productTagName:
        type: string
      salePrice:
        description: 销售价格
        type: number
      selectProduct:
        type: integer
      sellExplain:
        type: string
      supplierId:
        type: integer
      supplierName:
        type: string
      type:
        allOf:
        - $ref: '#/definitions/constvar.ProductType'
        description: 产品类型
      updateTime:
        type: string
      volume:
        description: 体积
        type: number
      weight:
        description: 重量
        type: number
    type: object
  models.Warehouse:
    properties:
      active:
@@ -397,6 +549,17 @@
        type: array
    required:
    - code
    type: object
  request.GetProductList:
    properties:
      keyWord:
        type: string
      page:
        description: 页码
        type: integer
      pageSize:
        description: 每页大小
        type: integer
    type: object
  request.OperationDetails:
    properties:
@@ -736,6 +899,51 @@
      summary: 添加入库/出库
      tags:
      - 入库/出库
  /api-wms/v1/product/addProduct:
    post:
      parameters:
      - description: 产品信息
        in: body
        name: object
        required: true
        schema:
          $ref: '#/definitions/models.Product'
      produces:
      - application/json
      responses:
        "200":
          description: 成功
          schema:
            $ref: '#/definitions/util.Response'
      summary: 添加产品
      tags:
      - 产品
  /api-wms/v1/product/getProductList:
    post:
      parameters:
      - description: 查询参数
        in: body
        name: object
        required: true
        schema:
          $ref: '#/definitions/request.GetProductList'
      produces:
      - application/json
      responses:
        "200":
          description: 成功
          schema:
            allOf:
            - $ref: '#/definitions/util.ResponseList'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/models.Product'
                  type: array
              type: object
      summary: 获取产品详情
      tags:
      - 产品
  /api-wms/v1/warehouse/operationType:
    get:
      parameters:
models/product.go
@@ -2,7 +2,7 @@
import (
    "fmt"
    "google.golang.org/genproto/googleapis/type/decimal"
    "github.com/shopspring/decimal"
    "gorm.io/gorm"
    "wms/constvar"
    "wms/pkg/mysqlx"
@@ -12,39 +12,45 @@
    // Product 产品
    Product struct {
        WmsModel
        Id         int                  `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
        Name       string               `json:"name" gorm:"index;type:varchar(255);not null;comment:产品名称"` //产品名称
        Type       constvar.ProductType `gorm:"type:tinyint;comment:产品类型" json:"type"`                     //产品类型
        CategoryId int                  `gorm:"type:int(11);comment:产品分类" json:"categoryId"`               //产品分类id
        Category   string               `gorm:"type:int(11);comment:产品分类" json:"category"`                 //产品分类
        Specs      string               `gorm:"type:varchar(191);comment:产品规格" json:"specs"`               //产品规格
        Model      string               `gorm:"type:varchar(191);comment:产品型号" json:"model"`               //产品型号
        //MinInventory      decimal.Decimal         `gorm:"type:decimal(20,2);comment:最小库存" json:"minInventory"` //最大库存
        //MaxInventory      decimal.Decimal         `gorm:"type:decimal(20,2);comment:最大库存" json:"maxInventory"` //最小库存
        //Amount            decimal.Decimal         `gorm:"type:decimal(20,2);comment:数量" json:"amount"`
        //LockAmount        decimal.Decimal         `gorm:"type:decimal(20,2);default:0;comment:锁定数量" json:"lockAmount"`
        Unit         string                 `gorm:"type:varchar(100);comment:单位" json:"unit"`           //单位
        PurchaseUnit string                 `gorm:"type:varchar(100);comment:采购单位" json:"purchaseUnit"` //采购单位
        Note         string                 `gorm:"type:varchar(1024);comment:备注" json:"note"`
        Status       constvar.ProductStatus `gorm:"type:int(11);comment:状态" json:"status"`
        Purchases    []*PurchaseInfo        `gorm:"-" json:"purchases"` //采购信息
        PurchasesStr string                 `gorm:"column:purchase;type:varchar(4096);comment:购买信息" json:"-"`
        //PurchaseType     constvar.PurchaseType `gorm:"type:int(11);comment:采购类型" json:"purchaseType"`            ///采购类型
        CanBePurchased   bool            `gorm:"type:int(11);not null;comment:是否可采购" json:"purchaseType"`           //是否可采购
        IsSale           bool            `gorm:"type:tinyint(1);comment:是否销售" json:"isSale"`                        //是否销售
        Id                      int                        `gorm:"column:id;primary_key;AUTO_INCREMENT" json:"id"`
        Name                    string                     `gorm:"index;type:varchar(255);not null;comment:产品名称" json:"name"` //产品名称
        Type                    constvar.ProductType       `gorm:"type:int(11);comment:产品类型" json:"type"`                     //产品类型
        InvoicingStrategy       constvar.InvoicingStrategy `gorm:"type:int(11);comment:开票策略" json:"invoicingStrategy"`
        OrderCreation           constvar.OrderCreation     `gorm:"type:int(11);comment:订单创建" json:"orderCreation"`
        ObjectTemplateId        string                     `gorm:"type:varchar(191);comment:项目模版id" json:"objectTemplateId"`
        SalePrice        decimal.Decimal `gorm:"type:decimal(35,18);comment:销售单价" json:"salePrice"`                 //销售价格
        CustomerTaxes    decimal.Decimal `gorm:"type:decimal(20,2);not null;comment:客户税" json:"customerTaxes"`      //客户税百分比
        Cost             decimal.Decimal `gorm:"type:decimal(20,2);not null;comment:成本" json:"cost"`                //成本
        OptionalProducts []int           `gorm:"type:varchar(255);not null;comment:相似产品id" json:"optionalProducts"` //相识产品
        Principal        string          `gorm:"type:varchar(255);not null;comment:负责人" json:"principal"`           //负责人
        Weight           string          `gorm:"type:decimal(20,2);not null;comment:重量" json:"weight"`              //重量
        Volume           string          `gorm:"type:decimal(20,2);not null;comment:体积" json:"volume"`              //体积
        InternalReference string `gorm:"type:varchar(255);not null;comment:内部参考" json:"internalReference"` //内部参考
        Barcode           string `gorm:"type:varchar(255);not null;comment:条码" json:"barcode"`             //条码
        Tags              string `gorm:"type:varchar(255);not null;comment:产品标签" json:"tags"`              //产品标签
        InternalNotes     string `gorm:"type:varchar(512);not null;comment:内部说明" json:"internalNotes"`     //内部说明
        CustomerTaxes           decimal.Decimal            `gorm:"type:decimal(20,2);comment:客户税" json:"customerTaxes"`     //客户税百分比
        Cost                    decimal.Decimal            `gorm:"type:decimal(20,2);comment:成本" json:"cost"`               //成本
        CategoryId              int                        `gorm:"type:int(11);comment:产品类型id" json:"categoryId"`           //产品分类id
        InternalReference       string                     `gorm:"type:varchar(255);comment:内部参考" json:"internalReference"` //内部参考
        Barcode                 string                     `gorm:"type:varchar(255);comment:条码" json:"barcode"`             //条码
        ProductTagId            int                        `gorm:"type:int(11);comment:产品标签id" json:"productTagId"`         //产品标签
        ProductTagName          string                     `gorm:"type:varchar(255);comment:产品标签名称" json:"productTagName"`
        CompanyId               int                        `gorm:"type:int(11);comment:公司id" json:"companyId"`
        CompanyName             string                     `gorm:"type:varchar(255);comment:公司名称" json:"companyName"`
        InternalNotes           string                     `gorm:"type:varchar(512);comment:内部说明" json:"internalNotes"` //内部说明
        CanBeSell               bool                       `gorm:"type:tinyint(1);comment:是否可销售" json:"canBeSell"`      //是否销售
        SelectProduct           int                        `gorm:"type:int(11);comment:可选产品id" json:"selectProduct"`
        SellExplain             string                     `gorm:"type:varchar(512);comment:销售说明" json:"sellExplain"`
        CanBePurchased          bool                       `gorm:"type:int(11);comment:是否可采购" json:"canBePurchased"` //是否可采购
        SupplierId              int                        `gorm:"type:int(11);comment:供应商id" json:"supplierId"`
        SupplierName            string                     `gorm:"type:varchar(255);comment:供应商名称" json:"supplierName"`
        Price                   decimal.Decimal            `gorm:"type:decimal(20,2);comment:价格" json:"price"`
        CurrencyId              int                        `gorm:"type:int(11);comment:币种id" json:"currencyId"`
        CurrencyName            string                     `gorm:"type:varchar(255);comment:币种名称" json:"currencyName"`
        DeliveryAdvanceTime     decimal.Decimal            `gorm:"type:decimal(20,5);comment:提前交货时间" json:"deliveryAdvanceTime"`
        ControlStrategy         constvar.InvoicingStrategy `gorm:"type:int(11);comment:控制策略" json:"controlStrategy"`
        BuyExplain              string                     `gorm:"type:varchar(512);comment:采购说明" json:"buyExplain"`
        Principal               string                     `gorm:"type:varchar(255);comment:负责人" json:"principal"` //负责人
        Weight                  decimal.Decimal            `gorm:"type:decimal(20,2);comment:重量" json:"weight"`    //重量
        Volume                  decimal.Decimal            `gorm:"type:decimal(20,2);comment:体积" json:"volume"`    //体积
        CustomerAdvanceTime     decimal.Decimal            `gorm:"type:decimal(20,5);comment:客户前置时间" json:"customerAdvanceTime"`
        HSCode                  string                     `gorm:"type:varchar(255);comment:HS编码" json:"HSCode"`
        OriginCountryId         int                        `gorm:"type:int(11);comment:原产地id" json:"originCountryId"`
        OriginCountryName       string                     `gorm:"type:varchar(255);comment:原产地名称" json:"originCountryName"`
        InStorageExplain        string                     `gorm:"type:varchar(512);comment:入库说明" json:"inStorageExplain"`
        OutStorageExplain       string                     `gorm:"type:varchar(512);comment:出库说明" json:"outStorageExplain"`
        InternalTransferExplain string                     `gorm:"type:varchar(512);comment:内部调拨说明" json:"internalTransferExplain"`
    }
    ProductSearch struct {
request/product_request.go
New file
@@ -0,0 +1,6 @@
package request
type GetProductList struct {
    PageInfo
    KeyWord string `json:"keyWord"`
}
router/router.go
@@ -69,5 +69,13 @@
        operationAPI.POST("operation", operationController.Add)
    }
    //产品
    productController := new(controllers.ProductController)
    productAPI := r.Group(urlPrefix + "/product")
    {
        productAPI.POST("addProduct", productController.AddProduct)         // 新增产品
        productAPI.POST("getProductList", productController.GetProductList) // 获取产品列表
    }
    return r
}