From 07ecf8f047049c92193018d8f0e683bf3a49791e Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期三, 18 十月 2023 16:28:06 +0800
Subject: [PATCH] 报表模块修改
---
models/product_category.go | 2
request/report_forms_request.go | 2
models/location_product.go | 8 ++
controllers/report_forms_controller.go | 39 +++++++-----
docs/swagger.yaml | 21 ++++++
controllers/location.go | 24 +++++--
docs/docs.go | 28 ++++++++
docs/swagger.json | 28 ++++++++
8 files changed, 121 insertions(+), 31 deletions(-)
diff --git a/controllers/location.go b/controllers/location.go
index 5785eb6..e545fb9 100644
--- a/controllers/location.go
+++ b/controllers/location.go
@@ -4,7 +4,6 @@
"errors"
"github.com/gin-gonic/gin"
"strconv"
- "strings"
"wms/extend/code"
"wms/extend/util"
"wms/models"
@@ -115,13 +114,24 @@
util.ResponseFormat(c, code.RequestParamError, err)
return
}
- index := strings.LastIndex(params.JointName, "/")
- if index > 0 {
- jn := params.JointName[:index]
- oldName := params.JointName[index+1:]
- if oldName != params.Name {
- params.JointName = jn + "/" + params.Name
+ //index := strings.LastIndex(params.JointName, "/")
+ //if index > 0 {
+ // jn := params.JointName[:index]
+ // oldName := params.JointName[index+1:]
+ // if oldName != params.Name {
+ // params.JointName = jn + "/" + params.Name
+ // }
+ //}
+ if params.ParentId != 0 {
+ //鏌ヨ涓婄骇鍚嶇О
+ first, err := models.NewLocationSearch().SetID(params.ParentId).First()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ヨ涓婄骇鍚嶇О澶辫触")
+ return
}
+ params.JointName = first.JointName + "/" + params.Name
+ } else {
+ params.JointName = params.Name
}
err := models.NewLocationSearch().Update(¶ms)
if err != nil {
diff --git a/controllers/report_forms_controller.go b/controllers/report_forms_controller.go
index db62c73..d536b4a 100644
--- a/controllers/report_forms_controller.go
+++ b/controllers/report_forms_controller.go
@@ -1,6 +1,7 @@
package controllers
import (
+ "fmt"
"github.com/gin-gonic/gin"
"wms/constvar"
"wms/extend/code"
@@ -28,20 +29,31 @@
}
//鏌ヨ浜у搧
search := models.NewMaterialSearch()
- if params.PageInfo.Check() {
- search.SetPage(params.Page, params.PageSize)
+ search.Orm = search.Orm.Model(&models.Material{}).
+ Select(`material.id, material.name, material.cost, material.amount, material.unit, wms_product_category.name as category_name `).
+ Joins("left join wms_product_category on material.category_id = wms_product_category.id")
+ if len(params.CategoryIds) > 0 {
+ search.Orm.Where("material.category_id in (?)", params.CategoryIds)
}
- materials, total, err := search.SetCategoryIds(params.CategoryIds).Find()
- if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "鏌ヨ浜у搧绫诲瀷澶辫触")
+ if params.KeyWord != "" {
+ search.Orm.Where("material.name like ?", "%"+params.KeyWord+"%").Or("wms_product_category.name like ?", "%"+params.KeyWord+"%")
+ }
+ var (
+ materials = make([]*models.Material, 0)
+ total int64
+ )
+ if err := search.Orm.Count(&total).Error; err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ヨtotal澶辫触")
return
}
- //鏌ヨ浜у搧绫诲瀷
- categories, err := models.NewProductCategorySearch().SetIds(params.CategoryIds).FindNotTotal()
- if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "鏌ヨ浜у搧绫诲瀷澶辫触")
+ if params.Page*params.PageSize > 0 {
+ search.Orm = search.Orm.Offset((params.Page - 1) * params.PageSize).Limit(params.PageSize)
+ }
+ if err := search.Orm.Find(&materials).Error; err != nil {
+ util.ResponseFormat(c, code.RequestParamError, fmt.Errorf("鏌ヨ浜у搧澶辫触: %v", err))
return
}
+
//鏌ヨ鍑哄叆搴撴暟閲�
locations, err := models.NewLocationSearch().SetJointName(params.WarehouseCode).FindNotTotal()
if err != nil {
@@ -85,12 +97,7 @@
resp.Amount = material.Amount
resp.Unit = material.Unit
resp.Value = material.Amount.Mul(material.Cost)
- for _, category := range categories {
- if material.CategoryId == int(category.ID) {
- resp.ProductType = category.Name
- break
- }
- }
+ resp.ProductType = material.CategoryName
for _, details := range inHouse {
if material.ID == details.ProductId {
resp.In = resp.In.Add(details.Amount)
@@ -166,7 +173,7 @@
// @Tags 鎶ヨ〃
// @Summary 鑾峰彇浣嶇疆鎶ヨ〃
// @Produce application/json
-// @Param object body request.PageInfo true "鏌ヨ鍙傛暟"
+// @Param object body request.GetLocationForms true "鏌ヨ鍙傛暟"
// @Success 200 {object} util.ResponseList{data=[]response.LocationForms} "鎴愬姛"
// @Router /api-wms/v1/forms/getLocationForms [post]
func (slf ReportFormsController) GetLocationForms(c *gin.Context) {
diff --git a/docs/docs.go b/docs/docs.go
index d00b1a0..3f9e79b 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -400,7 +400,7 @@
"in": "body",
"required": true,
"schema": {
- "$ref": "#/definitions/request.PageInfo"
+ "$ref": "#/definitions/request.GetLocationForms"
}
}
],
@@ -2645,7 +2645,7 @@
]
},
"name": {
- "description": "浣嶇疆鍚嶇О",
+ "description": "鍒嗙被鍚嶇О",
"type": "string"
},
"parentId": {
@@ -3058,6 +3058,10 @@
"type": "integer"
}
},
+ "keyWord": {
+ "description": "鎼滅储鏉′欢",
+ "type": "string"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -3075,6 +3079,10 @@
"request.GetInventoryHistory": {
"type": "object",
"properties": {
+ "keyWord": {
+ "description": "鎼滅储鏉′欢",
+ "type": "string"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -3097,6 +3105,22 @@
}
}
},
+ "request.GetLocationForms": {
+ "type": "object",
+ "properties": {
+ "keyWord": {
+ "type": "string"
+ },
+ "page": {
+ "description": "椤电爜",
+ "type": "integer"
+ },
+ "pageSize": {
+ "description": "姣忛〉澶у皬",
+ "type": "integer"
+ }
+ }
+ },
"request.GetProductList": {
"type": "object",
"properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 21bebce..ca450f4 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -388,7 +388,7 @@
"in": "body",
"required": true,
"schema": {
- "$ref": "#/definitions/request.PageInfo"
+ "$ref": "#/definitions/request.GetLocationForms"
}
}
],
@@ -2633,7 +2633,7 @@
]
},
"name": {
- "description": "浣嶇疆鍚嶇О",
+ "description": "鍒嗙被鍚嶇О",
"type": "string"
},
"parentId": {
@@ -3046,6 +3046,10 @@
"type": "integer"
}
},
+ "keyWord": {
+ "description": "鎼滅储鏉′欢",
+ "type": "string"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -3063,6 +3067,10 @@
"request.GetInventoryHistory": {
"type": "object",
"properties": {
+ "keyWord": {
+ "description": "鎼滅储鏉′欢",
+ "type": "string"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -3085,6 +3093,22 @@
}
}
},
+ "request.GetLocationForms": {
+ "type": "object",
+ "properties": {
+ "keyWord": {
+ "type": "string"
+ },
+ "page": {
+ "description": "椤电爜",
+ "type": "integer"
+ },
+ "pageSize": {
+ "description": "姣忛〉澶у皬",
+ "type": "integer"
+ }
+ }
+ },
"request.GetProductList": {
"type": "object",
"properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 9d205d5..3ab260e 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -529,7 +529,7 @@
- $ref: '#/definitions/constvar.InventoryValuation'
description: 搴撳瓨璁′环
name:
- description: 浣嶇疆鍚嶇О
+ description: 鍒嗙被鍚嶇О
type: string
parentId:
description: 涓婄骇id
@@ -818,6 +818,9 @@
items:
type: integer
type: array
+ keyWord:
+ description: 鎼滅储鏉′欢
+ type: string
page:
description: 椤电爜
type: integer
@@ -830,6 +833,9 @@
type: object
request.GetInventoryHistory:
properties:
+ keyWord:
+ description: 鎼滅储鏉′欢
+ type: string
page:
description: 椤电爜
type: integer
@@ -845,6 +851,17 @@
unit:
description: 鍗曚綅
type: string
+ type: object
+ request.GetLocationForms:
+ properties:
+ keyWord:
+ type: string
+ page:
+ description: 椤电爜
+ type: integer
+ pageSize:
+ description: 姣忛〉澶у皬
+ type: integer
type: object
request.GetProductList:
properties:
@@ -1493,7 +1510,7 @@
name: object
required: true
schema:
- $ref: '#/definitions/request.PageInfo'
+ $ref: '#/definitions/request.GetLocationForms'
produces:
- application/json
responses:
diff --git a/models/location_product.go b/models/location_product.go
index 520b18a..c3f26c6 100644
--- a/models/location_product.go
+++ b/models/location_product.go
@@ -90,7 +90,13 @@
}
if slf.Keyword != "" {
- db = db.Where("product_name like ?", fmt.Sprintf("%%%v%%", slf.Keyword))
+ //db = db.Where("Product.name like ?", fmt.Sprintf("%%%v%%", slf.Keyword))
+ db.Joins("left join wms_location on wms_location_product.location_id = wms_location.id").
+ Joins("left join material on wms_location_product.product_id = material.id").
+ Joins("left join wms_product_category on wms_location_product.product_category_id = wms_product_category.id").
+ Where("wms_location.name like ?", fmt.Sprintf("%%%v%%", slf.Keyword)).
+ Or("material.name like ?", fmt.Sprintf("%%%v%%", slf.Keyword)).
+ Or("wms_product_category.name like ?", fmt.Sprintf("%%%v%%", slf.Keyword))
}
if slf.Preload {
diff --git a/models/product_category.go b/models/product_category.go
index cb91852..62f611d 100644
--- a/models/product_category.go
+++ b/models/product_category.go
@@ -11,7 +11,7 @@
// ProductCategory 浜у搧鍒嗙被
ProductCategory struct {
BaseModelInt
- Name string `json:"name" gorm:"index;type:varchar(255);not null;comment:鍒嗙被鍚嶇О"` //浣嶇疆鍚嶇О
+ Name string `json:"name" gorm:"index;type:varchar(255);not null;comment:鍒嗙被鍚嶇О"` //鍒嗙被鍚嶇О
ParentId int `json:"parentId" gorm:"type:int;comment:涓婄骇鍒嗙被id"` //涓婄骇id
RouteId int `json:"routeId" gorm:"type:int;comment:璺嚎id"` //璺嚎id
RouteName string `json:"routeName" gorm:"type:varchar(512);comment:璺嚎鍚嶇О"` //鍏徃
diff --git a/request/report_forms_request.go b/request/report_forms_request.go
index f659a9b..11a80ef 100644
--- a/request/report_forms_request.go
+++ b/request/report_forms_request.go
@@ -4,6 +4,7 @@
PageInfo
CategoryIds []int `json:"categoryIds"` //浜у搧绫诲瀷id
WarehouseCode string `json:"warehouseCode"` //浠撳簱缂╁啓
+ KeyWord string `json:"keyWord"` //鎼滅储鏉′欢
}
type GetInventoryHistory struct {
@@ -11,6 +12,7 @@
ProduceId string `json:"produceId"` //浜у搧id
ProductName string `json:"productName"` //浜у搧鍚嶇О
Unit string `json:"unit"` //鍗曚綅
+ KeyWord string `json:"keyWord"` //鎼滅储鏉′欢
}
type GetLocationForms struct {
--
Gitblit v1.8.0