Explorar el Código

开发设备管理下区域管理、网关设备界面相关接口

james hace 2 semanas
padre
commit
3dde41b625
Se han modificado 15 ficheros con 337 adiciones y 319 borrados
  1. 2 2
      service-ems/service-ems-biz/src/main/java/com/usky/ems/controller/web/DmpGatewayController.java
  2. 53 53
      service-ems/service-ems-biz/src/main/java/com/usky/ems/controller/web/EmsModelController.java
  3. 1 1
      service-ems/service-ems-biz/src/main/java/com/usky/ems/controller/web/EmsOverviewController.java
  4. 4 4
      service-ems/service-ems-biz/src/main/java/com/usky/ems/domain/BaseArea.java
  5. 0 2
      service-ems/service-ems-biz/src/main/java/com/usky/ems/domain/BaseSpace.java
  6. 1 0
      service-ems/service-ems-biz/src/main/java/com/usky/ems/domain/DmpGateway.java
  7. 21 21
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/EmsModelService.java
  8. 1 1
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/EmsOverviewService.java
  9. 0 1
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/BaseSpaceServiceImpl.java
  10. 15 12
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/DmpGatewayServiceImpl.java
  11. 55 7
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsModelServiceImpl.java
  12. 163 188
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsOverviewServiceImpl.java
  13. 19 27
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsReportServiceImpl.java
  14. 1 0
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/vo/DmpGatewayDetailResponse.java
  15. 1 0
      service-ems/service-ems-biz/src/main/java/com/usky/ems/service/vo/DmpGatewayListItem.java

+ 2 - 2
service-ems/service-ems-biz/src/main/java/com/usky/ems/controller/web/DmpGatewayController.java

