package com.aps.core.service.impl; import com.alibaba.fastjson2.JSONObject; import com.aps.common.core.utils.DateUtils; import com.aps.core.domain.ApsStandardProcessRouteHeader; import com.aps.core.mapper.ApsStandardProcessRouteHeaderMapper; import com.aps.core.service.IApsStandardProcessRouteHeaderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; /** * 标准工艺路线HeaderService业务层处理 * * @author zhl * @date 2025-05-06 */ @Service @Slf4j public class ApsStandardProcessRouteHeaderServiceImpl implements IApsStandardProcessRouteHeaderService { @Autowired private ApsStandardProcessRouteHeaderMapper apsStandardProcessRouteHeaderMapper; @Autowired public RedisTemplate redisTemplate; /** * 查询标准工艺路线Header * * @param id 标准工艺路线Header主键 * @return 标准工艺路线Header */ @Override public ApsStandardProcessRouteHeader selectApsStandardProcessRouteHeaderById(Long id) { return apsStandardProcessRouteHeaderMapper.selectApsStandardProcessRouteHeaderById(id); } /** * 查询标准工艺路线Header列表 * * @param apsStandardProcessRouteHeader 标准工艺路线Header * @return 标准工艺路线Header */ @Override public List selectApsStandardProcessRouteHeaderList(ApsStandardProcessRouteHeader apsStandardProcessRouteHeader) { return apsStandardProcessRouteHeaderMapper.selectApsStandardProcessRouteHeaderList(apsStandardProcessRouteHeader); } /** * 新增标准工艺路线Header * * @param apsStandardProcessRouteHeader 标准工艺路线Header * @return 结果 */ @Override public int insertApsStandardProcessRouteHeader(ApsStandardProcessRouteHeader apsStandardProcessRouteHeader) { apsStandardProcessRouteHeader.setCreateTime(DateUtils.getNowDate()); return apsStandardProcessRouteHeaderMapper.insertApsStandardProcessRouteHeader(apsStandardProcessRouteHeader); } /** * 修改标准工艺路线Header * * @param apsStandardProcessRouteHeader 标准工艺路线Header * @return 结果 */ @Override public int updateApsStandardProcessRouteHeader(ApsStandardProcessRouteHeader apsStandardProcessRouteHeader) { apsStandardProcessRouteHeader.setUpdateTime(DateUtils.getNowDate()); return apsStandardProcessRouteHeaderMapper.updateApsStandardProcessRouteHeader(apsStandardProcessRouteHeader); } /** * 批量删除标准工艺路线Header * * @param ids 需要删除的标准工艺路线Header主键 * @return 结果 */ @Override public int deleteApsStandardProcessRouteHeaderByIds(Long[] ids) { return apsStandardProcessRouteHeaderMapper.deleteApsStandardProcessRouteHeaderByIds(ids); } /** * 删除标准工艺路线Header信息 * * @param id 标准工艺路线Header主键 * @return 结果 */ @Override public int deleteApsStandardProcessRouteHeaderById(Long id) { return apsStandardProcessRouteHeaderMapper.deleteApsStandardProcessRouteHeaderById(id); } @Override public boolean setProcessRouteDataToRedis(String orgCode) { try { log.info("开始同步标准工艺路线数据至Redis"); Set keys = redisTemplate.keys("ROUTE:ROUTE_*"); if (keys != null && !keys.isEmpty()) { redisTemplate.delete(keys); } List res = apsStandardProcessRouteHeaderMapper.selectProcessRouteStandardTimeData(orgCode); Map bulkData = new HashMap<>(); for (JSONObject jsonObject : res) { bulkData.put("ROUTE:ROUTE_"+jsonObject.getString("org_code")+"_"+jsonObject.getString("item_code"), jsonObject.getBigDecimal("standardtime")); } redisTemplate.opsForValue().multiSet(bulkData); log.info("完成同步标准工艺路线数据至Redis"); return true; } catch (Exception e) { e.printStackTrace(); log.error("同步标准工艺路线数据至Redis失败"+e.getMessage()); return false; } } }