package com.gkhy.assess.system.service.impl; import com.gkhy.assess.common.enums.RequestSourceEnum; import com.gkhy.assess.common.exception.ApiException; import com.gkhy.assess.system.domain.AssInvestigation; import com.gkhy.assess.system.enums.AccessoryFileTypeEnum; import com.gkhy.assess.system.enums.ReportProgressEnum; import com.gkhy.assess.system.mapper.AssInvestigationMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.assess.system.service.AssAccessoryFileService; import com.gkhy.assess.system.service.AssInvestigationService; 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 AssInvestigationServiceImpl extends ServiceImpl implements AssInvestigationService { @Autowired private AssProjectService projectService; @Autowired private AssAccessoryFileService accessoryFileService; @Override @Transactional(rollbackFor = RuntimeException.class) public int addInvestigation(AssInvestigation investigation,String requestSourceType) { Long projectId=investigation.getProjectId(); projectService.checkUserAllowed(projectId); checkInvestigationCount(projectId); investigation.setCreateBy(ShiroUtils.getSysUser().getUsername()); if(investigation.getIsSafetyCheck()!=null&&investigation.getIsSafetyCheck()==1){ Integer fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_ATTACHMENT.getCode()); if(fileCount==0){ throw new ApiException("未上传现场安全检查表"); } } //校验图片数量 Integer fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.DEVICE_IMAGE.getCode()); if(fileCount==0){ throw new ApiException("主要装置前的合影照片不能为空"); } fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_IMAGE.getCode()); if(fileCount==0){ throw new ApiException("现场勘验照片照片不能为空"); } fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.COMPANY_IMAGE.getCode()); if(fileCount==0){ throw new ApiException("现场勘验人员与企业陪同人员图片不能为空"); } // fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_VIDEO.getCode()); // if(fileCount==0){ // throw new ApiException("现场勘验视频不能为空"); // } int row=baseMapper.insert(investigation); if(requestSourceType== RequestSourceEnum.WEB.getCode()){ //校验项目状态 projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION); //更新项目状态 projectService.changeReportProgress(projectId,ReportProgressEnum.INVESTINGATION); } //校验项目状态 // projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION); // int row=baseMapper.insert(investigation); // if(row>0 && (investigation.getState()==null||!investigation.getState().equals(ApproveStatusEnum.TEMPORARY.getCode()))) { // //更新项目状态 // projectService.changeReportProgress(projectId,ReportProgressEnum.INVESTINGATION); // } return row; } public void checkInvestigationCount(Long projectId){ //校验项目下勘验记录数量 int count= baseMapper.getCountByProjectId(projectId); if(count>0){ throw new ApiException("项目下已存在现场勘验记录"); } } @Override public int editInvestigation(AssInvestigation investigation) { projectService.checkUserAllowed(investigation.getProjectId()); investigation.setUpdateBy(ShiroUtils.getSysUser().getUsername()); int row=baseMapper.updateById(investigation); return row; } @Override public AssInvestigation getInvestigationByProjectId(Long projectId) { projectService.checkUserAllowed(projectId); AssInvestigation investigation= baseMapper.getInvestigationByProjectId(projectId); investigation.setAssAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_ATTACHMENT.getCode())); investigation.setCcompanyImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.COMPANY_IMAGE.getCode())); investigation.setDeviceImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.DEVICE_IMAGE.getCode())); investigation.setInvestingationImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_IMAGE.getCode())); investigation.setInvestingationVideos(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_VIDEO.getCode())); return investigation; } @Override public AssInvestigation getInvestigationById(Long investigationId) { return baseMapper.getInvestigationById(investigationId); } @Override public void doInvestigationProcess(Long projectId) { projectService.checkUserAllowed(projectId); //校验项目状态 projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION); //更新项目状态 projectService.changeReportProgress(projectId,ReportProgressEnum.INVESTINGATION); } }