| | |
| | | */ |
| | | 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; |
| | |
| | | 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()); |
| | | // 设置记录创建时间 |
| | |
| | | } |
| | | 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(); |
| | |
| | | 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()); |
| | |
| | | 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()); |