liujiandao
2023-10-23 4041b5571482c5515d15857f59b14a72045350c6
Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS

# Conflicts:
# models/operation.go
12个文件已修改
196 ■■■■ 已修改文件
controllers/location_product_amount.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/operation.go 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/operation_type.go 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/product_controller.go 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/docs.go 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.json 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.yaml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/location_product_amount.go 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/operation_type.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
request/operation.go 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
request/operation_type.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/location_product_amount.go
@@ -71,6 +71,7 @@
        if res := models.NewOperationSearch().Orm.Preload("Details", "product_id=?", v.ProductId).Where("wms_operation.base_operation_type=? and wms_operation.status=? and wms_operation.to_location_id=?", constvar.BaseOperationTypeAdjust, constvar.OperationStatus_Ready, v.LocationId).First(&operation); res.Error != nil {
            if errors.Is(res.Error, gorm.ErrRecordNotFound) {
                records[k].Status = constvar.OperationStatus_Finish
                records[k].BaseOperationType = constvar.BaseOperationTypeAdjust
                continue
            } else {
                util.ResponseFormat(c, code.RequestError, fmt.Errorf("find operation err: %v", res.Error.Error()))
@@ -84,6 +85,7 @@
            records[k].OperationId = operation.Id
            records[k].Status = operation.Status
        }
        records[k].BaseOperationType = constvar.BaseOperationTypeAdjust
    }
    util.ResponseFormatListWithPage(c, code.Success, records, int(total), params.Page, params.PageSize)
}
controllers/operation.go
@@ -128,8 +128,8 @@
        return errors.New("请填入源单号")
    }
    if params.OperationTypeId == 0 {
        return errors.New("operationTypeId为0")
    if params.OperationTypeId == 0 || int(params.BaseOperationType) == 0 {
        return errors.New("未识别该记录类型")
    }
    if params.OperationDate == "" {
@@ -177,6 +177,9 @@
    search.SetPage(params.Page, params.PageSize)
    if params.Number != "" {
        search.SetKeyword(params.Number)
    }
    if int(params.Status) != 0 {
        search.SetStatus(params.Status)
    }
    list, total, err := search.SetOperationTypeId(params.OperationTypeId).SetPreload(true).SetOrder("created_at desc").Find()
    if err != nil {
@@ -440,14 +443,14 @@
    util.ResponseFormat(c, code.Success, "操作成功")
}
// ListAll
// listTransfer
// @Tags      入库/出库
// @Summary   调拨
// @Summary   库存调拨列表
// @Produce   application/json
// @Param     object  body  request.OperationAllList true  "参数"
// @Success   200 {object} util.Response "成功"
// @Router    /api-wms/v1/operation/listAll [post]
func (slf OperationController) ListAll(c *gin.Context) {
// @Router    /api-wms/v1/operation/listTransfer [post]
func (slf OperationController) ListTransfer(c *gin.Context) {
    var params request.OperationAllList
    if err := c.BindJSON(&params); err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误:"+err.Error())
@@ -463,7 +466,7 @@
    if params.Number != "" {
        search.SetKeyword(params.Number)
    }
    list, total, err := search.SetPreload(true).SetOrder("created_at desc").Find()
    list, total, err := search.SetPreload(true).SetBaseOperationType(constvar.BaseOperationTypeInternal).SetOrder("created_at desc").Find()
    if err != nil {
        util.ResponseFormat(c, code.RequestError, "查找失败:"+err.Error())
        return
controllers/operation_type.go
@@ -166,3 +166,45 @@
    }
    util.ResponseFormat(c, code.UpdateSuccess, "删除成功")
}
// ListTransfer
// @Tags      业务类型
// @Summary   调拨类型列表
// @Produce   application/json
// @Param     object  query    request.ListTransfer true  "查询参数"
// @Success   200   {object}  util.ResponseList  "成功"
// @Router    /api-wms/v1/operationType/listTransfer [get]
func (slf OperationTypeController) ListTransfer(c *gin.Context) {
    var params request.GetOperationTypeList
    if err := c.ShouldBindQuery(&params); err != nil {
        util.ResponseFormat(c, code.RequestParamError, err.Error())
        return
    }
    list, total, err := models.NewOperationTypeSearch().SetPage(params.Page, params.PageSize).SetBaseOperationType(constvar.BaseOperationTypeInternal).SetKeyword(params.Keyword).SetOrder("id desc").SetPreload(true).Find()
    if err != nil {
        util.ResponseFormat(c, code.RequestError, "查找失败")
        return
    }
    var idList []int
    for _, v := range list {
        idList = append(idList, v.Id)
    }
    statistics, err := models.NewOperationTypeSearch().ListByStatusAndCount(idList)
    if err != nil {
        util.ResponseFormat(c, code.RequestError, err.Error())
        return
    }
    mapStatistics := make(map[string]*models.OperationTypeByStatus, 0)
    for _, v := range statistics {
        mapStatistics[strconv.Itoa(v.Id)+string(v.Status)] = v
    }
    for k, v := range list {
        if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Ready)]; ok {
            list[k].ReadyCount = value.Count
        }
        if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Finish)]; ok {
            list[k].FinishCount = value.Count
        }
    }
    util.ResponseFormatListWithPage(c, code.Success, list, cast.ToInt(total), params.Page, params.PageSize)
}
controllers/product_controller.go
@@ -391,9 +391,7 @@
        return
    }
    //db := models.NewOperationSearch().Orm.Table("wms_operation").Select("wms_operation.id,wms_operation.number,wms_operation.source_number,wms_operation.status,wms_operation.from_location_id,wms_operation.to_location_id,wms_operation.operation_date,wms_operation.contacter_id,wms_operation.contacter_name,wms_operation.company_id,wms_operation.company_name,wms_operation.comment,wms_operation_details.product_id,wms_operation_details.product_name,wms_operation_details.unit,wms_operation_details.amount").InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id")
    db := models.NewOperationSearch().Orm.Table("wms_operation").Select("wms_operation.id,wms_operation.number,wms_operation.source_number,wms_operation.status,wms_operation.from_location_id,wms_operation.to_location_id,wms_operation.operation_date,wms_operation.contacter_id,wms_operation.contacter_name,wms_operation.company_id,wms_operation.company_name,wms_operation.comment,wms_operation_details.product_id,material.name as product_name,material.unit,wms_operation_details.amount").InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id").InnerJoins("inner join material on material.id=wms_operation_details.product_id")
    db := models.NewOperationSearch().Orm.Table("wms_operation").Select("wms_operation.id,wms_operation.number,wms_operation.source_number,wms_operation.status,wms_operation.from_location_id,wms_operation.to_location_id,wms_operation.operation_date,wms_operation.contacter_id,wms_operation.contacter_name,wms_operation.company_id,wms_operation.company_name,wms_operation.comment,wms_operation_details.product_id,material.name as product_name,material.unit,wms_operation_details.amount").InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id").InnerJoins("inner join material on material.id=wms_operation_details.product_id").Where("wms_operation.base_operation_type=?", constvar.BaseOperationTypeDisuse)
    if params.Number != "" {
        db = db.Where("wms_operation.number like ? or wms_operation.source_number like ? or material.name like ?", fmt.Sprintf("%%%v%%", params.Number), fmt.Sprintf("%%%v%%", params.Number), fmt.Sprintf("%%%v%%", params.Number))
docs/docs.go
@@ -943,7 +943,7 @@
                }
            }
        },
        "/api-wms/v1/operation/listAll": {
        "/api-wms/v1/operation/listTransfer": {
            "post": {
                "produces": [
                    "application/json"
@@ -951,7 +951,7 @@
                "tags": [
                    "入库/出库"
                ],
                "summary": "调拨",
                "summary": "库存调拨列表",
                "parameters": [
                    {
                        "description": "参数",
@@ -1056,6 +1056,32 @@
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/util.Response"
                        }
                    }
                }
            }
        },
        "/api-wms/v1/operationType/listTransfer": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "业务类型"
                ],
                "summary": "调拨类型列表",
                "parameters": [
                    {
                        "type": "string",
                        "name": "keyword",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/util.ResponseList"
                        }
                    }
                }
@@ -3192,6 +3218,9 @@
                "pageSize": {
                    "description": "每页大小",
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/constvar.OperationStatus"
                }
            }
        },
@@ -3721,8 +3750,6 @@
    Description:      "",
    InfoInstanceName: "swagger",
    SwaggerTemplate:  docTemplate,
    LeftDelim:        "{{",
    RightDelim:       "}}",
}
func init() {
docs/swagger.json
@@ -931,7 +931,7 @@
                }
            }
        },
        "/api-wms/v1/operation/listAll": {
        "/api-wms/v1/operation/listTransfer": {
            "post": {
                "produces": [
                    "application/json"
@@ -939,7 +939,7 @@
                "tags": [
                    "入库/出库"
                ],
                "summary": "调拨",
                "summary": "库存调拨列表",
                "parameters": [
                    {
                        "description": "参数",
@@ -1044,6 +1044,32 @@
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/util.Response"
                        }
                    }
                }
            }
        },
        "/api-wms/v1/operationType/listTransfer": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "业务类型"
                ],
                "summary": "调拨类型列表",
                "parameters": [
                    {
                        "type": "string",
                        "name": "keyword",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "成功",
                        "schema": {
                            "$ref": "#/definitions/util.ResponseList"
                        }
                    }
                }
@@ -3180,6 +3206,9 @@
                "pageSize": {
                    "description": "每页大小",
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/constvar.OperationStatus"
                }
            }
        },
docs/swagger.yaml
@@ -914,6 +914,8 @@
      pageSize:
        description: 每页大小
        type: integer
      status:
        $ref: '#/definitions/constvar.OperationStatus'
    type: object
  request.PageInfo:
    properties:
@@ -1844,7 +1846,7 @@
      summary: 入库/出库列表
      tags:
      - 入库/出库
  /api-wms/v1/operation/listAll:
  /api-wms/v1/operation/listTransfer:
    post:
      parameters:
      - description: 参数
@@ -1860,7 +1862,7 @@
          description: 成功
          schema:
            $ref: '#/definitions/util.Response'
      summary: 调拨
      summary: 库存调拨列表
      tags:
      - 入库/出库
  /api-wms/v1/operation/operation:
@@ -1919,6 +1921,22 @@
      summary: 修改入库/出库信息
      tags:
      - 入库/出库
  /api-wms/v1/operationType/listTransfer:
    get:
      parameters:
      - in: query
        name: keyword
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: 成功
          schema:
            $ref: '#/definitions/util.ResponseList'
      summary: 调拨类型列表
      tags:
      - 业务类型
  /api-wms/v1/operationType/operationType:
    get:
      parameters:
models/location_product_amount.go
@@ -31,18 +31,19 @@
    LocationProductAmountWithOperation struct {
        //LocationProductAmount LocationProductAmount `json:"locationProductAmount"`
        LocationProductAmountId int                      `json:"locationProductAmountId" gorm:"location_product_amount_id"`
        LocationId              int                      `json:"locationId" gorm:"column:location_id"`
        LocationName            string                   `json:"locationName" gorm:"column:location_name"`
        ProductId               string                   `json:"productId" gorm:"column:product_id"`
        ProductName             string                   `json:"productName" gorm:"column:product_name"`
        Amount                  decimal.Decimal          `json:"amount" gorm:"column:amount"`
        Unit                    string                   `json:"unit" gorm:"column:unit"`
        CreateDate              string                   `json:"createDate" gorm:"column:create_date"`
        AdjustAmount            decimal.Decimal          `json:"adjustAmount" gorm:"column:adjust_amount"`
        DifferenceAmount        decimal.Decimal          `json:"differenceAmount" gorm:"-"`
        OperationId             int                      `json:"operationId" gorm:"column:operation_id"`
        Status                  constvar.OperationStatus `json:"status" gorm:"status"`
        LocationProductAmountId int                        `json:"locationProductAmountId" gorm:"location_product_amount_id"`
        LocationId              int                        `json:"locationId" gorm:"column:location_id"`
        LocationName            string                     `json:"locationName" gorm:"column:location_name"`
        ProductId               string                     `json:"productId" gorm:"column:product_id"`
        ProductName             string                     `json:"productName" gorm:"column:product_name"`
        Amount                  decimal.Decimal            `json:"amount" gorm:"column:amount"`
        Unit                    string                     `json:"unit" gorm:"column:unit"`
        CreateDate              string                     `json:"createDate" gorm:"column:create_date"`
        AdjustAmount            decimal.Decimal            `json:"adjustAmount" gorm:"column:adjust_amount"`
        DifferenceAmount        decimal.Decimal            `json:"differenceAmount" gorm:"-"`
        OperationId             int                        `json:"operationId" gorm:"column:operation_id"`
        Status                  constvar.OperationStatus   `json:"status" gorm:"status"`
        BaseOperationType       constvar.BaseOperationType `json:"baseOperationType" gorm:"base_operation_type"`
    }
)
models/operation_type.go
@@ -135,6 +135,10 @@
        db = db.Where("warehouse_id = ?", slf.WarehouseId)
    }
    if int(slf.BaseOperationType) != 0 {
        db = db.Where("base_operation_type = ?", slf.BaseOperationType)
    }
    return db
}
request/operation.go
@@ -40,8 +40,9 @@
type OperationList struct {
    PageInfo
    OperationTypeId int    `json:"operationTypeId" form:"operationTypeId"`
    Number          string `json:"number"`
    OperationTypeId int                      `json:"operationTypeId" form:"operationTypeId"`
    Number          string                   `json:"number"`
    Status          constvar.OperationStatus `json:"status"`
}
type UpdateOperation struct {
request/operation_type.go
@@ -31,3 +31,7 @@
    ID uint `gorm:"comment:主键ID;primaryKey;" json:"id"`
    AddOperationType
}
type ListTransfer struct {
    Keyword string `json:"keyword"`
}
router/router.go
@@ -68,6 +68,7 @@
    operationTypeAPI := r.Group(urlPrefix + "/operationType")
    {
        operationTypeAPI.GET("operationType", operationTypeController.List)          // 获取作业类型列表
        operationTypeAPI.GET("listTransfer", operationTypeController.ListTransfer)   // 获取作业类型列表
        operationTypeAPI.POST("operationType", operationTypeController.Add)          // 新增作业类型
        operationTypeAPI.PUT("operationType/:id", operationTypeController.Update)    // 修改作业类型
        operationTypeAPI.DELETE("operationType/:id", operationTypeController.Delete) // 删除作业类型
@@ -82,7 +83,7 @@
        operationAPI.POST("update", operationController.Update)
        operationAPI.DELETE("operation/:id", operationController.Delete)
        operationAPI.PUT("finish/:id", operationController.Finish)
        operationAPI.POST("listAll", operationController.ListAll)
        operationAPI.POST("listTransfer", operationController.ListTransfer)
    }