package org.dromara.demo.service.impl; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.dromara.demo.domain.bo.RsDangerInfoBo; import org.dromara.demo.domain.vo.RsDangerInfoVo; import org.dromara.demo.domain.RsDangerInfo; import org.dromara.demo.mapper.RsDangerInfoMapper; import org.dromara.demo.service.IRsDangerInfoService; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Collection; import java.util.stream.Collectors; /** * 安全隐患信息Service业务层处理 * * @author gonghl * @date 2024-02-27 */ @RequiredArgsConstructor @Service public class RsDangerInfoServiceImpl implements IRsDangerInfoService { private final RsDangerInfoMapper baseMapper; /** * 查询安全隐患信息 */ @Override public RsDangerInfoVo queryById(Long id){ return baseMapper.selectVoById(id); } /** * 查询安全隐患信息列表 */ @Override public TableDataInfo queryPageList(RsDangerInfoBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } /** * 查询安全隐患信息列表 */ @Override public List queryList(RsDangerInfoBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } private LambdaQueryWrapper buildQueryWrapper(RsDangerInfoBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(StringUtils.isNotBlank(bo.getNotificationTime()), RsDangerInfo::getNotificationTime, bo.getNotificationTime()); lqw.eq(StringUtils.isNotBlank(bo.getDangerType()), RsDangerInfo::getDangerType, bo.getDangerType()); lqw.like(StringUtils.isNotBlank(bo.getAccountabilityUnit()), RsDangerInfo::getAccountabilityUnit, bo.getAccountabilityUnit()); lqw.eq(StringUtils.isNotBlank(bo.getRectificationTimeLimit()), RsDangerInfo::getRectificationTimeLimit, bo.getRectificationTimeLimit()); lqw.eq(StringUtils.isNotBlank(bo.getPerformance()), RsDangerInfo::getPerformance, bo.getPerformance()); lqw.eq(bo.getStatus() != null, RsDangerInfo::getStatus, bo.getStatus()); lqw.orderByDesc(RsDangerInfo::getCreateTime); return lqw; } /** * 新增安全隐患信息 */ @Override public Boolean insertByBo(RsDangerInfoBo bo) { RsDangerInfo add = MapstructUtils.convert(bo, RsDangerInfo.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); } return flag; } /** * 修改安全隐患信息 */ @Override public Boolean updateByBo(RsDangerInfoBo bo) { RsDangerInfo update = MapstructUtils.convert(bo, RsDangerInfo.class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } /** * 保存前的数据校验 */ private void validEntityBeforeSave(RsDangerInfo entity){ // 创建时间 if (entity.getCreateTime() == null) { entity.setCreateTime(new Date()); } } /** * 批量删除安全隐患信息 */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteBatchIds(ids) > 0; } /** * 获取隐患类型 * @return 隐患类型查询条件 */ @Override public List getDangerType() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.groupBy(RsDangerInfo::getDangerType).select(RsDangerInfo::getDangerType).orderByAsc(RsDangerInfo::getCreateTime); return baseMapper.selectVoList(queryWrapper); } }