From da3e478917dea118df075357cbd2e6f10833d9c6 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 14 六月 2024 20:08:22 +0800
Subject: [PATCH] 商品调整验证后生成入库单和出库单
---
controllers/report_forms_controller.go | 155 +++++++++++++++++++++++++++++++++------------------
1 files changed, 99 insertions(+), 56 deletions(-)
diff --git a/controllers/report_forms_controller.go b/controllers/report_forms_controller.go
index 37bcc1c..5f907fa 100644
--- a/controllers/report_forms_controller.go
+++ b/controllers/report_forms_controller.go
@@ -1,7 +1,6 @@
package controllers
import (
- "fmt"
"github.com/gin-gonic/gin"
"github.com/shopspring/decimal"
"net/url"
@@ -9,10 +8,8 @@
"wms/constvar"
"wms/extend/code"
"wms/extend/util"
- "wms/models"
"wms/pkg/logx"
"wms/request"
- "wms/response"
"wms/service"
"wms/task"
)
@@ -88,11 +85,6 @@
return
}
- if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "瀵煎嚭澶辫触")
- return
- }
-
fileContentDisposition := "attachment;filename=\"" + url.QueryEscape(filename) + "\""
c.Header("Content-Type", "application/xlsx")
c.Header("Content-Disposition", fileContentDisposition)
@@ -102,10 +94,11 @@
// GetHistory
// @Tags 鎶ヨ〃
-// @Summary 鑾峰彇鍘嗗彶淇℃伅
+// @Summary 鑾峰彇鍑哄叆搴撴槑缁�
// @Produce application/json
+// @Param Authorization header string true "token"
// @Param object body request.GetInventoryHistory true "鏌ヨ鍙傛暟"
-// @Success 200 {object} util.ResponseList{data=[]response.InventoryHistory} "鎴愬姛"
+// @Success 200 {object} util.ResponseList{data=[]models.MoveHistory} "鎴愬姛"
// @Router /api-wms/v1/forms/getHistory [post]
func (slf ReportFormsController) GetHistory(c *gin.Context) {
slf.GetHistoryNew(c)
@@ -195,51 +188,62 @@
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- //鑾峰彇鎿嶄綔璇︽儏
- detailsSearch := models.NewMoveHistorySearch()
- var (
- result []*response.InventoryHistory
- total uint64
- ids []int
- err error
- )
- if params.KeyWord != "" {
- ids, total, err = service.SearchHistoryReport(params.KeyWord, params.BaseOperationType, params.Page, params.PageSize)
- if err != nil {
- util.ResponseFormat(c, code.InternalError, err.Error())
- return
- }
- if len(ids) == 0 {
- util.ResponseFormatList(c, code.Success, result, 0)
- return
- }
+
+ historyFormsService := service.NewHistoryFormsService()
+ result, err := historyFormsService.Query(params)
+ if err != nil {
+ util.ResponseFormat(c, code.InternalError, "鍐呴儴閿欒")
+ return
}
- detailsSearch.Orm = detailsSearch.Orm.Model(&models.MoveHistory{}).
- Select("number, updated_at as date, product_name as product_name, from_location_id, operation_id,to_location_id, amount, " +
- "unit, operator as contacted_name, base_operation_type, weight, product_id, from_location, to_location, operation_type_name, weight").Order("id desc")
- if len(ids) > 0 {
- detailsSearch.Orm = detailsSearch.Orm.Where("id in ?", ids)
- }
- if params.BaseOperationType != 0 {
- detailsSearch.Orm = detailsSearch.Orm.Where("base_operation_type = ?", params.BaseOperationType)
- }
- var t int64
- err = detailsSearch.Orm.Count(&t).Error
+ total, err := historyFormsService.Count(params)
if err != nil {
- util.ResponseFormat(c, code.RequestParamError, fmt.Errorf("鏌ヨ鎬绘潯鏁板け璐�: %v", err))
+ util.ResponseFormat(c, code.InternalError, "鍐呴儴閿欒")
return
}
- total = uint64(t)
- if params.Page*params.PageSize > 0 {
- detailsSearch.Orm = detailsSearch.Orm.Offset((params.Page - 1) * params.PageSize).Limit(params.PageSize)
- }
- err = detailsSearch.Orm.Find(&result).Error
- if err != nil {
- util.ResponseFormat(c, code.RequestParamError, fmt.Errorf("鏌ヨ鎿嶄綔鏄庣粏澶辫触: %v", err))
- return
- }
+
util.ResponseFormatList(c, code.Success, result, int(total))
+}
+
+// DownloadHistory
+// @Tags 鎶ヨ〃
+// @Summary 涓嬭浇鍑哄叆搴撴槑缁嗘姤琛�
+// @Produce application/json
+// @Param Authorization header string true "token"
+// @Param object body request.GetInventoryHistory true "鏌ヨ鍙傛暟"
+// @Success 200 {object} util.ResponseList{data=[]models.MoveHistory} "鎴愬姛"
+// @Router /api-wms/v1/forms/downloadHistory [post]
+func (slf ReportFormsController) DownloadHistory(c *gin.Context) {
+ var params request.GetInventoryHistory
+ if err := c.BindJSON(¶ms); err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+ return
+ }
+
+ if params.BaseOperationType == 0 {
+ util.ResponseFormat(c, code.RequestParamError, "鍩虹鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
+ return
+ }
+
+ historyFormsService := service.NewHistoryFormsService()
+ list, err := historyFormsService.FetchAll(params)
+ if err != nil {
+ logx.Errorf("DownloadHistory FetchAll err:%v", err)
+ util.ResponseFormat(c, code.InternalError, "鏌ヨ澶辫触")
+ return
+ }
+ filename, err := historyFormsService.Export(list, params)
+ if err != nil {
+ logx.Errorf("DownloadHistory Export err:%v", err)
+ util.ResponseFormat(c, code.InternalError, "瀵煎嚭鏁版嵁鍒版枃浠跺け璐�")
+ return
+ }
+
+ fileContentDisposition := "attachment;filename=\"" + url.QueryEscape(filename) + "\""
+ c.Header("Content-Type", "application/xlsx")
+ c.Header("Content-Disposition", fileContentDisposition)
+ c.File(filename)
+ defer os.Remove(filename)
}
// GetLocationForms
@@ -302,11 +306,6 @@
return
}
- if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "瀵煎嚭澶辫触")
- return
- }
-
fileContentDisposition := "attachment;filename=\"" + url.QueryEscape(filename) + "\""
c.Header("Content-Type", "application/xlsx")
c.Header("Content-Disposition", fileContentDisposition)
@@ -329,13 +328,57 @@
return
}
- list, total, err := models.NewMonthStatsSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetDate(params.Date).Find()
+ monthFormsService := service.NewMonthFormsService()
+ total, err := monthFormsService.Count(params)
if err != nil {
+ logx.Errorf("MonthStats count err:%v", err)
+ util.ResponseFormat(c, code.InternalError, "鏌ヨ鎬绘暟澶辫触")
+ return
+ }
+ result, err := monthFormsService.Query(params)
+ if err != nil {
+ logx.Errorf("MonthStats query err:%v", err)
util.ResponseFormat(c, code.InternalError, "鏌ヨ澶辫触")
return
}
- util.ResponseFormatList(c, code.Success, list, int(total))
+ util.ResponseFormatList(c, code.Success, result, int(total))
+}
+
+// DownloadMonthStats
+// @Tags 鎶ヨ〃
+// @Summary 涓嬭浇鏈堝害缁熻搴撳瓨鎶ヨ〃
+// @Produce application/json
+// @Param object body request.GetMonthStats true "鏌ヨ鍙傛暟"
+// @Param Authorization header string true "token"
+// @Success 200 {object} util.ResponseList{data=[]models.MonthStats} "鎴愬姛"
+// @Router /api-wms/v1/forms/downloadMonthStats [post]
+func (slf ReportFormsController) DownloadMonthStats(c *gin.Context) {
+ var params request.GetMonthStats
+ if err := c.BindJSON(¶ms); err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+ return
+ }
+
+ monthFormsService := service.NewMonthFormsService()
+ list, err := monthFormsService.FetchAll(params)
+ if err != nil {
+ logx.Errorf("DownloadMonthStats FetchAll err:%v", err)
+ util.ResponseFormat(c, code.InternalError, "鏌ヨ澶辫触")
+ return
+ }
+ filename, err := monthFormsService.Export(list)
+ if err != nil {
+ logx.Errorf("DownloadMonthStats Export err:%v", err)
+ util.ResponseFormat(c, code.InternalError, "瀵煎嚭鏁版嵁鍒版枃浠跺け璐�")
+ return
+ }
+
+ fileContentDisposition := "attachment;filename=\"" + url.QueryEscape(filename) + "\""
+ c.Header("Content-Type", "application/xlsx")
+ c.Header("Content-Disposition", fileContentDisposition)
+ c.File(filename)
+ defer os.Remove(filename)
}
// DoMonthStats
--
Gitblit v1.8.0