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;
|
|
/**
|
* <p>
|
* 管理评审会议、输入、报告 服务实现类
|
* </p>
|
*
|
* @author hh
|
* @since 2025-07-10 15:11:50
|
*/
|
@Service
|
public class ManagementReviewServiceImpl extends ServiceImpl<ManagementReviewMapper, ManagementReview> implements ManagementReviewService {
|
|
@Autowired
|
private ManagementReviewMapper managementReviewMapper;
|
@Override
|
public CommonPage selectManagementReviewList(Integer companyId, Integer reviewType,String year) {
|
PageUtils.startPage();
|
List<ManagementReview> 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<ManagementReview> 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<ManagementReview> queryWrapperSource = new LambdaQueryWrapper<>();
|
queryWrapperSource.eq(ManagementReview::getCompanyId, companyId)
|
.eq(ManagementReview::getYear, sourceYear)
|
.eq(ManagementReview::getReviewType, reviewType)
|
.eq(ManagementReview::getDelFlag, 0);
|
List<ManagementReview> 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 + "]");
|
}
|
|
}
|