huangjiayang
2025-05-14 dadf503b15f3423980ad2bc17d23ea1a444aca10
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireBomStockDetailServiceImpl.java
@@ -1,12 +1,19 @@
package com.aps.core.service.impl;
import java.math.BigDecimal;
import java.util.List;
import cn.hutool.core.util.IdUtil;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.security.utils.SecurityUtils;
import com.aps.core.domain.*;
import com.aps.core.mapper.ApsMaterialStorageManagementMapper;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.aps.core.mapper.ApsPlateStandardRequireBomStockDetailMapper;
import com.aps.core.domain.ApsPlateStandardRequireBomStockDetail;
import com.aps.core.service.IApsPlateStandardRequireBomStockDetailService;
import org.springframework.transaction.annotation.Transactional;
/**
 * ApsPlateStandardRequireBomStockDetailService业务层处理
@@ -19,7 +26,11 @@
{
    @Autowired
    private ApsPlateStandardRequireBomStockDetailMapper apsPlateStandardRequireBomStockDetailMapper;
    @Resource
    ApsMaterialStorageManagementMapper itemStorageMapper;
    @Resource
    ApsPlateStandardRequireBomStockDetailMapper plateBomStockDetailMapper;
    /**
     * 查询ApsPlateStandardRequireBomStockDetail
     * 
@@ -93,4 +104,45 @@
    {
        return apsPlateStandardRequireBomStockDetailMapper.deleteApsPlateStandardRequireBomStockDetailById(id);
    }
    /**
     * 计算物料剩余库存 并保存物料剩余库存明细。
     * */
    @Transactional
    @Override
    public void saveStorageAndDetail(ApsMaterialStorageManagement itemStorage, ApsPlatePlan plan, String bomLineId,
                                     String itemCode, String batchNum, BigDecimal deductionAmount,
                                     BigDecimal afterStockAmount,Long requireId
            ,List<ApsPlateStandardRequireBomStockDetail> stockDetailsList){
        itemStorageMapper.updateMaterialStorageByVersion(itemStorage.getId(), afterStockAmount,itemStorage.getVersion());
        /*记录扣减明细*/
        ApsPlateStandardRequireBomStockDetail bomStockDetail = ApsPlateStandardRequireBomStockDetail.builder()
                .id(IdUtil.getSnowflakeNextId())
                .requireId(requireId)
                .requireTrackId(plan.getRequireId())
                .bomLineId(bomLineId)
                .bomLineCode(itemCode)
                .beforeStockAmount(itemStorage.getRemainderStock())
                .deductionAmount(deductionAmount)
                .afterStockAmount(afterStockAmount)
                .batchNumber(batchNum)
                .orgCode(itemStorage.getApplicableFactories())
                .delFlag("0")
                .build();
        bomStockDetail.setCreateBy(SecurityUtils.getUsername());
        bomStockDetail.setCreateTime(DateUtils.getNowDate());
        stockDetailsList.add(bomStockDetail);
        plateBomStockDetailMapper.insertApsPlateStandardRequireBomStockDetail(bomStockDetail);
        /*更新内存中物料剩余库存*/
        /*itemStorage.setRemainderStock(afterStockAmount);
        if(null== itemStorage.getVersion()){
            itemStorage.setVersion(1);
        }else{
            itemStorage.setVersion(itemStorage.getVersion()+1);
        }*/
    }
}