提交 b58ab87b 作者: 17607474349

feat:

1、处置、撤离日志信息关联预计信息
上级 f26ffa12
...@@ -2,14 +2,12 @@ ...@@ -2,14 +2,12 @@
package com.yiring.app.domain.risk; package com.yiring.app.domain.risk;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yiring.app.domain.warningMsg.WarningMessage;
import com.yiring.auth.domain.user.User; import com.yiring.auth.domain.user.User;
import com.yiring.common.domain.BasicEntity; import com.yiring.common.domain.BasicEntity;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import javax.persistence.Entity; import javax.persistence.*;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants; import lombok.experimental.FieldNameConstants;
...@@ -39,6 +37,10 @@ public class RiskHandlePushLog extends BasicEntity implements Serializable { ...@@ -39,6 +37,10 @@ public class RiskHandlePushLog extends BasicEntity implements Serializable {
@Serial @Serial
private static final long serialVersionUID = -4525914994066766232L; private static final long serialVersionUID = -4525914994066766232L;
@OneToOne
@Comment("预警信息")
WarningMessage warningMessage;
@ManyToOne @ManyToOne
@Comment("风险推送") @Comment("风险推送")
RiskPush riskPush; RiskPush riskPush;
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.risk;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yiring.app.domain.warningMsg.WarningMessage;
import com.yiring.auth.domain.user.User;
import com.yiring.common.domain.BasicEntity;
import java.io.Serial;
import java.io.Serializable;
import javax.persistence.*;
import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.Comment;
/**
* 风险处置推送日志
*
* @author LJ-2204
* @date 2022/5/23
*/
@Getter
@Setter
@ToString
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
@Table(name = "BS_RISK_WITHDRAWAL_PUSH_LOG")
@Comment("风险处置推送日志")
public class RiskWithdrawalPushLog extends BasicEntity implements Serializable {
@Serial
private static final long serialVersionUID = 3245051209143173609L;
@OneToOne
@Comment("预警信息")
WarningMessage warningMessage;
@ManyToOne
@Comment("风险推送")
RiskPush riskPush;
@Comment("通知方式")
String types;
@Comment("接收状态")
Boolean status;
@ManyToOne
@JoinColumn(name = "leader_id")
@JsonIgnore
@Comment("负责人")
User user;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.risk;
import java.io.Serializable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
*
* @author LJ-2204
* @date 2022/5/23
*/
@Repository
public interface RiskWithdrawalPushLogRepository
extends JpaRepository<RiskWithdrawalPushLog, Serializable>, JpaSpecificationExecutor<RiskWithdrawalPushLog> {}
...@@ -17,6 +17,7 @@ import com.yiring.app.domain.log.ZyRealtimeLogRepository; ...@@ -17,6 +17,7 @@ import com.yiring.app.domain.log.ZyRealtimeLogRepository;
import com.yiring.app.domain.risk.*; import com.yiring.app.domain.risk.*;
import com.yiring.app.domain.warningMsg.WarningMessage; import com.yiring.app.domain.warningMsg.WarningMessage;
import com.yiring.app.domain.warningMsg.WarningMessageRepository; import com.yiring.app.domain.warningMsg.WarningMessageRepository;
import com.yiring.app.domain.workArea.WorkArea;
import com.yiring.app.param.key.KeyAlarmAddParam; import com.yiring.app.param.key.KeyAlarmAddParam;
import com.yiring.app.push.domain.PushMessage; import com.yiring.app.push.domain.PushMessage;
import com.yiring.app.service.message.PositionMessageService; import com.yiring.app.service.message.PositionMessageService;
...@@ -38,6 +39,7 @@ import javax.annotation.Resource; ...@@ -38,6 +39,7 @@ import javax.annotation.Resource;
import javax.persistence.criteria.Expression; import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Predicate;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point; import org.locationtech.jts.geom.Point;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.*; import org.springframework.data.domain.*;
...@@ -109,6 +111,12 @@ public class PositionMessageServiceImpl implements PositionMessageService { ...@@ -109,6 +111,12 @@ public class PositionMessageServiceImpl implements PositionMessageService {
@Resource @Resource
RiskPushRepository riskPushRepository; RiskPushRepository riskPushRepository;
@Resource
RiskWithdrawalPushRepository riskWithdrawalPushRepository;
@Resource
RiskWithdrawalPushLogRepository riskWithdrawalPushLogRepository;
@Override @Override
public void consume(String message) { public void consume(String message) {
// 将消息转换成 JSON 格式 // 将消息转换成 JSON 格式
...@@ -750,9 +758,7 @@ public class PositionMessageServiceImpl implements PositionMessageService { ...@@ -750,9 +758,7 @@ public class PositionMessageServiceImpl implements PositionMessageService {
.build(); .build();
riskMeterDetectRepository.save(riskMeterDetect); riskMeterDetectRepository.save(riskMeterDetect);
// 撤离推送 // 撤离推送数据
// 处置推送
Optional<RiskPush> riskPushOptional = riskPushRepository.findOne( Optional<RiskPush> riskPushOptional = riskPushRepository.findOne(
Example.of(RiskPush.builder().workArea(riskWarn.getWorkArea()).level(riskWarn.getRiskLevel()).build()) Example.of(RiskPush.builder().workArea(riskWarn.getWorkArea()).level(riskWarn.getRiskLevel()).build())
); );
...@@ -763,6 +769,44 @@ public class PositionMessageServiceImpl implements PositionMessageService { ...@@ -763,6 +769,44 @@ public class PositionMessageServiceImpl implements PositionMessageService {
RiskPush riskPush = riskPushOptional.get(); RiskPush riskPush = riskPushOptional.get();
// 撤离推送
List<RiskWithdrawalPush> riskWithdrawalPushes = riskWithdrawalPushRepository.findAll(
Example.of(RiskWithdrawalPush.builder().riskPush(riskPush).build())
);
// 获取工区位置
WorkArea workArea = riskPush.getWorkArea();
Geometry geometry = workArea.getGeometry();
// 获取处在工区范围的人员并进行推送
for (RiskWithdrawalPush riskWithdrawalPush : riskWithdrawalPushes) {
List<LocationTag> locationTags = locationTagRepository.findInArea(
GeoUtils.expandGeometry(geometry, Convert.toInt(riskWithdrawalPush.getScope()))
);
String[] split = riskWithdrawalPush.getTypes().split(",");
for (String s : split) {
for (LocationTag locationTag : locationTags) {
Boolean status = false;
User user = locationTag.getUser();
switch (PushMessage.Type.valueOf(s)) {
case APP -> log.info("APP 信息发送中---");
case SMS -> log.info("SMS 信息发送中---");
case EMAIL -> log.info("EMAIL 信息发送中---");
}
RiskWithdrawalPushLog riskWithdrawalPushLog = RiskWithdrawalPushLog
.builder()
.riskPush(riskPush)
.types(s)
.warningMessage(warningMessage)
.user(user)
.status(status)
.build();
riskWithdrawalPushLogRepository.save(riskWithdrawalPushLog);
}
}
}
// 处置推送
long between = LocalDateTimeUtil.between( long between = LocalDateTimeUtil.between(
warningMessage.getCreateTime(), warningMessage.getCreateTime(),
warningMessage.getUpdateTime(), warningMessage.getUpdateTime(),
...@@ -800,6 +844,7 @@ public class PositionMessageServiceImpl implements PositionMessageService { ...@@ -800,6 +844,7 @@ public class PositionMessageServiceImpl implements PositionMessageService {
.builder() .builder()
.riskPush(riskPush) .riskPush(riskPush)
.types(s) .types(s)
.warningMessage(warningMessage)
.user(user) .user(user)
.status(status) .status(status)
.build(); .build();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论