Jelajahi Sumber

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 tahun lalu
induk
melakukan
d8c3378e12

+ 21 - 37
service-park/service-park-biz/src/main/java/com/usky/park/service/impl/EventEgServiceImpl.java

@@ -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);
 
     }