liulin
5 天以前 bcf8c46e009d5d825a7bf07b9eac46fb7432418b
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());