futian.liu
2023-12-20 1b8db0473522c886428767f7eeaaf7f52d47ce42
consum-base/src/main/java/com/consum/base/service/impl/LWhFormOutputServiceImpl.java
@@ -1,9 +1,12 @@
package com.consum.base.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
@@ -14,9 +17,10 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.param.BaseWarehouseParam1;
import com.consum.base.core.type.GoodsModelType;
import com.consum.base.core.type.InAndOutPutType;
import com.consum.base.core.type.OutPutStatesType;
import com.consum.base.core.type.WareHouseType;
import com.consum.base.core.utils.CurrencyUtil;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapUtils;
@@ -93,7 +97,7 @@
            return 0;
        }
        lWhFormOutput.setWarehouseName(warehouse.getWarehouseName());
        lWhFormOutput.setOutputCode(BaseWarehouseParam1.In_OutPutTypeEnum.Fragmentary_Output.getValue() + "");
        lWhFormOutput.setOutputCode(InAndOutPutType.Fragmentary_Output.getValue() + "");
        lWhFormOutput.setOutputName("零星出库");
        lWhFormOutput.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
        lWhFormOutput.setAgencyName(sysInfo.getTenantName());
@@ -101,13 +105,14 @@
        lWhFormOutput.setOperatorName(sysInfo.getUserName());
        lWhFormOutput.setDealTime(param.getDealTime());
        lWhFormOutput.setStates(OutPutStatesType.OUT_PENDING.getValue());
        lWhFormOutput.setOutputDoc(param.getProcureDoc());
        int flag1 = this.insert(lWhFormOutput);
        if (flag1 == 0) {
            log.error("新增出库单记录");
        lWhFormOutput.setOutputDoc(param.getDoc());
        int outputInsertNum = this.insert(lWhFormOutput);
        if (outputInsertNum == 0) {
            log.error("新增出库单记录失败");
            return 0;
        }
        // 2.新增物品型号记录
        Set<Long> allChangModelList = new HashSet<>();
        List<LWFormsOutputGoodsInfoParam> goodsList = param.getGoods();
        List<LWhProcureModel> modelList = new ArrayList<>();
        for (LWFormsOutputGoodsInfoParam goods : goodsList) {
@@ -118,6 +123,7 @@
                lWhProcureModel.setBusinessType(GoodsModelType.OUT_PUT.getValue());
                lWhProcureModel.setBusinessId(lWhFormOutputId);
                lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
                allChangModelList.add(model.getBaseGoodsModelsId());
                // 根据型号id查询型号
                BaseGoodsModels baseGoodsModels =
                    this.baseGoodsModelsService.get(new BaseGoodsModels(model.getBaseGoodsModelsId()));
@@ -126,14 +132,15 @@
                }
                lWhProcureModel.setCounts(model.getCounts());
                // 根据物品型号查询物品库存
                int goodsNum =
                    this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), 1, null);
                List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId));
                int goodsNum = this.lWhGoodsService.queryGoodsModelNum(WareHouseType.TENANT.getValue(), warehouseIds,
                    model.getBaseGoodsModelsId(), 1, null);
                lWhProcureModel.setWorehouseCount(goodsNum);
                modelList.add(lWhProcureModel);
            }
        }
        int flag2 = this.lWhProcureModelService.insert(modelList);
        if (flag2 != modelList.size()) {
        int modelInsertNum = this.lWhProcureModelService.insert(modelList);
        if (modelInsertNum != modelList.size()) {
            log.error("新增物品型号失败");
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
@@ -147,6 +154,10 @@
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
        }
        // 4 预警
        // 当库存变动时调用该方法
        // lWhWarningCoreService.updateKuCun((short) 0, warehouseId, new ArrayList<>(allChangModelList), null,
        // DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        return 1;
    }