@@ -24,8 +24,8 @@ public class DmpGatewayController {
     /**
      * 分页列表
      */
-    @GetMapping("/list")
-    public ApiResult<CommonPage<DmpGatewayListItem>> gatewayList(DmpGatewayPageRequest request) {
+    @PostMapping("/list")
+    public ApiResult<CommonPage<DmpGatewayListItem>> gatewayList(@RequestBody DmpGatewayPageRequest request) {
         return ApiResult.success(dmpGatewayService.pageGateways(request));
     }
 

+ 53 - 53
service-ems/service-ems-biz/src/main/java/com/usky/ems/controller/web/EmsModelController.java

@@ -102,59 +102,59 @@ public class EmsModelController {
         return ApiResult.success();
     }
 
-    @PostMapping("/channel")
-    public ApiResult<EmsIdResponse> createChannel(@RequestBody EmsModelSaveRequest request) {
-        Long id = emsModelService.createChannel(request);
-        return ApiResult.success(new EmsIdResponse(id));
-    }
-
-    @PutMapping("/channel/{id}")
-    public ApiResult<Void> updateChannel(@PathVariable Long id, @RequestBody EmsModelSaveRequest request) {
-        emsModelService.updateChannel(id, request);
-        return ApiResult.success();
-    }
-
-    @DeleteMapping("/channel/{id}")
-    public ApiResult<Void> deleteChannel(@PathVariable Long id) {
-        emsModelService.deleteChannel(id);
-        return ApiResult.success();
-    }
-
-    @PostMapping("/device")
-    public ApiResult<EmsIdResponse> createDevice(@RequestBody EmsModelSaveRequest request) {
-        String id = emsModelService.createDevice(request);
-        return ApiResult.success(new EmsIdResponse(id));
-    }
-
-    @PutMapping("/device/{id}")
-    public ApiResult<Void> updateDevice(@PathVariable String id, @RequestBody EmsModelSaveRequest request) {
-        emsModelService.updateDevice(id, request);
-        return ApiResult.success();
-    }
-
-    @DeleteMapping("/device/{id}")
-    public ApiResult<Void> deleteDevice(@PathVariable String id) {
-        emsModelService.deleteDevice(id);
-        return ApiResult.success();
-    }
-
-    @PostMapping("/attribute-point")
-    public ApiResult<EmsIdResponse> createAttributePoint(@RequestBody EmsModelSaveRequest request) {
-        Long id = emsModelService.createAttributePoint(request);
-        return ApiResult.success(new EmsIdResponse(id));
-    }
-
-    @PutMapping("/attribute-point/{id}")
-    public ApiResult<Void> updateAttributePoint(@PathVariable Long id, @RequestBody EmsModelSaveRequest request) {
-        emsModelService.updateAttributePoint(id, request);
-        return ApiResult.success();
-    }
-
-    @DeleteMapping("/attribute-point/{id}")
-    public ApiResult<Void> deleteAttributePoint(@PathVariable Long id) {
-        emsModelService.deleteAttributePoint(id);
-        return ApiResult.success();
-    }
+//    @PostMapping("/channel")
+//    public ApiResult<EmsIdResponse> createChannel(@RequestBody EmsModelSaveRequest request) {
+//        Long id = emsModelService.createChannel(request);
+//        return ApiResult.success(new EmsIdResponse(id));
+//    }
+//
+//    @PutMapping("/channel/{id}")
+//    public ApiResult<Void> updateChannel(@PathVariable Long id, @RequestBody EmsModelSaveRequest request) {
+//        emsModelService.updateChannel(id, request);
+//        return ApiResult.success();
+//    }
+//
+//    @DeleteMapping("/channel/{id}")
+//    public ApiResult<Void> deleteChannel(@PathVariable Long id) {
+//        emsModelService.deleteChannel(id);
+//        return ApiResult.success();
+//    }
+//
+//    @PostMapping("/device")
+//    public ApiResult<EmsIdResponse> createDevice(@RequestBody EmsModelSaveRequest request) {
+//        String id = emsModelService.createDevice(request);
+//        return ApiResult.success(new EmsIdResponse(id));
+//    }
+//
+//    @PutMapping("/device/{id}")
+//    public ApiResult<Void> updateDevice(@PathVariable String id, @RequestBody EmsModelSaveRequest request) {
+//        emsModelService.updateDevice(id, request);
+//        return ApiResult.success();
+//    }
+//
+//    @DeleteMapping("/device/{id}")
+//    public ApiResult<Void> deleteDevice(@PathVariable String id) {
+//        emsModelService.deleteDevice(id);
+//        return ApiResult.success();
+//    }
+//
+//    @PostMapping("/attribute-point")
+//    public ApiResult<EmsIdResponse> createAttributePoint(@RequestBody EmsModelSaveRequest request) {
+//        Long id = emsModelService.createAttributePoint(request);
+//        return ApiResult.success(new EmsIdResponse(id));
+//    }
+//
+//    @PutMapping("/attribute-point/{id}")
+//    public ApiResult<Void> updateAttributePoint(@PathVariable Long id, @RequestBody EmsModelSaveRequest request) {
+//        emsModelService.updateAttributePoint(id, request);
+//        return ApiResult.success();
+//    }
+//
+//    @DeleteMapping("/attribute-point/{id}")
+//    public ApiResult<Void> deleteAttributePoint(@PathVariable Long id) {
+//        emsModelService.deleteAttributePoint(id);
+//        return ApiResult.success();
+//    }
 
     /**
      * 网关-通道-设备树(中间面板)

+ 1 - 1
service-ems/service-ems-biz/src/main/java/com/usky/ems/controller/web/EmsOverviewController.java

@@ -26,7 +26,7 @@ public class EmsOverviewController {
      * 获取项目信息
      */
     @GetMapping("/project")
-    public ApiResult<EmsProjectResponse> getProject(@RequestParam(required = false) Long projectId) {
+    public ApiResult<EmsProjectResponse> getProject(@RequestParam(required = false) Integer projectId) {
         return ApiResult.success(emsOverviewService.getProject(projectId));
     }
 

+ 4 - 4
service-ems/service-ems-biz/src/main/java/com/usky/ems/domain/BaseArea.java

@@ -35,10 +35,10 @@ public class BaseArea implements Serializable {
     private Integer residentPopulation;
     @TableField("tenant_id")
     private Integer tenantId;
-    @TableField("update_by")
-    private String updateBy;
-    @TableField("create_by")
-    private String createBy;
+    @TableField("updated_by")
+    private String updatedBy;
+    @TableField("created_by")
+    private String createdBy;
     @TableField("update_time")
     private LocalDateTime updateTime;
     @TableField("create_time")

+ 0 - 2
service-ems/service-ems-biz/src/main/java/com/usky/ems/domain/BaseSpace.java

@@ -31,8 +31,6 @@ public class BaseSpace implements Serializable {
     @TableField("root_id")
     private Long rootId;
     private String path;
-    @TableField("path_name")
-    private String pathName;
     private Integer deep;
     @TableField("updated_by")
     private String updatedBy;

+ 1 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/domain/DmpGateway.java

@@ -68,4 +68,5 @@ public class DmpGateway implements Serializable {
 
     @TableField("create_time")
     private LocalDateTime createTime;
+    private Integer tenantId;
 }

+ 21 - 21
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/EmsModelService.java

@@ -51,27 +51,27 @@ public interface EmsModelService {
     void updateGateway(String id, EmsModelSaveRequest request);
     /** 网关:删除 */
     void deleteGateway(String id);
-
-    /** 通道:新增 */
-    Long createChannel(EmsModelSaveRequest request);
-    /** 通道:编辑 */
-    void updateChannel(Long id, EmsModelSaveRequest request);
-    /** 通道:删除 */
-    void deleteChannel(Long id);
-
-    /** 设备:新增 */
-    String createDevice(EmsModelSaveRequest request);
-    /** 设备:编辑 */
-    void updateDevice(String id, EmsModelSaveRequest request);
-    /** 设备:删除 */
-    void deleteDevice(String id);
-
-    /** 属性点位:新增 */
-    Long createAttributePoint(EmsModelSaveRequest request);
-    /** 属性点位:编辑 */
-    void updateAttributePoint(Long id, EmsModelSaveRequest request);
-    /** 属性点位:删除 */
-    void deleteAttributePoint(Long id);
+//
+//    /** 通道:新增 */
+//    Long createChannel(EmsModelSaveRequest request);
+//    /** 通道:编辑 */
+//    void updateChannel(Long id, EmsModelSaveRequest request);
+//    /** 通道:删除 */
+//    void deleteChannel(Long id);
+//
+//    /** 设备:新增 */
+//    String createDevice(EmsModelSaveRequest request);
+//    /** 设备:编辑 */
+//    void updateDevice(String id, EmsModelSaveRequest request);
+//    /** 设备:删除 */
+//    void deleteDevice(String id);
+//
+//    /** 属性点位:新增 */
+//    Long createAttributePoint(EmsModelSaveRequest request);
+//    /** 属性点位:编辑 */
+//    void updateAttributePoint(Long id, EmsModelSaveRequest request);
+//    /** 属性点位:删除 */
+//    void deleteAttributePoint(Long id);
 
     /**
      * 网关-通道-设备树(中间面板)

+ 1 - 1
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/EmsOverviewService.java

@@ -15,7 +15,7 @@ public interface EmsOverviewService {
     /**
      * 获取项目信息(当前项目或指定 projectId)
      */
-    EmsProjectResponse getProject(Long projectId);
+    EmsProjectResponse getProject(Integer projectId);
 
     /**
      * 获取项目数据概括(时间维度联动)

+ 0 - 1
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/BaseSpaceServiceImpl.java

@@ -130,7 +130,6 @@ public class BaseSpaceServiceImpl extends AbstractCrudService<BaseSpaceMapper, B
         vo.setType(space.getType());
         vo.setRootId(space.getRootId());
         vo.setPath(space.getPath());
-        vo.setPathName(space.getPathName());
         vo.setDeep(space.getDeep());
         return vo;
     }

+ 15 - 12
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/DmpGatewayServiceImpl.java

@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.core.util.UUIDUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.ems.domain.DmpGateway;
 import com.usky.ems.mapper.DmpGatewayMapper;
 import com.usky.ems.service.DmpGatewayService;
@@ -29,8 +31,12 @@ public class DmpGatewayServiceImpl extends AbstractCrudService<DmpGatewayMapper,
 
     @Override
     public void add(DmpGateway entity) {
-        if (!StringUtils.hasText(entity.getDeviceUuid()) || !StringUtils.hasText(entity.getName())) {
-            throw new BusinessException("新增失败,设备 UUID 与名称不能为空");
+        if (!StringUtils.hasText(entity.getDeviceUuid())) {
+            entity.setDeviceUuid(UUIDUtils.uuid().substring(0, 16));
+        }
+
+        if (!StringUtils.hasText(entity.getName())) {
+            throw new BusinessException("新增失败,名称不能为空");
         }
         if (deviceUuidExists(entity.getDeviceUuid(), null)) {
             throw new BusinessException("新增失败,设备 UUID 已存在");
@@ -42,8 +48,11 @@ public class DmpGatewayServiceImpl extends AbstractCrudService<DmpGatewayMapper,
         if (entity.getVirtualDevice() == null) {
             entity.setVirtualDevice(0);
         }
+        entity.setCreatedBy(SecurityUtils.getUsername());
         entity.setCreateTime(now);
+        entity.setUpdatedBy(SecurityUtils.getUsername());
         entity.setUpdateTime(now);
+        entity.setTenantId(SecurityUtils.getTenantId());
         this.save(entity);
     }
 
@@ -54,16 +63,8 @@ public class DmpGatewayServiceImpl extends AbstractCrudService<DmpGatewayMapper,
         }
         DmpGateway existing = this.getById(entity.getId());
         Optional.ofNullable(existing).orElseThrow(() -> new BusinessException("网关不存在"));
-        String uuid = StringUtils.hasText(entity.getDeviceUuid()) ? entity.getDeviceUuid() : existing.getDeviceUuid();
-        String name = StringUtils.hasText(entity.getName()) ? entity.getName() : existing.getName();
-        if (!StringUtils.hasText(uuid) || !StringUtils.hasText(name)) {
-            throw new BusinessException("修改失败,设备 UUID 与名称不能为空");
-        }
-        if (deviceUuidExists(uuid, entity.getId())) {
-            throw new BusinessException("修改失败,设备 UUID 已存在");
-        }
-        entity.setDeviceUuid(uuid);
-        entity.setName(name);
+
+        entity.setUpdatedBy(SecurityUtils.getUsername());
         entity.setUpdateTime(LocalDateTime.now());
         this.updateById(entity);
     }
@@ -126,6 +127,7 @@ public class DmpGatewayServiceImpl extends AbstractCrudService<DmpGatewayMapper,
         item.setIp(g.getIp());
         item.setPort(g.getPort());
         item.setCommunicationStatus(g.getCommStatus());
+        item.setInstallAddress(g.getInstallAddress());
         item.setOnlineTime(g.getOnlineTime());
         item.setOfflineTime(g.getOfflineTime());
         item.setVirtualDevice(g.getVirtualDevice());
@@ -142,6 +144,7 @@ public class DmpGatewayServiceImpl extends AbstractCrudService<DmpGatewayMapper,
         r.setIp(g.getIp());
         r.setPort(g.getPort());
         r.setCommunicationStatus(g.getCommStatus());
+        r.setInstallAddress(g.getInstallAddress());
         r.setOnlineTime(g.getOnlineTime());
         r.setOfflineTime(g.getOfflineTime());
         r.setUpdateConfigTime(g.getUpdateConfigTime());

+ 55 - 7
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsModelServiceImpl.java

@@ -1,6 +1,7 @@
 package com.usky.ems.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.ems.domain.*;
 import com.usky.ems.mapper.*;
@@ -236,6 +237,17 @@ public class EmsModelServiceImpl implements EmsModelService {
         String auditUser = trimAuditUser(SecurityUtils.getUsername());
         Integer tenantId = SecurityUtils.getTenantId();
         BaseBuild build = new BaseBuild();
+        build.setBuildName(request.getBuildName());
+        build.setAddress(request.getAddress());
+        build.setAboveFloor(request.getAboveFloor());
+        build.setUnderFloor(request.getUnderFloor());
+        build.setBuildArea(request.getBuildArea());
+        build.setCoverArea(request.getCoverArea());
+        build.setBuildHigh(request.getBuildHigh());
+        build.setCompleteYear(request.getCompleteYear());
+        build.setBuildDesc(request.getBuildDesc());
+        build.setLongitude(request.getLongitude());
+        build.setLatitude(request.getLatitude());
         build.setTenantId(tenantId);
         build.setCreateBy(auditUser);
         build.setUpdateBy(auditUser);
@@ -254,14 +266,19 @@ public class EmsModelServiceImpl implements EmsModelService {
         space.setUpdatedBy(auditUser);
         space.setCreateTime(now);
         space.setUpdateTime(now);
-        space.setPath(parent.getPath()+"/"+parentSpaceId);
-        space.setPathName(parent.getPathName()+"/"+parent.getName());
+        if(parent.getParentId() == 0) {
+            space.setPath(String.valueOf(parentSpaceId));
+        }else{
+            space.setPath(parent.getPath()+"/"+parentSpaceId);
+        }
+
         space.setDeep(parent.getDeep()+1);
         baseSpaceMapper.insert(space);
 
         BaseSpaceBuild rel = new BaseSpaceBuild();
         rel.setSpaceId(space.getId());
         rel.setBuildId(build.getId());
+        rel.setCreatedBy(auditUser);
         rel.setCreatedTime(now);
         baseSpaceBuildMapper.insert(rel);
         return space.getId();
@@ -270,7 +287,7 @@ public class EmsModelServiceImpl implements EmsModelService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void updateBuilding(Long id, EmsModelSaveRequest request) {
-        String name = request.getName();
+        String name = request.getBuildName();
         BaseSpace space = baseSpaceMapper.selectById(id);
         if (space != null && name != null) {
             space.setName(name);
@@ -282,6 +299,33 @@ public class EmsModelServiceImpl implements EmsModelService {
         if (b != null && b.getBuildId() != null && name != null) {
             BaseBuild build = baseBuildMapper.selectById(b.getBuildId());
             if (build != null) {
+                if(StringUtils.isNotBlank(request.getBuildName())){
+                    build.setBuildName(request.getBuildName());
+                }
+                if(StringUtils.isNotBlank(request.getAddress())){
+                    build.setAddress(request.getAddress());
+                }
+                if(request.getAboveFloor() != null){
+                    build.setAboveFloor(request.getAboveFloor());
+                }
+                if(request.getUnderFloor() != null){
+                    build.setUnderFloor(request.getUnderFloor());
+                }
+                if(request.getBuildArea() != null){
+                    build.setBuildArea(request.getBuildArea());
+                }
+                if(request.getCoverArea() != null){
+                    build.setCoverArea(request.getCoverArea());
+                }
+                if(request.getBuildHigh() != null){
+                    build.setBuildHigh(request.getBuildHigh());
+                }
+                if(request.getCompleteYear() != null){
+                    build.setCompleteYear(request.getCompleteYear());
+                }
+                build.setBuildDesc(request.getBuildDesc());
+                build.setLongitude(request.getLongitude());
+                build.setLatitude(request.getLatitude());
                 build.setUpdateBy(trimAuditUser(SecurityUtils.getUsername()));
                 build.setUpdateTime(LocalDateTime.now());
                 baseBuildMapper.updateById(build);
@@ -327,8 +371,8 @@ public class EmsModelServiceImpl implements EmsModelService {
         if(request.getResidentPopulation() != null) {
             area.setResidentPopulation(request.getResidentPopulation());
         }
-        area.setCreateBy(auditUser);
-        area.setUpdateBy(auditUser);
+        area.setCreatedBy(auditUser);
+        area.setUpdatedBy(auditUser);
         area.setCreateTime(now);
         area.setUpdateTime(now);
         area.setTenantId(tenantId);
@@ -340,8 +384,11 @@ public class EmsModelServiceImpl implements EmsModelService {
         BaseSpace parent = parentSpaceId != null ? baseSpaceMapper.selectById(parentSpaceId) : null;
         space.setRootId(parent != null ? parent.getRootId() : parentSpaceId);
         space.setType(SPACE_TYPE_REGION);
-        space.setPath(parent.getPath()+"/"+parentSpaceId);
-        space.setPathName(parent.getPathName()+"/"+parent.getName());
+        if(parent.getParentId() == 0) {
+            space.setPath(String.valueOf(parentSpaceId));
+        }else{
+            space.setPath(parent.getPath()+"/"+parentSpaceId);
+        }
         space.setDeep(parent.getDeep()+1);
         space.setCreatedBy(auditUser);
         space.setUpdatedBy(auditUser);
@@ -353,6 +400,7 @@ public class EmsModelServiceImpl implements EmsModelService {
         BaseSpaceArea rel = new BaseSpaceArea();
         rel.setSpaceId(space.getId());
         rel.setAreaId(area.getId());
+        rel.setCreatedBy(auditUser);
         rel.setCreatedTime(now);
         baseSpaceAreaMapper.insert(rel);
         return space.getId();

+ 163 - 188
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsOverviewServiceImpl.java

@@ -1,6 +1,7 @@
 package com.usky.ems.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.ems.domain.EmsDevice;
 import com.usky.ems.domain.BaseSpace;
 import com.usky.ems.domain.EmsEnergyItemCode;
@@ -14,6 +15,7 @@ import com.usky.ems.service.vo.EmsOverviewDeviceSystemStatVO;
 import com.usky.ems.service.vo.EmsOverviewEnergyItemVO;
 import com.usky.ems.service.vo.EmsProjectResponse;
 import com.usky.ems.service.vo.EmsSummaryResponse;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -35,12 +37,6 @@ import java.util.stream.Collectors;
 @Service
 public class EmsOverviewServiceImpl implements EmsOverviewService {
 
-    @Autowired
-    private EmsProjectMapper emsProjectMapper;
-
-    @Autowired
-    private EmsProjectDeviceSystemMapper emsProjectDeviceSystemMapper;
-
     @Autowired
     private EmsModelService emsModelService;
 
@@ -50,77 +46,74 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
     @Autowired
     private BaseSpaceService baseSpaceService;
 
-    @Autowired
-    private EmsProjectConversionFactorMapper emsProjectConversionFactorMapper;
-
     @Autowired
     private EmsEnergyItemCodeMapper emsEnergyItemCodeMapper;
 
     @Override
-    public EmsProjectResponse getProject(Long projectId) {
-        EmsProject project;
-        if (projectId != null) {
-            project = emsProjectMapper.selectById(projectId);
-        } else {
-            List<EmsProject> list = emsProjectMapper.selectList(null);
-            project = list.isEmpty() ? null : list.get(0);
-        }
-        if (project == null) {
-            return null;
-        }
+    public EmsProjectResponse getProject(Integer projectId) {
+//        EmsProject project;
+//        if (projectId != null) {
+//            project = emsProjectMapper.selectById(projectId);
+//        } else {
+//            List<EmsProject> list = emsProjectMapper.selectList(null);
+//            project = list.isEmpty() ? null : list.get(0);
+//        }
+//        if (project == null) {
+//            return null;
+//        }
         EmsProjectResponse resp = new EmsProjectResponse();
-        resp.setId(project.getId());
-        resp.setSpaceId(project.getSpaceId());
-        resp.setName(project.getName());
-        resp.setAbbreviation(project.getAbbreviation());
-        resp.setArea(project.getArea());
-        resp.setCommonArea(project.getCommonArea());
-        resp.setAirConditionedArea(project.getAirConditionedArea());
-        // 源字段为 Integer,这里转为 BigDecimal 以匹配 VO 定义
-        if (project.getResidentPopulation() != null) {
-            resp.setResidentPopulation(java.math.BigDecimal.valueOf(project.getResidentPopulation()));
-        }
-
-        // 设备系统集合
-        List<EmsProjectDeviceSystem> sysList = emsProjectDeviceSystemMapper.selectList(
-                new LambdaQueryWrapper<EmsProjectDeviceSystem>()
-                        .eq(EmsProjectDeviceSystem::getProjectId, project.getId())
-        );
-        if (sysList != null && !sysList.isEmpty()) {
-            resp.setDeviceSystemList(sysList.stream()
-                    .map(EmsProjectDeviceSystem::getDeviceSystem)
-                    .collect(Collectors.toList()));
-        }
-
-        resp.setProvinceCode(project.getProvinceCode());
-        resp.setCityCode(project.getCityCode());
-        resp.setDistrictCode(project.getDistrictCode());
-        resp.setProvinceName(project.getProvinceName());
-        resp.setCityName(project.getCityName());
-        resp.setDistrictName(project.getDistrictName());
-        resp.setLocation(project.getLocation());
-        resp.setAddress(project.getAddress());
-        resp.setTypeId(project.getTypeId());
-        resp.setTypeName(project.getTypeName());
-        resp.setImage(project.getImage());
-        // imageUrl 视实际文件服务而定,这里暂不拼接,直接沿用 image 字段或留空
-        resp.setImageUrl(project.getImage());
-        resp.setIntroduction(project.getIntroduction());
-        resp.setPlatformName(project.getPlatformName());
-        resp.setLogo(project.getLogo());
-        resp.setLogoUrl(project.getLogo());
-        resp.setLogoMin(project.getLogoMin());
-        resp.setLogoMinUrl(project.getLogoMin());
-        resp.setUpdatedBy(project.getUpdatedBy());
-        resp.setCreatedBy(project.getCreatedBy());
-        if (project.getUpdateTime() != null) {
-            resp.setUpdateTime(project.getUpdateTime().toString());
-        }
-        if (project.getCreateTime() != null) {
-            resp.setCreateTime(project.getCreateTime().toString());
-        }
-        // 单位能耗暂无法从现有表直接计算,先置为空,后续可按业务补充
-        resp.setAreaCoal(null);
+//        resp.setId(project.getId());
+//        resp.setSpaceId(project.getSpaceId());
+//        resp.setName(project.getName());
+//        resp.setAbbreviation(project.getAbbreviation());
+//        resp.setArea(project.getArea());
+//        resp.setCommonArea(project.getCommonArea());
+//        resp.setAirConditionedArea(project.getAirConditionedArea());
+//        // 源字段为 Integer,这里转为 BigDecimal 以匹配 VO 定义
+//        if (project.getResidentPopulation() != null) {
+//            resp.setResidentPopulation(java.math.BigDecimal.valueOf(project.getResidentPopulation()));
+//        }
+//
+//        // 设备系统集合
+//        List<EmsProjectDeviceSystem> sysList = emsProjectDeviceSystemMapper.selectList(
+//                new LambdaQueryWrapper<EmsProjectDeviceSystem>()
+//                        .eq(EmsProjectDeviceSystem::getProjectId, project.getId())
+//        );
+//        if (sysList != null && !sysList.isEmpty()) {
+//            resp.setDeviceSystemList(sysList.stream()
+//                    .map(EmsProjectDeviceSystem::getDeviceSystem)
+//                    .collect(Collectors.toList()));
+//        }
+//
+//        resp.setProvinceCode(project.getProvinceCode());
+//        resp.setCityCode(project.getCityCode());
+//        resp.setDistrictCode(project.getDistrictCode());
+//        resp.setProvinceName(project.getProvinceName());
+//        resp.setCityName(project.getCityName());
+//        resp.setDistrictName(project.getDistrictName());
+//        resp.setLocation(project.getLocation());
+//        resp.setAddress(project.getAddress());
+//        resp.setTypeId(project.getTypeId());
+//        resp.setTypeName(project.getTypeName());
+//        resp.setImage(project.getImage());
+//        // imageUrl 视实际文件服务而定,这里暂不拼接,直接沿用 image 字段或留空
+//        resp.setImageUrl(project.getImage());
+//        resp.setIntroduction(project.getIntroduction());
+//        resp.setPlatformName(project.getPlatformName());
+//        resp.setLogo(project.getLogo());
+//        resp.setLogoUrl(project.getLogo());
+//        resp.setLogoMin(project.getLogoMin());
+//        resp.setLogoMinUrl(project.getLogoMin());
+//        resp.setUpdatedBy(project.getUpdatedBy());
+//        resp.setCreatedBy(project.getCreatedBy());
+//        if (project.getUpdateTime() != null) {
+//            resp.setUpdateTime(project.getUpdateTime().toString());
+//        }
+//        if (project.getCreateTime() != null) {
+//            resp.setCreateTime(project.getCreateTime().toString());
+//        }
+//        // 单位能耗暂无法从现有表直接计算,先置为空,后续可按业务补充
+//        resp.setAreaCoal(null);
         return resp;
     }
 
@@ -147,44 +140,44 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
 
     @Override
     public List<EmsOverviewDeviceSystemStatVO> queryOverviewDeviceInfo(Long projectId) {
-        Long pid = resolveProjectId(projectId);
-        if (pid == null) {
-            return java.util.Collections.emptyList();
-        }
-
-        // 1. 查询项目已配置的设备系统
-        List<EmsProjectDeviceSystem> systemList = emsProjectDeviceSystemMapper.selectList(
-                new LambdaQueryWrapper<EmsProjectDeviceSystem>()
-                        .eq(EmsProjectDeviceSystem::getProjectId, pid)
-        );
-        if (systemList == null || systemList.isEmpty()) {
-            return java.util.Collections.emptyList();
-        }
-        List<Integer> systems = systemList.stream()
-                .map(EmsProjectDeviceSystem::getDeviceSystem)
-                .collect(Collectors.toList());
-
-        // 2. 查询设备:同项目、启用状态、设备系统在上述集合中
-        List<EmsDevice> devices = emsDeviceMapper.selectList(
-                new LambdaQueryWrapper<EmsDevice>()
-                        .eq(EmsDevice::getProjectId, pid)
-                        .eq(EmsDevice::getStatus, 1)
-                        .in(EmsDevice::getDeviceSystem, systems)
-        );
-        java.util.Map<Integer, Long> deviceCountMap = devices.stream()
-                .filter(d -> d.getDeviceSystem() != null)
-                .collect(Collectors.groupingBy(EmsDevice::getDeviceSystem, Collectors.counting()));
+//        Long pid = resolveProjectId(projectId);
+//        if (pid == null) {
+//            return java.util.Collections.emptyList();
+//        }
+//
+//        // 1. 查询项目已配置的设备系统
+//        List<EmsProjectDeviceSystem> systemList = emsProjectDeviceSystemMapper.selectList(
+//                new LambdaQueryWrapper<EmsProjectDeviceSystem>()
+//                        .eq(EmsProjectDeviceSystem::getProjectId, pid)
+//        );
+//        if (systemList == null || systemList.isEmpty()) {
+//            return java.util.Collections.emptyList();
+//        }
+//        List<Integer> systems = systemList.stream()
+//                .map(EmsProjectDeviceSystem::getDeviceSystem)
+//                .collect(Collectors.toList());
+//
+//        // 2. 查询设备:同项目、启用状态、设备系统在上述集合中
+//        List<EmsDevice> devices = emsDeviceMapper.selectList(
+//                new LambdaQueryWrapper<EmsDevice>()
+//                        .eq(EmsDevice::getProjectId, pid)
+//                        .eq(EmsDevice::getStatus, 1)
+//                        .in(EmsDevice::getDeviceSystem, systems)
+//        );
+//        java.util.Map<Integer, Long> deviceCountMap = devices.stream()
+//                .filter(d -> d.getDeviceSystem() != null)
+//                .collect(Collectors.groupingBy(EmsDevice::getDeviceSystem, Collectors.counting()));
 
         // 3. 组装统计 VO
         List<EmsOverviewDeviceSystemStatVO> result = new java.util.ArrayList<>();
-        for (EmsProjectDeviceSystem s : systemList) {
-            Integer code = s.getDeviceSystem();
-            EmsOverviewDeviceSystemStatVO vo = new EmsOverviewDeviceSystemStatVO();
-            vo.setDeviceSystem(code);
-            vo.setName(deviceSystemName(code));
-            vo.setValue(deviceCountMap.getOrDefault(code, 0L).intValue());
-            result.add(vo);
-        }
+//        for (EmsProjectDeviceSystem s : systemList) {
+//            Integer code = s.getDeviceSystem();
+//            EmsOverviewDeviceSystemStatVO vo = new EmsOverviewDeviceSystemStatVO();
+//            vo.setDeviceSystem(code);
+//            vo.setName(deviceSystemName(code));
+//            vo.setValue(deviceCountMap.getOrDefault(code, 0L).intValue());
+//            result.add(vo);
+//        }
         return result;
     }
 
@@ -345,16 +338,14 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
             return resultList;
         }
 
-        // 1. 确定项目及根空间
-        Long projectId = resolveProjectId(null);
-        if (projectId == null) {
+        BaseSpace project = baseSpaceService.getOne(
+                new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<BaseSpace>()
+                        .eq(BaseSpace::getRootId, 0)
+                        .eq(BaseSpace::getTenantId, SecurityUtils.getTenantId()));
+        if (project == null || project.getId() == null) {
             return resultList;
         }
-        EmsProject project = emsProjectMapper.selectById(projectId);
-        if (project == null || project.getSpaceId() == null) {
-            return resultList;
-        }
-        Long rootSpaceId = project.getSpaceId();
+        Long rootSpaceId = project.getId();
 
         // 2. 查询空间列表:
         // - 未指定 spaceId:取根空间下 type=3 的建筑(base_space)
@@ -435,13 +426,8 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
             return resultMap;
         }
 
-        Long pid = resolveProjectId(projectId);
-        if (pid == null) {
-            return resultMap;
-        }
-
         // 项目信息(含面积、根空间 ID)
-        EmsProjectResponse project = getProject(pid);
+        EmsProjectResponse project = getProject(SecurityUtils.getTenantId());
         if (project == null || project.getSpaceId() == null) {
             return resultMap;
         }
@@ -461,18 +447,18 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
         }
 
         // 2. 查询折算系数(项目专属 + 公共)
-        List<EmsProjectConversionFactor> factorList = emsProjectConversionFactorMapper.selectList(
-                new LambdaQueryWrapper<EmsProjectConversionFactor>()
-                        .in(EmsProjectConversionFactor::getEnergyType, typeIds)
-                        .in(EmsProjectConversionFactor::getProjectId, pid, 0L)
-        );
-        if (factorList == null || factorList.isEmpty()) {
-            return resultMap;
-        }
-
-        // 优先使用项目专属配置;若没有则退回公共配置
-        Map<Integer, List<EmsProjectConversionFactor>> groupedByType = factorList.stream()
-                .collect(Collectors.groupingBy(EmsProjectConversionFactor::getEnergyType));
+//        List<EmsProjectConversionFactor> factorList = emsProjectConversionFactorMapper.selectList(
+//                new LambdaQueryWrapper<EmsProjectConversionFactor>()
+//                        .in(EmsProjectConversionFactor::getEnergyType, typeIds)
+//                        .in(EmsProjectConversionFactor::getProjectId, pid, 0L)
+//        );
+//        if (factorList == null || factorList.isEmpty()) {
+//            return resultMap;
+//        }
+//
+//        // 优先使用项目专属配置;若没有则退回公共配置
+//        Map<Integer, List<EmsProjectConversionFactor>> groupedByType = factorList.stream()
+//                .collect(Collectors.groupingBy(EmsProjectConversionFactor::getEnergyType));
 
         // 3. 模拟各能源类型能耗值(真实实现应从 TSDB 或历史统计表获取)
         Map<Integer, BigDecimal> consumeMap = new HashMap<>();
@@ -507,50 +493,50 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
         BigDecimal co2Total = BigDecimal.ZERO;
         List<Map<String, Object>> ratioList = new ArrayList<>();
 
-        for (EmsEnergyTypeVO typeVO : energyTypes) {
-            if (typeVO.getId() == null) {
-                continue;
-            }
-            Integer typeId = typeVO.getId().intValue();
-            BigDecimal con = consumeMap.get(typeId);
-            if (con == null) {
-                continue;
-            }
-
-            List<EmsProjectConversionFactor> conversionFactorList = groupedByType.get(typeId);
-            if (conversionFactorList == null || conversionFactorList.isEmpty()) {
-                continue;
-            }
-
-            // 先筛出项目专属配置
-            List<EmsProjectConversionFactor> projectFactors = conversionFactorList.stream()
-                    .filter(f -> pid.equals(f.getProjectId()))
-                    .collect(Collectors.toList());
-            List<EmsProjectConversionFactor> effectiveFactors = projectFactors.isEmpty()
-                    ? conversionFactorList
-                    : projectFactors;
-
-            Map<String, BigDecimal> factorMap = effectiveFactors.stream()
-                    .filter(f -> f.getName() != null && f.getValue() != null)
-                    .collect(Collectors.toMap(EmsProjectConversionFactor::getName, EmsProjectConversionFactor::getValue,
-                            (oldVal, newVal) -> oldVal));
-
-            BigDecimal coal = factorMap.get("coal");
-            if (coal == null) {
-                continue;
-            }
-
-            BigDecimal coalAmount = coal.multiply(con).setScale(2, RoundingMode.UP);
-            BigDecimal co2Amount = coalAmount.multiply(new BigDecimal("2.4589")).setScale(2, RoundingMode.UP);
-            coalTotal = coalTotal.add(coalAmount);
-            co2Total = co2Total.add(co2Amount);
-
-            Map<String, Object> ratioMap = new HashMap<>();
-            ratioMap.put("name", typeVO.getName());
-            ratioMap.put("consume", coalAmount);
-            ratioMap.put("totalConsume", totalCon.multiply(coal).setScale(2, RoundingMode.UP));
-            ratioList.add(ratioMap);
-        }
+//        for (EmsEnergyTypeVO typeVO : energyTypes) {
+//            if (typeVO.getId() == null) {
+//                continue;
+//            }
+//            Integer typeId = typeVO.getId().intValue();
+//            BigDecimal con = consumeMap.get(typeId);
+//            if (con == null) {
+//                continue;
+//            }
+//
+//            List<EmsProjectConversionFactor> conversionFactorList = groupedByType.get(typeId);
+//            if (conversionFactorList == null || conversionFactorList.isEmpty()) {
+//                continue;
+//            }
+//
+//            // 先筛出项目专属配置
+//            List<EmsProjectConversionFactor> projectFactors = conversionFactorList.stream()
+//                    .filter(f -> pid.equals(f.getProjectId()))
+//                    .collect(Collectors.toList());
+//            List<EmsProjectConversionFactor> effectiveFactors = projectFactors.isEmpty()
+//                    ? conversionFactorList
+//                    : projectFactors;
+//
+//            Map<String, BigDecimal> factorMap = effectiveFactors.stream()
+//                    .filter(f -> f.getName() != null && f.getValue() != null)
+//                    .collect(Collectors.toMap(EmsProjectConversionFactor::getName, EmsProjectConversionFactor::getValue,
+//                            (oldVal, newVal) -> oldVal));
+//
+//            BigDecimal coal = factorMap.get("coal");
+//            if (coal == null) {
+//                continue;
+//            }
+//
+//            BigDecimal coalAmount = coal.multiply(con).setScale(2, RoundingMode.UP);
+//            BigDecimal co2Amount = coalAmount.multiply(new BigDecimal("2.4589")).setScale(2, RoundingMode.UP);
+//            coalTotal = coalTotal.add(coalAmount);
+//            co2Total = co2Total.add(co2Amount);
+//
+//            Map<String, Object> ratioMap = new HashMap<>();
+//            ratioMap.put("name", typeVO.getName());
+//            ratioMap.put("consume", coalAmount);
+//            ratioMap.put("totalConsume", totalCon.multiply(coal).setScale(2, RoundingMode.UP));
+//            ratioList.add(ratioMap);
+//        }
 
         // 5. 单位综合能耗(每平米标煤量)
         BigDecimal unitCoal = BigDecimal.ZERO;
@@ -580,11 +566,6 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
             return resultList;
         }
 
-        Long pid = resolveProjectId(projectId);
-        if (pid == null) {
-            return resultList;
-        }
-
         // 当前实现中 startTime/spaceId 仅为预留,不参与模拟计算
         LocalDateTime endTime = LocalDateTime.now();
         LocalDateTime startTime = getStartTime(dateType, endTime);
@@ -659,12 +640,6 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
         return value.setScale(2, RoundingMode.UP);
     }
 
-    private Long resolveProjectId(Long projectId) {
-        if (projectId != null) return projectId;
-        List<EmsProject> list = emsProjectMapper.selectList(null);
-        return list.isEmpty() ? null : list.get(0).getId();
-    }
-
     /** 根据设备系统编码返回名称(与 dmp_product.deviceType 含义保持一致) */
     private String deviceSystemName(Integer deviceSystem) {
         if (deviceSystem == null) return "";

+ 19 - 27
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsReportServiceImpl.java

@@ -1,8 +1,11 @@
 package com.usky.ems.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.ems.domain.DmpDevice;
 import com.usky.ems.domain.EmsDevice;
 import com.usky.ems.domain.EmsDeviceFunction;
+import com.usky.ems.mapper.DmpDeviceMapper;
 import com.usky.ems.mapper.EmsDeviceFunctionMapper;
 import com.usky.ems.mapper.EmsDeviceMapper;
 import com.usky.ems.service.EmsReportService;
@@ -27,18 +30,10 @@ public class EmsReportServiceImpl implements EmsReportService {
     private static final String[] ENERGY_TYPE_NAMES = {"", "电", "水", "气"};
 
     @Autowired
-    private EmsProjectMapper emsProjectMapper;
-    @Autowired
-    private EmsDeviceMapper emsDeviceMapper;
+    private DmpDeviceMapper dmpDeviceMapper;
     @Autowired
     private EmsDeviceFunctionMapper emsDeviceFunctionMapper;
 
-    private Long resolveProjectId(Long projectId) {
-        if (projectId != null) return projectId;
-        List<EmsProject> list = emsProjectMapper.selectList(null);
-        return list.isEmpty() ? null : list.get(0).getId();
-    }
-
     private String energyTypeName(Long energyTypeId) {
         if (energyTypeId == null || energyTypeId < 1 || energyTypeId > 3) return "";
         return ENERGY_TYPE_NAMES[energyTypeId.intValue()];
@@ -46,13 +41,11 @@ public class EmsReportServiceImpl implements EmsReportService {
 
     @Override
     public EmsReportDevicesResponse getEnergyDevices(Long energyTypeId, String keyword, Long projectId) {
-        Long pid = resolveProjectId(projectId);
-        if (pid == null) return new EmsReportDevicesResponse();
-        LambdaQueryWrapper<EmsDevice> q = new LambdaQueryWrapper<EmsDevice>().eq(EmsDevice::getProjectId, pid);
+        LambdaQueryWrapper<DmpDevice> q = new LambdaQueryWrapper<DmpDevice>().eq(DmpDevice::getDeleteFlag,0).eq(DmpDevice::getTenantId, SecurityUtils.getTenantId());
         if (StringUtils.hasText(keyword)) {
-            q.and(w -> w.like(EmsDevice::getName, keyword).or().like(EmsDevice::getNumber, keyword));
+            q.and(w -> w.like(DmpDevice::getDeviceName, keyword));
         }
-        List<EmsDevice> devices = emsDeviceMapper.selectList(q);
+        List<DmpDevice> devices = dmpDeviceMapper.selectList(q);
         return buildReportDevicesResponse(devices, energyTypeId, null);
     }
 
@@ -73,14 +66,13 @@ public class EmsReportServiceImpl implements EmsReportService {
 
     @Override
     public EmsReportDevicesResponse getRegionDevices(Long energyTypeId, Long regionId, String keyword, Long projectId) {
-        Long pid = resolveProjectId(projectId);
-        if (pid == null) return new EmsReportDevicesResponse();
-        LambdaQueryWrapper<EmsDevice> q = new LambdaQueryWrapper<EmsDevice>().eq(EmsDevice::getProjectId, pid);
-        if (regionId != null) q.eq(EmsDevice::getInstallationLocation, regionId);
-        if (StringUtils.hasText(keyword)) {
-            q.and(w -> w.like(EmsDevice::getName, keyword).or().like(EmsDevice::getNumber, keyword));
-        }
-        List<EmsDevice> devices = emsDeviceMapper.selectList(q);
+//        LambdaQueryWrapper<DmpDevice> q = new LambdaQueryWrapper<DmpDevice>().eq(DmpDevice::getDeleteFlag,0).eq(DmpDevice::getTenantId, SecurityUtils.getTenantId());
+//        if (regionId != null) q.eq(EmsDevice::getInstallationLocation, regionId);
+//        if (StringUtils.hasText(keyword)) {
+//            q.and(w -> w.like(EmsDevice::getName, keyword).or().like(EmsDevice::getNumber, keyword));
+//        }
+//        List<DmpDevice> devices = dmpDeviceMapper.selectList(q);
+        List<DmpDevice> devices = new ArrayList<>();
         return buildReportDevicesResponse(devices, energyTypeId, regionId);
     }
 
@@ -115,14 +107,14 @@ public class EmsReportServiceImpl implements EmsReportService {
         doExport(response, format, "collection_report");
     }
 
-    private EmsReportDevicesResponse buildReportDevicesResponse(List<EmsDevice> devices, Long energyTypeId, Long regionId) {
+    private EmsReportDevicesResponse buildReportDevicesResponse(List<DmpDevice> devices, Long energyTypeId, Long regionId) {
         EmsReportDevicesResponse resp = new EmsReportDevicesResponse();
         String typeName = energyTypeName(energyTypeId);
-        for (EmsDevice d : devices) {
+        for (DmpDevice d : devices) {
             EmsReportDeviceItemVO item = new EmsReportDeviceItemVO();
-            item.setId(d.getId());
-            item.setName(d.getName());
-            item.setCode(d.getNumber());
+            item.setId(String.valueOf(d.getId()));
+            item.setName(d.getDeviceName());
+            item.setCode(d.getDeviceId());
             item.setEnergyTypeName(typeName);
             List<EmsDeviceFunction> funcs = emsDeviceFunctionMapper.selectList(
                     new LambdaQueryWrapper<EmsDeviceFunction>().eq(EmsDeviceFunction::getDeviceId, d.getId()));

+ 1 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/vo/DmpGatewayDetailResponse.java

@@ -16,6 +16,7 @@ public class DmpGatewayDetailResponse {
     private String ip;
     private Integer port;
     private Integer communicationStatus;
+    private String installAddress;
     private LocalDateTime onlineTime;
     private LocalDateTime offlineTime;
     private LocalDateTime updateConfigTime;

+ 1 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/vo/DmpGatewayListItem.java

@@ -15,6 +15,7 @@ public class DmpGatewayListItem {
     private String name;
     private String ip;
     private Integer port;
+    private String InstallAddress;
     private Integer communicationStatus;
     private LocalDateTime onlineTime;
     private LocalDateTime offlineTime;