commit
5ad4e3799a
@ -0,0 +1,39 @@
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
!**/src/main/**/target/
|
||||
!**/src/test/**/target/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea/modules.xml
|
||||
.idea/jarRepositories.xml
|
||||
.idea/compiler.xml
|
||||
.idea/libraries/
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
/.idea
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
build/
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.yingji</groupId>
|
||||
<artifactId>yingjiAlgorithms</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>yingjiAlgorithms</name>
|
||||
<description>应急算法</description>
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<spring-boot.version>2.7.6</spring-boot.version>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
<version>8.2.0</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.5.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
|
||||
<version>4.4.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>5.8.25</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
<version>2.0.41</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-dependencies</artifactId>
|
||||
<version>${spring-boot.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
<build>
|
||||
<!--打包成jar包时的名字-->
|
||||
<finalName>algorithms</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<encoding>UTF-8</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<version>${spring-boot.version}</version>
|
||||
<configuration>
|
||||
<mainClass>com.yingji.YingjiAlgorithmsApplication</mainClass>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>repackage</id>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@ -0,0 +1,19 @@
|
||||
package com.yingji;
|
||||
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
/**
|
||||
* @author wu
|
||||
* @since 2024/2/26 10:24
|
||||
*/
|
||||
|
||||
@SpringBootApplication
|
||||
@MapperScan("com.yingji.mapper")
|
||||
public class YingjiAlgorithmsApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(YingjiAlgorithmsApplication.class, args);
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
package com.yingji.base.controller;
|
||||
|
||||
import com.yingji.base.domain.AjaxResult;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* web层通用数据处理
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class BaseController {
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
|
||||
/**
|
||||
* 返回成功
|
||||
*/
|
||||
public AjaxResult success() {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回失败消息
|
||||
*/
|
||||
public AjaxResult error() {
|
||||
return AjaxResult.error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回成功消息
|
||||
*/
|
||||
public AjaxResult success(String message) {
|
||||
return AjaxResult.success(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回成功消息
|
||||
*/
|
||||
public AjaxResult success(Object data) {
|
||||
return AjaxResult.success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回失败消息
|
||||
*/
|
||||
public AjaxResult error(String message) {
|
||||
return AjaxResult.error(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回警告消息
|
||||
*/
|
||||
public AjaxResult warn(String message) {
|
||||
return AjaxResult.warn(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 响应返回结果
|
||||
*
|
||||
* @param rows 影响行数
|
||||
* @return 操作结果
|
||||
*/
|
||||
protected AjaxResult toAjax(int rows) {
|
||||
return rows > 0 ? AjaxResult.success() : AjaxResult.error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 响应返回结果
|
||||
*
|
||||
* @param result 结果
|
||||
* @return 操作结果
|
||||
*/
|
||||
protected AjaxResult toAjax(boolean result) {
|
||||
return result ? success() : error();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package com.yingji.config;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @author wu
|
||||
* @since 2024/2/26 11:28
|
||||
*/
|
||||
@Configuration
|
||||
public class MybatisPlusConfig {
|
||||
|
||||
/**
|
||||
* 添加分页插件
|
||||
*/
|
||||
@Bean
|
||||
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//如果配置多个插件,切记分页最后添加
|
||||
//interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); 如果有多数据源可以不配具体类型 否则都建议配上具体的DbType
|
||||
return interceptor;
|
||||
}
|
||||
}
|
@ -0,0 +1,131 @@
|
||||
package com.yingji.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.yingji.base.controller.BaseController;
|
||||
import com.yingji.base.domain.AjaxResult;
|
||||
import com.yingji.entity.Alarm;
|
||||
import com.yingji.entity.dto.request.AlarmFindRequest;
|
||||
import com.yingji.service.AlarmService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 报警事件(Alarm)表控制层
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-06 09:15:01
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("algorithms/alarm")
|
||||
@Api(tags = "报警事件")
|
||||
public class AlarmController extends BaseController {
|
||||
/**
|
||||
* 服务对象
|
||||
*/
|
||||
@Resource
|
||||
private AlarmService alarmService;
|
||||
|
||||
/**
|
||||
* 分页条件查询所有数据
|
||||
*
|
||||
* @param page 分页条件
|
||||
* @param req 查询条件
|
||||
* @return 所有数据
|
||||
*/
|
||||
@GetMapping
|
||||
@ApiOperation(value = "分页条件查询报警事件", response = Alarm.class)
|
||||
public AjaxResult page(Page<Alarm> page, AlarmFindRequest req) {
|
||||
return success(alarmService.page(page, req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件查询所有报警事件
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 所有数据
|
||||
*/
|
||||
@GetMapping("/findAll")
|
||||
@ApiOperation(value = "条件查询所有报警事件", response = Alarm.class)
|
||||
public AjaxResult findAll(AlarmFindRequest req) {
|
||||
return success(alarmService.findAll(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过主键查询单条数据
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 单条数据
|
||||
*/
|
||||
@GetMapping("{id}")
|
||||
@ApiOperation(value = "通过主键查询单条报警事件", response = Alarm.class)
|
||||
public AjaxResult getById(@PathVariable Serializable id) {
|
||||
return success(alarmService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增数据
|
||||
*
|
||||
* @param alarm 实体对象
|
||||
* @return 新增结果
|
||||
*/
|
||||
@PostMapping
|
||||
@ApiOperation(value = "新增报警事件", response = Alarm.class)
|
||||
public AjaxResult insert(@RequestBody Alarm alarm) {
|
||||
return success(alarmService.save(alarm));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改数据
|
||||
*
|
||||
* @param alarm 实体对象
|
||||
* @return 修改结果
|
||||
*/
|
||||
@PutMapping
|
||||
@ApiOperation(value = "修改报警事件")
|
||||
public AjaxResult update(@RequestBody Alarm alarm) {
|
||||
return success(alarmService.updateById(alarm));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
*
|
||||
* @param idList 主键集合
|
||||
* @return 删除结果
|
||||
*/
|
||||
@DeleteMapping
|
||||
@ApiOperation(value = "删除报警事件")
|
||||
public AjaxResult delete(@RequestParam("idList") List<Long> idList) {
|
||||
return success(alarmService.removeByIds(idList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步数据
|
||||
*
|
||||
* @param startTime 查询条件
|
||||
* @param size 查询条数
|
||||
* @return 所有数据
|
||||
*/
|
||||
@GetMapping("/synchronous")
|
||||
@ApiOperation(value = "同步数据")
|
||||
public AjaxResult synchronous(String startTime, Integer size) {
|
||||
alarmService.synchronous(startTime,size);
|
||||
return success();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,35 @@
|
||||
package com.yingji.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午4:17
|
||||
*/
|
||||
@Data
|
||||
public class AcceptEvents implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 2498572602663676559L;
|
||||
|
||||
private String AlarmTelephone;
|
||||
private String DiseaseJudge;
|
||||
private String PatientName;
|
||||
private String PatientSex;
|
||||
private String PatientAge;
|
||||
private String AcceptType;
|
||||
private String ResponsibleRecipient;
|
||||
private String WaitAddress;
|
||||
private String SendAddress;
|
||||
private String RingDateTime;
|
||||
private Date StartAcceptDateTime;
|
||||
private Date EndAcceptDateTime;
|
||||
private Date SendOrderDateTime;
|
||||
private String EventAddress;
|
||||
private String AcceptId;
|
||||
private String EventId;
|
||||
private String AcceptOrder;
|
||||
|
||||
}
|
@ -0,0 +1,148 @@
|
||||
package com.yingji.entity;
|
||||
|
||||
import cn.hutool.core.annotation.Alias;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
/**
|
||||
* (Alarm)表实体类
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-07 14:50:30
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("实体类")
|
||||
@TableName(value = "alarm")
|
||||
public class Alarm implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -61131421311961793L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ApiModelProperty(value = "主键id")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long emergencyEventId;
|
||||
private Integer emergencyEventSource;
|
||||
private Integer emergencyEventStatus;
|
||||
private Integer warnResponseStatus;
|
||||
private Integer emergencyResponseStatus;
|
||||
private String emergencyEventTitle;
|
||||
private Integer emergencyEventType;
|
||||
private Integer emergencyEventLevel;
|
||||
|
||||
/**
|
||||
* 报警时间
|
||||
*/
|
||||
@ApiModelProperty(value = "报警时间")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime emergencyEventTime;
|
||||
|
||||
/**
|
||||
* 报警内容
|
||||
*/
|
||||
@ApiModelProperty(value = "报警内容")
|
||||
@Alias("bjnr")
|
||||
private String emergencyEventDesc;
|
||||
|
||||
/**
|
||||
* 报警地址
|
||||
*/
|
||||
@Alias("sfdd")
|
||||
@ApiModelProperty(value = "报警地址")
|
||||
private String emergencyEventAddress;
|
||||
private String emergencyEventArea;
|
||||
private Double emergencyEventLon;
|
||||
private Double emergencyEventLat;
|
||||
private String submitUnit;
|
||||
private String submitUnitContact;
|
||||
private String submitUnitTelephone;
|
||||
private String reportPerson;
|
||||
private String reportPersonTelephone;
|
||||
private String remark;
|
||||
private String fileUrls;
|
||||
|
||||
/**
|
||||
* 是否删除 0未删除 1删除
|
||||
*/
|
||||
@ApiModelProperty(value = "是否删除 0未删除 1删除")
|
||||
private Integer delFlag;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 最后更新人
|
||||
*/
|
||||
@ApiModelProperty(value = "最后更新人")
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 最后更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "最后更新时间")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
private String sendOutTimes;
|
||||
private Long groupId;
|
||||
private Integer isRehearsal;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
@ApiModelProperty(value = "报警电话")
|
||||
@Alias("bjdh")
|
||||
private String alarmPhoneNumber;
|
||||
|
||||
/**
|
||||
* 源id
|
||||
*/
|
||||
@ApiModelProperty(value = "源id")
|
||||
private String sourceId;
|
||||
private Integer isJudged;
|
||||
private String eventDetail;
|
||||
/**
|
||||
* 预警大类
|
||||
*/
|
||||
@ApiModelProperty(value = "预警大类")
|
||||
private String aiCategories;
|
||||
/**
|
||||
* 预警小类
|
||||
*/
|
||||
@ApiModelProperty(value = "预警小类")
|
||||
private String aiSubCategories;
|
||||
/**
|
||||
* 紧急程度
|
||||
*/
|
||||
@ApiModelProperty(value = "紧急程度")
|
||||
private String aiLevel;
|
||||
/**
|
||||
* 紧急系数
|
||||
*/
|
||||
@ApiModelProperty(value = "紧急系数")
|
||||
private Double aiNum;
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
package com.yingji.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午4:18
|
||||
*/
|
||||
@Data
|
||||
public class Amb implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -9140135874884043915L;
|
||||
|
||||
private String PlateNumber;
|
||||
private String RealSign;
|
||||
private String AmbCode;
|
||||
private String StationName;
|
||||
private String AmbType;
|
||||
private String AmbPhone;
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.yingji.entity;
|
||||
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* (Source)表实体类
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-07 18:03:09
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("实体类")
|
||||
@TableName(value = "source")
|
||||
public class Source implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -80185849209851185L;
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ApiModelProperty(value = "主键id")
|
||||
private Long id;
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
@ApiModelProperty(value = "任务id")
|
||||
private String sourceId;
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
package com.yingji.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午4:23
|
||||
*/
|
||||
@Data
|
||||
public class Task implements Serializable {
|
||||
private static final long serialVersionUID = 4118581272605160572L;
|
||||
|
||||
private Boolean IsOver;
|
||||
private String RealSendAddress;
|
||||
private Date TaskCreatedDateTime;
|
||||
private Date AcceptOrderDateTime;
|
||||
private Date OutAmbDateTime;
|
||||
private Date ArriveSceneDateTime;
|
||||
private Date LeaveSceneDateTime;
|
||||
private Date ArriveHospitalDateTime;
|
||||
private Date ComplatedDateTime;
|
||||
private Date ReturnStationDateTime;
|
||||
private Boolean IsNormalOver;
|
||||
private String AbnormalReason;
|
||||
private String Driver;
|
||||
private String Doctor;
|
||||
private String Stretcher;
|
||||
private String Nurse;
|
||||
private String StationName;
|
||||
private String TaskId;
|
||||
private String AcceptOrder;
|
||||
private String AcceptId;
|
||||
private String EventId;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yingji.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午4:19
|
||||
*/
|
||||
@Data
|
||||
public class TaskInfos implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 4118581272605160572L;
|
||||
|
||||
private Amb Amb;
|
||||
|
||||
private Task Task;
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.yingji.entity.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 120获取事件请求类
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午4:09
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "120获取事件请求类")
|
||||
public class AccidentRequest implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -3450693580974529886L;
|
||||
|
||||
/**
|
||||
* 开始时间字符串
|
||||
*/
|
||||
@ApiModelProperty(value = "开始时间字符串")
|
||||
private String StartDateTime;
|
||||
|
||||
/**
|
||||
* 结束时间字符串
|
||||
*/
|
||||
@ApiModelProperty(value = "结束时间字符串")
|
||||
private String EndDateTime;
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
package com.yingji.entity.dto.request;
|
||||
|
||||
import cn.hutool.core.annotation.Alias;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Alarm查询请求类
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午3:59
|
||||
*/
|
||||
@ApiModel(value = "Alarm查询请求类")
|
||||
@Data
|
||||
public class AlarmFindRequest implements Serializable {
|
||||
|
||||
|
||||
private static final long serialVersionUID = 5773800327954649047L;
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
@ApiModelProperty("开始时间")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
@ApiModelProperty("结束时间")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime endTime;
|
||||
|
||||
/**
|
||||
* 报警内容
|
||||
*/
|
||||
@ApiModelProperty(value = "报警内容")
|
||||
private String emergencyEventDesc;
|
||||
|
||||
/**
|
||||
* 报警地址
|
||||
*/
|
||||
@ApiModelProperty(value = "报警地址")
|
||||
private String emergencyEventAddress;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
@ApiModelProperty(value = "报警电话")
|
||||
private String alarmPhoneNumber;
|
||||
|
||||
/**
|
||||
* 预警大类
|
||||
*/
|
||||
@ApiModelProperty(value = "预警大类")
|
||||
private String aiCategories;
|
||||
|
||||
/**
|
||||
* 预警小类
|
||||
*/
|
||||
@ApiModelProperty(value = "预警小类")
|
||||
private String aiSubCategories;
|
||||
|
||||
/**
|
||||
* 紧急程度
|
||||
*/
|
||||
@ApiModelProperty(value = "紧急程度")
|
||||
private String aiLevel;
|
||||
|
||||
/**
|
||||
* 紧急系数最小值
|
||||
*/
|
||||
@ApiModelProperty(value = "紧急系数最小值")
|
||||
private Double aiNumMin;
|
||||
|
||||
/**
|
||||
* 紧急系数最小值
|
||||
*/
|
||||
@ApiModelProperty(value = "紧急系数最大值")
|
||||
private Double aiNumMax;
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package com.yingji.entity.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 120token请求类
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午4:05
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "120token请求类")
|
||||
public class TokenRequest implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -2538907503968466851L;
|
||||
|
||||
/**
|
||||
* key admin
|
||||
*/
|
||||
@ApiModelProperty(value = "key")
|
||||
private String AKey;
|
||||
|
||||
/**
|
||||
* secret anchor120
|
||||
*/
|
||||
@ApiModelProperty(value = "secret")
|
||||
private String Asecret;
|
||||
|
||||
/**
|
||||
* 当前时间字符串
|
||||
*/
|
||||
@ApiModelProperty(value = "当前时间字符串")
|
||||
private String AccessDateTime;
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.yingji.entity.dto.response;
|
||||
|
||||
import com.yingji.entity.AcceptEvents;
|
||||
import com.yingji.entity.TaskInfos;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午4:24
|
||||
*/
|
||||
@Data
|
||||
public class EventsResponse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -3894493286879970663L;
|
||||
|
||||
private List<AcceptEvents> AcceptEvents;
|
||||
private List<TaskInfos> TaskInfos;
|
||||
private String EventName;
|
||||
private String EventType;
|
||||
private String EventLevel;
|
||||
private Date EventDateTime;
|
||||
private String EventDescribe;
|
||||
private String EventArea;
|
||||
private String EventAddress;
|
||||
private Double EventLongitude;
|
||||
private Double EventLatitude;
|
||||
private String AlarmUnit;
|
||||
private String AlarmUnitContactor;
|
||||
private String AlarmUnitTelephone;
|
||||
private Integer SendAmbCount;
|
||||
private String AttachmentInfo;
|
||||
private String Remark;
|
||||
private String EventId;
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.yingji.entity.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 通用响应类
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024/4/30 下午4:16
|
||||
*/
|
||||
@Data
|
||||
public class GeneralResponse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 3346787118665022563L;
|
||||
|
||||
private List<Object> data;
|
||||
private String msg;
|
||||
private int code;
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.yingji.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.yingji.entity.Alarm;
|
||||
import com.yingji.entity.dto.request.AlarmFindRequest;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 报警事件(Alarm)表数据库访问层
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-06 09:15:01
|
||||
*/
|
||||
public interface AlarmMapper extends BaseMapper<Alarm> {
|
||||
|
||||
/**
|
||||
* 分页条件查询数据
|
||||
*
|
||||
* @param page 分页条件
|
||||
* @param req 查询条件
|
||||
* @return 数据
|
||||
*/
|
||||
Page<Alarm> page(Page<Alarm> page, @Param("req") AlarmFindRequest req);
|
||||
|
||||
/**
|
||||
* 条件查询数据
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 数据
|
||||
*/
|
||||
List<Alarm> findAll(@Param("req") AlarmFindRequest req);
|
||||
}
|
||||
|
@ -0,0 +1,31 @@
|
||||
package com.yingji.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.yingji.entity.Source;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* (Source)表数据库访问层
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-07 18:03:09
|
||||
*/
|
||||
public interface SourceMapper extends BaseMapper<Source> {
|
||||
|
||||
/**
|
||||
* 保存任务源id
|
||||
*
|
||||
* @param list 任务源id
|
||||
*/
|
||||
void addList(List<String> list);
|
||||
|
||||
/**
|
||||
* 查询所有sourceId
|
||||
*
|
||||
* @return SourceIdList
|
||||
*/
|
||||
List<String> findSourceAll();
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,79 @@
|
||||
package com.yingji.quartz;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.yingji.entity.dto.request.AlarmRequest;
|
||||
import com.yingji.service.AlarmService;
|
||||
import com.yingji.service.SourceService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 110数据保存定时任务
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024/05/06 10:18
|
||||
*/
|
||||
@Configuration
|
||||
@EnableScheduling
|
||||
public class AlarmQuartz {
|
||||
|
||||
public static final Logger log = LoggerFactory.getLogger(AlarmQuartz.class);
|
||||
|
||||
@Resource
|
||||
private AlarmService alarmService;
|
||||
|
||||
@Resource
|
||||
private SourceService sourceService;
|
||||
|
||||
/**
|
||||
* 保存所有id
|
||||
*/
|
||||
@Scheduled(cron = "0 */5 * * * ? ")
|
||||
private void savaData() {
|
||||
// 获取token
|
||||
String token = alarmService.getToken();
|
||||
if (StrUtil.isEmpty(token)) {
|
||||
return;
|
||||
}
|
||||
// 获取五分钟前的时间
|
||||
LocalDateTime yesterday = LocalDateTime.now().minusMinutes(5);
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmm");
|
||||
String yesterdayStr = yesterday.format(formatter) + "00";
|
||||
// 定义起始页
|
||||
int pageIndex = 1;
|
||||
// 定义每页显示条数
|
||||
int pageSize = 5000;
|
||||
// 定义总数据条数
|
||||
int size = 0;
|
||||
// 定义type
|
||||
String type = "getId";
|
||||
// 查询id条件
|
||||
AlarmRequest req = new AlarmRequest();
|
||||
req.setType(type);
|
||||
req.setValue(yesterdayStr);
|
||||
req.setPageIndex(pageIndex);
|
||||
req.setPageSize(pageSize);
|
||||
while (true) {
|
||||
List<String> data = alarmService.findDataIdList(req, token);
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
sourceService.addList(data);
|
||||
size += data.size();
|
||||
if (data.size() == pageSize) {
|
||||
req.setPageIndex(pageIndex++);
|
||||
log.info("第" + pageIndex + "页==========================" + size + "条数据");
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package com.yingji.quartz;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.yingji.entity.Alarm;
|
||||
import com.yingji.entity.dto.request.AlarmRequest;
|
||||
import com.yingji.service.AlarmService;
|
||||
import com.yingji.service.SourceService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 110数据保存定时任务
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024/05/06 10:18
|
||||
*/
|
||||
@Configuration
|
||||
@EnableScheduling
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class SaveAlarmQuartz {
|
||||
|
||||
public static final Logger log = LoggerFactory.getLogger(SaveAlarmQuartz.class);
|
||||
|
||||
@Resource
|
||||
private AlarmService alarmService;
|
||||
|
||||
@Resource
|
||||
private SourceService sourceService;
|
||||
|
||||
@Scheduled(cron = "0 */1 * * * ? ")
|
||||
private void savaData() {
|
||||
// 查询所有id
|
||||
List<String> data = sourceService.findSourceAll();
|
||||
// 查询数据条件
|
||||
AlarmRequest alarmRequest = new AlarmRequest();
|
||||
alarmRequest.setType("getValue");
|
||||
alarmRequest.setPageIndex(1);
|
||||
alarmRequest.setPageSize(10);
|
||||
// 定义成功条数
|
||||
int successNum = 0;
|
||||
// 定义失败条数
|
||||
int failuresNum = 0;
|
||||
List<Alarm> list = new ArrayList<>();
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
// 获取token
|
||||
String token = alarmService.getToken();
|
||||
if (StrUtil.isEmpty(token)) {
|
||||
return;
|
||||
}
|
||||
for (String x : data) {
|
||||
try {
|
||||
alarmRequest.setValue(x);
|
||||
Alarm alarm = alarmService.findDataList(alarmRequest, token);
|
||||
if (alarm != null) {
|
||||
alarm.setSourceId(x);
|
||||
list.add(alarm);
|
||||
sourceService.delBySourceId(x);
|
||||
successNum++;
|
||||
Thread.sleep(2000);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
failuresNum++;
|
||||
log.info("==========================" + "id:" + x, "更新数据失败");
|
||||
log.info("失败更新=========================" + failuresNum + "条数据");
|
||||
}
|
||||
}
|
||||
alarmService.saveBatch(list);
|
||||
log.info("成功更新=========================" + successNum + "条数据");
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.yingji.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.yingji.entity.Alarm;
|
||||
import com.yingji.entity.dto.request.AlarmFindRequest;
|
||||
import com.yingji.entity.dto.request.AlarmRequest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 报警事件(Alarm)表服务接口
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-06 09:15:01
|
||||
*/
|
||||
public interface AlarmService extends IService<Alarm> {
|
||||
|
||||
/**
|
||||
* 同步数据
|
||||
*
|
||||
* @param startTime 查询条件
|
||||
* @param size 查询条数
|
||||
*/
|
||||
void synchronous(String startTime, Integer size);
|
||||
|
||||
|
||||
/**
|
||||
* 查询数据Id
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @param token token
|
||||
* @return 数据IdList
|
||||
*/
|
||||
List<String> findDataIdList(AlarmRequest req, String token);
|
||||
|
||||
/**
|
||||
* 查询数据
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @param token token
|
||||
* @return 数据List
|
||||
*/
|
||||
Alarm findDataList(AlarmRequest req, String token);
|
||||
|
||||
/**
|
||||
* 获取110token
|
||||
*
|
||||
* @return token
|
||||
*/
|
||||
String getToken();
|
||||
|
||||
/**
|
||||
* 分页条件查询数据
|
||||
*
|
||||
* @param page 分页条件
|
||||
* @param req 查询条件
|
||||
* @return 数据
|
||||
*/
|
||||
Page<Alarm> page(Page<Alarm> page, AlarmFindRequest req);
|
||||
|
||||
/**
|
||||
* 条件查询数据
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 数据
|
||||
*/
|
||||
List<Alarm> findAll(AlarmFindRequest req);
|
||||
}
|
||||
|
@ -0,0 +1,36 @@
|
||||
package com.yingji.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.yingji.entity.Source;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* (Source)表服务接口
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-07 18:03:09
|
||||
*/
|
||||
public interface SourceService extends IService<Source> {
|
||||
|
||||
/**
|
||||
* 保存任务源id
|
||||
*
|
||||
* @param list 任务源id
|
||||
*/
|
||||
void addList(List<String> list);
|
||||
|
||||
/**
|
||||
* 查询所有sourceId
|
||||
*
|
||||
* @return SourceIdList
|
||||
*/
|
||||
List<String> findSourceAll();
|
||||
|
||||
/**
|
||||
* 根据sourceId删除
|
||||
* @param sourceId 源id
|
||||
*/
|
||||
void delBySourceId(String sourceId);
|
||||
}
|
||||
|
@ -0,0 +1,234 @@
|
||||
package com.yingji.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.yingji.entity.Alarm;
|
||||
import com.yingji.entity.dto.request.AlarmFindRequest;
|
||||
import com.yingji.entity.dto.request.AlarmRequest;
|
||||
import com.yingji.mapper.AlarmMapper;
|
||||
import com.yingji.service.AlarmService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 报警事件(Alarm)表服务实现类
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-06 09:15:01
|
||||
*/
|
||||
@Service("alarmService")
|
||||
public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements AlarmService {
|
||||
|
||||
public static final Logger log = LoggerFactory.getLogger(AlarmServiceImpl.class);
|
||||
@Value("${clientId}")
|
||||
private String clientId;
|
||||
|
||||
@Value("${clientSecret}")
|
||||
private String clientSecret;
|
||||
|
||||
@Value("${getToken}")
|
||||
private String getToken;
|
||||
|
||||
@Value("${specificWarn}")
|
||||
private String specificWarn;
|
||||
|
||||
/**
|
||||
* base64加密密钥
|
||||
*
|
||||
* @return base64加密后的密钥
|
||||
*/
|
||||
public String findBase() {
|
||||
String str = clientId + ":" + clientSecret;
|
||||
return Base64.encode(str);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步数据
|
||||
*
|
||||
* @param startTime 查询条件
|
||||
* @param size 查询条数
|
||||
*/
|
||||
@Override
|
||||
public void synchronous(String startTime, Integer size) {
|
||||
// 获取token
|
||||
String token = getToken();
|
||||
if (StrUtil.isEmpty(token)) {
|
||||
return;
|
||||
}
|
||||
// 定义起始页
|
||||
int pageIndex = 1;
|
||||
// 定义每页显示条数
|
||||
int pageSize = 10;
|
||||
// 保存获取的条数
|
||||
int total = 0;
|
||||
// 定义type
|
||||
String type = "getId";
|
||||
// 查询id条件
|
||||
AlarmRequest req = new AlarmRequest();
|
||||
req.setType(type);
|
||||
req.setValue(startTime);
|
||||
req.setPageIndex(pageIndex);
|
||||
req.setPageSize(pageSize);
|
||||
// 查询数据条件
|
||||
AlarmRequest alarmRequest = new AlarmRequest();
|
||||
alarmRequest.setType("getValue");
|
||||
alarmRequest.setPageIndex(1);
|
||||
alarmRequest.setPageSize(10);
|
||||
while (true) {
|
||||
total += pageSize;
|
||||
List<String> data = findDataIdList(req, token);
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
log.info("=======================================");
|
||||
log.info("数据的条数为:" + data.size());
|
||||
List<Alarm> list = new ArrayList<>();
|
||||
data.forEach(x -> {
|
||||
alarmRequest.setValue(x);
|
||||
Alarm alarm = findDataList(alarmRequest, token);
|
||||
alarm.setSourceId(x);
|
||||
list.add(alarm);
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
log.info("睡眠1秒失败");
|
||||
}
|
||||
});
|
||||
saveBatch(list);
|
||||
// 总条数
|
||||
if (total >= size) {
|
||||
return;
|
||||
}
|
||||
if (data.size() == pageSize) {
|
||||
req.setPageIndex(pageIndex++);
|
||||
log.info("第" + pageIndex + "页==========================" + list.size() + "条数据");
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询数据Id
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @param token token
|
||||
* @return 数据IdList
|
||||
*/
|
||||
@Override
|
||||
public List<String> findDataIdList(AlarmRequest req, String token) {
|
||||
String bodyJson = JSONObject.toJSONString(req);
|
||||
List<String> records = null;
|
||||
// 获取id
|
||||
String body = HttpRequest.post(specificWarn).header("Authorization", "Basic " + token).body(bodyJson).execute().body();
|
||||
JSONObject json = JSONObject.parse(body);
|
||||
Object response = json.get("response");
|
||||
if (BeanUtil.isNotEmpty(response)) {
|
||||
String responseStr = JSONUtil.toJsonStr(response);
|
||||
JSONObject res = JSONObject.parse(responseStr);
|
||||
String recordsStr = JSONUtil.toJsonStr(res.get("records"));
|
||||
if (StrUtil.isNotEmpty(recordsStr)) {
|
||||
records = JSONUtil.toList(recordsStr, String.class);
|
||||
}
|
||||
}
|
||||
return records;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询数据
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @param token token
|
||||
* @return 数据List
|
||||
*/
|
||||
@Override
|
||||
public Alarm findDataList(AlarmRequest req, String token) {
|
||||
String bodyJson = JSONObject.toJSONString(req);
|
||||
Alarm records = null;
|
||||
// 获取id
|
||||
String body = HttpRequest.post(specificWarn).header("Authorization", "Basic " + token).header("Content-Type", "application/json").body(bodyJson).execute().body();
|
||||
log.info("===============================");
|
||||
log.info("body数据为:" + body);
|
||||
try {
|
||||
JSONObject json = JSONObject.parse(body);
|
||||
Object response = json.get("response");
|
||||
if (BeanUtil.isNotEmpty(response)) {
|
||||
String recordsStr = JSONUtil.toJsonStr(response);
|
||||
records = JSONUtil.toBean(recordsStr, Alarm.class);
|
||||
JSONObject recordsJson = JSONObject.parse(recordsStr);
|
||||
Object bjdhsj = recordsJson.get("bjdhsj");
|
||||
String bjdhsjStr = JSONUtil.toJsonStr(bjdhsj);
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss").withZone(ZoneId.systemDefault());
|
||||
LocalDateTime emergencyEventTime = LocalDateTime.parse(bjdhsjStr, formatter);
|
||||
records.setEmergencyEventTime(emergencyEventTime);
|
||||
records.setCreateTime(LocalDateTime.now());
|
||||
records.setUpdateTime(LocalDateTime.now());
|
||||
records.setDelFlag(0);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return records;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取110token
|
||||
*
|
||||
* @return token
|
||||
*/
|
||||
@Override
|
||||
public String getToken() {
|
||||
String accessToken = null;
|
||||
String body = HttpRequest.get(getToken).header("Authorization", "Basic QkZTaFQzL1d3UGhaSlFkTDhlNEZkblExMWgwUU9lS3FCZG4reGVzQ1NKR2xESEtQazVmeG5tbkxrMW9ua20zWXpkZmpFMGdMR0VaN0g3dmZMczIxc0dNPTpHdGJnUmZOSW1Yam1CcVcwbnB4VWlHaS9zMG1iNVpkdlhBTnFVQ2dtSW00PQ==").header("Content-Type", "application/json").form("grant_type", "client_credentials").execute().body();
|
||||
JSONObject json = JSONObject.parse(body);
|
||||
Object response = json.get("response");
|
||||
if (BeanUtil.isNotEmpty(response)) {
|
||||
String recordsStr = JSONUtil.toJsonStr(response);
|
||||
JSONObject res = JSONObject.parse(recordsStr);
|
||||
accessToken = (String) res.get("access_token");
|
||||
}
|
||||
log.info("=======================================");
|
||||
log.info("token为:" + accessToken);
|
||||
return accessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页条件查询数据
|
||||
*
|
||||
* @param page 分页条件
|
||||
* @param req 查询条件
|
||||
* @return 数据
|
||||
*/
|
||||
@Override
|
||||
public Page<Alarm> page(Page<Alarm> page, AlarmFindRequest req) {
|
||||
return baseMapper.page(page,req);
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件查询数据
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 数据
|
||||
*/
|
||||
@Override
|
||||
public List<Alarm> findAll(AlarmFindRequest req) {
|
||||
return baseMapper.findAll(req);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,55 @@
|
||||
package com.yingji.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.yingji.entity.Source;
|
||||
import com.yingji.mapper.SourceMapper;
|
||||
import com.yingji.service.SourceService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* (Source)表服务实现类
|
||||
*
|
||||
* @author wu
|
||||
* @since 2024-05-07 18:03:09
|
||||
*/
|
||||
@Service("sourceService")
|
||||
public class SourceServiceImpl extends ServiceImpl<SourceMapper, Source> implements SourceService {
|
||||
|
||||
/**
|
||||
* 保存任务源id
|
||||
*
|
||||
* @param list 任务源id
|
||||
*/
|
||||
@Override
|
||||
public void addList(List<String> list) {
|
||||
baseMapper.addList(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询所有sourceId
|
||||
*
|
||||
* @return SourceIdList
|
||||
*/
|
||||
@Override
|
||||
public List<String> findSourceAll() {
|
||||
return baseMapper.findSourceAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据sourceId删除
|
||||
*
|
||||
* @param sourceId 源id
|
||||
*/
|
||||
@Override
|
||||
public void delBySourceId(String sourceId) {
|
||||
QueryWrapper<Source> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("source_id", sourceId);
|
||||
baseMapper.delete(wrapper);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,7 @@
|
||||
server:
|
||||
port: 9001
|
||||
spring:
|
||||
profiles:
|
||||
active: dev
|
||||
|
||||
|
@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yingji.mapper.AlarmMapper">
|
||||
|
||||
|
||||
<select id="page" resultType="com.yingji.entity.Alarm">
|
||||
select * from alarm
|
||||
<where>
|
||||
<if test="req.startTime != null ">
|
||||
emergency_event_time >= #{req.startTime}
|
||||
</if>
|
||||
<if test="req.endTime != null ">
|
||||
and emergency_event_time <= #{req.endTime}
|
||||
</if>
|
||||
<if test="req.endTime != null ">
|
||||
and emergency_event_time <= #{req.endTime}
|
||||
</if>
|
||||
<if test="req.emergencyEventDesc != null and req.emergencyEventDesc != ''">
|
||||
and emergency_event_desc like concat('%', #{req.emergencyEventDesc}, '%')
|
||||
</if>
|
||||
<if test="req.emergencyEventAddress != null and req.emergencyEventAddress != ''">
|
||||
and emergency_event_address like concat('%', #{req.emergencyEventAddress}, '%')
|
||||
</if>
|
||||
<if test="req.alarmPhoneNumber != null and req.alarmPhoneNumber != ''">
|
||||
and alarm_phone_number like concat('%', #{req.alarmPhoneNumber}, '%')
|
||||
</if>
|
||||
<if test="req.aiCategories != null and req.aiCategories != ''">
|
||||
and ai_categories like concat('%', #{req.aiCategories}, '%')
|
||||
</if>
|
||||
<if test="req.aiSubCategories != null and req.aiSubCategories != ''">
|
||||
and ai_sub_categories like concat('%', #{req.aiSubCategories}, '%')
|
||||
</if>
|
||||
<if test="req.aiLevel != null and req.aiLevel != ''">
|
||||
and ai_level like concat('%', #{req.aiLevel}, '%')
|
||||
</if>
|
||||
<if test="req.aiNumMin != null ">
|
||||
and ai_num <= #{req.aiNumMin}
|
||||
</if>
|
||||
<if test="req.aiNumMax != null ">
|
||||
and ai_num <= #{req.aiNumMax}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="findAll" resultType="com.yingji.entity.Alarm">
|
||||
select * from alarm
|
||||
<where>
|
||||
<if test="req.startTime != null ">
|
||||
emergency_event_time >= #{req.startTime}
|
||||
</if>
|
||||
<if test="req.endTime != null ">
|
||||
and emergency_event_time <= #{req.endTime}
|
||||
</if>
|
||||
<if test="req.endTime != null ">
|
||||
and emergency_event_time <= #{req.endTime}
|
||||
</if>
|
||||
<if test="req.emergencyEventDesc != null and req.emergencyEventDesc != ''">
|
||||
and emergency_event_desc like concat('%', #{req.emergencyEventDesc}, '%')
|
||||
</if>
|
||||
<if test="req.emergencyEventAddress != null and req.emergencyEventAddress != ''">
|
||||
and emergency_event_address like concat('%', #{req.emergencyEventAddress}, '%')
|
||||
</if>
|
||||
<if test="req.alarmPhoneNumber != null and req.alarmPhoneNumber != ''">
|
||||
and alarm_phone_number like concat('%', #{req.alarmPhoneNumber}, '%')
|
||||
</if>
|
||||
<if test="req.aiCategories != null and req.aiCategories != ''">
|
||||
and ai_categories like concat('%', #{req.aiCategories}, '%')
|
||||
</if>
|
||||
<if test="req.aiSubCategories != null and req.aiSubCategories != ''">
|
||||
and ai_sub_categories like concat('%', #{req.aiSubCategories}, '%')
|
||||
</if>
|
||||
<if test="req.aiLevel != null and req.aiLevel != ''">
|
||||
and ai_level like concat('%', #{req.aiLevel}, '%')
|
||||
</if>
|
||||
<if test="req.aiNumMin != null ">
|
||||
and ai_num <= #{req.aiNumMin}
|
||||
</if>
|
||||
<if test="req.aiNumMax != null ">
|
||||
and ai_num <= #{req.aiNumMax}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yingji.mapper.SourceMapper">
|
||||
|
||||
|
||||
<insert id="addList">
|
||||
insert into source
|
||||
(source_id) values
|
||||
<foreach collection="list" item="id" separator=",">
|
||||
(#{id})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="findSourceAll" resultType="java.lang.String">
|
||||
select source_id
|
||||
from source
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in new issue