ReviewDetailsResultServiceImpl.java 5.25 KB
package com.ruoyi.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.domain.ResultFileRelation;
import com.ruoyi.domain.ReviewDetailsResult;
import com.ruoyi.domain.vo.ReviewEnterpriseArchiveFileVO;
import com.ruoyi.mapper.ResultFileRelationMapper;
import com.ruoyi.service.ResultFileRelationService;
import com.ruoyi.service.ReviewDetailsResultService;
import com.ruoyi.mapper.ReviewDetailsResultMapper;
import com.ruoyi.web.request.ReviewDetailsResultSaveRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
* @author wangfei
* @description 针对表【t_review_details_result(审查细则的审查结果)】的数据库操作Service实现
* @createDate 2023-12-15 15:42:40
*/
@Transactional
@Service
public class ReviewDetailsResultServiceImpl extends ServiceImpl<ReviewDetailsResultMapper, ReviewDetailsResult> implements ReviewDetailsResultService {

    @Autowired
    private ReviewDetailsResultMapper reviewDetailsResultMapper;

    @Autowired
    private ResultFileRelationService resultFileRelationService;

    @Override
    public List<ReviewDetailsResult> findByTaskId(Long taskId) {
        return reviewDetailsResultMapper.findByTaskId(taskId);
    }

    @Override
    public ReviewDetailsResult findByTaskIdAndDetailsId(Long taskId, Long reviewDetailsId) {
        return reviewDetailsResultMapper.findByTaskIdAndDetailsId(taskId, reviewDetailsId);
    }

    @Override
    public void save(ReviewDetailsResultSaveRequest request) {
        ReviewDetailsResult result = reviewDetailsResultMapper.findByTaskIdAndDetailsId(request.getTaskId(), request.getReviewDetailsId());
        // 获取当前登陆人
        SysUser loginUser = SecurityUtils.getLoginUser().getUser();

        if (result != null) {
            // 更新
            result.setPassed(request.getPassed());
            result.setUserId(loginUser.getUserId());
            result.setUserName(loginUser.getNickName());
            result.setLastModifyTime(new Date());
            result.setComment(request.getComment());

            Save(result,request);

            this.baseMapper.updateById(result);

            SaveFileRelation(result.getId(),request);
        } else {
            // 新增
            ReviewDetailsResult reviewDetailsResult = new ReviewDetailsResult();
            reviewDetailsResult.setTaskId(request.getTaskId());
            reviewDetailsResult.setReviewDetailsId(request.getReviewDetailsId());
            reviewDetailsResult.setPassed(request.getPassed());
            reviewDetailsResult.setUserId(loginUser.getUserId());
            reviewDetailsResult.setUserName(loginUser.getNickName());
            reviewDetailsResult.setLastModifyTime(new Date());
            reviewDetailsResult.setComment(request.getComment());

            Save(reviewDetailsResult,request);

            this.baseMapper.insert(reviewDetailsResult);

            SaveFileRelation(reviewDetailsResult.getId(),request);

        }
    }

    private void Save(ReviewDetailsResult result,ReviewDetailsResultSaveRequest request) {
        // 获取文件列表
        List<ReviewEnterpriseArchiveFileVO> fileList = request.getFileList();

        List<Long> idList = new ArrayList<>();
        List<String> fileNameList = new ArrayList<>();
        List<String> catalogueList = new ArrayList<>();

        // 遍历fileList
        for (ReviewEnterpriseArchiveFileVO fileVO : fileList) {
            // 将字段逗号分隔后存入对应的集合中
            idList.add(fileVO.getId());
            fileNameList.add(fileVO.getFileName());
            catalogueList.add(fileVO.getCatalogue());
        }

        result.setReviewEnterpriseArchiveId(StringUtils.join(idList, ","));
        result.setFileName(StringUtils.join(fileNameList, ","));
        result.setCatalogue(StringUtils.join(catalogueList, ","));
    }

    private void SaveFileRelation(Long resultId, ReviewDetailsResultSaveRequest request) {

        List<ResultFileRelation> relationList = resultFileRelationService.findByResultId(resultId);

        if (relationList != null && relationList.size() != 0) {
            resultFileRelationService.removeBatchByIds(relationList);
        }

        // 获取文件列表
        List<ReviewEnterpriseArchiveFileVO> fileList = request.getFileList();

        if (fileList != null && fileList.size() != 0) {
            List<ResultFileRelation> list = new ArrayList<>();

            for (ReviewEnterpriseArchiveFileVO file : fileList) {
                ResultFileRelation relation = new ResultFileRelation();
                relation.setFileId(file.getId());
                relation.setFileName(file.getFileName());
                relation.setCatalogue(file.getCatalogue());
                relation.setResultId(resultId);
                relation.setTaskId(request.getTaskId());

                // 将relation添加到list中
                list.add(relation);
            }

            resultFileRelationService.saveBatch(list);
        }

    }
}