Kaynağa Gözat

标签值修改

wangyangyang 4 yıl önce
ebeveyn
işleme
d30c708fee

+ 25 - 13
sms_water/src/main/java/com/huaxu/controller/MonitorInfoController.java

@@ -18,6 +18,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.ui.ModelMap;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -54,7 +55,7 @@ public class MonitorInfoController {
     @ApiOperation(value = "按场景ID查询供水量出水量耗药量耗电量")
     @RequestMapping(value = "/findTotalUsageBySceneId",method = RequestMethod.GET)
     @ResponseBody
-    public  AjaxMessage<SceneUsageDto> findTotalUsageBySceneId(@ApiParam(value = "场景ID", required = true) @RequestParam Long id) {
+    public  AjaxMessage<SceneUsageDto> findTotalUsageBySceneId(@ApiParam(value = "场景ID", required = true) @RequestParam Long id,@ApiParam(value = "类型(0综合调度 1综合展示)", required = false) @RequestParam(required = false) Integer... type) {
         SceneUsageDto sceneUsageDto = new SceneUsageDto();
         //查询场景下的所有设备信息
         List<DeviceDto> devices = new ArrayList<>();
@@ -65,7 +66,6 @@ public class MonitorInfoController {
         devices.addAll(deviceService.selectList(deviceDto));
         //取前一个小时的时间
         LocalDateTime dateTime = LocalDateTime.now().plusDays(-1);
-        //LocalDateTime dateTime = LocalDateTime.now();
         for (DeviceDto item : devices) {
             //设备的几个参数值
             SceneDeviceAttributeDto sceneDeviceAttributeDto = new SceneDeviceAttributeDto();
@@ -88,44 +88,56 @@ public class MonitorInfoController {
                 }
                 for (SceneDeviceAttributeDto itemAttribute : sceneDeviceAttributeDtos) {
                     Double attributeDiffValue = 0d;
-                    if(!map.containsKey(itemAttribute.getAttributeId())) {
+                    if (!map.containsKey(itemAttribute.getAttributeId())) {
                         continue;
                     }
                     if (map.get(itemAttribute.getAttributeId()).getDataValue() != null && itemAttribute.getLatestValue() != null) {
                         attributeDiffValue = map.get(itemAttribute.getAttributeId()).getDataValue() - itemAttribute.getLatestValue();
                     } else if (map.get(itemAttribute.getAttributeId()).getDataValue() != null && itemAttribute.getLatestValue() == null) {
-                        attributeDiffValue =  map.get(itemAttribute.getAttributeId()).getDataValue();
+                        attributeDiffValue = map.get(itemAttribute.getAttributeId()).getDataValue();
                     }
                     switch (itemAttribute.getAttributeType()) {
                         case "3":
-                            sceneUsageDto.setYieldWaterUsage(sceneUsageDto.getYieldWaterUsage() != null ? (double) Math.round((sceneUsageDto.getYieldWaterUsage() + attributeDiffValue)*1000)/1000 : (double) Math.round((attributeDiffValue)*1000)/1000 );
+                            sceneUsageDto.setYieldWaterUsage(sceneUsageDto.getYieldWaterUsage() != null ? (double) Math.round((sceneUsageDto.getYieldWaterUsage() + attributeDiffValue) * 1000) / 1000 : (double) Math.round((attributeDiffValue) * 1000) / 1000);
                             break;
                         case "4":
-                            sceneUsageDto.setIntakeWaterUsage(sceneUsageDto.getIntakeWaterUsage() != null ? (double) Math.round((sceneUsageDto.getIntakeWaterUsage() + attributeDiffValue )*1000)/1000 : (double) Math.round((attributeDiffValue)*1000)/1000 );
+                            sceneUsageDto.setIntakeWaterUsage(sceneUsageDto.getIntakeWaterUsage() != null ? (double) Math.round((sceneUsageDto.getIntakeWaterUsage() + attributeDiffValue) * 1000) / 1000 : (double) Math.round((attributeDiffValue) * 1000) / 1000);
                             break;
                         case "5":
-                            sceneUsageDto.setPowerUsage(sceneUsageDto.getPowerUsage() != null ? (double) Math.round((sceneUsageDto.getPowerUsage() + attributeDiffValue)*1000)/1000  : (double) Math.round((attributeDiffValue)*1000)/1000 );
+                            sceneUsageDto.setPowerUsage(sceneUsageDto.getPowerUsage() != null ? (double) Math.round((sceneUsageDto.getPowerUsage() + attributeDiffValue) * 1000) / 1000 : (double) Math.round((attributeDiffValue) * 1000) / 1000);
                             break;
                         case "6":
-                            sceneUsageDto.setDrugUsage(sceneUsageDto.getDrugUsage() != null ? (double) Math.round((sceneUsageDto.getDrugUsage() + attributeDiffValue)*1000)/1000  : (double) Math.round((attributeDiffValue)*1000)/1000 );
+                            sceneUsageDto.setDrugUsage(sceneUsageDto.getDrugUsage() != null ? (double) Math.round((sceneUsageDto.getDrugUsage() + attributeDiffValue) * 1000) / 1000 : (double) Math.round((attributeDiffValue) * 1000) / 1000);
                             break;
                     }
                 }
-                System.out.println("sceneUsageDto.intakeWaterUsage:"+sceneUsageDto.getIntakeWaterUsage());
-                if(sceneUsageDto.getYieldWaterUsage()==null)
+                if (sceneUsageDto.getYieldWaterUsage() == null)
                     sceneUsageDto.setYieldWaterUsage(sceneUsageDto.getYieldWaterUsage());
-                if(sceneUsageDto.getIntakeWaterUsage()==null)
+                else if (type != null && type.length > 0) {
+                    sceneUsageDto.setYieldWaterUsage(BigDecimal.valueOf(sceneUsageDto.getYieldWaterUsage()).divide(BigDecimal.valueOf(10000),3,BigDecimal.ROUND_HALF_UP).doubleValue());
+                }
+                if (sceneUsageDto.getIntakeWaterUsage() == null)
                     sceneUsageDto.setIntakeWaterUsage(sceneUsageDto.getIntakeWaterUsage());
-                if(sceneUsageDto.getPowerUsage()==null)
+                else if (type != null && type.length > 0) {
+                    sceneUsageDto.setIntakeWaterUsage(BigDecimal.valueOf(sceneUsageDto.getIntakeWaterUsage()).divide(BigDecimal.valueOf(10000),3,BigDecimal.ROUND_HALF_UP).doubleValue());
+                }
+                if (sceneUsageDto.getPowerUsage() == null)
                     sceneUsageDto.setPowerUsage(sceneUsageDto.getPowerUsage());
-                if(sceneUsageDto.getDrugUsage()==null)
+                else if (type != null && type.length > 0) {
+                    sceneUsageDto.setPowerUsage(BigDecimal.valueOf(sceneUsageDto.getPowerUsage()).divide(BigDecimal.valueOf(10000),3,BigDecimal.ROUND_HALF_UP).doubleValue());
+                }
+                if (sceneUsageDto.getDrugUsage() == null)
                     sceneUsageDto.setDrugUsage(sceneUsageDto.getDrugUsage());
+                else if (type != null && type.length > 0) {
+                    sceneUsageDto.setDrugUsage(BigDecimal.valueOf(sceneUsageDto.getDrugUsage()).divide(BigDecimal.valueOf(10000), 3, BigDecimal.ROUND_HALF_UP).doubleValue());
+                }
             }
         }
         return new AjaxMessage<>(ResultStatus.OK,sceneUsageDto);
     }
 
 
+
     @ApiOperation(value = "按场景ID查询所有标签信息")
     @RequestMapping(value = "/findBySceneId",method = RequestMethod.GET)
     @ResponseBody