package com.gkhy.assess.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.assess.common.exception.ApiException; import com.gkhy.assess.system.domain.AssContract; import com.gkhy.assess.system.enums.ReportProgressEnum; import com.gkhy.assess.system.mapper.AssContractMapper; import com.gkhy.assess.system.service.AssContractService; 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 AssContractServiceImpl extends ServiceImpl implements AssContractService { @Autowired private AssProjectService projectService; @Override @Transactional(rollbackFor = RuntimeException.class) public int addContract(AssContract contract) { Long projectId=contract.getProjectId(); projectService.checkUserAllowed(projectId); checkConstractCount(projectId); //校验项目状态 projectService.checkReportProgress(projectId,ReportProgressEnum.RISK_ESTIMATE); contract.setCreateBy(ShiroUtils.getSysUser().getUsername()); int row=baseMapper.insert(contract); if(row>0) { //更新项目状态 projectService.changeReportProgress(projectId,ReportProgressEnum.CONTRACT); } return row; } public void checkConstractCount(Long projectId){ //校验项目下风险评估数量 int contractCount= baseMapper.getCountByProjectId(projectId); if(contractCount>0){ throw new ApiException("项目下已存在合同信息"); } } @Override public int editContract(AssContract contract) { projectService.checkUserAllowed(contract.getProjectId()); contract.setUpdateBy(ShiroUtils.getSysUser().getUsername()); int row=baseMapper.updateById(contract); return row; } @Override public AssContract getContractByProjectId(Long projectId) { projectService.checkUserAllowed(projectId); return baseMapper.getContractByProjectId(projectId); } @Override public AssContract getContractById(Long contractId) { AssContract contract= baseMapper.getContractById(contractId); projectService.checkUserAllowed(contract.getProjectId()); return contract; } }