From 1c8f39c41f903d3c07e8efc8dc49ef7014b45b8e Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 02 七月 2024 18:27:01 +0800
Subject: [PATCH] 未选出入库类型的业务操作在仓库月度报表里归为其他
---
controllers/product_controller.go | 130 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 128 insertions(+), 2 deletions(-)
diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index 1549251..0a0bc3f 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -54,6 +54,13 @@
util.ResponseFormat(c, code.RequestParamError, "鍗曚綅涓嶈兘涓虹┖")
return
}
+ if params.BarCode != "" {
+ m, err := models.NewMaterialSearch().SetBarCode(params.BarCode).First()
+ if err == nil && m.ID != "" { //鏌ュ嚭鐗╂枡琛ㄦ槸鐗╂枡宸插瓨鍦�
+ util.ResponseFormat(c, code.RequestParamError, "鏉″舰鐮佸凡缁忚浣跨敤")
+ return
+ }
+ }
//params.ID = utils.GetUUID()
err := models.WithTransaction(func(tx *gorm.DB) error {
@@ -218,8 +225,9 @@
// GetProductDetails
// @Tags 浜у搧
-// @Summary 鑾峰彇浜у搧璇︽儏
+// @Summary 閫氳繃浜у搧/鍟嗗搧/鐗╂枡 ID鑾峰彇浜у搧璇︽儏
// @Produce application/json
+// @Param Authorization header string true "token"
// @Param id path string true "id" "鏌ヨ鍙傛暟"
// @Success 200 {object} util.Response{data=models.Material} "鎴愬姛"
// @Router /api-wms/v1/product/getProductDetails/{id} [get]
@@ -233,6 +241,96 @@
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
return
+ }
+ attributeValues, err := models.NewAttributeValueSearch().SetEntityID(material.ID).FindNotTotal()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ return
+ }
+ aids := make([]uint, 0)
+ for _, v := range attributeValues {
+ aids = append(aids, v.AttributeID)
+ }
+ attributes, err := models.NewAttributeSearch().SetIDs(aids).FindNotTotal()
+ attributesMap := make(map[uint]*models.Attribute, len(attributes))
+ for _, v := range attributes {
+ attributesMap[v.ID] = v
+ }
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏈煡鍔ㄦ�佸睘鎬�")
+ }
+ for _, v1 := range attributeValues {
+ attribute := attributesMap[v1.AttributeID]
+ if attribute == nil {
+ continue
+ }
+ //product.Attributes = append(product.Attributes,v1)
+ material.Attributes = append(material.Attributes, models.Attribute{
+ Model: gorm.Model{ID: v1.ID, CreatedAt: v1.CreatedAt, UpdatedAt: v1.UpdatedAt, DeletedAt: v1.DeletedAt},
+ Name: attribute.Name,
+ DataType: attribute.DataType,
+ EntityType: attribute.EntityType,
+ SelectValues: attribute.SelectValues,
+ SelectValue: attribute.SelectValue,
+ //Value: v1.Value,
+ Value: v1.Value,
+ })
+ }
+ util.ResponseFormat(c, code.Success, material)
+}
+
+// GetProductDetailsByBarCode
+// @Tags 浜у搧
+// @Summary 閫氳繃浜у搧/鍟嗗搧/鐗╂枡 鏉″舰鐮� 鑾峰彇浜у搧璇︽儏
+// @Produce application/json
+// @Param Authorization header string true "token"
+// @Param barCode path string true "barCode" "鏌ヨ鍙傛暟"
+// @Success 200 {object} util.Response{data=models.Material} "鎴愬姛"
+// @Router /api-wms/v1/product/getProductDetailsByBarCode/{barCode} [get]
+func (slf ProductController) GetProductDetailsByBarCode(c *gin.Context) {
+ barCode := c.Param("barCode")
+ if barCode == "" {
+ util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鏉″舰鐮�")
+ return
+ }
+ material, err := models.NewMaterialSearch().SetBarCode(barCode).SetPreload(true).First()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ return
+ }
+ attributeValues, err := models.NewAttributeValueSearch().SetEntityID(material.ID).FindNotTotal()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ return
+ }
+ aids := make([]uint, 0)
+ for _, v := range attributeValues {
+ aids = append(aids, v.AttributeID)
+ }
+ attributes, err := models.NewAttributeSearch().SetIDs(aids).FindNotTotal()
+ attributesMap := make(map[uint]*models.Attribute, len(attributes))
+ for _, v := range attributes {
+ attributesMap[v.ID] = v
+ }
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鏈煡鍔ㄦ�佸睘鎬�")
+ }
+ for _, v1 := range attributeValues {
+ attribute := attributesMap[v1.AttributeID]
+ if attribute == nil {
+ continue
+ }
+ //product.Attributes = append(product.Attributes,v1)
+ material.Attributes = append(material.Attributes, models.Attribute{
+ Model: gorm.Model{ID: v1.ID, CreatedAt: v1.CreatedAt, UpdatedAt: v1.UpdatedAt, DeletedAt: v1.DeletedAt},
+ Name: attribute.Name,
+ DataType: attribute.DataType,
+ EntityType: attribute.EntityType,
+ SelectValues: attribute.SelectValues,
+ SelectValue: attribute.SelectValue,
+ //Value: v1.Value,
+ Value: v1.Value,
+ })
}
util.ResponseFormat(c, code.Success, material)
}
@@ -261,6 +359,13 @@
if params.Unit == "" {
util.ResponseFormat(c, code.RequestParamError, "鍗曚綅涓嶈兘涓虹┖")
return
+ }
+ if params.BarCode != "" {
+ m, err := models.NewMaterialSearch().SetBarCode(params.BarCode).First()
+ if err == nil && m.ID != params.ID { //鏌ュ嚭鐗╂枡涓擨D涓嶄竴鏍�,
+ util.ResponseFormat(c, code.RequestParamError, "鏉″舰鐮佸凡缁忚浣跨敤")
+ return
+ }
}
err := models.NewMaterialSearch().SetID(params.ID).Save(¶ms)
if err != nil {
@@ -330,7 +435,7 @@
// DeleteProduct
// @Tags 浜у搧
-// @Summary 鍒犻櫎浜у搧
+// @Summary 閫氳繃浜у搧/鍟嗗搧/鐗╂枡 ID鍒犻櫎浜у搧
// @Produce application/json
// @Param id path string true "id" "鏌ヨ鍙傛暟"
// @Success 200 {object} util.Response "鎴愬姛"
@@ -349,6 +454,27 @@
util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛")
}
+// DeleteProductByBarCode
+// @Tags 浜у搧
+// @Summary 閫氳繃浜у搧/鍟嗗搧/鐗╂枡 鏉″舰鐮佸垹闄や骇鍝�
+// @Produce application/json
+// @Param barCode path string true "barCode" "鏌ヨ鍙傛暟"
+// @Success 200 {object} util.Response "鎴愬姛"
+// @Router /api-wms/v1/product/deleteProductByBarCode/{barCode} [delete]
+func (slf ProductController) DeleteProductByBarCode(c *gin.Context) {
+ barCode := c.Param("barCode")
+ if barCode == "" {
+ util.ResponseFormat(c, code.RequestParamError, "鏃犳晥id")
+ return
+ }
+ err := models.NewMaterialSearch().SetBarCode(barCode).Delete()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触")
+ return
+ }
+ util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛")
+}
+
// AddProductCategory
// @Tags 浜у搧绫诲瀷
// @Summary 娣诲姞浜у搧绫诲瀷
--
Gitblit v1.8.0