From 55bd24a2d654052d4c4c8eb6e7bee244af81d446 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期四, 19 十月 2023 15:53:22 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS
---
models/product_category.go | 2
request/report_forms_request.go | 2
models/location_product.go | 8 +
controllers/report_forms_controller.go | 51 +++++++-----
models/db.go | 1
models/location.go | 24 ++++++
docs/swagger.yaml | 21 ++++
controllers/location.go | 24 ++++-
docs/docs.go | 30 +++++++
docs/swagger.json | 28 ++++++
10 files changed, 154 insertions(+), 37 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..85a48da 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 {
@@ -57,13 +69,13 @@
dbIn := models.NewOperationDetailsSearch().Orm.Model(&models.OperationDetails{}).
Joins("left join wms_operation ON wms_operation_details.operation_id=wms_operation.id").
Where("wms_operation.base_operation_type=?", constvar.BaseOperationTypeIncoming).
- Where("wms_operation.status=?", constvar.OperationStatus_Ready)
+ Where("wms_operation.status in (?)", []int{3, 4})
dbOut := models.NewOperationDetailsSearch().Orm.Model(&models.OperationDetails{}).
Joins("left join wms_operation ON wms_operation_details.operation_id=wms_operation.id").
Where("wms_operation.base_operation_type=?", constvar.BaseOperationTypeOutgoing).
- Where("wms_operation.status=?", constvar.OperationStatus_Ready)
+ Where("wms_operation.status in (?)", []int{3, 4})
if len(locationIds) > 0 {
- dbIn.Where("wms_operation.from_location_id in (?)", locationIds)
+ dbIn.Where("wms_operation.to_location_id in (?)", locationIds)
dbOut.Where("wms_operation.from_location_id in (?)", locationIds)
}
err = dbIn.Find(&inHouse).Error
@@ -82,15 +94,9 @@
resp.ProduceId = material.ID
resp.ProductName = material.Name
resp.Cost = material.Cost
- 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)
@@ -101,6 +107,7 @@
resp.Out = resp.Out.Add(details.Amount)
}
}
+ resp.Amount = resp.In.Sub(resp.Out)
resp.AvailableNumber = resp.Amount
result = append(result, resp)
}
@@ -125,7 +132,7 @@
if params.PageInfo.Check() {
detailsSearch.SetPage(params.Page, params.PageSize)
}
- details, total, err := detailsSearch.SetProductId(params.ProduceId).Find()
+ details, err := detailsSearch.SetProductId(params.ProduceId).FindNotTotal()
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鏌ヨ鎿嶄綔璇︽儏澶辫触")
return
@@ -135,7 +142,7 @@
operationIds = append(operationIds, detail.OperationID)
}
//鑾峰彇宸插畬鎴愮殑鎿嶄綔璁板綍
- operations, err := models.NewOperationSearch().SetIds(operationIds).SetStatus(constvar.OperationStatus_Finish).FindNotTotal()
+ operations, total, err := models.NewOperationSearch().SetIds(operationIds).SetStatus(constvar.OperationStatus_Finish).Find()
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鏌ヨ鎿嶄綔璁板綍澶辫触")
return
@@ -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 4e48dec..80291e3 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": {
@@ -3062,6 +3062,10 @@
"type": "integer"
}
},
+ "keyWord": {
+ "description": "鎼滅储鏉′欢",
+ "type": "string"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -3079,6 +3083,10 @@
"request.GetInventoryHistory": {
"type": "object",
"properties": {
+ "keyWord": {
+ "description": "鎼滅储鏉′欢",
+ "type": "string"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -3098,6 +3106,22 @@
"unit": {
"description": "鍗曚綅",
"type": "string"
+ }
+ }
+ },
+ "request.GetLocationForms": {
+ "type": "object",
+ "properties": {
+ "keyWord": {
+ "type": "string"
+ },
+ "page": {
+ "description": "椤电爜",
+ "type": "integer"
+ },
+ "pageSize": {
+ "description": "姣忛〉澶у皬",
+ "type": "integer"
}
}
},
@@ -3710,6 +3734,8 @@
Description: "",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
+ LeftDelim: "{{",
+ RightDelim: "}}",
}
func init() {
diff --git a/docs/swagger.json b/docs/swagger.json
index b94892c..ccf0c51 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": {
@@ -3050,6 +3050,10 @@
"type": "integer"
}
},
+ "keyWord": {
+ "description": "鎼滅储鏉′欢",
+ "type": "string"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -3067,6 +3071,10 @@
"request.GetInventoryHistory": {
"type": "object",
"properties": {
+ "keyWord": {
+ "description": "鎼滅储鏉′欢",
+ "type": "string"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -3089,6 +3097,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 ba837a0..64383bf 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
@@ -821,6 +821,9 @@
items:
type: integer
type: array
+ keyWord:
+ description: 鎼滅储鏉′欢
+ type: string
page:
description: 椤电爜
type: integer
@@ -833,6 +836,9 @@
type: object
request.GetInventoryHistory:
properties:
+ keyWord:
+ description: 鎼滅储鏉′欢
+ type: string
page:
description: 椤电爜
type: integer
@@ -848,6 +854,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:
@@ -1499,7 +1516,7 @@
name: object
required: true
schema:
- $ref: '#/definitions/request.PageInfo'
+ $ref: '#/definitions/request.GetLocationForms'
produces:
- application/json
responses:
diff --git a/models/db.go b/models/db.go
index 8f47201..a1570c8 100644
--- a/models/db.go
+++ b/models/db.go
@@ -98,6 +98,7 @@
func InsertDefaultData() {
models := []interface{}{
NewDepartmentSearch(),
+ NewLocationSearch(),
}
for _, model := range models {
if id, ok := model.(InitDefaultData); ok {
diff --git a/models/location.go b/models/location.go
index 64676df..15830ea 100644
--- a/models/location.go
+++ b/models/location.go
@@ -317,3 +317,27 @@
}
return records, nil
}
+
+// InitDefaultData 鍒濆鍖栨暟鎹�
+func (slf *LocationSearch) InitDefaultData() error {
+ var (
+ db = slf.Orm.Table(slf.TableName())
+ total int64 = 0
+ )
+ if err := db.Count(&total).Error; err != nil {
+ return err
+ }
+ if total != 0 {
+ return nil
+ }
+ locations := make([]*Location, 0)
+ locations = append(locations, &Location{Name: "渚涘簲鍟嗕綅缃�", Type: 1, JointName: "渚涘簲鍟嗕綅缃�"})
+ locations = append(locations, &Location{Name: "瑙嗗浘", Type: 2, JointName: "瑙嗗浘"})
+ locations = append(locations, &Location{Name: "瀹㈡埛浣嶇疆", Type: 4, JointName: "瀹㈡埛浣嶇疆"})
+ locations = append(locations, &Location{Name: "搴撳瓨鎹熷け", Type: 5, JointName: "搴撳瓨鎹熷け"})
+ locations = append(locations, &Location{Name: "鐢熶骇", Type: 6, JointName: "鐢熶骇"})
+ locations = append(locations, &Location{Name: "涓浆浣嶇疆", Type: 7, JointName: "涓浆浣嶇疆"})
+ locations = append(locations, &Location{Name: "鎶ュ簾浣嶇疆", Type: 8, JointName: "鎶ュ簾浣嶇疆"})
+ locations = append(locations, &Location{Name: "搴撳瓨鐩樼偣", Type: 9, JointName: "搴撳瓨鐩樼偣"})
+ return slf.CreateBatch(locations)
+}
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