package com.gkhy.exam.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.gkhy.exam.common.api.CommonPage; import com.gkhy.exam.common.api.CommonResult; import com.gkhy.exam.common.constant.UserConstant; import com.gkhy.exam.common.utils.PageUtils; import com.gkhy.exam.common.utils.SecurityUtils; import com.gkhy.exam.system.domain.OutsourcedReview; import com.gkhy.exam.system.domain.OutsourcedReviewSubsidiary; import com.gkhy.exam.system.domain.WarehousingRecordDetails; import com.gkhy.exam.system.mapper.OutsourcedReviewMapper; import com.gkhy.exam.system.mapper.OutsourcedReviewSubsidiaryMapper; import com.gkhy.exam.system.service.OutsourcedReviewService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.List; /** *

* 外包过程评审 服务实现类 *

* * @author hh * @since 2025-08-13 09:16:37 */ @Service public class OutsourcedReviewServiceImpl extends ServiceImpl implements OutsourcedReviewService { @Autowired private OutsourcedReviewMapper outsourcedReviewMapper; @Autowired private OutsourcedReviewSubsidiaryMapper outsourcedReviewSubsidiaryMapper; @Override public CommonPage selectOutsourcedReviewList(OutsourcedReview outsourcedReview) { PageUtils.startPage(); List outsourcedReviewList = outsourcedReviewMapper.getOutsourcedReviewList(outsourcedReview); return CommonPage.restPage(outsourcedReviewList); } @Override @Transactional public CommonResult saveOutsourcedReview(OutsourcedReview outsourcedReview) { List outsourcedReviewSubsidiaryList = outsourcedReview.getOutsourcedReviewSubsidiaryList(); if (ObjectUtils.isEmpty(outsourcedReviewSubsidiaryList)){ return CommonResult.failed("保存参数不能为空"); } int i = 0; if (outsourcedReview.getId() == null){ outsourcedReview.setCreateBy(SecurityUtils.getUsername()); outsourcedReview.setCreateTime(LocalDateTime.now()); i = outsourcedReviewMapper.insert(outsourcedReview); }else { outsourcedReview.setUpdateTime(LocalDateTime.now()); outsourcedReview.setUpdateBy(SecurityUtils.getUsername()); i = outsourcedReviewMapper.updateById(outsourcedReview); } if (i > 0){ batchSaveSubsidiary(outsourcedReview.getId(), outsourcedReviewSubsidiaryList, outsourcedReview.getDelOutsourcedReviewSubsidiaryIds()); } return i > 0 ? CommonResult.success() : CommonResult.failed(); } private void batchSaveSubsidiary(Long outsourcedReviewId, List outsourcedReviewSubsidiaryList,List delOutsourcedReviewSubsidiaryIds) { if (ObjectUtils.isNotEmpty(delOutsourcedReviewSubsidiaryIds)){ int update = outsourcedReviewSubsidiaryMapper.update(new OutsourcedReviewSubsidiary(), new LambdaUpdateWrapper().eq(OutsourcedReviewSubsidiary::getId, delOutsourcedReviewSubsidiaryIds).set(OutsourcedReviewSubsidiary::getDelFlag, UserConstant.DEPT_DISABLE) .set(OutsourcedReviewSubsidiary::getUpdateTime, LocalDateTime.now()).set(OutsourcedReviewSubsidiary::getUpdateBy, SecurityUtils.getUsername()) ); if (update <= 0){ throw new RuntimeException("操作失败"); } } outsourcedReviewSubsidiaryList.forEach(outsourcedReviewSubsidiary -> { if (outsourcedReviewSubsidiary.getId() == null){ outsourcedReviewSubsidiary.setReviewId(outsourcedReviewId); outsourcedReviewSubsidiary.setCreateTime(LocalDateTime.now()); outsourcedReviewSubsidiary.setCreateBy(SecurityUtils.getUsername()); outsourcedReviewSubsidiaryMapper.insert(outsourcedReviewSubsidiary); }else { outsourcedReviewSubsidiary.setUpdateTime(LocalDateTime.now()); outsourcedReviewSubsidiary.setUpdateBy(SecurityUtils.getUsername()); outsourcedReviewSubsidiaryMapper.updateById(outsourcedReviewSubsidiary); } }); } @Override public CommonResult getOutsourcedReview(Long id) { OutsourcedReview outsourcedReview = outsourcedReviewMapper.selectById(id); if (outsourcedReview != null){ List outsourcedReviewSubsidiaryList = outsourcedReviewSubsidiaryMapper.selectList( new LambdaQueryWrapper<>(OutsourcedReviewSubsidiary.class).eq(OutsourcedReviewSubsidiary::getReviewId, id) .eq(OutsourcedReviewSubsidiary::getDelFlag, UserConstant.ENABLE).orderByDesc(OutsourcedReviewSubsidiary::getCreateTime) ); outsourcedReview.setOutsourcedReviewSubsidiaryList(outsourcedReviewSubsidiaryList); } return CommonResult.success(outsourcedReview); } @Override @Transactional public CommonResult deletedOutsourcedReview(Long id) { int i = outsourcedReviewMapper.update(new OutsourcedReview(), new LambdaUpdateWrapper().eq(OutsourcedReview::getId, id).set(OutsourcedReview::getDelFlag, UserConstant.DEPT_DISABLE) .set(OutsourcedReview::getUpdateTime, LocalDateTime.now()).set(OutsourcedReview::getUpdateBy, SecurityUtils.getUsername()) ); if (i > 0){ outsourcedReviewSubsidiaryMapper.update(new OutsourcedReviewSubsidiary(), new LambdaUpdateWrapper().eq(OutsourcedReviewSubsidiary::getReviewId, id) .set(OutsourcedReviewSubsidiary::getDelFlag, UserConstant.DEPT_DISABLE) .set(OutsourcedReviewSubsidiary::getUpdateTime, LocalDateTime.now()) .set(OutsourcedReviewSubsidiary::getUpdateBy, SecurityUtils.getUsername())); } return CommonResult.success(); } }