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 selectApsBomList(ApsBom apsBom) { return apsBomMapper.selectApsBomList(apsBom); } /** * 通过料号、工厂查询BOMLine数据列表 * */ @Override public List selectApsBomLineList(String plant, String itemNumber) { List bomLineList =new ArrayList<>(); ApsBomHeader headerParam = ApsBomHeader.builder().itemCode(itemNumber).orgCode(plant).build(); Optional 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 selectRdsBomLineList(String plant, String itemNumber) { List 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); } } return bomLineList; } }