Parcourir la source

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

James il y a 1 an
Parent
commit
cbdb2d3e04
17 fichiers modifiés avec 125 ajouts et 37 suppressions
  1. 1 4
      service-backend/service-backend-api/src/main/java/com/usky/backend/client/DataQueryClient.java
  2. 6 5
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/LastResultVo.java
  3. 2 9
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/api/DataQueryApi.java
  4. 6 5
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java
  5. 10 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseGgpFacilityController.java
  6. 1 8
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DeviceHttpController.java
  7. 7 2
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpDeviceInfoController.java
  8. 4 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/TaskController.java
  9. 6 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/DmpProductInfo.java
  10. 3 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseGgpFacilityService.java
  11. 1 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpDeviceInfoService.java
  12. 3 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpDeviceTypeService.java
  13. 29 4
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseGgpFacilityServiceImpl.java
  14. 3 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java
  15. 12 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceTypeServiceImpl.java
  16. 15 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpProductInfoServiceImpl.java
  17. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseFacilityDeviceVO.java

+ 1 - 4
service-backend/service-backend-api/src/main/java/com/usky/backend/client/DataQueryClient.java

@@ -14,9 +14,6 @@ import java.util.List;
 @FeignClient(contextId = "dataQueryClient", value = "usky-backend")
 public interface DataQueryClient {
 
-    @PostMapping("/last")
-    ApiResult<List<LastResultVo>> last(@RequestBody LastQueryVo lastQueryVo);
-
     @GetMapping("/status")
-    public ApiResult<List<StatusVO>> status();
+    List<StatusVO> status();
 }

+ 6 - 5
service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/LastResultVo.java

@@ -4,6 +4,7 @@ import com.usky.backend.domain.MetricItemVo;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.List;
 
 @Data
