From d182e581dd48d2e289f8cfa06405f8802a04573b Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 28 三月 2024 19:45:45 +0800
Subject: [PATCH] 运营商去掉必填

---
 controllers/order.go |  133 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 123 insertions(+), 10 deletions(-)

diff --git a/controllers/order.go b/controllers/order.go
index 7666d09..ffa4406 100644
--- a/controllers/order.go
+++ b/controllers/order.go
@@ -8,8 +8,13 @@
 	"outsourcing/extend/code"
 	"outsourcing/extend/util"
 	"outsourcing/models"
+	"outsourcing/pkg/logx"
 	"outsourcing/pkg/structx"
 	"outsourcing/request"
+	"outsourcing/response"
+	"outsourcing/service"
+	"outsourcing/service/outsourcing"
+	"outsourcing/utils/jwt"
 )
 
 type OrderController struct{}
@@ -27,7 +32,14 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
-	list, total, err := models.NewOutsourcingOrderSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetOrder("id desc").Find()
+
+	companyId := jwt.GetCompanyID(c)
+	if companyId == 0 {
+		util.ResponseFormat(c, code.InternalError, "鍐呴儴閿欒")
+		return
+	}
+
+	list, total, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(companyId).SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetOrder("id desc").Find()
 	if err != nil {
 		util.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒")
 		return
@@ -42,7 +54,7 @@
 // @Success   200   {object}  util.ResponseList{data=request.OutsourcingOrderOverview}  "鎴愬姛"
 // @Router    /api-outsourcing/v1/order/overview [get]
 func (slf *OrderController) OrderOverview(c *gin.Context) {
-	result, err := models.NewOutsourcingOrderSearch().CountGroupByStatus()
+	result, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).CountGroupByStatus()
 	if err != nil {
 		util.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒")
 		return
@@ -77,6 +89,13 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け")
 		return
 	}
+
+	_, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).SetID(params.OutsourcingOrderId).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�")
+		return
+	}
+
 	list, total, err := models.NewOutsourcingOrderProductSearch().SetPage(params.Page, params.PageSize).SetOutsourcingOrderID(params.OutsourcingOrderId).SetOrder("id desc").Find()
 	if err != nil {
 		util.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒")
@@ -102,8 +121,15 @@
 		util.ResponseFormat(c, code.RequestParamError, "鐗╂枡鐢宠涓嶈兘涓虹┖")
 		return
 	}
+
+	_, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).SetNumber(params.ApplyList[0].OutsourcingOrderNumber).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�")
+		return
+	}
+
 	var apply []*models.OutsourcingMaterialApply
-	err := structx.AssignTo(params.ApplyList, &apply)
+	err = structx.AssignTo(params.ApplyList, &apply)
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲澶辫触")
 		return
@@ -138,6 +164,13 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
+
+	_, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).SetNumber(params.Number).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�")
+		return
+	}
+
 	find, err := models.NewOutsourcingMaterialApplySearch().SetOutsourcingOrderNumber(params.Number).FindNotTotal()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触")
@@ -159,15 +192,34 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
+
+	_, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).SetNumber(params.OutsourcingOrderNumber).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�")
+		return
+	}
+
 	//闄愬畾鐘舵�佸弬鏁�
 	if params.Status == constvar.OutsourcingOrderStatusCreate || //鍙栨秷纭
 		params.Status == constvar.OutsourcingOrderStatusWaitProduce || //纭鎺ュ彈
 		params.Status == constvar.OutsourcingOrderStatusFinish || //鐢熶骇瀹屾垚
 		params.Status == constvar.OutsourcingOrderStatusDeliveryFinish { //鍙戣揣瀹屾垚
-		m := make(map[string]interface{})
-		m["status"] = params.Status
-		m["reason"] = params.Reason
-		err := models.NewOutsourcingOrderSearch().SetNumber(params.OutsourcingOrderNumber).UpdateByMap(m)
+		err = models.WithTransaction(func(db *gorm.DB) error {
+			m := make(map[string]interface{})
+			m["status"] = params.Status
+			m["reason"] = params.Reason
+			err := models.NewOutsourcingOrderSearch().SetNumber(params.OutsourcingOrderNumber).UpdateByMap(m)
+			if err != nil {
+				return err
+			}
+			if params.Status == constvar.OutsourcingOrderStatusCreate {
+				return models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).SetNumber(params.OutsourcingOrderNumber).UpdateByMap(map[string]interface{}{
+					"enterprise_id": 0,
+				})
+			}
+			return nil
+		})
+
 		if err != nil {
 			util.ResponseFormat(c, code.RequestParamError, "鐘舵�佹洿鏂板け璐�")
 			return
@@ -193,6 +245,12 @@
 	}
 	if params.OutsourcingOrderID == 0 {
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け")
+		return
+	}
+
+	_, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).SetID(params.OutsourcingOrderID).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�")
 		return
 	}
 
