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.utils.SecurityUtils; import com.gkhy.system.domain.DailySafetyInspection; 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.Collections; 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) { return hazardsMapper.getHazardsList(hazards); } @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) { checkPer(); 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){ 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())); } }