package com.gkhy.system.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.common.constant.Constants; import com.gkhy.common.core.domain.entity.SysRole; import com.gkhy.common.core.domain.entity.SysUser; import com.gkhy.common.core.domain.model.LoginUser; import com.gkhy.common.exception.ServiceException; import com.gkhy.common.utils.SecurityUtils; import com.gkhy.system.domain.Hazards; import com.gkhy.system.domain.dto.HazardsEditDTO; import com.gkhy.system.mapper.HazardsMapper; import com.gkhy.system.service.HazardsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.List; /** *

* 隐患上报/整改/台账 服务实现类 *

* * @author hh * @since 2025-09-08 10:36:52 */ @Service public class HazardsServiceImpl extends ServiceImpl implements HazardsService { @Autowired private HazardsMapper hazardsMapper; @Override public List getHazardsList(Hazards hazards) { if (hazards != null && "2".equals(hazards.getHazardsType())){ boolean b = check2Per(); if (!b){ hazards.setReformUserId(SecurityUtils.getUserId()); } } return hazardsMapper.getHazardsList(hazards); } boolean check2Per(){ if (SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.hasRole(Constants.SYS_ADMIN) || SecurityUtils.hasRole(Constants.PLACE_SAFETY_OFFICER)){ return true; } return false; } @Override public int saveHazards(Hazards inspection) { int result = 0; if (inspection.getId() == null){ inspection.setCreateTime(LocalDateTime.now()); inspection.setCreateBy(SecurityUtils.getUsername()); result = hazardsMapper.insert(inspection); }else { inspection.setUpdateTime(LocalDateTime.now()); inspection.setUpdateBy(SecurityUtils.getUsername()); result = hazardsMapper.updateById(inspection); } return result; } @Override public int updateHazards(HazardsEditDTO dto) { Hazards hazards = hazardsMapper.selectById(dto.getId()); if (hazards == null){ throw new ServiceException("没有此数据"); } if (!hazards.getReformUserId().toString().equals(SecurityUtils.getUserId().toString())){ throw new ServiceException("只能整改本人数据"); } Hazards inspection = new Hazards(); inspection.setId(dto.getId()); inspection.setReformPeriod(dto.getReformPeriod()); inspection.setRectificationMeasures(dto.getRectificationMeasures()); inspection.setReasonAnalysis(dto.getReasonAnalysis()); inspection.setReformPics(dto.getReformPics()); inspection.setUpdateTime(LocalDateTime.now()); inspection.setUpdateBy(SecurityUtils.getUsername()); inspection.setState(1); return hazardsMapper.updateById(inspection); } private void checkPer(){ // boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId()); // if (!admin){ // boolean placeSafetyOfficer = SecurityUtils.hasRole(Constants.SYS_ADMIN); // if (!placeSafetyOfficer){ // throw new RuntimeException("没有权限"); // } // LoginUser loginUser = SecurityUtils.getLoginUser(); // SysUser user = loginUser.getUser(); // List roles = user.getRoles(); // long sysAdmin = roles.stream().filter(role -> role.getRoleKey().equals(Constants.SYS_ADMIN)).count(); // if (sysAdmin == 0){ // throw new RuntimeException("没有权限"); // } // } } @Override public int deleteHazards(Long id) { return hazardsMapper.update(new Hazards(), new LambdaUpdateWrapper().eq(Hazards::getId, id) .set(Hazards::getDelFlag, Constants.FAIL).set(Hazards::getUpdateTime, LocalDateTime.now()) .set(Hazards::getUpdateBy, SecurityUtils.getUsername())); } }