Explorar el Código

一体化综合展示地图接口

hym hace 3 años
padre
commit
b0b446c8a6

+ 17 - 2
smart-city-platform/src/main/java/com/bz/smart_city/controller/PlatformApiController.java

@@ -1,11 +1,11 @@
 package com.bz.smart_city.controller;
 
 import com.bz.smart_city.commom.model.AjaxMessage;
+import com.bz.smart_city.commom.model.Pagination;
 import com.bz.smart_city.commom.model.ResultStatus;
 import com.bz.smart_city.commom.util.MessageSend.JSONUtils;
 import com.bz.smart_city.commom.util.UserUtil;
-import com.bz.smart_city.dto.LoginUser;
-import com.bz.smart_city.dto.TodayDynamicDto;
+import com.bz.smart_city.dto.*;
 import com.bz.smart_city.service.PlatformAapiService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -81,4 +81,19 @@ public class PlatformApiController {
         valveMessage.put("meterStatus",meterStatus);
         kafkaTemplate.send(billingValveStatusReceiving, JSONUtils.obj2json(valveMessage));
     }
+    @PostMapping  ("/getTheMapInformationOfTheDevice")
+    @ApiOperation(value = "设备数量统计")
+    public AjaxMessage<List<MapStatisticalDto>> getTheMapInformationOfTheDevice (
+            @RequestBody  QueryDeviceMonitorDto queryDeviceMonitorDto) {
+
+        List<MapStatisticalDto>statisticalDtos=platformAapiService.getTheMapInformationOfTheDevice(queryDeviceMonitorDto);
+        return new AjaxMessage<>(ResultStatus.OK,statisticalDtos);
+    }
+    @PostMapping  ("/getDeviceListInformation")
+    @ApiOperation(value = "设备数量统计")
+    public AjaxMessage getDeviceListInformation (@RequestBody QueryDeviceMonitorDto queryDeviceMonitorDto) {
+
+        Pagination<DeviceDto>devices=platformAapiService.getDeviceListInformation(queryDeviceMonitorDto);
+        return new AjaxMessage<>(ResultStatus.OK,devices);
+    }
 }

+ 3 - 0
smart-city-platform/src/main/java/com/bz/smart_city/dao/DeviceMapper.java

@@ -181,5 +181,8 @@ public interface DeviceMapper {
 
     long statisticsEquipmentTotal(@Param("programItems") List<ProgramItemDto> programItems);
 
+    List<DeviceDto> findDevicesOnTheMap( @Param("device")QueryDeviceMonitorDto queryDeviceMonitorDto,
+                                        @Param("programItems") List<ProgramItem> programItemDtos);
+
 }
 

+ 2 - 0
smart-city-platform/src/main/java/com/bz/smart_city/dao/UserMapper.java

@@ -81,5 +81,7 @@ public interface UserMapper {
 
 
     List<ProgramItemDto> findTenantAuthority();
+
+    List<ProgramItem> findAuthByTenantId(String tenantId);
 }
 

+ 19 - 0
smart-city-platform/src/main/java/com/bz/smart_city/dto/QueryDeviceMonitorDto.java

@@ -0,0 +1,19 @@
+package com.bz.smart_city.dto;
+
+import lombok.Data;
+
+@Data
+public class QueryDeviceMonitorDto {
+    private Integer type;
+    private Integer province;
+    private Integer city;
+    private Integer region;
+    private Integer community;
+    private Integer buildingId;
+    private String keywords;
+    private String tenantId;
+    private Integer page;
+    private Integer size;
+    private String northEast;
+    private String southWest;
+}

+ 9 - 0
smart-city-platform/src/main/java/com/bz/smart_city/service/PlatformAapiService.java

@@ -1,5 +1,10 @@
 package com.bz.smart_city.service;
 
+import com.bz.smart_city.commom.model.Pagination;
+import com.bz.smart_city.dto.DeviceDto;
+import com.bz.smart_city.dto.MapStatisticalDto;
+import com.bz.smart_city.dto.QueryDeviceMonitorDto;
+
 import java.util.List;
 import java.util.Map;
 
@@ -17,4 +22,8 @@ public interface PlatformAapiService {
 
 
     List<Map<String, Object>> getDeviceStatistics(Map<String, Object> args);
+
+    List<MapStatisticalDto> getTheMapInformationOfTheDevice(QueryDeviceMonitorDto queryDeviceMonitorDto);
+
+    Pagination<DeviceDto> getDeviceListInformation(QueryDeviceMonitorDto queryDeviceMonitorDto);
 }

+ 56 - 8
smart-city-platform/src/main/java/com/bz/smart_city/service/sync/PlatformAapiServiceImpl.java

@@ -1,20 +1,19 @@
 package com.bz.smart_city.service.sync;
 
-import com.bz.smart_city.dao.CustomerMapper;
-import com.bz.smart_city.dao.DeviceMapper;
-import com.bz.smart_city.dao.OperatingValveRecordMapper;
-import com.bz.smart_city.dao.UserMapper;
+import com.bz.smart_city.commom.model.Pagination;
+import com.bz.smart_city.dao.*;
 import com.bz.smart_city.dao.assistant.InstallListMapper;
-import com.bz.smart_city.dao.assistant.InstallPlanMapper;
-import com.bz.smart_city.dto.ProgramItemDto;
+import com.bz.smart_city.dto.*;
 import com.bz.smart_city.entity.*;
-import com.bz.smart_city.entity.assistant.InstallPlan;
 import com.bz.smart_city.service.DeviceService;
 import com.bz.smart_city.service.PlatformAapiService;
