Browse Source

操作标记增加标签值显示

wangyangyang 3 years ago
parent
commit
d1e6062f5f

+ 1 - 1
operation_manager/src/main/java/com/huaxu/evaluation/controller/EvaluationCycleController.java

@@ -44,7 +44,7 @@ public class EvaluationCycleController {
     public AjaxMessage<Pagination<EvaluationCycleEntity>> list(
             @RequestParam Integer pageNum,
             @RequestParam Integer pageSize,
-            @ApiParam(value = "周期类型", required = false)@RequestParam(required = false) String type,
+            @ApiParam(value = "周期类型")@RequestParam(required = false) String type,
             @RequestParam(required = false) Long companyOrgId) {
         IPage<EvaluationCycleEntity> iPage = new Page<>(pageNum, pageSize);
         EvaluationCycleEntity entity = new EvaluationCycleEntity();

+ 7 - 82
sms_water/src/main/java/com/huaxu/controller/ComDisplayController.java

@@ -57,76 +57,18 @@ public class ComDisplayController {
 
     @RequestMapping(value = "yieldPowerUsage", method = RequestMethod.GET)
     @ApiOperation(value = "综合展示--吨水电耗(总分)")
-    public AjaxMessage<ComUsageDto> yieldPowerUsage(@RequestParam(required = false) Long companyOrgId) {
+    public AjaxMessage<ComUsageDto> yieldPowerUsage(@RequestParam(required = false) Integer companyOrgId) {
         ComUsageDto sceneUsageDto = new ComUsageDto();
-        //查询公司下的场景
-        SceneEntity sceneEntity = new SceneEntity();
-        sceneEntity.setSceneTypeName("水厂");
-        List<SceneEntity> sceneEntities = sceneService.selectByTypeNameForCom(sceneEntity,companyOrgId);
-        for (SceneEntity itemScene : sceneEntities) {
-            //查询场景下的所有设备信息
-            List<DeviceDto> devices = new ArrayList<>();
-            DeviceDto deviceDto = new DeviceDto();
-            deviceDto.setSceneIds(sceneService.findByParentIdsLike(itemScene.getId()));
-            if (deviceDto.getSceneIds().size() == 0)
-                continue;
-            devices.addAll(deviceService.selectList(deviceDto));
-            //取前一天
-            LocalDateTime dateTime = LocalDateTime.now().plusDays(-1);
-            for (DeviceDto item : devices) {
-                //设备的几个参数值
-                SceneDeviceAttributeDto sceneDeviceAttributeDto = new SceneDeviceAttributeDto();
-                sceneDeviceAttributeDto.setDeviceId(item.getId());
-                sceneDeviceAttributeDto.setYear(dateTime.getYear());
-                sceneDeviceAttributeDto.setMonth(dateTime.getMonthValue());
-                sceneDeviceAttributeDto.setDay(dateTime.getDayOfMonth());
-                sceneDeviceAttributeDto.setSceneId(itemScene.getId());
-                List<SceneDeviceAttributeDto> sceneDeviceAttributeDtos = monitorInfoService.findAttributeList(sceneDeviceAttributeDto);
-                //取缓存里的数据
-                byte[] bytes = redisUtil.get(("sms_water_" + item.getDeviceCode()).getBytes());
-                if (bytes != null && bytes.length > 0) {
-                    MonitorDataEntity monitorDataEntity = (MonitorDataEntity) ByteArrayUtils.bytesToObject(bytes).get();
-                    //筛选该设备相同属性的值
-                    Map<Long, MonitorDataValueEntity> map = new HashMap<>();
-                    //将缓存中的实时数据放到map中方便进行遍历
-                    for (MonitorDataValueEntity dateValue : monitorDataEntity.getDataValues()) {
-                        map.put(dateValue.getAttributeId(), dateValue);
-                    }
-                    for (SceneDeviceAttributeDto itemAttribute : sceneDeviceAttributeDtos) {
-                        Double attributeDiffValue = 0d;
-                        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();
-                        }
-                        switch (itemAttribute.getAttributeType()) {
-                            case "3":
-                                sceneUsageDto.setYieldWaterUsage(sceneUsageDto.getYieldWaterUsage() != null ? (double) Math.round((sceneUsageDto.getYieldWaterUsage() + 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);
-                                break;
-                        }
-                    }
-                    if (sceneUsageDto.getYieldWaterUsage() == null)
-                        sceneUsageDto.setYieldWaterUsage(sceneUsageDto.getYieldWaterUsage());
-                    if (sceneUsageDto.getPowerUsage() == null)
-                        sceneUsageDto.setPowerUsage(sceneUsageDto.getPowerUsage());
-                }
-            }
-        }
-        //对数据进行单位转换 按万进行统计
-        sceneUsageDto.setYieldWaterUsage(sceneUsageDto.getYieldWaterUsage()!=null? (double) Math.round(sceneUsageDto.getYieldWaterUsage()/(float)100)/100:0);
-        sceneUsageDto.setPowerUsage(sceneUsageDto.getPowerUsage()!=null? (double) Math.round(sceneUsageDto.getPowerUsage()/(float)100)/100:0);
+        BigDecimal yieldWaterUsage = monitorDataReportService.getAmountCount(companyOrgId, null, "水厂", 3, 1);
+        BigDecimal powerUsage = monitorDataReportService.getAmountCount(companyOrgId, null, "水厂", 5, 1);
+        sceneUsageDto.setYieldWaterUsage(yieldWaterUsage.divide(BigDecimal.valueOf(10000), 3, BigDecimal.ROUND_HALF_UP).doubleValue());
+        sceneUsageDto.setPowerUsage(powerUsage.divide(BigDecimal.valueOf(10000), 3, BigDecimal.ROUND_HALF_UP).doubleValue());
         if (sceneUsageDto.getPowerUsage() != null && sceneUsageDto.getYieldWaterUsage() != null && sceneUsageDto.getPowerUsage() != 0) {
-            sceneUsageDto.setYieldPowerUsage((double) Math.round((sceneUsageDto.getPowerUsage() / sceneUsageDto.getYieldWaterUsage()) * 100) / 100);
+            sceneUsageDto.setYieldPowerUsage(powerUsage.divide(yieldWaterUsage, 3, BigDecimal.ROUND_HALF_UP).doubleValue());
         } else {
             sceneUsageDto.setYieldPowerUsage(0d);
         }
-       return new AjaxMessage<>(ResultStatus.OK, sceneUsageDto);
+        return new AjaxMessage<>(ResultStatus.OK, sceneUsageDto);
     }
     @RequestMapping(value="selectMapForWholeCompany" , method = RequestMethod.GET)
     @ApiOperation(value = "二供供水排行--总公司")
@@ -147,23 +89,6 @@ public class ComDisplayController {
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
 
-//    @RequestMapping(value="selectMapDataForCompany" , method = RequestMethod.GET)
-//    @ApiOperation(value = "综合展示--地图详细信息展示")
-//    public AjaxMessage<List<ComdisplayInfoDto>> selectMapDataForCompany() {
-//        List<ComdisplayInfoDto> receFee = comdisplayMapLocationService.selectMapDataForCompany();
-//        for (ComdisplayInfoDto item : receFee) {
-//            item.setCompanyOrgName(orgInfoUtil.getOrgName(item.getCompanyOrgId()));
-//            Double waterUsage = item.getWaterUsage() != null ? item.getWaterUsage() : 0d;//售水量
-//            //查询子公司的取水量、制水量 产销差(制水量-售水量)/制水量  X 100%
-//            //查询子公司的取水量、制水量 产销差(制水量-售水量)/制水量  X 100%
-//            item.setIntakeWaterUsage(monitorDataReportService.getAmountCount(item.getCompanyOrgId(), null, "水源", 4, 2).divide(new BigDecimal("10000"),3,BigDecimal.ROUND_HALF_UP).doubleValue());
-//            item.setYieldWaterUsage(monitorDataReportService.getAmountCount(item.getCompanyOrgId(), null, "水厂", 3, 2).divide(new BigDecimal("10000"),3,BigDecimal.ROUND_HALF_UP).doubleValue());
-//
-//            receFee.get(0).setWaterFeeRecoveryRate(BigDecimal.valueOf(item.getYieldWaterUsage()-waterUsage).divide(BigDecimal.valueOf(receFee.get(0).getYieldWaterUsage()),3,BigDecimal.ROUND_HALF_UP).doubleValue());
-//
-//        }
-//        return new AjaxMessage<>(ResultStatus.OK, receFee);
-//    }
 
     @RequestMapping(value="selectMapDataForCompany" , method = RequestMethod.GET)
     @ApiOperation(value = "综合展示--地图详细信息展示(按子公司查询)")

+ 4 - 0
sms_water/src/main/java/com/huaxu/controller/MonitorInfoController.java

@@ -168,6 +168,10 @@ public class MonitorInfoController {
         parm.setDeviceId(item.getDeviceId());
         parm.setAttributeId(item.getAttributeId());
         parm.setType(type);
+        if (type == 4) {
+            //更新压力值
+            item.setAttributeValue(monitorDataReportService.getDeviceAttributeValue(item.getDeviceCode(),item.getAttributeId()).setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue());
+        }
         DeviceSetupRecordEntity recordEntity = deviceSetupRecordService.selectLastOne(parm);
         if (recordEntity != null) {
             item.setCommonState(recordEntity.getState());

+ 4 - 0
sms_water/src/main/java/com/huaxu/entity/MonitorInfoEntity.java

@@ -48,6 +48,10 @@ public class MonitorInfoEntity{
     @ApiModelProperty(value = "设备属性")
     private Long attributeId;
 
+    @ApiModelProperty(value = "设备属性值")
+    @TableField(exist = false)
+    private Double attributeValue;
+
     /** 标签名称 */
     @ApiModelProperty(value = "标签名称(名称或场景ID)")
     private String monitorName;

+ 1 - 0
sms_water/src/main/java/com/huaxu/service/MonitorDataReportService.java

@@ -72,6 +72,7 @@ public interface MonitorDataReportService {
     List<WaterSupplyChart>  waterSupplyChartsByMonth(String sceneTypeName, Integer companyOrgId);
 
     Map<Integer, MonitorDataEntity> getIntegerMonitorDataEntityMap(LoginUser loginUser);
+    BigDecimal getDeviceAttributeValue(String deviceCode,Long attributeId);
 
     /**
      *

+ 23 - 0
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java

@@ -1417,6 +1417,29 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
        }
        return  null;
    }
+
+    /**
+     * 查询设备某个属性值
+     * @param deviceCode
+     * @param attributeId
+     * @return
+     */
+   public BigDecimal getDeviceAttributeValue(String deviceCode,Long attributeId) {
+       BigDecimal amount = BigDecimal.ZERO;
+       MonitorDataEntity monitorDataEntitie = new MonitorDataEntity();
+       //先取缓存里的数据
+       byte[] bytes = redisUtil.get(("sms_water_" + deviceCode).getBytes());
+       if (bytes != null && bytes.length > 0) {
+           monitorDataEntitie = ((MonitorDataEntity) ByteArrayUtils.bytesToObject(bytes).get());
+           for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntitie.getDataValues()) {
+               if (monitorDataValueEntity.getAttributeId().equals(attributeId)) {
+                   //获取当前数据
+                   amount = new BigDecimal(monitorDataValueEntity.getDataValue());
+               }
+           }
+       }
+       return amount;
+   }
     /**
      *
      * @param companyOrgId 公司id