ソースを参照

Merge remote-tracking branch 'origin/20210223' into 20210223

wangyangyang 4 年 前
コミット
f2dee52502

+ 14 - 0
sms_water/src/main/java/com/huaxu/controller/CameraManageController.java

@@ -2,6 +2,7 @@ package com.huaxu.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.dto.CameraDto;
 import com.huaxu.entity.CameraManage;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.Pagination;
@@ -136,5 +137,18 @@ public class CameraManageController {
         CameraManage cameraManage =cameraManageService.selectById(id);
         return new AjaxMessage<>(ResultStatus.OK, cameraManage);
     }
+    /**
+     * 获取单个摄像头信息
+     *
+     * @param   主键id
+     * @param
+     * @return Response对象
+     */
+    @RequestMapping(value = "getCameraTree", method = RequestMethod.POST)
+    @ApiOperation(value = "查询摄像头列表")
+    public AjaxMessage<List<CameraDto>> getCameraTree() {
+        List<CameraDto> cameraManages =cameraManageService.getCameraTree(0l);
+        return new AjaxMessage<>(ResultStatus.OK, cameraManages);
+    }
 
 }

+ 1 - 1
sms_water/src/main/java/com/huaxu/controller/MonitorDataReportController.java

@@ -143,7 +143,7 @@ public class MonitorDataReportController {
     }
 
     @RequestMapping(value = "sceneAlarms",method = RequestMethod.GET)
-    @ApiOperation(value = "概览首页——供实时报警信息")
+    @ApiOperation(value = "概览首页——供实时报警信息")
     public AjaxMessage<List<SceneAlarm>> sceneAlarms(){
         return new AjaxMessage<>(ResultStatus.OK,monitorDataReportService.sceneAlarms());
     }

+ 16 - 0
sms_water/src/main/java/com/huaxu/dto/CameraDto.java

@@ -0,0 +1,16 @@
+package com.huaxu.dto;
+
+import com.huaxu.entity.CameraManage;
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class CameraDto {
+    private String key;
+    private Long id;
+    private String  sceneName;
+    private String sceneTypeName;
+    private String parentKey;
+    private Integer level;
+    List<CameraDto>children;
+}

+ 1 - 2
sms_water/src/main/java/com/huaxu/dto/OnlineDataDto.java

