From 4041b5571482c5515d15857f59b14a72045350c6 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 23 十月 2023 12:05:20 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS --- controllers/product_controller.go | 4 models/operation_type.go | 4 + controllers/operation_type.go | 42 ++++++++++ controllers/operation.go | 17 ++- models/location_product_amount.go | 25 +++--- docs/swagger.yaml | 22 +++++ request/operation.go | 5 request/operation_type.go | 4 + docs/docs.go | 35 +++++++- docs/swagger.json | 33 +++++++ controllers/location_product_amount.go | 2 router/router.go | 3 12 files changed, 163 insertions(+), 33 deletions(-) diff --git a/controllers/location_product_amount.go b/controllers/location_product_amount.go index 23c0ff3..f895a6c 100644 --- a/controllers/location_product_amount.go +++ b/controllers/location_product_amount.go @@ -71,6 +71,7 @@ if res := models.NewOperationSearch().Orm.Preload("Details", "product_id=?", v.ProductId).Where("wms_operation.base_operation_type=? and wms_operation.status=? and wms_operation.to_location_id=?", constvar.BaseOperationTypeAdjust, constvar.OperationStatus_Ready, v.LocationId).First(&operation); res.Error != nil { if errors.Is(res.Error, gorm.ErrRecordNotFound) { records[k].Status = constvar.OperationStatus_Finish + records[k].BaseOperationType = constvar.BaseOperationTypeAdjust continue } else { util.ResponseFormat(c, code.RequestError, fmt.Errorf("find operation err: %v", res.Error.Error())) @@ -84,6 +85,7 @@ records[k].OperationId = operation.Id records[k].Status = operation.Status } + records[k].BaseOperationType = constvar.BaseOperationTypeAdjust } util.ResponseFormatListWithPage(c, code.Success, records, int(total), params.Page, params.PageSize) } diff --git a/controllers/operation.go b/controllers/operation.go index dc07598..7f0bad0 100644 --- a/controllers/operation.go +++ b/controllers/operation.go @@ -128,8 +128,8 @@ return errors.New("璇峰~鍏ユ簮鍗曞彿") } - if params.OperationTypeId == 0 { - return errors.New("operationTypeId涓�0") + if params.OperationTypeId == 0 || int(params.BaseOperationType) == 0 { + return errors.New("鏈瘑鍒璁板綍绫诲瀷") } if params.OperationDate == "" { @@ -177,6 +177,9 @@ search.SetPage(params.Page, params.PageSize) if params.Number != "" { search.SetKeyword(params.Number) + } + if int(params.Status) != 0 { + search.SetStatus(params.Status) } list, total, err := search.SetOperationTypeId(params.OperationTypeId).SetPreload(true).SetOrder("created_at desc").Find() if err != nil { @@ -440,14 +443,14 @@ util.ResponseFormat(c, code.Success, "鎿嶄綔鎴愬姛") } -// ListAll +// listTransfer // @Tags 鍏ュ簱/鍑哄簱 -// @Summary 璋冩嫧 +// @Summary 搴撳瓨璋冩嫧鍒楄〃 // @Produce application/json // @Param object body request.OperationAllList true "鍙傛暟" // @Success 200 {object} util.Response "鎴愬姛" -// @Router /api-wms/v1/operation/listAll [post] -func (slf OperationController) ListAll(c *gin.Context) { +// @Router /api-wms/v1/operation/listTransfer [post] +func (slf OperationController) ListTransfer(c *gin.Context) { var params request.OperationAllList if err := c.BindJSON(¶ms); err != nil { util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�:"+err.Error()) @@ -463,7 +466,7 @@ if params.Number != "" { search.SetKeyword(params.Number) } - list, total, err := search.SetPreload(true).SetOrder("created_at desc").Find() + list, total, err := search.SetPreload(true).SetBaseOperationType(constvar.BaseOperationTypeInternal).SetOrder("created_at desc").Find() if err != nil { util.ResponseFormat(c, code.RequestError, "鏌ユ壘澶辫触:"+err.Error()) return diff --git a/controllers/operation_type.go b/controllers/operation_type.go index 8737781..0ce0a9b 100644 --- a/controllers/operation_type.go +++ b/controllers/operation_type.go @@ -166,3 +166,45 @@ } util.ResponseFormat(c, code.UpdateSuccess, "鍒犻櫎鎴愬姛") } + +// ListTransfer +// @Tags 涓氬姟绫诲瀷 +// @Summary 璋冩嫧绫诲瀷鍒楄〃 +// @Produce application/json +// @Param object query request.ListTransfer true "鏌ヨ鍙傛暟" +// @Success 200 {object} util.ResponseList "鎴愬姛" +// @Router /api-wms/v1/operationType/listTransfer [get] +func (slf OperationTypeController) ListTransfer(c *gin.Context) { + var params request.GetOperationTypeList + if err := c.ShouldBindQuery(¶ms); err != nil { + util.ResponseFormat(c, code.RequestParamError, err.Error()) + return + } + list, total, err := models.NewOperationTypeSearch().SetPage(params.Page, params.PageSize).SetBaseOperationType(constvar.BaseOperationTypeInternal).SetKeyword(params.Keyword).SetOrder("id desc").SetPreload(true).Find() + if err != nil { + util.ResponseFormat(c, code.RequestError, "鏌ユ壘澶辫触") + return + } + var idList []int + for _, v := range list { + idList = append(idList, v.Id) + } + statistics, err := models.NewOperationTypeSearch().ListByStatusAndCount(idList) + if err != nil { + util.ResponseFormat(c, code.RequestError, err.Error()) + return + } + mapStatistics := make(map[string]*models.OperationTypeByStatus, 0) + for _, v := range statistics { + mapStatistics[strconv.Itoa(v.Id)+string(v.Status)] = v + } + for k, v := range list { + if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Ready)]; ok { + list[k].ReadyCount = value.Count + } + if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Finish)]; 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 54ac018..9dee846 100644 --- a/controllers/product_controller.go +++ b/controllers/product_controller.go @@ -391,9 +391,7 @@ return } - //db := models.NewOperationSearch().Orm.Table("wms_operation").Select("wms_operation.id,wms_operation.number,wms_operation.source_number,wms_operation.status,wms_operation.from_location_id,wms_operation.to_location_id,wms_operation.operation_date,wms_operation.contacter_id,wms_operation.contacter_name,wms_operation.company_id,wms_operation.company_name,wms_operation.comment,wms_operation_details.product_id,wms_operation_details.product_name,wms_operation_details.unit,wms_operation_details.amount").InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id") - - db := models.NewOperationSearch().Orm.Table("wms_operation").Select("wms_operation.id,wms_operation.number,wms_operation.source_number,wms_operation.status,wms_operation.from_location_id,wms_operation.to_location_id,wms_operation.operation_date,wms_operation.contacter_id,wms_operation.contacter_name,wms_operation.company_id,wms_operation.company_name,wms_operation.comment,wms_operation_details.product_id,material.name as product_name,material.unit,wms_operation_details.amount").InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id").InnerJoins("inner join material on material.id=wms_operation_details.product_id") + db := models.NewOperationSearch().Orm.Table("wms_operation").Select("wms_operation.id,wms_operation.number,wms_operation.source_number,wms_operation.status,wms_operation.from_location_id,wms_operation.to_location_id,wms_operation.operation_date,wms_operation.contacter_id,wms_operation.contacter_name,wms_operation.company_id,wms_operation.company_name,wms_operation.comment,wms_operation_details.product_id,material.name as product_name,material.unit,wms_operation_details.amount").InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id").InnerJoins("inner join material on material.id=wms_operation_details.product_id").Where("wms_operation.base_operation_type=?", constvar.BaseOperationTypeDisuse) if params.Number != "" { db = db.Where("wms_operation.number like ? or wms_operation.source_number like ? or material.name like ?", fmt.Sprintf("%%%v%%", params.Number), fmt.Sprintf("%%%v%%", params.Number), fmt.Sprintf("%%%v%%", params.Number)) diff --git a/docs/docs.go b/docs/docs.go index 5255a2b..364970e 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -943,7 +943,7 @@ } } }, - "/api-wms/v1/operation/listAll": { + "/api-wms/v1/operation/listTransfer": { "post": { "produces": [ "application/json" @@ -951,7 +951,7 @@ "tags": [ "鍏ュ簱/鍑哄簱" ], - "summary": "璋冩嫧", + "summary": "搴撳瓨璋冩嫧鍒楄〃", "parameters": [ { "description": "鍙傛暟", @@ -1056,6 +1056,32 @@ "description": "鎴愬姛", "schema": { "$ref": "#/definitions/util.Response" + } + } + } + } + }, + "/api-wms/v1/operationType/listTransfer": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "涓氬姟绫诲瀷" + ], + "summary": "璋冩嫧绫诲瀷鍒楄〃", + "parameters": [ + { + "type": "string", + "name": "keyword", + "in": "query" + } + ], + "responses": { + "200": { + "description": "鎴愬姛", + "schema": { + "$ref": "#/definitions/util.ResponseList" } } } @@ -3192,6 +3218,9 @@ "pageSize": { "description": "姣忛〉澶у皬", "type": "integer" + }, + "status": { + "$ref": "#/definitions/constvar.OperationStatus" } } }, @@ -3721,8 +3750,6 @@ Description: "", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, - LeftDelim: "{{", - RightDelim: "}}", } func init() { diff --git a/docs/swagger.json b/docs/swagger.json index 54e4fa3..aa533b1 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -931,7 +931,7 @@ } } }, - "/api-wms/v1/operation/listAll": { + "/api-wms/v1/operation/listTransfer": { "post": { "produces": [ "application/json" @@ -939,7 +939,7 @@ "tags": [ "鍏ュ簱/鍑哄簱" ], - "summary": "璋冩嫧", + "summary": "搴撳瓨璋冩嫧鍒楄〃", "parameters": [ { "description": "鍙傛暟", @@ -1044,6 +1044,32 @@ "description": "鎴愬姛", "schema": { "$ref": "#/definitions/util.Response" + } + } + } + } + }, + "/api-wms/v1/operationType/listTransfer": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "涓氬姟绫诲瀷" + ], + "summary": "璋冩嫧绫诲瀷鍒楄〃", + "parameters": [ + { + "type": "string", + "name": "keyword", + "in": "query" + } + ], + "responses": { + "200": { + "description": "鎴愬姛", + "schema": { + "$ref": "#/definitions/util.ResponseList" } } } @@ -3180,6 +3206,9 @@ "pageSize": { "description": "姣忛〉澶у皬", "type": "integer" + }, + "status": { + "$ref": "#/definitions/constvar.OperationStatus" } } }, diff --git a/docs/swagger.yaml b/docs/swagger.yaml index b126c9c..4f54f49 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -914,6 +914,8 @@ pageSize: description: 姣忛〉澶у皬 type: integer + status: + $ref: '#/definitions/constvar.OperationStatus' type: object request.PageInfo: properties: @@ -1844,7 +1846,7 @@ summary: 鍏ュ簱/鍑哄簱鍒楄〃 tags: - 鍏ュ簱/鍑哄簱 - /api-wms/v1/operation/listAll: + /api-wms/v1/operation/listTransfer: post: parameters: - description: 鍙傛暟 @@ -1860,7 +1862,7 @@ description: 鎴愬姛 schema: $ref: '#/definitions/util.Response' - summary: 璋冩嫧 + summary: 搴撳瓨璋冩嫧鍒楄〃 tags: - 鍏ュ簱/鍑哄簱 /api-wms/v1/operation/operation: @@ -1919,6 +1921,22 @@ summary: 淇敼鍏ュ簱/鍑哄簱淇℃伅 tags: - 鍏ュ簱/鍑哄簱 + /api-wms/v1/operationType/listTransfer: + get: + parameters: + - in: query + name: keyword + type: string + produces: + - application/json + responses: + "200": + description: 鎴愬姛 + schema: + $ref: '#/definitions/util.ResponseList' + summary: 璋冩嫧绫诲瀷鍒楄〃 + tags: + - 涓氬姟绫诲瀷 /api-wms/v1/operationType/operationType: get: parameters: diff --git a/models/location_product_amount.go b/models/location_product_amount.go index b51e00c..0700984 100644 --- a/models/location_product_amount.go +++ b/models/location_product_amount.go @@ -31,18 +31,19 @@ LocationProductAmountWithOperation struct { //LocationProductAmount LocationProductAmount `json:"locationProductAmount"` - LocationProductAmountId int `json:"locationProductAmountId" gorm:"location_product_amount_id"` - LocationId int `json:"locationId" gorm:"column:location_id"` - LocationName string `json:"locationName" gorm:"column:location_name"` - ProductId string `json:"productId" gorm:"column:product_id"` - ProductName string `json:"productName" gorm:"column:product_name"` - Amount decimal.Decimal `json:"amount" gorm:"column:amount"` - Unit string `json:"unit" gorm:"column:unit"` - CreateDate string `json:"createDate" gorm:"column:create_date"` - AdjustAmount decimal.Decimal `json:"adjustAmount" gorm:"column:adjust_amount"` - DifferenceAmount decimal.Decimal `json:"differenceAmount" gorm:"-"` - OperationId int `json:"operationId" gorm:"column:operation_id"` - Status constvar.OperationStatus `json:"status" gorm:"status"` + LocationProductAmountId int `json:"locationProductAmountId" gorm:"location_product_amount_id"` + LocationId int `json:"locationId" gorm:"column:location_id"` + LocationName string `json:"locationName" gorm:"column:location_name"` + ProductId string `json:"productId" gorm:"column:product_id"` + ProductName string `json:"productName" gorm:"column:product_name"` + Amount decimal.Decimal `json:"amount" gorm:"column:amount"` + Unit string `json:"unit" gorm:"column:unit"` + CreateDate string `json:"createDate" gorm:"column:create_date"` + AdjustAmount decimal.Decimal `json:"adjustAmount" gorm:"column:adjust_amount"` + DifferenceAmount decimal.Decimal `json:"differenceAmount" gorm:"-"` + OperationId int `json:"operationId" gorm:"column:operation_id"` + Status constvar.OperationStatus `json:"status" gorm:"status"` + BaseOperationType constvar.BaseOperationType `json:"baseOperationType" gorm:"base_operation_type"` } ) diff --git a/models/operation_type.go b/models/operation_type.go index 5c1c4b3..ed03f46 100644 --- a/models/operation_type.go +++ b/models/operation_type.go @@ -135,6 +135,10 @@ db = db.Where("warehouse_id = ?", slf.WarehouseId) } + if int(slf.BaseOperationType) != 0 { + db = db.Where("base_operation_type = ?", slf.BaseOperationType) + } + return db } diff --git a/request/operation.go b/request/operation.go index a507a13..ba5b594 100644 --- a/request/operation.go +++ b/request/operation.go @@ -40,8 +40,9 @@ type OperationList struct { PageInfo - OperationTypeId int `json:"operationTypeId" form:"operationTypeId"` - Number string `json:"number"` + OperationTypeId int `json:"operationTypeId" form:"operationTypeId"` + Number string `json:"number"` + Status constvar.OperationStatus `json:"status"` } type UpdateOperation struct { diff --git a/request/operation_type.go b/request/operation_type.go index a76c5d3..573eb4d 100644 --- a/request/operation_type.go +++ b/request/operation_type.go @@ -31,3 +31,7 @@ ID uint `gorm:"comment:涓婚敭ID;primaryKey;" json:"id"` AddOperationType } + +type ListTransfer struct { + Keyword string `json:"keyword"` +} diff --git a/router/router.go b/router/router.go index 1ac4c3f..4ac8ab8 100644 --- a/router/router.go +++ b/router/router.go @@ -68,6 +68,7 @@ operationTypeAPI := r.Group(urlPrefix + "/operationType") { operationTypeAPI.GET("operationType", operationTypeController.List) // 鑾峰彇浣滀笟绫诲瀷鍒楄〃 + operationTypeAPI.GET("listTransfer", operationTypeController.ListTransfer) // 鑾峰彇浣滀笟绫诲瀷鍒楄〃 operationTypeAPI.POST("operationType", operationTypeController.Add) // 鏂板浣滀笟绫诲瀷 operationTypeAPI.PUT("operationType/:id", operationTypeController.Update) // 淇敼浣滀笟绫诲瀷 operationTypeAPI.DELETE("operationType/:id", operationTypeController.Delete) // 鍒犻櫎浣滀笟绫诲瀷 @@ -82,7 +83,7 @@ operationAPI.POST("update", operationController.Update) operationAPI.DELETE("operation/:id", operationController.Delete) operationAPI.PUT("finish/:id", operationController.Finish) - operationAPI.POST("listAll", operationController.ListAll) + operationAPI.POST("listTransfer", operationController.ListTransfer) } -- Gitblit v1.8.0