| 
					
				 | 
			
			
				@@ -1,10 +1,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.usky.iot.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hutool.core.collection.CollectionUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.nacos.shaded.com.google.gson.JsonArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.nacos.shaded.com.google.gson.JsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14,10 +16,7 @@ import com.usky.common.core.bean.CommonPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.common.core.exception.BusinessException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.common.mybatis.core.AbstractCrudService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.common.security.utils.SecurityUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.usky.iot.domain.BaseAlarm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.usky.iot.domain.DmpDeviceType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.usky.iot.domain.DmpProductAttribute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.usky.iot.domain.DmpProductInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.iot.domain.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.mapper.DmpProductInfoMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.service.vo.DmpProductInfoRequest; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -251,4 +250,36 @@ public class DmpProductInfoServiceImpl extends AbstractCrudService<DmpProductInf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<Map<String, Object>> collect() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return baseMapper.selectCollect(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<Map<String, Object>> deviceCollect(Integer deptId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Integer> productIds2 = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        QueryWrapper<DmpProductInfo> query2 = Wrappers.query(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        query2.select("id as productId","product_name as productName") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq("delete_flag",0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .eq("tenant_id",SecurityUtils.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Map<String, Object>> productIds1 = this.listMaps(query2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (productIds1.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < productIds1.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                productIds2.add(Integer.valueOf(productIds1.get(i).get("productId").toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Map<String, Object>> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtil.isNotEmpty(productIds2)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            QueryWrapper<DmpDeviceStatus> query1 = Wrappers.query(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            query1.select("product_id as productId","count(*) as count","count(device_status != 1) as " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "faultCount") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .in("product_id",productIds2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .groupBy("product_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            list = dmpDeviceStatusService.listMaps(query1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int l = 0; l < productIds1.size(); l++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (int j = 0; j < list.size(); j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (productIds1.get(l).get("productId").equals(list.get(j).get("productId"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        list.get(j).put("productName",productIds1.get(l).get("productName")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |