|
@@ -1,6 +1,8 @@
|
|
|
package com.zcxk.charge.web.service.impl;
|
|
|
|
|
|
import com.zcxk.charge.api.dto.query.DeviceWaterDto;
|
|
|
+import com.zcxk.charge.api.dto.query.HomePageReportDto;
|
|
|
+import com.zcxk.charge.api.enums.ParamTypeEnum;
|
|
|
import com.zcxk.charge.api.enums.SceneTypeEnum;
|
|
|
import com.zcxk.charge.api.vo.*;
|
|
|
import com.zcxk.charge.web.client.UserCenterClient;
|
|
@@ -13,10 +15,13 @@ import com.zcxk.charge.core.entity.MonitorDataEntity;
|
|
|
import com.zcxk.charge.core.entity.MonitorDataValueEntity;
|
|
|
import com.zcxk.charge.web.service.HomePageReportService;
|
|
|
import com.zcxk.charge.web.service.MonitorDataReportService;
|
|
|
+import com.zcxk.core.common.pojo.UserCondition;
|
|
|
import com.zcxk.core.oauth2.pojo.LoginUser;
|
|
|
import com.zcxk.core.oauth2.util.UserUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import sun.reflect.misc.ConstructorUtil;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
@@ -53,16 +58,17 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
|
|
|
@Override
|
|
|
public List<DeviceWaterSupplyVo> deviceWaterReportForSixMonth(Integer companyOrgId, String sceneType, Integer parmType) {
|
|
|
- LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
- String tenantId = loginUser.getTenantId();
|
|
|
LocalDate localDate = LocalDate.now();
|
|
|
- List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getDeviceWaterForSixMonth(companyOrgId, sceneType, parmType, tenantId, loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
+ HomePageReportDto dto = new HomePageReportDto();
|
|
|
+ dto.setCompanyOrgId(companyOrgId);
|
|
|
+ dto.setSceneType(sceneType);
|
|
|
+ dto.setParmType(parmType);
|
|
|
+ List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getDeviceWaterForSixMonth(dto, UserUtil.getCurrentUser().getUserCondition());
|
|
|
BigDecimal amountCount = monitorDataReportService.getAmountCount(companyOrgId, null, sceneType, parmType, 2);
|
|
|
|
|
|
DeviceWaterSupplyVo deviceWaterSupplyMonth = convertDeviceWaterSupplyVo(1, amountCount != null ? amountCount.divide(new BigDecimal("10000")) : BigDecimal.ZERO, localDate);
|
|
|
deviceWaterSupplyMonth.setDateLabel(localDate.getYear() + "-" + localDate.getMonthValue());
|
|
|
deviceWaterSupplies.add(0, deviceWaterSupplyMonth);
|
|
|
-
|
|
|
int length = 6;
|
|
|
for (int i = 0; i < length; i++) {
|
|
|
LocalDate newLocalDate = localDate.plusMonths(-i);
|
|
@@ -87,7 +93,9 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
@Override
|
|
|
public CompanyCountVo countSceneByType(Integer companyOrgId) {
|
|
|
LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
- CompanyCountVo companyCount = homePageReportMapper.countSceneByType(companyOrgId, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
+ HomePageReportDto dto = new HomePageReportDto();
|
|
|
+ dto.setCompanyOrgId(companyOrgId);
|
|
|
+ CompanyCountVo companyCount = homePageReportMapper.countSceneByType(dto, loginUser.getUserCondition());
|
|
|
Integer company = userCenterClient.countCompanyByUser();
|
|
|
companyCount.setCompany(company != null ? company : 0);
|
|
|
return companyCount;
|
|
@@ -99,7 +107,9 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
Map<Integer, MonitorDataEntity> monitorDataMap = monitorDataReportService.getIntegerMonitorDataEntityMap(loginUser);
|
|
|
LocalDate localDate = LocalDate.now();
|
|
|
- CompanyProduceVo companyProduce = homePageReportMapper.getWaterSalesDetails(companyOrgId, loginUser.getTenantId(), loginUser.getType(), loginUser.getProgramItemList());
|
|
|
+ HomePageReportDto homeDto = new HomePageReportDto();
|
|
|
+ homeDto.setCompanyOrgId(companyOrgId);
|
|
|
+ CompanyProduceVo companyProduce = homePageReportMapper.getWaterSalesDetails(homeDto, loginUser.getUserCondition());
|
|
|
if (companyProduce == null) {
|
|
|
companyProduce = new CompanyProduceVo();
|
|
|
}
|
|
@@ -129,18 +139,25 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
public WaterQualityRate getWaterQualification(Integer companyOrgId) {
|
|
|
LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
WaterQualityRate waterQualityRate = new WaterQualityRate();
|
|
|
- //取水
|
|
|
+ // 取水
|
|
|
List<Integer> list1 = Stream.of(15, 7, 9, 11, 18, 19).collect(Collectors.toList());
|
|
|
- //供水
|
|
|
+ // 供水
|
|
|
List<Integer> list2 = Stream.of(15, 8, 10, 11, 18, 19).collect(Collectors.toList());
|
|
|
- //管网水质
|
|
|
- WaterQualityRateVo pipeNetworkQuality = homePageReportMapper.getPipeNetworkQualification(companyOrgId, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //水源水质
|
|
|
- WaterQualityRateVo waterSourceQuality = homePageReportMapper.getWaterQualification(companyOrgId, "水源", list1, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //水厂水质
|
|
|
- WaterQualityRateVo waterFactoryQuality = homePageReportMapper.getWaterQualification(companyOrgId, "水厂", list2, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //二供水质
|
|
|
- WaterQualityRateVo pumpingStationQuality = homePageReportMapper.getWaterQualification(companyOrgId, "泵站", list2, loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
+ HomePageReportDto homeDto = new HomePageReportDto();
|
|
|
+ homeDto.setCompanyOrgId(companyOrgId);
|
|
|
+ homeDto.setSceneType(SceneTypeEnum.WATER_SOURCE.getMessage());
|
|
|
+ homeDto.setParmTypes(list1);
|
|
|
+ // 管网水质
|
|
|
+ WaterQualityRateVo pipeNetworkQuality = homePageReportMapper.getPipeNetworkQualification(homeDto, loginUser.getUserCondition());
|
|
|
+ // 水源水质
|
|
|
+ WaterQualityRateVo waterSourceQuality = homePageReportMapper.getWaterQualification(homeDto, loginUser.getUserCondition());
|
|
|
+ // 水厂水质
|
|
|
+ homeDto.setSceneType(SceneTypeEnum.WATER_WORKS.getMessage());
|
|
|
+ homeDto.setParmTypes(list2);
|
|
|
+ WaterQualityRateVo waterFactoryQuality = homePageReportMapper.getWaterQualification(homeDto, loginUser.getUserCondition());
|
|
|
+ // 二供水质
|
|
|
+ homeDto.setSceneType(SceneTypeEnum.PUMPING_STATION.getMessage());
|
|
|
+ WaterQualityRateVo pumpingStationQuality = homePageReportMapper.getWaterQualification(homeDto, loginUser.getUserCondition());
|
|
|
|
|
|
if (pipeNetworkQuality != null) {
|
|
|
waterQualityRate.setAbnormal(waterQualityRate.getAbnormal() + pipeNetworkQuality.getAbnormal());
|
|
@@ -150,6 +167,7 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
} else {
|
|
|
waterQualityRate.setAverageQuality(new BigDecimal("100"));
|
|
|
}
|
|
|
+
|
|
|
if (waterSourceQuality != null) {
|
|
|
waterQualityRate.setAbnormal(waterQualityRate.getAbnormal() + waterSourceQuality.getAbnormal());
|
|
|
waterQualityRate.setWaterSourceQuality(waterSourceQuality.getAverageQuality());
|
|
@@ -179,24 +197,14 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
return waterQualityRate;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- /**
|
|
|
- * 水厂泵站 3 水源 4 水位 12
|
|
|
- * @return
|
|
|
- */
|
|
|
@Override
|
|
|
public List<DeviceWaterSupplyVo> monitorDataFifteenDays(Integer sceneId, String sceneType, Integer parmType) {
|
|
|
- BigDecimal multipleData;
|
|
|
- if (SceneTypeEnum.PUMPING_STATION.getMessage().equals(sceneType)) {
|
|
|
- multipleData = new BigDecimal("1");
|
|
|
- } else {
|
|
|
- multipleData = new BigDecimal("10000");
|
|
|
- }
|
|
|
- LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
-
|
|
|
- List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getMonitorDataFifteenDays(sceneId, sceneType, parmType,
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
-
|
|
|
+ BigDecimal multipleData = getMultipleData(sceneType);
|
|
|
+ HomePageReportDto homeDto = new HomePageReportDto();
|
|
|
+ homeDto.setSceneId(sceneId);
|
|
|
+ homeDto.setSceneType(sceneType);
|
|
|
+ homeDto.setParmType(parmType);
|
|
|
+ List<DeviceWaterSupplyVo> deviceWaterSupplies = homePageReportMapper.getMonitorDataFifteenDays(homeDto, UserUtil.getCurrentUser().getUserCondition());
|
|
|
LocalDate localDate = LocalDate.now();
|
|
|
//当天数据
|
|
|
BigDecimal amountCount = monitorDataReportService.getAmountCount(null, sceneId, sceneType, parmType, 1);
|
|
@@ -211,8 +219,7 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
int length = 15;
|
|
|
for (int i = 0; i < length; i++) {
|
|
|
LocalDate newLocalDate = localDate.plusDays(-i);
|
|
|
- if (i == deviceWaterSupplies.size()
|
|
|
- || !newLocalDate.isEqual(LocalDate.of(deviceWaterSupplies.get(i).getYear(),
|
|
|
+ if (i == deviceWaterSupplies.size() || !newLocalDate.isEqual(LocalDate.of(deviceWaterSupplies.get(i).getYear(),
|
|
|
deviceWaterSupplies.get(i).getMonth(),
|
|
|
deviceWaterSupplies.get(i).getDay()))) {
|
|
|
DeviceWaterSupplyVo deviceWaterSupply = convertDeviceWaterSupplyVo(i, BigDecimal.ZERO, newLocalDate);
|
|
@@ -220,7 +227,7 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
deviceWaterSupplies.add(i, deviceWaterSupply);
|
|
|
} else {
|
|
|
deviceWaterSupplies.get(i).setOrderNo(i + 1);
|
|
|
- //不是水位就除以1000 转化为万
|
|
|
+ // 不是水位就除以1000 转化为万
|
|
|
if (parmType != 12) {
|
|
|
deviceWaterSupplies.get(i).amountConvert(multipleData);
|
|
|
}
|
|
@@ -228,7 +235,6 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
}
|
|
|
}
|
|
|
deviceWaterSupplies.sort(Comparator.comparing(DeviceWaterSupplyVo::getOrderNo).reversed());
|
|
|
-
|
|
|
return deviceWaterSupplies;
|
|
|
}
|
|
|
|
|
@@ -245,85 +251,84 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
|
|
|
@Override
|
|
|
public WaterQualityRateForScene waterQualityRateForWaterSource(Integer sceneId) {
|
|
|
-
|
|
|
- LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ UserCondition userCondition = UserUtil.getCurrentUser().getUserCondition();
|
|
|
LocalDate localDate = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
|
|
|
- //余氯
|
|
|
- BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(localDate, 11, sceneId, "水源",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //浊度
|
|
|
- BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(localDate, 9, sceneId, "水源",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //COD
|
|
|
- BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(localDate, 15, sceneId, "水源",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //PH
|
|
|
- BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(localDate, 7, sceneId, "水源",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //压力
|
|
|
- BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(localDate, 13, sceneId, "水源",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
-
|
|
|
- WaterQualityRateForScene waterQualityRateForScene = new WaterQualityRateForScene();
|
|
|
- waterQualityRateForScene.setChlorine(chlorine != null ? chlorine : new BigDecimal("100"));
|
|
|
- waterQualityRateForScene.setCod(cod != null ? cod : new BigDecimal("100"));
|
|
|
- waterQualityRateForScene.setTurbidity(turbidity != null ? turbidity : new BigDecimal("100"));
|
|
|
- waterQualityRateForScene.setPh(ph != null ? ph : new BigDecimal("100"));
|
|
|
- waterQualityRateForScene.setPressure(pressure != null ? pressure : new BigDecimal("100"));
|
|
|
- return waterQualityRateForScene;
|
|
|
+ // 余氯
|
|
|
+ HomePageReportDto homeDto = new HomePageReportDto();
|
|
|
+ homeDto.setMonthDate(localDate);
|
|
|
+ homeDto.setParmType(ParamTypeEnum.DPD.getCode());
|
|
|
+ homeDto.setSceneId(sceneId);
|
|
|
+ homeDto.setSceneType(SceneTypeEnum.WATER_SOURCE.getMessage());
|
|
|
+ BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // 浊度
|
|
|
+ homeDto.setParmType(ParamTypeEnum.TURBIDITY_9.getCode());
|
|
|
+ BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // COD
|
|
|
+ homeDto.setParmType(ParamTypeEnum.COD.getCode());
|
|
|
+ BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // PH
|
|
|
+ homeDto.setParmType(ParamTypeEnum.PH_7.getCode());
|
|
|
+ BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // 压力
|
|
|
+ homeDto.setParmType(ParamTypeEnum.PRESSURE.getCode());
|
|
|
+ BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ return convertWaterQualityRateForScene(chlorine, cod, ph, turbidity, pressure);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public WaterQualityRateForScene waterQualityRateForPumpingStation(Integer sceneId) {
|
|
|
|
|
|
- LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ UserCondition userCondition = UserUtil.getCurrentUser().getUserCondition();
|
|
|
LocalDate localDate = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
|
|
|
- //余氯
|
|
|
- BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(localDate, 11, sceneId, "泵站",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //浊度
|
|
|
- BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(localDate, 10, sceneId, "泵站",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //COD
|
|
|
- BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(localDate, 15, sceneId, "泵站",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //PH
|
|
|
- BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(localDate, 8, sceneId, "泵站",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //压力
|
|
|
- BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(localDate, 13, sceneId, "泵站",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
-
|
|
|
- WaterQualityRateForScene waterQualityRateForScene = new WaterQualityRateForScene();
|
|
|
- waterQualityRateForScene.setChlorine(chlorine != null ? chlorine : new BigDecimal("100"));
|
|
|
- waterQualityRateForScene.setCod(cod != null ? cod : new BigDecimal("100"));
|
|
|
- waterQualityRateForScene.setTurbidity(turbidity != null ? turbidity : new BigDecimal("100"));
|
|
|
- waterQualityRateForScene.setPh(ph != null ? ph : new BigDecimal("100"));
|
|
|
- waterQualityRateForScene.setPressure(pressure != null ? pressure : new BigDecimal("100"));
|
|
|
- return waterQualityRateForScene;
|
|
|
+ // 泵站
|
|
|
+ HomePageReportDto homeDto = new HomePageReportDto();
|
|
|
+ homeDto.setMonthDate(localDate);
|
|
|
+ homeDto.setSceneType(SceneTypeEnum.PUMPING_STATION.getMessage());
|
|
|
+ homeDto.setSceneId(sceneId);
|
|
|
+ // 余氯
|
|
|
+ homeDto.setParmType(ParamTypeEnum.DPD.getCode());
|
|
|
+ BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // 浊度
|
|
|
+ homeDto.setParmType(ParamTypeEnum.TURBIDITY_10.getCode());
|
|
|
+ BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // COD
|
|
|
+ homeDto.setParmType(ParamTypeEnum.COD.getCode());
|
|
|
+ BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // PH
|
|
|
+ homeDto.setParmType(ParamTypeEnum.PH_8.getCode());
|
|
|
+ BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // 压力
|
|
|
+ homeDto.setParmType(ParamTypeEnum.PRESSURE.getCode());
|
|
|
+ BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ return convertWaterQualityRateForScene(chlorine, cod, ph, turbidity, pressure);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public WaterQualityRateForScene waterQualityRateForWaterFactory(Integer sceneId) {
|
|
|
|
|
|
- LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ UserCondition userCondition = UserUtil.getCurrentUser().getUserCondition();
|
|
|
LocalDate localDate = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
|
|
|
- //余氯
|
|
|
- BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(localDate, 11, sceneId, "水厂",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //浊度
|
|
|
- BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(localDate, 10, sceneId, "水厂",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //PH
|
|
|
- BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(localDate, 8, sceneId, "水厂",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //COD
|
|
|
- BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(localDate, 15, sceneId, "水厂",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
- //压力
|
|
|
- BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(localDate, 13, sceneId, "水厂",
|
|
|
- loginUser.getTenantId(), loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
-
|
|
|
+ // 水厂
|
|
|
+ HomePageReportDto homeDto = new HomePageReportDto();
|
|
|
+ homeDto.setMonthDate(localDate);
|
|
|
+ homeDto.setSceneId(sceneId);
|
|
|
+ homeDto.setSceneType(SceneTypeEnum.WATER_WORKS.getMessage());
|
|
|
+ // 余氯
|
|
|
+ homeDto.setParmType(ParamTypeEnum.DPD.getCode());
|
|
|
+ BigDecimal chlorine = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // 浊度
|
|
|
+ homeDto.setParmType(ParamTypeEnum.TURBIDITY_10.getCode());
|
|
|
+ BigDecimal turbidity = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // PH
|
|
|
+ homeDto.setParmType(ParamTypeEnum.PH_8.getCode());
|
|
|
+ BigDecimal ph = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // COD
|
|
|
+ homeDto.setParmType(ParamTypeEnum.COD.getCode());
|
|
|
+ BigDecimal cod = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
+ // 压力
|
|
|
+ homeDto.setParmType(ParamTypeEnum.PRESSURE.getCode());
|
|
|
+ BigDecimal pressure = homePageReportMapper.getWaterQualificationByMonth(homeDto, userCondition);
|
|
|
WaterQualityRateForScene waterQualityRateForScene = new WaterQualityRateForScene();
|
|
|
waterQualityRateForScene.setChlorine(chlorine != null ? chlorine : new BigDecimal("100"));
|
|
|
waterQualityRateForScene.setTurbidity(turbidity != null ? turbidity : new BigDecimal("100"));
|
|
@@ -335,54 +340,40 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
|
|
|
@Override
|
|
|
public List<WaterSupplyChart> waterEnergyConsumption(Integer sceneId, String sceneType) {
|
|
|
- BigDecimal multipleData;
|
|
|
- if (SceneTypeEnum.PUMPING_STATION.getMessage().equals(sceneType)) {
|
|
|
- multipleData = new BigDecimal("1");
|
|
|
- } else {
|
|
|
- multipleData = new BigDecimal("10000");
|
|
|
- }
|
|
|
-
|
|
|
- LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
- String tenantId = loginUser.getTenantId();
|
|
|
- List<WaterSupplyDataVo> waterSupplyDatas = homePageReportMapper.getWaterSupplyData(sceneId, sceneType, tenantId, loginUser.getType(), loginUser.getPermissonType(), loginUser.getProgramItemList());
|
|
|
+ BigDecimal multipleData = getMultipleData(sceneType);
|
|
|
+ HomePageReportDto homeDto = new HomePageReportDto();
|
|
|
+ homeDto.setSceneId(sceneId);
|
|
|
+ homeDto.setSceneType(sceneType);
|
|
|
+ List<WaterSupplyDataVo> supplyDataVos = homePageReportMapper.getWaterSupplyData(homeDto, UserUtil.getCurrentUser().getUserCondition());
|
|
|
LocalDate localDate = LocalDate.now();
|
|
|
//当天数据
|
|
|
BigDecimal waterDataCountDay = monitorDataReportService.getAmountCount(null, sceneId, sceneType, 3, 1);
|
|
|
BigDecimal powerDataCountDay = monitorDataReportService.getAmountCount(null, sceneId, sceneType, 5, 1);
|
|
|
- BigDecimal drugDataCountDay = monitorDataReportService.getAmountCount(null, sceneId, sceneType, 6, 1);
|
|
|
+ BigDecimal drugDataCountDay = monitorDataReportService.getAmountCount(null, sceneId, sceneType, 6, 1);
|
|
|
WaterSupplyChart waterSupplyChartToday = new WaterSupplyChart();
|
|
|
waterSupplyChartToday.setSort(localDate.getDayOfMonth());
|
|
|
waterSupplyChartToday.setDate(DateTimeFormatter.ofPattern("yyyy-MM-dd").format(localDate));
|
|
|
waterSupplyChartToday.setWaterData(waterDataCountDay.divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
|
|
|
waterSupplyChartToday.setPowerData(powerDataCountDay.divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
|
|
|
waterSupplyChartToday.setDrugData(drugDataCountDay);
|
|
|
- //供水
|
|
|
- final int gongshui = 3;
|
|
|
- //电耗
|
|
|
- final int dianHao = 5;
|
|
|
- //药耗
|
|
|
- final int yaoHao = 6;
|
|
|
List<WaterSupplyChart> waterSupplyCharts = new ArrayList<>();
|
|
|
- waterSupplyDatas.stream()
|
|
|
- .collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
|
|
|
- .forEach((key, value) -> {
|
|
|
- WaterSupplyChart waterSupplyChart = new WaterSupplyChart();
|
|
|
- waterSupplyChart.setDate(key);
|
|
|
- value.stream().forEach(waterSupplyData -> {
|
|
|
- waterSupplyChart.setSort(waterSupplyData.getDay());
|
|
|
- if (waterSupplyData.getParmType() == gongshui &&waterSupplyData.getAmount()!=null) {
|
|
|
- waterSupplyChart.setWaterData(waterSupplyData.getAmount().divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
|
|
|
- } else if (waterSupplyData.getParmType() == dianHao &&waterSupplyData.getAmount()!=null) {
|
|
|
- waterSupplyChart.setPowerData(waterSupplyData.getAmount().divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
|
|
|
- } else if (waterSupplyData.getParmType() == yaoHao &&waterSupplyData.getAmount()!=null) {
|
|
|
- waterSupplyChart.setDrugData(waterSupplyData.getAmount());
|
|
|
- }
|
|
|
- });
|
|
|
- waterSupplyCharts.add(waterSupplyChart);
|
|
|
+ supplyDataVos.stream().collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
|
|
|
+ .forEach((key, value) -> {
|
|
|
+ WaterSupplyChart waterSupplyChart = new WaterSupplyChart();
|
|
|
+ waterSupplyChart.setDate(key);
|
|
|
+ value.stream().forEach(waterSupplyData -> {
|
|
|
+ waterSupplyChart.setSort(waterSupplyData.getDay());
|
|
|
+ if (waterSupplyData.getParmType() == ParamTypeEnum.WATER_SUPPLY.getCode() &&waterSupplyData.getAmount()!=null) {
|
|
|
+ waterSupplyChart.setWaterData(waterSupplyData.getAmount().divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
|
|
|
+ } else if (waterSupplyData.getParmType() == ParamTypeEnum.KWH.getCode() &&waterSupplyData.getAmount()!=null) {
|
|
|
+ waterSupplyChart.setPowerData(waterSupplyData.getAmount().divide(multipleData, 3, BigDecimal.ROUND_HALF_UP));
|
|
|
+ } else if (waterSupplyData.getParmType() == ParamTypeEnum.DRUG_CONSUMPTION.getCode() &&waterSupplyData.getAmount()!=null) {
|
|
|
+ waterSupplyChart.setDrugData(waterSupplyData.getAmount());
|
|
|
+ }
|
|
|
});
|
|
|
-
|
|
|
+ waterSupplyCharts.add(waterSupplyChart);
|
|
|
+ });
|
|
|
waterSupplyCharts.sort(Comparator.comparing(WaterSupplyChart::getSort));
|
|
|
-
|
|
|
Integer maxDay = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
|
|
|
for (int i = 0; i < maxDay; i++) {
|
|
|
if (i + 1 == localDate.getDayOfMonth()) {
|
|
@@ -390,7 +381,6 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
} else if (i == waterSupplyCharts.size() || !waterSupplyCharts.get(i).getSort().equals(i + 1)) {
|
|
|
waterSupplyCharts.add(i, new WaterSupplyChart(i + 1, localDate.getYear() + "-" + localDate.getMonthValue() + "-" + (i + 1)));
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
return waterSupplyCharts;
|
|
|
}
|
|
@@ -400,14 +390,20 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
private BigDecimal getAmountForDay(List<DeviceWaterDetailVo> deviceIntakeWaterDetailsForDay, Map<Integer, MonitorDataEntity> monitorDataMap){
|
|
|
BigDecimal waterIntakeAmountForDay = BigDecimal.ZERO;
|
|
|
for (DeviceWaterDetailVo deviceWaterDetail : deviceIntakeWaterDetailsForDay) {
|
|
|
+ if (deviceWaterDetail.getLatestValue() == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
MonitorDataEntity monitorDataEntity = monitorDataMap.get(deviceWaterDetail.getDeviceId());
|
|
|
- if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0
|
|
|
- && deviceWaterDetail != null && deviceWaterDetail.getLatestValue() != null) {
|
|
|
- for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
|
|
|
- if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
|
|
|
- //累计当天流量
|
|
|
- waterIntakeAmountForDay = waterIntakeAmountForDay.add(new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()));
|
|
|
- }
|
|
|
+ if (monitorDataEntity == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(monitorDataEntity.getDataValues())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
|
|
|
+ if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
|
|
|
+ // 累计当天流量
|
|
|
+ waterIntakeAmountForDay = waterIntakeAmountForDay.add(new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -440,4 +436,25 @@ public class HomePageReportServiceImpl implements HomePageReportService {
|
|
|
return (waterSupplyAmountForMonth.add(waterSupplyAmountForDay)).divide(new BigDecimal("10000"), 3, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
|
|
|
+ private WaterQualityRateForScene convertWaterQualityRateForScene(BigDecimal chlorine, BigDecimal cod, BigDecimal ph, BigDecimal turbidity, BigDecimal pressure){
|
|
|
+ WaterQualityRateForScene waterQualityRateForScene = new WaterQualityRateForScene();
|
|
|
+ waterQualityRateForScene.setChlorine(chlorine != null ? chlorine : new BigDecimal("100"));
|
|
|
+ waterQualityRateForScene.setCod(cod != null ? cod : new BigDecimal("100"));
|
|
|
+ waterQualityRateForScene.setTurbidity(turbidity != null ? turbidity : new BigDecimal("100"));
|
|
|
+ waterQualityRateForScene.setPh(ph != null ? ph : new BigDecimal("100"));
|
|
|
+ waterQualityRateForScene.setPressure(pressure != null ? pressure : new BigDecimal("100"));
|
|
|
+ return waterQualityRateForScene;
|
|
|
+ }
|
|
|
+
|
|
|
+ private BigDecimal getMultipleData(String sceneType){
|
|
|
+ BigDecimal multipleData;
|
|
|
+ if (SceneTypeEnum.PUMPING_STATION.getMessage().equals(sceneType)) {
|
|
|
+ multipleData = new BigDecimal("1");
|
|
|
+ } else {
|
|
|
+ multipleData = new BigDecimal("10000");
|
|
|
+ }
|
|
|
+ return multipleData;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|