| | |
| | | package com.whyc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.dto.AlarmDaoFactory; |
| | |
| | | import com.whyc.dto.result.AlarmRes; |
| | | import com.whyc.mapper.*; |
| | | import com.whyc.pojo.*; |
| | | import com.whyc.util.ActionUtil; |
| | | import com.whyc.util.MessageUtils; |
| | | import com.whyc.util.RSAUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Random; |
| | | import javax.servlet.ServletContext; |
| | | import java.util.*; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | @Resource |
| | | private DevalarmDataMapper devalarmDataMapper; |
| | | @Resource |
| | | private BattalarmDataHistoryMapper battalarmDataHistoryMapper; |
| | | @Resource |
| | | private PwrdevAlarmHistoryMapper pwrdevAlarmHistoryMapper; |
| | | @Resource |
| | | private DevalarmDataHistoryMapper devalarmDataHistoryMapper; |
| | | @Resource |
| | | private PwrdevAcdcdataMapper pwrdevAcdcdataMapper; |
| | | @Resource |
| | | private Fbs9100StateMapper fbs9100StateMapper; |
| | |
| | | |
| | | @Autowired(required = false) |
| | | private InterfaceMapper interfaceMapper; |
| | | |
| | | @Autowired(required = false) |
| | | private BattMapInformationMapper mapMapper; |
| | | |
| | | @Autowired |
| | | private Fbs9100SetparamService fbs9100SetparamService; |
| | | |
| | | @Autowired(required = false) |
| | | private Fbs9100SetparamMapper fbs9100SetparamMapper; |
| | | |
| | | public Response getBattinf(int pageNum, int pageSize, String interfaceNumber) { |
| | | //先验证 |
| | |
| | | |
| | | //电池告警实时查询-websocket使用 |
| | | @Transactional |
| | | public Response getBattAlarm(List battgroupIds) { |
| | | public Response getBattAlarm(List battgroupIds, String interfaceNumber, String lang) { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | // //分页信息 |
| | | // PageHelper.startPage(pageNum,pageSize); |
| | | List<AlarmRes> list = battalarmDataMapper.getBattAlarm(battgroupIds); |
| | | for (AlarmRes a : list) { |
| | | List<BattalarmData> l = a.getAdatas(); |
| | | for (BattalarmData adata : l) { |
| | | adata.setAlmSignalIdName(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId())); |
| | | adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel())); |
| | | List<AlarmRes> list = battalarmDataMapper.getBattAlarm(battgroupIds); |
| | | for (AlarmRes a : list) { |
| | | List<BattalarmData> l = a.getAdatas(); |
| | | for (BattalarmData adata : l) { |
| | | adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang)); |
| | | adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang)); |
| | | } |
| | | } |
| | | } |
| | | // PageInfo<AlarmRes> pinfo=new PageInfo<AlarmRes>(list); |
| | | return new Response().set(1, list); |
| | | return new Response().set(1, list); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | //电源实时告警查询--第三方接口-websocket |
| | |
| | | |
| | | |
| | | //设备告警实时查询-webSocket |
| | | public Response getDevAlarm(List deviceIds) { |
| | | public Response getDevAlarm(List deviceIds, String interfaceNumber) { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | // PageHelper.startPage(pageNum,pageSize); |
| | | List list=devalarmDataMapper.getDevAlarm(deviceIds); |
| | | List list = devalarmDataMapper.getDevAlarm(deviceIds); |
| | | // PageInfo pageInfo=new PageInfo(list); |
| | | return new Response().set(1,list); |
| | | return new Response().set(1, list); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | |
| | | } |
| | | |
| | | //电池告警历史查询 |
| | | @Transactional |
| | | public Response getBattAlarmHistory(List battgroupIds, String interfaceNumber, int pageNum, int pageSize) { |
| | | String lang = ActionUtil.getLang(); |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List<AlarmRes> list = battalarmDataHistoryMapper.getBattAlarmHistory(battgroupIds); |
| | | for (AlarmRes a : list) { |
| | | List<BattalarmData> l = a.getAdatas(); |
| | | for (BattalarmData adata : l) { |
| | | adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang)); |
| | | adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang)); |
| | | } |
| | | } |
| | | PageInfo<AlarmRes> pageInfo = new PageInfo<AlarmRes>(list); |
| | | return new Response().set(1, pageInfo); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | //电源告警历史查询 |
| | | @Transactional |
| | | public Response getPwrdevAlarmHistory(List powerDeviceIds, String interfaceNumber, int pageNum, int pageSize) { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List<PwrdevAlarmHistory> list = pwrdevAlarmHistoryMapper.getPwrdevAlarmHistory(powerDeviceIds); |
| | | for (PwrdevAlarmHistory p : list) { |
| | | p.setAlarmName(AlarmDaoFactory.getAllAlarmName(p.getAlmType())); |
| | | if (p.getAlmIndex() != 0) { |
| | | p.setAlarmName(p.getAlarmName().replace("N", "第" + p.getAlmIndex() + "路")); |
| | | } |
| | | } |
| | | PageInfo pageInfo = new PageInfo(list); |
| | | return new Response().set(1, pageInfo); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | |
| | | //设备告警历史查询 |
| | | public Response getDevAlarmHistory(List deviceIds, String interfaceNumber, int pageNum, int pageSize) { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List list = devalarmDataHistoryMapper.getDevAlarmHistory(deviceIds); |
| | | PageInfo pageInfo = new PageInfo(list); |
| | | return new Response().set(1, pageInfo); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | |
| | | } |
| | | |
| | | public Response getRealTime(InterfaceParam param) { |
| | |
| | | |
| | | //验证第三方验证码是否成功 |
| | | public int decryptInterface(String encryptRandom) { |
| | | List<Interface> list = interfaceMapper.selectList(null); |
| | | QueryWrapper wrapper = new QueryWrapper(); |
| | | wrapper.eq("enable", 1); |
| | | List<Interface> list = interfaceMapper.selectList(wrapper); |
| | | int flag = 0; |
| | | if (list != null && list.size() > 0) { |
| | | for (Interface iface : list) { |
| | |
| | | } |
| | | |
| | | |
| | | public Response getAlarmDiffMap(String interfaceNumber, String lang) { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | Map<String, Object> alarmDiffMap = new HashMap<>(); |
| | | //获取初始化时的告警列表/变动更新后的告警列表 |
| | | ServletContext application = ActionUtil.getApplication(); |
| | | Map<String, Object> alarmMap = (Map<String, Object>) application.getAttribute("alarmMap"); |
| | | //获取当前的告警列表 |
| | | Map<String, Object> alarmMapNow = getAlarmMap(lang); |
| | | |
| | | List<BattalarmData> battAlarmList = (List<BattalarmData>) alarmMap.get("battAlarmList"); |
| | | List<DevalarmData> devAlarmList = (List<DevalarmData>) alarmMap.get("devAlarmList"); |
| | | List<PwrdevAlarm> powerAlarmList = (List<PwrdevAlarm>) alarmMap.get("powerAlarmList"); |
| | | |
| | | List<BattalarmData> battAlarmListNow = (List<BattalarmData>) alarmMapNow.get("battAlarmList"); |
| | | List<DevalarmData> devAlarmListNow = (List<DevalarmData>) alarmMapNow.get("devAlarmList"); |
| | | List<PwrdevAlarm> powerAlarmListNow = (List<PwrdevAlarm>) alarmMapNow.get("powerAlarmList"); |
| | | |
| | | List<BattalarmData> battAlarmListAdded = new LinkedList<>(); |
| | | List<BattalarmData> battAlarmListRemoved = new LinkedList<>(); |
| | | |
| | | List<DevalarmData> devAlarmListAdded = new LinkedList<>(); |
| | | List<DevalarmData> devAlarmListRemoved = new LinkedList<>(); |
| | | |
| | | List<PwrdevAlarm> powerAlarmListAdded = new LinkedList<>(); |
| | | List<PwrdevAlarm> powerAlarmListRemoved = new LinkedList<>(); |
| | | //电池组告警增加 |
| | | for (BattalarmData now : battAlarmListNow) { |
| | | long num = now.getNum(); |
| | | boolean exist = false; |
| | | for (BattalarmData old : battAlarmList) { |
| | | if (old.getNum() == num) { |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!exist) { |
| | | battAlarmListAdded.add(now); |
| | | } |
| | | |
| | | } |
| | | //电池组告警减少 |
| | | for (BattalarmData old : battAlarmList) { |
| | | long num = old.getNum(); |
| | | boolean exist = false; |
| | | for (BattalarmData now : battAlarmListNow) { |
| | | if (now.getNum() == num) { |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!exist) { |
| | | battAlarmListRemoved.add(old); |
| | | } |
| | | |
| | | } |
| | | |
| | | //设备告警增加 |
| | | for (DevalarmData now : devAlarmListNow) { |
| | | long num = now.getNum(); |
| | | boolean exist = false; |
| | | for (DevalarmData old : devAlarmList) { |
| | | if (old.getNum() == num) { |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!exist) { |
| | | devAlarmListAdded.add(now); |
| | | } |
| | | |
| | | } |
| | | //设备告警减少 |
| | | for (DevalarmData old : devAlarmList) { |
| | | long num = old.getNum(); |
| | | boolean exist = false; |
| | | for (DevalarmData now : devAlarmListNow) { |
| | | if (now.getNum() == num) { |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!exist) { |
| | | devAlarmListRemoved.add(old); |
| | | } |
| | | |
| | | } |
| | | |
| | | //电源告警增加 |
| | | for (PwrdevAlarm now : powerAlarmListNow) { |
| | | long num = now.getNum(); |
| | | boolean exist = false; |
| | | for (PwrdevAlarm old : powerAlarmList) { |
| | | if (old.getNum() == num) { |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!exist) { |
| | | powerAlarmListAdded.add(now); |
| | | } |
| | | |
| | | } |
| | | //电源告警减少 |
| | | for (PwrdevAlarm old : powerAlarmList) { |
| | | long num = old.getNum(); |
| | | boolean exist = false; |
| | | for (PwrdevAlarm now : powerAlarmListNow) { |
| | | if (now.getNum() == num) { |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!exist) { |
| | | powerAlarmListRemoved.add(old); |
| | | } |
| | | } |
| | | |
| | | alarmDiffMap.put("battAlarmListAdded", battAlarmListAdded); |
| | | alarmDiffMap.put("battAlarmListRemoved", battAlarmListRemoved); |
| | | alarmDiffMap.put("devAlarmListAdded", devAlarmListAdded); |
| | | alarmDiffMap.put("devAlarmListRemoved", devAlarmListRemoved); |
| | | alarmDiffMap.put("powerAlarmListAdded", powerAlarmListAdded); |
| | | alarmDiffMap.put("powerAlarmListRemoved", powerAlarmListRemoved); |
| | | |
| | | if (battAlarmListAdded.size() != 0 || battAlarmListRemoved.size() != 0 |
| | | || devAlarmListAdded.size() != 0 || devAlarmListRemoved.size() != 0 |
| | | || powerAlarmListAdded.size() != 0 || powerAlarmListRemoved.size() != 0 |
| | | ) { |
| | | //有任何变动,更新旧的告警列表 |
| | | application.setAttribute("alarmMap", alarmMapNow); |
| | | } |
| | | |
| | | return new Response().set(1,alarmDiffMap); |
| | | }else{ |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | public Map<String, Object> getAlarmMap(String lang) { |
| | | List<BattalarmData> battAlarmList = battalarmDataMapper.getBattAlarm2(); |
| | | for (BattalarmData adata : battAlarmList) { |
| | | adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang)); |
| | | adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang)); |
| | | } |
| | | |
| | | List devAlarmList = devalarmDataMapper.getDevAlarm2(); |
| | | |
| | | List<PwrdevAlarm> powerAlarmList = pwrdevAlarmMapper.getPwrdevAlarm2(); |
| | | for (PwrdevAlarm p : powerAlarmList) { |
| | | p.setAlarmName(AlarmDaoFactory.getAllAlarmName(p.getAlmType())); |
| | | if (p.getAlmIndex() != 0) { |
| | | p.setAlarmName(p.getAlarmName().replace("N", "第" + p.getAlmIndex() + "路")); |
| | | } |
| | | } |
| | | |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("battAlarmList",battAlarmList); |
| | | map.put("devAlarmList",devAlarmList); |
| | | map.put("powerAlarmList",powerAlarmList); |
| | | return map; |
| | | } |
| | | |
| | | public Response getRealTimeAlarm(InterfaceParam param) { |
| | | String lang = ActionUtil.getLang(); |
| | | int flag = decryptInterface(param.getInterfaceNumber()); |
| | | if (flag == 1) { |
| | | Map<String,List> map = new HashMap<>(); |
| | | map.put("battAlarmList",null); |
| | | map.put("devAlarmList",null); |
| | | map.put("powerAlarmList",null); |
| | | List battgroupIds = param.getBattgroupIds(); |
| | | List deviceIds = param.getDeviceIds(); |
| | | List powerDeviceIds = param.getPowerDeviceIds(); |
| | | //电池告警实时 |
| | | if(battgroupIds!=null && battgroupIds.size()!=0) { |
| | | List<AlarmRes> battAlarmList = battalarmDataMapper.getBattAlarm(battgroupIds); |
| | | for (AlarmRes a : battAlarmList) { |
| | | List<BattalarmData> l = a.getAdatas(); |
| | | for (BattalarmData adata : l) { |
| | | adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang)); |
| | | adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang)); |
| | | } |
| | | } |
| | | map.put("battAlarmList",battAlarmList); |
| | | } |
| | | |
| | | //设备告警实时 |
| | | if(deviceIds!=null && deviceIds.size()!=0) { |
| | | List devAlarmList = devalarmDataMapper.getDevAlarm(deviceIds); |
| | | map.put("devAlarmList",devAlarmList); |
| | | } |
| | | |
| | | //电源告警实时 |
| | | if(powerDeviceIds!=null && powerDeviceIds.size()!=0) { |
| | | List<PwrdevAlarm> powerAlarmList = pwrdevAlarmMapper.getPwrdevAlarm(powerDeviceIds); |
| | | for (PwrdevAlarm p : powerAlarmList) { |
| | | p.setAlarmName(AlarmDaoFactory.getAllAlarmName(p.getAlmType())); |
| | | if (p.getAlmIndex() != 0) { |
| | | p.setAlarmName(p.getAlarmName().replace("N", "第" + p.getAlmIndex() + "路")); |
| | | } |
| | | } |
| | | map.put("powerAlarmList",powerAlarmList); |
| | | } |
| | | |
| | | return new Response().set(1,map); |
| | | }else{ |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | public Response getBattStationInfoByStationId(String stationId, String interfaceNumber) { |
| | | int flag = decryptInterface(interfaceNumber); |
| | | //int flag = 1; |
| | | if (flag == 1) { |
| | | QueryWrapper<Battinf> query = Wrappers.query(); |
| | | query.eq("StationId", stationId).last(" limit 1"); |
| | | Battinf battinf = battInfMapper.selectOne(query); |
| | | |
| | | QueryWrapper<BattMapInformation> mapQuery = Wrappers.query(); |
| | | mapQuery.select("longitude", "latitude").eq("stationId", stationId).last(" limit 1"); |
| | | BattMapInformation mapInfo = mapMapper.selectOne(mapQuery); |
| | | if (mapInfo != null) { |
| | | battinf.setLongitude(mapInfo.getLongitude()); |
| | | battinf.setLatitude(mapInfo.getLatitude()); |
| | | } else { |
| | | battinf.setLongitude(0d); |
| | | battinf.setLatitude(0d); |
| | | } |
| | | |
| | | return new Response().set(1, battinf); |
| | | }else{ |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | public Response sendCmdGet(int opCmd, Integer testCmd, int devId, int battGroupNum, String interfaceNumber) { |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | boolean bl = fbs9100SetparamService.sendCmdToFBS9100Dev2(opCmd, testCmd != null ? testCmd : 0, devId, battGroupNum); |
| | | Fbs9100Setparam setparam = fbs9100SetparamMapper.serchbyDev_id(devId); |
| | | return new Response().setII(1, setparam, bl, bl == true ? "查询成功!" : "设置9100参数失败,请检查网络!"); |
| | | }else{ |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | public Response sendCmdSet(Fbs9100Setparam param, String interfaceNumber) { |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | Long devId = param.getDevId(); |
| | | if (devId.toString().startsWith("61850")) { |
| | | return fbs9100SetparamService.update61850Param(param); |
| | | } else { |
| | | return fbs9100SetparamService.update(param); |
| | | } |
| | | }else{ |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | } |