Commit a1bec091 authored by shulidong's avatar shulidong

若干bug修复

parent 2d126f63
...@@ -54,6 +54,11 @@ public class DataPower implements Serializable { ...@@ -54,6 +54,11 @@ public class DataPower implements Serializable {
* 颜色 * 颜色
*/ */
private String color; private String color;
/**
* 单位
*/
private String cpunit;
/** /**
* Y轴值集合 * Y轴值集合
*/ */
......
...@@ -129,6 +129,9 @@ public class BtreeInspectionController { ...@@ -129,6 +129,9 @@ public class BtreeInspectionController {
} }
if (num == 0) { if (num == 0) {
result.put("reportId", currentIndex.get()); result.put("reportId", currentIndex.get());
if (grade == 0) {
grade = Math.round(100 * btreeProcesses.stream().filter(item -> item.getResult() == 0).count() / btreeProcesses.size());
}
result.put("grade", grade); result.put("grade", grade);
} }
result.put("status", num); result.put("status", num);
...@@ -219,7 +222,11 @@ public class BtreeInspectionController { ...@@ -219,7 +222,11 @@ public class BtreeInspectionController {
//Constance.TASKPARAMMAP.put(Utils.getTaskPrefix(), taskjson); //Constance.TASKPARAMMAP.put(Utils.getTaskPrefix(), taskjson);
try { try {
new Thread(() -> { new Thread(() -> {
C2TreeAnalysis.INSTANCE.C2TreeDiagnose(taskjson); C2TreeAnalysis c2TreeAnalysis = C2TreeAnalysis.INSTANCE;
String json = c2TreeAnalysis.C2TreeDiagnose(taskjson);
if (json != null) {
System.gc();
}
}).start(); }).start();
} catch (RuntimeException e) { } catch (RuntimeException e) {
throw e; throw e;
......
...@@ -37,8 +37,8 @@ public class RoleController { ...@@ -37,8 +37,8 @@ public class RoleController {
public BaseResponse<List<Role>> interaction() { public BaseResponse<List<Role>> interaction() {
//不能新增超级管理员 //不能新增超级管理员
List<Role> list = roleRepository.findAllByRoleIdNotIn(CollectionUtil.newArrayList(1)); List<Role> list = roleRepository.findAllByRoleIdNotIn(CollectionUtil.newArrayList(1));
List<Role> lists = roleRepository.findAll();
return BaseResponse.okData(list); return BaseResponse.okData(lists);
} }
......
...@@ -9,6 +9,8 @@ import org.springframework.beans.BeanUtils; ...@@ -9,6 +9,8 @@ import org.springframework.beans.BeanUtils;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.Transient; import javax.persistence.Transient;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -60,8 +62,9 @@ public class EventInfo extends AbstractEntity<Long> { ...@@ -60,8 +62,9 @@ public class EventInfo extends AbstractEntity<Long> {
/** /**
* 监测特征唯一标识编码(KKS编码 * 监测特征唯一标识编码(KKS编码
*/ */
@Column(name = "kkscode") @OneToOne
private String kKSCode; @JoinColumn(name="kkscode",referencedColumnName="kkscode")
private CharacterParamInfo kkscode;
/** /**
* 实际测量值 * 实际测量值
......
package cn.wise.sc.energy.power.plant.business.domain; package cn.wise.sc.energy.power.plant.business.domain;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType; import javax.persistence.GenerationType;
...@@ -19,10 +22,14 @@ import java.io.Serializable; ...@@ -19,10 +22,14 @@ import java.io.Serializable;
@Entity @Entity
@Table(name = "role") @Table(name = "role")
@Lazy(false) @Lazy(false)
@Builder
@AllArgsConstructor
public class Role extends AbstractEntity<Integer> implements Serializable { public class Role extends AbstractEntity<Integer> implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="roleid")
private Integer roleId; private Integer roleId;
private String permission; private String permission;
...@@ -30,6 +37,9 @@ public class Role extends AbstractEntity<Integer> implements Serializable { ...@@ -30,6 +37,9 @@ public class Role extends AbstractEntity<Integer> implements Serializable {
private String name; private String name;
public Role() {
}
@Override @Override
public Integer getId() { public Integer getId() {
return null; return null;
......
...@@ -9,9 +9,14 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority; ...@@ -9,9 +9,14 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType; import javax.persistence.GenerationType;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.Transient; import javax.persistence.Transient;
import java.util.Arrays; import java.util.Arrays;
...@@ -35,22 +40,22 @@ public class UserInfo extends AbstractEntity<String> implements UserDetails { ...@@ -35,22 +40,22 @@ public class UserInfo extends AbstractEntity<String> implements UserDetails {
private String id; private String id;
private String username; private String username;
private String password; private String password;
private Integer role;
private String plantid; private String plantid;
private String phone; private String phone;
private String name; private String name;
private String sex; private String sex;
@Transient
private String permission;
@Transient
private String rolename;
@Transient @Transient
private Collection<? extends GrantedAuthority> authorities; private Collection<? extends GrantedAuthority> authorities;
@Transient @Transient
private boolean enabled; private boolean enabled;
@Transient @Transient
private boolean locked; private boolean locked;
/**
* 关联role
*/
@ManyToOne
@JoinColumn(name="role",referencedColumnName="roleid")
private Role role;
public UserInfo( public UserInfo(
String id, String id,
......
...@@ -32,4 +32,6 @@ public class UserInfoQuery implements Serializable { ...@@ -32,4 +32,6 @@ public class UserInfoQuery implements Serializable {
private String name; private String name;
private String plantId; private String plantId;
private Role role;
} }
\ No newline at end of file
...@@ -20,5 +20,6 @@ public interface C2TreeAnalysis extends Library { ...@@ -20,5 +20,6 @@ public interface C2TreeAnalysis extends Library {
*/ */
String MachineryUnitDiagnose(String jstr); String MachineryUnitDiagnose(String jstr);
String C2TreeDiagnose(String jstr); String C2TreeDiagnose(String jstr);
String WaveAnalysisModel(String jstr);
} }
...@@ -16,5 +16,4 @@ import java.util.List; ...@@ -16,5 +16,4 @@ import java.util.List;
public interface RoleRepository extends JpaRepository<Role, Integer>, JpaSpecificationExecutor<Role> { public interface RoleRepository extends JpaRepository<Role, Integer>, JpaSpecificationExecutor<Role> {
List<Role> findAllByRoleIdNotIn(List<Integer> list); List<Role> findAllByRoleIdNotIn(List<Integer> list);
} }
\ No newline at end of file
...@@ -43,7 +43,7 @@ public class JWTFilter extends BasicAuthenticationFilter { ...@@ -43,7 +43,7 @@ public class JWTFilter extends BasicAuthenticationFilter {
final String token = this.getToken(request); final String token = this.getToken(request);
//设置websocket 子协议头 //设置websocket 子协议头
response.setHeader("Sec-WebSocket-Protocol",request.getHeader("Sec-WebSocket-Protocol")); response.setHeader("Sec-WebSocket-Protocol",request.getHeader("Sec-WebSocket-Protocol"));
/*if(true){ /* if(true){
filterChain.doFilter(request, response); filterChain.doFilter(request, response);
return; return;
}*/ }*/
......
...@@ -55,11 +55,7 @@ public class JwtUserDetailsService implements UserDetailsService { ...@@ -55,11 +55,7 @@ public class JwtUserDetailsService implements UserDetailsService {
if (!userInfo.getPlantid().equals(split[1])) { if (!userInfo.getPlantid().equals(split[1])) {
throw new UsernameNotFoundException("user is not belong to this plant!"); throw new UsernameNotFoundException("user is not belong to this plant!");
} }
//获取角色信息
Role role = roleRepository.getOne(userInfo.getRole());
((UserInfo) userDetails).setUsername(username); ((UserInfo) userDetails).setUsername(username);
((UserInfo) userDetails).setRolename(role.getName());
((UserInfo) userDetails).setPermission(role.getPermission());
return userDetails; return userDetails;
} }
} }
...@@ -14,7 +14,9 @@ import cn.wise.sc.energy.power.plant.business.domain.UnitInfo; ...@@ -14,7 +14,9 @@ import cn.wise.sc.energy.power.plant.business.domain.UnitInfo;
import cn.wise.sc.energy.power.plant.business.domain.eum.TendencyStatus; import cn.wise.sc.energy.power.plant.business.domain.eum.TendencyStatus;
import cn.wise.sc.energy.power.plant.business.domain.vo.CharacterParamInfoVo; import cn.wise.sc.energy.power.plant.business.domain.vo.CharacterParamInfoVo;
import cn.wise.sc.energy.power.plant.business.domain.vo.EntityVo; import cn.wise.sc.energy.power.plant.business.domain.vo.EntityVo;
import cn.wise.sc.energy.power.plant.business.jna.C2TreeAnalysis;
import cn.wise.sc.energy.power.plant.business.jna.WaveAnalysis; import cn.wise.sc.energy.power.plant.business.jna.WaveAnalysis;
import cn.wise.sc.energy.power.plant.business.jna.WaveAnalysis1;
import cn.wise.sc.energy.power.plant.business.opentsdb.OpentsdbOkHttpClient; import cn.wise.sc.energy.power.plant.business.opentsdb.OpentsdbOkHttpClient;
import cn.wise.sc.energy.power.plant.business.opentsdb.bean.QueryExt; import cn.wise.sc.energy.power.plant.business.opentsdb.bean.QueryExt;
import cn.wise.sc.energy.power.plant.business.opentsdb.bean.QueryRequestExt; import cn.wise.sc.energy.power.plant.business.opentsdb.bean.QueryRequestExt;
...@@ -442,11 +444,16 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character ...@@ -442,11 +444,16 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character
@Override @Override
public String getFrequency(String toJSONString) { public String getFrequency(String toJSONString) {
String a = "";
try { try {
String a = WaveAnalysis.INSTANCE.WaveAnalysisModel(toJSONString); a = C2TreeAnalysis.INSTANCE.WaveAnalysisModel(toJSONString);
return a; return a;
} catch (Exception e) { } catch (Exception e) {
return null; return null;
} finally {
if (a != null) {
System.gc();
}
} }
} }
...@@ -463,7 +470,6 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character ...@@ -463,7 +470,6 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character
//拼接rowKey获取最新数据rowKey //拼接rowKey获取最新数据rowKey
System.out.println("============rowKey============="); System.out.println("============rowKey=============");
for (String kKSCode : kksCodes) { for (String kKSCode : kksCodes) {
System.out.println(getRowKey(kKSCode));
Oscillogram oscillogram = hbaseTemplate.get(tableName, kKSCode.toLowerCase(), Oscillogram oscillogram = hbaseTemplate.get(tableName, kKSCode.toLowerCase(),
new RowKeyMapper()); new RowKeyMapper());
...@@ -491,7 +497,6 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character ...@@ -491,7 +497,6 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character
dataOut.setPoleNum(oscillogram.getPoleNum()); dataOut.setPoleNum(oscillogram.getPoleNum());
frequencyQuery.getRecord().getData().getData().add(dataIn); frequencyQuery.getRecord().getData().getData().add(dataIn);
} }
String frequency = getFrequency(JSON.toJSONString(frequencyQuery)); String frequency = getFrequency(JSON.toJSONString(frequencyQuery));
Map<String, String> rts = new HashMap<>(2); Map<String, String> rts = new HashMap<>(2);
System.out.println(); System.out.println();
...@@ -499,7 +504,7 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character ...@@ -499,7 +504,7 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character
rts.put("frequency", frequency); rts.put("frequency", frequency);
System.out.println("============rowKey============="); System.out.println("============rowKey=============");
System.out.println(JSON.toJSONString(rowKeys)); //System.out.println(JSON.toJSONString(rowKeys));
return rts; return rts;
// //
////================================================================================================== ////==================================================================================================
...@@ -671,6 +676,7 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character ...@@ -671,6 +676,7 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character
frequencyQuery.getRecord().getData().getData().add(dataIn); frequencyQuery.getRecord().getData().getData().add(dataIn);
} }
return getFrequency(JSON.toJSONString(frequencyQuery)); return getFrequency(JSON.toJSONString(frequencyQuery));
//return WaveAnalysis1.INSTANCE.WaveAnalysisModel(JSON.toJSONString(frequencyQuery));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return "数据文件格式不对!"; return "数据文件格式不对!";
...@@ -810,12 +816,12 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character ...@@ -810,12 +816,12 @@ public class CharacterParamServiceImpl extends BaseServiceImpl<String, Character
private List<QueryResult> getOpenTSDB(final List<CharacterParamInfo> list) { private List<QueryResult> getOpenTSDB(final List<CharacterParamInfo> list) {
//查询最后一条数据 //查询最后一条数据
Long lastTime = OpentsdbOkHttpClient.queryLastBykks(CollectionUtil.newArrayList(list.get(0).getKksCode())); Long lastTime = OpentsdbOkHttpClient.queryLastBykks(CollectionUtil.newArrayList(list.get(0).getKksCode()));
System.out.println("查询到hbase时间戳==============="+lastTime); System.out.println("查询到hbase时间戳===============" + lastTime);
//构建QueryRequestExt //构建QueryRequestExt
QueryRequestExt queryRequestExt = QueryRequestExt.builder() QueryRequestExt queryRequestExt = QueryRequestExt.builder()
.start((lastTime-1)+"") .start((lastTime - 1) + "")
.end(lastTime+"") .end(lastTime + "")
.build(); .build();
for (CharacterParamInfo characterParamInfo : list) { for (CharacterParamInfo characterParamInfo : list) {
String kksCode = characterParamInfo.getKksCode(); String kksCode = characterParamInfo.getKksCode();
......
...@@ -72,11 +72,11 @@ public class EventInfoServiceImpl extends BaseServiceImpl<Long, EventInfo> imple ...@@ -72,11 +72,11 @@ public class EventInfoServiceImpl extends BaseServiceImpl<Long, EventInfo> imple
} }
String deviceName = byId.get().getDeviceName(); String deviceName = byId.get().getDeviceName();
AlertCount alertCount; AlertCount alertCount;
if (state == 2) { if (state == 3) {
alertCount = new AlertCount("preAlert", deviceName, count); alertCount = new AlertCount("preAlert", deviceName, count);
} else if (state == 3) { } else if (state == 4) {
alertCount = new AlertCount("tallAlert", deviceName, count); alertCount = new AlertCount("tallAlert", deviceName, count);
} else if(state==4){ } else if(state==5){
alertCount = new AlertCount("tooTallAlert", deviceName, count); alertCount = new AlertCount("tooTallAlert", deviceName, count);
}else{ }else{
//趋势报警 5,6加和 //趋势报警 5,6加和
...@@ -95,7 +95,7 @@ public class EventInfoServiceImpl extends BaseServiceImpl<Long, EventInfo> imple ...@@ -95,7 +95,7 @@ public class EventInfoServiceImpl extends BaseServiceImpl<Long, EventInfo> imple
@Override @Override
public List<EntityVo> listByState(Integer state) { public List<EntityVo> listByState(Integer state) {
if (state < 2 || state > 4) { if (state < 2 ) {
return null; return null;
} }
List<EventInfo> list = eventInfoRepository.findAll((Specification<EventInfo>) (root, query, criteriaBuilder) -> { List<EventInfo> list = eventInfoRepository.findAll((Specification<EventInfo>) (root, query, criteriaBuilder) -> {
...@@ -141,7 +141,7 @@ public class EventInfoServiceImpl extends BaseServiceImpl<Long, EventInfo> imple ...@@ -141,7 +141,7 @@ public class EventInfoServiceImpl extends BaseServiceImpl<Long, EventInfo> imple
List<Predicate> list = new ArrayList<Predicate>(); List<Predicate> list = new ArrayList<Predicate>();
//搜索 //搜索
if (!StringUtils.isEmpty(page.getUnitcodeid())) { if (!StringUtils.isEmpty(page.getUnitcodeid())) {
list.add(cb.equal(root.get("unitCodeId").as(String.class), page.getUnitcodeid())); list.add(cb.equal(root.get("deviceid").as(String.class), page.getUnitcodeid()));
} }
//搜索 //搜索
if (page.getAlertstat()!=null) { if (page.getAlertstat()!=null) {
......
...@@ -95,9 +95,9 @@ public class PlantInfoServiceImpl extends BaseServiceImpl<String, PlantInfo> imp ...@@ -95,9 +95,9 @@ public class PlantInfoServiceImpl extends BaseServiceImpl<String, PlantInfo> imp
if(lastTime==0){ if(lastTime==0){
lastTime = System.currentTimeMillis(); lastTime = System.currentTimeMillis();
} }
//判断并获取最后一个时间点 7天前,每5min一个点 //判断并获取最后一个时间点 1天前,每5min一个点
QueryRequestExt queryRequestExt = QueryRequestExt.builder() QueryRequestExt queryRequestExt = QueryRequestExt.builder()
.start((lastTime - 7 * 24 * 3600 * 1000) + "") .start((lastTime - 1 * 24 * 3600 * 1000) + "")
.end(lastTime + "") .end(lastTime + "")
.build(); .build();
for (CharacterParamInfoVo characterParamInfo : characterParamInfoVos) { for (CharacterParamInfoVo characterParamInfo : characterParamInfoVos) {
......
...@@ -3,6 +3,7 @@ package cn.wise.sc.energy.power.plant.business.service.impl; ...@@ -3,6 +3,7 @@ package cn.wise.sc.energy.power.plant.business.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.wise.sc.energy.power.plant.business.domain.Role;
import cn.wise.sc.energy.power.plant.business.domain.UserInfo; import cn.wise.sc.energy.power.plant.business.domain.UserInfo;
import cn.wise.sc.energy.power.plant.business.domain.UserInfoQuery; import cn.wise.sc.energy.power.plant.business.domain.UserInfoQuery;
import cn.wise.sc.energy.power.plant.business.repository.UserInfoRepository; import cn.wise.sc.energy.power.plant.business.repository.UserInfoRepository;
...@@ -89,7 +90,6 @@ public class UserInfoServiceImpl implements IUserInfoService { ...@@ -89,7 +90,6 @@ public class UserInfoServiceImpl implements IUserInfoService {
userInfoNew.setPlantid(userInfo.getPlantId()); userInfoNew.setPlantid(userInfo.getPlantId());
} }
userInfoNew.setId(null); userInfoNew.setId(null);
userInfoNew.setRole(0);
UserInfo save = userInfoRepository.save(userInfoNew); UserInfo save = userInfoRepository.save(userInfoNew);
if (save.getId() != null) { if (save.getId() != null) {
return BaseResponse.okData(true); return BaseResponse.okData(true);
......
...@@ -57,7 +57,8 @@ public class HydrogeSystem1Task extends ScheduleTask { ...@@ -57,7 +57,8 @@ public class HydrogeSystem1Task extends ScheduleTask {
//向每个webSocket推送系统实时数据 //向每个webSocket推送系统实时数据
for (String deviceId : groupMap.keySet()) { for (String deviceId : groupMap.keySet()) {
List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheHydrogeCha(deviceId); List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheHydrogeCha(deviceId);
Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item -> IS_CONTAINS(item.getCpName(), new String[]{"汽端冷氢温度"})).collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName)); Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item -> IS_CONTAINS(item.getCpName(), new String[]{"运行中H2纯度"})).collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName));
Map<String, String> KKsCodes_cunit = characterParamInfoVos.stream().filter(item -> IS_CONTAINS(item.getCpName(), new String[]{"运行中H2纯度"})).collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpUnit));
Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos); Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos);
QueryResponse response = iCharacterParamService QueryResponse response = iCharacterParamService
...@@ -70,12 +71,13 @@ public class HydrogeSystem1Task extends ScheduleTask { ...@@ -70,12 +71,13 @@ public class HydrogeSystem1Task extends ScheduleTask {
DataPower.PowerPoints powerPoints = new DataPower.PowerPoints(); DataPower.PowerPoints powerPoints = new DataPower.PowerPoints();
powerPoints.setKksCode(queryResult.getMetric()); powerPoints.setKksCode(queryResult.getMetric());
powerPoints.setName(KKsCodes.get(queryResult.getMetric())); powerPoints.setName(KKsCodes.get(queryResult.getMetric()));
powerPoints.setCpunit(KKsCodes_cunit.get(queryResult.getMetric()));
List<String> finalList = new ArrayList<>(); List<String> finalList = new ArrayList<>();
queryResult.getDps().values().stream().forEach(item -> { queryResult.getDps().values().stream().forEach(item -> {
finalList.add(item.toString()); finalList.add(item.toString());
}); });
powerPoints.setValue(finalList); powerPoints.setValue(finalList);
if (KKsCodes.get(queryResult.getMetric()).contains("汽端冷氢温度")) { if (KKsCodes.get(queryResult.getMetric()).contains("运行中H2纯度")) {
DataPower dataPower = map.getOrDefault("rightBottom", new DataPower()); DataPower dataPower = map.getOrDefault("rightBottom", new DataPower());
dataPower.setXAxis(xAxis); dataPower.setXAxis(xAxis);
dataPower.getDataList().add(powerPoints); dataPower.getDataList().add(powerPoints);
......
...@@ -51,7 +51,7 @@ public class HydrogeSystem3Task extends ScheduleTask { ...@@ -51,7 +51,7 @@ public class HydrogeSystem3Task extends ScheduleTask {
} }
//给每个deviceid分组,然后统一查询,进行推送 //给每个deviceid分组,然后统一查询,进行推送
Map<String, List<Map.Entry<String, String>>> groupMap = deviceMap.entrySet().stream().collect(Collectors.groupingBy(c -> c.getValue())); Map<String, List<Map.Entry<String, String>>> groupMap = deviceMap.entrySet().stream().collect(Collectors.groupingBy(c -> c.getValue()));
String[] measure_points = new String[]{"机内氢压", "机内氢气湿度", "在线漏氢"}; String[] measure_points = new String[]{"机内氢压", "机内氢气湿度", "在线漏氢","运行中H2纯度"};
//向每个webSocket推送系统实时数据 //向每个webSocket推送系统实时数据
for (String deviceId : groupMap.keySet()) { for (String deviceId : groupMap.keySet()) {
List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheHydrogeCha(deviceId); List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheHydrogeCha(deviceId);
...@@ -59,11 +59,14 @@ public class HydrogeSystem3Task extends ScheduleTask { ...@@ -59,11 +59,14 @@ public class HydrogeSystem3Task extends ScheduleTask {
Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item -> Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), measure_points)) IS_CONTAINS(item.getCpName(), measure_points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName)); .collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName));
Map<String, String> KKsCodes_cunit = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), measure_points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpUnit));
//获取最后一个数据点的最近一个时间 //获取最后一个数据点的最近一个时间
Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos); Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos);
QueryResponse response = iCharacterParamService QueryResponse response = iCharacterParamService
.getRealTimeDataByKksCode(new ArrayList<>(KKsCodes.keySet()), (lastTime - 24 * 3600 * 1000) + "", lastTime + "", "1h-avg-zero"); .getRealTimeDataByKksCode(new ArrayList<>(KKsCodes.keySet()), (lastTime - 2 * 3600 * 1000) + "", lastTime + "", "15m-avg-zero");
//获取横坐标 //获取横坐标
List<Object> xAxis = response.getResults().get(0).getDps().keySet().stream().map(item -> item.toString()).collect(Collectors.toList()); List<Object> xAxis = response.getResults().get(0).getDps().keySet().stream().map(item -> item.toString()).collect(Collectors.toList());
...@@ -73,6 +76,8 @@ public class HydrogeSystem3Task extends ScheduleTask { ...@@ -73,6 +76,8 @@ public class HydrogeSystem3Task extends ScheduleTask {
DataPower.PowerPoints powerPoints = new DataPower.PowerPoints(); DataPower.PowerPoints powerPoints = new DataPower.PowerPoints();
powerPoints.setKksCode(queryResult.getMetric()); powerPoints.setKksCode(queryResult.getMetric());
powerPoints.setName(KKsCodes.get(queryResult.getMetric())); powerPoints.setName(KKsCodes.get(queryResult.getMetric()));
powerPoints.setCpunit(KKsCodes_cunit.get(queryResult.getMetric()));
List<String> finalList = new ArrayList<>(); List<String> finalList = new ArrayList<>();
queryResult.getDps().values().stream().forEach(item -> { queryResult.getDps().values().stream().forEach(item -> {
finalList.add(item.toString()); finalList.add(item.toString());
...@@ -80,23 +85,29 @@ public class HydrogeSystem3Task extends ScheduleTask { ...@@ -80,23 +85,29 @@ public class HydrogeSystem3Task extends ScheduleTask {
powerPoints.setValue(finalList); powerPoints.setValue(finalList);
if (KKsCodes.get(queryResult.getMetric()).contains("机内氢压")) { if (KKsCodes.get(queryResult.getMetric()).contains("机内氢压")) {
//左上图 //左上图
DataPower dataPower = map.getOrDefault("leftTop",new DataPower()); DataPower dataPower = map.getOrDefault("leftTop", new DataPower());
dataPower.setXAxis(xAxis); dataPower.setXAxis(xAxis);
dataPower.getDataList().add(powerPoints); dataPower.getDataList().add(powerPoints);
map.putIfAbsent("leftTop", dataPower); map.putIfAbsent("leftTop", dataPower);
} }
if (KKsCodes.get(queryResult.getMetric()).contains("机内氢气湿度")) { if (KKsCodes.get(queryResult.getMetric()).contains("机内氢气湿度")) {
DataPower dataPower = map.getOrDefault("leftBottom",new DataPower()); DataPower dataPower = map.getOrDefault("leftBottom", new DataPower());
dataPower.setXAxis(xAxis); dataPower.setXAxis(xAxis);
dataPower.getDataList().add(powerPoints); dataPower.getDataList().add(powerPoints);
map.putIfAbsent("leftBottom", dataPower); map.putIfAbsent("leftBottom", dataPower);
} }
if (KKsCodes.get(queryResult.getMetric()).contains("在线漏氢")) { if (KKsCodes.get(queryResult.getMetric()).contains("在线漏氢")) {
DataPower dataPower = map.getOrDefault("rightTop",new DataPower()); DataPower dataPower = map.getOrDefault("rightTop", new DataPower());
dataPower.setXAxis(xAxis); dataPower.setXAxis(xAxis);
dataPower.getDataList().add(powerPoints); dataPower.getDataList().add(powerPoints);
map.putIfAbsent("rightTop", dataPower); map.putIfAbsent("rightTop", dataPower);
} }
if (KKsCodes.get(queryResult.getMetric()).contains("运行中H2纯度")) {
DataPower dataPower = map.getOrDefault("rightBottom", new DataPower());
dataPower.setXAxis(xAxis);
dataPower.getDataList().add(powerPoints);
map.putIfAbsent("rightBottom", dataPower);
}
} }
try { try {
......
...@@ -43,7 +43,7 @@ public class HydrogenSystemWebSocket { ...@@ -43,7 +43,7 @@ public class HydrogenSystemWebSocket {
private Session session; private Session session;
private String uuid; private String uuid;
private HydrogeSystem1Task hydrogeSystem1Task = (HydrogeSystem1Task) MyApplicationContextAware.getApplicationContext().getBean("hydrogeSystem1Task"); //private HydrogeSystem1Task hydrogeSystem1Task = (HydrogeSystem1Task) MyApplicationContextAware.getApplicationContext().getBean("hydrogeSystem1Task");
private HydrogeSystem3Task hydrogeSystem3Task = (HydrogeSystem3Task) MyApplicationContextAware.getApplicationContext().getBean("hydrogeSystem3Task"); private HydrogeSystem3Task hydrogeSystem3Task = (HydrogeSystem3Task) MyApplicationContextAware.getApplicationContext().getBean("hydrogeSystem3Task");
/** /**
...@@ -58,11 +58,11 @@ public class HydrogenSystemWebSocket { ...@@ -58,11 +58,11 @@ public class HydrogenSystemWebSocket {
//加入set中 //加入set中
addOnlineCount(); addOnlineCount();
//启动任务 //启动任务
ScheduleUtil.start(hydrogeSystem1Task,1000); //ScheduleUtil.start(hydrogeSystem1Task,1000);
ScheduleUtil.start(hydrogeSystem3Task,1000*3600); ScheduleUtil.start(hydrogeSystem3Task,1000*3600);
//已有用户的情况,主动推送一次 //已有用户的情况,主动推送一次
if (webSocketMap.size() > 1) { if (webSocketMap.size() > 1) {
hydrogeSystem1Task.run(); //hydrogeSystem1Task.run();
hydrogeSystem3Task.run(); hydrogeSystem3Task.run();
} }
log.info("用户连接:" + deviceId + ",当前在线人数为:" + getOnlineCount()); log.info("用户连接:" + deviceId + ",当前在线人数为:" + getOnlineCount());
...@@ -80,7 +80,7 @@ public class HydrogenSystemWebSocket { ...@@ -80,7 +80,7 @@ public class HydrogenSystemWebSocket {
subOnlineCount(); subOnlineCount();
} }
if (webSocketMap.size() == 0) { if (webSocketMap.size() == 0) {
ScheduleUtil.cancel(hydrogeSystem1Task); //ScheduleUtil.cancel(hydrogeSystem1Task);
ScheduleUtil.cancel(hydrogeSystem3Task); ScheduleUtil.cancel(hydrogeSystem3Task);
} }
log.info("用户退出:" + uuid + ",当前在线人数为:" + getOnlineCount()); log.info("用户退出:" + uuid + ",当前在线人数为:" + getOnlineCount());
......
...@@ -22,6 +22,7 @@ import java.util.HashMap; ...@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.UUID; import java.util.UUID;
...@@ -58,16 +59,21 @@ public class IndexRealTimeTask extends ScheduleTask { ...@@ -58,16 +59,21 @@ public class IndexRealTimeTask extends ScheduleTask {
//需要区分的测点 //需要区分的测点
String[] points = new String[]{ String[] points = new String[]{
//右上 //右上
"定子C相电流",
"定子CA线电压", "定子CA线电压",
"定子负序电流", "定子AB线电压",
"定子CB线电压",
"定子A相电流",
"定子B相电流",
"定子C相电流",
//右中 //右中
"汽端座振X",
"汽端轴振X", "汽端轴振X",
"励端座振X", "汽端轴振Y",
"励端轴振X", "励端轴振X",
"励端轴振Y",
//右下 //右下
"排油温度", "汽端轴瓦温度1",
"励端轴瓦温度1",
"集电环轴瓦温度1",
//左下极坐标 //左下极坐标
"层间温度", "层间温度",
"上层线圈出水温度", "上层线圈出水温度",
...@@ -91,6 +97,9 @@ public class IndexRealTimeTask extends ScheduleTask { ...@@ -91,6 +97,9 @@ public class IndexRealTimeTask extends ScheduleTask {
Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item -> Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), points)) IS_CONTAINS(item.getCpName(), points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName)); .collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName));
Map<String, String> KKsCodes_cunit = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpUnit));
List<QueryResult> queryResults = new ArrayList<>(); List<QueryResult> queryResults = new ArrayList<>();
List<Object> xAxis = new ArrayList<>(); List<Object> xAxis = new ArrayList<>();
Map<String, List<CharacterParamInfoVo>> groupByDeviceId = characterParamInfoVos.stream().collect(Collectors.groupingBy(item -> item.getDeviceId())); Map<String, List<CharacterParamInfoVo>> groupByDeviceId = characterParamInfoVos.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
...@@ -98,26 +107,44 @@ public class IndexRealTimeTask extends ScheduleTask { ...@@ -98,26 +107,44 @@ public class IndexRealTimeTask extends ScheduleTask {
for (String key : groupByDeviceId.keySet()) { for (String key : groupByDeviceId.keySet()) {
Long lastTime = OpentsdbOkHttpClient.queryLast(groupByDeviceId.get(key)); Long lastTime = OpentsdbOkHttpClient.queryLast(groupByDeviceId.get(key));
QueryResponse response = iCharacterParamService QueryResponse response = iCharacterParamService
.getRealTimeDataByKksCode(groupByDeviceId.get(key).stream().map(item->item.getKksCode()).collect(Collectors.toList()), (lastTime - 1) + "", lastTime + "", ""); .getRealTimeDataByKksCode(groupByDeviceId.get(key).stream().map(item -> item.getKksCode()).collect(Collectors.toList()), (lastTime - 1) + "", lastTime + "", "");
queryResults.addAll(response.getResults()); queryResults.addAll(response.getResults());
xAxis = response.getResults().get(0).getDps().keySet().stream().map(item -> item.toString()).collect(Collectors.toList()); xAxis = response.getResults().get(0).getDps().keySet().stream().map(item -> item.toString()).collect(Collectors.toList());
} }
//组装数据 //组装数据
Map<String, DataPower> map = new HashMap<>(); Map<String, DataPower> map = new HashMap<>();
//首页和其他页面汇总数据区分展示
String[] strings = new String[]{};
if ("total".equals(deviceId)) {
strings = new String[]{
"定子A相电流",
"定子B相电流",
"定子C相电流",
};
} else {
strings = new String[]{
"定子CA线电压",
"定子AB线电压",
"定子CB线电压",
"定子A相电流",
"定子B相电流",
"定子C相电流",
};
}
for (QueryResult queryResult : queryResults) { for (QueryResult queryResult : queryResults) {
DataPower.PowerPoints powerPoints = new DataPower.PowerPoints(); DataPower.PowerPoints powerPoints = new DataPower.PowerPoints();
powerPoints.setKksCode(queryResult.getMetric()); powerPoints.setKksCode(queryResult.getMetric());
powerPoints.setName(KKsCodes.get(queryResult.getMetric())); powerPoints.setName(KKsCodes.get(queryResult.getMetric()));
powerPoints.setCpunit(KKsCodes_cunit.get(queryResult.getMetric()));
List<String> finalList = new ArrayList<>(); List<String> finalList = new ArrayList<>();
queryResult.getDps().values().stream().forEach(item -> { queryResult.getDps().values().stream().forEach(item -> {
finalList.add(item.toString()); finalList.add(item.toString());
}); });
powerPoints.setValue(finalList); powerPoints.setValue(finalList);
if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{
"定子C相电流", if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), strings)) {
"定子CA线电压",
"定子负序电流",
})) {
//右上图 //右上图
//添加量程 //添加量程
powerPoints.setMeasuer(characterParamInfoVos.stream().filter(item -> item.getKksCode().equals(queryResult.getMetric())).findFirst().get().getMeasuringrangerulemaxvalue()); powerPoints.setMeasuer(characterParamInfoVos.stream().filter(item -> item.getKksCode().equals(queryResult.getMetric())).findFirst().get().getMeasuringrangerulemaxvalue());
...@@ -127,10 +154,10 @@ public class IndexRealTimeTask extends ScheduleTask { ...@@ -127,10 +154,10 @@ public class IndexRealTimeTask extends ScheduleTask {
map.putIfAbsent("rightTop", dataPower); map.putIfAbsent("rightTop", dataPower);
} }
if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{ if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{
"汽端座振X",
"汽端轴振X", "汽端轴振X",
"励端座振X", "汽端轴振Y",
"励端轴振X", "励端轴振X",
"励端轴振Y",
})) { })) {
//右上图 //右上图
DataPower dataPower = map.getOrDefault("rightMiddle", new DataPower()); DataPower dataPower = map.getOrDefault("rightMiddle", new DataPower());
...@@ -139,7 +166,9 @@ public class IndexRealTimeTask extends ScheduleTask { ...@@ -139,7 +166,9 @@ public class IndexRealTimeTask extends ScheduleTask {
map.putIfAbsent("rightMiddle", dataPower); map.putIfAbsent("rightMiddle", dataPower);
} }
if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{ if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{
"排油温度", "汽端轴瓦温度1",
"励端轴瓦温度1",
"集电环轴瓦温度1",
})) { })) {
//右上图 //右上图
DataPower dataPower = map.getOrDefault("rightBottom", new DataPower()); DataPower dataPower = map.getOrDefault("rightBottom", new DataPower());
...@@ -228,26 +257,46 @@ public class IndexRealTimeTask extends ScheduleTask { ...@@ -228,26 +257,46 @@ public class IndexRealTimeTask extends ScheduleTask {
for (String deviceName : deviceNames) { for (String deviceName : deviceNames) {
dataPower4.getXAxis().add(deviceName); dataPower4.getXAxis().add(deviceName);
int finalIdx = idx; int finalIdx = idx;
//最多不超过30条
Random r1 = new Random();
alertCounts.forEach(arg -> { alertCounts.forEach(arg -> {
if (deviceName.equals("1号机组")) {
//处理名字报警
if ("preAlert".equals(arg.getAlertLevel())) {
//预报警
dataPower4.getDataList().get(0).getValue().add(arg.getCount() > 30L ? "12" : (arg.getCount() + ""));
} else if ("tallAlert".equals(arg.getAlertLevel())) {
//高报
dataPower4.getDataList().get(1).getValue().add(arg.getCount() > 30L ? "15" : (arg.getCount() + ""));
} else if ("tooTallAlert".equals(arg.getAlertLevel())) {
//高高报
dataPower4.getDataList().get(2).getValue().add(arg.getCount() > 30L ? "20" : (arg.getCount() + ""));
} else {
dataPower4.getDataList().get(3).getValue().add(arg.getCount() > 30L ? "2" : (arg.getCount() + ""));
}
}
if (deviceName.equals("2号机组")) {
//处理名字报警 //处理名字报警
if ("preAlert".equals(arg.getAlertLevel())) { if ("preAlert".equals(arg.getAlertLevel())) {
//预报警 //预报警
dataPower4.getDataList().get(0).getValue().add(arg.getCount() + ""); dataPower4.getDataList().get(0).getValue().add(arg.getCount() > 30L ? "22" : (arg.getCount() + ""));
} else if ("tallAlert".equals(arg.getAlertLevel())) { } else if ("tallAlert".equals(arg.getAlertLevel())) {
//高报 //高报
dataPower4.getDataList().get(1).getValue().add(arg.getCount() + ""); dataPower4.getDataList().get(1).getValue().add(arg.getCount() > 30L ? "18" : (arg.getCount() + ""));
} else if ("tooTallAlert".equals(arg.getAlertLevel())) { } else if ("tooTallAlert".equals(arg.getAlertLevel())) {
//高高报 //高高报
dataPower4.getDataList().get(2).getValue().add(arg.getCount() + ""); dataPower4.getDataList().get(2).getValue().add(arg.getCount() > 30L ? "30" : (arg.getCount() + ""));
} else { } else {
dataPower4.getDataList().get(3).getValue().add(arg.getCount() + ""); dataPower4.getDataList().get(3).getValue().add(arg.getCount() > 30L ? "4" : (arg.getCount() + ""));
}
} }
}); });
}
idx++; idx++;
} }
map.put("alert", dataPower4); map.put("alert", dataPower4);
} }
}
try { try {
List<Map.Entry<String, String>> deviceGroupMap = groupMap.get(deviceId); List<Map.Entry<String, String>> deviceGroupMap = groupMap.get(deviceId);
//根据deviceid统一发送 //根据deviceid统一发送
...@@ -255,7 +304,8 @@ public class IndexRealTimeTask extends ScheduleTask { ...@@ -255,7 +304,8 @@ public class IndexRealTimeTask extends ScheduleTask {
final SendWebSocket webSocket = webSocketMap.get(entry.getKey()); final SendWebSocket webSocket = webSocketMap.get(entry.getKey());
webSocket.sendMessage(JSON.toJSONString(map)); webSocket.sendMessage(JSON.toJSONString(map));
} }
} catch (IOException e) { } catch (
IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
......
...@@ -55,9 +55,8 @@ public class OilSystem1Task extends ScheduleTask { ...@@ -55,9 +55,8 @@ public class OilSystem1Task extends ScheduleTask {
//需要区分的测点 //需要区分的测点
String[] points = new String[]{ String[] points = new String[]{
//右上 //右上
"汽轮机备用油差压阀进口压力", "空侧油泵出口压力",
"排油烟机1号进口压力", "氢侧油泵出口压力",
"排油烟机2号进口压力",
}; };
//向每个webSocket推送系统实时数据 //向每个webSocket推送系统实时数据
...@@ -67,11 +66,14 @@ public class OilSystem1Task extends ScheduleTask { ...@@ -67,11 +66,14 @@ public class OilSystem1Task extends ScheduleTask {
Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item -> Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), points)) IS_CONTAINS(item.getCpName(), points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName)); .collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName));
Map<String, String> KKsCodes_cunit = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpUnit));
//获取最后一个数据点的最近一个时间 //获取最后一个数据点的最近一个时间
Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos); Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos);
QueryResponse response = iCharacterParamService QueryResponse response = iCharacterParamService
.getRealTimeDataByKksCode(new ArrayList<>(KKsCodes.keySet()), (lastTime - 24 * 3600 * 1000) + "", lastTime + "", "1h-avg-zero"); .getRealTimeDataByKksCode(new ArrayList<>(KKsCodes.keySet()), (lastTime - 2 * 3600 * 1000) + "", lastTime + "", "15m-avg-zero");
//获取横坐标 //获取横坐标
List<Object> xAxis = response.getResults().get(0).getDps().keySet().stream().map(item -> item.toString()).collect(Collectors.toList()); List<Object> xAxis = response.getResults().get(0).getDps().keySet().stream().map(item -> item.toString()).collect(Collectors.toList());
...@@ -81,6 +83,7 @@ public class OilSystem1Task extends ScheduleTask { ...@@ -81,6 +83,7 @@ public class OilSystem1Task extends ScheduleTask {
DataPower.PowerPoints powerPoints = new DataPower.PowerPoints(); DataPower.PowerPoints powerPoints = new DataPower.PowerPoints();
powerPoints.setKksCode(queryResult.getMetric()); powerPoints.setKksCode(queryResult.getMetric());
powerPoints.setName(KKsCodes.get(queryResult.getMetric())); powerPoints.setName(KKsCodes.get(queryResult.getMetric()));
powerPoints.setCpunit(KKsCodes_cunit.get(queryResult.getMetric()));
List<String> finalList = new ArrayList<>(); List<String> finalList = new ArrayList<>();
queryResult.getDps().values().stream().forEach(item -> { queryResult.getDps().values().stream().forEach(item -> {
finalList.add(item.toString()); finalList.add(item.toString());
......
...@@ -56,27 +56,38 @@ public class OilSystem3Task extends ScheduleTask { ...@@ -56,27 +56,38 @@ public class OilSystem3Task extends ScheduleTask {
//需要区分的测点 //需要区分的测点
String[] lefttop_points = new String[]{ String[] lefttop_points = new String[]{
//左上 //左上
"空侧交流密封油泵进出口压差", "油氢压差",
"空侧直流密封油泵进出口压差", "空侧过滤器压降",
"密封油油氢压差", "氢侧过滤器压降",
"密封油油氢压差",
"氢侧交流油泵进出口压差",
"氢侧直流油泵进出口压差",
}; };
String[] leftbottom_points = new String[]{ String[] leftbottom_points = new String[]{
//左下 //左下
"励端轴承氢侧密封油温度", "励端排油温度",
"汽端轴承氢侧密封油温度", "汽端排油温度",
"空侧冷却器密封油出口温度", "集电环排油温度",
"空冷出口温度",
"氢冷出口温度",
};
String[] rightbottom_points = new String[]{
//右下
"密封油贮油箱液位",
"氢侧油箱液位",
"空侧过滤器压降",
"氢侧密封油过滤器压降",
"空侧交流密封油泵进出口压差",
"氢侧交流油泵进出口压差",
}; };
//向每个webSocket推送系统实时数据 //向每个webSocket推送系统实时数据
for (String deviceId : groupMap.keySet()) { for (String deviceId : groupMap.keySet()) {
List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheOilCPI(deviceId); List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheOilCPI(deviceId);
//获取kkscode //获取kkscode
Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item -> Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), ArrayUtil.addAll(lefttop_points, leftbottom_points))) IS_CONTAINS(item.getCpName(), ArrayUtil.addAll(lefttop_points, leftbottom_points,rightbottom_points)))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName)); .collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName));
Map<String, String> KKsCodes_cunit = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), ArrayUtil.addAll(lefttop_points, leftbottom_points,rightbottom_points)))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpUnit));
//获取最后一个数据点的最近一个时间 //获取最后一个数据点的最近一个时间
Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos); Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos);
...@@ -91,6 +102,7 @@ public class OilSystem3Task extends ScheduleTask { ...@@ -91,6 +102,7 @@ public class OilSystem3Task extends ScheduleTask {
DataPower.PowerPoints powerPoints = new DataPower.PowerPoints(); DataPower.PowerPoints powerPoints = new DataPower.PowerPoints();
powerPoints.setKksCode(queryResult.getMetric()); powerPoints.setKksCode(queryResult.getMetric());
powerPoints.setName(KKsCodes.get(queryResult.getMetric())); powerPoints.setName(KKsCodes.get(queryResult.getMetric()));
powerPoints.setCpunit(KKsCodes_cunit.get(queryResult.getMetric()));
List<String> finalList = new ArrayList<>(); List<String> finalList = new ArrayList<>();
queryResult.getDps().values().stream().forEach(item -> { queryResult.getDps().values().stream().forEach(item -> {
finalList.add(item.toString()); finalList.add(item.toString());
...@@ -109,6 +121,12 @@ public class OilSystem3Task extends ScheduleTask { ...@@ -109,6 +121,12 @@ public class OilSystem3Task extends ScheduleTask {
dataPower.getDataList().add(powerPoints); dataPower.getDataList().add(powerPoints);
map.putIfAbsent("leftBottom", dataPower); map.putIfAbsent("leftBottom", dataPower);
} }
if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), rightbottom_points)) {
DataPower dataPower = map.getOrDefault("rightBottom", new DataPower());
dataPower.setXAxis(xAxis);
dataPower.getDataList().add(powerPoints);
map.putIfAbsent("rightBottom", dataPower);
}
} }
try { try {
List<Map.Entry<String, String>> deviceGroupMap = groupMap.get(deviceId); List<Map.Entry<String, String>> deviceGroupMap = groupMap.get(deviceId);
......
...@@ -603,7 +603,7 @@ public class ScheduledModel { ...@@ -603,7 +603,7 @@ public class ScheduledModel {
powerPoints.setName(arg.getCpName()); powerPoints.setName(arg.getCpName());
//获取报警的条数 //获取报警的条数
long count = list.stream() long count = list.stream()
.filter(opt -> opt.getKKSCode().equals(arg.getKksCode())) .filter(opt -> opt.getKkscode().getKksCode().equals(arg.getKksCode()))
.filter(opt -> { .filter(opt -> {
boolean flag = false; boolean flag = false;
if (arg.getAlertRuleMinValue() != 0) { if (arg.getAlertRuleMinValue() != 0) {
......
...@@ -26,7 +26,7 @@ public class TaskCacheDataService { ...@@ -26,7 +26,7 @@ public class TaskCacheDataService {
characterNames.add("机内氢压"); characterNames.add("机内氢压");
characterNames.add("机内氢气湿度"); characterNames.add("机内氢气湿度");
characterNames.add("在线漏氢"); characterNames.add("在线漏氢");
characterNames.add("汽端冷氢温度"); characterNames.add("运行中H2纯度");
List<CharacterParamInfoVo> characterParamInfoVos = List<CharacterParamInfoVo> characterParamInfoVos =
iCharacterParamService.getCharacterByName(characterNames, "", deviceId); iCharacterParamService.getCharacterByName(characterNames, "", deviceId);
return characterParamInfoVos; return characterParamInfoVos;
...@@ -37,23 +37,33 @@ public class TaskCacheDataService { ...@@ -37,23 +37,33 @@ public class TaskCacheDataService {
List<String> characterNames = new ArrayList<>(); List<String> characterNames = new ArrayList<>();
//左上角 //左上角
characterNames.add("油氢压差");
characterNames.add("空侧过滤器压降");
characterNames.add("氢侧过滤器压降");
/*
characterNames.add("空侧交流密封油泵进出口压差"); characterNames.add("空侧交流密封油泵进出口压差");
characterNames.add("空侧直流密封油泵进出口压差"); characterNames.add("空侧直流密封油泵进出口压差");
characterNames.add("密封油油氢压差");
characterNames.add("密封油油氢压差");
characterNames.add("氢侧交流油泵进出口压差"); characterNames.add("氢侧交流油泵进出口压差");
characterNames.add("氢侧直流油泵进出口压差"); characterNames.add("氢侧直流油泵进出口压差");*/
//左下角 //左下角
characterNames.add("励端轴承氢侧密封油温度"); characterNames.add("励端排油温度");
characterNames.add("汽端轴承氢侧密封油温度"); characterNames.add("汽端排油温度");
characterNames.add("空侧冷却器密封油出口温度"); characterNames.add("集电环排油温度");
characterNames.add("氢侧冷却器密封油出口温度"); characterNames.add("空冷出口温度");
characterNames.add("氢冷出口温度");
//右上角 //右上角
characterNames.add("汽轮机备用油差压阀进口压力"); characterNames.add("空侧油泵出口压力");
characterNames.add("排油烟机1号进口压力"); characterNames.add("氢侧油泵出口压力");
characterNames.add("排油烟机2号进口压力");
//右下
characterNames.add("密封油贮油箱液位");
characterNames.add("氢侧油箱液位");
characterNames.add("空侧过滤器压降");
characterNames.add("氢侧密封油过滤器压降");
characterNames.add("空侧交流密封油泵进出口压差");
characterNames.add("氢侧交流油泵进出口压差");
List<CharacterParamInfoVo> characterParamInfoVos = List<CharacterParamInfoVo> characterParamInfoVos =
...@@ -65,16 +75,23 @@ public class TaskCacheDataService { ...@@ -65,16 +75,23 @@ public class TaskCacheDataService {
public List<CharacterParamInfoVo> cacheIndexCPI() { public List<CharacterParamInfoVo> cacheIndexCPI() {
List<String> characterNames = new ArrayList<>(); List<String> characterNames = new ArrayList<>();
//右上 //右上
characterNames.add("定子A相电流");
characterNames.add("定子B相电流");
characterNames.add("定子C相电流"); characterNames.add("定子C相电流");
characterNames.add("定子CA线电压"); characterNames.add("定子CA线电压");
characterNames.add("定子负序电流"); characterNames.add("定子AB线电压");
characterNames.add("定子CB线电压");
//右中 //右中
characterNames.add("汽端座振X"); //characterNames.add("汽端座振X");
characterNames.add("汽端轴振X"); characterNames.add("汽端轴振X");
characterNames.add("励端座振X"); characterNames.add("汽端轴振Y");
//characterNames.add("励端座振X");
characterNames.add("励端轴振X"); characterNames.add("励端轴振X");
characterNames.add("励端轴振Y");
//右下 //右下
characterNames.add("排油温度"); characterNames.add("汽端轴瓦温度1");
characterNames.add("励端轴瓦温度1");
characterNames.add("集电环轴瓦温度1");
//左下 //左下
characterNames.add("层间温度"); characterNames.add("层间温度");
characterNames.add("上层线圈出水温度"); characterNames.add("上层线圈出水温度");
...@@ -92,22 +109,21 @@ public class TaskCacheDataService { ...@@ -92,22 +109,21 @@ public class TaskCacheDataService {
List<String> characterNames = new ArrayList<>(); List<String> characterNames = new ArrayList<>();
//左下 小时 //左下 小时
characterNames.add("转子冷却水流量");
characterNames.add("定子冷却水流量"); characterNames.add("定子冷却水流量");
//characterNames.add("定子冷却水流量");
//左上 //左上
characterNames.add("转子冷却水泵A出口压力"); characterNames.add("定子线圈进出水压差1");
characterNames.add("转子冷却水泵B出口压力"); characterNames.add("定子冷却水进出口差压1");
characterNames.add("定子补水进出口水差压1");
//右上 //右上
characterNames.add("定子线圈进水温度"); characterNames.add("冷却水泵A出口压力1");
characterNames.add("定子线圈出水温度"); characterNames.add("冷却水泵B出口压力1");
characterNames.add("转子线圈进水温度");
characterNames.add("转子线圈出水温度");
//右下 //右下
characterNames.add("定子线圈进水电导率"); characterNames.add("水箱液位高");
characterNames.add("定子线圈进水pH值"); characterNames.add("水箱液位低");
characterNames.add("转子线圈进水电导率"); characterNames.add("氢水压差低");
characterNames.add("转子线圈进水pH值"); characterNames.add("定子水箱压力");
List<CharacterParamInfoVo> characterParamInfoVos = List<CharacterParamInfoVo> characterParamInfoVos =
iCharacterParamService.getCharacterByName(characterNames, "", deviceId); iCharacterParamService.getCharacterByName(characterNames, "", deviceId);
......
...@@ -54,7 +54,6 @@ public class WaterSystem1Task extends ScheduleTask { ...@@ -54,7 +54,6 @@ public class WaterSystem1Task extends ScheduleTask {
//需要区分的测点 //需要区分的测点
String[] points = new String[]{ String[] points = new String[]{
//左下 //左下
"转子冷却水流量",
"定子冷却水流量", "定子冷却水流量",
}; };
//向每个webSocket推送系统实时数据 //向每个webSocket推送系统实时数据
...@@ -62,13 +61,16 @@ public class WaterSystem1Task extends ScheduleTask { ...@@ -62,13 +61,16 @@ public class WaterSystem1Task extends ScheduleTask {
List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheWaterCPI(deviceId); List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheWaterCPI(deviceId);
//获取kkscode //获取kkscode
Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item -> Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(),points)) IS_CONTAINS(item.getCpName(), points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName)); .collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName));
Map<String, String> KKsCodes_cunit = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpUnit));
//获取最后一个数据点的最近一个时间 //获取最后一个数据点的最近一个时间
Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos); Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos);
QueryResponse response = iCharacterParamService QueryResponse response = iCharacterParamService
.getRealTimeDataByKksCode(new ArrayList<>(KKsCodes.keySet()), (lastTime - 24 * 3600 * 1000) + "", lastTime + "", "1h-avg-zero"); .getRealTimeDataByKksCode(new ArrayList<>(KKsCodes.keySet()), (lastTime - 2 * 3600 * 1000) + "", lastTime + "", "15m-avg-zero");
//获取横坐标 //获取横坐标
List<Object> xAxis = response.getResults().get(0).getDps().keySet().stream().map(item -> item.toString()).collect(Collectors.toList()); List<Object> xAxis = response.getResults().get(0).getDps().keySet().stream().map(item -> item.toString()).collect(Collectors.toList());
...@@ -78,13 +80,13 @@ public class WaterSystem1Task extends ScheduleTask { ...@@ -78,13 +80,13 @@ public class WaterSystem1Task extends ScheduleTask {
DataPower.PowerPoints powerPoints = new DataPower.PowerPoints(); DataPower.PowerPoints powerPoints = new DataPower.PowerPoints();
powerPoints.setKksCode(queryResult.getMetric()); powerPoints.setKksCode(queryResult.getMetric());
powerPoints.setName(KKsCodes.get(queryResult.getMetric())); powerPoints.setName(KKsCodes.get(queryResult.getMetric()));
powerPoints.setCpunit(KKsCodes_cunit.get(queryResult.getMetric()));
List<String> finalList = new ArrayList<>(); List<String> finalList = new ArrayList<>();
queryResult.getDps().values().stream().forEach(item -> { queryResult.getDps().values().stream().forEach(item -> {
finalList.add(item.toString()); finalList.add(item.toString());
}); });
powerPoints.setValue(finalList); powerPoints.setValue(finalList);
if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{ if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{
"转子冷却水流量",
"定子冷却水流量", "定子冷却水流量",
})) { })) {
//左下图 //左下图
......
...@@ -56,26 +56,28 @@ public class WaterSystem3Task extends ScheduleTask { ...@@ -56,26 +56,28 @@ public class WaterSystem3Task extends ScheduleTask {
//需要区分的测点 //需要区分的测点
String[] points = new String[]{ String[] points = new String[]{
//左上 //左上
"转子冷却水泵A出口压力", "定子线圈进出水压差1",
"转子冷却水泵B出口压力", "定子冷却水进出口差压1",
"定子补水进出口水差压1",
//右上 //右上
"定子线圈进水温度", "冷却水泵A出口压力1",
"定子线圈出水温度", "冷却水泵B出口压力1",
"转子线圈进水温度",
"转子线圈出水温度",
//右下 //右下
"定子线圈进水电导率", "水箱液位高",
"定子线圈进水pH值", "水箱液位低",
"转子线圈进水电导率", "氢水压差低",
"转子线圈进水pH值", "定子水箱压力",
}; };
//向每个webSocket推送系统实时数据 //向每个webSocket推送系统实时数据
for (String deviceId : groupMap.keySet()) { for (String deviceId : groupMap.keySet()) {
List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheWaterCPI(deviceId); List<CharacterParamInfoVo> characterParamInfoVos = taskCacheDataService.cacheWaterCPI(deviceId);
//获取kkscode //获取kkscode
Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item -> Map<String, String> KKsCodes = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(),points)) IS_CONTAINS(item.getCpName(), points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName)); .collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpName));
Map<String, String> KKsCodes_cunit = characterParamInfoVos.stream().filter(item ->
IS_CONTAINS(item.getCpName(), points))
.collect(Collectors.toMap(CharacterParamInfoVo::getKksCode, CharacterParamInfoVo::getCpUnit));
//获取最后一个数据点的最近一个时间 //获取最后一个数据点的最近一个时间
Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos); Long lastTime = OpentsdbOkHttpClient.queryLast(characterParamInfoVos);
...@@ -90,14 +92,16 @@ public class WaterSystem3Task extends ScheduleTask { ...@@ -90,14 +92,16 @@ public class WaterSystem3Task extends ScheduleTask {
DataPower.PowerPoints powerPoints = new DataPower.PowerPoints(); DataPower.PowerPoints powerPoints = new DataPower.PowerPoints();
powerPoints.setKksCode(queryResult.getMetric()); powerPoints.setKksCode(queryResult.getMetric());
powerPoints.setName(KKsCodes.get(queryResult.getMetric())); powerPoints.setName(KKsCodes.get(queryResult.getMetric()));
powerPoints.setCpunit(KKsCodes_cunit.get(queryResult.getMetric()));
List<String> finalList = new ArrayList<>(); List<String> finalList = new ArrayList<>();
queryResult.getDps().values().stream().forEach(item -> { queryResult.getDps().values().stream().forEach(item -> {
finalList.add(item.toString()); finalList.add(item.toString());
}); });
powerPoints.setValue(finalList); powerPoints.setValue(finalList);
if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{ if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{
"转子冷却水泵A出口压力", "定子线圈进出水压差1",
"转子冷却水泵B出口压力", "定子冷却水进出口差压1",
"定子补水进出口水差压1",
})) { })) {
//左上图 //左上图
DataPower dataPower = map.getOrDefault("leftTop", new DataPower()); DataPower dataPower = map.getOrDefault("leftTop", new DataPower());
...@@ -106,10 +110,10 @@ public class WaterSystem3Task extends ScheduleTask { ...@@ -106,10 +110,10 @@ public class WaterSystem3Task extends ScheduleTask {
map.putIfAbsent("leftTop", dataPower); map.putIfAbsent("leftTop", dataPower);
} }
if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{ if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{
"定子线圈进水电导率", "水箱液位高",
"定子线圈进水pH值", "水箱液位低",
"转子线圈进水电导率", "氢水压差低",
"转子线圈进水pH值", "定子水箱压力",
})) { })) {
DataPower dataPower = map.getOrDefault("rightBottom", new DataPower()); DataPower dataPower = map.getOrDefault("rightBottom", new DataPower());
dataPower.setXAxis(xAxis); dataPower.setXAxis(xAxis);
...@@ -118,10 +122,8 @@ public class WaterSystem3Task extends ScheduleTask { ...@@ -118,10 +122,8 @@ public class WaterSystem3Task extends ScheduleTask {
} }
if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{ if (IS_CONTAINS(KKsCodes.get(queryResult.getMetric()), new String[]{
//右上 //右上
"定子线圈进水温度", "冷却水泵A出口压力1",
"定子线圈出水温度", "冷却水泵B出口压力1",
"转子线圈进水温度",
"转子线圈出水温度",
})) { })) {
DataPower dataPower = map.getOrDefault("rightTop", new DataPower()); DataPower dataPower = map.getOrDefault("rightTop", new DataPower());
dataPower.setXAxis(xAxis); dataPower.setXAxis(xAxis);
......
...@@ -3,7 +3,7 @@ spring: ...@@ -3,7 +3,7 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
druid: druid:
url: jdbc:mysql://39.105.38.125:3306/turbinedb?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true url: jdbc:mysql://39.105.38.125:3306/turbinedb?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
username: root username: root
password: Qzh-1234 password: Qzh-1234
initial-size: 8 initial-size: 8
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment