From 4041b5571482c5515d15857f59b14a72045350c6 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期一, 23 十月 2023 12:05:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS
---
controllers/product_controller.go | 4
models/operation_type.go | 4 +
controllers/operation_type.go | 42 ++++++++++
controllers/operation.go | 17 ++-
models/location_product_amount.go | 25 +++---
docs/swagger.yaml | 22 +++++
request/operation.go | 5
request/operation_type.go | 4 +
docs/docs.go | 35 +++++++-
docs/swagger.json | 33 +++++++
controllers/location_product_amount.go | 2
router/router.go | 3
12 files changed, 163 insertions(+), 33 deletions(-)
diff --git a/controllers/location_product_amount.go b/controllers/location_product_amount.go
index 23c0ff3..f895a6c 100644
--- a/controllers/location_product_amount.go
+++ b/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)
}
diff --git a/controllers/operation.go b/controllers/operation.go
index dc07598..7f0bad0 100644
--- a/controllers/operation.go
+++ b/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(¶ms); err != nil {
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�:"+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
diff --git a/controllers/operation_type.go b/controllers/operation_type.go
index 8737781..0ce0a9b 100644
--- a/controllers/operation_type.go
+++ b/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(¶ms); 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)
+}
diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index 54ac018..9dee846 100644
--- a/controllers/product_controller.go
+++ b/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))
diff --git a/docs/docs.go b/docs/docs.go
index 5255a2b..364970e 100644
--- a/docs/docs.go
+++ b/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() {
diff --git a/docs/swagger.json b/docs/swagger.json
index 54e4fa3..aa533b1 100644
--- a/docs/swagger.json
+++ b/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"
}
}
},
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index b126c9c..4f54f49 100644
--- a/docs/swagger.yaml
+++ b/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:
diff --git a/models/location_product_amount.go b/models/location_product_amount.go
index b51e00c..0700984 100644
--- a/models/location_product_amount.go
+++ b/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"`
}
)
diff --git a/models/operation_type.go b/models/operation_type.go
index 5c1c4b3..ed03f46 100644
--- a/models/operation_type.go
+++ b/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
}
diff --git a/request/operation.go b/request/operation.go
index a507a13..ba5b594 100644
--- a/request/operation.go
+++ b/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 {
diff --git a/request/operation_type.go b/request/operation_type.go
index a76c5d3..573eb4d 100644
--- a/request/operation_type.go
+++ b/request/operation_type.go
@@ -31,3 +31,7 @@
ID uint `gorm:"comment:涓婚敭ID;primaryKey;" json:"id"`
AddOperationType
}
+
+type ListTransfer struct {
+ Keyword string `json:"keyword"`
+}
diff --git a/router/router.go b/router/router.go
index 1ac4c3f..4ac8ab8 100644
--- a/router/router.go
+++ b/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)
}
--
Gitblit v1.8.0