From 0cc034256b85bd3eb2e9482231d6e5649624cde2 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期一, 13 十一月 2023 11:50:59 +0800
Subject: [PATCH] 增加取消接口,及相关修改

---
 constvar/const.go                 |    1 
 controllers/product_controller.go |   35 +++++++++++++++++
 controllers/operation_type.go     |    6 +++
 controllers/operation.go          |   35 +++++++++++++++++
 router/router.go                  |    3 +
 5 files changed, 79 insertions(+), 1 deletions(-)

diff --git a/constvar/const.go b/constvar/const.go
index d82cb6c..5ca6de9 100644
--- a/constvar/const.go
+++ b/constvar/const.go
@@ -176,6 +176,7 @@
 	OperationStatus_Waiting                            //姝e湪绛夊緟
 	OperationStatus_Ready                              //灏辩华
 	OperationStatus_Finish                             //瀹屾垚
+	OperationStatus_Cancel                             //瀹屾垚
 )
 
 type PostType int
diff --git a/controllers/operation.go b/controllers/operation.go
index 08031a9..d9b4200 100644
--- a/controllers/operation.go
+++ b/controllers/operation.go
@@ -763,3 +763,38 @@
 	}
 	util.ResponseFormat(c, code.Success, companies)
 }
+
+// Cancel
+//
+//	@Tags		鍏ュ簱/鍑哄簱
+//	@Summary	鍙栨秷
+//	@Produce	application/json
+//	@Param		id	path		int			true	"id"
+//	@Success	200	{object}	util.Response	"鎴愬姛"
+//	@Router		/api-wms/v1/operation/cancel/{id} [put]
+func (slf OperationController) Cancel(c *gin.Context) {
+	id, err := strconv.Atoi(c.Param("id"))
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "閿欒鐨刬d鍊�")
+		return
+	}
+	if id == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "id涓�0")
+		return
+	}
+	operation, err := models.NewOperationSearch().SetPreload(true).SetID(id).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏈壘鍒扮浉鍏冲嚭鍏ュ簱淇℃伅:"+err.Error())
+		return
+	}
+	if operation.Status != constvar.OperationStatus_Ready {
+		util.ResponseFormat(c, code.RequestError, "璇ュ嚭鍏ュ簱淇℃伅鏃犳硶鍙栨秷")
+		return
+	}
+	operation.Status = constvar.OperationStatus_Cancel
+	if err := models.NewOperationSearch().Save(operation); err != nil {
+		util.ResponseFormat(c, code.SaveFail, err.Error())
+		return
+	}
+	util.ResponseFormat(c, code.Success, "鎿嶄綔鎴愬姛")
+}
diff --git a/controllers/operation_type.go b/controllers/operation_type.go
index 0ce0a9b..7246617 100644
--- a/controllers/operation_type.go
+++ b/controllers/operation_type.go
@@ -141,6 +141,9 @@
 		if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Finish)]; ok {
 			list[k].FinishCount = value.Count
 		}
+		if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Cancel)]; ok {
+			list[k].FinishCount = value.Count
+		}
 	}
 	util.ResponseFormatListWithPage(c, code.Success, list, cast.ToInt(total), params.Page, params.PageSize)
 }
@@ -205,6 +208,9 @@
 		if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Finish)]; ok {
 			list[k].FinishCount = value.Count
 		}
+		if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Cancel)]; 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 8178e2d..b20a6b5 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -648,3 +648,38 @@
 
 	util.ResponseFormatListWithPage(c, code.Success, list, int(total), params.Page, params.PageSize)
 }
+
+// CancelDisuse
+//
+//	@Tags		浜у搧
+//	@Summary	鍙栨秷鎶ュ簾
+//	@Produce	application/json
+//	@Param		id	path		int			true	"id"
+//	@Success	200	{object}	util.Response	"鎴愬姛"
+//	@Router		/api-wms/v1/product/cancelDisuse/{id} [put]
+func (slf ProductController) CancelDisuse(c *gin.Context) {
+	id, err := strconv.Atoi(c.Param("id"))
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "閿欒鐨刬d鍊�")
+		return
+	}
+	if id == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "id涓�0")
+		return
+	}
+	operation, err := models.NewOperationSearch().SetID(id).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏈壘鍒扮浉鍏充俊鎭�:"+err.Error())
+		return
+	}
+	if operation.Status != constvar.OperationStatus_Ready {
+		util.ResponseFormat(c, code.RequestError, "璇ヤ俊鎭棤娉曞彇娑�")
+		return
+	}
+	operation.Status = constvar.OperationStatus_Cancel
+	if err := models.NewOperationSearch().Save(operation); err != nil {
+		util.ResponseFormat(c, code.SaveFail, err.Error())
+		return
+	}
+	util.ResponseFormat(c, code.Success, "鎿嶄綔鎴愬姛")
+}
diff --git a/router/router.go b/router/router.go
index fedd7c4..50e80d4 100644
--- a/router/router.go
+++ b/router/router.go
@@ -87,7 +87,7 @@
 		operationAPI.PUT("finish/:id", operationController.Finish)
 		operationAPI.POST("listTransfer", operationController.ListTransfer)
 		operationAPI.GET("getLogisticCompanyList", operationController.GetLogisticCompanyList)
-
+		operationAPI.PUT("cancel/:id", operationController.Cancel)
 	}
 
 	//浜у搧
@@ -112,6 +112,7 @@
 		productAPI.PUT("finishDisuse/:id", productController.FinishDisuse) //鎶ュ簾楠岃瘉
 		productAPI.POST("updateDisuse", productController.UpdateDisuse)    //淇敼鎶ュ簾淇℃伅
 		productAPI.POST("listHistory", productController.ListHistory)      //浜у搧浣嶇疆鍘嗗彶璁板綍
+		productAPI.PUT("cancelDisuse/:id", productController.CancelDisuse) //鍙栨秷鎶ュ簾
 
 	}
 

--
Gitblit v1.8.0