| 
					
				 | 
			
			
				@@ -1,6 +1,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.usky.iot.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hutool.core.collection.CollectionUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,6 +20,7 @@ import com.usky.iot.service.BaseFacilityDeviceService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.service.BaseGgpFacilityService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.service.vo.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.system.model.LoginUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.ObjectUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,6 +49,8 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private BaseBuildService baseBuildService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private BaseFacilityTypeMapper baseFacilityTypeMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private DmpProductInfoService dmpProductInfoService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public boolean add(BaseGgpFacility baseGgpFacility) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -197,7 +202,8 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public CommonPage<Object> deviceBindInfo(String deviceId,Integer id,Integer current,Integer size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CommonPage<Object> deviceBindInfo(Integer deviceType,String deviceId,Integer id,Integer current, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                             Integer size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Object> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         IPage<DmpDeviceInfo> page = new Page<>(current, size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<BaseFacilityDevice> lambdaQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -205,8 +211,10 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<BaseFacilityDevice> baseFacilityDeviceList = baseFacilityDeviceService.list(lambdaQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<DmpDeviceInfo> queryWrapper1 = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         queryWrapper1.select(DmpDeviceInfo::getId, DmpDeviceInfo::getDeviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                DmpDeviceInfo::getDeviceName, DmpDeviceInfo::getInstallAddress) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DmpDeviceInfo::getDeviceName, DmpDeviceInfo::getInstallAddress,DmpDeviceInfo::getDeviceType) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(StringUtils.isNotBlank(deviceId),DmpDeviceInfo::getDeviceId, deviceId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(ObjectUtils.isNotEmpty(deviceType),DmpDeviceInfo::getDeviceType,deviceType) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq(DmpDeviceInfo::getTenantId,SecurityUtils.getTenantId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(DmpDeviceInfo::getDeleteFlag,0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         page = dmpDeviceInfoService.page(page,queryWrapper1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtils.isNotEmpty(page.getRecords())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -215,6 +223,7 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 map.put("id", page.getRecords().get(i).getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 map.put("deviceId", page.getRecords().get(i).getDeviceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 map.put("deviceName", page.getRecords().get(i).getDeviceName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                map.put("deviceType", page.getRecords().get(i).getDeviceType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 map.put("installAddress", page.getRecords().get(i).getInstallAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 map.put("bindStatus", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 map.put("bindId", 0); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -275,4 +284,51 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<BaseGgpFacility> list = this.list(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<Object> facilityPopInfo(Integer id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Object> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<BaseGgpFacility> queryWrapper = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.eq(BaseGgpFacility::getId, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<BaseGgpFacility> baseGgpFacilityList = this.list(queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<BaseFacilityDevice> lambdaQuery = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lambdaQuery.eq(BaseFacilityDevice::getFacilityId,id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<BaseFacilityDevice> baseFacilityDeviceList = baseFacilityDeviceService.list(lambdaQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put("id", baseGgpFacilityList.get(0).getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put("facilityName", baseGgpFacilityList.get(0).getFacilityName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put("facilityAddress", baseGgpFacilityList.get(0).getFacilityAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put("contact", baseGgpFacilityList.get(0).getContact()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put("contactPhone", baseGgpFacilityList.get(0).getContactPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isNotEmpty(baseFacilityDeviceList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<String> deviceIdList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < baseFacilityDeviceList.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                deviceIdList.add(baseFacilityDeviceList.get(i).getDeviceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            QueryWrapper<DmpDeviceInfo> query1 = Wrappers.query(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            query1.select("product_code as productCode","count(id) as count") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .in("device_id",deviceIdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .eq("delete_flag",0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .groupBy("product_code"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<DmpDeviceInfo> dmpDeviceInfoList1 = dmpDeviceInfoService.list(query1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            QueryWrapper<DmpDeviceInfo> query = Wrappers.query(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            query.select("product_code as productCode","count(id) as count") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .in("device_id",deviceIdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .eq("delete_flag",0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .groupBy("product_code"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<DmpDeviceInfo> dmpDeviceInfoList = dmpDeviceInfoService.list(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtils.isNotEmpty(dmpDeviceInfoList)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> productCodeList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (int j = 0; j < dmpDeviceInfoList.size(); j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    productCodeList.add(dmpDeviceInfoList.get(j).getProductCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                LambdaQueryWrapper<DmpProductInfo> queryWrapper2 = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                queryWrapper2.in(DmpProductInfo::getProductCode, productCodeList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<DmpProductInfo> dmpProductInfoList = dmpProductInfoService.list(queryWrapper2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |