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(¶ms); 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