@@ -101,8 +101,7 @@ public class OnlineDataDto {
     @JsonIgnore
     private String userType;
 
-    @ApiModelProperty(value ="一级场景类型名称",hidden = true)
-    @JsonIgnore
+    @ApiModelProperty(value ="一级场景类型名称")
     private String sceneTypeName;
 
     @ApiModelProperty("累计流量")

+ 1 - 1
sms_water/src/main/java/com/huaxu/dto/generalView/WaterSupplyChart.java

@@ -26,7 +26,7 @@ public class WaterSupplyChart implements Serializable {
     private Integer sort;
     @ApiModelProperty("日期")
     private String date;
-    @ApiModelProperty("制水量/取水量")
+    @ApiModelProperty("制水量/取水量/水位")
     @JsonSerialize(using = BigDecimalJsonSerializer.class)
     private BigDecimal waterData = BigDecimal.ZERO;
     @ApiModelProperty("电耗")

+ 3 - 0
sms_water/src/main/java/com/huaxu/service/CameraManageService.java

@@ -1,6 +1,7 @@
 package com.huaxu.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.CameraDto;
 import com.huaxu.entity.CameraManage;
 
 import java.util.List;
@@ -79,4 +80,6 @@ public interface CameraManageService {
     IPage<CameraManage> selectPage(CameraManage cameraManage, IPage<CameraManage> page);
 
     int deleteAll(List<Integer> ids);
+
+    List<CameraDto> getCameraTree(Long typeId);
 }

+ 51 - 0
sms_water/src/main/java/com/huaxu/service/impl/CameraManageServiceImpl.java

@@ -3,13 +3,18 @@ package com.huaxu.service.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dao.CameraManageMapper;
+import com.huaxu.dao.SceneMapper;
+import com.huaxu.dto.CameraDto;
 import com.huaxu.entity.CameraManage;
+import com.huaxu.entity.SceneEntity;
 import com.huaxu.model.LoginUser;
 import com.huaxu.model.ProgramItem;
 import com.huaxu.service.CameraManageService;
 import com.huaxu.util.OrgInfoUtil;
 import com.huaxu.util.RedisUtil;
 import com.huaxu.util.UserUtil;
+import javafx.scene.Camera;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -21,6 +26,9 @@ import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.google.common.collect.Lists.newArrayList;
 
 /**
  * (CameraManage表)服务实现类
@@ -38,6 +46,8 @@ public class CameraManageServiceImpl implements CameraManageService {
     private RestTemplate restTemplate;
     @Autowired
     private OrgInfoUtil util;
+    @Autowired
+    private SceneMapper sceneMapper;
 
     /**
      * 通过ID查询单条数据
@@ -290,4 +300,45 @@ public class CameraManageServiceImpl implements CameraManageService {
         cameraManageMapper.deleteAll(ids);
         return 0;
     }
+
+    @Override
+    public List<CameraDto> getCameraTree(Long typeId) {
+
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        SceneEntity searchSceneEntity = new SceneEntity();
+        searchSceneEntity.setTenantId(currentUser.getTenantId());
+        searchSceneEntity.setProgramItems(currentUser.getProgramItemList());
+        searchSceneEntity.setUserType(currentUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        searchSceneEntity.setPermissonType(currentUser.getPermissonType());
+        List<SceneEntity> sceneEntities = sceneMapper.findList(searchSceneEntity);
+        CameraManage searchCameraManage=new CameraManage();
+        searchCameraManage.setStatus(1);
+        List<CameraManage> cameraManages = cameraManageMapper.selectList(searchCameraManage);
+        List<CameraDto>cameraDtos=new ArrayList<>();
+
+        Map<Integer, List<CameraManage>> detailmap = cameraManages.stream()
+                .collect(Collectors.groupingBy(d -> d.getSceneId() ));
+        sceneEntities.forEach(sceneEntity -> {
+            Long id = sceneEntity.getId();
+            if(detailmap.get(Integer.valueOf(id+""))!=null){
+                CameraDto cameraDto=new CameraDto();
+                cameraDto.setId(id);
+                cameraDto.setSceneName(sceneEntity.getSceneName());
+                cameraDto.setSceneTypeName(sceneEntity.getSceneTypeName());
+                List<CameraDto>cameraDtos2=new ArrayList<>();
+                detailmap.get(Integer.valueOf(id+"")).forEach(detail->{
+                    CameraDto cameraDto2=new CameraDto();
+                    cameraDto2.setId(Long.valueOf(detail.getId()));
+                    cameraDto2.setSceneName(detail.getName());
+                    cameraDto2.setSceneTypeName(sceneEntity.getSceneTypeName());
+                    cameraDtos2.add(cameraDto2);
+                });
+                cameraDto.setChildren(cameraDtos2);
+                cameraDtos.add(cameraDto);
+            }
+        });
+        return cameraDtos;
+    }
+
 }

+ 25 - 7
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java

@@ -154,6 +154,17 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         if(monitorDataChartReportDeviceDtos != null){
             FillLoseData(monitorDataChartReportDeviceDtos,type,year,month,day);
         }
+        //单位转换为“万”
+        for(MonitorDataChartReportDeviceDto monitorDataChartReportDeviceDto : monitorDataChartReportDeviceDtos){
+            for(MonitorDataChartReportAttributeDto monitorDataChartReportAttributeDto:monitorDataChartReportDeviceDto.getAttributeData()){
+                monitorDataChartReportAttributeDto.setUnit("万"+monitorDataChartReportAttributeDto.getUnit());
+                for(MonitorDataChartReportValueDto monitorDataChartReportValueDto: monitorDataChartReportAttributeDto.getMonitorDataChartReportValue()){
+                    monitorDataChartReportValueDto.setData(new BigDecimal(monitorDataChartReportValueDto.getData()).divide(BigDecimal.valueOf(10000),3, RoundingMode.HALF_UP).doubleValue());
+                    monitorDataChartReportValueDto.setMonitorData(monitorDataChartReportValueDto.getData()+monitorDataChartReportAttributeDto.getUnit());
+                }
+
+            }
+        }
         return monitorDataChartReportDeviceDtos;
     }
     @Override
@@ -179,6 +190,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         if(monitorDataChartReportDeviceDtos != null){
             FillLoseData(monitorDataChartReportDeviceDtos,type,year,month,day);
         }
+
         return monitorDataChartReportDeviceDtos;
     }
 
@@ -576,7 +588,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         BigDecimal amountCountDay  =  getAmountCount(null,null,"水厂",3,1);
         DeviceWaterSupply deviceWaterSupplyDay = new DeviceWaterSupply();
         deviceWaterSupplyDay.setOrderNo( 1);
-        deviceWaterSupplyDay.setAmount(amountCountDay != null?amountCountDay:BigDecimal.ZERO);
+        deviceWaterSupplyDay.setAmount(amountCountDay != null?amountCountDay.divide(BigDecimal.valueOf(10000),3, RoundingMode.HALF_UP):BigDecimal.ZERO);
         deviceWaterSupplyDay.setYear(localDate.getYear());
         deviceWaterSupplyDay.setMonth(localDate.getMonthValue());
         deviceWaterSupplyDay.setDay(localDate.getDayOfMonth());
@@ -909,6 +921,12 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
     @Override
     public List<WaterSupplyChart> waterSupplyCharts(String sceneTypeName) {
 
+        BigDecimal multipleData;
+        if(sceneTypeName.equals("泵站")){
+            multipleData = new BigDecimal("1");
+        }else{
+            multipleData = new BigDecimal("10000");
+        }
         LoginUser loginUser = UserUtil.getCurrentUser();
         String tenantId = loginUser.getTenantId();
 
@@ -923,9 +941,9 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
                         Period period = Period.between(LocalDate.of(waterSupplyData.getYear(), waterSupplyData.getMonth(), waterSupplyData.getDay()), LocalDate.now());
                         waterSupplyChart.setSort(period.getDays());
                         if (waterSupplyData.getParmType() == 3) { //供水
-                            waterSupplyChart.setWaterData(waterSupplyData.getAmount());
+                            waterSupplyChart.setWaterData(waterSupplyData.getAmount().divide(multipleData,3, RoundingMode.HALF_UP));
                         } else if (waterSupplyData.getParmType() == 5) {//电耗
-                            waterSupplyChart.setPowerData(waterSupplyData.getAmount());
+                            waterSupplyChart.setPowerData(waterSupplyData.getAmount().divide(multipleData,3, RoundingMode.HALF_UP));
                         } else if (waterSupplyData.getParmType() == 6) {//药耗
                             waterSupplyChart.setDrugData(waterSupplyData.getAmount());
                         }
@@ -963,9 +981,9 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
                         Period period = Period.between(LocalDate.of(waterSupplyData.getYear(), waterSupplyData.getMonth(), waterSupplyData.getDay()), LocalDate.now());
                         waterSupplyChart.setSort(period.getDays());
                         if (waterSupplyData.getParmType() == 3) { //供水
-                            waterSupplyChart.setWaterData(waterSupplyData.getAmount());
+                            waterSupplyChart.setWaterData(waterSupplyData.getAmount().divide(BigDecimal.valueOf(10000),3, RoundingMode.HALF_UP));
                         } else if (waterSupplyData.getParmType() == 5) {//电耗
-                            waterSupplyChart.setPowerData(waterSupplyData.getAmount());
+                            waterSupplyChart.setPowerData(waterSupplyData.getAmount().divide(BigDecimal.valueOf(10000),3, RoundingMode.HALF_UP));
                         } else if (waterSupplyData.getParmType() == 6) {//药耗
                             waterSupplyChart.setDrugData(waterSupplyData.getAmount());
                         }
@@ -981,8 +999,8 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         BigDecimal powerDataAmountCountMonth = getAmountCount(null,sceneId.intValue(), sceneTypeName, 5,1 );
         WaterSupplyChart waterSupplyChart= new WaterSupplyChart();
         waterSupplyChart.setDate(LocalDate.now().getYear()+"-"+LocalDate.now().getMonthValue()+"-"+LocalDate.now().getDayOfMonth());
-        waterSupplyChart.setWaterData(waterDataAmountCountMonth);
-        waterSupplyChart.setPowerData(powerDataAmountCountMonth);
+        waterSupplyChart.setWaterData(waterDataAmountCountMonth.divide(BigDecimal.valueOf(10000),3, RoundingMode.HALF_UP));
+        waterSupplyChart.setPowerData(powerDataAmountCountMonth.divide(BigDecimal.valueOf(10000),3, RoundingMode.HALF_UP));
         waterSupplyChart.setSort(0);
         waterSupplyCharts.add(waterSupplyChart);
         return waterSupplyCharts;

+ 2 - 2
sms_water/src/main/resources/mapper/MonitorDataReportMapper.xml

@@ -963,7 +963,7 @@
     <select id="getDeviceWaterFor30Day" resultType="com.huaxu.dto.generalView.DeviceWaterSupply">
          select
               r.year,r.month,r.day,
-            sum(r.SUM_VALUE) as "amount"
+            sum(r.SUM_VALUE)/10000 as "amount"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id
         left join sms_device_parm dp on s.id=dp.PARENT_SCENE_ID
@@ -1301,7 +1301,7 @@
             ,r.month
             ,r.day
             ,dp.PARM_TYPE as "parmType"
-            ,sum(r.SUM_VALUE)/10000 as "amount"
+            ,sum(r.SUM_VALUE) as "amount"
             ,da.UNIT as "unit"
         from sms_scene_type st
         left join sms_scene s on s.SCENE_TYPE_ID =st.id

+ 2 - 2
sms_water/src/main/resources/mapper/OnlineMonitorMapper.xml

@@ -279,7 +279,7 @@
     </select>
     <!--分页查询实时数据列表-->
     <select id="selectPage" resultType="com.huaxu.dto.OnlineDataDto">
-        select t1.id scene_id,t1.scene_name,t1.address
+        select t1.id scene_id,t1.scene_name,t1.address,t3.scene_type_name
         from sms_scene t1
         inner join sms_scene_type t3 on t3.id = t1.scene_type_id and t3. status = 1
         left join(
@@ -701,7 +701,7 @@
     </select>
     <!--查询实时数据列表-->
     <select id="selectList" resultType="com.huaxu.dto.OnlineDataDto">
-        select t1.id scene_id,t1.scene_name,t1.address
+        select t1.id scene_id,t1.scene_name,t1.address,t3.scene_type_name
             ,case when t7.offline_alarm_count=t10.setting_device_count then 2
             when t7.alarm_count>0 or t7.offline_alarm_count>0 then 1 else 0 end scene_state
         from sms_scene t1