| | |
| | | package com.whyc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | 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.BattCapFactory; |
| | | import com.whyc.dto.InterfaceParam; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.dto.result.AlarmRes; |
| | | import com.whyc.mapper.*; |
| | | import com.whyc.pojo.BattalarmData; |
| | | import com.whyc.pojo.PwrdevAlarm; |
| | | import com.whyc.pojo.*; |
| | | import com.whyc.util.ActionUtil; |
| | | import com.whyc.util.MessageUtils; |
| | | import com.whyc.util.RSAUtil; |
| | | import com.whyc.util.SubTablePageInfoUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import javax.servlet.ServletContext; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.security.SecureRandom; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | private PwrdevAlarmMapper pwrdevAlarmMapper; |
| | | @Resource |
| | | private DevalarmDataMapper devalarmDataMapper; |
| | | @Resource |
| | | private BattalarmDataHistoryMapper battalarmDataHistoryMapper; |
| | | @Resource |
| | | private PwrdevAlarmHistoryMapper pwrdevAlarmHistoryMapper; |
| | | @Resource |
| | | private DevalarmDataHistoryMapper devalarmDataHistoryMapper; |
| | | @Resource |
| | | private PwrdevAcdcdataMapper pwrdevAcdcdataMapper; |
| | | @Resource |
| | | private Fbs9100StateMapper fbs9100StateMapper; |
| | | @Resource |
| | | private BattRtdataMapper battRtdataMapper; |
| | | @Resource |
| | | private BattRtstateMapper battRtstateMapper; |
| | | |
| | | public Response getBattinf(int pageNum,int pageSize){ |
| | | //分页信息 |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List list = battInfMapper.getBattInf(); |
| | | PageInfo pageInfo=new PageInfo(list); |
| | | return new Response().set(1,pageInfo); |
| | | @Autowired(required = false) |
| | | private InterfaceMapper interfaceMapper; |
| | | |
| | | @Autowired(required = false) |
| | | private BattMapInformationMapper mapMapper; |
| | | |
| | | @Autowired |
| | | private Fbs9100SetparamService fbs9100SetparamService; |
| | | |
| | | @Autowired(required = false) |
| | | private Fbs9100SetparamMapper fbs9100SetparamMapper; |
| | | |
| | | @Autowired |
| | | private SubTablePageInfoUtils subTablePageInfoUtils; |
| | | |
| | | @Autowired |
| | | private BattRealdataService battRealdataService; |
| | | |
| | | @Autowired |
| | | private BattInfService battInfService; |
| | | |
| | | @Autowired |
| | | private BattEnduranceService battEnduranceService; |
| | | |
| | | public Response getBattinf(int pageNum, int pageSize, String interfaceNumber) { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | //分页信息 |
| | | PageHelper.startPage(pageNum, pageSize); |
| | | List list = battInfMapper.selectList((Wrapper<Battinf>) ActionUtil.objeNull); |
| | | PageInfo pageInfo = new PageInfo(list); |
| | | return new Response().set(1, pageInfo); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | public Response getPowerInf(int pageNum,int pageSize){ |
| | | //分页信息 |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List list = powerInfMapper.selectList(null); |
| | | PageInfo pageInfo=new PageInfo(list); |
| | | return new Response().set(1,pageInfo); |
| | | public Response getPowerInf(int pageNum, int pageSize, String interfaceNumber) { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | //分页信息 |
| | | PageHelper.startPage(pageNum, pageSize); |
| | | List list = powerInfMapper.selectList((Wrapper<PowerInf>) ActionUtil.objeNull); |
| | | PageInfo pageInfo = new PageInfo(list); |
| | | return new Response().set(1, pageInfo); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | //电池告警实时查询-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 |
| | | @Transactional |
| | | public Response getPwrdevAlarm(List powerDeviceIds){ |
| | | // //分页信息 |
| | | // PageHelper.startPage(pageNum,pageSize); |
| | | List<PwrdevAlarm> list=pwrdevAlarmMapper.getPwrdevAlarm(powerDeviceIds); |
| | | for (PwrdevAlarm p:list) { |
| | | p.setAlarmName(AlarmDaoFactory.getAllAlarmName(p.getAlmType())); |
| | | if(p.getAlmIndex()!=0){ |
| | | p.setAlarmName(p.getAlarmName().replace("N","第"+p.getAlmIndex()+"路")); |
| | | public Response getPwrdevAlarm(List powerDeviceIds, String interfaceNumber) { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | // //分页信息 |
| | | // PageHelper.startPage(pageNum,pageSize); |
| | | List<PwrdevAlarm> list = pwrdevAlarmMapper.getPwrdevAlarm(powerDeviceIds); |
| | | for (PwrdevAlarm 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, list); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | // PageInfo pageInfo=new PageInfo(list); |
| | | return new Response().set(1,list); |
| | | } |
| | | |
| | | |
| | | //设备告警实时查询-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, "越权访问"); |
| | | } |
| | | |
| | | } |
| | | |
| | | public Response getRealTime(){ |
| | | //电池告警历史查询 |
| | | @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, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | //电池告警历史查询 |
| | | @Transactional |
| | | public Response getBattAlarmHistory2(InterfaceParam param, String interfaceNumber, int pageNum, int pageSize) throws ParseException { |
| | | String lang = ActionUtil.getLang(); |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | PageInfo<Object> pageInfo = subTablePageInfoUtils.getPageInfo(pageNum, pageSize, param.getStartTime(), param.getEndTime(), |
| | | "db_alarm", "tb_battalarm_data_history", param); |
| | | List<Object> list = pageInfo.getList(); |
| | | for (Object obj : list) { |
| | | AlarmRes a = (AlarmRes) obj; |
| | | 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)); |
| | | } |
| | | } |
| | | 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 getDevAlarmHistory2(InterfaceParam param, String interfaceNumber, int pageNum, int pageSize) throws ParseException { |
| | | //先验证 |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | PageInfo<Object> pageInfo = subTablePageInfoUtils.getPageInfo(pageNum, pageSize, param.getStartTime(), param.getEndTime(), |
| | | "db_alarm", "tb_devalarm_data_history", param); |
| | | return new Response().set(1, pageInfo); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | |
| | | } |
| | | |
| | | public Response getRealTime(InterfaceParam param) { |
| | | //先验证 |
| | | int flag = decryptInterface(param.getInterfaceNumber()); |
| | | if (flag == 1) { |
| | | //判断param.getPowerDeviceIds()是否为空,不为空则查询 |
| | | List<PwrdevAcdcdata> powerRts = new ArrayList<>(); |
| | | if (param.getPowerDeviceIds() != null && param.getPowerDeviceIds().size() > 0) { |
| | | powerRts = pwrdevAcdcdataMapper.getPowerRealtime(param.getPowerDeviceIds()); |
| | | } |
| | | List<Fbs9100State> fbs9100States = new ArrayList<>(); |
| | | if (param.getDeviceIds() != null && param.getDeviceIds().size() > 0) { |
| | | fbs9100States = fbs9100StateMapper.getRealtime(param.getDeviceIds()); |
| | | } |
| | | List<BattRtdata> battRtDatas = new ArrayList<>(); |
| | | if (param.getStationIds() != null && param.getStationIds().size() > 0) { |
| | | battRtDatas = battRtdataMapper.getRealtime(param.getStationIds()); |
| | | } |
| | | List<BattRtstate> battRtstates = new ArrayList<>(); |
| | | if (param.getBattgroupIds() != null && param.getBattgroupIds().size() > 0) { |
| | | battRtstates = battRtstateMapper.getRealtime(param.getBattgroupIds()); |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("powerRts", powerRts); |
| | | map.put("fbs9100States", fbs9100States); |
| | | map.put("battRtDatas", battRtDatas); |
| | | map.put("battRtstates", battRtstates); |
| | | return new Response().set(1, map); |
| | | } else { |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | //获取所有第三方码的信息 |
| | | public Response getInterface(int pageNum, int pageSize) { |
| | | PageHelper.startPage(pageNum, pageSize); |
| | | List<Interface> list = interfaceMapper.selectList((Wrapper<Interface>) ActionUtil.objeNull); |
| | | if (list != null && list.size() > 0) { |
| | | for (Interface iface : list) { |
| | | String random = iface.getInterfaceNumber(); |
| | | iface.setInterfaceNumber(RSAUtil.decrypt(random, RSAUtil.getPrivateKey())); |
| | | } |
| | | } |
| | | PageInfo pageInfo = new PageInfo(list); |
| | | return new Response().setII(1, list.size() > 0, pageInfo, "返回所有第三方码"); |
| | | } |
| | | |
| | | //生成第三方验证码 |
| | | public Response createInterface(String interfaceName) throws NoSuchAlgorithmException { |
| | | String random = getRandomString(25); |
| | | //rsa加密 |
| | | String encryptRandom = RSAUtil.encrypt(random, RSAUtil.getPublicKey()); |
| | | //将生成的random存入数据库 |
| | | Interface iface = new Interface(); |
| | | iface.setInterfaceName(interfaceName); |
| | | iface.setInterfaceNumber(encryptRandom); |
| | | iface.setEnable(1); |
| | | interfaceMapper.insert(iface); |
| | | return new Response().set(1, true, random); |
| | | } |
| | | |
| | | //编辑第三方验证码是否可用 |
| | | public Response updateInterface(int num, int enable) { |
| | | UpdateWrapper wrapper = new UpdateWrapper(); |
| | | wrapper.set("enable", enable); |
| | | wrapper.eq("num", num); |
| | | interfaceMapper.update((Interface) ActionUtil.objeNull, wrapper); |
| | | return new Response().set(1, true, "编辑是否可用"); |
| | | } |
| | | |
| | | //验证第三方验证码是否成功 |
| | | public int decryptInterface(String encryptRandom) { |
| | | 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) { |
| | | String random = RSAUtil.decrypt(iface.getInterfaceNumber(), RSAUtil.getPrivateKey()); |
| | | if (encryptRandom.equals(random)) { |
| | | flag = 1; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return flag; |
| | | } |
| | | |
| | | //length用户要求产生字符串的长度 |
| | | public static String getRandomString(int length) throws NoSuchAlgorithmException { |
| | | String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; |
| | | //Random random = new Random(); |
| | | SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); |
| | | |
| | | StringBuffer sb = new StringBuffer(); |
| | | for (int i = 0; i < length; i++) { |
| | | int number = random.nextInt(62); |
| | | sb.append(str.charAt(number)); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | |
| | | 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,battGroupNum-1); |
| | | 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, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | public Response getBattHistoryDataList(BattRealdata data, String interfaceNumber) throws ParseException, InterruptedException { |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | Response response = battRealdataService.serchByCondition2(data); |
| | | return new Response().set(1,response); |
| | | }else{ |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 1.电池基本信息:电池品牌、电池型号、投入使用时间、标称容量、电池组id |
| | | * 2.运行数据:实际容量、电池组数、负载电流、续航时长 |
| | | */ |
| | | public Response getBattGroupDataList(String stationId, String interfaceNumber) { |
| | | int flag = decryptInterface(interfaceNumber); |
| | | if (flag == 1) { |
| | | Map<String, Object> resultMap = new HashMap<>(); |
| | | |
| | | //根据站点查询电池组列表及基础信息 |
| | | List<Battinf> battGroupList = battInfService.getBattListByStatoinId(stationId); |
| | | resultMap.put("basicInfo",battGroupList); |
| | | //根据站点查询运行数据 |
| | | List<BattEndurance> enduranceInfoList = battEnduranceService.getEnduranceInfoByStationId(stationId); |
| | | if(battGroupList.size() != 0 && enduranceInfoList.size() != 0) { //存在电池组且存在电池组的续航信息记录 |
| | | //这里只考虑一个站点只有1台设备. |
| | | BattEndurance battEndurance = enduranceInfoList.get(0); |
| | | //运行数据 |
| | | List<BattEndurance> runDataList = new ArrayList<>(); |
| | | battGroupList.forEach(battinf -> { |
| | | Integer groupIndex = battinf.getGroupIndexInFBSDevice(); |
| | | Float loadCurrFromDis = battinf.getLoadCurrFromDis(); |
| | | Float capStd = battinf.getMonCapStd(); |
| | | |
| | | BattEndurance temp = new BattEndurance(); |
| | | switch (groupIndex) { |
| | | case 0: |
| | | temp.setRealCap(battEndurance.getRealCapGroup1()); |
| | | temp.setNum(0); |
| | | temp.setLoadCurr(String.valueOf(loadCurrFromDis)); |
| | | temp.setEnduranceTheoryTimelong(BattCapFactory.getTheoryTime(loadCurrFromDis, battEndurance.getRealCapGroup1(), capStd)); |
| | | break; |
| | | case 1: |
| | | temp.setRealCap(battEndurance.getRealCapGroup2()); |
| | | temp.setNum(1); |
| | | temp.setLoadCurr(String.valueOf(loadCurrFromDis)); |
| | | temp.setEnduranceTheoryTimelong(BattCapFactory.getTheoryTime(loadCurrFromDis, battEndurance.getRealCapGroup2(), capStd)); |
| | | break; |
| | | case 2: |
| | | temp.setRealCap(battEndurance.getRealCapGroup3()); |
| | | temp.setNum(2); |
| | | temp.setLoadCurr(String.valueOf(loadCurrFromDis)); |
| | | temp.setEnduranceTheoryTimelong(BattCapFactory.getTheoryTime(loadCurrFromDis, battEndurance.getRealCapGroup3(), capStd)); |
| | | break; |
| | | case 3: |
| | | temp.setRealCap(battEndurance.getRealCapGroup4()); |
| | | temp.setNum(3); |
| | | temp.setLoadCurr(String.valueOf(loadCurrFromDis)); |
| | | temp.setEnduranceTheoryTimelong(BattCapFactory.getTheoryTime(loadCurrFromDis, battEndurance.getRealCapGroup4(), capStd)); |
| | | break; |
| | | } |
| | | runDataList.add(temp); |
| | | |
| | | }); |
| | | resultMap.put("runData", runDataList); |
| | | }else{ |
| | | resultMap.put("runData",null); |
| | | } |
| | | return new Response().set(1,resultMap); |
| | | }else{ |
| | | return new Response().set(1, "越权访问"); |
| | | } |
| | | } |
| | | } |