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.service.IApsPlateStandardRequireBomStockDetailService;
|
|
/**
|
* ApsPlateStandardRequireBomStockDetailService业务层处理
|
*
|
* @author zhl
|
* @date 2025-05-06
|
*/
|
@Service
|
public class ApsPlateStandardRequireBomStockDetailServiceImpl implements IApsPlateStandardRequireBomStockDetailService
|
{
|
@Autowired
|
private ApsPlateStandardRequireBomStockDetailMapper apsPlateStandardRequireBomStockDetailMapper;
|
@Resource
|
ApsMaterialStorageManagementMapper itemStorageMapper;
|
|
@Resource
|
ApsPlateStandardRequireBomStockDetailMapper plateBomStockDetailMapper;
|
/**
|
* 查询ApsPlateStandardRequireBomStockDetail
|
*
|
* @param id ApsPlateStandardRequireBomStockDetail主键
|
* @return ApsPlateStandardRequireBomStockDetail
|
*/
|
@Override
|
public ApsPlateStandardRequireBomStockDetail selectApsPlateStandardRequireBomStockDetailById(Long id)
|
{
|
return apsPlateStandardRequireBomStockDetailMapper.selectApsPlateStandardRequireBomStockDetailById(id);
|
}
|
|
/**
|
* 查询ApsPlateStandardRequireBomStockDetail列表
|
*
|
* @param apsPlateStandardRequireBomStockDetail ApsPlateStandardRequireBomStockDetail
|
* @return ApsPlateStandardRequireBomStockDetail
|
*/
|
@Override
|
public List<ApsPlateStandardRequireBomStockDetail> selectApsPlateStandardRequireBomStockDetailList(ApsPlateStandardRequireBomStockDetail apsPlateStandardRequireBomStockDetail)
|
{
|
return apsPlateStandardRequireBomStockDetailMapper.selectApsPlateStandardRequireBomStockDetailList(apsPlateStandardRequireBomStockDetail);
|
}
|
|
/**
|
* 新增ApsPlateStandardRequireBomStockDetail
|
*
|
* @param apsPlateStandardRequireBomStockDetail ApsPlateStandardRequireBomStockDetail
|
* @return 结果
|
*/
|
@Override
|
public int insertApsPlateStandardRequireBomStockDetail(ApsPlateStandardRequireBomStockDetail apsPlateStandardRequireBomStockDetail)
|
{
|
apsPlateStandardRequireBomStockDetail.setCreateTime(DateUtils.getNowDate());
|
return apsPlateStandardRequireBomStockDetailMapper.insertApsPlateStandardRequireBomStockDetail(apsPlateStandardRequireBomStockDetail);
|
}
|
|
/**
|
* 修改ApsPlateStandardRequireBomStockDetail
|
*
|
* @param apsPlateStandardRequireBomStockDetail ApsPlateStandardRequireBomStockDetail
|
* @return 结果
|
*/
|
@Override
|
public int updateApsPlateStandardRequireBomStockDetail(ApsPlateStandardRequireBomStockDetail apsPlateStandardRequireBomStockDetail)
|
{
|
apsPlateStandardRequireBomStockDetail.setUpdateTime(DateUtils.getNowDate());
|
return apsPlateStandardRequireBomStockDetailMapper.updateApsPlateStandardRequireBomStockDetail(apsPlateStandardRequireBomStockDetail);
|
}
|
|
/**
|
* 批量删除ApsPlateStandardRequireBomStockDetail
|
*
|
* @param ids 需要删除的ApsPlateStandardRequireBomStockDetail主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsPlateStandardRequireBomStockDetailByIds(Long[] ids)
|
{
|
return apsPlateStandardRequireBomStockDetailMapper.deleteApsPlateStandardRequireBomStockDetailByIds(ids);
|
}
|
|
/**
|
* 删除ApsPlateStandardRequireBomStockDetail信息
|
*
|
* @param id ApsPlateStandardRequireBomStockDetail主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsPlateStandardRequireBomStockDetailById(Long id)
|
{
|
return apsPlateStandardRequireBomStockDetailMapper.deleteApsPlateStandardRequireBomStockDetailById(id);
|
}
|
|
|
/**
|
* 计算物料剩余库存 并保存物料剩余库存明细。
|
* */
|
@Override
|
public void saveStorageAndDetail(ApsMaterialStorageManagement itemStorage, ApsPlatePlan plan, ApsBom bomLine, String batchNum, BigDecimal deductionAmount, BigDecimal afterStockAmount,String requireId){
|
/*更新物料剩余库存*/
|
itemStorageMapper.updateMaterialStorageByVersion(afterStockAmount,itemStorage.getVersion());
|
/*记录扣减明细*/
|
ApsPlateStandardRequireBomStockDetail bomStockDetail = ApsPlateStandardRequireBomStockDetail.builder()
|
.id(IdUtil.getSnowflakeNextId())
|
.requireId(requireId)
|
.requireTrackId(plan.getRequireId())
|
.bomLineId(bomLine.getBomLineId())
|
.bomLineCode(bomLine.getItemCode())
|
.beforeStockAmount(itemStorage.getRemainderStock())
|
.deductionAmount(deductionAmount)
|
.afterStockAmount(afterStockAmount)
|
.batchNumber(batchNum)
|
.orgCode(itemStorage.getApplicableFactories())
|
.delFlag("0")
|
.build();
|
bomStockDetail.setCreateBy(SecurityUtils.getUsername());
|
bomStockDetail.setCreateTime(DateUtils.getNowDate());
|
|
plateBomStockDetailMapper.insertApsPlateStandardRequireBomStockDetail(bomStockDetail);
|
|
}
|
|
}
|