Browse Source

Merge remote-tracking branch 'origin/master'

zhongwei
haungxing 1 year ago
parent
commit
495844eb8c
  1. 3
      hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/entity/AlarmConfigEntity.java
  2. 6
      hzims-service/equipment/src/main/java/com/hnac/hzims/emParam/service/impl/ParamServiceImpl.java
  3. 3
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/config/service/impl/AlarmConfigServiceImpl.java
  4. 2
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/DroolsAlarmService.java
  5. 4
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/DroolsAlarmServiceImpl.java
  6. 41
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/DroolsMqttConsumer.java
  7. 8
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java
  8. 40
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/HZ300MqttConsumer.java
  9. 75
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/MqttConfig.java
  10. 40
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/VideoMqttConsumer.java
  11. 53
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/fdpMqttConfig.java
  12. 2
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmService.java
  13. 36
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmServiceImpl.java
  14. 6
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/task/VideoScheduledTask.java
  15. 60
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/condition/ConditionAlarmRegular.java
  16. 136
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/condition/ConditionAlarmWebSocket.java
  17. 56
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/fdp/FdpAlarmRegular.java
  18. 138
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/fdp/FdpAlarmWebSocket.java
  19. 60
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/hz3000/SystemAlarmRegular.java
  20. 142
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/hz3000/SystemAlarmWebSocket.java
  21. 6
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmWebSocket.java
  22. 7
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/dto/OperAccessPlanListDTO.java
  23. 15
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessPlanServiceImpl.java
  24. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyMainServiceImpl.java
  25. 4
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java
  26. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java
  27. 3
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/SideHustleServiceImpl.java
  28. 4
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/impl/OperMaintenanceMonitorServiceImpl.java
  29. 3
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java
  30. 6
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/service/impl/WorkTicketInfoServiceImpl.java

3
hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/entity/AlarmConfigEntity.java

@ -24,7 +24,4 @@ public class AlarmConfigEntity extends TenantEntity {
@ApiModelProperty(value = "站点名称") @ApiModelProperty(value = "站点名称")
private String stationName; private String stationName;
@ApiModelProperty(value = "是否启用 :0-启用 1-不启用")
private Integer isEnable;
} }

6
hzims-service/equipment/src/main/java/com/hnac/hzims/emParam/service/impl/ParamServiceImpl.java

