futian.liu
2023-12-05 8e4000461f3a6bbee34068b78ed60292c0ada611
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java
@@ -1,5 +1,18 @@
package com.consum.base.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.WhBusinessEnum;
@@ -14,17 +27,8 @@
import com.consum.model.po.LWhProcureModel;
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.NumberGenerator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
/**
 * @ClassName LWhFormInventoryCoreService
@@ -34,42 +38,43 @@
 **/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED)
public class LWhFormInventoryCoreService {
    private LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods;
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    private CodeGeneratorService codeGeneratorService;
    private LWhFormProcureService lWhFormProcureService;
    private BaseWarehouseServiceImpl baseWarehouseService;
    private LWhFormProcureGoodsService lWhFormProcureGoodsService;
    private LWhFormProcureService lWhFormProcureServiceImpl;
    private BaseWarehouseService baseWarehouseService;
    private LWhFormProcureGoodsService lWhFormProcureGoodsServiceImpl;
    private LWhProcureModelService lWhProcureModelService;
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    private BaseGoodsTemplateService baseGoodsTemplateService;
    private LWhGoodsService lWhGoodsService;
    private LWhFormInventoryServiceImpl lWhFormInventoryService;
    private LWhFormInventoryService lWhFormInventoryService;
    private LWhFormProcureCoreService lWhFormProcureCoreService;
    private LWhFormOutputServiceImpl lWhFormOutputService;
    @Autowired
    public LWhFormInventoryCoreService(LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods,
        LWhFormOutputCoreService lWhFormOutputCoreService,
        CodeGeneratorService codeGeneratorService,
        LWhFormProcureService lWhFormProcureService,
        BaseWarehouseServiceImpl baseWarehouseService,
        LWhFormProcureGoodsService lWhFormProcureGoodsService,
        LWhProcureModelService lWhProcureModelService,
        BaseGoodsTemplateServiceImpl baseGoodsTemplateService,
        LWhGoodsService lWhGoodsService,
        LWhFormInventoryServiceImpl lWhFormInventoryService,
        LWhFormProcureCoreService lWhFormProcureCoreService,
        LWhFormOutputServiceImpl lWhFormOutputService
                                       LWhFormOutputCoreService lWhFormOutputCoreService,
                                       CodeGeneratorService codeGeneratorService,
                                       LWhFormProcureService lWhFormProcureServiceImpl,
                                       BaseWarehouseService baseWarehouseService,
                                       LWhFormProcureGoodsService lWhFormProcureGoodsServiceImpl,
                                       LWhProcureModelService lWhProcureModelService,
                                       BaseGoodsTemplateService baseGoodsTemplateService,
                                       LWhGoodsService lWhGoodsService,
                                       LWhFormInventoryService lWhFormInventoryService,
                                       LWhFormProcureCoreService lWhFormProcureCoreService,
                                       LWhFormOutputServiceImpl lWhFormOutputService
    ) {
        this.lWhFormInventoryGoods = lWhFormInventoryGoods;
        this.lWhFormOutputCoreService = lWhFormOutputCoreService;
        this.codeGeneratorService = codeGeneratorService;
        this.lWhFormProcureService = lWhFormProcureService;
        this.lWhFormProcureServiceImpl = lWhFormProcureServiceImpl;
        this.baseWarehouseService = baseWarehouseService;
        this.lWhFormProcureGoodsService = lWhFormProcureGoodsService;
        this.lWhFormProcureGoodsServiceImpl = lWhFormProcureGoodsServiceImpl;
        this.lWhProcureModelService = lWhProcureModelService;
        this.baseGoodsTemplateService = baseGoodsTemplateService;
        this.lWhGoodsService = lWhGoodsService;
@@ -104,8 +109,8 @@
            return "没有找到盘点单结果物品";
        }
        Map<Integer, List<LWhFormInventoryGoods>> inventoryGoodsMap = lWhFormInventoryGoods.stream()
            .filter(goods -> goods.getInventoryResult() == 2 || goods.getInventoryResult() == 3)
            .collect(Collectors.groupingBy(LWhFormInventoryGoods::getInventoryResult));
                .filter(goods -> goods.getInventoryResult() == 2 || goods.getInventoryResult() == 3)
                .collect(Collectors.groupingBy(LWhFormInventoryGoods::getInventoryResult));
        if (CollectionUtils.isEmpty(lWhFormInventoryGoods)) {
//            rtnMap.put("status", true);
            return null;
@@ -131,8 +136,8 @@
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
                Long inFormByInventoryId = (Long) inOutMap.get("inId");
                inOutMap.putAll(rkMap);
                Long inFormByInventoryId = (Long) inOutMap.get("inId");
                String errMsg = lWhFormProcureCoreService.doProcure(inFormByInventoryId, currentUser);
                if (errMsg != null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -156,7 +161,7 @@
                inOutMap.putAll(ckMap);
                Long lWhFormOutputId = (Long) inOutMap.get("outId");
                //2.根据出库单出库
                Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, WhBusinessEnum.CAIGOU, currentUser, stopTime);
                Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, WhBusinessEnum.PANDIAN, currentUser, stopTime,null);
                if (lWarehouseFlowId == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建出库单失败");
@@ -187,7 +192,7 @@
     * @param currentUser
     */
    private Map<String, Object> createInFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
        S_user_core currentUser) {
                                                          S_user_core currentUser) {
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            return null;
        }
@@ -207,7 +212,7 @@
        lWhFormProcure.setStates(1);
        lWhFormProcure.setAgencyId(baseWarehouse.getAgencyId());
        lWhFormProcure.setAgencyName(baseWarehouse.getAgencyName());
        int result = lWhFormProcureService.insert(lWhFormProcure);
        int result = lWhFormProcureServiceImpl.insert(lWhFormProcure);
        if (result == 0) {
            return null;
        }
@@ -239,7 +244,7 @@
            // 查询型号库存
            int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null);
            LWhProcureModel model = new LWhProcureModel();
            model.setId(NumberGenerator.getLongSequenceNumber());
            model.setId(IdUtil.generateId());
            model.setFromProcureGoodsId(fromProcureGoodsId);
            model.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0);
            model.setBusinessId(whFormProcureId);
