elkers
2 天以前 7c947aac20e48860cd2d351d786e3ebac5da6044
src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java
@@ -35,9 +35,12 @@
import com.nanjing.water.repository.impl.WaterMonitoryPointMapperImpl;
import com.nanjing.water.repository.po.WaterFacilityPO;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import com.nanjing.water.repository.vo.FacilityParameterDataVO;
import com.nanjing.water.repository.vo.WaterFacilityParameterVO;
import com.nanjing.water.repository.vo.WaterFacilityVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@@ -45,6 +48,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -59,6 +63,8 @@
    private WaterFacilityMapperImpl waterFacilityMapper;
    @Autowired
    private WaterMonitoryPointMapperImpl waterMonitoryPointMapper;
    @Autowired
    private StringRedisTemplate redisTemplate;
    public ExecutedResult<String> create(ReqAddParameter request) {
        WaterFacilityPO facilityPO = waterFacilityMapper.get(request.getFacilityId());
@@ -66,28 +72,31 @@
            return ExecutedResult.failed("所属设备[id=" + request.getFacilityId() + "]不存在。");
        }
        List<WaterFacilityParameterPO> list = mapper.getListByFacilityId(request.getFacilityId());
        List<Long> ids = new ArrayList<Long>();
        if (ListUtil.isNotNullOrEmpty(list)) {
            list.forEach(x -> {
                ids.add(x.getId());
            });
        }
        if (ListUtil.isNotNullOrEmpty(ids)) {
            mapper.remove(ids);
        }
//        List<Long> ids = new ArrayList<Long>();
//        if (ListUtil.isNotNullOrEmpty(list)) {
//            list.forEach(x -> {
//                ids.add(x.getId());
//            });
//        }
//        if (ListUtil.isNotNullOrEmpty(ids)) {
//            mapper.remove(ids);
//        }
        if (ListUtil.isNotNullOrEmpty(request.getParameterList())) {
            for (ReqCreateWaterFacilityParameter x : request.getParameterList()) {
                WaterFacilityParameterPO item = new WaterFacilityParameterPO();
                item.setId(SnowFlakeUtil.getId());
                item.setFacilityId(facilityPO.getId());
                item.setFacilityCode(facilityPO.getFacilityCode());
                item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
                item.setColumnsUnits(x.getColumnsUnits());
                item.setColumnsCode(x.getColumnsCode());
                item.setColumnsShow(x.getColumnsShow());
                item.setColumnValue("");
                item.setLastTime("");
                this.mapper.insert(item);
                WaterFacilityParameterPO parameterPO = list.stream().filter(item -> item.getFacilityId().equals(request.getFacilityId()) && item.getColumnsCode().equals(x.getColumnsCode())).findFirst().orElse(null);
                if(Objects.isNull(parameterPO)){
                    WaterFacilityParameterPO item = new WaterFacilityParameterPO();
                    item.setId(SnowFlakeUtil.getId());
                    item.setFacilityId(facilityPO.getId());
                    item.setFacilityCode(facilityPO.getFacilityCode());
                    item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
                    item.setColumnsUnits(x.getColumnsUnits());
                    item.setColumnsCode(x.getColumnsCode());
                    item.setColumnsShow(x.getColumnsShow());
                    item.setColumnValue("");
                    item.setLastTime("");
                    this.mapper.insert(item);
                }
            }
        }
        return ExecutedResult.success("添加成功");
@@ -119,6 +128,17 @@
        return ExecutedResult.success(result);
    }
    /**
     *
     * @return
     */
    public ExecutedResult<String> getNewDataPump(){
        //获取所有泵房启泵次数
        List<FacilityParameterDataVO> listNewPump = mapper.getListNewPump();
        redisTemplate.opsForValue().set("pump_start_number",SerializeUtil.toJson(listNewPump));
        redisTemplate.expire("pump_start_number",24,TimeUnit.HOURS);
        return ExecutedResult.success();
    }
    public ExecutedResult<List<WaterFacilityParameterPO>> getListByFacilityId(Long facilityId) {
        List<WaterFacilityParameterPO> list = new ArrayList<>();
        LambdaQueryWrapper<WaterFacilityParameterPO> wrapper = new LambdaQueryWrapper<>();
@@ -264,6 +284,7 @@
        List<WaterFacilityParameterPO> parameterPOList = mapper.getList();
        if(ListUtil.isNotNullOrEmpty(facilityPOList)){
            result = CopierUtil.mapTo(facilityPOList, WaterFacilityVO.class);
            int sumTime=0;
            for(WaterFacilityVO facilityVO:result){
                List<WaterFacilityParameterPO> collect = parameterPOList.stream().filter(x -> x.getFacilityId().equals(facilityVO.getId())).collect(Collectors.toList());
                if(ListUtil.isNotNullOrEmpty(collect)){
@@ -280,25 +301,36 @@
                        if("true".equals(parameterVO.getColumnValue())){
                            parameterVO.setColumnValue("开");
                        }
//                        if(parameterVO.getColumnsCode().equals("B001Time")||parameterVO.getColumnsCode().equals("B002Time")){
//                            BigDecimal bigDecimal=new BigDecimal(parameterVO.getColumnValue()).setScale(2,RoundingMode.DOWN);
//                            if(bigDecimal.compareTo(new BigDecimal(60).setScale(2,RoundingMode.DOWN))>0){
//                                BigDecimal data = bigDecimal.divide(new BigDecimal(60),2,BigDecimal.ROUND_HALF_UP);
//                                parameterVO.setColumnValue(data+"分");
//                            }
//                            if(bigDecimal.compareTo(new BigDecimal(3600))>0){
//                                BigDecimal data = bigDecimal.divide(new BigDecimal(3600),2,BigDecimal.ROUND_HALF_UP);
//                                parameterVO.setColumnValue(data+"时");
//                            }
//                        }
                        if(parameterVO.getColumnsCode().equals("B001TimeSum")||parameterVO.getColumnsCode().equals("B002TimeSum")){
                            int time = new BigDecimal(parameterVO.getColumnValue()).intValue();
                            sumTime=sumTime+time;
                            if(sumTime>0){
                                String timeString = timeString(sumTime);
                                facilityVO.setTotalTime(timeString);
                            }
                        }
                        if(parameterVO.getColumnsCode().equals("B001Time")||parameterVO.getColumnsCode().equals("B002Time")||parameterVO.getColumnsCode().equals("B001TimeSum")||parameterVO.getColumnsCode().equals("B002TimeSum")){
                            //计算时分秒
                            Integer time= new BigDecimal(parameterVO.getColumnValue()).intValue();
                            if(time>0){
                                String timeString = timeString(time);
                                parameterVO.setColumnValue(timeString);
                            }
                        }
                    }
                    facilityVO.setParameterVOList(parameterVOList);
                }
            }
        }
        return ExecutedResult.success(result);
    }
    public String timeString(Integer time){
        int hours=time/3600;
        int minutes=(time%3600)/60;
        int seconds=time%60;
        return  hours+"时"+minutes+"分"+seconds+"秒";
    }
    protected ExecutedResult<WaterFacilityParameterPO> check4Id(Long id) {
        WaterFacilityParameterPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {