futian.liu
2023-12-21 6d356442b2209d17869a4156356ecfa3a8321e74
consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferCoreService.java
@@ -1,6 +1,7 @@
package com.consum.base.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -15,6 +16,7 @@
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.type.TransferStatesType;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.base.service.BaseGoodsTemplateService;
@@ -97,14 +99,13 @@
        long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        // 单据类型。0仓库调拨;1部门分发;2部门物品回退
        Integer businessType = lWhFormTransfer.getBusinessType();
        businessType = businessType == null ? 0 : businessType;
        WhBusinessEnum businessEnum = WhBusinessEnum.DIAOBO;
        if (businessType == 0) {
            businessEnum = WhBusinessEnum.DIAOBO;
        } else if (businessType == 1) {
        WhBusinessEnum businessEnum;
        if (businessType == 1) {
            businessEnum = WhBusinessEnum.BUMENFENFA;
        } else if (businessType == 2) {
            businessEnum = WhBusinessEnum.BUMENTUIHUI;
        } else {
            businessEnum = WhBusinessEnum.DIAOBO;
        }
        // 出库单ID
@@ -227,7 +228,8 @@
            List<Long> outGoodsId = null;
            synchronized (warehouseModelLockObj) {
                // 获得锁后查询该型号的期初数量
                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, outWarehouseId,
                List<Long> warehouseIds = new ArrayList<>(Arrays.asList(outWarehouseId));
                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, warehouseIds,
                    baseGoodsModelsId, queryModelStatus, buyType);
                if (goodsModelNum < counts) {
                    log.error("出库失败!型号{} 的数量不足,需要调拨{}个,仓库中现存{}个", baseGoodsModelsId, counts, goodsModelNum);
@@ -285,7 +287,7 @@
        lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
        // 调拨单不再关联出入库单
        // lWhFormTransfer.setOutWarehouseFormId(outWarehouseFormId);
        lWhFormTransfer.setStates(1);
        lWhFormTransfer.setStates(TransferStatesType.RECEIVE_ING.getValue());
        lWhFormTransfer.setOutOperatorId(userId);
        lWhFormTransfer.setOutOperatorName(nickName);
        lWhFormTransfer.setOutputTime(dealTime);
@@ -380,18 +382,13 @@
                    throw new RuntimeException("入库单失败,未查询到物品!");
                }
                // 获得锁后查询该型号的期初数量
                List<Long> warehouseIds = new ArrayList<>(Arrays.asList(inWarehouseId));
                int goodsModelNum =
                    lWhGoodsService.queryGoodsModelNum(inWarehouseType, inWarehouseId, baseGoodsModelsId, 1, null);
                    lWhGoodsService.queryGoodsModelNum(inWarehouseType, warehouseIds, baseGoodsModelsId, 1, null);
                // 库存物品详情(L_WH_GOODS)中 状态设置为1
                lWhGoodsService.modGoodsTransfering(outGoodsIds, inWarehouseType, inWarehouseId, inWarehouseName,
                    goodsStatus);
                // 通过物品id查询所有商品的总金额
                // long amount = lWhGoodsService.queryGoodsPriceById(outGoodsIds);
                // LWhProcureModel lWhFormScrappedGoods = new LWhProcureModel(formScrappedGood.getId());
                // lWhFormScrappedGoods.setTotalAmount(amount);
                // lWhFormTransferService.update(lWhFormScrappedGoods);
                whGoodsRecord.setInitialCount(goodsModelNum);
                whGoodsRecord.setEndCount(goodsModelNum + whGoodsRecord.getThisCount());
@@ -472,7 +469,7 @@
        lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
        lWhFormTransfer.setInWarehouseFlowId(inWarehouseFlowId);
        lWhFormTransfer.setInWarehouseFormId(null);
        lWhFormTransfer.setStates(2);
        lWhFormTransfer.setStates(TransferStatesType.SUCCESS.getValue());
        if (StringUtils.isEmpty(inOperatorName)) {
            lWhFormTransfer.setInOperatorId(userId);
            lWhFormTransfer.setInOperatorName(nickName);