From cb660c4be22610730966db2a4a36c3a7c008b579 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期三, 27 九月 2023 17:23:01 +0800
Subject: [PATCH] 1.二期一部分代码
---
controllers/product_controller.go | 30 +++++
models/location_product_amount.go | 1
request/location_product_amount.go | 1
request/product_request.go | 6 +
docs/swagger.yaml | 39 ++++++
docs/docs.go | 64 ++++++++++
docs/swagger.json | 64 ++++++++++
controllers/location_product_amount.go | 96 +++++++++++++++
router/router.go | 2
9 files changed, 298 insertions(+), 5 deletions(-)
diff --git a/controllers/location_product_amount.go b/controllers/location_product_amount.go
index 5e0b383..c2c1c16 100644
--- a/controllers/location_product_amount.go
+++ b/controllers/location_product_amount.go
@@ -48,7 +48,8 @@
wms_location_product_amount.amount,
material.unit,
wms_location_product_amount.create_date,
- wms_operation_details.amount as adjust_amount`).
+ wms_operation_details.amount as adjust_amount,
+ wms_operation.id as operation_id`).
InnerJoins("inner join wms_location_product on wms_location_product.id=wms_location_product_amount.location_product_id").
InnerJoins("inner join wms_location on wms_location.id=wms_location_product.location_id").
InnerJoins("inner join wms_operation_details on wms_operation_details.product_id=wms_location_product.product_id").
@@ -125,11 +126,12 @@
util.ResponseFormat(c, code.RequestParamError, err.Error())
return
}
- reqParams.AdjustAmount = reqParams.Amount.Sub(reqParams.DifferenceAmount)
- //reqParams.AdjustAmount = reqParams.DifferenceAmount.Sub(reqParams.Amount)
+ //reqParams.AdjustAmount = reqParams.Amount.Sub(reqParams.DifferenceAmount)
+ reqParams.AdjustAmount = reqParams.DifferenceAmount.Sub(reqParams.Amount)
locAmount := models.LocationProductAmount{
LocationProductId: locProduct.Id,
Amount: decimal.NewFromInt(0),
+ CreateDate: time.Now().Format("2006-01-02 15:04:05"),
}
detail := &models.OperationDetails{
ProductId: reqParams.ProductId,
@@ -142,8 +144,8 @@
Comment: "搴撳瓨鐩樼偣",
BaseOperationType: constvar.BaseOperationTypeAdjust,
Details: []*models.OperationDetails{detail},
- FromLocationID: reqParams.LocationId,
- ToLocationID: location.Id,
+ FromLocationID: location.Id,
+ ToLocationID: reqParams.LocationId,
}
//if reqParams.AdjustAmount.GreaterThanOrEqual(decimal.NewFromInt(0)) {
@@ -169,3 +171,87 @@
util.ResponseFormat(c, code.Success, "娣诲姞鎴愬姛")
}
+
+// Add
+// @Tags 搴撳瓨鐩樼偣
+// @Summary 淇敼搴撳瓨鐩樼偣淇℃伅
+// @Produce application/json
+// @Param object body request.UpdateLocationProductAmount true "鍏ュ簱/鍑哄簱淇℃伅"
+// @Success 200 {object} util.Response "鎴愬姛"
+// @Router /api-wms/v1/locationProductAmount/update [post]
+//func (slf LocationProductAmountController) Update(c *gin.Context) {
+// var reqParams request.UpdateLocationProductAmount
+// if err := c.BindJSON(&reqParams); err != nil {
+// util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+// return
+// }
+//
+// var existCount int64
+// if err := models.NewOperationSearch().Orm.Table("wms_operation").InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id").Where("wms_operation.from_location_id=? and wms_operation_details.product_id=? and wms_operation.base_operation_type=? and wms_operation.status=?", reqParams.LocationId, reqParams.ProductId, constvar.BaseOperationTypeAdjust, constvar.OperationStatus_Ready).Count(&existCount).Error; err != nil {
+// util.ResponseFormat(c, code.RequestParamError, err.Error())
+// return
+// }
+// if existCount > 0 {
+// util.ResponseFormat(c, code.RequestError, "璇ュ晢鍝佸湪宸查�変腑鐨勪綅缃瓨鍦ㄦ湭楠岃瘉鐨勫簱瀛樼洏鐐逛俊鎭紝鏃犳硶缁х画娣诲姞鐩稿叧淇℃伅")
+// return
+// }
+//
+// locProduct, err := models.NewLocationProductSearch().SetLocationId(reqParams.LocationId).SetProductId(reqParams.ProductId).First()
+// if err != nil {
+// util.ResponseFormat(c, code.RequestParamError, "鍙傛暟寮傚父锛屾湭鎵惧埌璇ヤ笂鏋惰鍒�")
+// return
+// }
+// if locProduct.Id == 0 {
+// util.ResponseFormat(c, code.RequestError, "涓嶅瓨鍦ㄨ涓婃灦瑙勫垯锛屾棤娉曡繘琛屽簱瀛樼洏鐐�")
+// return
+// }
+// location, err := models.NewLocationSearch().SetType(int(constvar.LocationTypeAdjust)).First()
+// if err != nil {
+// util.ResponseFormat(c, code.RequestParamError, err.Error())
+// return
+// }
+// //reqParams.AdjustAmount = reqParams.Amount.Sub(reqParams.DifferenceAmount)
+// reqParams.AdjustAmount = reqParams.DifferenceAmount.Sub(reqParams.Amount)
+// locAmount := models.LocationProductAmount{
+// LocationProductId: locProduct.Id,
+// Amount: decimal.NewFromInt(0),
+// CreateDate: time.Now().Format("2006-01-02 15:04:05"),
+// }
+// detail := &models.OperationDetails{
+// ProductId: reqParams.ProductId,
+// Amount: reqParams.AdjustAmount,
+// }
+// operation := models.Operation{
+// Number: strconv.FormatInt(time.Now().Unix(), 10),
+// Status: constvar.OperationStatus_Ready,
+// OperationDate: time.Now().Format("2006-01-02 15:04:05"),
+// Comment: "搴撳瓨鐩樼偣",
+// BaseOperationType: constvar.BaseOperationTypeAdjust,
+// Details: []*models.OperationDetails{detail},
+// FromLocationID: location.Id,
+// ToLocationID: reqParams.LocationId,
+// }
+//
+// //if reqParams.AdjustAmount.GreaterThanOrEqual(decimal.NewFromInt(0)) {
+// // operation.FromLocationID = Location.Id
+// // operation.ToLocationID = reqParams.LocationId
+// //} else {
+// // operation.FromLocationID = reqParams.LocationId
+// // operation.ToLocationID = Location.Id
+// //}
+//
+// if err := models.WithTransaction(func(tx *gorm.DB) error {
+// if err := models.NewOperationSearch().SetOrm(tx).Create(&operation); err != nil {
+// return err
+// }
+// if err := models.NewLocationProductAmountSearch().SetOrm(tx).Create(&locAmount); err != nil {
+// return err
+// }
+// return nil
+// }); err != nil {
+// util.ResponseFormat(c, code.RequestError, err.Error())
+// return
+// }
+//
+// util.ResponseFormat(c, code.Success, "娣诲姞鎴愬姛")
+//}
diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index c1f3d00..333d2b0 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -566,3 +566,33 @@
}
util.ResponseFormat(c, code.Success, "娣诲姞鎴愬姛")
}
+
+// ListHistory
+// @Tags 浜у搧
+// @Summary 浜у搧浣嶇疆鍘嗗彶淇℃伅
+// @Produce application/json
+// @Param object body request.QueryOperationHistory true "鏌ヨ鍙傛暟"
+// @Success 200 {object} util.ResponseList{data=[]models.Operation} "鎴愬姛"
+// @Router /api-wms/v1/product/listHistory [post]
+func (slf ProductController) ListHistory(c *gin.Context) {
+ var params request.QueryOperationHistory
+ if err := c.BindJSON(¶ms); err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�:"+err.Error())
+ return
+ }
+ if !params.PageInfo.Check() {
+ util.ResponseFormat(c, code.RequestParamError, "椤电爜淇℃伅閿欒")
+ return
+ }
+
+ search := models.NewOperationSearch().SetPage(params.Page, params.PageSize).SetPreload(true).SetOrder("created_at desc")
+ search.SetOrm(search.Orm.InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id").Where("wms_operation_details.product_id=? and (wms_operation.from_location_id=? or wms_operation.to_location_id=?)", params.ProductId, params.LocationId, params.LocationId))
+
+ list, total, err := search.Find()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestError, "鏌ユ壘澶辫触:"+err.Error())
+ return
+ }
+
+ util.ResponseFormatListWithPage(c, code.Success, list, int(total), params.Page, params.PageSize)
+}
diff --git a/docs/docs.go b/docs/docs.go
index e2104ff..d20b847 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -1324,6 +1324,51 @@
}
}
},
+ "/api-wms/v1/product/listHistory": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "浜у搧"
+ ],
+ "summary": "浜у搧浣嶇疆鍘嗗彶淇℃伅",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.QueryOperationHistory"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "鎴愬姛",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/util.ResponseList"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/models.Operation"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
"/api-wms/v1/product/listOperaton": {
"post": {
"produces": [
@@ -2855,6 +2900,25 @@
}
}
},
+ "request.QueryOperationHistory": {
+ "type": "object",
+ "properties": {
+ "locationId": {
+ "type": "integer"
+ },
+ "page": {
+ "description": "椤电爜",
+ "type": "integer"
+ },
+ "pageSize": {
+ "description": "姣忛〉澶у皬",
+ "type": "integer"
+ },
+ "productId": {
+ "type": "string"
+ }
+ }
+ },
"request.QueryOperationList": {
"type": "object",
"properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index ff7fbba..330c147 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -1312,6 +1312,51 @@
}
}
},
+ "/api-wms/v1/product/listHistory": {
+ "post": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "浜у搧"
+ ],
+ "summary": "浜у搧浣嶇疆鍘嗗彶淇℃伅",
+ "parameters": [
+ {
+ "description": "鏌ヨ鍙傛暟",
+ "name": "object",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/request.QueryOperationHistory"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "鎴愬姛",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/util.ResponseList"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/models.Operation"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
"/api-wms/v1/product/listOperaton": {
"post": {
"produces": [
@@ -2843,6 +2888,25 @@
}
}
},
+ "request.QueryOperationHistory": {
+ "type": "object",
+ "properties": {
+ "locationId": {
+ "type": "integer"
+ },
+ "page": {
+ "description": "椤电爜",
+ "type": "integer"
+ },
+ "pageSize": {
+ "description": "姣忛〉澶у皬",
+ "type": "integer"
+ },
+ "productId": {
+ "type": "string"
+ }
+ }
+ },
"request.QueryOperationList": {
"type": "object",
"properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 706069c..a87ffb6 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -875,6 +875,19 @@
sourceNumber:
type: string
type: object
+ request.QueryOperationHistory:
+ properties:
+ locationId:
+ type: integer
+ page:
+ description: 椤电爜
+ type: integer
+ pageSize:
+ description: 姣忛〉澶у皬
+ type: integer
+ productId:
+ type: string
+ type: object
request.QueryOperationList:
properties:
page:
@@ -1890,6 +1903,32 @@
summary: 鎶ュ簾鍒楄〃
tags:
- 浜у搧
+ /api-wms/v1/product/listHistory:
+ post:
+ parameters:
+ - description: 鏌ヨ鍙傛暟
+ in: body
+ name: object
+ required: true
+ schema:
+ $ref: '#/definitions/request.QueryOperationHistory'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 鎴愬姛
+ schema:
+ allOf:
+ - $ref: '#/definitions/util.ResponseList'
+ - properties:
+ data:
+ items:
+ $ref: '#/definitions/models.Operation'
+ type: array
+ type: object
+ summary: 浜у搧浣嶇疆鍘嗗彶淇℃伅
+ tags:
+ - 浜у搧
/api-wms/v1/product/listOperaton:
post:
parameters:
diff --git a/models/location_product_amount.go b/models/location_product_amount.go
index c2ee64c..1f77ec0 100644
--- a/models/location_product_amount.go
+++ b/models/location_product_amount.go
@@ -38,6 +38,7 @@
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"`
}
)
diff --git a/request/location_product_amount.go b/request/location_product_amount.go
index 78adb84..faa7b02 100644
--- a/request/location_product_amount.go
+++ b/request/location_product_amount.go
@@ -14,4 +14,5 @@
LocationProductAmountId int `json:"locationProductAmountId"` //搴撳瓨鐩樼偣id
AdjustAmount decimal.Decimal `json:"adjustAmount" ` //宸��
DifferenceAmount decimal.Decimal `json:"differenceAmount"` //璁℃暟鏁伴噺
+ OperationId int `json:"operationId"` //鍑哄叆搴搃d
}
diff --git a/request/product_request.go b/request/product_request.go
index c0e7ea7..6cdafe1 100644
--- a/request/product_request.go
+++ b/request/product_request.go
@@ -44,3 +44,9 @@
OperationDate string `json:"operationDate"`
BaseOperationType constvar.BaseOperationType `json:"baseOperationType"`
}
+
+type QueryOperationHistory struct {
+ PageInfo
+ ProductId string `json:"productId"`
+ LocationId int `json:"locationId"`
+}
diff --git a/router/router.go b/router/router.go
index bac5f16..5b7dfba 100644
--- a/router/router.go
+++ b/router/router.go
@@ -107,6 +107,8 @@
productAPI.POST("listDisuse", productController.ListDisuse) //鏌ョ湅浜у搧鐨勫巻鍙插嚭鍏ュ簱淇℃伅
productAPI.PUT("finishDisuse/:id", productController.FinishDisuse) //鎶ュ簾楠岃瘉
productAPI.POST("updateDisuse", productController.UpdateDisuse) //淇敼鎶ュ簾淇℃伅
+ productAPI.POST("listHistory", productController.ListHistory) //浜у搧浣嶇疆鍘嗗彶璁板綍
+
}
// 涓婃灦瑙勫垯
--
Gitblit v1.8.0