TDeviceAlarmServiceImpl.java 8.93 KB
Newer Older
1 2
package com.zehong.system.service.impl;

3
import java.util.ArrayList;
4
import java.util.List;
5 6

import com.zehong.common.core.domain.entity.SysDictData;
7
import com.zehong.common.utils.DateUtils;
8
import com.zehong.common.utils.StringUtils;
9
import com.zehong.system.domain.TDeviceInfo;
10
import com.zehong.system.domain.TDeviceReportData;
11
import com.zehong.system.domain.TPipe;
王晓倩's avatar
王晓倩 committed
12
import com.zehong.system.domain.form.DeviceAlarmForm;
13 14
import com.zehong.system.domain.vo.DeviceAlarmVo;
import com.zehong.system.mapper.TDeviceInfoMapper;
15
import com.zehong.system.mapper.TDeviceReportDataMapper;
16
import com.zehong.system.mapper.TPipeMapper;
17
import com.zehong.system.service.ISysDictTypeService;
18
import org.springframework.beans.BeanUtils;
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zehong.system.mapper.TDeviceAlarmMapper;
import com.zehong.system.domain.TDeviceAlarm;
import com.zehong.system.service.ITDeviceAlarmService;

/**
 * 报警信息Service业务层处理
 * 
 * @author zehong
 * @date 2021-07-21
 */
@Service
public class TDeviceAlarmServiceImpl implements ITDeviceAlarmService 
{
    @Autowired
    private TDeviceAlarmMapper tDeviceAlarmMapper;
36 37 38 39
    @Autowired
    private TDeviceInfoMapper tDeviceInfoMapper;
    @Autowired
    private TPipeMapper tPipeMapper;
40 41
    @Autowired
    private TDeviceReportDataMapper tDeviceReportDataMapper;
42

43 44 45
    @Autowired
    private ISysDictTypeService iSysDictTypeService;

46 47 48 49 50 51 52
    /**
     * 查询报警信息
     * 
     * @param alarmId 报警信息ID
     * @return 报警信息
     */
    @Override
53
    public DeviceAlarmVo selectTDeviceAlarmById(int alarmId) throws Exception
54
    {
55 56
        DeviceAlarmVo deviceAlarmVo = new DeviceAlarmVo();
        TDeviceAlarm tDeviceAlarm = tDeviceAlarmMapper.selectTDeviceAlarmById(alarmId);
王晓倩's avatar
王晓倩 committed
57
        BeanUtils.copyProperties(tDeviceAlarm, deviceAlarmVo);
58

59 60 61 62 63 64 65 66 67
        if (StringUtils.isNotEmpty(tDeviceAlarm.getAlarmType())) {
            List<SysDictData> sysDictDataList = iSysDictTypeService.selectDictDataByType("t_alarm_type");
            for (SysDictData sysDictData : sysDictDataList) {
                if (tDeviceAlarm.getAlarmType().equals(sysDictData.getDictValue())) {
                    deviceAlarmVo.setAlarmType(sysDictData.getDictLabel());
                }
            }
        }

68 69 70 71 72 73 74 75 76
        if (StringUtils.isNotEmpty(tDeviceAlarm.getDeviceType())) {
            List<SysDictData> sysDictDataList = iSysDictTypeService.selectDictDataByType("t_trouble_device_type");
            for (SysDictData sysDictData : sysDictDataList) {
                if (tDeviceAlarm.getDeviceType().equals(sysDictData.getDictValue())) {
                    deviceAlarmVo.setDeviceType(sysDictData.getDictLabel());
                }
            }
        }

77 78
        if("0".equals(tDeviceAlarm.getDeviceType())){
            TPipe pipe = tPipeMapper.selectTPipeById(tDeviceAlarm.getDeviceId());
79 80 81 82 83 84 85 86
            if(pipe != null) {
                deviceAlarmVo.setDeviceCode(pipe.getPipeCode());
                deviceAlarmVo.setDeviceName(pipe.getPipeName());

                List<TPipe> pipeList = new ArrayList<>();
                pipeList.add(pipe);
                deviceAlarmVo.setPipeList(pipeList);
            }
87 88
        } else {
            TDeviceInfo deviceInfo = tDeviceInfoMapper.selectTDeviceInfoById(tDeviceAlarm.getDeviceId());
89 90 91 92 93 94 95 96
            if(deviceInfo != null){
                deviceAlarmVo.setDeviceCode(deviceInfo.getDeviceCode());
                deviceAlarmVo.setDeviceName(deviceInfo.getDeviceName());

                List<TDeviceInfo> deviceList = new ArrayList<>();
                deviceList.add(deviceInfo);
                deviceAlarmVo.setDeviceList(deviceList);
            }
97 98 99 100 101 102 103 104 105 106

            // 查询当前设备开始报警时间前后一小时的数据
            TDeviceReportData tDeviceReportData = new TDeviceReportData();
            tDeviceReportData.setDeviceNum(deviceInfo.getIotNo());
            tDeviceReportData.setReportTime(tDeviceAlarm.getStartTime());

            List<TDeviceReportData> deviceReportDataList = tDeviceReportDataMapper.getAlarmDeviceReportDataList(tDeviceReportData);
            if(deviceReportDataList.size() != 0) {
                deviceAlarmVo.setDeviceReportDataList(deviceReportDataList);
            }
107 108 109
        }

        return deviceAlarmVo;
110 111 112 113 114
    }

