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<RiskSourceMapper, RiskSource> implements RiskSourceService {
|
|
@Autowired
|
private RiskSourceMapper riskSourceMapper;
|
|
@Autowired
|
private UserService userService;
|
|
@Autowired
|
private DepartmentService departmentService;
|
|
@Override
|
public IPage<RiskSource> findRiskSourceListByConditions(Page<RiskSource> 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<RiskSourceVo> getRiskSourceExport(HttpServletRequest request, HttpServletResponse response) {
|
|
List<RiskSource> risklist = riskSourceMapper.getRiskSourceList();
|
List<RiskSourceVo> list = new ArrayList<>();
|
|
for (RiskSource riskSource : risklist) {
|
RiskSourceVo copy = BeanUtils.copy(riskSource, RiskSourceVo.class);
|
list.add(copy);
|
}
|
return list;
|
}
|
}
|