@ -70,17 +70,17 @@ public class ParamServiceImpl implements IParamService {
public List<ParamTreeVO> recall(String emCode,String stationCode) { public List<ParamTreeVO> recall(String emCode,String stationCode) {
List<ParamTreeVO> result = Lists.newArrayList(); List<ParamTreeVO> result = Lists.newArrayList();
// 获取设备物模型中是参数的属性 // 获取设备物模型中是参数的属性
Result<List<DeviceInstanceAttrVO>> paramDeviceAttrR = deviceDataClient.getIsParamDeviceAttr(emCode); R<List<DeviceInstanceAttrVO>> paramDeviceAttrR = deviceClient.getOnlineAttr(emCode);
Assert.isTrue(paramDeviceAttrR.isSuccess() && CollectionUtil.isNotEmpty(paramDeviceAttrR.getData()),() -> { Assert.isTrue(paramDeviceAttrR.isSuccess() && CollectionUtil.isNotEmpty(paramDeviceAttrR.getData()),() -> {
throw new ServiceException("获取设备实例物模型属性失败!"); throw new ServiceException("获取设备实例物模型属性失败!");
}); });
// 获取实时数据 // 获取实时数据
List<String> signageList = paramDeviceAttrR.getData().stream().map(DeviceInstanceAttrVO::getSignage).filter(StringUtil::isNotBlank).collect(Collectors.toList()); List<String> signageList = paramDeviceAttrR.getData().stream().filter(o->StringUtil.isNotBlank(o.getSignage()) && StringUtil.isNotBlank(o.getFacDeviceAttrId())).map(DeviceInstanceAttrVO::getSignage).collect(Collectors.toList());
Result<DeviceDataDTO> realDataR = deviceDataClient.getDeviceRealDataByCode(emCode, signageList); Result<DeviceDataDTO> realDataR = deviceDataClient.getDeviceRealDataByCode(emCode, signageList);
Assert.isTrue(realDataR.isSuccess(),() -> { Assert.isTrue(realDataR.isSuccess(),() -> {
throw new ServiceException("参数召回获取实时数据失败"); throw new ServiceException("参数召回获取实时数据失败");
}); });
Map<ParamGroupVO, List<ParamVO>> paramGroupVOListMap = paramDeviceAttrR.getData().stream().map(this::convert).collect(Collectors.groupingBy(p -> { Map<ParamGroupVO, List<ParamVO>> paramGroupVOListMap = paramDeviceAttrR.getData().stream().filter(o->StringUtil.isNotBlank(o.getFacDeviceAttrId())).map(this::convert).collect(Collectors.groupingBy(p -> {
ParamGroupVO paramGroupVO = new ParamGroupVO(); ParamGroupVO paramGroupVO = new ParamGroupVO();
paramGroupVO.setGroupId(String.valueOf(p.getModelClassifyId())); paramGroupVO.setGroupId(String.valueOf(p.getModelClassifyId()));
paramGroupVO.setGroupName(p.getModelClassifyName()); paramGroupVO.setGroupName(p.getModelClassifyName());

3
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/config/service/impl/AlarmConfigServiceImpl.java

@ -103,8 +103,7 @@ public class AlarmConfigServiceImpl extends BaseServiceImpl<AlarmConfigMapper, A
@Override @Override
public AlarmHandleMarkVo mark(String code, Integer source,Integer type) { public AlarmHandleMarkVo mark(String code, Integer source,Integer type) {
AlarmConfigEntity config = this.getOne(Wrappers.<AlarmConfigEntity>lambdaQuery() AlarmConfigEntity config = this.getOne(Wrappers.<AlarmConfigEntity>lambdaQuery()
.eq(AlarmConfigEntity::getStationId,code) .eq(AlarmConfigEntity::getStationId,code));
.eq(AlarmConfigEntity::getIsEnable,"0"));
if(ObjectUtil.isEmpty(config)){ if(ObjectUtil.isEmpty(config)){
return detailService.defaultMark(source,type); return detailService.defaultMark(source,type);
} }

2
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/ConditionAlarmService.java → hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/DroolsAlarmService.java

@ -8,7 +8,7 @@ import java.util.List;
* 等级处理接口 * 等级处理接口
* @author ysj * @author ysj
*/ */
public interface ConditionAlarmService { public interface DroolsAlarmService {
String message(); String message();

4
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/ConditionAlarmServiceImpl.java → hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/DroolsAlarmServiceImpl.java

@ -3,7 +3,7 @@ package com.hnac.hzims.alarm.handle.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.hnac.hzims.alarm.entity.AlarmEntity; import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.ConditionAlarmService; import com.hnac.hzims.alarm.handle.service.DroolsAlarmService;
import com.hnac.hzims.alarm.handle.service.MessageService; import com.hnac.hzims.alarm.handle.service.MessageService;
import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.show.service.AlarmService;
import com.hnac.hzims.alarm.vo.ConditionAlarmVo; import com.hnac.hzims.alarm.vo.ConditionAlarmVo;
@ -31,7 +31,7 @@ import static com.hnac.hzims.alarm.constants.AlarmConstants.CONDITION_ALARM;
@Slf4j @Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ConditionAlarmServiceImpl implements ConditionAlarmService { public class DroolsAlarmServiceImpl implements DroolsAlarmService {
private final AlarmService alarmService; private final AlarmService alarmService;

41
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/DroolsMqttConsumer.java

@ -0,0 +1,41 @@
package com.hnac.hzims.alarm.mqtt;
import com.alibaba.fastjson.JSONObject;
import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.DroolsAlarmService;
import com.hnac.hzims.alarm.monitor.service.AlarmSaveService;
import com.hnac.hzinfo.subscribe.SubscribeCallBack;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
*
* @Author: ty
*/
@Service
@Slf4j
public class DroolsMqttConsumer implements SubscribeCallBack {
@Autowired
private DroolsAlarmService droolsAlarmService;
@Autowired
private AlarmSaveService alarmSaveService;
@Override
public void onMessage(Map<String, Object> data) {
System.out.println("监听到消息"+data.toString());
String s = JSONObject.toJSONString(data);
//消费代码
List<AlarmEntity> alarmEntities = droolsAlarmService.receiveMessage(s);
//统一数据处理
try {
alarmSaveService.save(alarmEntities);
}catch (Exception e){
log.error("规则引擎告警数据处理报错(DroolsAlarm):"+e);
System.out.println("规则引擎告警数据处理报错(DroolsAlarm):"+e);
}
}
}

8
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/fdpMqttConsumer.java → hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java

@ -3,7 +3,7 @@ package com.hnac.hzims.alarm.mqtt;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hnac.hzims.alarm.entity.AlarmEntity; import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.FdpAlarmService; import com.hnac.hzims.alarm.handle.service.FdpAlarmService;
import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService;
import com.hnac.hzinfo.subscribe.SubscribeCallBack; import com.hnac.hzinfo.subscribe.SubscribeCallBack;
import org.springblade.core.log.exception.ServiceException; import org.springblade.core.log.exception.ServiceException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -18,11 +18,11 @@ import java.util.Map;
*/ */
@Service @Service
public class fdpMqttConsumer implements SubscribeCallBack { public class FdpMqttConsumer implements SubscribeCallBack {
@Autowired @Autowired
private FdpAlarmService fdpAlarmService; private FdpAlarmService fdpAlarmService;
@Autowired @Autowired
private AlarmService alarmService; private AlarmSaveService alarmSaveService;
@Override @Override
public void onMessage(Map<String, Object> data) { public void onMessage(Map<String, Object> data) {
System.out.println("监听到消息"+data.toString()); System.out.println("监听到消息"+data.toString());
@ -32,7 +32,7 @@ public class fdpMqttConsumer implements SubscribeCallBack {
List<AlarmEntity> alarmEntities = fdpAlarmService.receiveMessage(s); List<AlarmEntity> alarmEntities = fdpAlarmService.receiveMessage(s);
//统一数据处理 //统一数据处理
try { try {
alarmService.dealAlarmEntities(alarmEntities); alarmSaveService.save(alarmEntities);
}catch (Exception e){ }catch (Exception e){
throw new ServiceException("集中监控告警数据处理报错(FdpAlarm):"+e); throw new ServiceException("集中监控告警数据处理报错(FdpAlarm):"+e);
} }

40
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/HZ300MqttConsumer.java

@ -0,0 +1,40 @@
package com.hnac.hzims.alarm.mqtt;
import com.alibaba.fastjson.JSONObject;
import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.SystemAlarmService;
import com.hnac.hzims.alarm.monitor.service.AlarmSaveService;
import com.hnac.hzinfo.subscribe.SubscribeCallBack;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
*
* @Author: ty
*/
@Service
@Slf4j
public class HZ300MqttConsumer implements SubscribeCallBack {
@Autowired
private SystemAlarmService systemAlarmService;
@Autowired
private AlarmSaveService alarmSaveService;
@Override
public void onMessage(Map<String, Object> data) {
System.out.println("监听到消息"+data.toString());
String s = JSONObject.toJSONString(data);
//消费代码
List<AlarmEntity> alarmEntities = systemAlarmService.receiveMessage(s);
//统一数据处理
try {
alarmSaveService.save(alarmEntities);
}catch (Exception e){
log.error("HZ3000告警数据处理报错(HZ300Alarm):"+e);
}
}
}

75
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/MqttConfig.java

@ -0,0 +1,75 @@
package com.hnac.hzims.alarm.mqtt;
import com.hnac.hzinfo.subscribe.AnalysisSubscribe;
import com.hnac.hzinfo.subscribe.DroolsSoeSubscribe;
import com.hnac.hzinfo.subscribe.HZ3000SoeSubscribe;
import com.hnac.hzinfo.subscribe.SoeSubscribe;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttAsyncClient;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Collections;
/**
* @Author: ty
*/
@Component
@Slf4j
public class MqttConfig {
@Autowired
FdpMqttConsumer fdpMqttConsumer;
@Autowired
DroolsMqttConsumer droolsMqttConsumer;
@Autowired
HZ300MqttConsumer hz300MqttConsumer;
@Autowired
VideoMqttConsumer videoMqttConsumer;
@Value("${hzims.mqtt.url}")
private String mqtt_fdp_url;
@Value("${hzims.mqtt.group}")
private String mqtt_fdp_group;
@Value("${hzims.mqtt.password}")
private String mqtt_fdp_password;
@Value("${hzims.mqtt.username}")
private String mqtt_fdp_username;
// @Value("${hzims.mqtt.fdp.topname}")
// private String mqtt_fdp_topname;
// @Value("${hzims.mqtt.drools.topname}")
// private String mqtt_drools_topname;
// @Value("${hzims.mqtt.system.topname}")
// private String mqtt_system_topname;
@PostConstruct
public void registerMqtt(){
try {
com.hnac.hzinfo.subscribe.MqttConfig mqttConfig = new com.hnac.hzinfo.subscribe.MqttConfig();
mqttConfig.setUrl(mqtt_fdp_url);
mqttConfig.setGroup(mqtt_fdp_group);
mqttConfig.setPassword(mqtt_fdp_password);
mqttConfig.setUsername(mqtt_fdp_username);
//fdp
AnalysisSubscribe analysisSubscribe = new AnalysisSubscribe();
MqttAsyncClient fdpClient = analysisSubscribe.subscribe(mqttConfig, Collections.singletonList("#"), fdpMqttConsumer);
log.info(fdpClient.toString());
//drools
DroolsSoeSubscribe droolsSoeSubscribe = new DroolsSoeSubscribe();
MqttAsyncClient droolsClient = droolsSoeSubscribe.subscribe(mqttConfig, Collections.singletonList("#"), droolsMqttConsumer);
log.info(droolsClient.toString());
//hz3000
HZ3000SoeSubscribe hz3000SoeSubscribe = new HZ3000SoeSubscribe();
MqttAsyncClient hz3000Client = hz3000SoeSubscribe.subscribe(mqttConfig, Collections.singletonList("#"), hz300MqttConsumer);
log.info(hz3000Client.toString());
//视频
SoeSubscribe subscribe = new SoeSubscribe();
MqttAsyncClient videoClient = subscribe.subscribe(mqttConfig, Collections.singletonList("#"), videoMqttConsumer);
log.info(videoClient.toString());
}catch (MqttException e){
log.error(e.toString()) ;
}
}
}

40
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/VideoMqttConsumer.java

@ -0,0 +1,40 @@
package com.hnac.hzims.alarm.mqtt;
import com.alibaba.fastjson.JSONObject;
import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.VideoAlarmService;
import com.hnac.hzims.alarm.monitor.service.AlarmSaveService;
import com.hnac.hzinfo.subscribe.SubscribeCallBack;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
*
* @Author: ty
*/
@Service
@Slf4j
public class VideoMqttConsumer implements SubscribeCallBack {
@Autowired
private VideoAlarmService videoAlarmService;
@Autowired
private AlarmSaveService alarmSaveService;
@Override
public void onMessage(Map<String, Object> data) {
System.out.println("监听到消息"+data.toString());
String s = JSONObject.toJSONString(data);
//消费代码
List<AlarmEntity> alarmEntities = videoAlarmService.receiveMessage(s);
//统一数据处理
try {
alarmSaveService.save(alarmEntities);
}catch (Exception e){
log.error("HZ3000告警数据处理报错(HZ300Alarm):"+e);
}
}
}

53
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/fdpMqttConfig.java

@ -1,53 +0,0 @@
package com.hnac.hzims.alarm.mqtt;
import com.hnac.hzinfo.subscribe.AnalysisSubscribe;
import com.hnac.hzinfo.subscribe.MqttConfig;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Collections;
/**
* @Author: ty
*/
@Component
public class fdpMqttConfig {
@Autowired
fdpMqttConsumer fdpMqttConsumer;
/*@Value("${hzims.mqtt.fdp-url}")
private String mqtt_fdp_url;
@Value("${hzims.mqtt.fdp-group}")
private String mqtt_fdp_group;
@Value("${hzims.mqtt.fdp-password}")
private String mqtt_fdp_password;
@Value("${hzims.mqtt.fdp-username}")
private String mqtt_fdp_username;
@Value("${hzims.mqtt.fdp-topname}")
private String mqtt_fdp_topname;*/
@PostConstruct
public void registerMqtt(){
try {
MqttConfig mqttConfig = new MqttConfig();
mqttConfig.setUrl("tcp://175.6.40.68:1883");
mqttConfig.setGroup("hzims-alarm");
mqttConfig.setPassword("hz123456");
mqttConfig.setUsername("hzinfo");
// mqttConfig.setUrl(mqtt_fdp_url);
// mqttConfig.setGroup(mqtt_fdp_group);
// mqttConfig.setPassword(mqtt_fdp_password);
// mqttConfig.setUsername(mqtt_fdp_username);
AnalysisSubscribe analysisSubscribe = new AnalysisSubscribe();
analysisSubscribe.subscribe(mqttConfig, Collections.singletonList("iot/sync/analytics/#"), fdpMqttConsumer);
// analysisSubscribe.subscribe(mqttConfig, mqtt_fdp_topname, fdpMqttConsumer);
}catch (MqttException e){
e.printStackTrace();
}
}
}

2
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmService.java

@ -17,6 +17,4 @@ public interface AlarmService extends BaseService<AlarmEntity> {
List<AlarmCountVo> counts(); List<AlarmCountVo> counts();
List<AlarmEntity> broadcast(String startTime, String endTime); List<AlarmEntity> broadcast(String startTime, String endTime);
void dealAlarmEntities(List<AlarmEntity> param);
} }

36
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmServiceImpl.java

@ -2,7 +2,6 @@ package com.hnac.hzims.alarm.show.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hnac.hzims.alarm.config.service.AlarmConfigService; import com.hnac.hzims.alarm.config.service.AlarmConfigService;
import com.hnac.hzims.alarm.constants.AlarmConstants; import com.hnac.hzims.alarm.constants.AlarmConstants;
import com.hnac.hzims.alarm.entity.AlarmEntity; import com.hnac.hzims.alarm.entity.AlarmEntity;
@ -20,7 +19,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.StringUtil; import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient; import org.springblade.system.user.feign.IUserClient;
@ -28,9 +26,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -159,38 +155,6 @@ public class AlarmServiceImpl extends BaseServiceImpl<AlarmMapper, AlarmEntity>
return this.list(wrapper); return this.list(wrapper);
} }
/**
* websocket 消息推送保存
* @param param
*/
@Override
public void dealAlarmEntities(List<AlarmEntity> param) {
if (CollectionUtil.isNotEmpty(param)) {
// 查询当天已经记录的告警
List<AlarmEntity> historys = this.list(Wrappers.<AlarmEntity>lambdaQuery().
ge(AlarmEntity::getCreateTime, DateUtil.format(new Date(), DateUtil.PATTERN_DATE) + " 00:00:00")
.eq(AlarmEntity::getAlarmSource, param.get(0).getAlarmSource()));
// 数据过滤
List<AlarmEntity> entitys = param.stream()
.filter(alarm -> CollectionUtil.isNotEmpty(historys) || !historys.stream().map(AlarmEntity::getAlarmId).collect(Collectors.toList()).contains(alarm.getAlarmId()))
.map(item -> {
//消息推送
// 短信
CompletableFuture.runAsync(() -> messageService.shortMessage(item));
// web/app消息推送
CompletableFuture.runAsync(() -> messageService.webAppMessage(item));
// 微信公众号推送
CompletableFuture.runAsync(() -> messageService.weChatMessage(item));
return item;
}).collect(Collectors.toList());
if (CollectionUtil.isEmpty(entitys)) {
return;
}
// 批量保存
this.saveBatch(entitys);
}
}

6
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/task/VideoScheduledTask.java

@ -2,7 +2,7 @@ package com.hnac.hzims.alarm.task;
import com.hnac.hzims.alarm.entity.AlarmEntity; import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.VideoAlarmService; import com.hnac.hzims.alarm.handle.service.VideoAlarmService;
import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService;
import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.biz.model.ReturnT;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -22,7 +22,7 @@ public class VideoScheduledTask {
@Autowired @Autowired
private VideoAlarmService service; private VideoAlarmService service;
@Autowired @Autowired
private AlarmService alarmService; private AlarmSaveService alarmService;
/** /**
* 设备信息缓存 * 设备信息缓存
@ -37,7 +37,7 @@ public class VideoScheduledTask {
List<AlarmEntity> alarmEntities = service.sendMessage(); List<AlarmEntity> alarmEntities = service.sendMessage();
//获取消息 //获取消息
// List<AlarmEntity> alarmEntities = service.receiveMessage(param); // List<AlarmEntity> alarmEntities = service.receiveMessage(param);
alarmService.dealAlarmEntities(alarmEntities); alarmService.save(alarmEntities);
return new ReturnT<>("SUCCESS"); return new ReturnT<>("SUCCESS");
} }

60
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/condition/ConditionAlarmRegular.java

@ -1,60 +0,0 @@
package com.hnac.hzims.alarm.ws.condition;
import com.hnac.hzims.alarm.handle.service.ConditionAlarmService;
import com.hnac.hzims.alarm.ws.level.LevelAlarmWebSocket;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.net.URI;
/**
* @author ysj
*/
@Slf4j
@Component
@EnableScheduling
public class ConditionAlarmRegular {
@Autowired
private ConditionAlarmService conditionService;
private LevelAlarmWebSocket socket;
@Value("${hzims.condition.wss-url}")
private String condition_wss_url;
// 两分钟进行一次检查链接是否存活,不存活了重新建立链接
@Scheduled(cron = "0 0/2 * * * ?")
private void regular(){
// 检查链接存活状态
if(ObjectUtil.isEmpty(socket) || !socket.isOpen()){
log.error("level websocket survival check : {}","死亡");
this.createSocket();
if(ObjectUtil.isNotEmpty(socket) && socket.isOpen()){
String message = conditionService.message();
if(!StringUtil.isEmpty(message)){
socket.send(message);
}
}
log.error("conditionAlarm survival check : {}","重新建立链接");
}else{
log.error("conditionAlarm survival check : {}","存活");
}
}
// 创建websocket链接
private void createSocket() {
try{
socket = new LevelAlarmWebSocket(new URI(condition_wss_url));
socket.connectBlocking();
}catch (Exception e){
log.error("conditionAlarm create error : {}",e.getMessage());
}
}
}

136
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/condition/ConditionAlarmWebSocket.java

@ -1,136 +0,0 @@
package com.hnac.hzims.alarm.ws.condition;
import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.ConditionAlarmService;
import com.hnac.hzims.alarm.show.service.AlarmService;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringUtil;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.net.Socket;
import java.net.URI;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Optional;
/**
* @author ysj
*/
@Slf4j
public class ConditionAlarmWebSocket extends WebSocketClient {
private final ConditionAlarmService conditionService;
private AlarmService alarmService;
/**
* 构造等级告警websocket
* @param uri
*/
public ConditionAlarmWebSocket(URI uri) {
super(uri);
conditionService = SpringUtil.getBean(ConditionAlarmService.class);
connection(this);
}
// 链接到服务器回调接口
@Override
public void onOpen(ServerHandshake handshakedata) {
log.error("conditionAlarm websocket open");
}
// 接收到服务器消息回调接口
@Override
public void onMessage(String message) {
if(StringUtil.isEmpty(message)){
log.error("conditionAlarm on message is null");
}else{
// 告警数据转化
List<AlarmEntity> alarmEntities = conditionService.receiveMessage(message);
// 等级告警数据处理
try {
alarmService.dealAlarmEntities(alarmEntities);
}catch (Exception e){
throw new ServiceException("集中监控告警数据处理报错(conditionAlarm):"+e);
}
}
}
// 与服务器链接中断回调接口
@Override
public void onClose(int code, String reason, boolean remote) {
log.error("conditionAlarm websocket close");
}
// 与服务器通讯异常触发
@Override
public void onError(Exception e) {
log.error("conditionAlarm websocket error : {}",e.getMessage());
}
/**
* 建立链接
* @param webSocket
*/
private void connection(ConditionAlarmWebSocket webSocket) {
SSLContext context = init();
if(Optional.ofNullable(context).isPresent()){
Socket socket = create(context);
if(Optional.ofNullable(socket).isPresent()){
webSocket.setSocket(socket);
}
}
}
/**
* 创建Socket
* @param context
* @return
*/
private Socket create(SSLContext context) {
Socket socket = null;
try{
socket = context.getSocketFactory().createSocket();
}catch (Exception e){
log.error("conditionAlarm socket create error : {}",e.getMessage());
}
return socket;
}
/**
* 协议初始化
* @return SSLContext
*/
private SSLContext init() {
SSLContext SSL = null;
try{
SSL = SSLContext.getInstance("TLS");
SSL.init(null, new TrustManager[]{new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain,
String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}}, new SecureRandom());
}catch (Exception e){
log.error("conditionAlarm SSL init error : {}",e.getMessage());
}
return SSL;
}
}

56
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/fdp/FdpAlarmRegular.java

@ -1,56 +0,0 @@
package com.hnac.hzims.alarm.ws.fdp;
import com.hnac.hzims.alarm.handle.service.FdpAlarmService;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.net.URI;
/**
* 等级告警获取数据长链接
* @author ty
*/
@Slf4j
@Component
@EnableScheduling
public class FdpAlarmRegular {
@Value("${hzims.fdp.alarm-url}")
private String fdp_alarm_url;
private FdpAlarmWebSocket client;
@Autowired
private FdpAlarmService fdpAlarmService;
// 定时发送消息
@Scheduled(cron = "0 0/30 * * * ?")
private void regular(){
System.out.println("系统告警链接检查");
// 检查链接存活状态
if(ObjectUtil.isNotEmpty(client) && client.isOpen()){
client.send(fdpAlarmService.sendMessage());
System.out.println("FdpAlarm:链接成功");
}else {
System.out.println("FdpAlarm:链接失败");
this.createClient();
System.out.println("FdpAlarm:重新链接");
}
}
// 创建websocket链接
private void createClient() {
try{
client = new FdpAlarmWebSocket(new URI(fdp_alarm_url));
client.connectBlocking();
System.out.println("FdpAlarm create success");
}catch (Exception e){
log.error("FdpAlarm create error : {}",e.getMessage());
}
}
}

138
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/fdp/FdpAlarmWebSocket.java

@ -1,138 +0,0 @@
package com.hnac.hzims.alarm.ws.fdp;
import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.FdpAlarmService;
import com.hnac.hzims.alarm.show.service.AlarmService;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.net.Socket;
import java.net.URI;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Optional;
/**
* 等级告警获取数据长链接
* @author ty
*/
@Slf4j
public class FdpAlarmWebSocket extends WebSocketClient {
@Autowired
private FdpAlarmService fdpAlarmService;
private AlarmService alarmService;
/**
* 构造等级告警websocket
* @param uri
*/
public FdpAlarmWebSocket(URI uri) {
super(uri);
fdpAlarmService = SpringUtil.getBean(FdpAlarmService.class);
connection(this);
}
// 链接到服务器回调接口
@Override
public void onOpen(ServerHandshake handshakedata) {
log.error("FdpAlarm websocket open");
}
// 接收到服务器消息回调接口
@Override
public void onMessage(String message) {
if(StringUtil.isEmpty(message)){
log.error("FdpAlarm on message is null");
}else{
// 告警数据转化
List<AlarmEntity> alarmEntities = fdpAlarmService.receiveMessage(message);
//统一数据处理
try {
//websocket 消息推送保存
alarmService.dealAlarmEntities(alarmEntities);
}catch (Exception e){
throw new ServiceException("集中监控告警数据处理报错(FdpAlarm):"+e);
}
}
}
// 与服务器链接中断回调接口
@Override
public void onClose(int code, String reason, boolean remote) {
log.error("FdpAlarm websocket close");
}
// 与服务器通讯异常触发
@Override
public void onError(Exception e) {
log.error("FdpAlarm websocket error : {}",e.getMessage());
}
/**
* 建立链接
* @param webSocket
*/
private void connection(FdpAlarmWebSocket webSocket) {
SSLContext context = init();
if(Optional.ofNullable(context).isPresent()){
Socket socket = create(context);
if(Optional.ofNullable(socket).isPresent()){
webSocket.setSocket(socket);
}
}
}
/**
* 创建Socket
* @param context
* @return
*/
private Socket create(SSLContext context) {
Socket socket = null;
try{
socket = context.getSocketFactory().createSocket();
}catch (Exception e){
log.error("FdpAlarm socket create error : {}",e.getMessage());
}
return socket;
}
/**
* 协议初始化
* @return SSLContext
*/
private SSLContext init() {
SSLContext SSL = null;
try{
SSL = SSLContext.getInstance("TLS");
SSL.init(null, new TrustManager[]{new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain,
String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}}, new SecureRandom());
}catch (Exception e){
log.error("FdpAlarm SSL init error : {}",e.getMessage());
}
return SSL;
}
}

60
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/hz3000/SystemAlarmRegular.java

@ -1,60 +0,0 @@
package com.hnac.hzims.alarm.ws.hz3000;
import com.hnac.hzims.alarm.handle.service.SystemAlarmService;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.net.URI;
/**
* 等级告警获取数据长链接
* @author ty
*/
@Slf4j
@Component
@EnableScheduling
public class SystemAlarmRegular {
@Value("${hzims.system.wss-url}")
private String system_wss_url;
private SystemAlarmWebSocket client;
@Autowired
private SystemAlarmService systemAlarmService;
int count=0;
// 定时发送消息
@Scheduled(cron = "0 0/30 * * * ?")
private void regular(){
// 检查链接存活状态
if(ObjectUtil.isNotEmpty(client) && client.isOpen()){
client.send(systemAlarmService.sendMessage());
System.out.println("systemAlarm:存活");
count=0;
}else {
System.out.println("systemAlarm:链接失败");
this.createClient();
count++;
if (count>=3){
}
}
}
// 创建websocket链接
private void createClient() {
try{
client = new SystemAlarmWebSocket(new URI(system_wss_url));
client.connectBlocking();
System.out.println("systemAlarm create success");
}catch (Exception e){
log.error("systemAlarm create error : {}",e.getMessage());
}
}
}

142
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/hz3000/SystemAlarmWebSocket.java

@ -1,142 +0,0 @@
package com.hnac.hzims.alarm.ws.hz3000;
import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.SystemAlarmService;
import com.hnac.hzims.alarm.show.service.AlarmService;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringUtil;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.net.Socket;
import java.net.URI;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Optional;
/**
* 等级告警获取数据长链接
* @author ty
*/
@Slf4j
public class SystemAlarmWebSocket extends WebSocketClient {
private final SystemAlarmService systemAlarmService;
private AlarmService alarmService;
/**
* 构造等级告警websocket
* @param uri
*/
public SystemAlarmWebSocket(URI uri) {
super(uri);
systemAlarmService = SpringUtil.getBean(SystemAlarmService.class);
connection(this);
}
// 链接到服务器回调接口
@Override
public void onOpen(ServerHandshake handshakedata) {
log.error("SystemAlarmWebSocket链接到服务器回调接口");
}
// 接收到服务器消息回调接口
@Override
public void onMessage(String message) {
if(StringUtil.isEmpty(message)){
log.error("systemAlarm on message is null");
}else{
// 华自3000告警数据转化
List<AlarmEntity> alarmEntities = systemAlarmService.receiveMessage(message);
//统一数据处理
try {
//websocket 消息推送保存
alarmService.dealAlarmEntities(alarmEntities);
}catch (Exception e){
throw new ServiceException("集中监控告警数据处理报错:"+e);
}
log.error("华自3000告警数据处理");
}
}
// 与服务器链接中断回调接口
@Override
public void onClose(int code, String reason, boolean remote) {
log.error("SystemAlarmWebSocket与服务器链接中断回调接口 ");
}
// 与服务器通讯异常触发
@Override
public void onError(Exception e) {
log.error("systemAlarm websocket error : {}",e.getMessage());
}
/**
* 建立链接
* @param webSocket
*/
private void connection(SystemAlarmWebSocket webSocket) {
SSLContext context = init();
if(Optional.ofNullable(context).isPresent()){
Socket socket = create(context);
if(Optional.ofNullable(socket).isPresent()){
webSocket.setSocket(socket);
}
}
System.out.println("systemAlarm create success");
}
/**
* 创建Socket
* @param context
* @return
*/
private Socket create(SSLContext context) {
Socket socket = null;
try{
socket = context.getSocketFactory().createSocket();
log.error("SystemAlarmWebSocket链接创建成功");
}catch (Exception e){
log.error("systemAlarm socket create error : {}",e.getMessage());
}
return socket;
}
/**
* 协议初始化
* @return SSLContext
*/
private SSLContext init() {
SSLContext SSL = null;
try{
SSL = SSLContext.getInstance("TLS");
SSL.init(null, new TrustManager[]{new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain,
String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}}, new SecureRandom());
log.error("SystemAlarmWebSocket初始化成功");
}catch (Exception e){
log.error("systemAlarm SSL init error : {}",e.getMessage());
}
return SSL;
}
}

6
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmWebSocket.java

@ -2,7 +2,7 @@ package com.hnac.hzims.alarm.ws.level;
import com.hnac.hzims.alarm.entity.AlarmEntity; import com.hnac.hzims.alarm.entity.AlarmEntity;
import com.hnac.hzims.alarm.handle.service.LevelAlarmService; import com.hnac.hzims.alarm.handle.service.LevelAlarmService;
import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient; import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake; import org.java_websocket.handshake.ServerHandshake;
@ -29,7 +29,7 @@ public class LevelAlarmWebSocket extends WebSocketClient {
private final LevelAlarmService levelService; private final LevelAlarmService levelService;
private AlarmService alarmService; private AlarmSaveService alarmSaveService;
/** /**
* 构造等级告警websocket * 构造等级告警websocket
@ -59,7 +59,7 @@ public class LevelAlarmWebSocket extends WebSocketClient {
// 等级告警数据处理 // 等级告警数据处理
try { try {
//websocket 消息推送保存 //websocket 消息推送保存
alarmService.dealAlarmEntities(alarmEntities); alarmSaveService.save(alarmEntities);
}catch (Exception e){ }catch (Exception e){
throw new ServiceException("集中监控告警数据处理报错(levelAlarm):"+e); throw new ServiceException("集中监控告警数据处理报错(levelAlarm):"+e);
} }

7
hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/dto/OperAccessPlanListDTO.java

@ -1,6 +1,7 @@
package com.hnac.hzims.operational.access.dto; package com.hnac.hzims.operational.access.dto;
import com.hnac.hzims.operational.access.entity.OperAccessPlanEntity; import com.hnac.hzims.operational.access.entity.OperAccessPlanEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -16,4 +17,10 @@ public class OperAccessPlanListDTO extends OperAccessPlanEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "开始时间")
private String startDate;
@ApiModelProperty(value = "结束时间")
private String endDate;
} }

15
hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessPlanServiceImpl.java

@ -1,9 +1,7 @@
package com.hnac.hzims.operational.access.service.impl; package com.hnac.hzims.operational.access.service.impl;
import cn.hutool.core.io.unit.DataUnit;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -20,17 +18,14 @@ import com.hnac.hzims.operational.access.vo.OperAccessContentVO;
import com.hnac.hzims.operational.access.vo.OperAccessPlanVO; import com.hnac.hzims.operational.access.vo.OperAccessPlanVO;
import com.hnac.hzims.operational.access.wrapper.OperAccessContentDetailWrapper; import com.hnac.hzims.operational.access.wrapper.OperAccessContentDetailWrapper;
import com.hnac.hzims.operational.access.wrapper.OperAccessContentWrapper; import com.hnac.hzims.operational.access.wrapper.OperAccessContentWrapper;
import com.hnac.hzims.operational.access.wrapper.OperAccessMaterialWrapper;
import com.hnac.hzims.operational.access.wrapper.OperAccessPlanWrapper; import com.hnac.hzims.operational.access.wrapper.OperAccessPlanWrapper;
import com.hnac.hzims.operational.defect.constants.RepairConstant; import com.hnac.hzims.operational.defect.constants.RepairConstant;
import com.hnac.hzims.operational.defect.constants.TreatMethodConstant; import com.hnac.hzims.operational.defect.constants.TreatMethodConstant;
import com.hnac.hzims.operational.defect.entity.OperDefectEntity; import com.hnac.hzims.operational.defect.entity.OperDefectEntity;
import com.hnac.hzims.operational.defect.entity.OperPhenomenonEntity; import com.hnac.hzims.operational.defect.entity.OperPhenomenonEntity;
import com.hnac.hzims.operational.defect.mapper.OperDefectMapper;
import com.hnac.hzims.operational.defect.mapper.OperPhenomenonMapper; import com.hnac.hzims.operational.defect.mapper.OperPhenomenonMapper;
import com.hnac.hzims.operational.defect.service.IOperDefectService; import com.hnac.hzims.operational.defect.service.IOperDefectService;
import com.hnac.hzims.operational.util.WordUtils; import com.hnac.hzims.operational.util.WordUtils;
import com.hnac.hzims.spare.entity.WtSpTotalEntity;
import com.hnac.hzims.ticket.constants.TicketConstants; import com.hnac.hzims.ticket.constants.TicketConstants;
import com.hnac.hzims.ticket.workTicket.entity.WorkTicketInfoEntity; import com.hnac.hzims.ticket.workTicket.entity.WorkTicketInfoEntity;
import com.hnac.hzims.ticket.workTicket.entity.WorkTicketTemplateEntity; import com.hnac.hzims.ticket.workTicket.entity.WorkTicketTemplateEntity;
@ -39,7 +34,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.RandomUtils;
import org.jsoup.helper.DataUtil;
import org.springblade.core.log.exception.ServiceException; import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
@ -60,13 +54,12 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneOffset; import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -445,6 +438,12 @@ public class OperAccessPlanServiceImpl extends BaseServiceImpl<OperAccessPlanMap
if (StringUtils.isNotBlank(req.getHandleStatus())) { if (StringUtils.isNotBlank(req.getHandleStatus())) {
eq(OperAccessPlanEntity::getHandleStatus, req.getHandleStatus()); eq(OperAccessPlanEntity::getHandleStatus, req.getHandleStatus());
} }
if (StringUtils.isNotEmpty(req.getStartDate())) {
ge(OperAccessPlanEntity::getActStartTime, req.getStartDate());
}
if (StringUtils.isNotBlank(req.getEndDate())) {
le(OperAccessPlanEntity::getActStartTime, req.getEndDate());
}
}}; }};
IPage pages = super.page(Condition.getPage(query), queryWrapper); IPage pages = super.page(Condition.getPage(query), queryWrapper);

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyMainServiceImpl.java

@ -1549,7 +1549,7 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
if (CollectionUtil.isNotEmpty(imsSchedulingVos)){ if (CollectionUtil.isNotEmpty(imsSchedulingVos)){
return R.data(imsSchedulingVos); return R.data(imsSchedulingVos);
} }
return R.fail("暂无排班计划"); return R.success("暂无排班计划");
} }

4
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java

@ -423,10 +423,10 @@ public class ImsDutyRecServiceImpl extends BaseServiceImpl<ImsDutyRecMapper, Ims
like(ImsDutyRecEntity::getLeftProblem, vo.getLeftProblem()); like(ImsDutyRecEntity::getLeftProblem, vo.getLeftProblem());
} }
if (StringUtil.isNotBlank(vo.getStartDate())) { if (StringUtil.isNotBlank(vo.getStartDate())) {
ge(ImsDutyRecEntity::getAcceptTime, vo.getStartDate()); ge(ImsDutyRecEntity::getExecTime, vo.getStartDate());
} }
if (StringUtil.isNotBlank(vo.getEndDate())) { if (StringUtil.isNotBlank(vo.getEndDate())) {
le(ImsDutyRecEntity::getAcceptTime, vo.getEndDate()); le(ImsDutyRecEntity::getExecTime, vo.getEndDate());
} }
if (ObjectUtil.isNotEmpty(vo.getCreateDept())) { if (ObjectUtil.isNotEmpty(vo.getCreateDept())) {
eq(ImsDutyRecEntity::getCreateDept, vo.getCreateDept()); eq(ImsDutyRecEntity::getCreateDept, vo.getCreateDept());

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java

@ -1149,7 +1149,7 @@ public class HydropowerServiceImpl implements HydropowerService {
long on = reals.stream().filter(real -> entry.getValue().stream().map(StationEntity::getRefDept).collect(Collectors.toList()).contains(real.getDeptId()) && real.getState()).count(); long on = reals.stream().filter(real -> entry.getValue().stream().map(StationEntity::getRefDept).collect(Collectors.toList()).contains(real.getDeptId()) && real.getState()).count();
long sum = reals.stream().filter(real->entry.getValue().stream().map(StationEntity::getRefDept).collect(Collectors.toList()).contains(real.getDeptId())).count(); long sum = reals.stream().filter(real->entry.getValue().stream().map(StationEntity::getRefDept).collect(Collectors.toList()).contains(real.getDeptId())).count();
if(Math.abs(sum) > 0){ if(Math.abs(sum) > 0){
scale.setDeviceUse(BigDecimal.valueOf(on / sum * 100).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()); scale.setDeviceUse(BigDecimal.valueOf(on / (double)sum * 100).setScale(1, RoundingMode.HALF_UP).doubleValue());
} }
} }
return scale; return scale;

3
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/SideHustleServiceImpl.java

@ -57,6 +57,7 @@ import org.springframework.stereotype.Service;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Time; import java.sql.Time;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
@ -1139,7 +1140,7 @@ public class SideHustleServiceImpl implements ISideHustleService {
} }
// 机组开机总数 // 机组开机总数
int onOffCount = map.entrySet().stream().filter(o->deptIds.contains(o.getKey())).mapToInt(vo-> vo.getValue().getStartingUpCount()).sum(); int onOffCount = map.entrySet().stream().filter(o->deptIds.contains(o.getKey())).mapToInt(vo-> vo.getValue().getStartingUpCount()).sum();
return BigDecimal.valueOf(onOffCount / (double)unitSumCount * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return BigDecimal.valueOf(onOffCount / (double)unitSumCount * 100).setScale(2, RoundingMode.HALF_UP).doubleValue();
} }

4
hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/impl/OperMaintenanceMonitorServiceImpl.java

@ -53,8 +53,8 @@ public class OperMaintenanceMonitorServiceImpl implements IOperMaintenanceMonito
}}); }});
//获取列表班次ID集合 //获取列表班次ID集合
List<Long> classIdList = planEntities.stream().filter(planEntity -> ObjectUtil.isNotEmpty(planEntity.getImsDutyClassId())) List<Long> classIdList = planEntities.stream().map(OperMaintenancePlanEntity::getImsDutyClassId)
.map(OperMaintenancePlanEntity::getImsDutyClassId).collect(Collectors.toList()); .filter(ObjectUtil::isNotEmpty).collect(Collectors.toList());
IImsDutyClassService imsDutyClassService = SpringUtil.getBean(IImsDutyClassService.class); IImsDutyClassService imsDutyClassService = SpringUtil.getBean(IImsDutyClassService.class);
Map<Long, List<ImsDutyClassEntity>> classMap = null; Map<Long, List<ImsDutyClassEntity>> classMap = null;
if (CollectionUtil.isNotEmpty(classIdList)) { if (CollectionUtil.isNotEmpty(classIdList)) {

3
hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java

@ -95,11 +95,11 @@ public class StationServiceImpl extends BaseServiceImpl<StationMapper, StationEn
}); });
Optional<Integer> sort = Optional.ofNullable(this.getStationMaxOrder()); Optional<Integer> sort = Optional.ofNullable(this.getStationMaxOrder());
req.setSort(sort.isPresent() ? sort.get() + 1 : 1); req.setSort(sort.isPresent() ? sort.get() + 1 : 1);
this.pushStation(req);
boolean updateResult = this.saveOrUpdate(req); boolean updateResult = this.saveOrUpdate(req);
Assert.isTrue(updateResult, () -> { Assert.isTrue(updateResult, () -> {
throw new ServiceException("创建/修改站点信息失败!"); throw new ServiceException("创建/修改站点信息失败!");
}); });
this.pushStation(req);
} }
/** /**
@ -130,6 +130,7 @@ public class StationServiceImpl extends BaseServiceImpl<StationMapper, StationEn
new Thread(dataPush,"数据平台站点推送").start(); new Thread(dataPush,"数据平台站点推送").start();
boolean flag; boolean flag;
try { try {
log.error("pushStationsend : {},{}",fdpPush.get(),dataPush.get());
flag = fdpPush.get().isSuccess() && dataPush.get().isSuccess(); flag = fdpPush.get().isSuccess() && dataPush.get().isSuccess();
} }
catch (ExecutionException e) { catch (ExecutionException e) {

6
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/service/impl/WorkTicketInfoServiceImpl.java

@ -252,6 +252,12 @@ public class WorkTicketInfoServiceImpl extends BaseServiceImpl<WorkTicketInfoMap
if (StringUtils.isNotEmpty(req.getFlowTaskName())) { if (StringUtils.isNotEmpty(req.getFlowTaskName())) {
lqw.eq(WorkTicketInfoEntity::getFlowTaskName, req.getFlowTaskName()); lqw.eq(WorkTicketInfoEntity::getFlowTaskName, req.getFlowTaskName());
} }
if (StringUtils.isNotEmpty(req.getStartTime())) {
lqw.ge(WorkTicketInfoEntity::getCreateTime, req.getStartTime());
}
if (StringUtils.isNotEmpty(req.getEndTime())) {
lqw.le(WorkTicketInfoEntity::getCreateTime, req.getEndTime());
}
lqw.orderByDesc(WorkTicketInfoEntity::getCreateTime).orderByDesc(WorkTicketInfoEntity::getUpdateTime); lqw.orderByDesc(WorkTicketInfoEntity::getCreateTime).orderByDesc(WorkTicketInfoEntity::getUpdateTime);
IPage<WorkTicketInfoEntity> pages = this.page(Condition.getPage(query), lqw); IPage<WorkTicketInfoEntity> pages = this.page(Condition.getPage(query), lqw);
//数据转换 //数据转换

Loading…
Cancel
Save