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