whyclxw
7 天以前 9f46f8471a3521c03461e04a6e82cff023e9bfdb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
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.constant.BattCapperformanceEnum;
import com.whyc.constant.PwrCapperformanceEnum;
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;
import java.util.Map;
 
@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<BaojigroupUsr> groupIdList=bjUserMapper.selectList(wrapper1);
        List<BaojigroupPower> 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<String> list=mapper.getCompanyByUid(uid);
        return new Response().setII(1,list.size()>0,list,"获取电源品牌(下拉)");
    }
    //获取电源型号(下拉)
    public Response getPowerModelByUid(Integer uid) {
        List<String> list=mapper.getPowerModelByUid(uid);
        return new Response().setII(1,list.size()>0,list,"获取电源型号(下拉)");
    }
    //获取电源协议(下拉)
    public Response getProtocolByUid(Integer uid) {
        List<String> 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<PowerInf> list=mapper.getPowerStatistic(stic);
        PageInfo<PowerInf> pageInfo=new PageInfo<>(list);
        return new Response().setII(1,list.size()>0,pageInfo,"电源信息统计");
    }
    //优良电源数量统计(1.2.7)
    public  List<PowerInf> getPwr7Statistic(Pwr7Stic stic) {
        return mapper.getPwr7Statistic(stic);
    }
 
    public List<PowerInf> getListByUserId(Integer userId) {
        return mapper.getListByUserId(userId);
    }
    //根据查询条件获取电源集合
    public PowerInf getPowerIdList(Integer powerId) {
        return mapper.getPowerIdList(powerId);
    }
    //获取电源性能(下拉)
    public Response getPwrCapperformance() {
        Map<Integer,String> map= PwrCapperformanceEnum.getOpInfo();
        return new Response().setII(1,true,map,"获取电源性能(下拉)");
    }
}