|
@@ -1,7 +1,9 @@
|
|
|
package com.usky.park.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -20,6 +22,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -38,48 +41,29 @@ public class EventEgServiceImpl extends AbstractCrudService<EventEgMapper, Event
|
|
|
@Override
|
|
|
public CommonPage<EventEg> eventEgList(String deviceName,String installAddress,String cardNo,String orgName,Integer eventType,Integer pageNum,Integer pageSize){
|
|
|
IPage<EventEg> page = new Page<>(pageNum,pageSize);
|
|
|
- List<EventEg> list = new ArrayList<>();
|
|
|
- List<EventEg> list2 = new ArrayList<>();
|
|
|
|
|
|
- LambdaQueryWrapper<DmpDevice> queryWrapper1 = Wrappers.lambdaQuery();
|
|
|
- queryWrapper1.select(DmpDevice::getDeviceId)
|
|
|
- .eq(DmpDevice::getDeleteFlag,0)
|
|
|
- .eq(DmpDevice::getDeviceType,502);
|
|
|
- List<DmpDevice> deviceList = deviceService.list(queryWrapper1);
|
|
|
- if(deviceList.size() > 0){
|
|
|
- for(int i=0;i<deviceList.size();i++){
|
|
|
- LambdaQueryWrapper<EventEg> queryWrapper = Wrappers.lambdaQuery();
|
|
|
- queryWrapper.eq(EventEg::getDeviceId,deviceList.get(i).getDeviceId())
|
|
|
- .like(StringUtils.isNotBlank(deviceName),EventEg::getDeviceName,deviceName)
|
|
|
- .like(StringUtils.isNotBlank(installAddress),EventEg::getInstallAddress,installAddress)
|
|
|
- .like(StringUtils.isNotBlank(cardNo),EventEg::getCardNo,cardNo)
|
|
|
- .like(StringUtils.isNotBlank(orgName),EventEg::getOrgName,orgName)
|
|
|
- .eq(eventType != null,EventEg::getEventType,eventType)
|
|
|
- .orderByDesc(EventEg::getEventTime);
|
|
|
- List<EventEg> list1 = this.list(queryWrapper);
|
|
|
- if(list1.size()>0){
|
|
|
- list.add(list1.get(0));
|
|
|
-
|
|
|
- }
|
|
|
+ List<Integer> idList = new ArrayList<>();
|
|
|
+ QueryWrapper<EventEg> query = Wrappers.query();
|
|
|
+ query.select("Max(id) as id")
|
|
|
+ .groupBy("device_id");
|
|
|
+ List<Map<String,Object>> maps = this.listMaps(query);
|
|
|
+ if(maps.size()>0){
|
|
|
+ for(int i=0;i<maps.size();i++){
|
|
|
+ idList.add(Integer.parseInt(maps.get(i).get("id").toString()));
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- List<EventEg> objectList = new ArrayList<>();
|
|
|
- int total = 0;
|
|
|
- if(list.size() > 0){
|
|
|
- total = list.size();
|
|
|
- }
|
|
|
- int current = 0;
|
|
|
- if(pageNum != 0 && pageSize > 0){
|
|
|
- current = (pageNum - 1)*pageSize;
|
|
|
}
|
|
|
|
|
|
- objectList = list.stream().skip(current).limit(pageSize).collect(Collectors.toList());
|
|
|
- objectList = objectList.stream().sorted(Comparator.comparing(EventEg::getEventTime).reversed()).collect(Collectors.toList());
|
|
|
-
|
|
|
+ LambdaQueryWrapper<EventEg> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.in(CollectionUtils.isNotEmpty(idList),EventEg::getId,idList)
|
|
|
+ .like(StringUtils.isNotBlank(deviceName),EventEg::getDeviceName,deviceName)
|
|
|
+ .like(StringUtils.isNotBlank(installAddress),EventEg::getInstallAddress,installAddress)
|
|
|
+ .like(StringUtils.isNotBlank(cardNo),EventEg::getCardNo,cardNo)
|
|
|
+ .like(StringUtils.isNotBlank(orgName),EventEg::getOrgName,orgName)
|
|
|
+ .eq(eventType != null,EventEg::getEventType,eventType)
|
|
|
+ .orderByDesc(EventEg::getEventTime);
|
|
|
+ page = this.page(page,queryWrapper);
|
|
|
|
|
|
- return new CommonPage<>(objectList,total,pageNum,pageSize);
|
|
|
+ return new CommonPage<>(page.getRecords(),page.getTotal(),pageNum,pageSize);
|
|
|
|
|
|
}
|
|
|
|