package com.gkhy.assess.system.service.impl; import com.gkhy.assess.common.enums.UserIdentityEnum; import com.gkhy.assess.common.exception.ApiException; import com.gkhy.assess.system.domain.AssConclusion; import com.gkhy.assess.system.domain.SysUser; import com.gkhy.assess.system.enums.AccessoryFileTypeEnum; import com.gkhy.assess.system.enums.ReportProgressEnum; import com.gkhy.assess.system.mapper.AssConclusionMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.assess.system.service.AssAccessoryFileService; import com.gkhy.assess.system.service.AssConclusionService; import com.gkhy.assess.system.service.AssProjectService; import com.gkhy.assess.system.utils.ShiroUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** *

* 项目结论表 服务实现类 *

* * @author kzy * @since 2023-12-12 10:46:54 */ @Service public class AssConclusionServiceImpl extends ServiceImpl implements AssConclusionService { @Autowired private AssProjectService projectService; @Autowired private AssAccessoryFileService accessoryFileService; @Override @Transactional(rollbackFor = RuntimeException.class) public int addConclusion(AssConclusion conclusion) { Long projectId=conclusion.getProjectId(); projectService.checkUserAllowed(projectId); checkConclusionCount(projectId); //校验项目状态 projectService.checkReportProgress(projectId, ReportProgressEnum.REVIEW_RECORD); conclusion.setCreateBy(ShiroUtils.getSysUser().getUsername()); conclusion.setIsReviseManual(true); int row=baseMapper.insert(conclusion); if(row>0) { //更新项目状态 projectService.changeReportProgress(projectId,ReportProgressEnum.CONCLUSION); } return row; } public void checkConclusionCount(Long projectId){ //校验项目下评审结论数量 int count= baseMapper.getCountByProjectId(projectId); if(count>0){ throw new ApiException("项目下已存在评审结论"); } } @Override public int editConclusion(AssConclusion conclusion) { projectService.checkUserAllowed(conclusion.getProjectId()); conclusion.setUpdateBy(ShiroUtils.getSysUser().getUsername()); int row=baseMapper.updateById(conclusion); return row; } @Override public AssConclusion getConclusionByProjectId(Long projectId) { projectService.checkUserAllowed(projectId); AssConclusion conclusion= baseMapper.getConclusionByProjectId(projectId); conclusion.setAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId,null, AccessoryFileTypeEnum.CONCLUSION.getCode())); return conclusion; } @Override public AssConclusion getConclusionById(Long conclusionId) { AssConclusion conclusion= baseMapper.getConclusionById(conclusionId); projectService.checkUserAllowed(conclusion.getProjectId()); return conclusion; } }