package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.whyc.dto.PowerDto; import com.whyc.dto.Response; import com.whyc.mapper.PowerInfMapper; import com.whyc.mapper.StationInfMapper; import com.whyc.pojo.db_station.PowerInf; import com.whyc.pojo.db_station.StationInf; import com.whyc.pojo.db_user.User; import com.whyc.util.ActionUtil; import org.apache.commons.math3.analysis.function.Power; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service public class PowerInfService { @Autowired(required = false) private PowerInfMapper mapper; @Autowired(required = false) private StationInfMapper sinfMapper; @Autowired(required = false) private BaojigroupService bjService; @Autowired(required = false) private BattInfService binfService; /*添加电源 1.判断当前用户是否是包组用户 2.判断机房是否存在,若存在则在机房下添加电源,若不存在则新建机房+新建电源 3.电源需要编号,powerNum编号,电源名称自动生成通讯电源+powerNum */ @Transactional public void addPower(PowerInf addpinf) { //机房信息 StationInf addsinf= addpinf.getSinf(); //判断添加锁的时候机房是不是新机房 String fullName=addsinf.getProvice()+"_"+addsinf.getCity()+"_"+addsinf.getCountry()+"_"+addsinf.getStationName(); //判断机房是否存在 QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("full_name",fullName); wrapper.last("limit 1"); StationInf sinf=sinfMapper.selectOne(wrapper); int stationId=0; int powerId=0; if(sinf!=null){ stationId=sinf.getStationId(); }else { //获取对应的机房id stationId = sinfMapper.getMaxStationId(); if (stationId == 0) {//数据库中没有站点 stationId = 40000001; } else { stationId += 1; } addsinf.setFullName(fullName); addsinf.setStationId(stationId); sinfMapper.insert(addsinf); } //电源需要编号,powerNum编号,电源名称自动生成通讯电源+powerNum int powerNum=mapper.getMaxPowerNum(stationId); if(powerNum==0){ powerNum=1; }else{ powerNum+=1; } //再添加电源信息 addpinf.setStationId(stationId); addpinf.setPowerNum(powerNum); addpinf.setPowerName("通讯电源"+powerNum); //获取对应的电源id powerId = mapper.getMaxPowerId(); if (powerId == 0) {//数据库中没有站点 powerId = 10001; } else { powerId += 1; } addpinf.setPowerId(powerId); mapper.insert(addpinf); } //删除电源(删除包机组下记录,删除电源下的电池组设备) @Transactional public Response delPower(Integer pid) { //删除所有包机组下的电源 bjService.delPowerInBaoji(pid); //删除电源下的电池组 binfService.delBattInPower(pid); //删除电源 UpdateWrapper wrapper=new UpdateWrapper(); wrapper.eq("power_id",pid); mapper.delete(wrapper); return new Response().set(1,true); } //修改电源 public Response updatePower(PowerInf pinf) { UpdateWrapper wrapper=new UpdateWrapper(); wrapper.eq("power_id",pinf.getPowerId()); if(pinf.getPowerName()!=null){ //检测该机房下要修改的电源名是否粗在 QueryWrapper queryWrapper=new QueryWrapper(); queryWrapper.eq("power_name",pinf.getPowerName()); queryWrapper.eq("station_id",pinf.getStationId()); queryWrapper.last("limit 1"); PowerInf juegep=mapper.selectOne(queryWrapper); if(juegep!=null){ return new Response().set(1,false,"该机房下已存在"+pinf.getPowerName()+"的电源"); } wrapper.set("power_name",pinf.getPowerName()); } if(pinf.getCompany()!=null){ wrapper.set("company",pinf.getCompany()); } if(pinf.getPowerModel()!=null){ wrapper.set("power_model",pinf.getPowerModel()); } if(pinf.getProtocol()!=null){ wrapper.set("protocol",pinf.getProtocol()); } if(pinf.getPowerIp()!=null){ wrapper.set("power_ip",pinf.getPowerIp()); } mapper.update((PowerInf) ActionUtil.objeNull,wrapper); return new Response().set(1,true); } //查询电源 public Response getPower(PowerDto dto) { User user= ActionUtil.getUser(); dto.setUid(user.getId()); PageHelper.startPage(dto.getPageNum(),dto.getPageSize()); List list=mapper.getPower(dto); PageInfo pageInfo=new PageInfo(list); return new Response().setII(1,list!=null,pageInfo,"查询电源"); } //获取电源品牌(下拉) public Response getCompanyByUid(Integer uid) { List list=mapper.getCompanyByUid(uid); return new Response().setII(1,list.size()>0,list,"获取电源品牌(下拉)"); } }