heheng
2026-02-10 d0191ea7bc8c25aed57168de6ceffa284c072f36
multi-system/src/main/java/com/gkhy/exam/system/service/impl/ContractReviewServiceImpl.java
@@ -10,17 +10,20 @@
import com.gkhy.exam.system.domain.ContractReviewMess;
import com.gkhy.exam.system.domain.ContractReviewMessb;
import com.gkhy.exam.system.domain.ContractReviewRequire;
import com.gkhy.exam.system.domain.req.ContractReviewReq;
import com.gkhy.exam.system.domain.vo.ContractReviewVo;
import com.gkhy.exam.system.mapper.ContractReviewMapper;
import com.gkhy.exam.system.mapper.ContractReviewMessMapper;
import com.gkhy.exam.system.mapper.ContractReviewRequireMapper;
import com.gkhy.exam.system.service.ContractReviewService;
import org.apache.tomcat.websocket.AuthenticationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class ContractReviewServiceImpl extends ServiceImpl<ContractReviewMapper, ContractReview> implements ContractReviewService {
@@ -76,21 +79,6 @@
            }
            contractReviewMessMapper.insertMesses(reviewMesses);
            // 收集所有ContractReviewMessb
            List<ContractReviewMessb> allMessbs = new ArrayList<>();
            for (ContractReviewMess reviewMess : reviewMesses) {
                List<ContractReviewMessb> contractReviewMessbs = reviewMess.getContractReviewMessbs();
                if (contractReviewMessbs != null && !contractReviewMessbs.isEmpty()) {
                    for (ContractReviewMessb contractReviewMessb : contractReviewMessbs) {
                        contractReviewMessb.setMessId(reviewMess.getId());
                    }
                    allMessbs.addAll(contractReviewMessbs);
                }
            }
            // 批量插入ContractReviewMessb
            if (!allMessbs.isEmpty()) {
                contractReviewMessMapper.insertMessbs(allMessbs);
            }
            // 批量插入ContractReviewRequire
            for (ContractReviewRequire contractReviewRequire : contractReviewRequires) {
@@ -123,21 +111,6 @@
                        reviewMess.setReviewId(reviewId);
                    }
                    contractReviewMessMapper.insertMesses(reviewMesses);
                    // 处理ContractReviewMessb子项
                    List<ContractReviewMessb> allMessbs = new ArrayList<>();
                    for (ContractReviewMess reviewMess : reviewMesses) {
                        List<ContractReviewMessb> contractReviewMessbs = reviewMess.getContractReviewMessbs();
                        if (contractReviewMessbs != null && !contractReviewMessbs.isEmpty()) {
                            for (ContractReviewMessb contractReviewMessb : contractReviewMessbs) {
                                contractReviewMessb.setMessId(reviewMess.getId());
                            }
                            allMessbs.addAll(contractReviewMessbs);
                        }
                    }
                    // 批量插入ContractReviewMessb
                    if (!allMessbs.isEmpty()) {
                        contractReviewMessMapper.insertMessbs(allMessbs);
                    }
                }
                // 插入新的ContractReviewRequire数据
                if (contractReviewRequires != null && !contractReviewRequires.isEmpty()) {
@@ -168,4 +141,55 @@
        }
        return CommonResult.failed();
    }
    @Override
    public CommonResult contractList(Integer userId) {
        List<ContractReviewVo> result = new ArrayList<>();
        List<ContractReviewVo> contractReviewVos = contractReviewMapper.selectByUserId(userId);
        List<ContractReviewVo> contractReviewVos1 = contractReviewMapper.selectByUserIdMain(userId);
        Set<Integer> existIdSet = new HashSet<>();
        // 处理signType=1并缓存id
        for (ContractReviewVo contractReviewVo : contractReviewVos) {
            List<ContractReviewMess> contractReviewMesses = contractReviewMessMapper.selectByReviewIdAndUserId(contractReviewVo.getId(),userId);
            contractReviewVo.setReviewMesses(contractReviewMesses);
            contractReviewVo.setSignType(1);
            result.add(contractReviewVo);
            existIdSet.add(contractReviewVo.getId()); // 存入已存在的id
        }
        // 处理signType=2,通过Set快速判断id是否存在
        for (ContractReviewVo contractReviewVo : contractReviewVos1) {
            int update = contractReviewMessMapper.CountByReviewId(contractReviewVo.getId());
            if (update==0){
                if (!existIdSet.contains(contractReviewVo.getId())) {
                    List<ContractReviewMess> contractReviewMesses = contractReviewMessMapper.selectByReviewIdAndUserId(contractReviewVo.getId(),userId);
                    contractReviewVo.setReviewMesses(contractReviewMesses);
                    contractReviewVo.setSignType(2);
                    result.add(contractReviewVo);
                    existIdSet.add(contractReviewVo.getId()); // 同步更新Set
                }
            }
        }
        return CommonResult.success(result);
    }
    @Override
    public CommonResult contractcheck(ContractReviewReq contractReviewReq) {
        if (contractReviewReq.getType()==2){
            ContractReview contractReview = new ContractReview();
            contractReview.setId(contractReviewReq.getId());
            contractReview.setLegalPerson(contractReviewReq.getUserId());
            contractReview.setSuggest(contractReviewReq.getReviewOpinion());
            contractReviewMapper.updateByUserid(contractReview);
        }
        if (contractReviewReq.getType()==1){
            ContractReviewMess contractReviewMess = new ContractReviewMess();
            contractReviewMess.setId(contractReviewReq.getId());
            contractReviewMess.setReviewOpinion(contractReviewReq.getReviewOpinion());
            contractReviewMess.setReviewUser(contractReviewReq.getUserId());
            contractReviewMessMapper.updateByUserId(contractReviewMess);
        }
        return CommonResult.success();
    }
}