@@ -251,7 +256,7 @@
            whProcureModeLlist.add(model);
            procureGoodList.add(procureGood);
        }
        lWhFormProcureGoodsService.insertBatch(procureGoodList);
        lWhFormProcureGoodsServiceImpl.insertBatch(procureGoodList);
        lWhProcureModelService.insertBatch(whProcureModeLlist);
        HashMap<String, Object> rtnMap = new HashMap<>();
@@ -268,7 +273,7 @@
     * @param currentUser
     */
    private Map<String, Object> createOutFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
        S_user_core currentUser, FinSysTenantUser sysInfo) {
                                                           S_user_core currentUser, FinSysTenantUser sysInfo) {
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            return null;
        }
@@ -277,6 +282,7 @@
        //出入库id
        long lWhFormOutputId = IdUtil.generateId();
        lWhFormOutput.setId(lWhFormOutputId);
        lWhFormOutput.setOutWarehouseType(0);
        lWhFormOutput.setWarehouseId(warehouseId);
        //根据仓库id查询仓库
        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
@@ -301,6 +307,7 @@
        if (flag1 != 1) {
            return null;
        }
        ArrayList<LWhProcureModel> lWhProcureModels = new ArrayList<>();
        for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) {
            Long baseGoodsModelsId = inventoryGoods.getBaseGoodsModelsId();
            Integer counts = inventoryGoods.getErrorCounts();
@@ -312,11 +319,16 @@
            //新增L_WH_PROCURE_MODEL记录
            LWhProcureModel lWhProcureModel = new LWhProcureModel();
            lWhProcureModel.setId(IdUtil.generateId());
            lWhProcureModel.setBusinessType(3);
            lWhProcureModel.setBusinessType(WhBusinessEnum.CHUKU.getValue() + 0);
            lWhProcureModel.setBusinessId(lWhFormOutputId);
            lWhProcureModel.setBaseGoodsModelsId(baseGoodsModelsId);
            lWhProcureModel.setCounts(counts);
            lWhProcureModel.setWorehouseCount(goodsNum);
            lWhProcureModelService.insert(lWhProcureModel);
//            lWhProcureModelService.insert(lWhProcureModel);
            lWhProcureModels.add(lWhProcureModel);
        }
        if (!CollectionUtils.isEmpty(lWhProcureModels)) {
            lWhProcureModelService.insertBatch(lWhProcureModels);
        }
        HashMap<String, Object> rtnMap = new HashMap<>();
        rtnMap.put("outId", lWhFormOutputId);