package com.ozs.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.ozs.entity.MsgAlarm;
import com.ozs.entity.vo.*;
import com.ozs.mapper.BaseCameraManagementMapper;
import com.ozs.mapper.MsgAlarmMapper;
import com.ozs.service.MsgAlarmService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* 报警信息表 服务实现类
*
*
* @author ozs
* @since 2023-02-22
*/
@Service
public class MsgAlarmServiceImpl extends ServiceImpl implements MsgAlarmService {
@Autowired
private MsgAlarmMapper msgAlarmMapper;
@Autowired
private BaseCameraManagementMapper baseCameraManagementMapper;
public IPage listToPage(List list, int pageNum, int pageSize) {
List pageList = new ArrayList<>();
int curIdx = pageNum > 1 ? (pageNum - 1) * pageSize : 0;
for (int i = 0; i < pageSize && curIdx + i < list.size(); i++) {
pageList.add(list.get(curIdx + i));
}
IPage page = new Page<>(pageNum, pageSize);
page.setRecords(pageList);
page.setTotal(list.size());
return page;
}
//web数据统计 报警数据详情
@Override
public List list(String railwayCode, Integer currentYear, Integer currentMonth, Integer pageNum, Integer pageSize) {
List list = msgAlarmMapper.list(railwayCode, currentYear, currentMonth);
return list;
}
@Override
public List getCount(String railwayCode, Integer currentYear, Integer currentMonth) {
List list = msgAlarmMapper.listDtoMonth(railwayCode, currentYear, currentMonth);
return list;
}
@Override
public List getDayCount(String railwayCode, Integer currentYear, Integer currentMonth) {
List list = msgAlarmMapper.listDtoDay(railwayCode, currentYear, currentMonth);
return list;
}
@Override
public List getAlarmTypeCount(String railwayCode, Integer currentYear, Integer currentMonth) {
List list = msgAlarmMapper.alarmTypeCount(railwayCode, currentYear, currentMonth);
return list;
}
@Override
public List alarmTypeAreaCount(String railwayCode, Integer currentYear, Integer currentMonth) {
List list = msgAlarmMapper.alarmTypeAreaCount(railwayCode, currentYear, currentMonth);
return list;
}
@Override
public List exportExcel(AlarmStatisticResVo alarmStatisticResVo) {
List listDto = msgAlarmMapper.list(alarmStatisticResVo.getRailwayCode(), alarmStatisticResVo.getCurrentYear(),
alarmStatisticResVo.getCurrentMonth());
return listDto;
}
@Override
public Long getAlarmNum() {
Long alarmNum = msgAlarmMapper.getAlarmNum();
return alarmNum;
}
@Override
public MsgAlarm selectByCameraCode(String cameraCode) {
return msgAlarmMapper.selectByCameraCode(cameraCode);
}
@Override
public IPage queryPage(MsgAlarmVo vo) {
int pageNum = Integer.parseInt(vo.getPageNum().toString());
int pageSize = Integer.parseInt(vo.getPageSize().toString());
com.github.pagehelper.Page page = PageHelper.startPage(pageNum, pageSize)
.doSelectPage(() -> msgAlarmMapper.selectMsgAlarmList(vo));
Page pageR = new Page<>(pageNum, pageSize);
pageR.setRecords(page.getResult());
pageR.setTotal(page.getTotal());
return pageR;
}
@Override
public MsgAlarm getByAlarmId(String alarmId) {
return msgAlarmMapper.getByAlarmId(alarmId);
}
@Override
public Map statisticsNum(MsgAlarmVo msgAlarmVo) {
Map map = new HashMap<>();
// 相机数量
Integer countCamera = baseCameraManagementMapper.countCamera(msgAlarmVo);
// 累计报警次数
Integer countMsg = msgAlarmMapper.countMsg(msgAlarmVo);
// 解除报警
// LambdaQueryWrapper lwJC = new LambdaQueryWrapper();
// lwJC.eq(MsgAlarm::getIsLock, "1");
Integer countJC = msgAlarmMapper.countJC(msgAlarmVo);
// 未解除报警
// LambdaQueryWrapper lwWJC = new LambdaQueryWrapper();
// lwWJC.eq(MsgAlarm::getIsLock, "2");
Integer countWJC = msgAlarmMapper.countWJC(msgAlarmVo);
map.put("countCamera", countCamera);
map.put("countMsg", countMsg);
map.put("countJC", countJC);
map.put("countWJC", countWJC);
return map;
}
@Override
public Integer appAlarmNum(MsgAlarmVo msgAlarmVo) {
return msgAlarmMapper.countWJC(msgAlarmVo);
}
@Override
public List msgAlarmList(MsgAlarmVo msgAlarmVo) {
return msgAlarmMapper.selectMsgAlarmList(msgAlarmVo);
}
}