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