jiangshuai
2023-12-11 4b0ca9ae49aeddc7496de6e2ed98544c2fa9a463
研发出入库明细列表接口服务
4个文件已修改
49 ■■■■■ 已修改文件
controllers/operation.go 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/operation.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
request/operation.go 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/operation.go
@@ -20,6 +20,7 @@
    "wms/models"
    "wms/opa"
    "wms/pkg/logx"
    "wms/pkg/mysqlx"
    "wms/pkg/structx"
    "wms/proto/client"
    "wms/proto/init_client"
@@ -1157,3 +1158,42 @@
    }
    util.ResponseFormat(c, code.Success, resp.List)
}
// ListByCondition
// @Tags      入库/出库
// @Summary   出入库明细
// @Produce   application/json
// @Param     object  body  request.OperationAllList true  "参数"
// @Success   200 {object} util.Response "成功"
// @Router    /api-wms/v1/operation/listByCondition [post]
func (slf OperationController) ListByCondition(c *gin.Context) {
    var params request.OperationCondition
    if err := c.BindJSON(&params); err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误:"+err.Error())
        return
    }
    if !params.PageInfo.Check() {
        util.ResponseFormat(c, code.RequestParamError, "数据分页信息错误")
        return
    }
    db := mysqlx.GetDB().Table("wms_operation").Select("wms_operation.id,wms_operation.number,wms_operation.base_operation_type,material.id AS product_id,material.`name` AS product_name,wms_operation_details.amount,material.unit,wms_operation.from_location_id,from_location.`name` AS from_location,wms_operation.to_location_id,to_location.`name` AS to_location,wms_operation.operation_date as date").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").InnerJoins("INNER JOIN wms_location AS from_location ON from_location.id = wms_operation.from_location_id").InnerJoins("INNER JOIN wms_location AS to_location ON to_location.id = wms_operation.to_location_id")
    if params.Condition != "" {
        db = db.Where("wms_operation.number like ? or wms_operation.source_number like ? or from_location.`name` like ? or to_location.`name` like ?", "%"+params.Condition+"%", "%"+params.Condition+"%", "%"+params.Condition+"%", "%"+params.Condition+"%")
    }
    var (
        records = make([]*models.MoveHistory, 0)
        total   int64
    )
    if err := db.Count(&total).Error; err != nil {
        util.ResponseFormat(c, code.RequestError, "查找失败:"+err.Error())
        return
    }
    if err := db.Offset((params.Page - 1) * params.PageSize).Limit(params.PageSize).Find(&records).Error; err != nil {
        util.ResponseFormat(c, code.RequestError, "查找失败:"+err.Error())
        return
    }
    util.ResponseFormatListWithPage(c, code.Success, records, int(total), params.Page, params.PageSize)
}
models/operation.go
@@ -158,8 +158,7 @@
    }
    if slf.Preload {
        db = db.Model(&Operation{}).Preload("Details").Preload("Details.Product").Preload("FromLocation").
            Preload("ToLocation").Preload("LogisticCompany")
        db = db.Model(&Operation{}).Preload("Details").Preload("Details.Product").Preload("LogisticCompany").Preload("FromLocation").Preload("ToLocation")
    }
    if slf.Disuse {
request/operation.go
@@ -77,3 +77,8 @@
    Number       string `json:"number"`
    SourceNumber string `json:"sourceNumber"`
}
type OperationCondition struct {
    PageInfo
    Condition string `json:"condition"`
}
router/router.go
@@ -92,6 +92,7 @@
        operationAPI.PUT("outputOperation/:id", operationController.OutputOperation)
        operationAPI.GET("getSupplierList", operationController.GetSupplierList)
        operationAPI.GET("getClientList", operationController.GetClientList)
        operationAPI.POST("listByCondition", operationController.ListByCondition)
    }