lxw
2023-08-15 160e150009b51a39fa95d9462c3798ba28d51a09
src/main/java/com/whyc/service/StationInfService.java
@@ -60,27 +60,71 @@
    private PwrdevAlarmService powerAlarmService;
    @Resource
    BadbattMonMapper badbattMonMapper;
    private BadbattMonMapper badbattMonMapper;
    @Resource
    AlarmParamMapper alarmParamMapper;
    private AlarmParamMapper alarmParamMapper;
    @Resource
    BattInfMapper binfMapper;
    private BattInfMapper binfMapper;
    @Resource
    PowerInfMapper pinfMapper;
    private PowerInfMapper pinfMapper;
    @Resource
    BattMapInformationMapper mapMapper;
    private BattMapInformationMapper mapMapper;
    @Resource
    private BatttestdataInfService testInfService;
    //查询最大的自增标识同一机房的标识
    public int getMaxTogetherFlag() {
        int togetherFlag = mapper.getMaxTogetherFlag();
        return togetherFlag;
    }
    //根据statidonId去查同一机房的标识
    public int getTogetherFlag(String stationIdTogether) {
        int togetherFlag = mapper.getTogetherFlag(stationIdTogether);
        return togetherFlag;
    }
    //根据stationId和togetherFlag查询另外相同的机房
    public Response getTogetherFlagStationInf(String stationId, int togetherFlag) {
        QueryWrapper wrapper = Wrappers.query();
        wrapper.eq("together_flag", togetherFlag);
        wrapper.ne("stationId", stationId);
        wrapper.last("limit 1");
        StationInf sinf = mapper.selectOne(wrapper);
        return new Response().setII(1, sinf != null ? true : false, sinf, "根据stationId和togetherFlag查询另外相同的机房");
    }
    //插入站点
    @Transactional
    public Response insertStation(StationInf stationInf) {
        String stationId = stationInf.getStationId();
        String stationIdTogether = stationInf.getStationIdTogether();
        int togetherFlag = 0;
        if (stationId == null || stationId.isEmpty()) {
            stationId = String.valueOf(Integer.valueOf(getMaxStationId()) + 1);
            stationInf.setStationId(stationId);
        }
        if (stationIdTogether == null || stationIdTogether.isEmpty()) {
            togetherFlag = mapper.getMaxTogetherFlag() + 1;
        } else {
            //1.先验证同一机房结点信息和电压等级是否一样,若不一样则不允许添加
            QueryWrapper wrapper = Wrappers.query();
            wrapper.ne("stationId", stationIdTogether);
            wrapper.last("limit 1");
            StationInf sinf = mapper.selectOne(wrapper);
            if (stationInf.getNodeStation() != sinf.getNodeStation()) {
                return new Response().set(1, false, "设置同一站点时,两站点节点属性不一致");
            }
            if (!stationInf.getStationType().equals(sinf.getStationType())) {
                return new Response().set(1, false, "设置同一站点时,两站点电压等级属性不一致");
            }
            //2.相同设置同一站点
            togetherFlag = mapper.getTogetherFlag(stationIdTogether);
        }
        stationInf.setTogetherFlag(togetherFlag);
        int flag = mapper.insert(stationInf);
        //往map表插入
        BattMapInformation mapInfo = new BattMapInformation();
@@ -91,33 +135,72 @@
        mapInfo.setLatitude(stationInf.getStationLatitude());
        mapInfo.setStationName3(stationInf.getStationName3());
        mapMapper.insert(mapInfo);
        return new Response().set(1, flag > 0, "插入站点");
        return new Response().set(1, flag > 0, flag > 0 ? "插入站点成功" : "插入站点失败");
    }
    //编辑机房名
    @Transactional
    public Response updateName(String stationName, String stationName1, String stationName2, String stationName3, String stationName4, String stationName5, String stationId) {
    public Response updateName(String stationName, String stationName1, String stationName2, String stationName3, String stationName4, String stationName5
            , String stationIdTogether, String stationId) {
        UpdateWrapper wrapper = new UpdateWrapper();
        wrapper.eq("stationId", stationId);
        UpdateWrapper sinfWrapper = new UpdateWrapper();
        sinfWrapper.eq("stationId", stationId);
        if (stationName != null && !stationName.isEmpty()) {
            wrapper.set("stationName", stationName);
            sinfWrapper.set("stationName", stationName);
        }
        if (stationName1 != null && !stationName1.isEmpty()) {
            wrapper.set("stationName1", stationName1);
            sinfWrapper.set("stationName1", stationName1);
        }
        if (stationName2 != null && !stationName2.isEmpty()) {
            wrapper.set("stationName2", stationName2);
            sinfWrapper.set("stationName2", stationName2);
        }
        if (stationName3 != null && !stationName3.isEmpty()) {
            wrapper.set("stationName3", stationName3);
            sinfWrapper.set("stationName3", stationName3);
        }
        if (stationName4 != null && !stationName4.isEmpty()) {
            wrapper.set("stationName4", stationName4);
            sinfWrapper.set("stationName4", stationName4);
        }
        if (stationName5 != null && !stationName5.isEmpty()) {
            wrapper.set("stationName5", stationName5);
            sinfWrapper.set("stationName5", stationName5);
        }
        int flag = mapper.update(null, wrapper);
        if (stationIdTogether != null && !stationIdTogether.isEmpty()) {
            //1.先验证同一机房结点信息和电压等级是否一样,若不一样则不允许添加
            QueryWrapper wrapperZj = new QueryWrapper();
            QueryWrapper wrapperGl = new QueryWrapper();
            wrapperZj.eq("stationId", stationId);
            wrapperGl.eq("stationId", stationIdTogether);
            wrapper.last("limit 1");
            StationInf sinfZj = mapper.selectOne(wrapperZj);
            StationInf sinfGl = mapper.selectOne(wrapperGl);
            if (sinfZj.getNodeStation() != sinfGl.getNodeStation()) {
                return new Response().set(1, false, "设置同一站点时,两站点节点属性不一致");
            }
            if (!sinfZj.getStationType().equals(sinfGl.getStationType())) {
                return new Response().set(1, false, "设置同一站点时,两站点电压等级属性不一致");
            }
            if (sinfZj.getStationLongitude() != sinfGl.getStationLongitude()) {
                return new Response().set(1, false, "设置同一站点时,两站点地址的经度属性不一致");
            }
            if (sinfZj.getStationLatitude() != sinfGl.getStationLatitude()) {
                return new Response().set(1, false, "设置同一站点时,两站点地址的维度属性不一致");
            }
            if (!sinfZj.getStationAddr().equals(sinfGl.getStationAddr())) {
                return new Response().set(1, false, "设置同一站点时,两站点详细地址属性不一致");
            }
            int togetherFlag = mapper.getTogetherFlag(stationIdTogether);
            sinfWrapper.set("together_flag", togetherFlag);
        } else {
            int togetherFlag = mapper.getMaxTogetherFlag() + 1;
            sinfWrapper.set("together_flag", togetherFlag);
        }
        int flag = mapper.update(null, sinfWrapper);
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("stationId", stationId);
        List listB = binfMapper.selectList(queryWrapper);
@@ -128,50 +211,77 @@
        if (listP != null && listP.size() > 0) {
            pinfMapper.update(null, wrapper);
        }
        return new Response().set(1, flag > 0, "编辑机房名");
        return new Response().set(1, flag > 0, flag > 0 ? "编辑机房名成功" : "编辑机房名失败");
    }
    //编辑站点
    @Transactional
    public Response updateStation(String nodeStation, String stationType
            , String stationLongitude, String stationLatitude
            , String stationAddr, String stationId) {
            , String stationAddr, int togetherFlag, String stationId) {
        int nofla = 0;
        int stlag = 0;
        int lofla = 0;
        int lafla = 0;
        int addfla = 0;
        //往map表插入
        BattMapInformation mapInfo = new BattMapInformation();
        UpdateWrapper wrapper = new UpdateWrapper();
        UpdateWrapper wrapperEx = new UpdateWrapper();
        UpdateWrapper infwrapper = new UpdateWrapper();
        UpdateWrapper infwrapperEx = new UpdateWrapper();
        UpdateWrapper mapwrapper = new UpdateWrapper();
        UpdateWrapper mapwrapperEx = new UpdateWrapper();
        wrapper.eq("stationId", stationId);
        infwrapper.eq("stationId", stationId);
        mapwrapper.eq("stationId", stationId);
        //根据togetherFlag和stationId查询相同机房
        QueryWrapper togetWapper = Wrappers.query();
        togetWapper.eq("together_flag", togetherFlag);
        togetWapper.ne("stationId", stationId);
        togetWapper.last("limit 1");
        StationInf sinfEx = mapper.selectOne(togetWapper);
        if (nodeStation != null && !nodeStation.isEmpty()) {
            nofla = 1;
            wrapper.set("nodeStation", nodeStation);
            infwrapper.set("nodeStation", nodeStation);
            wrapperEx.set("nodeStation", nodeStation);
            infwrapperEx.set("nodeStation", nodeStation);
        }
        if (stationType != null && !stationType.isEmpty()) {
            stlag = 1;
            wrapper.set("stationType", stationType);
            infwrapper.set("stationType", stationType);
            wrapperEx.set("stationType", stationType);
            infwrapperEx.set("stationType", stationType);
        }
        if (stationLongitude != null && !stationLongitude.isEmpty()) {
            lofla = 1;
            mapInfo.setLongitude(Double.parseDouble(stationLongitude));
            wrapper.set("stationLongitude", stationLongitude);
            wrapperEx.set("stationLongitude", stationLongitude);
            mapwrapper.set("longitude", stationLongitude);
            mapwrapperEx.set("longitude", stationLongitude);
        }
        if (stationLatitude != null && !stationLatitude.isEmpty()) {
            lafla = 1;
            mapInfo.setLatitude(Double.parseDouble(stationLatitude));
            wrapper.set("stationLatitude", stationLatitude);
            wrapperEx.set("stationLatitude", stationLatitude);
            mapwrapper.set("latitude", stationLatitude);
            mapwrapperEx.set("latitude", stationLatitude);
        }
        if (stationAddr != null && !stationAddr.isEmpty()) {
            addfla = 1;
            mapInfo.setAddress(stationAddr);
            wrapper.set("stationAddr", stationAddr);
            wrapperEx.set("stationAddr", stationAddr);
            mapwrapper.set("address", stationAddr);
            mapwrapperEx.set("address", stationAddr);
        } else {
            mapInfo.setAddress("");
        }
        int flag = mapper.update(null, wrapper);
        if (nofla > 0 || stlag > 0) {
@@ -181,6 +291,13 @@
            if (list.size() > 0) {
                binfMapper.update(null, infwrapper);
            }
            //修改相同机房
            if (sinfEx != null) {
                wrapperEx.eq("stationId", sinfEx.getStationId());
                infwrapperEx.eq("stationId", sinfEx.getStationId());
                mapper.update(null, wrapperEx);
                binfMapper.update(null, infwrapperEx);
            }
        }
        if (lofla > 0 || lafla > 0 || addfla > 0) {
            QueryWrapper mwrapper = new QueryWrapper();
@@ -188,13 +305,38 @@
            List list = mapMapper.selectList(mwrapper);
            if (list.size() > 0) {
                mapMapper.update(null, mapwrapper);
            } else {
                QueryWrapper swrapper = new QueryWrapper();
                swrapper.eq("stationId", stationId);
                swrapper.last("limit 1");
                StationInf sinf = mapper.selectOne(swrapper);
                //插入map
                mapInfo.setStationId(stationId);
                mapInfo.setStationName(sinf.getStationName());
                mapInfo.setStationName3(sinf.getStationName3());
                mapMapper.insert(mapInfo);
            }
            //修改相同机房
            if (sinfEx != null) {
                QueryWrapper mwrapperEx = new QueryWrapper();
                mwrapperEx.eq("stationId", sinfEx.getStationId());
                List listEx = mapMapper.selectList(mwrapperEx);
                if (listEx.size() > 0) {
                    mapMapper.update(null, mapwrapperEx);
                } else {
                    //插入map
                    mapInfo.setStationId(sinfEx.getStationId());
                    mapInfo.setStationName(sinfEx.getStationName());
                    mapInfo.setStationName3(sinfEx.getStationName3());
                    mapMapper.insert(mapInfo);
                }
            }
        }
        return new Response().set(1, flag > 0, "编辑站点");
    }
    //查询所有的站点
    public Response searchStationAll(int pageCurr, int pageSize, String stationName1, String stationName2, String stationName5) {
    public Response searchStationAll(int pageCurr, int pageSize, String stationName1, String stationName2, String stationName5, String nodeStation, String stationType) {
        PageHelper.startPage(pageCurr, pageSize);
       /* QueryWrapper wrapper = new QueryWrapper();
        if (!(stationName1 == null || stationName1.isEmpty())) {
@@ -208,7 +350,7 @@
        }
        List<StationInf> list = mapper.selectList(wrapper);*/
        String uId = ActionUtil.getUser().getUId().toString();
        List<StationInf> list = mapper.searchStationAll(stationName1, stationName2, stationName5, uId);
        List<StationInf> list = mapper.searchStationAll(stationName1, stationName2, stationName5, nodeStation, stationType, uId);
        PageInfo pageInfo = new PageInfo(list);
        return new Response().setII(1, list.size() > 0, pageInfo, "查询站点");
    }
@@ -244,9 +386,10 @@
            Map<String, Integer> statemap = new HashMap();
            statemap.put("batt1", 0);
            statemap.put("batt2", 0);
            statemap.put("batt3", 0);
            Map<Integer, List<BattRtstate>> battstateMap = stateList.stream().collect(Collectors.groupingBy(BattRtstate::getBattState));
            for (Integer state : battstateMap.keySet()) {
                if (state == 1 || state == 2) {
                if (state == 1 || state == 2 || state == 3) {
                    statemap.put("batt" + state, battstateMap.get(state).size());
                }
            }
@@ -269,6 +412,13 @@
                fusemap.put("fuse" + fuse, adfuseMap.get(fuse).size());
            }
            map.put("fusemap", fusemap);
            //本年度核容放电电池组.
            int hrdisNum = testInfService.getYearAnalysis(userId);
            map.put("hrdisNum", hrdisNum);
            //实时停电放电
            int jcdisNum = fbs9100StateService.getJcAnalysis(userId);
            map.put("jcdisNum", jcdisNum);
            //视图
            List<StationInf> list = mapper.getSystemAll(userId);
            for (StationInf inf : list) {
                String stationId = inf.getStationId();
@@ -300,15 +450,21 @@
            return new Response().set(1, false, "发生异常:" + e.getCause());
        }
    }
    //找最大的stationid
    public String getMaxStationId() {
        QueryWrapper<StationInf> query = Wrappers.query();
        /*QueryWrapper<StationInf> query = Wrappers.query();
        query.select("stationId").orderByDesc("stationId").last(" limit 1");
        StationInf stationInf = mapper.selectOne(query);
        if (stationInf == null) {
            return "42000000";
        } else {
            return stationInf.getStationId();
        }*/
        String stationid = mapper.getMaxStationId();
        if (stationid == null) {
            return "42000000";
        } else {
            return stationid;
        }
    }
@@ -397,9 +553,10 @@
            Map<String, Integer> statemap = new HashMap();
            statemap.put("batt1", 0);
            statemap.put("batt2", 0);
            statemap.put("batt3", 0);
            Map<Integer, List<BattRtstate>> battstateMap = stateList.stream().collect(Collectors.groupingBy(BattRtstate::getBattState));
            for (Integer state : battstateMap.keySet()) {
                if (state == 1 || state == 2) {
                if (state == 1 || state == 2 || state == 3) {
                    statemap.put("batt" + state, battstateMap.get(state).size());
                }
            }
@@ -422,6 +579,12 @@
                fusemap.put("fuse" + fuse, adfuseMap.get(fuse).size());
            }
            map.put("fusemap", fusemap);
            //本年度核容放电电池组
            int hrdisNum = testInfService.getYearAnalysis(userId);
            map.put("hrdisNum", hrdisNum);
            //实时停电放电
            int jcdisNum = fbs9100StateService.getJcAnalysis(userId);
            map.put("jcdisNum", jcdisNum);
            //下面各个站点数据
            List<StationInf> list = mapper.getSystemAll(userId);
            for (StationInf inf : list) {
@@ -446,13 +609,16 @@
            }
            map.put("data", list);
            //站点统计
            List<StationInf> stationInfList = mapper.getStationInfList(userId);
            //110v/35v/...
            //List<StationInf> stationInfList = mapper.getStationInfList(userId);
            List<StationInf> stationInfList = mapper.getSateAnalysis(userId);//和homeAdmin相同
            //110kv/35kv/...
            Map<String, Object> kvMap = new HashMap();
            Map<String, List<StationInf>> stationTypeMap = stationInfList.stream().filter(stationInf -> !stationInf.getStationType().equals("")).collect(Collectors.groupingBy(StationInf::getStationType));
            Set<String> stationTypeSet = stationTypeMap.keySet();
            for (String stationType : stationTypeSet) {
                map.put(stationType, stationTypeMap.get(stationType).size());
                kvMap.put(stationType, stationTypeMap.get(stationType).size());
            }
            map.put("kvMap", kvMap);
            //节点站和普通站
            //List<Battinf> stationList = battInfService.getSateAnalysis(userId);
            //Map<Integer, List<Battinf>> nodeStationMap = stationList.stream().collect(Collectors.groupingBy(Battinf::getNodeStation));
@@ -473,8 +639,15 @@
            });
            alarmWrapper.orderByAsc("alm_id");
            List<AlarmParam> paramList = alarmParamMapper.selectList(alarmWrapper);
            float capAlarm = paramList.get(0).getAlmLowCoe();//劣化参数0.8
            float capChange = paramList.get(1).getAlmLowCoe();//损坏参数0.6
            float capAlarm = 0f;
            float capChange = 0f;
            if (paramList != null && paramList.size() > 0) {
                capAlarm = paramList.get(0).getAlmLowCoe();//劣化参数0.8
                capChange = paramList.get(1).getAlmLowCoe();//损坏参数0.6
            } else {
                capAlarm = 0.8f;
                capChange = 0.6f;
            }
            //站点劣化数量(包含损坏)
            int alarmNum = badbattMonMapper.getQualityAnalysisStation(userId, capAlarm);
            //站点损坏数量
