package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.mapper.RecordImageMapper; import com.ruoyi.system.mapper.RecordMapper; import com.ruoyi.system.model.Record; import com.ruoyi.system.model.RecordImage; import com.ruoyi.system.model.UserFile; import com.ruoyi.system.query.HiddenDangerListQuery; import com.ruoyi.system.service.RecordImageService; import com.ruoyi.system.service.RecordService; import com.ruoyi.system.service.TaskService; import com.ruoyi.system.service.UserFileService; import com.ruoyi.system.vo.HiddenDangerListVo; import com.ruoyi.system.vo.ProblemVo; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author administrator * @since 2026-01-13 */ @Service public class RecordServiceImpl extends ServiceImpl implements RecordService { @Autowired private RecordImageService recordImageService; @Autowired private UserFileService userFileService; @Override public List getHiddenDangerList(Page page, HiddenDangerListQuery query, List taskIds) { List list = baseMapper.getHiddenDangerList(page,query,taskIds); if(!list.isEmpty()){ List recordIds = list.stream().map(HiddenDangerListVo::getId).collect(Collectors.toList()); List recordImages = recordImageService.list(new LambdaQueryWrapper().in(RecordImage::getRecordId, recordIds)); list.forEach(vo -> { List collect = recordImages.stream().filter(recordImage -> recordImage.getRecordId().equals(vo.getId())).collect(Collectors.toList()); vo.setFileNum(collect.size()); if(!collect.isEmpty()){ List fileIds = collect.stream().map(RecordImage::getUserFileId).collect(Collectors.toList()); List userFiles = userFileService.listByIds(fileIds); vo.setUserFiles(userFiles); } }); } return list; } @Override public ProblemVo getHiddenDangerDetail(Integer problemId) { // 直接查询并返回,让前端处理JSON字符串解析 ProblemVo hiddenDangerDetail = baseMapper.getHiddenDangerDetail(problemId); if(hiddenDangerDetail!=null){ if (hiddenDangerDetail.getSpecificTermsStr()!=null && !hiddenDangerDetail.getSpecificTermsStr().isEmpty()) { String specificTermsStr = hiddenDangerDetail.getSpecificTermsStr(); hiddenDangerDetail.setSpecificTerms(JSON.parseArray(specificTermsStr, String.class)); } if (hiddenDangerDetail.getSuggestActionsStr()!=null && !hiddenDangerDetail.getSuggestActionsStr().isEmpty()) { String suggestActionsStr = hiddenDangerDetail.getSuggestActionsStr(); hiddenDangerDetail.setSuggestActions(JSON.parseArray(suggestActionsStr, String.class)); } if (hiddenDangerDetail.getNumberFactorsStr()!=null && !hiddenDangerDetail.getNumberFactorsStr().isEmpty()) { String numberFactorsStr = hiddenDangerDetail.getNumberFactorsStr(); hiddenDangerDetail.setNumberFactors(JSON.parseArray(numberFactorsStr, String.class)); } } return hiddenDangerDetail; } }