package com.aps.core.service.impl.ApsPlate;
|
|
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.domain.ApsPlate.ApsPlatePlan;
|
import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomStockDetail;
|
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.ApsPlate.IApsPlateStandardRequireBomStockDetailService;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* 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);
|
}
|
|
|
/**
|
* 计算物料剩余库存 并保存物料剩余库存明细。
|
* */
|
@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);
|
}
|
}
|
}
|