Sfoglia il codice sorgente

Merge branch 'usky-zyj' into server-165

james 14 ore fa
parent
commit
fe1642e5e7

+ 2 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/DmpProductInfoMapper.java

@@ -21,4 +21,6 @@ public interface DmpProductInfoMapper extends CrudMapper<DmpProductInfo> {
 
 
     List<Map<String,Object>> selectCollect(@Param("tenantId") Integer tenantId);
+
+    List<Map<String, Object>> selectDeviceTypeByProductIds(@Param("productIds") List<Integer> productIds);
 }

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

@@ -38,6 +38,7 @@ import com.usky.iot.domain.*;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.iot.mapper.DmpDeviceInfoMapper;
 import com.usky.iot.mapper.DmpProductAttributeMapper;
+import com.usky.iot.mapper.DmpProductInfoMapper;
 import com.usky.iot.service.*;
 import com.usky.iot.service.config.DeviceOperate;
 import com.usky.iot.service.enums.TopicInfo;
@@ -106,7 +107,7 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
     private DeviceOperate deviceOperate;
 
     @Autowired
-    private DmpProductInfoService dmpProductInfoService;
+    private DmpProductInfoMapper dmpProductInfoMapper;
 
     @Autowired
     private DmpDeviceTypeService dmpDeviceTypeService;
@@ -1255,17 +1256,16 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
         if (CollectionUtil.isEmpty(productIds)) {
             return Collections.emptyMap();
         }
-        LambdaQueryWrapper<DmpProductInfo> productQuery = Wrappers.lambdaQuery();
-        productQuery.select(DmpProductInfo::getId, DmpProductInfo::getDeviceType)
-                .in(DmpProductInfo::getId, productIds)
-                .eq(DmpProductInfo::getDeleteFlag, 0);
-        List<DmpProductInfo> products = dmpProductInfoService.list(productQuery);
+        List<Map<String, Object>> products = dmpProductInfoMapper.selectDeviceTypeByProductIds(productIds);
         if (CollectionUtil.isEmpty(products)) {
             return Collections.emptyMap();
         }
 
         Map<Integer, Integer> productDeviceTypeMap = products.stream()
-                .collect(Collectors.toMap(DmpProductInfo::getId, DmpProductInfo::getDeviceType, (a, b) -> a));
+                .collect(Collectors.toMap(
+                        map -> Integer.valueOf(map.get("id").toString()),
+                        map -> Integer.valueOf(map.get("deviceType").toString()),
+                        (a, b) -> a));
 
         Set<String> typeCodes = productDeviceTypeMap.values().stream()
                 .filter(Objects::nonNull)

+ 10 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpProductInfoMapper.xml

@@ -43,4 +43,14 @@
         group by product_name
     </select>
 
+    <select id="selectDeviceTypeByProductIds" resultType="java.util.Map">
+        select id, device_type as deviceType
+        from dmp_product
+        where delete_flag = 0
+        and id in
+        <foreach collection="productIds" item="productId" open="(" separator="," close=")">
+            #{productId}
+        </foreach>
+    </select>
+
 </mapper>