EquipmentExceptionServiceImpl.java 4.55 KB
package com.ruoyi.eexception.service.impl;

import java.util.Date;
import java.util.List;
import java.util.Objects;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.equipment.domain.Equipment;
import com.ruoyi.equipment.mapper.EquipmentMapper;
import com.ruoyi.pojo.response.EquipmentExceptionResponseVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.eexception.mapper.EquipmentExceptionMapper;
import com.ruoyi.eexception.domain.EquipmentException;
import com.ruoyi.eexception.service.IEquipmentExceptionService;

import static com.ruoyi.common.ConstEquipmentProperties.*;
import static com.ruoyi.common.ConstSignInConstSignInProperties.EQUIPMENT_ALCOHOL_EX_NUM;

/**
 * 设备异常记录Service业务层处理
 * 
 * @author guzijian
 * @date 2023-07-05
 */
@Service
public class EquipmentExceptionServiceImpl implements IEquipmentExceptionService 
{
    @Autowired
    private EquipmentExceptionMapper equipmentExceptionMapper;

    @Autowired
    private EquipmentMapper equipmentMapper;

    /**
     * 查询设备异常记录
     * 
     * @param id 设备异常记录主键
     * @return 设备异常记录
     */
    @Override
    public EquipmentException selectEquipmentExceptionById(Long id)
    {
        return equipmentExceptionMapper.selectEquipmentExceptionById(id);
    }

    /**
     * 查询设备异常记录列表
     * 
     * @param equipmentException 设备异常记录
     * @return 设备异常记录
     */
    @Override
    public List<EquipmentExceptionResponseVo> selectEquipmentExceptionList(EquipmentException equipmentException)
    {
        return equipmentExceptionMapper.selectEquipmentExceptionList(equipmentException);
    }

    /**
     * 新增设备异常记录
     * 
     * @param equipmentException 设备异常记录
     * @return 结果
     */
    @Override
    public int insertEquipmentException(EquipmentException equipmentException)
    {
        equipmentException.setCreateTime(DateUtils.getNowDate());
        if (!StringUtils.isNotEmpty(equipmentException.getDeviceId())){
            throw new RuntimeException("设备号不能为空");
        }
        Equipment equipment = equipmentMapper.queryEquipmentByDeviceId(equipmentException.getDeviceId());
        if (Objects.isNull(equipment)){
            throw new RuntimeException("设备不存在");
        }
        EquipmentException exception = equipmentExceptionMapper.selectEquipmentExceptionByDeviceIdStatus(equipmentException);
        if (!Objects.isNull(exception)){
            throw new RuntimeException("已经提交过报修,等待维修人员处理。");
        }
        if (Objects.isNull(equipmentException.getExType()))
            equipmentException.setExType(EQUIPMENT_ALCOHOL_EX_NUM);
        equipment.setStatus(EQUIPMENT_STATUS_ILLNESS);
        equipmentMapper.updateEquipment(equipment);
        equipmentException.setStatus(EQUIPMENT_PROCESS_FLOW_COMMIT);
        equipmentException.setCreateTime(new Date());
        return equipmentExceptionMapper.insertEquipmentException(equipmentException);
    }

    /**
     * 修改设备异常记录
     * 
     * @param equipmentException 设备异常记录
     * @return 结果
     */
    @Override
    public int updateEquipmentException(EquipmentException equipmentException)
    {
        EquipmentException equipmentException1 = equipmentExceptionMapper.selectEquipmentExceptionById(equipmentException.getId());
        if (EQUIPMENT_ALCOHOL_EX_NUM.equals(equipmentException1.getExType()) && equipmentException.getStatus().equals(EQUIPMENT_PROCESS_FLOW_COMPLETE)){
            Equipment equipment = equipmentMapper.selectEquipmentByDeviceId(equipmentException.getDeviceId());
            equipment.setStatus(EQUIPMENT_STATUS_HEALTH);
            equipmentMapper.updateEquipment(equipment);
        }
        return equipmentExceptionMapper.updateEquipmentException(equipmentException);
    }

    /**
     * 批量删除设备异常记录
     * 
     * @param ids 需要删除的设备异常记录主键
     * @return 结果
     */
    @Override
    public int deleteEquipmentExceptionByIds(Long[] ids)
    {
        return equipmentExceptionMapper.deleteEquipmentExceptionByIds(ids);
    }

    /**
     * 删除设备异常记录信息
     * 
     * @param id 设备异常记录主键
     * @return 结果
     */
    @Override
    public int deleteEquipmentExceptionById(Long id)
    {
        return equipmentExceptionMapper.deleteEquipmentExceptionById(id);
    }
}