package com.ruoyi.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.domain.ReviewEnterpriseArchive; import com.ruoyi.domain.Task; import com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewItemVO; import com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewVO; import com.ruoyi.mapper.TaskMapper; import com.ruoyi.service.ReviewEnterpriseArchiveService; import com.ruoyi.mapper.ReviewEnterpriseArchiveMapper; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.web.request.ReviewEnterpriseArchiveFindByTaskIdRequest; import com.ruoyi.web.request.ReviewEnterpriseArchiveFindFileNameListRequest; import com.ruoyi.web.request.ReviewEnterpriseArchiveFindRequest; import com.ruoyi.web.request.ReviewEnterpriseArchiveGetInfoRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; /** * @author wangfei * @description 针对表【t_review_enterprise_archive(车企留档文件)】的数据库操作Service实现 * @createDate 2024-02-22 15:32:57 */ @Service public class ReviewEnterpriseArchiveServiceImpl extends ServiceImpl<ReviewEnterpriseArchiveMapper, ReviewEnterpriseArchive> implements ReviewEnterpriseArchiveService { @Autowired private ReviewEnterpriseArchiveMapper reviewEnterpriseArchiveMapper; @Autowired private ISysUserService sysUserService; @Autowired private ReviewEnterpriseArchiveService reviewEnterpriseArchiveService; @Autowired private TaskMapper taskMapper; @Override public List<ReviewEnterpriseArchiveViewVO> view(Long taskId) { Task task = taskMapper.selectById(taskId); List<ReviewEnterpriseArchive> archives = reviewEnterpriseArchiveMapper.findByTaskId(taskId); List<ReviewEnterpriseArchiveViewVO> resultList = new ArrayList<>(); resultList.addAll( buildReviewEnterpriseArchiveViewVO(archives, reviewEnterpriseArchiveMapper.findViewItemVOByTaskId(task.getSystemReviewTaskId())) ); resultList.addAll( buildReviewEnterpriseArchiveViewVO(archives, reviewEnterpriseArchiveMapper.findViewItemVOByTaskId(task.getCarReviewTaskId())) ); return resultList; } @Override public Long addEnterpriseArchive(ReviewEnterpriseArchive reviewEnterpriseArchive) { LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser user = sysUserService.selectUserById(loginUser.getUserId()); reviewEnterpriseArchive.setCreateBy(user.getNickName()); reviewEnterpriseArchive.setCreateTime(new Date()); Long sum = reviewEnterpriseArchiveMapper.findFileName(reviewEnterpriseArchive.getTaskId(),reviewEnterpriseArchive.getFileName()); if (sum >0 ) { throw new ServiceException("新增文件名称重复,请检查", HttpStatus.ERROR); } else { reviewEnterpriseArchiveService.save(reviewEnterpriseArchive); ReviewEnterpriseArchiveFindByTaskIdRequest request = new ReviewEnterpriseArchiveFindByTaskIdRequest(); request.setTaskId(reviewEnterpriseArchive.getTaskId()); List<ReviewEnterpriseArchive> list = reviewEnterpriseArchiveMapper.findEnterpriseArchiveByTaskId(request); if (list != null && list.size() != 0) { for (ReviewEnterpriseArchive archive : list) { if (!Objects.equals(archive.getEnterpriseName(), reviewEnterpriseArchive.getEnterpriseName())) { archive.setEnterpriseName(reviewEnterpriseArchive.getEnterpriseName()); } } reviewEnterpriseArchiveService.updateBatchById(list); } } return reviewEnterpriseArchive.getId(); } @Override public List<ReviewEnterpriseArchive> findEnterpriseArchive(ReviewEnterpriseArchiveFindRequest request) { return reviewEnterpriseArchiveMapper.findEnterpriseArchive(request); } @Override public ReviewEnterpriseArchive getInfo(ReviewEnterpriseArchiveGetInfoRequest request) { return reviewEnterpriseArchiveMapper.selectById(request.getId()); } @Override public List<ReviewEnterpriseArchive> findList(ReviewEnterpriseArchiveFindFileNameListRequest request) { return reviewEnterpriseArchiveMapper.findList(request.getTaskId()); } @Override public List<ReviewEnterpriseArchive> findEnterpriseArchiveByTaskId(ReviewEnterpriseArchiveFindByTaskIdRequest request) { return reviewEnterpriseArchiveMapper.findEnterpriseArchiveByTaskId(request); } private List<ReviewEnterpriseArchiveViewVO> buildReviewEnterpriseArchiveViewVO(List<ReviewEnterpriseArchive> archives, List<ReviewEnterpriseArchiveViewItemVO> viewItems) { List<ReviewEnterpriseArchiveViewVO> viewList = new ArrayList(); for(ReviewEnterpriseArchive archive : archives) { ReviewEnterpriseArchiveViewVO view = new ReviewEnterpriseArchiveViewVO(); view.setId(archive.getId()); view.setFileName(archive.getFileName()); setReviewEnterpriseArchiveViewItemVO(view, viewItems); viewList.add(view); } return viewList; } private void setReviewEnterpriseArchiveViewItemVO(ReviewEnterpriseArchiveViewVO view, List<ReviewEnterpriseArchiveViewItemVO> viewItems) { if (viewItems == null) return; List<ReviewEnterpriseArchiveViewItemVO> subList = new ArrayList(); Long archiveId = view.getId(); for(ReviewEnterpriseArchiveViewItemVO item : viewItems) { if(item.getArchiveId() != null && item.getArchiveId().equals(archiveId)) { subList.add(item); } } view.setItems(subList); } }