Parcourir la source

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

James il y a 1 an
Parent
commit
0af344aa7d

+ 13 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildFacilityController.java

@@ -5,15 +5,14 @@ import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.BaseBuildFacility;
 import com.usky.iot.service.BaseBuildFacilityService;
-import com.usky.iot.service.vo.BaseBuildFacilityRequestVO;
-import com.usky.iot.service.vo.BuildFacilityRequestVO;
-import com.usky.iot.service.vo.BuildFacilityResponeVO;
-import com.usky.iot.service.vo.FacilityDeviceStatusVO;
+import com.usky.iot.service.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import org.springframework.stereotype.Controller;
 
+import java.util.List;
+
 /**
  * <p>
  * 建筑设施 前端控制器
@@ -81,6 +80,16 @@ public class BaseBuildFacilityController {
         return ApiResult.success(baseBuildFacilityService.deviceList(requestVO));
     }
 
+    /**
+     * 建筑设施设备详情信息
+     * @param queryVO
+     * @return
+     */
+    @PostMapping("facilityDeviceInfo")
+    ApiResult<List<FacilityDeviceResultVO>> facilityDeviceInfo(@RequestBody FacilityDeviceQueryVO queryVO){
+        return ApiResult.success(baseBuildFacilityService.facilityDeviceInfo(queryVO));
+    }
+
     /**
      * 建筑设施设备绑定
      * @return

+ 5 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseBuildFacilityService.java

@@ -3,12 +3,11 @@ package com.usky.iot.service;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.BaseBuildFacility;
 import com.usky.common.mybatis.core.CrudService;
-import com.usky.iot.service.vo.BaseBuildFacilityRequestVO;
-import com.usky.iot.service.vo.BuildFacilityRequestVO;
-import com.usky.iot.service.vo.BuildFacilityResponeVO;
-import com.usky.iot.service.vo.FacilityDeviceStatusVO;
+import com.usky.iot.service.vo.*;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 /**
  * <p>
  * 建筑设施 服务类
@@ -29,5 +28,7 @@ public interface BaseBuildFacilityService extends CrudService<BaseBuildFacility>
 
     CommonPage<BuildFacilityResponeVO> deviceList(BuildFacilityRequestVO requestVO);
 
+    List<FacilityDeviceResultVO> facilityDeviceInfo(FacilityDeviceQueryVO queryVO);
+
     void setStatus(FacilityDeviceStatusVO statusVO);
 }

+ 138 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildFacilityServiceImpl.java

@@ -11,12 +11,11 @@ import com.usky.common.core.exception.BusinessException;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.iot.domain.*;
 import com.usky.iot.mapper.BaseBuildFacilityMapper;
+import com.usky.iot.mapper.BaseBuildFacilityTypeMapper;
+import com.usky.iot.mapper.DmpProductAttributeMapper;
 import com.usky.iot.service.*;
 import com.usky.common.mybatis.core.AbstractCrudService;
-import com.usky.iot.service.vo.BaseBuildFacilityRequestVO;
-import com.usky.iot.service.vo.BuildFacilityRequestVO;
-import com.usky.iot.service.vo.BuildFacilityResponeVO;
-import com.usky.iot.service.vo.FacilityDeviceStatusVO;
+import com.usky.iot.service.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -50,6 +49,15 @@ public class BaseBuildFacilityServiceImpl extends AbstractCrudService<BaseBuildF
     @Autowired
     private DmpDeviceTypeService dmpDeviceTypeService;
 
+    @Autowired
+    private BaseBuildFacilityMapper baseBuildFacilityMapper;
+
+    @Autowired
+    private BaseBuildFacilityTypeMapper baseBuildFacilityTypeMapper;
+
+    @Autowired
+    private DmpProductAttributeMapper dmpProductAttributeMapper;
+
     @Override
     public void add(BaseBuildFacility baseBuildFacility){
         baseBuildFacility.setFacilityNum("jzss-"+new SimpleDateFormat("yyyyMMddHHmmssSSS").format(Calendar.getInstance().getTime()));
@@ -211,6 +219,132 @@ public class BaseBuildFacilityServiceImpl extends AbstractCrudService<BaseBuildF
         return new CommonPage<>(list,page.getTotal(),page.getSize(),page.getCurrent());
     }
 
+    @Override
+    public List<FacilityDeviceResultVO> facilityDeviceInfo(FacilityDeviceQueryVO queryVO){
+        List<FacilityDeviceResultVO> list = new ArrayList<>();
+        List<String> facilityList = queryVO.getFacilityNum();
+        if(facilityList.size() > 0){
+            List<String> facilityTypeList = new ArrayList<>();
+            List<String> deviceIdList = new ArrayList<>();
+            List<Integer> productIdList = new ArrayList<>();
+            List<ProductAttributeListVO> productAttributeList = new ArrayList<>();
+            LambdaQueryWrapper<BaseBuildFacility> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.in(BaseBuildFacility::getFacilityNum,facilityList)
+                    .eq(BaseBuildFacility::getDeleteFlag,0)
+                    .eq(BaseBuildFacility::getTenantId,SecurityUtils.getTenantId());
+            Integer tenantId = SecurityUtils.getTenantId();
+            List<BaseBuildFacility> list1 = this.list(queryWrapper);
+            if(CollectionUtils.isNotEmpty(list1)){
+                for (int i = 0; i < list1.size(); i++) {
+                    if(facilityTypeList.contains(list1.get(i).getFacilityType())){
+
+                    }else{
+                        facilityTypeList.add(list1.get(i).getFacilityType());
+                    }
+                    deviceIdList.add(list1.get(i).getDeviceId());
+                }
+            }
+            List<BaseBuildFacilityType> baseBuildFacilityTypeList = new ArrayList<>();
+            if(facilityTypeList.size() > 0){
+                LambdaQueryWrapper<BaseBuildFacilityType> queryWrapper1 = Wrappers.lambdaQuery();
+                queryWrapper1.in(BaseBuildFacilityType::getTypeCode,facilityTypeList)
+                        .eq(BaseBuildFacilityType::getTenantId,SecurityUtils.getTenantId());
+                baseBuildFacilityTypeList = baseBuildFacilityTypeMapper.selectList(queryWrapper1);
+            }
+            List<DmpDeviceInfo> deviceInfoList = new ArrayList<>();
+
+            if(deviceIdList.size() > 0){
+                LambdaQueryWrapper<DmpDeviceInfo> queryWrapper1 = Wrappers.lambdaQuery();
+                queryWrapper1.in(DmpDeviceInfo::getDeviceId,deviceIdList)
+                        .eq(DmpDeviceInfo::getDeleteFlag,0)
+                        .eq(DmpDeviceInfo::getTenantId,SecurityUtils.getTenantId());
+                deviceInfoList = dmpDeviceInfoService.list(queryWrapper1);
+                if(CollectionUtils.isNotEmpty(deviceInfoList)){
+                    for (int i = 0; i < deviceInfoList.size(); i++) {
+                        if(productIdList.contains(deviceInfoList.get(i).getProductId())){
+
+                        }else{
+                            productIdList.add(deviceInfoList.get(i).getProductId());
+                        }
+                    }
+                    if(productIdList.size() > 0){
+                        List<ProductAttributeVO> attributeList = new ArrayList<>();
+                        LambdaQueryWrapper<DmpProductAttribute> queryWrapper2 = Wrappers.lambdaQuery();
+                        queryWrapper2.in(DmpProductAttribute::getProductId,productIdList)
+                                .eq(DmpProductAttribute::getDeleteFlag,0)
+                                .eq(DmpProductAttribute::getTenantId,SecurityUtils.getTenantId());
+                        List<DmpProductAttribute> list2 = dmpProductAttributeMapper.selectList(queryWrapper2);
+
+                        if(CollectionUtils.isNotEmpty(list2)){
+                            for (int i = 0; i < deviceInfoList.size(); i++) {
+                                ProductAttributeListVO productAttributeListVO = new ProductAttributeListVO();
+                                productAttributeListVO.setDeviceId(deviceInfoList.get(i).getDeviceId());
+                                for (int j = 0; j < list2.size(); j++) {
+                                    if(deviceInfoList.get(i).getProductId().equals(list2.get(j).getProductId())){
+                                        ProductAttributeVO productAttributeVO = new ProductAttributeVO();
+                                        productAttributeVO.setAttributeName(list2.get(j).getAttributeName());
+                                        productAttributeVO.setAttributeCode(list2.get(j).getAttributeCode());
+                                        productAttributeVO.setAttributeType(list2.get(j).getAttributeType());
+                                        productAttributeVO.setDataType(list2.get(j).getDataType());
+                                        productAttributeVO.setAttributeLength(list2.get(j).getAttributeLength());
+                                        productAttributeVO.setAttributeUnit(list2.get(j).getAttributeUnit());
+                                        attributeList.add(productAttributeVO);
+
+                                    }
+                                }
+                                productAttributeListVO.setAttributeList(attributeList);
+                                productAttributeList.add(productAttributeListVO);
+                            }
+
+                        }
+
+                    }
+                }
+            }
+
+            LambdaQueryWrapper<BaseBuildFacility> queryWrapper1 = Wrappers.lambdaQuery();
+            queryWrapper1.in(BaseBuildFacility::getFacilityNum,facilityList)
+                    .eq(BaseBuildFacility::getDeleteFlag,0)
+                    .eq(BaseBuildFacility::getTenantId,SecurityUtils.getTenantId());
+            List<BaseBuildFacility> list2 = baseBuildFacilityMapper.selectList(queryWrapper);
+            if(CollectionUtils.isNotEmpty(list2)){
+                for (int i = 0; i < list2.size(); i++) {
+                    FacilityDeviceResultVO resultVO = new FacilityDeviceResultVO();
+                    resultVO.setFacilityNum(list2.get(i).getFacilityNum());
+                    resultVO.setFacilityName(list2.get(i).getFacilityName());
+                    resultVO.setFacilityType(list2.get(i).getFacilityType());
+                    resultVO.setFacilityAddress(list2.get(i).getAddress());
+                    if(CollectionUtils.isNotEmpty(baseBuildFacilityTypeList)){
+                        for (int j = 0; j < baseBuildFacilityTypeList.size(); j++) {
+                            if(list2.get(i).getFacilityType().equals(baseBuildFacilityTypeList.get(j).getTypeCode())){
+                                resultVO.setTypeImg(baseBuildFacilityTypeList.get(j).getTypeImg());
+                            }
+
+                        }
+                    }
+
+                    if(CollectionUtils.isNotEmpty(deviceInfoList)){
+                        for (int j = 0; j < deviceInfoList.size(); j++) {
+                            if(list2.get(i).getDeviceId().equals(deviceInfoList.get(j).getDeviceId())){
+                                resultVO.setDeviceName(deviceInfoList.get(j).getDeviceName());
+                                resultVO.setDeviceAddress(deviceInfoList.get(j).getInstallAddress());
+                            }
+                        }
+                    }
+                    if(CollectionUtils.isNotEmpty(productAttributeList)){
+                        for (int j = 0; j < productAttributeList.size(); j++) {
+                            if(list2.get(i).getDeviceId().equals(productAttributeList.get(j).getDeviceId())){
+                                resultVO.setDataField(productAttributeList.get(j).getAttributeList());
+                            }
+                        }
+                    }
+                    list.add(resultVO);
+                }
+            }
+        }
+        return list;
+    }
+
     @Override
     public void setStatus(FacilityDeviceStatusVO statusVO){
         BaseBuildFacility baseBuildFacility = new BaseBuildFacility();

+ 13 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/FacilityDeviceQueryVO.java

@@ -0,0 +1,13 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FacilityDeviceQueryVO {
+    /**
+     * 设施编号
+     */
+    private List<String> facilityNum;
+}

