|
|
@@ -0,0 +1,264 @@
|
|
|
+package com.usky.sas.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.usky.common.core.bean.CommonPage;
|
|
|
+import com.usky.sas.domain.SasAlarsasEvent;
|
|
|
+import com.usky.sas.domain.SasEntranceEvent;
|
|
|
+import com.usky.sas.domain.SasParkingEvent;
|
|
|
+import com.usky.sas.domain.SasPatrolEvent;
|
|
|
+import com.usky.sas.domain.SasSnapEvent;
|
|
|
+import com.usky.sas.mapper.SasAlarsasEventMapper;
|
|
|
+import com.usky.sas.mapper.SasEntranceEventMapper;
|
|
|
+import com.usky.sas.mapper.SasParkingEventMapper;
|
|
|
+import com.usky.sas.mapper.SasPatrolEventMapper;
|
|
|
+import com.usky.sas.mapper.SasSnapEventMapper;
|
|
|
+import com.usky.sas.service.SasIntelligentService;
|
|
|
+import com.usky.sas.service.vo.IntelligentEventItem;
|
|
|
+import com.usky.sas.service.vo.IntelligentEventPageRequest;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class SasIntelligentServiceImpl implements SasIntelligentService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SasSnapEventMapper sasSnapEventMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SasAlarsasEventMapper sasAlarsasEventMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SasEntranceEventMapper sasEntranceEventMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SasParkingEventMapper sasParkingEventMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SasPatrolEventMapper sasPatrolEventMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<IntelligentEventItem> queryEvents(IntelligentEventPageRequest request) {
|
|
|
+ // 按 eventType 分发
|
|
|
+ switch (request.getEventType()) {
|
|
|
+ case "snap":
|
|
|
+ return querySnap(request);
|
|
|
+ case "alarm":
|
|
|
+ return queryAlarm(request);
|
|
|
+ case "entrance":
|
|
|
+ return queryEntrance(request);
|
|
|
+ case "parking":
|
|
|
+ return queryParking(request);
|
|
|
+ case "patrol":
|
|
|
+ return queryPatrol(request);
|
|
|
+ default:
|
|
|
+ return querySnap(request);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<IntelligentEventItem> querySnap(IntelligentEventPageRequest request) {
|
|
|
+ IPage<SasSnapEvent> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
+ LambdaQueryWrapper<SasSnapEvent> wrapper = buildSnapWrapper(request);
|
|
|
+ page = sasSnapEventMapper.selectPage(page, wrapper);
|
|
|
+ List<IntelligentEventItem> list = page.getRecords().stream().map(this::fromSnap).collect(Collectors.toList());
|
|
|
+ return new CommonPage<>(list, page.getTotal(), page.getCurrent(), page.getSize());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<IntelligentEventItem> queryAlarm(IntelligentEventPageRequest request) {
|
|
|
+ IPage<SasAlarsasEvent> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
+ LambdaQueryWrapper<SasAlarsasEvent> wrapper = buildAlarmWrapper(request);
|
|
|
+ page = sasAlarsasEventMapper.selectPage(page, wrapper);
|
|
|
+ List<IntelligentEventItem> list = page.getRecords().stream().map(this::fromAlarm).collect(Collectors.toList());
|
|
|
+ return new CommonPage<>(list, page.getTotal(), page.getCurrent(), page.getSize());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<IntelligentEventItem> queryEntrance(IntelligentEventPageRequest request) {
|
|
|
+ IPage<SasEntranceEvent> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
+ LambdaQueryWrapper<SasEntranceEvent> wrapper = buildEntranceWrapper(request);
|
|
|
+ page = sasEntranceEventMapper.selectPage(page, wrapper);
|
|
|
+ List<IntelligentEventItem> list = page.getRecords().stream().map(this::fromEntrance).collect(Collectors.toList());
|
|
|
+ return new CommonPage<>(list, page.getTotal(), page.getCurrent(), page.getSize());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<IntelligentEventItem> queryParking(IntelligentEventPageRequest request) {
|
|
|
+ IPage<SasParkingEvent> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
+ LambdaQueryWrapper<SasParkingEvent> wrapper = buildParkingWrapper(request);
|
|
|
+ page = sasParkingEventMapper.selectPage(page, wrapper);
|
|
|
+ List<IntelligentEventItem> list = page.getRecords().stream().map(this::fromParking).collect(Collectors.toList());
|
|
|
+ return new CommonPage<>(list, page.getTotal(), page.getCurrent(), page.getSize());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<IntelligentEventItem> queryPatrol(IntelligentEventPageRequest request) {
|
|
|
+ IPage<SasPatrolEvent> page = new Page<>(request.getPage(), request.getPageSize());
|
|
|
+ LambdaQueryWrapper<SasPatrolEvent> wrapper = buildPatrolWrapper(request);
|
|
|
+ page = sasPatrolEventMapper.selectPage(page, wrapper);
|
|
|
+ List<IntelligentEventItem> list = page.getRecords().stream().map(this::fromPatrol).collect(Collectors.toList());
|
|
|
+ return new CommonPage<>(list, page.getTotal(), page.getCurrent(), page.getSize());
|
|
|
+ }
|
|
|
+
|
|
|
+ private LambdaQueryWrapper<SasSnapEvent> buildSnapWrapper(IntelligentEventPageRequest request) {
|
|
|
+ LambdaQueryWrapper<SasSnapEvent> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ if (request.getDeviceId() != null && !request.getDeviceId().isEmpty()) {
|
|
|
+ wrapper.eq(SasSnapEvent::getDeviceId, request.getDeviceId());
|
|
|
+ }
|
|
|
+ if (request.getStartTime() != null) {
|
|
|
+ wrapper.ge(SasSnapEvent::getTriggerTime, request.getStartTime());
|
|
|
+ }
|
|
|
+ if (request.getEndTime() != null) {
|
|
|
+ wrapper.le(SasSnapEvent::getTriggerTime, request.getEndTime());
|
|
|
+ }
|
|
|
+ wrapper.orderByDesc(SasSnapEvent::getTriggerTime);
|
|
|
+ return wrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ private LambdaQueryWrapper<SasAlarsasEvent> buildAlarmWrapper(IntelligentEventPageRequest request) {
|
|
|
+ LambdaQueryWrapper<SasAlarsasEvent> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ if (request.getDeviceId() != null && !request.getDeviceId().isEmpty()) {
|
|
|
+ wrapper.eq(SasAlarsasEvent::getDeviceId, request.getDeviceId());
|
|
|
+ }
|
|
|
+ if (request.getStartTime() != null) {
|
|
|
+ wrapper.ge(SasAlarsasEvent::getTriggerTime, request.getStartTime());
|
|
|
+ }
|
|
|
+ if (request.getEndTime() != null) {
|
|
|
+ wrapper.le(SasAlarsasEvent::getTriggerTime, request.getEndTime());
|
|
|
+ }
|
|
|
+ wrapper.orderByDesc(SasAlarsasEvent::getTriggerTime);
|
|
|
+ return wrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ private LambdaQueryWrapper<SasEntranceEvent> buildEntranceWrapper(IntelligentEventPageRequest request) {
|
|
|
+ LambdaQueryWrapper<SasEntranceEvent> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ if (request.getDeviceId() != null && !request.getDeviceId().isEmpty()) {
|
|
|
+ wrapper.eq(SasEntranceEvent::getDeviceId, request.getDeviceId());
|
|
|
+ }
|
|
|
+ if (request.getStartTime() != null) {
|
|
|
+ wrapper.ge(SasEntranceEvent::getTriggerTime, request.getStartTime());
|
|
|
+ }
|
|
|
+ if (request.getEndTime() != null) {
|
|
|
+ wrapper.le(SasEntranceEvent::getTriggerTime, request.getEndTime());
|
|
|
+ }
|
|
|
+ wrapper.orderByDesc(SasEntranceEvent::getTriggerTime);
|
|
|
+ return wrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ private LambdaQueryWrapper<SasParkingEvent> buildParkingWrapper(IntelligentEventPageRequest request) {
|
|
|
+ LambdaQueryWrapper<SasParkingEvent> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ if (request.getDeviceId() != null && !request.getDeviceId().isEmpty()) {
|
|
|
+ wrapper.eq(SasParkingEvent::getDeviceId, request.getDeviceId());
|
|
|
+ }
|
|
|
+ if (request.getStartTime() != null) {
|
|
|
+ wrapper.ge(SasParkingEvent::getTriggerTime, request.getStartTime());
|
|
|
+ }
|
|
|
+ if (request.getEndTime() != null) {
|
|
|
+ wrapper.le(SasParkingEvent::getTriggerTime, request.getEndTime());
|
|
|
+ }
|
|
|
+ wrapper.orderByDesc(SasParkingEvent::getTriggerTime);
|
|
|
+ return wrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ private LambdaQueryWrapper<SasPatrolEvent> buildPatrolWrapper(IntelligentEventPageRequest request) {
|
|
|
+ LambdaQueryWrapper<SasPatrolEvent> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ if (request.getDeviceId() != null && !request.getDeviceId().isEmpty()) {
|
|
|
+ wrapper.eq(SasPatrolEvent::getDeviceId, request.getDeviceId());
|
|
|
+ }
|
|
|
+ if (request.getStartTime() != null) {
|
|
|
+ wrapper.ge(SasPatrolEvent::getTriggerTime, request.getStartTime());
|
|
|
+ }
|
|
|
+ if (request.getEndTime() != null) {
|
|
|
+ wrapper.le(SasPatrolEvent::getTriggerTime, request.getEndTime());
|
|
|
+ }
|
|
|
+ wrapper.orderByDesc(SasPatrolEvent::getTriggerTime);
|
|
|
+ return wrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ private IntelligentEventItem fromSnap(SasSnapEvent e) {
|
|
|
+ IntelligentEventItem item = new IntelligentEventItem();
|
|
|
+ item.setEventId(e.getEventId());
|
|
|
+ item.setDeviceId(e.getDeviceId());
|
|
|
+ item.setChannel(e.getChannel());
|
|
|
+ item.setTriggerTime(e.getTriggerTime());
|
|
|
+ item.setEventCode(e.getEventCode());
|
|
|
+ item.setScenePicId(e.getScenePicId());
|
|
|
+ item.setEventPicId(e.getEventPicId());
|
|
|
+ item.setSimilarity(e.getSimilarity());
|
|
|
+ item.setPersonCode(e.getPersonCode());
|
|
|
+ item.setNotify(e.getNotify());
|
|
|
+ item.setScene(e.getScene());
|
|
|
+ return item;
|
|
|
+ }
|
|
|
+
|
|
|
+ private IntelligentEventItem fromAlarm(SasAlarsasEvent e) {
|
|
|
+ IntelligentEventItem item = new IntelligentEventItem();
|
|
|
+ item.setEventId(e.getEventId());
|
|
|
+ item.setDeviceId(e.getDeviceId());
|
|
|
+ item.setChannel(e.getChannel());
|
|
|
+ item.setTriggerTime(e.getTriggerTime());
|
|
|
+ item.setEventCode(e.getEventCode());
|
|
|
+ item.setPicId(e.getPicId());
|
|
|
+ item.setRelPerson(e.getRelPerson());
|
|
|
+ item.setDealPerson(e.getDealPerson());
|
|
|
+ item.setEventSystem(e.getEventSystem());
|
|
|
+ return item;
|
|
|
+ }
|
|
|
+
|
|
|
+ private IntelligentEventItem fromEntrance(SasEntranceEvent e) {
|
|
|
+ IntelligentEventItem item = new IntelligentEventItem();
|
|
|
+ item.setEventId(e.getEventId());
|
|
|
+ item.setDeviceId(e.getDeviceId());
|
|
|
+ item.setChannel(e.getChannel());
|
|
|
+ item.setCertifiedType(e.getCertifiedType());
|
|
|
+ item.setCertifiedNo(e.getCertifiedNo());
|
|
|
+ item.setPersonName(e.getName());
|
|
|
+ item.setPhone(e.getPhone());
|
|
|
+ item.setTriggerTime(e.getTriggerTime());
|
|
|
+ item.setEventCode(e.getEventCode());
|
|
|
+ item.setCardId(e.getCardId());
|
|
|
+ item.setSimilarity(e.getSimilarity());
|
|
|
+ item.setPicId(e.getPicId());
|
|
|
+ return item;
|
|
|
+ }
|
|
|
+
|
|
|
+ private IntelligentEventItem fromParking(SasParkingEvent e) {
|
|
|
+ IntelligentEventItem item = new IntelligentEventItem();
|
|
|
+ item.setEventId(e.getEventId());
|
|
|
+ item.setDeviceId(e.getDeviceId());
|
|
|
+ item.setChannel(e.getChannel());
|
|
|
+ item.setTriggerTime(e.getTriggerTime());
|
|
|
+ item.setEventCode(e.getEventCode());
|
|
|
+ item.setEntranceCode(e.getEntranceCode());
|
|
|
+ item.setPlateNo(e.getPlateNo());
|
|
|
+ item.setPlateType(e.getPlateType());
|
|
|
+ item.setPlateColor(e.getPlateColor());
|
|
|
+ item.setCarType(e.getCarType());
|
|
|
+ item.setAccessType(e.getAccessType());
|
|
|
+ item.setSimilarity(e.getSimilarity());
|
|
|
+ item.setPicId(e.getPlatePicId());
|
|
|
+ item.setEventPicId(e.getEventPicId());
|
|
|
+ return item;
|
|
|
+ }
|
|
|
+
|
|
|
+ private IntelligentEventItem fromPatrol(SasPatrolEvent e) {
|
|
|
+ IntelligentEventItem item = new IntelligentEventItem();
|
|
|
+ item.setEventId(e.getEventId());
|
|
|
+ item.setDeviceId(e.getDeviceId());
|
|
|
+ item.setChannel(e.getChannel());
|
|
|
+ item.setTriggerTime(e.getTriggerTime());
|
|
|
+ item.setEventCode(e.getEventCode());
|
|
|
+ item.setName(e.getName());
|
|
|
+ item.setCredentialType(e.getCredentialType());
|
|
|
+ item.setCredentialNo(e.getCredentialNo());
|
|
|
+ item.setTypeName(e.getTypeName());
|
|
|
+ item.setPicId(e.getPicId());
|
|
|
+ return item;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|