From c4b9d130cb0aa98f4b65a987b11fc5c2bea3a1c7 Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期三, 03 七月 2024 10:37:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jialian' into jialian

---
 controllers/product_controller.go |   45 +++++++++++++++++++++-
 controllers/operation.go          |   32 +++++----------
 router/router.go                  |    1 
 service/warehouse_month_forms.go  |    6 ++
 4 files changed, 60 insertions(+), 24 deletions(-)

diff --git a/controllers/operation.go b/controllers/operation.go
index fb1285d..d4c32c5 100644
--- a/controllers/operation.go
+++ b/controllers/operation.go
@@ -9,7 +9,6 @@
 	"github.com/shopspring/decimal"
 	"github.com/xuri/excelize/v2"
 	"gorm.io/gorm"
-	"io/ioutil"
 	"sort"
 	"strconv"
 	"strings"
@@ -847,22 +846,19 @@
 				return
 			}
 
-			if warehouse.FileTemplateCategoryIn == constvar.FileTemplateCategory_JialianInput1 {
-				fileUrl, err = JialianOperation2(warehouse.FileTemplateCategoryIn, operation)
-				if err != nil {
-					util.ResponseFormat(c, code.RequestParamError, err.Error())
-					return
-				}
-
-			} else if warehouse.FileTemplateCategoryIn == constvar.FileWarehouseCategory_JialianInput2 {
+			if warehouse.FileTemplateCategoryIn == constvar.FileWarehouseCategory_JialianInput2 {
 				fileUrl, err = JialianOperation1(warehouse.FileTemplateCategoryIn, operation)
 				if err != nil {
 					util.ResponseFormat(c, code.RequestParamError, err.Error())
 					return
 				}
-
+			} else {
+				fileUrl, err = JialianOperation2(warehouse.FileTemplateCategoryIn, operation)
+				if err != nil {
+					util.ResponseFormat(c, code.RequestParamError, err.Error())
+					return
+				}
 			}
-
 		} else if companyName == "geruimi" {
 			fileUrl, err = ExportInputSelfmade(constvar.FileTemplateCategory_Selfmade, operation)
 			if err != nil {
@@ -887,15 +883,15 @@
 				return
 			}
 
-			if warehouse.FileTemplateCategoryOut == constvar.FileTemplateCategory_JialianOutput1 {
-				fileUrl, err = JialianOperation2(warehouse.FileTemplateCategoryOut, operation)
+			if warehouse.FileTemplateCategoryOut == constvar.FileWarehouseCategory_JialianOutput2 {
+				fileUrl, err = JialianOperation1(warehouse.FileTemplateCategoryOut, operation)
 				if err != nil {
 					util.ResponseFormat(c, code.RequestParamError, err.Error())
 					return
 				}
 
-			} else if warehouse.FileTemplateCategoryOut == constvar.FileWarehouseCategory_JialianOutput2 {
-				fileUrl, err = JialianOperation1(warehouse.FileTemplateCategoryOut, operation)
+			} else {
+				fileUrl, err = JialianOperation2(warehouse.FileTemplateCategoryOut, operation)
 				if err != nil {
 					util.ResponseFormat(c, code.RequestParamError, err.Error())
 					return
@@ -935,8 +931,6 @@
 
 	// 璇诲彇妯℃澘鍐呭
 	f, err := excelize.OpenReader(readerCloser)
-	//fl, err := os.Open("E:\\瀹剁汉鍑哄叆搴撳崟.xlsx")
-	//f, err := excelize.OpenReader(fl)
 	if err != nil {
 		return "", errors.New("璇诲彇excel妯$増澶辫触锛�" + err.Error())
 	}
@@ -1063,9 +1057,7 @@
 	}
 
 	fileUrl, err := upload.UploadFileToSeaWeed(string(constvar.FileType_File), uuid.NewV4().String()+".xlsx", buf.Bytes())
-	ioutil.WriteFile("E:\\"+uuid.NewV4().String()+".xlsx", buf.Bytes(), 0644)
 	if err != nil {
-		//ioutil.WriteFile("E:\\"+uuid.NewV4().String()+".xlsx", buf.Bytes(), 0644)
 		logx.Errorf("file upload err: %v", err)
 		return "", err
 	}
@@ -1183,7 +1175,6 @@
 	}
 
 	fileUrl, err := upload.UploadFileToSeaWeed(string(constvar.FileType_File), uuid.NewV4().String()+".xlsx", buf.Bytes())
-	ioutil.WriteFile("E:\\"+uuid.NewV4().String()+".xlsx", buf.Bytes(), 0644)
 	if err != nil {
 		logx.Errorf("file upload err: %v", err)
 		return "", err
@@ -1267,7 +1258,6 @@
 		logx.Errorf("file upload err: %v", err)
 		return "", err
 	}
-
 	return fileUrl, nil
 }
 
diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index 0a0bc3f..6807a60 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -6,7 +6,9 @@
 	"github.com/gin-gonic/gin"
 	"github.com/shopspring/decimal"
 	"github.com/spf13/cast"
+	"github.com/xuri/excelize/v2"
 	"gorm.io/gorm"
+	"net/url"
 	"strconv"
 	"time"
 	"wms/constvar"
@@ -20,6 +22,7 @@
 	"wms/request"
 	"wms/response"
 	"wms/service"
+	"wms/utils/http"
 )
 
 type ProductController struct {
@@ -1036,8 +1039,8 @@
 
 // InputProduct
 //
-//	@Tags		鐗╂枡绠$悊
-//	@Summary	瀵煎叆鐗╂枡
+//	@Tags		浜у搧
+//	@Summary	瀵煎叆鐗╂枡/浜у搧
 //
 // @Accept multipart/form-data
 // @Param file formData file true "file"
@@ -1063,3 +1066,41 @@
 	resp.InputCount = insertCount
 	util.ResponseFormat(c, code.Success, resp)
 }
