package com.aps.core.service.impl;
|
|
import com.alibaba.fastjson2.JSONArray;
|
import com.aps.common.core.utils.DateUtils;
|
import com.aps.core.domain.ApsBom;
|
import com.aps.core.domain.ApsBomHeader;
|
import com.aps.core.mapper.ApsBomHeaderMapper;
|
import com.aps.core.mapper.ApsBomMapper;
|
import com.aps.core.service.IApsBomService;
|
import jakarta.annotation.Resource;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Optional;
|
|
/**
|
* BOM数据管理Service业务层处理
|
*
|
* @author zhl
|
* @date 2025-04-22
|
*/
|
@Service
|
public class ApsBomServiceImpl implements IApsBomService
|
{
|
@Autowired
|
private ApsBomMapper apsBomMapper;
|
|
@Resource
|
private ApsBomHeaderMapper bomHeaderMapper;
|
|
@Autowired
|
public RedisTemplate redisTemplate;
|
|
/**
|
* 查询BOM数据管理
|
*
|
* @param id BOM数据管理主键
|
* @return BOM数据管理
|
*/
|
@Override
|
public ApsBom selectApsBomById(Long id)
|
{
|
return apsBomMapper.selectApsBomById(id);
|
}
|
|
/**
|
* 新增BOM数据管理
|
*
|
* @param apsBom BOM数据管理
|
* @return 结果
|
*/
|
@Override
|
public int insertApsBom(ApsBom apsBom)
|
{
|
apsBom.setCreateTime(DateUtils.getNowDate());
|
return apsBomMapper.insertApsBom(apsBom);
|
}
|
|
/**
|
* 修改BOM数据管理
|
*
|
* @param apsBom BOM数据管理
|
* @return 结果
|
*/
|
@Override
|
public int updateApsBom(ApsBom apsBom)
|
{
|
apsBom.setUpdateTime(DateUtils.getNowDate());
|
return apsBomMapper.updateApsBom(apsBom);
|
}
|
|
/**
|
* 批量删除BOM数据管理
|
*
|
* @param ids 需要删除的BOM数据管理主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsBomByIds(Long[] ids)
|
{
|
return apsBomMapper.deleteApsBomByIds(ids);
|
}
|
|
/**
|
* 删除BOM数据管理信息
|
*
|
* @param id BOM数据管理主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsBomById(Long id)
|
{
|
return apsBomMapper.deleteApsBomById(id);
|
}
|
|
/*-----*/
|
|
/**
|
* 查询BOM数据管理列表
|
*
|
* @param apsBom BOM数据管理
|
* @return BOM数据管理
|
*/
|
@Override
|
public List<ApsBom> selectApsBomList(ApsBom apsBom)
|
{
|
return apsBomMapper.selectApsBomList(apsBom);
|
}
|
/**
|
* 通过料号、工厂查询BOMLine数据列表
|
* */
|
@Override
|
public List<ApsBom> selectApsBomLineList(String plant, String itemNumber)
|
{
|
List<ApsBom> bomLineList =new ArrayList<>();
|
ApsBomHeader headerParam = ApsBomHeader.builder().itemCode(itemNumber).orgCode(plant).build();
|
Optional<ApsBomHeader> first = bomHeaderMapper.selectApsBomHeaderList(headerParam).stream().findFirst();
|
if (first.isPresent()){
|
ApsBomHeader apsBomHeader = first.get();
|
ApsBom build = new ApsBom();
|
build.setBomHeaderId(apsBomHeader.getBomHeaderId());
|
build.setOrgCode(apsBomHeader.getOrgCode());
|
bomLineList = apsBomMapper.selectApsBomList(build);
|
}
|
|
return bomLineList;
|
}
|
|
@Override
|
public List<ApsBom> selectRdsBomLineList(String plant, String itemNumber)
|
{
|
List<ApsBom> bomLineList =new ArrayList<>();
|
JSONArray jsonArray = (JSONArray)redisTemplate.opsForValue().get("BOM:BOM_"+plant+"_"+itemNumber);
|
if (jsonArray != null && !jsonArray.isEmpty()) {
|
for (int i = 0; i < jsonArray.size(); i++){
|
ApsBom apsBom = jsonArray.getJSONObject(i).to(ApsBom.class);
|
bomLineList.add(apsBom);
|
}
|
}
|
// else {
|
// bomLineList = selectApsBomLineList(plant, itemNumber);
|
// }
|
|
return bomLineList;
|
}
|
}
|