|
@@ -11,6 +11,7 @@ import com.huaxu.model.Pagination;
|
|
|
import com.huaxu.service.DeviceAttributeSpecsService;
|
|
|
import com.huaxu.service.OnlineMonitorService;
|
|
|
import com.huaxu.util.ByteArrayUtils;
|
|
|
+import com.huaxu.util.OrgInfoUtil;
|
|
|
import com.huaxu.util.RedisUtil;
|
|
|
import com.huaxu.util.UserUtil;
|
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
@@ -37,6 +38,8 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
|
|
|
private DeviceAttributeSpecsService deviceAttributeSpecsService;
|
|
|
@Autowired
|
|
|
private RedisUtil redisUtil;
|
|
|
+ @Autowired
|
|
|
+ private OrgInfoUtil orgInfoUtil;
|
|
|
/**
|
|
|
* 查询实时报警信息
|
|
|
* @return
|
|
@@ -442,6 +445,58 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SecDataCollectDto> selectMapForWholeCompany(MonitorDataCollectDto monitorDataCollectDto) {
|
|
|
+ LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ monitorDataCollectDto.setTenantId(loginUser.getTenantId());
|
|
|
+ monitorDataCollectDto.setProgramItems(loginUser.getProgramItemList());
|
|
|
+ monitorDataCollectDto.setUserType(loginUser.getType());
|
|
|
+ //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
|
|
|
+ monitorDataCollectDto.setPermissonType(loginUser.getPermissonType());
|
|
|
+ monitorDataCollectDto.setType(3);
|
|
|
+ List<MonitorDataCollectDto> result=onlineMonitorMapper.selectMapSuspension(monitorDataCollectDto);
|
|
|
+ List<SecDataCollectDto> secDataCollectDtos = new ArrayList<>();
|
|
|
+ if(!StringUtils.isEmpty(monitorDataCollectDto.getSceneTypeName()))
|
|
|
+ {
|
|
|
+ monitorDataCollectDto.setType(1);
|
|
|
+ List<MonitorDataCollectDto> calculateRes=onlineMonitorMapper.selectSceneParam(monitorDataCollectDto);
|
|
|
+ GetCalMonitorData(result,calculateRes);
|
|
|
+ Map<Long,SecDataCollectDto> map = new HashMap<>();
|
|
|
+ // 按公司进行汇总
|
|
|
+ for(MonitorDataCollectDto item : result) {
|
|
|
+ if (!map.containsKey(item.getCompanyOrgId())) {
|
|
|
+ SecDataCollectDto secDataCollectDto = new SecDataCollectDto();
|
|
|
+ secDataCollectDto.setYieldWaterUsage(item.getYieldWaterUsage());
|
|
|
+ secDataCollectDto.setCount(1);
|
|
|
+ //secDataCollectDto.setComName(orgInfoUtil.getOrgName(item.getCompanyOrgId().intValue()));
|
|
|
+ map.put(item.getCompanyOrgId(), secDataCollectDto);
|
|
|
+ } else {
|
|
|
+ Double yieldWaterUsage = map.get(item.getCompanyOrgId()).getYieldWaterUsage() != null ? map.get(item.getCompanyOrgId()).getYieldWaterUsage() : 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (SecDataCollectDto value : map.values()) {
|
|
|
+ secDataCollectDtos.add(value);
|
|
|
+ }
|
|
|
+ //按水量倒序排序 如果是水源按照取水量排序,其他按照供水量
|
|
|
+ secDataCollectDtos.sort(new Comparator<SecDataCollectDto>() {
|
|
|
+ @Override
|
|
|
+ public int compare(SecDataCollectDto o1, SecDataCollectDto o2) {
|
|
|
+ Double d1= monitorDataCollectDto.getSceneTypeName().equals("水源")?(o1.getYieldWaterUsage()==null?0d:o1.getYieldWaterUsage()):(o1.getYieldWaterUsage()==null?0d:o1.getYieldWaterUsage());
|
|
|
+ Double d2= monitorDataCollectDto.getSceneTypeName().equals("水源")?(o2.getYieldWaterUsage()==null?0d:o2.getYieldWaterUsage()):(o2.getYieldWaterUsage()==null?0d:o2.getYieldWaterUsage());
|
|
|
+ if(d1>d2){
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return secDataCollectDtos;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取在线数据及计算数据
|
|
|
*/
|