whycxzp
2025-03-25 f792198d1083e8a8195bad177c237e2aa0725a29
src/main/java/com/whyc/service/PowerInfService.java
@@ -1,12 +1,21 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.*;
import com.whyc.pojo.PowerInf;
import com.whyc.pojo.RtData;
import com.whyc.pojo.db_batt.PowerInf;
import com.whyc.pojo.db_batt.StationInf;
import com.whyc.pojo.db_batt.StationPowerRelation;
import com.whyc.pojo.db_power_alarm.PowerAlarm;
import com.whyc.pojo.db_real_batt.RtData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -28,6 +37,15 @@
    @Autowired(required = false)
    private PowerRealRt3Mapper realRt3Mapper;
    @Autowired(required = false)
    private PowerAlarmMapper pAlarmMapper;
    @Autowired
    private StationPowerRelationService stationPowerRelationService;
    @Autowired
    private StationInfService stationInfService;
    //根据id获取电源信息
    public  Map<String,Object> getInfById(int powerId) {
        Map<String,Object> map=new HashMap<>();
@@ -38,11 +56,14 @@
        Integer devType=pinf.getDevType();
        map.put("devType",devType);
        if(devType!=3){//第三种不包含单体实时
            List<RtData> list=getBattRt(pinf.getBinfId());
            List<RtData> list=getBattRt(pinf.getBattGroupId());
            map.put("battRt",list);
        }
        Object obj=getRealRt(powerId,devType);
        map.put("realRt"+devType,obj);
        List<PowerAlarm> powerAlarmList=pAlarmMapper.getResPowerAlm(powerId);
        map.put("powerAlarm",powerAlarmList);
        return map;
    }
    //获取电电源信息
@@ -70,4 +91,69 @@
        List<RtData> list=rtDataMapper.selectList(wrapper);
        return list;
    }
    @Transactional
    public Response add(PowerInf powerInf) {
        powerInf.setCreateTime(new Date());
        //对powerInf的 devType进行判断
        //如果devType=3,battGroupId为0
        //如果devType!=3,battGroupId为数据库中最大值+1
        Integer devType = powerInf.getDevType();
        if(devType == 3){
            powerInf.setBattGroupId(0);
        }else{
            powerInf.setBattGroupId(mapper.selectMaxBattGroupId()+1);
        }
        //如果没指定channelCount,默认为1
        if(powerInf.getChannelCount() == null){
            powerInf.setChannelCount(1);
        }
        //电源id查询最大值
        int powerId = mapper.getMaxPowerId();
        powerInf.setPowerId(powerId);
        //对站点名称进行查询,如果存在则直接绑定关系
        //如果不存在,则新增后,再绑定关系
        StationInf stationInf = stationInfService.getByStationName(powerInf.getStationName());
        if(stationInf == null){
            StationInf stationNew = new StationInf();
            stationNew.setSinfName(powerInf.getStationName());
            int stationId = stationInfService.getMaxStationId();
            stationNew.setSinfId(stationId+1);
            stationInfService.add(stationNew);
            //站点和电源id关联
            stationPowerRelationService.add(stationId,powerId);
        }
        mapper.insert(powerInf);
        return new Response().setII(1,"新增完成");
    }
    @Transactional
    public Response delete(int powerId) {
        mapper.deleteById(powerId);
        //删除跟电源相关的所有关联
        stationPowerRelationService.deleteByPowerId(powerId);
        return new Response().setII(1,"删除完成");
    }
    public Response update(PowerInf powerInf) {
        powerInf.setUpdateTime(new Date());
        mapper.updateById(powerInf);
        return new Response().setII(1,"修改完成");
    }
    public Response getPage(int pageNum, int pageSize) {
        PageHelper helper = new PageHelper();
        helper.startPage(pageNum,pageSize);
        QueryWrapper<PowerInf> queryWrapper = Wrappers.query();
        queryWrapper.orderByAsc("power_id");
        List<PowerInf> powerInfs = mapper.selectList(queryWrapper);
        PageInfo<PowerInf> pageInfo = new PageInfo<>(powerInfs);
        return new Response().set(1,pageInfo);
    }
    public Response getById(int powerId) {
        PowerInf powerInf = mapper.selectById(powerId);
        return new Response().set(1,powerInf);
    }
}