package com.gk.hotwork.Service.ServiceImpl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gk.hotwork.Domain.DepartmentInfo; import com.gk.hotwork.Domain.Exception.BusinessException; import com.gk.hotwork.Domain.RiskSource; import com.gk.hotwork.Domain.UserInfo; import com.gk.hotwork.Domain.Vo.RiskEventExportVo; import com.gk.hotwork.Domain.Vo.RiskSourceSearchVo; import com.gk.hotwork.Domain.Vo.RiskSourceVo; import com.gk.hotwork.Domain.dto.RiskSourceDto; import com.gk.hotwork.Domain.Utils.BeanUtils; import com.gk.hotwork.Domain.Utils.StringUtils; import com.gk.hotwork.Domain.dto.RiskSourceUpdateDto; import com.gk.hotwork.Mapper.RiskSourceMapper; import com.gk.hotwork.Service.DepartmentService; import com.gk.hotwork.Service.RiskSourceService; import com.gk.hotwork.Service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Date; import java.util.List; @Service("RiskSourceService") public class RiskSourceServiceImpl extends ServiceImpl implements RiskSourceService { @Autowired private RiskSourceMapper riskSourceMapper; @Autowired private UserService userService; @Autowired private DepartmentService departmentService; @Override public IPage findRiskSourceListByConditions(Page page, RiskSourceSearchVo searchVo) { return riskSourceMapper.findRiskSourceListByConditionsAndPage(page,searchVo); } @Override public RiskSource findById(Long id) { return riskSourceMapper.selectById(id); } @Override public boolean updateById(RiskSourceUpdateDto riskSourceUpdateDto) { if(riskSourceUpdateDto.getId() == null || riskSourceUpdateDto.getId() <= 0){ return false; } boolean updateResult = false; RiskSource riskSource = riskSourceMapper.selectById(riskSourceUpdateDto.getId()); if(riskSource!=null && riskSource.getId() >0){ //校验数据 String checkResult = checkRiskSourceForUpdate(riskSource,riskSourceUpdateDto); if(checkResult.equals("Y")){ riskSource.setEditTime(new Date()); if(riskSourceMapper.updateById(riskSource) > 0){ updateResult = true; } } } return updateResult; } @Override public boolean insertOne(RiskSourceDto riskSourceDto) { RiskSource riskSource = new RiskSource(); BeanUtils.copyProperties(riskSourceDto,riskSource); riskSource.setStatus((byte)1); riskSource.setCreateTime(new Date()); riskSource.setEditTime(riskSource.getCreateTime()); if(!checkRiskSourceForCreate(riskSource)){ return false; } if(riskSourceMapper.insert(riskSource) > 0){ return true; }else { return false; } } @Override public void delOne(Long id, UserInfo user) { if (id == null) throw new BusinessException("id参数为空"); if (this.getById(id) == null) throw new BusinessException("找不到风险源"); RiskSource riskSource = new RiskSource(); riskSource.setId(id); riskSource.setStatus((byte)3); boolean success = this.updateById(riskSource); if (!success) throw new BusinessException("删除失败,请联系管理员"); } private boolean checkRiskSourceForCreate(RiskSource riskSource){ //检查用户是否存在 boolean flag = true; if(riskSource == null){ flag = false; return flag; } if(riskSource.getCreateUid() !=null && riskSource.getEditUid() !=null){ UserInfo u1 = userService.getById(riskSource.getCreateUid()); UserInfo u2 = userService.getById(riskSource.getEditUid()); if(u1==null || u1.getId() <=0 || u2 == null || u2.getId() <= 0){ flag = false; }else { riskSource.setEditUname(u2.getRealname()); } }else { flag = false; } //检查部门是否存在 if(riskSource.getDepId() != null){ DepartmentInfo departmentInfo = departmentService.getById(riskSource.getDepId()); if(departmentInfo == null || departmentInfo.getId() <= 0){ flag = false; }else { riskSource.setDepName(departmentInfo.getDepartment()); } }else { flag = false; } //检查状态值、类型值是否支持 if(riskSource.getType() != null && riskSource.getType() != 1 && riskSource.getType() != 2){ flag = false; } if(riskSource.getStatus() != 1 && riskSource.getStatus() != 2 && riskSource.getStatus() != 3){ flag = false; } //检查风险等级是否支持 if(riskSource.getLevel() != 1 && riskSource.getLevel() != 2 && riskSource.getLevel() != 3 && riskSource.getLevel() != 4){ flag = false; } return flag; } private String checkRiskSourceForUpdate(RiskSource riskSource,RiskSourceUpdateDto updateDto){ boolean checkResult = true; boolean editFlag = false; if(riskSource == null || riskSource.getId() <= 0 || updateDto == null || updateDto.getId() <= 0){ return "风险源不存在"; } //检查部门 if(updateDto.getDepId() != null && updateDto.getDepId() != riskSource.getDepId()){ DepartmentInfo departmentInfo = departmentService.getById(riskSource.getDepId()); if(departmentInfo == null){ return "部门不存在"; }else { riskSource.setDepId(departmentInfo.getId()); riskSource.setDepName(departmentInfo.getDepartment()); editFlag = true; } } //检查类型变更 if(updateDto.getType() != null && updateDto.getType() != riskSource.getType()){ if(updateDto.getType().byteValue() == 1 || updateDto.getType().byteValue() == 2){ riskSource.setType(updateDto.getType()); editFlag = true; }else { return "类型不支持"; } } //风险等级 if(updateDto.getLevel() != null && updateDto.getLevel() != riskSource.getLevel()){ if(updateDto.getLevel().byteValue() == 1 || updateDto.getLevel().byteValue() == 2 || updateDto.getLevel().byteValue() == 3 || updateDto.getLevel().byteValue() == 4){ riskSource.setLevel(updateDto.getLevel()); editFlag = true; }else { return "风险等级不支持"; } } //名称变动 if(updateDto.getName() != null && !updateDto.getName().equals(riskSource.getName())){ if(updateDto.getName().length() > 15){ return "风险名称超过15个字符"; }else { riskSource.setName(updateDto.getName()); editFlag = true; } } //位置变动 if(updateDto.getLocation() != null && !updateDto.getLocation().equals(riskSource.getLocation())){ if(updateDto.getLocation().length() > 30){ return "位置描述超过30个字符"; }else { riskSource.setLocation(updateDto.getLocation()); editFlag = true; } } //风险描述变动 if(updateDto.getAccidentDesc() != null && !updateDto.getAccidentDesc().equals(riskSource.getAccidentDesc())){ if(updateDto.getAccidentDesc().length() > 50){ return "事故秒数超过50个字符"; }else { riskSource.setAccidentDesc(updateDto.getAccidentDesc()); editFlag = true; } } if(editFlag == true){ UserInfo userInfo = userService.getById(updateDto.getEditUid()); if(userInfo!=null && userInfo.getId()>0){ riskSource.setEditUid(userInfo.getId()); riskSource.setEditUname(userInfo.getRealname()); return "Y"; }else { return "N"; } }else { return "N"; } } /** 生产装置导出 */ @Override public List getRiskSourceExport(HttpServletRequest request, HttpServletResponse response) { List risklist = riskSourceMapper.getRiskSourceList(); List list = new ArrayList<>(); for (RiskSource riskSource : risklist) { RiskSourceVo copy = BeanUtils.copy(riskSource, RiskSourceVo.class); list.add(copy); } return list; } }