    /**
     * 查询报警信息列表
     * 
王晓倩's avatar
王晓倩 committed
115
     * @param deviceAlarmForm 报警信息
116 117 118
     * @return 报警信息
     */
    @Override
王晓倩's avatar
王晓倩 committed
119
    public List<DeviceAlarmVo> selectTDeviceAlarmList(DeviceAlarmForm deviceAlarmForm) throws Exception
120
    {
121
        List<DeviceAlarmVo> list = new ArrayList<>();
王晓倩's avatar
王晓倩 committed
122
        List<TDeviceAlarm> deviceAlarmList = new ArrayList<>();
123

王晓倩's avatar
王晓倩 committed
124 125 126 127 128 129 130 131 132 133 134 135
        if(deviceAlarmForm.getDeviceCode() != null){
            List<TDeviceAlarm> pipeList = tDeviceAlarmMapper.selectTDeviceAlarmByPipeCode(deviceAlarmForm);
            List<TDeviceAlarm> deviceList = tDeviceAlarmMapper.selectTDeviceAlarmByDeviceCode(deviceAlarmForm);
            if(pipeList.size() != 0){
                deviceAlarmList.addAll(pipeList);
            }
            if(deviceList.size() != 0){
                deviceAlarmList.addAll(deviceList);
            }
        } else {
            deviceAlarmList = tDeviceAlarmMapper.selectTDeviceAlarmList(deviceAlarmForm);
        }
136

王晓倩's avatar
王晓倩 committed
137 138 139 140 141 142 143 144 145 146
        if(deviceAlarmList.size() != 0) {
            for (TDeviceAlarm alarm : deviceAlarmList) {
                DeviceAlarmVo deviceAlarmVo = new DeviceAlarmVo();
                BeanUtils.copyProperties(alarm, deviceAlarmVo);

                if ("0".equals(alarm.getDeviceType())) {
                    TPipe pipe = tPipeMapper.selectTPipeById(alarm.getDeviceId());
                    if (pipe != null) {
                        deviceAlarmVo.setDeviceCode(pipe.getPipeCode());
                        deviceAlarmVo.setDeviceName(pipe.getPipeName());
147 148 149 150

                        List<TPipe> pipeList = new ArrayList<>();
                        pipeList.add(pipe);
                        deviceAlarmVo.setPipeList(pipeList);
王晓倩's avatar
王晓倩 committed
151 152 153 154 155 156
                    }
                } else {
                    TDeviceInfo deviceInfo = tDeviceInfoMapper.selectTDeviceInfoById(alarm.getDeviceId());
                    if (deviceInfo != null) {
                        deviceAlarmVo.setDeviceCode(deviceInfo.getDeviceCode());
                        deviceAlarmVo.setDeviceName(deviceInfo.getDeviceName());
157 158 159 160

                        List<TDeviceInfo> deviceList = new ArrayList<>();
                        deviceList.add(deviceInfo);
                        deviceAlarmVo.setDeviceList(deviceList);
王晓倩's avatar
王晓倩 committed
161
                    }
162
                }
163

164 165 166
                if (StringUtils.isNotEmpty(alarm.getAlarmType())) {
                    List<SysDictData> sysDictDataList = iSysDictTypeService.selectDictDataByType("t_alarm_type");
                    for (SysDictData sysDictData : sysDictDataList) {
王晓倩's avatar
王晓倩 committed
167 168 169
                        if (alarm.getAlarmType().equals(sysDictData.getDictValue())) {
                            deviceAlarmVo.setAlarmType(sysDictData.getDictLabel());
                        }
170 171 172
                    }
                }

173 174 175 176 177 178 179 180 181
                if (StringUtils.isNotEmpty(alarm.getDeviceType())) {
                    List<SysDictData> sysDictDataList = iSysDictTypeService.selectDictDataByType("t_trouble_device_type");
                    for (SysDictData sysDictData : sysDictDataList) {
                        if (alarm.getDeviceType().equals(sysDictData.getDictValue())) {
                            deviceAlarmVo.setDeviceType(sysDictData.getDictLabel());
                        }
                    }
                }

王晓倩's avatar
王晓倩 committed
182
                list.add(deviceAlarmVo);
183
            }
184
        }
王晓倩's avatar
王晓倩 committed
185

186
        return list;
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
    }

    /**
     * 新增报警信息
     * 
     * @param tDeviceAlarm 报警信息
     * @return 结果
     */
    @Override
    public int insertTDeviceAlarm(TDeviceAlarm tDeviceAlarm)
    {
        tDeviceAlarm.setCreateTime(DateUtils.getNowDate());
        return tDeviceAlarmMapper.insertTDeviceAlarm(tDeviceAlarm);
    }

    /**
     * 修改报警信息
     * 
     * @param tDeviceAlarm 报警信息
     * @return 结果
     */
    @Override
    public int updateTDeviceAlarm(TDeviceAlarm tDeviceAlarm)
    {
        tDeviceAlarm.setUpdateTime(DateUtils.getNowDate());
        return tDeviceAlarmMapper.updateTDeviceAlarm(tDeviceAlarm);
    }

    /**
     * 批量删除报警信息
     * 
     * @param alarmIds 需要删除的报警信息ID
     * @return 结果
     */
    @Override
222
    public int deleteTDeviceAlarmByIds(int[] alarmIds)
223 224 225 226 227 228 229 230 231 232 233
    {
        return tDeviceAlarmMapper.deleteTDeviceAlarmByIds(alarmIds);
    }

    /**
     * 删除报警信息信息
     * 
     * @param alarmId 报警信息ID
     * @return 结果
     */
    @Override
234
    public int deleteTDeviceAlarmById(int alarmId)
235 236 237
    {
        return tDeviceAlarmMapper.deleteTDeviceAlarmById(alarmId);
    }
238 239 240 241 242 243 244 245 246

    /**
     * 查询报警设备
     * @return TDeviceAlarm
     */
    @Override
    public List<TDeviceAlarm> selectAlarmDevice (){
        return tDeviceAlarmMapper.selectAlarmDevice();
    }
247
}