@@ -229,10 +287,17 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
-	if params.OutsourcingOrderID == 0 || params.Number == "" || params.Carrier == "" || params.WaybillNumber == "" {
+	if params.OutsourcingOrderID == 0 || params.Number == "" {
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け")
 		return
 	}
+
+	_, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).SetID(params.OutsourcingOrderID).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�")
+		return
+	}
+
 	if len(params.DeliveryList) == 0 {
 		util.ResponseFormat(c, code.RequestParamError, "鍙戣揣鍒楄〃涓嶈兘涓虹┖")
 		return
@@ -245,8 +310,8 @@
 		WaybillNumber:      params.WaybillNumber,
 	}
 
-	err := models.WithTransaction(func(db *gorm.DB) error {
-		err := models.NewOutsourcingOrderDeliverySearch().SetOrm(db).Create(delivery)
+	err = models.WithTransaction(func(db *gorm.DB) error {
+		err = models.NewOutsourcingOrderDeliverySearch().SetOrm(db).Create(delivery)
 		if err != nil {
 			return err
 		}
@@ -257,6 +322,7 @@
 				OutsourcingOrderDeliveryID: delivery.ID,
 				OutsourcingOrderProductID:  v.OutsourcingOrderProductID,
 				SendAmount:                 v.SendAmount,
+				IsReceived:                 2,
 			})
 		}
 		return models.NewOutsourcingOrderDeliveryDetailsSearch().SetOrm(db).CreateBatch(items)
@@ -282,6 +348,13 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
+
+	_, err := models.NewOutsourcingOrderSearch().SetEnterpriseID(jwt.GetCompanyID(c)).SetID(params.OutsourcingOrderID).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�")
+		return
+	}
+
 	list, err := models.NewOutsourcingOrderDeliveryDetailsSearch().
 		SetOutsourcingOrderID(params.OutsourcingOrderID).
 		SetPreload(true).
@@ -293,3 +366,43 @@
 	}
 	util.ResponseFormat(c, code.Success, list)
 }
+
+// MaterialSearch
+// @Tags      璁㈠崟绠$悊
+// @Summary   鐗╂枡鎼滅储
+// @Produce   application/json
+// @Param     object  body    request.MaterialSearch true  "鍙傛暟"
+// @Success   200   {object}  util.ResponseList{[]response.Material}  "鎴愬姛"
+// @Router    /api-outsourcing/v1/order/materialSearch [post]
+func (slf *OrderController) MaterialSearch(c *gin.Context) {
+	var params request.MaterialSearch
+	if err := c.BindJSON(&params); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	client := outsourcing.NewOutsourcingServiceClient(service.ApsServiceConn)
+	resp, err := client.GetMaterialList(c, &outsourcing.GetMaterialListRequest{
+		Page:     int32(params.Page),
+		PageSize: int32(params.PageSize),
+		Keyword:  params.Keyword,
+	})
+
+	if err != nil {
+		logx.Errorf("grpc outsourcing GetProductList err:%v", err)
+		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触")
+		return
+	}
+
+	data := make([]*response.Material, 0, len(resp.List))
+	for _, item := range resp.List {
+		data = append(data, &response.Material{
+			Number: item.ID,
+			Name:   item.Name,
+			Unit:   item.Unit,
+			Specs:  item.Specs,
+			Type:   item.Type,
+		})
+	}
+
+	util.ResponseFormat(c, code.Success, data)
+}

--
Gitblit v1.8.0