+ 48 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/FacilityDeviceResultVO.java

@@ -0,0 +1,48 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FacilityDeviceResultVO {
+    /**
+     * 设施编号
+     */
+    private String facilityNum;
+
+    /**
+     * 设施名称
+     */
+    private String facilityName;
+
+    /**
+     * 设施类型
+     */
+    private String facilityType;
+
+    /**
+     * 设施安装地址
+     */
+    private String facilityAddress;
+
+    /**
+     * 设施类型图片
+     */
+    private String typeImg;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 设备安装地址
+     */
+    private String deviceAddress;
+
+    /**
+     * 设备属性
+     */
+    private List<ProductAttributeVO> dataField;
+}

+ 18 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/ProductAttributeListVO.java

@@ -0,0 +1,18 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ProductAttributeListVO {
+    /**
+     * 设备Id
+     */
+    private String deviceId;
+
+    /**
+     * 设备属性
+     */
+    private List<ProductAttributeVO> attributeList;
+}

+ 36 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/ProductAttributeVO.java

@@ -0,0 +1,36 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class ProductAttributeVO {
+    /**
+     * 属性名称
+     */
+    private String attributeName;
+
+    /**
+     * 属性标识
+     */
+    private String attributeCode;
+
+    /**
+     * 属性类型;1:必选,2:可选
+     */
+    private Integer attributeType;
+
+    /**
+     * 数据类型(1、数值型 2、字符型 3、bool型)
+     */
+    private Integer dataType;
+
+    /**
+     * 长度
+     */
+    private Integer attributeLength;
+
+    /**
+     * 单位
+     */
+    private String attributeUnit;
+}