@@ -11,13 +12,13 @@ public class LastResultVo implements Serializable {
 
     private static final long serialVersionUID = 8837428366010205859L;
 
-    private String deviceId;
     private String metric;
-    private List<MetricItemVo> metricItems;
+    private LocalDateTime timestamp;
+    private Object value;
 
-    public LastResultVo(String deviceId, String metric, List<MetricItemVo> metricItems) {
-        this.deviceId = deviceId;
+    public LastResultVo(String metric, LocalDateTime timestamp, Object value) {
         this.metric = metric;
-        this.metricItems = metricItems;
+        this.timestamp = timestamp;
+        this.value = value;
     }
 }

+ 2 - 9
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/api/DataQueryApi.java

@@ -19,22 +19,15 @@ import java.util.List;
  */
 @RestController
 @Api(tags = "数据统一查询RPC")
-@RequestMapping("/dataQueryApi")
 public class DataQueryApi implements DataQueryClient {
 
     @Autowired
     private DataQueryService dataQueryService;
 
     @Override
-    public ApiResult<List<LastResultVo>> last(LastQueryVo lastQueryVo) {
-        List<LastResultVo> last = dataQueryService.last(lastQueryVo);
-        return ApiResult.success(last);
-    }
-
-    @Override
-    public ApiResult<List<StatusVO>> status(){
+    public List<StatusVO> status(){
         List<StatusVO> list = dataQueryService.status();
-        return ApiResult.success(list);
+        return list;
     }
 
 }

+ 6 - 5
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.backend.domain.*;
 import com.usky.backend.domain.request.HistoryQueryVo;
@@ -12,6 +13,7 @@ import com.usky.backend.domain.request.LastQueryVo;
 import com.usky.backend.domain.response.HistoryResultVo;
 import com.usky.backend.domain.response.LastResultVo;
 import com.usky.backend.service.*;
+import net.sf.ehcache.search.expression.IsNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -242,11 +244,10 @@ public class DataQueryServiceImpl implements DataQueryService {
                     .eq(DataRealTime::getDeviceId,lastQueryVo.getDeviceId())
                     .eq(DataRealTime::getAttributeName,items.get(i));
             DataRealTime one = dataRealTimeService.getOne(queryWrapper);
-            List<MetricItemVo> list1 = new ArrayList<>();
-            MetricItemVo metric = new MetricItemVo(one.getDataTime(),one.getAttributeData());
-            list1.add(metric);
-            LastResultVo lastResultVo = new LastResultVo(lastQueryVo.getDeviceId(),items.get(i),list1);
-            list.add(lastResultVo);
+            if(one != null){
+                LastResultVo lastResultVo = new LastResultVo(items.get(i),one.getDataTime(),one.getAttributeData());
+                list.add(lastResultVo);
+            }
         }
 
         return list;

+ 10 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseGgpFacilityController.java

@@ -69,6 +69,16 @@ public class BaseGgpFacilityController {
     }
 
 
+    /**
+     * 设备关联设施信息查询
+     * @param deviceId
+     * @return
+     */
+    @GetMapping("/facilityDeviceList")
+    public ApiResult<List<BaseFacilityDeviceVO>> facilityDeviceList(@RequestParam(value = "deviceId") String deviceId)
+    {
+        return ApiResult.success(baseGgpFacilityService.facilityDeviceList(deviceId));
+    }
 
     /**
      * 删除

+ 1 - 8
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DeviceHttpController.java

@@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 //import com.usky.backend.client.DataQueryClient;
 //import com.usky.backend.domain.StatusVO;
-//import com.usky.backend.domain.request.LastQueryVo;
-//import com.usky.backend.domain.response.LastResultVo;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.iot.domain.DmpDeviceStatus;
 import com.usky.iot.service.DmpDeviceStatusService;
@@ -30,14 +28,9 @@ public class DeviceHttpController {
 //    @Autowired
 //    private DmpDeviceStatusService dmpDeviceStatusService;
 //
-//    @PostMapping("/last")
-//    public ApiResult<List<LastResultVo>> lastDeviceInfo(@RequestBody LastQueryVo lastQueryVO) {
-//        return dataQueryClient.last(lastQueryVO);
-//    }
-//
 //    @GetMapping("/status")
 //    public ApiResult<Void> status(){
-//         List<StatusVO> list = dataQueryClient.status().getData();
+//         List<StatusVO> list = dataQueryClient.status();
 //         if(CollectionUtils.isNotEmpty(list)){
 //             for(int i=0;i<list.size();i++){
 //                 String date = list.get(i).getTime().substring(1,10);

+ 7 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpDeviceInfoController.java

@@ -1,16 +1,23 @@
 package com.usky.iot.controller.web;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.iot.domain.BaseFacilityDevice;
 import com.usky.iot.domain.DmpDeviceInfo;
 import com.usky.iot.service.DmpDeviceInfoService;
+import com.usky.iot.service.vo.BaseFacilityDeviceVO;
 import com.usky.iot.service.vo.DmpDeviceInfoRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 设备信息表
@@ -59,8 +66,6 @@ public class DmpDeviceInfoController {
         return ApiResult.success(dmpDeviceInfoService.page(dmpDeviceInfoRequest));
     }
 
-
-
     /**
      * 删除记录
      */

+ 4 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/TaskController.java

@@ -16,10 +16,14 @@ public class TaskController {
     @Autowired
     private DmpDataOverviewJob dmpDataOverviewJob;
 
+//    @Autowired
+//    private DeviceHttpController deviceHttpController;
+
     @Scheduled(cron = "0 0 1 * * ? ") //每天凌晨1点执行
     public void task() {
         System.out.println(Thread.currentThread().getName() + "定时任务执行中");
         dmpDataOverviewJob.execute();
+//        deviceHttpController.status();
     }
 
 }

+ 6 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/DmpProductInfo.java

@@ -153,4 +153,10 @@ public class DmpProductInfo implements Serializable {
      */
     @TableField(exist = false)
     private Integer serviceStatusCount;
+
+    /**
+     * 类型图片路径
+     */
+    @TableField(exist = false)
+    private String typeImg;
 }

+ 3 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseGgpFacilityService.java

@@ -5,6 +5,7 @@ import com.usky.iot.domain.BaseBuild;
 import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.iot.domain.DmpDeviceInfo;
+import com.usky.iot.service.vo.BaseFacilityDeviceVO;
 import com.usky.iot.service.vo.BaseGgpFacilityExportVo;
 import com.usky.iot.service.vo.BaseGgpFacilityRequest;
 import com.usky.iot.service.vo.BaseGgpFacilityVO;
@@ -26,6 +27,8 @@ public interface BaseGgpFacilityService extends CrudService<BaseGgpFacility> {
 
     CommonPage<BaseGgpFacility> page(BaseGgpFacilityRequest baseGgpFacilityRequest);
 
+    List<BaseFacilityDeviceVO> facilityDeviceList(String deviceId);
+
     boolean remove(Integer id);
 
     List<BaseGgpFacilityExportVo> recordLsitExport(BaseGgpFacilityRequest baseGgpFacilityRequest);

+ 1 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpDeviceInfoService.java

@@ -3,6 +3,7 @@ package com.usky.iot.service;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.iot.domain.DmpDeviceInfo;
+import com.usky.iot.service.vo.BaseFacilityDeviceVO;
 import com.usky.iot.service.vo.DmpDeviceInfoRequest;
 import org.springframework.web.multipart.MultipartFile;
 

+ 3 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpDeviceTypeService.java

@@ -5,6 +5,7 @@ import com.usky.iot.domain.DmpDeviceType;
 import com.usky.common.mybatis.core.CrudService;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -25,4 +26,6 @@ public interface DmpDeviceTypeService extends CrudService<DmpDeviceType> {
 
     CommonPage<DmpDeviceType> getDeviceTypeList(String typeCode, String typeName, Integer pageNum, Integer pageSize);
 
+    List<Map<String, Object>> getDeviceTypeImges(List<Integer> deviceTypes);
+
 }

+ 29 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseGgpFacilityServiceImpl.java

@@ -14,10 +14,9 @@ import com.usky.iot.mapper.BaseFacilityTypeMapper;
 import com.usky.iot.mapper.BaseGgpFacilityMapper;
 import com.usky.iot.service.*;
 import com.usky.common.mybatis.core.AbstractCrudService;
-import com.usky.iot.service.vo.BaseGgpFacilityExportVo;
-import com.usky.iot.service.vo.BaseGgpFacilityRequest;
-import com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO;
-import com.usky.iot.service.vo.BaseGgpFacilityVO;
+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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -82,6 +81,32 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
     }
 
+    @Override
+    public List<BaseFacilityDeviceVO> facilityDeviceList(String deviceId){
+        List<BaseFacilityDeviceVO> list = new ArrayList<>();
+        LambdaQueryWrapper<BaseFacilityDevice> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseFacilityDevice::getDeviceId,deviceId);
+        List<BaseFacilityDevice> list1 = baseFacilityDeviceService.list(queryWrapper);
+        if(CollectionUtils.isNotEmpty(list1)){
+            List<Integer> facilityIds = new ArrayList<>();
+            for(int i=0;i<list1.size();i++){
+                facilityIds.add(list1.get(i).getFacilityId());
+            }
+            LambdaQueryWrapper<BaseGgpFacility> queryWrapper1 = Wrappers.lambdaQuery();
+            queryWrapper1.select(BaseGgpFacility::getId,BaseGgpFacility::getFacilityName,BaseGgpFacility::getAddress)
+                    .in(BaseGgpFacility::getId,facilityIds);
+            List<BaseGgpFacility> list2 = this.list(queryWrapper1);
+            if(CollectionUtils.isNotEmpty(list2)){
+                for(int i=0;i<list2.size();i++){
+                    BaseFacilityDeviceVO facilityDeviceVO = new BaseFacilityDeviceVO(list2.get(i).getId(),list2.get(i).getFacilityName(),list2.get(i).getAddress());
+                    list.add(facilityDeviceVO);
+                }
+            }
+        }
+
+        return list;
+    }
+
     @Override
     public boolean remove(Integer id) {
         return this.removeById(id);

+ 3 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java

@@ -19,12 +19,15 @@ import com.usky.common.core.exception.BusinessException;
 import com.usky.common.core.util.BeanMapperUtils;
 import com.usky.common.core.util.UUIDUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.common.security.utils.SecurityUtils;
+import com.usky.iot.domain.BaseFacilityDevice;
 import com.usky.iot.domain.DmpDeviceInfo;
 import com.usky.iot.domain.DmpDeviceStatus;
 import com.usky.iot.mapper.DmpDeviceInfoMapper;
 import com.usky.iot.service.DmpDeviceInfoService;
 import com.usky.iot.service.DmpDeviceStatusService;
+import com.usky.iot.service.vo.BaseFacilityDeviceVO;
 import com.usky.iot.service.vo.DmpDeviceExcelVO;
 import com.usky.iot.service.vo.DmpDeviceExportVO;
 import com.usky.iot.service.vo.DmpDeviceInfoRequest;

+ 12 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceTypeServiceImpl.java

@@ -1,7 +1,9 @@
 package com.usky.iot.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 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.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -9,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.security.utils.SecurityUtils;
+import com.usky.iot.domain.DmpDeviceStatus;
 import com.usky.iot.domain.DmpDeviceType;
 import com.usky.iot.domain.DmpProductAttribute;
 import com.usky.iot.mapper.DmpDeviceTypeMapper;
@@ -20,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -74,4 +78,12 @@ public class DmpDeviceTypeServiceImpl extends AbstractCrudService<DmpDeviceTypeM
         page = this.page(page, queryWrapper);
         return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
     }
+
+    @Override
+    public List<Map<String, Object>> getDeviceTypeImges(List<Integer> deviceTypes) {
+        QueryWrapper<DmpDeviceType> query = Wrappers.query();
+        query.select("type_img as typeImg","type_code as deviceType")
+                .in(CollectionUtil.isNotEmpty(deviceTypes),"type_code",deviceTypes);
+        return this.listMaps(query);
+    }
 }