@@ -503,64 +676,6 @@
        return mapper.getStation(userId);
    }
    //监控层首页:站点实时数据推送
    public Object getMonitorAll(int userId) {
        return new Response().set(1, true, "站点实时数据推送");
    }
    //管理员首页:头部统计
    public Response getSystemSkipHead(int userId) {
        try {
            Map<String, Object> map = new HashMap();
            //头部统计数据
            int stationNum = mapper.getStation(userId);
            map.put("stationNum", stationNum);
            //浮充/充电
            List<BattRtstate> stateList = rtstateMapper.getBattStateStatic(userId);
            Map<Integer, Integer> statemap = new HashMap();
            Map<Integer, List<BattRtstate>> battstateMap = stateList.stream().collect(Collectors.groupingBy(BattRtstate::getBattState));
            for (Integer state : battstateMap.keySet()) {
                statemap.put(state, battstateMap.get(state).size());
            }
            map.put("battState", statemap);
            return new Response().setII(1, true, map, "管理员首页:头部统计");
        } catch (Exception e) {
            return new Response().set(1, false, "发生异常:" + e.getCause());
        }
    }
    //指定站点详情第一次跳转机房id为0:message
    public Response getSystemSkipStation(int userId, String stationId) {
        //查询指定机房信息
        StationInf inf = mapper.getSystemSkipStation(userId, stationId);
        if (inf != null) {
            //查询分组电池信息
            List<SystemGrdoupBatt> sgblist = rtstateMapper.selectSystemGrdoupBatt(stationId);
            for (int i = 0; i < sgblist.size(); i++) {
                int battGroupId = sgblist.get(i).getBattGroupId();
                //查询机房下最大的单体电压和单体
                BattRtdata maxData = rtdataMapper.maxData(battGroupId);
                sgblist.get(i).setMaxVol(maxData.getMonVol());
                sgblist.get(i).setMaxNum(maxData.getMonNum());
                //查询机房下最低的单体电压和单体
                BattRtdata minData = rtdataMapper.minData(battGroupId);
                sgblist.get(i).setMinVol(maxData.getMonVol());
                sgblist.get(i).setMinNum(maxData.getMonNum());
                //查询实时告警总数
                int battAlm = battAlmMapper.getbattAlm(battGroupId);
                sgblist.get(i).setBattAlm(battAlm);
            }
            inf.setSgbList(sgblist);
            int devAlm = devAlmMapper.getdevAlm(stationId);
            inf.setDevAlm(devAlm);
            int pwrAlm = pwrAlmMapper.getpwrAlm(stationId);
            inf.setPwrAlm(pwrAlm);
            return new Response().setII(1, true, inf, "指定站点详情");
        } else {
            return new Response().set(1, false, "指定站点详情");
        }
    }
    //运维层首页:头部统计
    public Response getDevOpSkipHead(int userId) {
@@ -574,9 +689,10 @@
            Map<String, Integer> statemap = new HashMap();
            statemap.put("batt1", 0);
            statemap.put("batt2", 0);
            statemap.put("batt3", 0);
            Map<Integer, List<BattRtstate>> battstateMap = stateList.stream().collect(Collectors.groupingBy(BattRtstate::getBattState));
            for (Integer state : battstateMap.keySet()) {
                if (state == 1 || state == 2) {
                if (state == 1 || state == 2 || state == 3) {
                    statemap.put("batt" + state, battstateMap.get(state).size());
                }
            }
@@ -599,6 +715,12 @@
                fusemap.put("fuse" + fuse, adfuseMap.get(fuse).size());
            }
            map.put("fusemap", fusemap);
            //本年度核容放电电池组.停电放电电池组
            int hrdisNum = testInfService.getYearAnalysis(userId);
            map.put("hrdisNum", hrdisNum);
            //实时停电放电
            int jcdisNum = fbs9100StateService.getJcAnalysis(userId);
            map.put("jcdisNum", jcdisNum);
            //站点统计
            List<StationInf> stationInfList = mapper.getStationInfList(userId);
            //110v/35v/...
@@ -794,4 +916,20 @@
        List<StationInf> list = mapper.getSateAnalysis(userId);
        return list;
    }
    public List<StationInf> getStationInfList(int userId) {
        return mapper.getStationInfList(userId);
    }
    //查询所有的站点电压等级
    public Response searStationType() {
        List<String> list = mapper.searStationType();
        return new Response().setII(1, list.size() > 0 ? true : false, list, "查询所有的站点电压等级");
    }
    //添加关联时下拉显示
    public Response getTogetherStations(String stationName1, String stationName2, String stationName5) {
        List<StationInf> list = mapper.getTogetherStations(stationName1, stationName2, stationName5);
        return new Response().set(1, list, "查询成功");
    }
}