+
+// DownloadInputFormat
+//
+//	@Tags		浜у搧
+//	@Summary	涓嬭浇瀵煎叆鐗╂枡/浜у搧妯℃澘
+//
+// @Param     Authorization	header string true "token"
+//
+//	@Success	200		{object}	util.Response 	"鎴愬姛"
+//	@Router		/api-wms/v1/product/downloadInputFormat [get]
+func (slf ProductController) DownloadInputFormat(c *gin.Context) {
+	template, err := models.NewFileTemplateAttachmentSearch().SetCategory(7).First() //鐗╂枡瀵煎叆妯℃澘
+	if err != nil {
+		util.ResponseFormat(c, code.NoTemplateError, "鑾峰彇妯$増璁板綍澶辫触:"+err.Error())
+		return
+	}
+	readerCloser, err := http.HttpGetWithReadCloser(template.FileUrl)
+	if err != nil {
+		util.ResponseFormat(c, code.NoTemplateError, "鑾峰彇妯$増璁板綍澶辫触:"+err.Error())
+		return
+	}
+	f, err := excelize.OpenReader(readerCloser)
+	if err != nil {
+		util.ResponseFormat(c, code.NoTemplateError, "鑾峰彇妯$増璁板綍澶辫触:"+err.Error())
+		return
+	}
+	fileContentDisposition := "attachment;filename=\"" + url.QueryEscape("鐗╂枡瀵煎叆.xlsx") + "\""
+	c.Writer.Header().Add("Content-Disposition", fileContentDisposition)
+	c.Writer.Header().Add("Content-Type", "application/octet-stream")
+	//c.Writer.Header().Add("Content-Type", "application/xlsx")
+	if err = f.Write(c.Writer); err != nil {
+		util.ResponseFormat(c, code.NoTemplateError, "鏁版嵁瀵煎嚭寮傚父:"+err.Error())
+		return
+	}
+
+	readerCloser.Close()
+	util.ResponseFormat(c, code.Success, "")
+}
diff --git a/router/router.go b/router/router.go
index a540f4f..edf34ef 100644
--- a/router/router.go
+++ b/router/router.go
@@ -122,6 +122,7 @@
 		productAPI.POST("updateProduct", productController.UpdateProduct)                                   // 淇敼浜у搧璇︽儏
 		productAPI.DELETE("deleteProduct/:id", productController.DeleteProduct)                             // 閫氳繃ID鑾峰垹闄や骇鍝�
 		productAPI.DELETE("deleteProductByBarCode/:barCode", productController.DeleteProductByBarCode)      // 閫氳繃鏉″舰鐮佸垹闄や骇鍝�
+		productAPI.GET("downloadInputFormat", productController.DownloadInputFormat)                        // 涓嬭浇瀵煎叆鐗╂枡妯℃澘
 
 		productAPI.POST("addProductCategory", productController.AddProductCategory)                  //娣诲姞浜у搧绫诲瀷
 		productAPI.POST("getProductCategoryList", productController.GetProductCategoryList)          //鑾峰彇浜у搧绫诲瀷鍒楄〃
diff --git a/service/warehouse_month_forms.go b/service/warehouse_month_forms.go
index 9edf8c4..a4d4838 100644
--- a/service/warehouse_month_forms.go
+++ b/service/warehouse_month_forms.go
@@ -243,8 +243,12 @@
 
 func GetDealerItems(m map[string]decimal.Decimal) (items []*models.WarehouseStatsItems) {
 	for k, v := range m {
+		name := k
+		if name == "" {
+			name = "鍏朵粬"
+		}
 		items = append(items, &models.WarehouseStatsItems{
-			Name:   k,
+			Name:   name,
 			Amount: v,
 		})
 	}

--
Gitblit v1.8.0