|
@@ -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 = "综合展示--地图详细信息展示(按子公司查询)")
|