+ 15 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpProductInfoServiceImpl.java

@@ -12,6 +12,7 @@ import com.usky.iot.domain.DmpProductInfo;
 import com.usky.iot.mapper.DmpProductInfoMapper;
 import com.usky.iot.service.DmpDeviceInfoService;
 import com.usky.iot.service.DmpDeviceStatusService;
+import com.usky.iot.service.DmpDeviceTypeService;
 import com.usky.iot.service.DmpProductInfoService;
 import com.usky.iot.service.vo.DmpProductInfoRequest;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +38,10 @@ public class DmpProductInfoServiceImpl extends AbstractCrudService<DmpProductInf
 
     @Autowired
     private DmpDeviceStatusService dmpDeviceStatusService;
+
+    @Autowired
+    private DmpDeviceTypeService dmpDeviceTypeService;
+
     @Override
     public boolean add(DmpProductInfo dmpProductInfo) {
         if (checkNameUnique(dmpProductInfo)){
@@ -76,8 +81,10 @@ public class DmpProductInfoServiceImpl extends AbstractCrudService<DmpProductInf
                 .eq(DmpProductInfo::getDeleteFlag,0);
         List<DmpProductInfo> records = this.list(lambdaQuery);
         List<Integer> productIds = records.stream().map(DmpProductInfo::getId).collect(Collectors.toList());
+        List<Integer> deviceTypes = records.stream().map(DmpProductInfo::getDeviceType).collect(Collectors.toList());
         List<Map<String, Object>> maps = dmpDeviceInfoService.deviceCollect(productIds);
         List<Map<String, Object>> collectByProduct = dmpDeviceStatusService.getCollectByProduct(productIds);
+        List<Map<String, Object>> imges = dmpDeviceTypeService.getDeviceTypeImges(deviceTypes);
 
 //        maps.forEach(s -> {enhanceByDevice(records,s);});
 //        collectByProduct.forEach(s -> {enhanceByDeviceStatus(records,s);});
@@ -102,6 +109,14 @@ public class DmpProductInfoServiceImpl extends AbstractCrudService<DmpProductInf
                         }
                     }
                 }
+                if(imges.size()>0){
+                    for(int j=0;j<imges.size();j++){
+                        if(Integer.parseInt(imges.get(j).get("deviceType").toString())==(records.get(i).getDeviceType())){
+                            records.get(i).setTypeImg(imges.get(j).get("typeImg").toString());
+                        }
+                    }
+
+                }
             }
 
         }

+ 16 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseFacilityDeviceVO.java

@@ -0,0 +1,16 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BaseFacilityDeviceVO {
+    private Integer facilityId;
+    private String facilityName;
+    private String address;
+
+    public BaseFacilityDeviceVO(Integer id,String name,String addr){
+        this.facilityId = id;
+        this.facilityName = name;
+        this.address = addr;
+    }
+}