|
@ -1,5 +1,6 @@ |
|
|
package com.lzbi.bi.service; |
|
|
package com.lzbi.bi.service; |
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
import com.lzbi.bi.domain.*; |
|
|
import com.lzbi.bi.domain.*; |
|
|
import com.lzbi.common.config.TargetModelConfig; |
|
|
import com.lzbi.common.config.TargetModelConfig; |
|
|
import com.lzbi.common.constant.BizConstants; |
|
|
import com.lzbi.common.constant.BizConstants; |
|
@ -22,10 +23,14 @@ import org.springframework.stereotype.Service; |
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
|
import java.math.BigDecimal; |
|
|
import java.math.BigDecimal; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
|
|
|
import java.util.HashMap; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Map; |
|
|
import java.util.Map; |
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
|
|
|
|
import static java.util.stream.Collectors.groupingBy; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 大屏业务 |
|
|
* 大屏业务 |
|
@ -47,112 +52,68 @@ public class DcBusiDataScreenNewService { |
|
|
@Resource |
|
|
@Resource |
|
|
private DcBusiTargetDraftDaynewService dcBusiTargetDraftDaynewService; |
|
|
private DcBusiTargetDraftDaynewService dcBusiTargetDraftDaynewService; |
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Resource |
|
|
private ISysDeptService deptService; |
|
|
private ISysDeptService iSysDeptService; |
|
|
|
|
|
|
|
|
public List<UserIOverViewVO> getUserOverview(DcBusDataScreenNewReq dcBusDataScreenNewReq) { |
|
|
public List<UserIOverViewVO> getUserOverview(TargetDraftDaynewReqVo vo) { |
|
|
List<UserIOverViewVO> list = new ArrayList<>(); |
|
|
List<UserIOverViewVO> list = new ArrayList<>(); |
|
|
DcBusiTargetDraftDay params = new DcBusiTargetDraftDay(); |
|
|
List<String> reportNames = Stream.of(ReportNameEnum.OPENING_AREA.getName(), ReportNameEnum.HEATING_AREA.getName()).collect(Collectors.toList()); |
|
|
BeanUtils.copyBeanProp(params, dcBusDataScreenNewReq); |
|
|
vo.setAssetType("0").setAssetLevel("10").setReportNames(reportNames).setOrgIds(Stream.of(vo.getOrgId()).collect(Collectors.toList())); |
|
|
String yearMonthDay = dcBusDataScreenNewReq.getYearMonthDay(); |
|
|
List<TargetDraftDaynewResVo> targetDraftDaynewResVos = dcBusiTargetDraftDaynewService.selectTargetDraftDaynewList(vo); |
|
|
String[] yearMonthDayArr = yearMonthDay.split("-"); |
|
|
if (CollUtil.isEmpty(targetDraftDaynewResVos)) { |
|
|
if (yearMonthDayArr.length > 1) { |
|
|
return list; |
|
|
params.setCountYear(yearMonthDayArr[0]); |
|
|
|
|
|
params.setCountMonth(yearMonthDayArr[1]); |
|
|
|
|
|
} |
|
|
|
|
|
params.setTargetModelCode(targetModelConfig.getUser()); |
|
|
|
|
|
List<DcBusiTargetDraftDay> dcBusiTargetDraftDayList = dcBusiTargetDraftDayMapper.selectDcBusiTargetDraftDayList(params); |
|
|
|
|
|
if (CollectionUtils.isNotEmpty(dcBusiTargetDraftDayList)) { |
|
|
|
|
|
Map<Object, List<DcBusiTargetDraftDay>> map; |
|
|
|
|
|
if (ObjectUtils.isEmpty(dcBusDataScreenNewReq.getOrgId())) { |
|
|
|
|
|
map = dcBusiTargetDraftDayList.stream().collect(Collectors.groupingBy(DcBusiTargetDraftDay::getOrgId)); |
|
|
|
|
|
} else { |
|
|
|
|
|
map = dcBusiTargetDraftDayList.stream().collect(Collectors.groupingBy(DcBusiTargetDraftDay::getAssetCode)); |
|
|
|
|
|
} |
|
|
|
|
|
map.forEach((key, value) -> { |
|
|
|
|
|
UserIOverViewVO userIOverViewVO = new UserIOverViewVO(); |
|
|
|
|
|
if (ObjectUtils.isEmpty(dcBusDataScreenNewReq.getOrgId())) { |
|
|
|
|
|
userIOverViewVO.setTitle(value.get(0).getOrgName()); |
|
|
|
|
|
} else { |
|
|
|
|
|
userIOverViewVO.setTitle(value.get(0).getAssetName()); |
|
|
|
|
|
} |
|
|
|
|
|
BigDecimal plan = new BigDecimal(0); |
|
|
|
|
|
BigDecimal sum = new BigDecimal(0); |
|
|
|
|
|
for (int i = 0, len = value.size(); i < len; i++) { |
|
|
|
|
|
plan = plan.add(value.get(i).getValPlan()); |
|
|
|
|
|
sum = sum.add(value.get(i).getValSum()); |
|
|
|
|
|
} |
|
|
|
|
|
userIOverViewVO.setTotal(plan); |
|
|
|
|
|
userIOverViewVO.setReal(sum); |
|
|
|
|
|
list.add(userIOverViewVO); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
list.add(UserIOverViewVO.builder() |
|
|
|
|
|
.real(targetDraftDaynewResVos.stream().filter(t->ReportNameEnum.OPENING_AREA.getName().equals(t.getReportName())).findFirst().orElse(new TargetDraftDaynewResVo()).getValueResult()) |
|
|
|
|
|
.total(targetDraftDaynewResVos.stream().filter(t->ReportNameEnum.HEATING_AREA.getName().equals(t.getReportName())).findFirst().orElse(new TargetDraftDaynewResVo()).getValueResult()) |
|
|
|
|
|
.title("供暖面积") |
|
|
|
|
|
.build()); |
|
|
return list; |
|
|
return list; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public ProvideAnswerWaterAverageTemperatureVO getProvideAnswerWaterAverageTemperature(DcBusDataScreenNewReq dcBusDataScreenNewReq) { |
|
|
public ProvideAnswerWaterAverageTemperatureVO getProvideAnswerWaterAverageTemperature(TargetDraftDaynewReqVo vo) { |
|
|
ProvideAnswerWaterAverageTemperatureVO provideAnswerWaterAverageTemperatureVO = new ProvideAnswerWaterAverageTemperatureVO(); |
|
|
ProvideAnswerWaterAverageTemperatureVO resVO = new ProvideAnswerWaterAverageTemperatureVO(); |
|
|
ProvideAnswerWaterAverageTemperatureReq params = new ProvideAnswerWaterAverageTemperatureReq(); |
|
|
List<SysDept> sysDepts = iSysDeptService.selecttList(SysDept.builder().parentId(vo.getOrgId()).orgType(BizConstants.DcDeptAttr.HEAT_SOURCE).build()); |
|
|
params.setCompanyId(dcBusDataScreenNewReq.getCompanyId()); |
|
|
if (CollUtil.isEmpty(sysDepts)) { |
|
|
String yearMonthDay = dcBusDataScreenNewReq.getYearMonthDay(); |
|
|
return resVO; |
|
|
String[] yearMonthDayArr = yearMonthDay.split("-"); |
|
|
} |
|
|
if (yearMonthDayArr.length > 1) { |
|
|
List<String> reportNames = Stream.of(ReportNameEnum.WATER_SUPPLY_TEMPERATURE.getName(), ReportNameEnum.RETURN_WATER_TEMPERATURE.getName()).collect(Collectors.toList()); |
|
|
params.setYear(yearMonthDayArr[0]); |
|
|
List<Long> orgIds = sysDepts.stream().map(SysDept::getDeptId).distinct().collect(Collectors.toList()); |
|
|
params.setMonth(yearMonthDayArr[1]); |
|
|
vo.setAssetType("0").setAssetLevel("20").setReportNames(reportNames).setOrgIds(orgIds); |
|
|
|
|
|
List<TargetDraftDaynewResVo> targetDraftDaynewResVos = dcBusiTargetDraftDaynewService.selectTargetDraftDaynewList(vo); |
|
|
|
|
|
if (CollUtil.isEmpty(targetDraftDaynewResVos)) { |
|
|
|
|
|
return resVO; |
|
|
} |
|
|
} |
|
|
params.setProvideWaterAverageTemperature(targetModelConfig.getProvideWaterAverageTemperature()); |
|
|
|
|
|
params.setAnswerWaterAverageTemperature(targetModelConfig.getAnswerWaterAverageTemperature()); |
|
|
|
|
|
List<ProvideAnswerWaterAverageTemperatureDTO> provideAnswerWaterAverageTemperatureDTOS = dcBusiTargetDraftDayMapper.selectProvideAnswerWaterAverageTemperatureList(params); |
|
|
|
|
|
if (CollectionUtils.isNotEmpty(provideAnswerWaterAverageTemperatureDTOS)) { |
|
|
|
|
|
List<String> xArr = new ArrayList<>(); |
|
|
List<String> xArr = new ArrayList<>(); |
|
|
List<BigDecimal> yArr1 = new ArrayList<>(); |
|
|
List<BigDecimal> yArr1 = new ArrayList<>(); |
|
|
List<BigDecimal> yArr2 = new ArrayList<>(); |
|
|
List<BigDecimal> yArr2 = new ArrayList<>(); |
|
|
provideAnswerWaterAverageTemperatureDTOS.forEach(value -> { |
|
|
targetDraftDaynewResVos.stream().collect(groupingBy(TargetDraftDaynewResVo::getOrganizeName)).entrySet().forEach(entry->{ |
|
|
xArr.add(value.getTitle()); |
|
|
xArr.add(entry.getKey()); |
|
|
yArr1.add(value.getProvideWaterAverageTemperature()); |
|
|
yArr1.add(entry.getValue().stream().filter(x -> x.getReportName().equals(ReportNameEnum.WATER_SUPPLY_TEMPERATURE.getName())).findFirst().orElse(new TargetDraftDaynewResVo()).getValueResult()); |
|
|
yArr2.add(value.getAnswerWaterAverageTemperature()); |
|
|
yArr2.add(entry.getValue().stream().filter(x -> x.getReportName().equals(ReportNameEnum.RETURN_WATER_TEMPERATURE.getName())).findFirst().orElse(new TargetDraftDaynewResVo()).getValueResult()); |
|
|
}); |
|
|
}); |
|
|
provideAnswerWaterAverageTemperatureVO.setXArr(xArr); |
|
|
resVO.setXArr(xArr); |
|
|
provideAnswerWaterAverageTemperatureVO.setYArr1(yArr1); |
|
|
resVO.setYArr1(yArr1); |
|
|
provideAnswerWaterAverageTemperatureVO.setYArr2(yArr2); |
|
|
resVO.setYArr2(yArr2); |
|
|
} |
|
|
return resVO; |
|
|
return provideAnswerWaterAverageTemperatureVO; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public List<BoilerStatisticsVO> getBoilerStatistics(DcBusDataScreenNewReq dcBusDataScreenNewReq) { |
|
|
public List<BoilerStatisticsVO> getBoilerStatistics(TargetDraftDaynewReqVo vo) { |
|
|
List<BoilerStatisticsVO> list = new ArrayList<>(); |
|
|
List<BoilerStatisticsVO> list = new ArrayList<>(); |
|
|
DcBusiTargetDraftMonth params = new DcBusiTargetDraftMonth(); |
|
|
List<String> reportNames = Stream.of(ReportNameEnum.WATER_SUPPLY_TEMPERATURE.getName(), ReportNameEnum.RETURN_WATER_TEMPERATURE.getName()).collect(Collectors.toList()); |
|
|
BeanUtils.copyBeanProp(params, dcBusDataScreenNewReq); |
|
|
vo.setAssetType("0").setAssetLevel("10").setReportNames(reportNames).setOrgIds(Stream.of(vo.getOrgId()).collect(Collectors.toList())); |
|
|
String yearMonthDay = dcBusDataScreenNewReq.getYearMonthDay(); |
|
|
List<TargetDraftDaynewResVo> targetDraftDaynewResVos = dcBusiTargetDraftDaynewService.selectTargetDraftDaynewList(vo); |
|
|
String[] yearMonthDayArr = yearMonthDay.split("-"); |
|
|
if (CollUtil.isEmpty(targetDraftDaynewResVos)) { |
|
|
if (yearMonthDayArr.length > 1) { |
|
|
return list; |
|
|
params.setCountYear(yearMonthDayArr[0]); |
|
|
|
|
|
params.setCountMonth(yearMonthDayArr[1]); |
|
|
|
|
|
} |
|
|
|
|
|
params.setTargetModelCode(targetModelConfig.getBoiler()); |
|
|
|
|
|
List<DcBusiTargetDraftMonth> dcBusiTargetDraftMonths = dcBusiTargetDraftMonthMapper.selectDcBusiTargetDraftMonthList(params); |
|
|
|
|
|
if (CollectionUtils.isNotEmpty(dcBusiTargetDraftMonths)) { |
|
|
|
|
|
Map<Object, List<DcBusiTargetDraftMonth>> map; |
|
|
|
|
|
if (ObjectUtils.isEmpty(dcBusDataScreenNewReq.getOrgId())) { |
|
|
|
|
|
map = dcBusiTargetDraftMonths.stream().collect(Collectors.groupingBy(DcBusiTargetDraftMonth::getOrgId)); |
|
|
|
|
|
} else { |
|
|
|
|
|
map = dcBusiTargetDraftMonths.stream().collect(Collectors.groupingBy(DcBusiTargetDraftMonth::getAssetCode)); |
|
|
|
|
|
} |
|
|
|
|
|
map.forEach((key, value) -> { |
|
|
|
|
|
BoilerStatisticsVO boilerStatisticsVO = new BoilerStatisticsVO(); |
|
|
|
|
|
if (ObjectUtils.isEmpty(dcBusDataScreenNewReq.getOrgId())) { |
|
|
|
|
|
boilerStatisticsVO.setLabel(value.get(0).getOrgName()); |
|
|
|
|
|
} else { |
|
|
|
|
|
boilerStatisticsVO.setLabel(value.get(0).getAssetName()); |
|
|
|
|
|
} |
|
|
|
|
|
BigDecimal sum = new BigDecimal(0); |
|
|
|
|
|
for (int i = 0, len = value.size(); i < len; i++) { |
|
|
|
|
|
sum = sum.add(value.get(i).getValResult()); |
|
|
|
|
|
} |
|
|
|
|
|
boilerStatisticsVO.setValue(sum); |
|
|
|
|
|
list.add(boilerStatisticsVO); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
list.add(BoilerStatisticsVO.builder() |
|
|
|
|
|
.label(ReportNameEnum.WATER_SUPPLY_TEMPERATURE.getName()) |
|
|
|
|
|
.value(targetDraftDaynewResVos.stream().filter(x -> x.getReportName().equals(ReportNameEnum.WATER_SUPPLY_TEMPERATURE.getName())).findFirst().orElse(new TargetDraftDaynewResVo()).getValueResult()) |
|
|
|
|
|
.build()); |
|
|
|
|
|
list.add(BoilerStatisticsVO.builder() |
|
|
|
|
|
.label(ReportNameEnum.RETURN_WATER_TEMPERATURE.getName()) |
|
|
|
|
|
.value(targetDraftDaynewResVos.stream().filter(x -> x.getReportName().equals(ReportNameEnum.RETURN_WATER_TEMPERATURE.getName())).findFirst().orElse(new TargetDraftDaynewResVo()).getValueResult()) |
|
|
|
|
|
.build()); |
|
|
return list; |
|
|
return list; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -161,7 +122,7 @@ public class DcBusiDataScreenNewService { |
|
|
SysDept deptParams = new SysDept(); |
|
|
SysDept deptParams = new SysDept(); |
|
|
deptParams.setParentId(targetDraftDaynewReqVo.getOrgId()); |
|
|
deptParams.setParentId(targetDraftDaynewReqVo.getOrgId()); |
|
|
deptParams.setOrgType(BizConstants.DcDeptAttr.HEAT_SOURCE); |
|
|
deptParams.setOrgType(BizConstants.DcDeptAttr.HEAT_SOURCE); |
|
|
List<SysDept> childrenDept = deptService.selectDeptList(deptParams); |
|
|
List<SysDept> childrenDept = iSysDeptService.selectDeptList(deptParams); |
|
|
if (CollectionUtils.isEmpty(childrenDept)) { |
|
|
if (CollectionUtils.isEmpty(childrenDept)) { |
|
|
throw new RuntimeException("该公司无热源"); |
|
|
throw new RuntimeException("该公司无热源"); |
|
|
} |
|
|
} |
|
@ -207,7 +168,7 @@ public class DcBusiDataScreenNewService { |
|
|
SysDept deptParams = new SysDept(); |
|
|
SysDept deptParams = new SysDept(); |
|
|
deptParams.setParentId(targetDraftDaynewReqVo.getOrgId()); |
|
|
deptParams.setParentId(targetDraftDaynewReqVo.getOrgId()); |
|
|
deptParams.setOrgType(BizConstants.DcDeptAttr.HEAT_SOURCE); |
|
|
deptParams.setOrgType(BizConstants.DcDeptAttr.HEAT_SOURCE); |
|
|
List<SysDept> childrenDept = deptService.selectDeptList(deptParams); |
|
|
List<SysDept> childrenDept = iSysDeptService.selectDeptList(deptParams); |
|
|
if (CollectionUtils.isEmpty(childrenDept)) { |
|
|
if (CollectionUtils.isEmpty(childrenDept)) { |
|
|
throw new RuntimeException("该公司无热源"); |
|
|
throw new RuntimeException("该公司无热源"); |
|
|
} |
|
|
} |
|
|