From bcf8c46e009d5d825a7bf07b9eac46fb7432418b Mon Sep 17 00:00:00 2001 From: liulin <lin.liu@88.com> Date: 星期四, 17 七月 2025 08:42:13 +0800 Subject: [PATCH] 添加首页大屏数据统计 --- src/main/java/com/fengdu/gas/service/WaterFacilityService.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 53 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/fengdu/gas/service/WaterFacilityService.java b/src/main/java/com/fengdu/gas/service/WaterFacilityService.java index 8b2b2fe..b01fe67 100644 --- a/src/main/java/com/fengdu/gas/service/WaterFacilityService.java +++ b/src/main/java/com/fengdu/gas/service/WaterFacilityService.java @@ -22,21 +22,27 @@ */ package com.fengdu.gas.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fengdu.gas.common.*; import com.fengdu.gas.common.enums.*; import com.fengdu.gas.common.model.Tuple; import com.fengdu.gas.common.util.*; import com.fengdu.gas.entity.response.facility.FacilityCount; import com.fengdu.gas.entity.response.facility.FacilityData; +import com.fengdu.gas.entity.response.facility.FacilityPointCount; +import com.fengdu.gas.entity.response.facility.FacilityStateData; import com.fengdu.gas.repository.impl.WaterFacilityParameterMapperImpl; +import com.fengdu.gas.repository.impl.WaterFacilityTypeMapperImpl; import com.fengdu.gas.repository.impl.WaterMonitoryPointMapperImpl; import com.fengdu.gas.repository.po.WaterFacilityParameterPO; +import com.fengdu.gas.repository.po.WaterFacilityTypePO; import com.fengdu.gas.repository.po.WaterMonitoryPointPO; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -61,10 +67,18 @@ private WaterFacilityParameterMapperImpl waterFacilityParameterMapper; @Autowired private WaterMonitoryPointMapperImpl waterMonitoryPointMapper; + @Autowired + private WaterFacilityTypeMapperImpl waterFacilityTypeMapper; public ExecutedResult<Long> create(ReqCreateWaterFacility request) { + WaterMonitoryPointPO pointPO = waterMonitoryPointMapper.getById(request.getPointId()); + if(Objects.isNull(pointPO)){ + return ExecutedResult.failed("监测点不存在"); + } // 转换po WaterFacilityPO item = CopierUtil.mapTo(request, WaterFacilityPO.class); + item.setPointId(pointPO.getId()); + item.setPointName(pointPO.getPointName()); // 设置状态 //item.setStatus(EState.NORMAL.getValue()); // 设置记录创建时间 @@ -105,7 +119,37 @@ } return ExecutedResult.success(result); } - + public ExecutedResult<List<WaterFacilityPO>> getFacilityFan(Integer type){ + List<WaterFacilityPO>result = new ArrayList<>(); + if(type!=null){ + LambdaQueryWrapper<WaterFacilityPO>wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(WaterFacilityPO::getFacilityFanState,type); + result= mapper.selectList(wrapper); + }else { + result= mapper.getList(); + } + return ExecutedResult.success(result); + } + public ExecutedResult<List<FacilityStateData>> getFacilityState(){ + List<FacilityStateData>result = new ArrayList<>(); + List<WaterFacilityPO> facilityPOList = mapper.getList(); + EFacilityState[] values = EFacilityState.values(); + for(EFacilityState v:values){ + FacilityStateData stateData=new FacilityStateData(); + stateData.setTypeName(EFacilityState.getByValue(v.getValue()).getDesc()); + List<WaterFacilityPO> collect = facilityPOList.stream().filter(item -> item.getFacilityState().equals(v.getValue())).collect(Collectors.toList()); + if(ListUtil.isNotNullOrEmpty(collect)){ + BigDecimal bigDecimal = new BigDecimal(collect.size()).divide(new BigDecimal(facilityPOList.size())).setScale(2, RoundingMode.DOWN); + BigDecimal bigDecimal1 = bigDecimal.multiply(new BigDecimal(100)).setScale(2, RoundingMode.DOWN); + stateData.setValue(bigDecimal1); + } + result.add(stateData); + } + return ExecutedResult.success(result); + } + public ExecutedResult<List<FacilityPointCount>> getFacilityPointCount(){ + return ExecutedResult.success(mapper.getFacilityPointCount()); + } public ExecutedResult<List<FacilityData>> getFacilityList() { List<FacilityData> result = new ArrayList<>(); List<WaterMonitoryPointPO> pointPOList = waterMonitoryPointMapper.getList(); @@ -120,6 +164,7 @@ data.setTop(pointPO.getTopMargin()); data.setFacilityId(facilityPO.getId()); data.setFacilityName(facilityPO.getFacilityName()); + data.setBoxType(pointPO.getBoxType()); data.setFacilityState(EFacilityState.getByValue(facilityPO.getFacilityState()).getDesc()); data.setFacilityFanState(EFacilityState.getByValue(facilityPO.getFacilityFanState()).getDesc()); List<WaterFacilityParameterPO> poList = parameterPOList.stream().filter(item -> item.getFacilityId().equals(facilityPO.getId())).collect(Collectors.toList()); @@ -191,7 +236,14 @@ if (ListUtil.isNotNullOrEmpty(list)) { pageList.setLastId(list.get(list.size() - 1).getId()); // 转换vo + List<WaterFacilityTypePO> typePOS = waterFacilityTypeMapper.getList(); listVo = WaterFacilityConvert.INSTANCE.toVo(list); + for(WaterFacilityVO vo:listVo){ + WaterFacilityTypePO facilityTypePO = typePOS.stream().filter(item -> item.getId().equals(vo.getFacilityType())).findFirst().orElse(null); + if(Objects.nonNull(facilityTypePO)){ + vo.setFacilityTypeName(facilityTypePO.getName()); + } + } } PagerResult<WaterFacilityVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo); result.setLastId(pageList.getLastId()); -- Gitblit v1.9.3