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

3
import com.github.pagehelper.PageInfo;
4
import com.zehong.common.core.domain.entity.SysDictData;
5
import com.zehong.common.utils.DateUtils;
6
import com.zehong.common.utils.PageInfoUtil;
7
import com.zehong.common.utils.StringUtils;
8
import com.zehong.system.domain.TDeviceAlarm;
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
import com.zehong.system.domain.vo.DeviceAlarmVo;
14
import com.zehong.system.mapper.TDeviceAlarmMapper;
15
import com.zehong.system.mapper.TDeviceInfoMapper;
16
import com.zehong.system.mapper.TDeviceReportDataMapper;
17
import com.zehong.system.mapper.TPipeMapper;
18
import com.zehong.system.service.ISysDictTypeService;
19
import com.zehong.system.service.ITDeviceAlarmService;
20
import org.springframework.beans.BeanUtils;
21 22
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
23 24 25

import java.util.ArrayList;
import java.util.List;
26 27 28 29 30 31 32 33 34 35 36 37

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

45 46 47
    @Autowired
    private ISysDictTypeService iSysDictTypeService;

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

61 62 63 64 65 66 67 68 69
        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());
                }
            }
        }

70 71 72 73 74 75 76 77 78
        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());
                }
            }
        }

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

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

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

            // 查询当前设备开始报警时间前后一小时的数据
            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);
            }
109 110 111
        }

        return deviceAlarmVo;
112 113 114 115 116
    }

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

王晓倩's avatar
王晓倩 committed
125 126 127
        if(deviceAlarmForm.getDeviceCode() != null){
            List<TDeviceAlarm> pipeList = tDeviceAlarmMapper.selectTDeviceAlarmByPipeCode(deviceAlarmForm);
            List<TDeviceAlarm> deviceList = tDeviceAlarmMapper.selectTDeviceAlarmByDeviceCode(deviceAlarmForm);
128 129
            setDeviceInfo(deviceAlarmList,pipeList);
            setDeviceInfo(deviceAlarmList,deviceList);
王晓倩's avatar
王晓倩 committed
130
        } else {
131
            deviceAlarmList = new PageInfo(tDeviceAlarmMapper.selectTDeviceAlarmList(deviceAlarmForm));
王晓倩's avatar
王晓倩 committed
132
        }
133 134 135 136 137
        PageInfo<DeviceAlarmVo> pageVo = PageInfoUtil.pageInfo2PageInfoDTO(deviceAlarmList,DeviceAlarmVo.class);
        if(pageVo.getList().size() != 0) {
            for (DeviceAlarmVo deviceAlarmVo : pageVo.getList()) {
                if ("0".equals(deviceAlarmVo.getDeviceType())) {
                    TPipe pipe = tPipeMapper.selectTPipeById(deviceAlarmVo.getDeviceId());
王晓倩's avatar
王晓倩 committed
138 139 140
                    if (pipe != null) {
                        deviceAlarmVo.setDeviceCode(pipe.getPipeCode());
                        deviceAlarmVo.setDeviceName(pipe.getPipeName());
141 142 143 144

                        List<TPipe> pipeList = new ArrayList<>();
                        pipeList.add(pipe);
                        deviceAlarmVo.setPipeList(pipeList);
王晓倩's avatar
王晓倩 committed
145 146
                    }
                } else {
147
                    TDeviceInfo deviceInfo = tDeviceInfoMapper.selectTDeviceInfoById(deviceAlarmVo.getDeviceId());
王晓倩's avatar
王晓倩 committed
148 149 150
                    if (deviceInfo != null) {
                        deviceAlarmVo.setDeviceCode(deviceInfo.getDeviceCode());
                        deviceAlarmVo.setDeviceName(deviceInfo.getDeviceName());
151 152 153 154

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

158
                if (StringUtils.isNotEmpty(deviceAlarmVo.getAlarmType())) {
159 160
                    List<SysDictData> sysDictDataList = iSysDictTypeService.selectDictDataByType("t_alarm_type");
                    for (SysDictData sysDictData : sysDictDataList) {
161
                        if (deviceAlarmVo.getAlarmType().equals(sysDictData.getDictValue())) {
王晓倩's avatar
王晓倩 committed
162 163
                            deviceAlarmVo.setAlarmType(sysDictData.getDictLabel());
                        }
164 165 166
                    }
                }

167
                if (StringUtils.isNotEmpty(deviceAlarmVo.getDeviceType())) {
168 169
                    List<SysDictData> sysDictDataList = iSysDictTypeService.selectDictDataByType("t_trouble_device_type");
                    for (SysDictData sysDictData : sysDictDataList) {
170
                        if (deviceAlarmVo.getDeviceType().equals(sysDictData.getDictValue())) {
171 172 173 174
                            deviceAlarmVo.setDeviceType(sysDictData.getDictLabel());
                        }
                    }
                }
175
            }
176
        }
王晓倩's avatar
王晓倩 committed
177

178 179 180 181 182 183 184 185 186 187 188 189 190
        return pageVo;
    }

    private void setDeviceInfo(PageInfo<TDeviceAlarm> deviceAlarmList,List<TDeviceAlarm> list){
        if(list.size() != 0){
            if(null != deviceAlarmList.getList() && !deviceAlarmList.getList().isEmpty()){
                deviceAlarmList.getList().addAll(list);
                deviceAlarmList.setTotal(deviceAlarmList.getTotal() + list.size());
            }else{
                deviceAlarmList.setList(list);
                deviceAlarmList.setTotal(list.size());
            }
        }
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 222 223 224 225
    }

    /**
     * 新增报警信息
     * 
     * @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
226
    public int deleteTDeviceAlarmByIds(int[] alarmIds)
227 228 229 230 231 232 233 234 235 236 237
    {
        return tDeviceAlarmMapper.deleteTDeviceAlarmByIds(alarmIds);
    }

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

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