futian.liu
2023-12-05 eb8d715399b8258a21a63b94629e8c2547648657
consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
@@ -1,6 +1,16 @@
package com.consum.base.service;
import cn.hutool.core.convert.Convert;
import com.consum.base.service.impl.LWhGoodsRecordDetailsService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
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 com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.WhBusinessEnum;
@@ -8,20 +18,17 @@
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.model.po.*;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormOutput;
import com.consum.model.po.LWhFormTransfer;
import com.consum.model.po.LWhGoodsRecord;
import com.consum.model.po.LWhProcureModel;
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.NumberGenerator;
import lombok.extern.slf4j.Slf4j;
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 java.util.ArrayList;
import java.util.List;
import java.util.Map;
import cn.hutool.core.convert.Convert;
import lombok.extern.slf4j.Slf4j;
/**
 * @ClassName WhFormOutputCoreService
@@ -34,7 +41,7 @@
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public class LWhFormOutputCoreService {
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    private BaseGoodsTemplateService baseGoodsTemplateService;
    private LWhGoodsService lWhGoodsService;
    private CodeGeneratorService codeGeneratorService;
    private LWhProcureModelService lWhProcureModelService;
@@ -42,17 +49,17 @@
    private LWhWarningCoreServiceImpl lWhWarningCoreService;
    private LWarehouseFlowService lWarehouseFlowService;
    private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService;
    private LWhGoodsRecordService lWhGoodsRecordService;
    private LWhGoodsRecordService lWhGoodsRecordServiceImpl;
    @Autowired
    public LWhFormOutputCoreService(BaseGoodsTemplateServiceImpl baseGoodsTemplateService,
    public LWhFormOutputCoreService(BaseGoodsTemplateService baseGoodsTemplateService,
                                    LWhGoodsService lWhGoodsService,
                                    CodeGeneratorService codeGeneratorService,
                                    LWhProcureModelService lWhProcureModelService,
                                    LWhFormOutputService lWhFormOutputService,
                                    LWarehouseFlowService lWarehouseFlowService,
                                    LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService,
                                    LWhGoodsRecordService lWhGoodsRecordService,
                                    LWhGoodsRecordService lWhGoodsRecordServiceImpl,
                                    LWhWarningCoreServiceImpl lWhWarningCoreService) {
        this.baseGoodsTemplateService = baseGoodsTemplateService;
        this.lWhGoodsService = lWhGoodsService;
@@ -61,7 +68,7 @@
        this.lWhFormOutputService = lWhFormOutputService;
        this.lWarehouseFlowService = lWarehouseFlowService;
        this.lWhGoodsRecordDetailsService = lWhGoodsRecordDetailsService;
        this.lWhGoodsRecordService = lWhGoodsRecordService;
        this.lWhGoodsRecordServiceImpl = lWhGoodsRecordServiceImpl;
        this.lWhWarningCoreService = lWhWarningCoreService;
    }
@@ -155,7 +162,7 @@
     * @return 流水记录总表ID
     */
    @Transactional(rollbackFor = Exception.class)
    public Long outFormByTransId(Long outWarehouseFormId, WhBusinessEnum businessType, S_user_core currentUser, Long dealTime) {
    public Long outFormByTransId(Long outWarehouseFormId, WhBusinessEnum businessType, S_user_core currentUser, Long dealTime, Long whFormTransferId) {
        if (outWarehouseFormId == null) {
            return null;
        }
@@ -222,7 +229,11 @@
        goodsModelNumList.forEach(itemModelInfo -> {
            // 需要调拨的物品的某个型号
            Long baseGoodsModelsId = itemModelInfo.getBaseGoodsModelsId();
            allChangModelList.add(baseGoodsModelsId);
            //TODO 为空时不加入更新列表
            if (baseGoodsModelsId != null) {
                allChangModelList.add(baseGoodsModelsId);
            }
            // 需要调拨的物品某个型号的数量
            Integer counts = itemModelInfo.getCounts();
@@ -280,7 +291,7 @@
            long totalAmount = lWhGoodsService.queryGoodsPriceById(outGoodsId);
            LWhProcureModel lWhProcureModel = new LWhProcureModel(itemModelInfo.getId());
            whGoodsRecord.setTotalPrice(totalAmount);
            lWhGoodsRecordService.insert(whGoodsRecord);
            lWhGoodsRecordServiceImpl.insert(whGoodsRecord);
            lWhProcureModel.setTotalAmount(totalAmount);
            lWhProcureModelService.update(lWhProcureModel);
        });
@@ -291,7 +302,7 @@
        warehouseFlow.setThisType(2);
        warehouseFlow.setBusinessType(businessType.getValue() + 0);
        warehouseFlow.setBusinessFormId(lWarehouseFlowBusinessId);
        warehouseFlow.setBusinessFormId(whFormTransferId == null ? lWarehouseFlowBusinessId : whFormTransferId);
        warehouseFlow.setOperatorId(userId);
        warehouseFlow.setOperatorName(nickName);
        warehouseFlow.setDealTime(dealTime);
@@ -307,7 +318,7 @@
        lWhFormOutputService.update(lWhFormOutput);
        //当库存变动时调用该方法
        if (outWarehouseType == 0){
        if (outWarehouseType == 0) {
            lWhWarningCoreService.updateKuCun(Convert.toShort(outWarehouseType, (short) 0), outWarehouseId, allChangModelList, null, dealTime);
        }
        return lWarehouseFlowId;