futian.liu
2023-12-18 3884e330379c96e7576ada6b7a988a84e8757886
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,8 +17,8 @@
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.utils.CurrencyUtil;
import com.consum.base.core.utils.IdUtil;
@@ -28,7 +31,6 @@
import com.consum.base.pojo.query.LWhFormOutputQry;
import com.consum.base.service.BaseGoodsModelsService;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.LWhFormOutputCoreService;
import com.consum.base.service.LWhFormOutputService;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.LWhProcureModelService;
@@ -94,7 +96,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());
@@ -102,13 +104,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) {
@@ -119,6 +122,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()));
@@ -127,14 +131,16 @@
                }
                lWhProcureModel.setCounts(model.getCounts());
                // 根据物品型号查询物品库存
                List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId));
                // 查询库存时不区分机构和部门
                int goodsNum =
                    this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), 1, null);
                    this.lWhGoodsService.queryGoodsModelNum(null, 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;
@@ -148,6 +154,10 @@
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
        }
        // 4 预警
        // 当库存变动时调用该方法
        // lWhWarningCoreService.updateKuCun((short) 0, warehouseId, new ArrayList<>(allChangModelList), null,
        // DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        return 1;
    }