package com.ruoyi.data.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.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 com.ruoyi.data.domain.TblRoleDevice; import com.ruoyi.data.mapper.TblRoleDeviceMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.ruoyi.data.domain.bo.TblBreakdownBo; import com.ruoyi.data.domain.vo.TblBreakdownVo; import com.ruoyi.data.domain.TblBreakdown; import com.ruoyi.data.mapper.TblBreakdownMapper; import com.ruoyi.data.service.ITblBreakdownService; import java.util.*; /** * 故障管理Service业务层处理 * * @author ruoyi * @date 2023-12-05 */ @RequiredArgsConstructor @Service public class TblBreakdownServiceImpl implements ITblBreakdownService { private final TblBreakdownMapper baseMapper; private final TblRoleDeviceMapper tblRoleDeviceMapper; /** * 查询故障管理 */ @Override public TblBreakdownVo queryById(Long id){ return baseMapper.selectVoById(id); } /** * 查询故障管理列表 */ @Override public TableDataInfo queryPageList(TblBreakdownBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); lqw.between(bo.getParams()!=null && bo.getParams().get("beginTime") != null && bo.getParams().get("endTime") != null, TblBreakdown::getCreateTime, bo.getParams().get("beginTime"), bo.getParams().get("endTime")); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } /** * 查询故障管理列表 */ @Override public List queryList(TblBreakdownBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } @Override public List queryList1(TblBreakdownBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper1(bo); lqw.between(bo.getParams()!=null && bo.getParams().get("beginTime") != null && bo.getParams().get("endTime") != null, TblBreakdown::getCreateTime, bo.getParams().get("beginTime"), bo.getParams().get("endTime")); return baseMapper.selectVoList(lqw); } private LambdaQueryWrapper buildQueryWrapper1(TblBreakdownBo bo) { LoginUser loginUser = LoginHelper.getLoginUser(); Long roleId = loginUser.getRoles().get(0).getRoleId(); Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.like(StringUtils.isNotBlank(bo.getName()), TblBreakdown::getName, bo.getName()); lqw.eq(bo.getVal() != null, TblBreakdown::getVal, bo.getVal()); lqw.eq(bo.getEquipmentId() != null, TblBreakdown::getEquipmentId, bo.getEquipmentId()); lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), TblBreakdown::getEquipmentName, bo.getEquipmentName()); lqw.eq(StringUtils.isNotBlank(bo.getContent()), TblBreakdown::getContent, bo.getContent()); lqw.eq(StringUtils.isNotBlank(bo.getHandler()), TblBreakdown::getHandler, bo.getHandler()); lqw.eq(StringUtils.isNotBlank(bo.getHandlerWay()), TblBreakdown::getHandlerWay, bo.getHandlerWay()); lqw.eq(StringUtils.isNotBlank(bo.getHandlerContent()), TblBreakdown::getHandlerContent, bo.getHandlerContent()); lqw.eq(bo.getHandlerTime() != null, TblBreakdown::getHandlerTime, bo.getHandlerTime()); lqw.eq(bo.getFaultTime() != null, TblBreakdown::getFaultTime, bo.getFaultTime()); lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblBreakdown::getStatus, bo.getStatus()); return lqw; } private LambdaQueryWrapper buildQueryWrapper(TblBreakdownBo bo) { LoginUser loginUser = LoginHelper.getLoginUser(); Long roleId = loginUser.getRoles().get(0).getRoleId(); Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.like(StringUtils.isNotBlank(bo.getName()), TblBreakdown::getName, bo.getName()); lqw.eq(bo.getVal() != null, TblBreakdown::getVal, bo.getVal()); lqw.eq(bo.getEquipmentId() != null, TblBreakdown::getEquipmentId, bo.getEquipmentId()); lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), TblBreakdown::getEquipmentName, bo.getEquipmentName()); lqw.eq(StringUtils.isNotBlank(bo.getContent()), TblBreakdown::getContent, bo.getContent()); lqw.eq(StringUtils.isNotBlank(bo.getHandler()), TblBreakdown::getHandler, bo.getHandler()); lqw.eq(StringUtils.isNotBlank(bo.getHandlerWay()), TblBreakdown::getHandlerWay, bo.getHandlerWay()); lqw.eq(StringUtils.isNotBlank(bo.getHandlerContent()), TblBreakdown::getHandlerContent, bo.getHandlerContent()); lqw.eq(bo.getHandlerTime() != null, TblBreakdown::getHandlerTime, bo.getHandlerTime()); lqw.eq(bo.getFaultTime() != null, TblBreakdown::getFaultTime, bo.getFaultTime()); lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblBreakdown::getStatus, bo.getStatus()); if(roleId != 1){ List list = tblRoleDeviceMapper.getRoleDeviceList(roleId); List deviceList = new ArrayList(); for(TblRoleDevice tblRoleDevice:list){ deviceList.add(tblRoleDevice.getDeviceId()); } lqw.in(TblBreakdown::getEquipmentId,deviceList); } return lqw; } /** * 新增故障管理 */ @Override public Boolean insertByBo(TblBreakdownBo bo) { TblBreakdown add = BeanUtil.toBean(bo, TblBreakdown.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); } return flag; } /** * 修改故障管理 */ @Override public Boolean updateByBo(TblBreakdownBo bo) { TblBreakdown update = BeanUtil.toBean(bo, TblBreakdown.class); validEntityBeforeSave(update); if(StrUtil.isNotEmpty(update.getHandler()) && update.getHandlerTime()==null){ update.setHandlerTime(new Date()); update.setStatus("1"); } return baseMapper.updateById(update) > 0; } /** * 保存前的数据校验 */ private void validEntityBeforeSave(TblBreakdown entity){ //TODO 做一些数据校验,如唯一约束 } /** * 批量删除故障管理 */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteBatchIds(ids) > 0; } }