Переглянути джерело

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

James 1 рік тому
батько
коміт
086d690dd1

+ 4 - 0
service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataTVRequestVO.java

@@ -19,4 +19,8 @@ public class DataTVRequestVO implements Serializable {
      * 设备类型
      */
     private Integer deviceType;
+    /**
+     * 设备Id
+     */
+    private String deviceId;
 }

+ 33 - 0
service-backend/service-backend-api/src/main/java/com/usky/backend/domain/ProductTVAttributeVO.java

@@ -0,0 +1,33 @@
+package com.usky.backend.domain;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ProductTVAttributeVO implements Serializable {
+    /**
+     * 产品ID
+     */
+    private Integer productId;
+
+    /**
+     * 属性标识
+     */
+    private String attributeCode;
+
+    /**
+     * 属性名称
+     */
+    private String attributeName;
+
+    /**
+     * 单位
+     */
+    private String attributeUnit;
+
+    /**
+     * 产品编码
+     */
+    private String productCode;
+}

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

@@ -2,6 +2,7 @@ package com.usky.iot.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.backend.domain.ProductTVAttributeVO;
 import com.usky.common.mybatis.core.CrudMapper;
 import com.usky.iot.domain.DmpDeviceInfo;
 import com.usky.iot.domain.DmpProductInfo;
@@ -24,4 +25,6 @@ public interface DmpDeviceInfoMapper extends CrudMapper<DmpDeviceInfo> {
     List<DmpProductInfo> getProductInfo(String productCode);
 
     Page<DmpDeviceInfo> page(IPage<DmpDeviceInfo> page, @Param("ar")DmpDeviceInfoRequest dmpDeviceInfoRequest, @Param("tenantId") Integer tenantId);
+
+    List<ProductTVAttributeVO> attributeList(@Param("procutIdList") List<Integer> productIdList);
 }

+ 7 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java

@@ -582,6 +582,7 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
         queryWrapper.select(DmpDeviceInfo::getDeviceId,DmpDeviceInfo::getDeviceName,DmpDeviceInfo::getDeviceType,DmpDeviceInfo::getInstallAddress)
                 .eq(DmpDeviceInfo::getTenantId,SecurityUtils.getTenantId())
                 .eq(requestVO.getDeviceType() != null,DmpDeviceInfo::getDeviceType,requestVO.getDeviceType())
+                .eq(StringUtils.isNotBlank(requestVO.getDeviceId()),DmpDeviceInfo::getDeviceId,requestVO.getDeviceId())
                 .orderByDesc(DmpDeviceInfo::getId);
         page = this.page(page,queryWrapper);
         if(page.getSize() <=0){
@@ -590,13 +591,15 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
 
         if(page.getRecords().size() > 0){
             List<String> deviceIdList = new ArrayList<>();
+            List<Integer> productIdList = new ArrayList<>();
             for(int i=0;i<page.getRecords().size();i++){
                 deviceIdList.add(page.getRecords().get(i).getDeviceId());
+                if(!productIdList.contains(page.getRecords().get(i).getProductId())){
+                    productIdList.add(page.getRecords().get(i).getProductId());
+                }
             }
 
-            QueryWrapper<DmpProductAttribute> query = new QueryWrapper<>();
-            query.select("DISTINCT attribute_code,attribute_name,attribute_unit");
-            List<DmpProductAttribute> attributeVOList = dmpProductAttributeService.list(query);
+            List<ProductTVAttributeVO> attributeVOList = baseMapper.attributeList(productIdList);
 
             if(deviceIdList.size() > 0){
                 List<DataRealTimeResponseVO> dataRealList = deviceDataClient.data(null,deviceIdList);
@@ -616,7 +619,7 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
                                 attributeVO.setTime(""+dataRealList.get(j).getDataTime());
                                 if((attributeVOList.size() >0)){
                                     for (int k = 0; k < attributeVOList.size(); k++) {
-                                        if(dataRealList.get(j).getAttributeName().equals(attributeVOList.get(k).getAttributeCode())){
+                                        if((dataRealList.get(j).getProductCode().equals(attributeVOList.get(k).getProductCode())) && (dataRealList.get(j).getAttributeName().equals(attributeVOList.get(k).getAttributeCode()))){
                                             if(Objects.nonNull(attributeVOList.get(k).getAttributeName())){
                                                 attributeVO.setName(attributeVOList.get(k).getAttributeName());
                                             }

+ 11 - 6
service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpDeviceInfoMapper.xml

@@ -57,15 +57,20 @@
         </where>
     </select>
 
-    <select id="getProductInfo" resultType="com.usky.iot.domain.DmpProductInfo">
-        select dpi.*
-        from dmp_product dpi
+    <select id="attributeList" resultType="com.usky.backend.domain.ProductTVAttributeVO">
+        select dpa.product_id as productId,dpa.attribute_code as attributeCode,dpa.attribute_name as attributeName,dpa.attribute_unit as attributeUnit,dpt.product_code as productCode
+        from dmp_product_attribute dpa
+        left join dmp_product dpt
+        on dpa.product_id = dpt.id
         <where>
-            <if test="productCode != null">
-                and dpi.product_code = #{productCode}
+            <if test="procutIdList != null and procutIdList.size() > 0">
+                AND dpa.product_id in
+                <foreach item="item" collection="procutIdList" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
             </if>
             <if test="1 == 1">
-                and dpi.delete_flag = 0
+                and dpa.delete_flag = 0
             </if>
         </where>
     </select>