package com.jjt.hl.service.impl; import com.jjt.common.utils.DateUtils; import com.jjt.hl.domain.HlMetrics; import com.jjt.hl.mapper.HlMetricsMapper; import com.jjt.hl.service.IHlMetricsService; import com.jjt.hl.vo.HlMetricsVO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 业务模型健康度指标Service业务层处理 * * @author jjt * @date 2024-09-05 */ @Service public class HlMetricsServiceImpl implements IHlMetricsService { @Resource private HlMetricsMapper hlMetricsMapper; /** * 查询业务模型健康度指标 * * @param hlMetricsId 业务模型健康度指标主键 * @return 业务模型健康度指标 */ @Override public HlMetrics selectHlMetricsByHlMetricsId(Long hlMetricsId) { return hlMetricsMapper.selectHlMetricsByHlMetricsId(hlMetricsId); } /** * 查询业务模型健康度指标列表 * * @param hlMetrics 业务模型健康度指标 * @return 业务模型健康度指标 */ @Override public List selectHlMetricsList(HlMetrics hlMetrics) { return hlMetricsMapper.selectHlMetricsList(hlMetrics); } /** * 新增业务模型健康度指标 * * @param hlMetrics 业务模型健康度指标 * @return 结果 */ @Override public int insertHlMetrics(HlMetrics hlMetrics) { hlMetrics.setCreateTime(DateUtils.getNowDate()); return hlMetricsMapper.insertHlMetrics(hlMetrics); } /** * 修改业务模型健康度指标 * * @param hlMetrics 业务模型健康度指标 * @return 结果 */ @Override public int updateHlMetrics(HlMetrics hlMetrics) { hlMetrics.setUpdateTime(DateUtils.getNowDate()); return hlMetricsMapper.updateHlMetrics(hlMetrics); } /** * 批量删除业务模型健康度指标 * * @param hlMetricsIds 需要删除的业务模型健康度指标主键 * @return 结果 */ @Override public int deleteHlMetricsByHlMetricsIds(Long[] hlMetricsIds) { return hlMetricsMapper.deleteHlMetricsByHlMetricsIds(hlMetricsIds); } /** * 删除业务模型健康度指标信息 * * @param hlMetricsId 业务模型健康度指标主键 * @return 结果 */ @Override public int deleteHlMetricsByHlMetricsId(Long hlMetricsId) { return hlMetricsMapper.deleteHlMetricsByHlMetricsId(hlMetricsId); } /** * 查询指标列表 * * @param modelId 模型ID * @param objType 对象类型 * @return 结果 */ @Override public List selectHlMetricsList4ModelId(Long modelId, String objType) { return hlMetricsMapper.selectHlMetricsList4ModelId(modelId, objType); } /** * 添加指标 * * @param hlClassId 分类ID * @param ids 指标IDS * @return 结果 */ @Override public int insertMetrics(Long hlClassId, Long[] ids) { if (ids.length == 0) { return 1; } for (Long objId : ids) { HlMetrics metrics = new HlMetrics(); metrics.setHlClassId(hlClassId); metrics.setMetricsId(objId); insertHlMetrics(metrics); } return 0; } /** * 根据健康度分类获取所有指标对象 * * @param hlClassId 健康度分类ID * @return 结果 */ @Override public Map> hlMetricsList(Long hlClassId) { List list = hlMetricsMapper.hlMetricsList(hlClassId); return list.stream().collect(Collectors.groupingBy(HlMetricsVO::getMetricsId)); } /** * 根据日期和模型查询所有存在单次扣分的指标 * 并按metricsId分组 * * @param modelId 健康度分类ID * @param date 日期 * @return 结果 */ @Override public Map> hlMetricsDayList(Long modelId, Date date) { List list = hlMetricsMapper.hlMetricsDayList(modelId, date); return list.stream().collect(Collectors.groupingBy(HlMetricsVO::getMetricsId)); } }