whycxzp
2023-08-16 618fd4fe93cb0901011c59f05a4a68376b378fe2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.AlarmDaoFactory;
import com.whyc.dto.Response;
import com.whyc.mapper.AlarmManualClearMapper;
import com.whyc.pojo.AlarmManualClear;
import com.whyc.pojo.BattalarmData;
import com.whyc.pojo.DevalarmData;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
 
@Service
public class AlarmManualClearService {
 
    @Resource
    private AlarmManualClearMapper mapper;
 
    @Autowired
    private BattInfService battInfService;
 
    @Autowired
    private PowerInfService powerInfService;
 
    @Autowired
    private BattalarmDataService battAlarmService;
 
    @Autowired
    private BattalarmDataHistoryService battAlarmHistoryService;
 
    @Autowired
    private DevalarmDataService devAlarmService;
 
    @Autowired
    private DevalarmDataHistoryService devAlarmHistoryService;
 
    @Autowired
    private PwrdevAlarmService powerAlarmService;
 
    @Autowired
    private PwrdevAlarmHistoryService powerAlarmHistoryService;
 
    @Transactional
    public Response submit(AlarmManualClear clear) {
        int userId = ActionUtil.getUser().getUId().intValue();
        clear.setDealUserId(userId);
        clear.setCreateTime(new Date());
        //插入对应的站点id,用于后期用户相关
        Integer alarmType = clear.getAlarmType();
        String stationId;
        Integer num = clear.getNum();
        if(alarmType == 1){ //电池告警
            stationId = battInfService.getStationIdByBattGroupId(clear.getBattGroupId());
            //添加到历史告警,移除实时告警
            BattalarmData data = battAlarmService.getById(num);
            battAlarmHistoryService.add(data);
            battAlarmService.delete(num);
        } else if (alarmType == 2) { //设备告警
            stationId = battInfService.getStationIdByDeviceId(clear.getDeviceId());
            DevalarmData data = devAlarmService.getById(num);
 
        }else{ //电源告警
            stationId = powerInfService.getStationIdByPowerDeviceId(clear.getPowerDeviceId());
        }
        clear.setStationId(stationId);
        mapper.insert(clear);
        return new Response().set(1,"提交完成");
    }
 
    public Response getRecordByAlarmInfo(AlarmManualClear clear) {
        QueryWrapper<AlarmManualClear> query = Wrappers.query();
        Integer alarmType = clear.getAlarmType();
        String alarmName;
        if(alarmType == 1) {
            alarmName = AlarmDaoFactory.getAllAlarmName(clear.getAlmSignalId());
            query.eq("batt_group_id",clear.getBattGroupId()).eq("alm_signal_id",clear.getAlmSignalId());
        }else if(alarmType == 2){
            query.eq("device_id",clear.getDeviceId());
            alarmName = AlarmDaoFactory.getAllAlarmName(clear.getAlmId());
        }else{
            query.eq("power_device_id",clear.getPowerDeviceId());
            alarmName = AlarmDaoFactory.getAllAlarmName(clear.getAlmId());
        }
        query.eq("alm_start_time",clear.getAlmStartTime())
                .eq("alm_id",clear.getAlmId()).last(" limit 1");
        AlarmManualClear clearDB = mapper.selectOne(query);
 
        clearDB.setAlarmName(alarmName);
        return new Response().set(1,clearDB);
 
    }
 
    public Response getPage(int pageNum,int pageSize) {
        int userId = ActionUtil.getUser().getUId().intValue();
        //查询所有的记录分页
        PageHelper.startPage(pageNum,pageSize);
        List<AlarmManualClear> list = mapper.getAll(userId);
        PageInfo<AlarmManualClear> pageInfo = new PageInfo<>(list);
        ////装配电池/设备/电源信息
        //List<AlarmManualClear> dataList = pageInfo.getList();
        //List<Integer> battGroupIdList = dataList.stream().filter(data -> data.getAlarmType() == 1).map(AlarmManualClear::getBattGroupId).collect(Collectors.toList());
        //List<Integer> deviceIdList = dataList.stream().filter(data -> data.getAlarmType() == 2).map(AlarmManualClear::getDeviceId).collect(Collectors.toList());
        //List<Integer> powerDeviceIdList = dataList.stream().filter(data -> data.getAlarmType() == 3).map(AlarmManualClear::getPowerDeviceId).collect(Collectors.toList());
        pageInfo.getList().stream().forEach(data->{
                if(data.getAlarmType()==1){
                    data.setAlarmName(AlarmDaoFactory.getAllAlarmName(data.getAlmSignalId()));
                }else{
                    data.setAlarmName(AlarmDaoFactory.getAllAlarmName(data.getAlmId()));
                }
        });
        return new Response().set(1,pageInfo);
    }
}