+import com.bz.smart_city.service.StatAndAnalysisService;
+import com.github.pagehelper.PageHelper;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -32,6 +31,10 @@ public class PlatformAapiServiceImpl implements PlatformAapiService {
     private InstallListMapper installListMapper;
     @Autowired
     private UserMapper userMapper;
+    @Resource
+    private BuildingMapper buildingMapper;
+    @Autowired
+    private StatAndAnalysisService statAndAnalysisService;
     @Override
     public void updateMeterNo(String meterNo, String meterCode, String customerNo) {
         Customer customer = customerMapper.findBySiteIdAndCustomerNo(null, customerNo);
@@ -102,6 +105,51 @@ public class PlatformAapiServiceImpl implements PlatformAapiService {
         // ;
         return result;
     }
+    private Double[]getCoordinate(String preCoordinate){
+         Double[]coordinates=new Double[2];
+        String[] preCoordinates = StringUtils.split(preCoordinate, ",");
+        coordinates[0]=Double.valueOf(preCoordinates[0]);
+        coordinates[1]=Double.valueOf(preCoordinates[1]);
+        return coordinates;
+    }
+    @Override
+    public List<MapStatisticalDto> getTheMapInformationOfTheDevice(QueryDeviceMonitorDto queryDeviceMonitorDto) {
+        List<Integer>siteList=new ArrayList<>();
+        siteList.add(1);
+        Double longitudeMin = 0d;
+        Double longitudeMax = 0d;
+
+        Double latitudeMin = 0d;
+        Double latitudeMax = 0d;
+        String northEast=queryDeviceMonitorDto.getNorthEast();
+        String southWest=queryDeviceMonitorDto.getSouthWest();
+        if (northEast != null && southWest != null) {
+            Double[]northEastDouble = getCoordinate(northEast);
+            Double[] southWestDouble =getCoordinate(southWest);
+
+            longitudeMin =southWestDouble [0];
+            longitudeMax = northEastDouble[0];
+
+            latitudeMin =southWestDouble [1];
+            latitudeMax = northEastDouble[1];
+        }
+        List<ProgramItem>programItemDtos = userMapper.findAuthByTenantId(queryDeviceMonitorDto.getTenantId());
+        List<BuildingInfoListDto>buildingInfoListDtos=buildingMapper.getBuildingStatistics(siteList, programItemDtos, null, null, null,
+                queryDeviceMonitorDto.getProvince(), queryDeviceMonitorDto.getCity(), queryDeviceMonitorDto.getRegion(),
+                queryDeviceMonitorDto.getCommunity(),queryDeviceMonitorDto.getType(),
+                longitudeMin, longitudeMax, latitudeMin, latitudeMax,null);
+        List<MapStatisticalDto> mapStatisticalDtos = statAndAnalysisService.mapStatistical(queryDeviceMonitorDto.getType(), buildingInfoListDtos);
+        return mapStatisticalDtos;
+    }
+
+    @Override
+    public Pagination<DeviceDto> getDeviceListInformation(QueryDeviceMonitorDto queryDeviceMonitorDto) {
+
+        List<ProgramItem>programItemDtos = userMapper.findAuthByTenantId(queryDeviceMonitorDto.getTenantId());
+        PageHelper.startPage(queryDeviceMonitorDto.getPage(), queryDeviceMonitorDto.getSize());
+        List<DeviceDto> list =deviceMapper.findDevicesOnTheMap(queryDeviceMonitorDto,programItemDtos);
+        return new Pagination<>(list);
+    }
 
 
     private Device getDevice(String meterNo, String customerNo){

+ 23 - 0
smart-city-platform/src/main/resources/mapper/DeviceMapper.xml

@@ -1229,6 +1229,29 @@
             </foreach>
         </if>
     </select>
+    <select id="findDevicesOnTheMap" resultType="com.bz.smart_city.dto.DeviceDto">
+        select sd.*,scus.customer_name,sdt.en_equipment_type ,sdt.model,swmed.meter_reading
+        from sc_device sd
+        left join sc_device_type sdt on (sdt.id = sd.device_type and sdt.status = 1)
+        left join sc_water_meter_error_days swmed on ( swmed.device_id = sd.id)
+        left join sc_customer scus on ( scus.id = sd.customer_id)
+        <if test="programItems != null and programItems.size() != 0">
+            left join sc_device_dimension sdd on (sdd.device_id = sd.id and sdd.status = 1)
+        </if>
+        where sd.status = 1
+        <if test="programItems != null and programItems.size() != 0"> and
+            <foreach collection="programItems" item="item" open="(" separator=" or " close=")">
+                sdd.${item.dimensionCode} = #{item.dimensionValue}
+            </foreach>
+        </if>
+        <if test="device.buildingId!=null">
+           and sd.building_id=#{device.buildingId}
+        </if>
+        <if test="device.keywords!=null">
+            and (scus.customer_name LIKE concat('%',#{device.keywords},'%')
+                 or sd.water_meter_no LIKE concat('%',#{device.keywords},'%') )
+        </if>
+    </select>
     <update id="updateMeterNo">
         update sc_device set metercode=#{meterNo}
         where metercode=#{meterNo} and customer_id=#{customerId}

+ 10 - 0
smart-city-platform/src/main/resources/mapper/UserMapper.xml

@@ -545,6 +545,16 @@
             on (spi.status=1 and spi.program_id=a.program_id)
 
     </select>
+    <select id="findAuthByTenantId" resultType="com.bz.smart_city.entity.ProgramItem">
+        select
+            spi.id,
+            spi.dimension_id,
+            spi.dimension_code,
+            spi.dimension_value, a.tenant_id from
+            sc_program_item spi join sc_config_platform_user a
+                                     on (spi.status=1 and spi.program_id=a.program_id)
+         where tenant_id=#{tenantId}
+    </select>
 
 
 </mapper>