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.Param.ParamAlmDto; import com.whyc.dto.PowerDto; import com.whyc.dto.Response; import com.whyc.dto.Statistic.Pwr7Stic; import com.whyc.dto.Statistic.StationStic; import com.whyc.mapper.BaojigroupPowerMapper; import com.whyc.mapper.BaojigroupUsrMapper; import com.whyc.mapper.PowerInfMapper; import com.whyc.mapper.StationInfMapper; import com.whyc.pojo.db_station.BattInf; import com.whyc.pojo.db_station.PowerInf; import com.whyc.pojo.db_station.StationInf; import com.whyc.pojo.db_user.BaojigroupPower; import com.whyc.pojo.db_user.BaojigroupUsr; 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.ArrayList; import java.util.List; @Service public class PowerInfService { @Autowired(required = false) private PowerInfMapper mapper; @Autowired(required = false) private StationInfMapper sinfMapper; @Autowired(required = false) private BaojigroupUsrMapper bjUserMapper; @Autowired(required = false) private BaojigroupPowerMapper bjPowerMapper; /*添加电源 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); int flag=mapper.insert(addpinf); if(flag>0){ //当前人所在的包机组添加电源机房 insertInbaoji(stationId,powerId); } } //当前人所在的包机组添加电源机房 public void insertInbaoji(Integer stationId,Integer powerId){ //重启线程并将锁加到当前人的包机组 User uinf= ActionUtil.getUser(); QueryWrapper wrapper1=new QueryWrapper(); wrapper1.eq("uid",uinf.getId()); List groupIdList=bjUserMapper.selectList(wrapper1); List baojigroupList=new ArrayList(); if(groupIdList!=null&&groupIdList.size()>0){ for (BaojigroupUsr bjUser:groupIdList) { BaojigroupPower bjPower=new BaojigroupPower(); bjPower.setStationId(stationId); bjPower.setPowerId(powerId); bjPower.setBaojiGroupId(bjUser.getBaojiGroupId()); baojigroupList.add(bjPower); } } bjPowerMapper.insertBatchSomeColumn(baojigroupList); //processSurveyService.setUpThreadRestart(); } //获取电源品牌(下拉) public Response getCompanyByUid(Integer uid) { List list=mapper.getCompanyByUid(uid); return new Response().setII(1,list.size()>0,list,"获取电源品牌(下拉)"); } //获取电源型号(下拉) public Response getPowerModelByUid(Integer uid) { List list=mapper.getPowerModelByUid(uid); return new Response().setII(1,list.size()>0,list,"获取电源型号(下拉)"); } //获取电源协议(下拉) public Response getProtocolByUid(Integer uid) { List list=mapper.getProtocolByUid(uid); return new Response().setII(1,list.size()>0,list,"获取电源协议(下拉)"); } //获取电源信息 public PowerInf getPowerInfById(Integer powerId) { QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("power_id",powerId); wrapper.last("limit 1"); PowerInf pinf=mapper.selectOne(wrapper); return pinf; } //电源信息统计 public Response getPowerStatistic(StationStic stic) { PageHelper.startPage(stic.getPageNum(),stic.getPageSize()); List list=mapper.getPowerStatistic(stic); PageInfo pageInfo=new PageInfo<>(list); return new Response().setII(1,list.size()>0,pageInfo,"电源信息统计"); } //优良电源数量统计(1.2.7) public List getPwr7Statistic(Pwr7Stic stic) { return mapper.getPwr7Statistic(stic); } public List getListByUserId(Integer userId) { return mapper.getListByUserId(userId); } //根据查询条件获取电源集合 public List getPowerIdList(ParamAlmDto dto) { return mapper.getPowerIdList(dto); } }