package com.gkhy.exam.system.service.impl; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.exam.common.api.CommonPage; import com.gkhy.exam.common.api.CommonResult; import com.gkhy.exam.common.utils.PageUtils; import com.gkhy.exam.common.utils.SecurityUtils; import com.gkhy.exam.system.domain.ManagementReview; import com.gkhy.exam.system.mapper.ManagementReviewMapper; import com.gkhy.exam.system.service.ManagementReviewService; 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-07-10 15:11:50 */ @Service public class ManagementReviewServiceImpl extends ServiceImpl implements ManagementReviewService { @Autowired private ManagementReviewMapper managementReviewMapper; @Override public CommonPage selectManagementReviewList(Integer companyId, Integer reviewType,String year) { PageUtils.startPage(); List managementReviews = managementReviewMapper.selectManagementReviewList(companyId,reviewType,year); return CommonPage.restPage(managementReviews); } @Override public CommonResult insertManagementReview(ManagementReview managementReview) { managementReview.setCreateBy(SecurityUtils.getUsername()); managementReview.setCreateTime(LocalDateTime.now()); if (managementReviewMapper.insert(managementReview) > 0) { return CommonResult.success(); } return CommonResult.failed(); } @Override public CommonResult updateManagementReview(ManagementReview managementReview) { managementReview.setUpdateBy(SecurityUtils.getUsername()); managementReview.setUpdateTime(LocalDateTime.now()); if (managementReviewMapper.updateById(managementReview) > 0) { return CommonResult.success(); } return CommonResult.failed(); } @Override public CommonResult deletedManagementReview(Integer id) { ManagementReview managementReview = new ManagementReview(); managementReview.setId(id.longValue()); managementReview.setDelFlag(1); managementReview.setUpdateBy(SecurityUtils.getUsername()); managementReview.setUpdateTime(LocalDateTime.now()); if (managementReviewMapper.updateById(managementReview) > 0) { return CommonResult.success(); } return CommonResult.failed(); } @Override @Transactional public CommonResult copyManagementReview(Integer companyId, String sourceYear, String targetYear, Integer reviewType) { if (companyId == null) { companyId = SecurityUtils.getCompanyId().intValue(); } if (sourceYear == null || sourceYear.trim().isEmpty()) { return CommonResult.failed("源年份不能为空"); } if (targetYear == null || targetYear.trim().isEmpty()) { return CommonResult.failed("目标年份不能为空"); } if (reviewType == null) { return CommonResult.failed("评审类型不能为空"); } if (reviewType != 1 && reviewType != 2 && reviewType != 3) { return CommonResult.failed("评审类型无效,只能是1会议、2输入、3报告"); } LambdaUpdateWrapper deleteWrapper = new LambdaUpdateWrapper<>(); deleteWrapper.eq(ManagementReview::getCompanyId, companyId) .eq(ManagementReview::getYear, targetYear) .eq(ManagementReview::getReviewType, reviewType) .eq(ManagementReview::getDelFlag, 0) .set(ManagementReview::getDelFlag, 1) .set(ManagementReview::getUpdateBy, SecurityUtils.getUsername()) .set(ManagementReview::getUpdateTime, LocalDateTime.now()); managementReviewMapper.update(new ManagementReview(), deleteWrapper); LambdaQueryWrapper queryWrapperSource = new LambdaQueryWrapper<>(); queryWrapperSource.eq(ManagementReview::getCompanyId, companyId) .eq(ManagementReview::getYear, sourceYear) .eq(ManagementReview::getReviewType, reviewType) .eq(ManagementReview::getDelFlag, 0); List sourceReviews = managementReviewMapper.selectList(queryWrapperSource); if (ObjectUtil.isEmpty(sourceReviews)) { return CommonResult.success("源年份无相关数据"); } for (ManagementReview sourceReview : sourceReviews) { ManagementReview newReview = new ManagementReview(); newReview.setCompanyId(sourceReview.getCompanyId()); newReview.setCompanyName(sourceReview.getCompanyName()); newReview.setReviewName(sourceReview.getReviewName()); newReview.setReviewType(sourceReview.getReviewType()); newReview.setFilePath(sourceReview.getFilePath()); newReview.setFormat(sourceReview.getFormat()); newReview.setYear(targetYear); newReview.setDelFlag(0); newReview.setCreateBy(SecurityUtils.getUsername()); newReview.setCreateTime(LocalDateTime.now()); int insert = managementReviewMapper.insert(newReview); if (insert <= 0) { throw new RuntimeException("复制管理评审数据失败"); } } return CommonResult.success("成功从年份[" + sourceYear + "]复制到年份[" + targetYear + "]"); } }