From a9ad4cabc4d303532fbd743538f7480c0eef5a69 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 05 七月 2024 14:58:42 +0800 Subject: [PATCH] 库存盘点验证时的出入库数量使用盘点时的库存数量计算 --- controllers/operation.go | 47 ++++++++++++++++++++++++++++++----------------- 1 files changed, 30 insertions(+), 17 deletions(-) diff --git a/controllers/operation.go b/controllers/operation.go index 51c3f77..5efb66b 100644 --- a/controllers/operation.go +++ b/controllers/operation.go @@ -94,7 +94,7 @@ params.WarehouseId = operationType.WarehouseId } - if params.InventoryDealerType == 0 { + if params.DealerType == "" { CheckInventoryDealerType(¶ms) } @@ -169,21 +169,15 @@ default: return } - miniDict, _ := models.NewMiniDictSearch().SetType(dictType).SetName(dictName).First() - if miniDict != nil { - params.InventoryDealerType = int(miniDict.ID) - } else { - dict := &models.MiniDict{ + miniDict, err := models.NewMiniDictSearch().SetType(dictType).SetName(dictName).First() + if err == gorm.ErrRecordNotFound { + miniDict = &models.MiniDict{ Type: dictType, Name: dictName, } - models.NewMiniDictSearch().Create(dict) - miniDict, err := models.NewMiniDictSearch().SetType(dictType).SetName(dictName).First() - if err != nil { - return - } - params.InventoryDealerType = int(miniDict.ID) + models.NewMiniDictSearch().Create(miniDict) } + params.DealerType = miniDict.Name } func CheckDetailsRepeat(details []*models.OperationDetails) bool { @@ -293,12 +287,11 @@ // GetOperationInfo // @Tags 鍏ュ簱/鍑哄簱 -// @Summary 鍏ュ簱/鍑哄簱鍒楄〃 +// @Summary 鎿嶄綔璇︽儏鎺ュ彛 // @Produce application/json -// -// @Param id path string true "id" -// -// @Success 200 {object} util.Response "鎴愬姛" +// @Param id path string true "id" +// @Param Authorization header string true "token" +// @Success 200 {object} util.Response{data=models.Operation} "鎴愬姛" // @Router /api-wms/v1/operation/getOperationInfo/{id} [get] func (slf OperationController) GetOperationInfo(c *gin.Context) { number := c.Param("id") @@ -312,6 +305,26 @@ util.ResponseFormat(c, code.RequestParamError, err.Error()) return } + + if operation.BaseOperationType == constvar.BaseOperationTypeOutgoing || operation.BaseOperationType == constvar.BaseOperationTypeInternal { //鏌ヨ瀹炴椂鍦ㄥ簱搴撳瓨 + productIds := make([]string, 0) + locationIds := make([]int, 0) + for _, v := range operation.Details { + productIds = append(productIds, v.ProductId) + locationIds = append(locationIds, v.FromLocationID) + } + locationAmountMap, err := service.GetLocationAmounts(productIds, locationIds) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鏌ヨ浜у搧搴撳瓨閿欒") + return + } + for _, v := range operation.Details { + if locationAmountMap[v.ProductId] != nil { + v.StockAmount = locationAmountMap[v.ProductId][v.FromLocationID] + } + } + } + util.ResponseFormat(c, code.Success, operation) } -- Gitblit v1.8.0