From 0ddbf564f6e2a33c4f73141423ad0905da4278d0 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 19 四月 2024 16:36:33 +0800 Subject: [PATCH] 增加查询字段接口,保存字典接口 --- api/v1/outsourcing/outsourcing.go | 875 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 436 insertions(+), 439 deletions(-) diff --git a/api/v1/outsourcing/outsourcing.go b/api/v1/outsourcing/outsourcing.go index a7578d5..6d55dd8 100644 --- a/api/v1/outsourcing/outsourcing.go +++ b/api/v1/outsourcing/outsourcing.go @@ -4,14 +4,10 @@ "github.com/gin-gonic/gin" "gorm.io/gorm" "srm/constvar" - "srm/model" "srm/model/common/response" models "srm/model/outsourcing" outsourcingrequest "srm/model/outsourcing/request" "srm/pkg/logx" - "srm/proto/common" - "srm/proto/inventory_order" - "srm/proto/purchase_wms" "srm/utils" "srm/utils/code" "srm/utils/structx" @@ -141,438 +137,439 @@ utils.ResponseFormat(c, code.Success, resp) } -// OutsourcingOrderList -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 濮斿璁㈠崟鍒楄〃 -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object query outsourcingrequest.OutsourcingOrderList true "鏌ヨ鍙傛暟" -// @Success 200 {object} utils.ResponseList{data=[]models.OutsourcingOrder} "鎴愬姛" -// @Router /outsourcing/order/list [get] -func (slf *OutsourcingController) OutsourcingOrderList(c *gin.Context) { - var params outsourcingrequest.OutsourcingOrderList - if err := c.BindQuery(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - list, total, err := models.NewOutsourcingOrderSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetOrder("id desc").Find() - if err != nil { - utils.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒") - return - } - utils.ResponseFormatList(c, code.Success, list, int(total)) -} - -// OrderOverview -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 璁㈠崟缁熻 -// @Produce application/json -// @Param Authorization header string true "token" -// @Success 200 {object} utils.ResponseList{data=outsourcingrequest.OutsourcingOrderOverview} "鎴愬姛" -// @Router /outsourcing/order/overview [get] -func (slf *OutsourcingController) OrderOverview(c *gin.Context) { - result, err := models.NewOutsourcingOrderSearch().CountGroupByStatus() - if err != nil { - utils.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒") - return - } - resp := &outsourcingrequest.OutsourcingOrderOverview{} - for _, v := range result { - resp.Total += v.Total - status := constvar.OutsourcingOrderStatus(v.Status) - if status == constvar.OutsourcingOrderStatusCreate { - resp.WaitAssigned += v.Total - } else { - resp.HasAssigned += v.Total - } - } - utils.ResponseFormat(c, code.Success, resp) -} - -// OutsourcingOrderProductList -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 濮斿璁㈠崟浜у搧鍒楄〃 -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object query outsourcingrequest.OutsourcingOrderProductList true "鏌ヨ鍙傛暟" -// @Success 200 {object} utils.ResponseList{data=[]models.OutsourcingOrderProduct} "鎴愬姛" -// @Router /outsourcing/order/productList [get] -func (slf *OutsourcingController) OutsourcingOrderProductList(c *gin.Context) { - var params outsourcingrequest.OutsourcingOrderProductList - if err := c.BindQuery(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - if params.OutsourcingOrderId == 0 { - utils.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 { - utils.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒") - return - } - utils.ResponseFormatList(c, code.Success, list, int(total)) -} - -// OutsourcingEnterpriseProductList -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 濮斿浼佷笟渚涜揣鍘嗗彶 -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object query outsourcingrequest.OutsourcingEnterpriseProductList true "鏌ヨ鍙傛暟" -// @Success 200 {object} utils.ResponseList{data=[]models.OutsourcingOrderProduct} "鎴愬姛" -// @Router /outsourcing/enterprise/productList [get] -func (slf *OutsourcingController) OutsourcingEnterpriseProductList(c *gin.Context) { - var params outsourcingrequest.OutsourcingEnterpriseProductList - if err := c.BindQuery(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - if params.EnterpriseID == 0 { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け") - return - } - list, total, err := models.NewOutsourcingOrderProductSearch().SetPage(params.Page, params.PageSize).SetEnterpriseID(params.EnterpriseID).SetOrder("id desc").Find() - if err != nil { - utils.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒") - return - } - utils.ResponseFormatList(c, code.Success, list, int(total)) -} - -// OutsourcingOrderAssign -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 濮斿璁㈠崟鍒嗛厤浼佷笟 -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object body outsourcingrequest.OutsourcingOrderAssign true "鏌ヨ鍙傛暟" -// @Success 200 {object} contextx.Response{} "鎴愬姛" -// @Router /outsourcing/order/assign [post] -func (slf *OutsourcingController) OutsourcingOrderAssign(c *gin.Context) { - var params outsourcingrequest.OutsourcingOrderAssign - if err := c.BindJSON(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - if params.EnterpriseID == 0 || params.OrderID == 0 && len(params.OrderIDs) == 0 { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け") - return - } - if params.OrderID != 0 && len(params.OrderIDs) != 0 { - utils.ResponseFormat(c, code.RequestParamError, "涓嶈兘鍚屾椂浼爋rderID鍜宱rderIDs") - return - } - enterprise, err := models.NewOutsourcingEnterpriseSearch().SetID(params.EnterpriseID).First() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鏌ユ壘浼佷笟澶辫触") - return - } - if params.OrderID != 0 { - order, err := models.NewOutsourcingOrderSearch().SetID(params.OrderID).First() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鏌ユ壘璁㈠崟澶辫触") - return - } - if order.Status != constvar.OutsourcingOrderStatusCreate || order.EnterpriseID != 0 { - utils.ResponseFormat(c, code.RequestParamError, "璇ヨ鍗曞凡鍒嗛厤浼佷笟锛岃妫�鏌�") - return - } - } else { - for _, orderID := range params.OrderIDs { - order, err := models.NewOutsourcingOrderSearch().SetID(orderID).First() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鏌ユ壘璁㈠崟澶辫触") - return - } - if order.Status != constvar.OutsourcingOrderStatusCreate || order.EnterpriseID != 0 { - utils.ResponseFormat(c, code.RequestParamError, "瀛樺湪宸插垎閰嶄紒涓氱殑璁㈠崟锛岃妫�鏌�") - return - } - } - } - - err = model.WithTransaction(func(db *gorm.DB) error { - err = models.NewOutsourcingOrderSearch().SetID(params.OrderID).SetIDs(params.OrderIDs).UpdateByMap(map[string]interface{}{ - "enterprise_id": enterprise.ID, - "enterprise_name": enterprise.Name, - "enterprise_type": enterprise.EnterpriseType, - "status": constvar.OutsourcingOrderStatusAssigned, - }) - if err != nil { - return err - } - err = models.NewOutsourcingOrderProductSearch().SetOutsourcingOrderID(params.OrderID).SetOutsourcingOrderIDs(params.OrderIDs).UpdateByMap(map[string]interface{}{ - "enterprise_id": enterprise.ID, - }) - return err - }) - if err != nil { - utils.ResponseFormat(c, code.InternalError, "鍒嗛厤澶辫触") - return - } - utils.ResponseFormat(c, code.Success, nil) -} - -// SaveMaterialApply -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 淇濆瓨鐗╂枡鐢宠鍗� -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object body outsourcingrequest.SaveMaterialApply true "鍙傛暟" -// @Success 200 {object} utils.Response{} "鎴愬姛" -// @Router /outsourcing/order/saveMaterialApply [post] -func (slf *OutsourcingController) SaveMaterialApply(c *gin.Context) { - var params outsourcingrequest.SaveMaterialApply - if err := c.BindJSON(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - if len(params.ApplyList) == 0 { - utils.ResponseFormat(c, code.RequestParamError, "鐗╂枡鐢宠涓嶈兘涓虹┖") - return - } - var apply []*models.OutsourcingMaterialApply - err := structx.AssignTo(params.ApplyList, &apply) - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲澶辫触") - return - } - err = model.WithTransaction(func(db *gorm.DB) error { - err = models.NewOutsourcingMaterialApplySearch().SetOrm(db).CreateBatch(apply) - if err != nil { - return err - } - err = models.NewOutsourcingOrderSearch().SetOrm(db).SetNumber(params.ApplyList[0].OutsourcingOrderNumber). - UpdateByMap(map[string]interface{}{"status": constvar.OutsourcingOrderStatusMaterialApplying}) - return err - }) - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触") - return - } - - utils.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛") -} - -// GetMaterialApplyList -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 鑾峰彇鐗╂枡鐢宠鍗� -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object body outsourcingrequest.GetMaterialApplyList true "鍙傛暟" -// @Success 200 {object} utils.ResponseList{[]models.OutsourcingMaterialApply} "鎴愬姛" -// @Router /outsourcing/order/getMaterialApplyList [post] -func (slf *OutsourcingController) GetMaterialApplyList(c *gin.Context) { - var params outsourcingrequest.GetMaterialApplyList - if err := c.BindJSON(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - find, err := models.NewOutsourcingMaterialApplySearch().SetOutsourcingOrderNumber(params.Number).FindNotTotal() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触") - return - } - utils.ResponseFormat(c, code.Success, find) -} - -// ChangeStatus -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 淇敼鐘舵�� -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object body outsourcingrequest.ChangeStatus true "鍙傛暟" -// @Success 200 {object} utils.Response "鎴愬姛" -// @Router /outsourcing/order/changeStatus [post] -func (slf *OutsourcingController) ChangeStatus(c *gin.Context) { - var params outsourcingrequest.ChangeStatus - if err := c.BindJSON(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - //闄愬畾鐘舵�佸弬鏁� - if params.Status == constvar.OutsourcingOrderStatusMaterialExamineRefused || - params.Status == constvar.OutsourcingOrderStatusProducing || - params.Status == constvar.OutsourcingOrderStatusFinish || - params.Status == constvar.OutsourcingOrderStatusReceiveFinish { - m := make(map[string]interface{}) - m["status"] = params.Status - m["reason"] = params.Reason - err := models.NewOutsourcingOrderSearch().SetNumber(params.OutsourcingOrderNumber).UpdateByMap(m) - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鐘舵�佹洿鏂板け璐�") - return - } - utils.ResponseFormat(c, code.Success, "鐘舵�佹洿鏂版垚鍔�") - return - } - utils.ResponseFormat(c, code.RequestParamError, "鐘舵�佸弬鏁颁笉姝g‘") -} - -// GetDeliveryList -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 鑾峰彇鍙戣揣鍒楄〃 -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object body outsourcingrequest.GetDeliveryList true "鍙傛暟" -// @Success 200 {object} utils.ResponseList{[]models.OutsourcingOrderDeliveryDetails} "鎴愬姛" -// @Router /outsourcing/order/deliveryList [post] -func (slf *OutsourcingController) GetDeliveryList(c *gin.Context) { - var params outsourcingrequest.GetDeliveryList - if err := c.BindJSON(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - - _, err := models.NewOutsourcingOrderSearch().SetID(params.OutsourcingOrderID).First() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�") - return - } - - list, err := models.NewOutsourcingOrderDeliveryDetailsSearch(). - SetOutsourcingOrderID(params.OutsourcingOrderID). - SetIsReceived(params.IsReceived). - SetPreload(true). - SetOrder("id desc"). - FindNotTotal() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触") - return - } - utils.ResponseFormat(c, code.Success, list) -} - -// ConfirmReceipt -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 濮斿鍏ュ簱 纭鍏ュ簱 -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object body outsourcingrequest.ConfirmDeliveryList true "鍙傛暟" -// @Success 200 {object} utils.ResponseList{[]models.OutsourcingOrderDeliveryDetails} "鎴愬姛" -// @Router /outsourcing/order/confirmReceipt [post] -func (slf *OutsourcingController) ConfirmReceipt(c *gin.Context) { - var params outsourcingrequest.ConfirmDeliveryList - if err := c.BindJSON(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - - outsourcingOrder, err := models.NewOutsourcingOrderSearch().SetID(params.OutsourcingOrderID).First() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�") - return - } - - list, err := models.NewOutsourcingOrderDeliveryDetailsSearch(). - SetOutsourcingOrderID(params.OutsourcingOrderID). - SetIds(params.OutsourcingOrderDeliveryDetailsIds). - SetPreload(true). - SetOrder("id desc"). - FindNotTotal() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触") - return - } - - operationList := make([]*inventory_order.OperationList, 0) - products := make([]*inventory_order.OperationProduct, 0, len(list)) - ids := make([]uint, 0, len(list)) - for _, item := range list { - products = append(products, &inventory_order.OperationProduct{ - ProductNumber: item.OutsourcingOrderProduct.ProductId, - Amount: item.SendAmount.IntPart(), - }) - ids = append(ids, item.ID) - } - var ol inventory_order.OperationList - ol.SourceNumber = outsourcingOrder.Number - ol.Products = products - ol.SalesDetailsNumber = outsourcingOrder.SalesDetailsNumber - operationList = append(operationList, &ol) - client := inventory_order.NewInventoryOrderServiceClient(purchase_wms.PurchaseConn) - _, err = client.CreateOperationList(c, &inventory_order.CreateOperationListRequest{ - OperationType: 1, - Source: "APS_OUTSOURCING_RECEIVE", - List: operationList, - OperationSource: common.OperationSource_OperationSourceOutsourcing, - WarehouseId: params.WarehouseId, - }) - if err != nil { - logx.Errorf("outsourcing confirmReceipt CreateOperationList failed: %v", err) - utils.ResponseFormat(c, code.InternalError, "GRPC璋冪敤閿欒") - return - } - - err = models.NewOutsourcingOrderDeliveryDetailsSearch(). - SetOutsourcingOrderID(params.OutsourcingOrderID). - SetIds(params.OutsourcingOrderDeliveryDetailsIds).UpdateByMap(map[string]interface{}{"is_received": constvar.BoolTypeTrue}) - if err != nil { - logx.Errorf("outsourcing confirmReceipt CreateOperationList success but update receive status failed: %v, params:%+v", err, params) - utils.ResponseFormat(c, code.SaveFail, "鏇存敼鐘舵�佸け璐�") - return - } - utils.ResponseFormat(c, code.Success, nil) -} - -// GetInventoryInputDetails -// @Tags 濮斿浼佷笟绠$悊 -// @Summary 鑾峰彇濮斿鍏ュ簱鏄庣粏 -// @Produce application/json -// @Param Authorization header string true "token" -// @Param object body outsourcingrequest.GetInventoryInputDetails true "鍙傛暟" -// @Success 200 {object} utils.ResponseList{[]response.OutsourcingInputItem} "鎴愬姛" -// @Router /outsourcing/order/getInventoryInputDetails [post] -func (slf *OutsourcingController) GetInventoryInputDetails(c *gin.Context) { - var params outsourcingrequest.GetInventoryInputDetails - if err := c.BindJSON(¶ms); err != nil { - utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") - return - } - - outsourcingOrder, err := models.NewOutsourcingOrderSearch().SetID(params.OutsourcingOrderID).First() - if err != nil { - utils.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�") - return - } - - client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn) - resp, err := client.SrmGetOperationInfo(c, &purchase_wms.SrmGetOperationInfoRequest{ - Number: outsourcingOrder.Number, - OperationSource: common.OperationSource_OperationSourceOutsourcing, - SalesDetailsNumber: outsourcingOrder.SalesDetailsNumber, - }) - if err != nil { - logx.Errorf("SrmGetOperationInfo err:%v", err) - utils.ResponseFormat(c, code.Success, nil) - return - } - - orderProducts, err := models.NewOutsourcingOrderProductSearch().SetOutsourcingOrderID(params.OutsourcingOrderID).FindNotTotal() - if err != nil { - utils.ResponseFormat(c, code.InternalError, "鏌ヨ璁㈠崟浜у搧澶辫触") - return - } - productMap := models.OutsourcingOrderProductMap(orderProducts) - list := make([]*response.OutsourcingInputItem, 0, len(resp.Operations)) - for _, v := range resp.Operations { - if productMap[v.ProductId] == nil { - continue - } - list = append(list, &response.OutsourcingInputItem{ - Number: v.Number, - ProductId: v.ProductId, - ProductName: v.ProductName, - OrderAmount: productMap[v.ProductId].Amount, - InputAmount: v.Amount, - Specs: productMap[v.ProductId].Specs, - Type: productMap[v.ProductId].Type, - Unit: productMap[v.ProductId].Unit, - Status: v.Status, - CreateTime: v.OverTime, - }) - } - utils.ResponseFormat(c, code.Success, list) - -} +// +//// OutsourcingOrderList +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 濮斿璁㈠崟鍒楄〃 +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object query outsourcingrequest.OutsourcingOrderList true "鏌ヨ鍙傛暟" +//// @Success 200 {object} utils.ResponseList{data=[]models.OutsourcingOrder} "鎴愬姛" +//// @Router /outsourcing/order/list [get] +//func (slf *OutsourcingController) OutsourcingOrderList(c *gin.Context) { +// var params outsourcingrequest.OutsourcingOrderList +// if err := c.BindQuery(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// list, total, err := models.NewOutsourcingOrderSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetOrder("id desc").Find() +// if err != nil { +// utils.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒") +// return +// } +// utils.ResponseFormatList(c, code.Success, list, int(total)) +//} +// +//// OrderOverview +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 璁㈠崟缁熻 +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Success 200 {object} utils.ResponseList{data=outsourcingrequest.OutsourcingOrderOverview} "鎴愬姛" +//// @Router /outsourcing/order/overview [get] +//func (slf *OutsourcingController) OrderOverview(c *gin.Context) { +// result, err := models.NewOutsourcingOrderSearch().CountGroupByStatus() +// if err != nil { +// utils.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒") +// return +// } +// resp := &outsourcingrequest.OutsourcingOrderOverview{} +// for _, v := range result { +// resp.Total += v.Total +// status := constvar.OutsourcingOrderStatus(v.Status) +// if status == constvar.OutsourcingOrderStatusCreate { +// resp.WaitAssigned += v.Total +// } else { +// resp.HasAssigned += v.Total +// } +// } +// utils.ResponseFormat(c, code.Success, resp) +//} +// +//// OutsourcingOrderProductList +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 濮斿璁㈠崟浜у搧鍒楄〃 +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object query outsourcingrequest.OutsourcingOrderProductList true "鏌ヨ鍙傛暟" +//// @Success 200 {object} utils.ResponseList{data=[]models.OutsourcingOrderProduct} "鎴愬姛" +//// @Router /outsourcing/order/productList [get] +//func (slf *OutsourcingController) OutsourcingOrderProductList(c *gin.Context) { +// var params outsourcingrequest.OutsourcingOrderProductList +// if err := c.BindQuery(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// if params.OutsourcingOrderId == 0 { +// utils.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 { +// utils.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒") +// return +// } +// utils.ResponseFormatList(c, code.Success, list, int(total)) +//} +// +//// OutsourcingEnterpriseProductList +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 濮斿浼佷笟渚涜揣鍘嗗彶 +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object query outsourcingrequest.OutsourcingEnterpriseProductList true "鏌ヨ鍙傛暟" +//// @Success 200 {object} utils.ResponseList{data=[]models.OutsourcingOrderProduct} "鎴愬姛" +//// @Router /outsourcing/enterprise/productList [get] +//func (slf *OutsourcingController) OutsourcingEnterpriseProductList(c *gin.Context) { +// var params outsourcingrequest.OutsourcingEnterpriseProductList +// if err := c.BindQuery(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// if params.EnterpriseID == 0 { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け") +// return +// } +// list, total, err := models.NewOutsourcingOrderProductSearch().SetPage(params.Page, params.PageSize).SetEnterpriseID(params.EnterpriseID).SetOrder("id desc").Find() +// if err != nil { +// utils.ResponseFormat(c, code.InternalError, "鏌ヨ閿欒") +// return +// } +// utils.ResponseFormatList(c, code.Success, list, int(total)) +//} +// +//// OutsourcingOrderAssign +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 濮斿璁㈠崟鍒嗛厤浼佷笟 +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object body outsourcingrequest.OutsourcingOrderAssign true "鏌ヨ鍙傛暟" +//// @Success 200 {object} contextx.Response{} "鎴愬姛" +//// @Router /outsourcing/order/assign [post] +//func (slf *OutsourcingController) OutsourcingOrderAssign(c *gin.Context) { +// var params outsourcingrequest.OutsourcingOrderAssign +// if err := c.BindJSON(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// if params.EnterpriseID == 0 || params.OrderID == 0 && len(params.OrderIDs) == 0 { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け") +// return +// } +// if params.OrderID != 0 && len(params.OrderIDs) != 0 { +// utils.ResponseFormat(c, code.RequestParamError, "涓嶈兘鍚屾椂浼爋rderID鍜宱rderIDs") +// return +// } +// enterprise, err := models.NewOutsourcingEnterpriseSearch().SetID(params.EnterpriseID).First() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鏌ユ壘浼佷笟澶辫触") +// return +// } +// if params.OrderID != 0 { +// order, err := models.NewOutsourcingOrderSearch().SetID(params.OrderID).First() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鏌ユ壘璁㈠崟澶辫触") +// return +// } +// if order.Status != constvar.OutsourcingOrderStatusCreate || order.EnterpriseID != 0 { +// utils.ResponseFormat(c, code.RequestParamError, "璇ヨ鍗曞凡鍒嗛厤浼佷笟锛岃妫�鏌�") +// return +// } +// } else { +// for _, orderID := range params.OrderIDs { +// order, err := models.NewOutsourcingOrderSearch().SetID(orderID).First() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鏌ユ壘璁㈠崟澶辫触") +// return +// } +// if order.Status != constvar.OutsourcingOrderStatusCreate || order.EnterpriseID != 0 { +// utils.ResponseFormat(c, code.RequestParamError, "瀛樺湪宸插垎閰嶄紒涓氱殑璁㈠崟锛岃妫�鏌�") +// return +// } +// } +// } +// +// err = model.WithTransaction(func(db *gorm.DB) error { +// err = models.NewOutsourcingOrderSearch().SetID(params.OrderID).SetIDs(params.OrderIDs).UpdateByMap(map[string]interface{}{ +// "enterprise_id": enterprise.ID, +// "enterprise_name": enterprise.Name, +// "enterprise_type": enterprise.EnterpriseType, +// "status": constvar.OutsourcingOrderStatusAssigned, +// }) +// if err != nil { +// return err +// } +// err = models.NewOutsourcingOrderProductSearch().SetOutsourcingOrderID(params.OrderID).SetOutsourcingOrderIDs(params.OrderIDs).UpdateByMap(map[string]interface{}{ +// "enterprise_id": enterprise.ID, +// }) +// return err +// }) +// if err != nil { +// utils.ResponseFormat(c, code.InternalError, "鍒嗛厤澶辫触") +// return +// } +// utils.ResponseFormat(c, code.Success, nil) +//} +// +//// SaveMaterialApply +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 淇濆瓨鐗╂枡鐢宠鍗� +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object body outsourcingrequest.SaveMaterialApply true "鍙傛暟" +//// @Success 200 {object} utils.Response{} "鎴愬姛" +//// @Router /outsourcing/order/saveMaterialApply [post] +//func (slf *OutsourcingController) SaveMaterialApply(c *gin.Context) { +// var params outsourcingrequest.SaveMaterialApply +// if err := c.BindJSON(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// if len(params.ApplyList) == 0 { +// utils.ResponseFormat(c, code.RequestParamError, "鐗╂枡鐢宠涓嶈兘涓虹┖") +// return +// } +// var apply []*models.OutsourcingMaterialApply +// err := structx.AssignTo(params.ApplyList, &apply) +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲澶辫触") +// return +// } +// err = model.WithTransaction(func(db *gorm.DB) error { +// err = models.NewOutsourcingMaterialApplySearch().SetOrm(db).CreateBatch(apply) +// if err != nil { +// return err +// } +// err = models.NewOutsourcingOrderSearch().SetOrm(db).SetNumber(params.ApplyList[0].OutsourcingOrderNumber). +// UpdateByMap(map[string]interface{}{"status": constvar.OutsourcingOrderStatusMaterialApplying}) +// return err +// }) +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触") +// return +// } +// +// utils.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛") +//} +// +//// GetMaterialApplyList +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 鑾峰彇鐗╂枡鐢宠鍗� +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object body outsourcingrequest.GetMaterialApplyList true "鍙傛暟" +//// @Success 200 {object} utils.ResponseList{[]models.OutsourcingMaterialApply} "鎴愬姛" +//// @Router /outsourcing/order/getMaterialApplyList [post] +//func (slf *OutsourcingController) GetMaterialApplyList(c *gin.Context) { +// var params outsourcingrequest.GetMaterialApplyList +// if err := c.BindJSON(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// find, err := models.NewOutsourcingMaterialApplySearch().SetOutsourcingOrderNumber(params.Number).FindNotTotal() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触") +// return +// } +// utils.ResponseFormat(c, code.Success, find) +//} +// +//// ChangeStatus +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 淇敼鐘舵�� +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object body outsourcingrequest.ChangeStatus true "鍙傛暟" +//// @Success 200 {object} utils.Response "鎴愬姛" +//// @Router /outsourcing/order/changeStatus [post] +//func (slf *OutsourcingController) ChangeStatus(c *gin.Context) { +// var params outsourcingrequest.ChangeStatus +// if err := c.BindJSON(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// //闄愬畾鐘舵�佸弬鏁� +// if params.Status == constvar.OutsourcingOrderStatusMaterialExamineRefused || +// params.Status == constvar.OutsourcingOrderStatusProducing || +// params.Status == constvar.OutsourcingOrderStatusFinish || +// params.Status == constvar.OutsourcingOrderStatusReceiveFinish { +// m := make(map[string]interface{}) +// m["status"] = params.Status +// m["reason"] = params.Reason +// err := models.NewOutsourcingOrderSearch().SetNumber(params.OutsourcingOrderNumber).UpdateByMap(m) +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鐘舵�佹洿鏂板け璐�") +// return +// } +// utils.ResponseFormat(c, code.Success, "鐘舵�佹洿鏂版垚鍔�") +// return +// } +// utils.ResponseFormat(c, code.RequestParamError, "鐘舵�佸弬鏁颁笉姝g‘") +//} +// +//// GetDeliveryList +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 鑾峰彇鍙戣揣鍒楄〃 +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object body outsourcingrequest.GetDeliveryList true "鍙傛暟" +//// @Success 200 {object} utils.ResponseList{[]models.OutsourcingOrderDeliveryDetails} "鎴愬姛" +//// @Router /outsourcing/order/deliveryList [post] +//func (slf *OutsourcingController) GetDeliveryList(c *gin.Context) { +// var params outsourcingrequest.GetDeliveryList +// if err := c.BindJSON(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// +// _, err := models.NewOutsourcingOrderSearch().SetID(params.OutsourcingOrderID).First() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�") +// return +// } +// +// list, err := models.NewOutsourcingOrderDeliveryDetailsSearch(). +// SetOutsourcingOrderID(params.OutsourcingOrderID). +// SetIsReceived(params.IsReceived). +// SetPreload(true). +// SetOrder("id desc"). +// FindNotTotal() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触") +// return +// } +// utils.ResponseFormat(c, code.Success, list) +//} +// +//// ConfirmReceipt +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 濮斿鍏ュ簱 纭鍏ュ簱 +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object body outsourcingrequest.ConfirmDeliveryList true "鍙傛暟" +//// @Success 200 {object} utils.ResponseList{[]models.OutsourcingOrderDeliveryDetails} "鎴愬姛" +//// @Router /outsourcing/order/confirmReceipt [post] +//func (slf *OutsourcingController) ConfirmReceipt(c *gin.Context) { +// var params outsourcingrequest.ConfirmDeliveryList +// if err := c.BindJSON(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// +// outsourcingOrder, err := models.NewOutsourcingOrderSearch().SetID(params.OutsourcingOrderID).First() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�") +// return +// } +// +// list, err := models.NewOutsourcingOrderDeliveryDetailsSearch(). +// SetOutsourcingOrderID(params.OutsourcingOrderID). +// SetIds(params.OutsourcingOrderDeliveryDetailsIds). +// SetPreload(true). +// SetOrder("id desc"). +// FindNotTotal() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触") +// return +// } +// +// operationList := make([]*inventory_order.OperationList, 0) +// products := make([]*inventory_order.OperationProduct, 0, len(list)) +// ids := make([]uint, 0, len(list)) +// for _, item := range list { +// products = append(products, &inventory_order.OperationProduct{ +// ProductNumber: item.OutsourcingOrderProduct.ProductId, +// Amount: item.SendAmount.IntPart(), +// }) +// ids = append(ids, item.ID) +// } +// var ol inventory_order.OperationList +// ol.SourceNumber = outsourcingOrder.Number +// ol.Products = products +// ol.SalesDetailsNumber = outsourcingOrder.SalesDetailsNumber +// operationList = append(operationList, &ol) +// client := inventory_order.NewInventoryOrderServiceClient(purchase_wms.PurchaseConn) +// _, err = client.CreateOperationList(c, &inventory_order.CreateOperationListRequest{ +// OperationType: 1, +// Source: "APS_OUTSOURCING_RECEIVE", +// List: operationList, +// OperationSource: common.OperationSource_OperationSourceOutsourcing, +// WarehouseId: params.WarehouseId, +// }) +// if err != nil { +// logx.Errorf("outsourcing confirmReceipt CreateOperationList failed: %v", err) +// utils.ResponseFormat(c, code.InternalError, "GRPC璋冪敤閿欒") +// return +// } +// +// err = models.NewOutsourcingOrderDeliveryDetailsSearch(). +// SetOutsourcingOrderID(params.OutsourcingOrderID). +// SetIds(params.OutsourcingOrderDeliveryDetailsIds).UpdateByMap(map[string]interface{}{"is_received": constvar.BoolTypeTrue}) +// if err != nil { +// logx.Errorf("outsourcing confirmReceipt CreateOperationList success but update receive status failed: %v, params:%+v", err, params) +// utils.ResponseFormat(c, code.SaveFail, "鏇存敼鐘舵�佸け璐�") +// return +// } +// utils.ResponseFormat(c, code.Success, nil) +//} +// +//// GetInventoryInputDetails +//// @Tags 濮斿浼佷笟绠$悊 +//// @Summary 鑾峰彇濮斿鍏ュ簱鏄庣粏 +//// @Produce application/json +//// @Param Authorization header string true "token" +//// @Param object body outsourcingrequest.GetInventoryInputDetails true "鍙傛暟" +//// @Success 200 {object} utils.ResponseList{[]response.OutsourcingInputItem} "鎴愬姛" +//// @Router /outsourcing/order/getInventoryInputDetails [post] +//func (slf *OutsourcingController) GetInventoryInputDetails(c *gin.Context) { +// var params outsourcingrequest.GetInventoryInputDetails +// if err := c.BindJSON(¶ms); err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") +// return +// } +// +// outsourcingOrder, err := models.NewOutsourcingOrderSearch().SetID(params.OutsourcingOrderID).First() +// if err != nil { +// utils.ResponseFormat(c, code.RequestParamError, "璁㈠崟涓嶅瓨鍦�") +// return +// } +// +// client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn) +// resp, err := client.SrmGetOperationInfo(c, &purchase_wms.SrmGetOperationInfoRequest{ +// Number: outsourcingOrder.Number, +// OperationSource: common.OperationSource_OperationSourceOutsourcing, +// SalesDetailsNumber: outsourcingOrder.SalesDetailsNumber, +// }) +// if err != nil { +// logx.Errorf("SrmGetOperationInfo err:%v", err) +// utils.ResponseFormat(c, code.Success, nil) +// return +// } +// +// orderProducts, err := models.NewOutsourcingOrderProductSearch().SetOutsourcingOrderID(params.OutsourcingOrderID).FindNotTotal() +// if err != nil { +// utils.ResponseFormat(c, code.InternalError, "鏌ヨ璁㈠崟浜у搧澶辫触") +// return +// } +// productMap := models.OutsourcingOrderProductMap(orderProducts) +// list := make([]*response.OutsourcingInputItem, 0, len(resp.Operations)) +// for _, v := range resp.Operations { +// if productMap[v.ProductId] == nil { +// continue +// } +// list = append(list, &response.OutsourcingInputItem{ +// Number: v.Number, +// ProductId: v.ProductId, +// ProductName: v.ProductName, +// OrderAmount: productMap[v.ProductId].Amount, +// InputAmount: v.Amount, +// Specs: productMap[v.ProductId].Specs, +// Type: productMap[v.ProductId].Type, +// Unit: productMap[v.ProductId].Unit, +// Status: v.Status, +// CreateTime: v.OverTime, +// }) +// } +// utils.ResponseFormat(c, code.Success, list) +// +//} -- Gitblit v1.8.0