|
@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
@@ -40,6 +41,8 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
|
|
|
private RedisUtil redisUtil;
|
|
|
@Autowired
|
|
|
private OrgInfoUtil orgInfoUtil;
|
|
|
+ @Autowired
|
|
|
+ private MonitorDataReportServiceImpl monitorDataReportServiceImpl;
|
|
|
/**
|
|
|
* 查询实时报警信息
|
|
|
* @return
|
|
@@ -117,23 +120,24 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
|
|
|
monitorDataCollectDto.setPermissonType(loginUser.getPermissonType());
|
|
|
monitorDataCollectDto.setType(3);
|
|
|
List<MonitorDataCollectDto> result = onlineMonitorMapper.selectSceneParamForLastMonth(monitorDataCollectDto);
|
|
|
- if (!StringUtils.isEmpty(monitorDataCollectDto.getSceneTypeName())) {
|
|
|
- monitorDataCollectDto.setType(1);
|
|
|
- List<MonitorDataCollectDto> calculateRes = onlineMonitorMapper.selectSceneParam(monitorDataCollectDto);
|
|
|
- GetCalMonitorData(result, calculateRes);
|
|
|
- //按水量倒序排序 如果是水源按照取水量排序,其他按照供水量
|
|
|
- result.sort(new Comparator<MonitorDataCollectDto>() {
|
|
|
- @Override
|
|
|
- public int compare(MonitorDataCollectDto o1, MonitorDataCollectDto o2) {
|
|
|
- Double d1 = monitorDataCollectDto.getSceneTypeName().equals("水源") ? (o1.getIntakeWaterUsage() == null ? 0d : o1.getIntakeWaterUsage()) : (o1.getYieldWaterUsage() == null ? 0d : o1.getYieldWaterUsage());
|
|
|
- Double d2 = monitorDataCollectDto.getSceneTypeName().equals("水源") ? (o2.getIntakeWaterUsage() == null ? 0d : o2.getIntakeWaterUsage()) : (o2.getYieldWaterUsage() == null ? 0d : o2.getYieldWaterUsage());
|
|
|
- if (d1 > d2) {
|
|
|
- return -1;
|
|
|
- }
|
|
|
- return 0;
|
|
|
- }
|
|
|
- });
|
|
|
+
|
|
|
+ for(MonitorDataCollectDto mon:result){
|
|
|
+ BigDecimal yieldWaterUsage=monitorDataReportServiceImpl.getAmountCount(null,mon.getSceneId().intValue(),"泵站",3,2);
|
|
|
+ mon.setYieldWaterUsage(yieldWaterUsage.doubleValue()/10000);
|
|
|
}
|
|
|
+ //按水量倒序排序 如果是水源按照取水量排序,其他按照供水量
|
|
|
+ result.sort(new Comparator<MonitorDataCollectDto>() {
|
|
|
+ @Override
|
|
|
+ public int compare(MonitorDataCollectDto o1, MonitorDataCollectDto o2) {
|
|
|
+ Double d1 = monitorDataCollectDto.getSceneTypeName().equals("水源") ? (o1.getIntakeWaterUsage() == null ? 0d : o1.getIntakeWaterUsage()) : (o1.getYieldWaterUsage() == null ? 0d : o1.getYieldWaterUsage());
|
|
|
+ Double d2 = monitorDataCollectDto.getSceneTypeName().equals("水源") ? (o2.getIntakeWaterUsage() == null ? 0d : o2.getIntakeWaterUsage()) : (o2.getYieldWaterUsage() == null ? 0d : o2.getYieldWaterUsage());
|
|
|
+ if (d1 > d2) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
return result;
|
|
|
}
|
|
|
/**
|
|
@@ -489,23 +493,19 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
|
|
|
List<SecDataCollectDto> secDataCollectDtos = new ArrayList<>();
|
|
|
if(!StringUtils.isEmpty(monitorDataCollectDto.getSceneTypeName()))
|
|
|
{
|
|
|
- monitorDataCollectDto.setType(1);
|
|
|
- List<MonitorDataCollectDto> calculateRes=onlineMonitorMapper.selectSceneParamForLastMonth(monitorDataCollectDto);
|
|
|
- GetCalMonitorData(result,calculateRes);
|
|
|
Map<Long,SecDataCollectDto> map = new HashMap<>();
|
|
|
// 按公司进行汇总
|
|
|
for(MonitorDataCollectDto item : result) {
|
|
|
System.out.println("公司ID:"+item.getCompanyOrgId());
|
|
|
if (!map.containsKey(item.getCompanyOrgId())) {
|
|
|
SecDataCollectDto secDataCollectDto = new SecDataCollectDto();
|
|
|
- secDataCollectDto.setYieldWaterUsage(item.getYieldWaterUsage()!=null?(double) Math.round(item.getYieldWaterUsage()/(float)100)/100:0);
|
|
|
secDataCollectDto.setCount(1);
|
|
|
secDataCollectDto.setComName(orgInfoUtil.getOrgName(item.getCompanyOrgId().intValue()));
|
|
|
+ BigDecimal yieldWaterUsage=monitorDataReportServiceImpl.getAmountCount(item.getCompanyOrgId().intValue(),null,"泵站",3,2);
|
|
|
+ secDataCollectDto.setYieldWaterUsage(yieldWaterUsage.doubleValue());
|
|
|
map.put(item.getCompanyOrgId(), secDataCollectDto);
|
|
|
} else {
|
|
|
- Double yieldWaterUsage = map.get(item.getCompanyOrgId()).getYieldWaterUsage() != null ? (double) Math.round(map.get(item.getCompanyOrgId()).getYieldWaterUsage()/(float)100)/100 : 0d;
|
|
|
Integer count = map.get(item.getCompanyOrgId()).getCount() != null ? map.get(item.getCompanyOrgId()).getCount() : 1;
|
|
|
- map.get(item.getCompanyOrgId()).setYieldWaterUsage(yieldWaterUsage + (item.getYieldWaterUsage() != null ? item.getYieldWaterUsage() : 0));
|
|
|
map.get(item.getCompanyOrgId()).setCount(count + 1);
|
|
|
}
|
|
|
}
|