合并定时任务到110中

main
吴顺杰 3 weeks ago
parent eaff3d4b1b
commit d0ab570ccf

@ -0,0 +1,141 @@
package com.yingji.entity;
import cn.hutool.core.annotation.Alias;
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;
/**
* (Accept)
*
* @author wu
* @since 2024-05-10 17:10:32
*/
@Data
@ApiModel("受理调度信息实体类")
@TableName(value = "accept")
public class AcceptEvents implements Serializable {
private static final long serialVersionUID = 817570017991202657L;
/**
*
*/
@ApiModelProperty(value = "受理编码 主键")
@Alias("AcceptId")
@TableId
private String acceptId;
/**
*
*/
@ApiModelProperty(value = "呼救电话")
@Alias("AlarmTelephone")
private String alarmTelephone;
/**
*
*/
@ApiModelProperty(value = "病种判断")
@Alias("DiseaseJudge")
private String diseaseJudge;
/**
*
*/
@ApiModelProperty(value = "患者姓名")
@Alias("PatientName")
private String patientName;
/**
*
*/
@ApiModelProperty(value = "患者性别")
@Alias("PatientSex")
private String patientSex;
/**
*
*/
@ApiModelProperty(value = "患者年龄")
@Alias("PatientAge")
private String patientAge;
/**
*
*/
@ApiModelProperty(value = "受理类型")
@Alias("AcceptType")
private String acceptType;
/**
*
*/
@ApiModelProperty(value = "责任受理人")
@Alias("ResponsibleRecipient")
private String responsibleRecipient;
/**
*
*/
@ApiModelProperty(value = "现场地址")
@Alias("EventAddress")
private String eventAddress;
/**
*
*/
@ApiModelProperty(value = "等车地点")
@Alias("WaitAddress")
private String waitAddress;
/**
*
*/
@ApiModelProperty(value = "送往地点")
@Alias("SendAddress")
private String sendAddress;
/**
*
*/
@ApiModelProperty(value = "电话振铃时刻")
@Alias("RingDateTime")
@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 ringDateTime;
/**
*
*/
@ApiModelProperty(value = "开始受理时刻")
@Alias("StartAcceptDateTime")
@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 startAcceptDateTime;
/**
*
*/
@ApiModelProperty(value = "结束受理时刻")
@Alias("EndAcceptDateTime")
@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 endAcceptDateTime;
/**
*
*/
@ApiModelProperty(value = "发送指令时刻")
@Alias("SendOrderDateTime")
@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 sendOrderDateTime;
/**
*
*/
@ApiModelProperty(value = "事件编码")
@Alias("EventId")
private String eventId;
/**
*
*/
@ApiModelProperty(value = "受理序号")
@Alias("AcceptOrder")
private String acceptOrder;
}

@ -0,0 +1,75 @@
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* (Amb)
*
* @author wu
* @since 2024-05-10 17:10:32
*/
@Data
@ApiModel("任务车辆实体类")
@TableName(value = "amb")
public class Amb implements Serializable {
private static final long serialVersionUID = -69012811106234254L;
/**
* id
*/
@ApiModelProperty(value = "主键id")
@TableId(type = IdType.AUTO)
private Long id;
/**
* id
*/
@ApiModelProperty(value = "任务id")
private String taskId;
/**
*
*/
@ApiModelProperty(value = "车牌号码")
@Alias("PlateNumber")
private String plateNumber;
/**
*
*/
@ApiModelProperty(value = "实际标识")
@Alias("RealSign")
private String realSign;
/**
*
*/
@ApiModelProperty(value = "车辆编码")
@Alias("AmbCode")
private String ambCode;
/**
*
*/
@ApiModelProperty(value = "分站")
@Alias("StationName")
private String stationName;
/**
*
*/
@ApiModelProperty(value = "车辆类型")
@Alias("AmbType")
private String ambType;
/**
*
*/
@ApiModelProperty(value = "随车电话")
@Alias("AmbPhone")
private String ambPhone;
}

@ -0,0 +1,187 @@
package com.yingji.entity;
import cn.hutool.core.annotation.Alias;
import com.baomidou.mybatisplus.annotation.TableField;
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;
/**
* (Event)
*
* @author wu
* @since 2024-05-10 17:10:32
*/
@Data
@ApiModel("事故实体类")
@TableName(value = "event")
public class Event implements Serializable {
private static final long serialVersionUID = -50765468921159766L;
/**
*
*/
@ApiModelProperty(value = "事件编码主键")
@Alias("EventId")
@TableId
private String eventId;
/**
*
*/
@ApiModelProperty(value = "事件标题")
@Alias("EventName")
private String eventName;
/**
*
*/
@ApiModelProperty(value = "事件类型")
@Alias("EventType")
private String eventType;
/**
*
*/
@ApiModelProperty(value = "事件等级")
@Alias("EventLevel")
private String eventLevel;
/**
*
*/
@ApiModelProperty(value = "事发时间")
@Alias("EventDateTime")
@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 eventDateTime;
/**
* ()
*/
@ApiModelProperty(value = "事发地区(行政区划)")
@Alias("EventArea")
private String eventArea;
/**
*
*/
@ApiModelProperty(value = "详细位置")
@Alias("EventAddress")
private String eventAddress;
/**
*
*/
@ApiModelProperty(value = "经度")
@Alias("EventLongitude")
private String eventLongitude;
/**
*
*/
@ApiModelProperty(value = "维度")
@Alias("EventLatitude")
private String eventLatitude;
/**
* /
*/
@ApiModelProperty(value = "出动次数(出动救护车次/辆数量)")
@Alias("SendAmbCount")
private Integer sendAmbCount;
/**
*
*/
@ApiModelProperty(value = "事件描述")
@Alias("EventDescribe")
private String eventDescribe;
/**
*
*/
@ApiModelProperty(value = "报送单位")
@Alias("AlarmUnit")
private String alarmUnit;
/**
*
*/
@ApiModelProperty(value = "报送单位联系人")
@Alias("AlarmUnitContactor")
private String alarmUnitContactor;
/**
*
*/
@ApiModelProperty(value = "报送单位联系电话")
@Alias("AlarmUnitTelephone")
private String alarmUnitTelephone;
/**
*
*/
@ApiModelProperty(value = "附件资料")
@Alias("AttachmentInfo")
private String attachmentInfo;
/**
*
*/
@ApiModelProperty(value = "备注")
@Alias("Remark")
private String remark;
/**
*
*/
@ApiModelProperty(value = "事故类型编码")
@Alias("AccidentType")
private String accidentType;
/**
*
*/
@ApiModelProperty(value = "事故类型")
private String aiClass;
/**
*
*/
@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 = "最后更新时间")
@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;
/**
* 110event_id
*/
@ApiModelProperty(value = "110的event_id")
@TableField(value = "ai_110_id")
private String ai110Id;
/**
* 110
*/
@ApiModelProperty(value = "110的紧急系数")
@TableField(value = "ai_110_num")
private Double ai110Num;
/**
* 119event_id
*/
@ApiModelProperty(value = "119的event_id")
@TableField(value = "ai_119_id")
private String ai119Id;
/**
* 119
*/
@ApiModelProperty(value = "119的紧急系数")
@TableField(value = "ai_119_num")
private Double ai119Num;
}

@ -0,0 +1,42 @@
package com.yingji.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* (AcceptClass)
*
* @author wu
* @since 2024-06-14 14:32:49
*/
@Data
@ApiModel("实体类")
@TableName(value = "event_class")
public class EventClass implements Serializable {
private static final long serialVersionUID = -34185186253758694L;
/**
* id
*/
@ApiModelProperty(value = "主键id")
private Long id;
/**
* AcceptType
*/
@ApiModelProperty(value = "事件类型编码")
private String acceptType;
/**
* ai_class
*/
@ApiModelProperty(value = "事件类型")
private String aiClass;
}

@ -0,0 +1,162 @@
package com.yingji.entity;
import com.baomidou.mybatisplus.annotation.TableField;
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;
/**
* @author wu
* @since 2024/6/4 4:26
*/
@Data
@ApiModel("实体类")
@TableName(value = "Fire")
public class Fire implements Serializable {
private static final long serialVersionUID = 9084065880894382754L;
/**
* id
*/
private String id;
/**
*
*/
private String xzqh;
/**
*
*/
private String ajbh;
/**
*
*/
private String ajms;
/**
*
*/
@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 gdsj;
private String jjyxm;
/**
*
*/
@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 sjc;
/**
*
*/
private String wd;
/**
*
*/
private String jd;
/**
*
*/
private String bcxx;
/**
*
*/
@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 jssj;
/**
*
*/
private String afdz;
/**
*
*/
@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 cdsj;
/**
*
*/
private String lafsdm;
/**
* topic
*/
private String topic;
@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 xdsj;
/**
*
*/
@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 lasj;
/**
*
*/
private String xzqhmc;
/**
*
*/
@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 ddxcsj;
/**
*
*/
@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;
/**
* 120event_id
*/
@ApiModelProperty(value = "120的event_id")
@TableField(value = "ai_120_id")
private String ai120Id;
/**
* 120
*/
@ApiModelProperty(value = "120的紧急系数")
@TableField(value = "ai_120_num")
private Double ai120Num;
/**
* 110event_id
*/
@ApiModelProperty(value = "110的event_id")
@TableField(value = "ai_110_id")
private String ai110Id;
/**
* 110
*/
@ApiModelProperty(value = "110的紧急系数")
@TableField(value = "ai_110_num")
private Double ai110Num;
}

@ -0,0 +1,172 @@
package com.yingji.entity;
import cn.hutool.core.annotation.Alias;
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;
/**
* (Task)
*
* @author wu
* @since 2024-05-10 17:10:33
*/
@Data
@ApiModel("任务信息实体类")
@TableName(value = "task")
public class Task implements Serializable {
private static final long serialVersionUID = 148870996673219596L;
/**
* id
*/
@ApiModelProperty(value = "主键id")
@Alias("TaskId")
@TableId
private String taskId;
/**
*
*/
@ApiModelProperty(value = "是否结束")
@Alias("IsOver")
private Boolean isOver;
/**
*
*/
@ApiModelProperty(value = "送往地点")
@Alias("RealSendAddress")
private String realSendAddress;
/**
*
*/
@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")
@Alias("TaskCreatedDateTime")
private LocalDateTime taskCreatedDateTime;
/**
*
*/
@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")
@Alias("AcceptOrderDateTime")
private LocalDateTime acceptOrderDateTime;
/**
*
*/
@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")
@Alias("OutAmbDateTime")
private LocalDateTime outAmbDateTime;
/**
*
*/
@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")
@Alias("ArriveSceneDateTime")
private LocalDateTime arriveSceneDateTime;
/**
*
*/
@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")
@Alias("LeaveSceneDateTime")
private LocalDateTime leaveSceneDateTime;
/**
*
*/
@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")
@Alias("ArriveHospitalDateTime")
private LocalDateTime arriveHospitalDateTime;
/**
*
*/
@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")
@Alias("ComplatedDateTime")
private LocalDateTime complatedDateTime;
/**
*
*/
@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")
@Alias("ReturnStationDateTime")
private LocalDateTime returnStationDateTime;
/**
*
*/
@ApiModelProperty(value = "是否正常结束")
@Alias("IsNormalOver")
private Boolean isNormalOver;
/**
*
*/
@ApiModelProperty(value = "异常原因")
@Alias("AbnormalReason")
private String abnormalReason;
/**
*
*/
@ApiModelProperty(value = "司机")
@Alias("Driver")
private String driver;
/**
*
*/
@ApiModelProperty(value = "医生")
@Alias("Doctor")
private String doctor;
/**
*
*/
@ApiModelProperty(value = "担架工")
@Alias("Stretcher")
private String stretcher;
/**
*
*/
@ApiModelProperty(value = "担架工")
@Alias("Nurse")
private String nurse;
/**
*
*/
@ApiModelProperty(value = "出车分站")
@Alias("StationName")
private String stationName;
/**
*
*/
@ApiModelProperty(value = "受理序号")
@Alias("AcceptOrder")
private String acceptOrder;
/**
*
*/
@ApiModelProperty(value = "受理编码")
@Alias("AcceptId")
private String acceptId;
/**
*
*/
@ApiModelProperty(value = "事件编码")
@Alias("EventId")
private String eventId;
}

@ -0,0 +1,100 @@
package com.yingji.entity.dto.response;
import cn.hutool.core.annotation.Alias;
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;
/**
* (Event)
*
* @author wu
* @since 2024-05-10 17:10:32
*/
@Data
@ApiModel("事故分页查询请求类")
public class EventPageRequest implements Serializable {
private static final long serialVersionUID = -5290914853773569936L;
/**
*
*/
@ApiModelProperty(value = "事件标题")
private String eventName;
/**
*
*/
@ApiModelProperty(value = "事件类型")
private String eventType;
/**
*
*/
@ApiModelProperty(value = "事件等级")
private String eventLevel;
/**
*
*/
@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 startTime;
/**
*
*/
@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 endTime;
/**
* ()
*/
@ApiModelProperty(value = "事发地区(行政区划)")
private String eventArea;
/**
*
*/
@ApiModelProperty(value = "详细位置")
private String eventAddress;
/**
* /
*/
@ApiModelProperty(value = "出动次数(出动救护车次/辆数量)")
@Alias("SendAmbCount")
private Integer sendAmbCount;
/**
*
*/
@ApiModelProperty(value = "事件描述")
@Alias("EventDescribe")
private String eventDescribe;
/**
*
*/
@ApiModelProperty(value = "报送单位")
@Alias("AlarmUnit")
private String alarmUnit;
/**
*
*/
@ApiModelProperty(value = "报送单位联系人")
@Alias("AlarmUnitContactor")
private String alarmUnitContactor;
/**
*
*/
@ApiModelProperty(value = "报送单位联系电话")
@Alias("AlarmUnitTelephone")
private String alarmUnitTelephone;
}

@ -0,0 +1,144 @@
package com.yingji.entity.dto.response;
import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yingji.entity.AcceptEvents;
import com.yingji.entity.Amb;
import com.yingji.entity.Task;
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.List;
/**
* @author wu
* @since 2024/4/30 4:24
*/
@Data
@ApiModel(value = "响应类")
public class EventsFindResponse implements Serializable {
private static final long serialVersionUID = -3894493286879970663L;
/**
*
*/
@ApiModelProperty(value = "受理调度信息")
private List<AcceptEvents> acceptEvents;
/**
*
*/
@ApiModelProperty(value = "任务车辆")
private List<Amb> ambs;
/**
*
*/
@ApiModelProperty(value = "任务信息")
private List<Task> tasks;
/**
*
*/
@ApiModelProperty(value = "事件编码主键")
@Alias("EventId")
private String eventId;
/**
*
*/
@ApiModelProperty(value = "事件标题")
@Alias("EventName")
private String eventName;
/**
*
*/
@ApiModelProperty(value = "事件类型")
@Alias("EventType")
private String eventType;
/**
*
*/
@ApiModelProperty(value = "事件等级")
@Alias("EventLevel")
private String eventLevel;
/**
*
*/
@ApiModelProperty(value = "事发时间")
@Alias("EventDateTime")
@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 eventDateTime;
/**
* ()
*/
@ApiModelProperty(value = "事发地区(行政区划)")
@Alias("EventArea")
private String eventArea;
/**
*
*/
@ApiModelProperty(value = "详细位置")
@Alias("EventAddress")
private String eventAddress;
/**
*
*/
@ApiModelProperty(value = "经度")
@Alias("EventLongitude")
private String eventLongitude;
/**
*
*/
@ApiModelProperty(value = "维度")
@Alias("EventLatitude")
private String eventLatitude;
/**
* /
*/
@ApiModelProperty(value = "出动次数(出动救护车次/辆数量)")
@Alias("SendAmbCount")
private Integer sendAmbCount;
/**
*
*/
@ApiModelProperty(value = "事件描述")
@Alias("EventDescribe")
private String eventDescribe;
/**
*
*/
@ApiModelProperty(value = "报送单位")
@Alias("AlarmUnit")
private String alarmUnit;
/**
*
*/
@ApiModelProperty(value = "报送单位联系人")
@Alias("AlarmUnitContactor")
private String alarmUnitContactor;
/**
*
*/
@ApiModelProperty(value = "报送单位联系电话")
@Alias("AlarmUnitTelephone")
private String alarmUnitTelephone;
/**
*
*/
@ApiModelProperty(value = "附件资料")
@Alias("AttachmentInfo")
private String attachmentInfo;
/**
*
*/
@ApiModelProperty(value = "备注")
@Alias("Remark")
private String remark;
}

@ -0,0 +1,154 @@
package com.yingji.entity.dto.response;
import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yingji.entity.AcceptEvents;
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.List;
/**
* @author wu
* @since 2024/4/30 4:24
*/
@Data
public class EventsResponse implements Serializable {
private static final long serialVersionUID = -3894493286879970663L;
/**
*
*/
@Alias("AcceptEvents")
@ApiModelProperty(value = "受理调度信息")
private List<AcceptEvents> acceptEvents;
@Alias("TaskInfos")
private List<TaskInfos> taskInfos;
/**
*
*/
@Alias("EventName")
@ApiModelProperty(value = "事件标题")
private String eventName;
/**
*
*/
@Alias("EventType")
@ApiModelProperty(value = "事件类型")
private String eventType;
/**
*
*/
@Alias("EventLevel")
@ApiModelProperty(value = "事件等级")
private String eventLevel;
/**
*
*/
@Alias("EventDateTime")
@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 eventDateTime;
/**
*
*/
@Alias("EventDescribe")
@ApiModelProperty(value = "事件描述")
private String eventDescribe;
/**
* ()
*/
@Alias("EventArea")
@ApiModelProperty(value = "事发地区(行政区划)")
private String eventArea;
/**
*
*/
@Alias("EventAddress")
@ApiModelProperty(value = "详细位置")
private String eventAddress;
/**
*
*/
@Alias("EventLongitude")
@ApiModelProperty(value = "经度")
private String eventLongitude;
/**
*
*/
@Alias("EventLatitude")
@ApiModelProperty(value = "维度")
private Double eventLatitude;
/**
*
*/
@Alias("AlarmUnit")
@ApiModelProperty(value = "报送单位")
private String alarmUnit;
/**
*
*/
@Alias("AlarmUnitContactor")
@ApiModelProperty(value = "报送单位联系人")
private String alarmUnitContactor;
/**
*
*/
@Alias("AlarmUnitTelephone")
@ApiModelProperty(value = "报送单位联系电话")
private String alarmUnitTelephone;
/**
* /
*/
@Alias("SendAmbCount")
@ApiModelProperty(value = "出动次数(出动救护车次/辆数量)")
private Integer sendAmbCount;
/**
*
*/
@Alias("AttachmentInfo")
@ApiModelProperty(value = "附件资料")
private String attachmentInfo;
/**
*
*/
@Alias("Remark")
@ApiModelProperty(value = "备注")
private String remark;
/**
*
*/
@Alias("EventId")
@ApiModelProperty(value = "事件编码 主键")
private String eventId;
/**
*
*/
@ApiModelProperty(value = "事故类型编码")
@Alias("AccidentType")
private String accidentType;
}

@ -0,0 +1,24 @@
package com.yingji.entity.dto.response;
import cn.hutool.core.annotation.Alias;
import com.yingji.entity.Amb;
import com.yingji.entity.Task;
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;
@Alias("Amb")
private Amb amb;
@Alias("Task")
private Task task;
}

@ -0,0 +1,15 @@
package com.yingji.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yingji.entity.AcceptEvents;
/**
* (Accept)访
*
* @author wu
* @since 2024-05-10 17:10:32
*/
public interface AcceptMapper extends BaseMapper<AcceptEvents> {
}

@ -0,0 +1,15 @@
package com.yingji.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yingji.entity.Amb;
/**
* (Amb)访
*
* @author wu
* @since 2024-05-10 17:10:32
*/
public interface AmbMapper extends BaseMapper<Amb> {
}

@ -0,0 +1,15 @@
package com.yingji.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yingji.entity.EventClass;
/**
* (AcceptClass)访
*
* @author wu
* @since 2024-06-14 14:32:49
*/
public interface EventClassMapper extends BaseMapper<EventClass> {
}

@ -0,0 +1,15 @@
package com.yingji.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yingji.entity.Event;
/**
* (Event)访
*
* @author wu
* @since 2024-05-10 17:10:32
*/
public interface EventMapper extends BaseMapper<Event> {
}

@ -0,0 +1,32 @@
package com.yingji.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yingji.entity.Fire;
import java.time.LocalDateTime;
import java.util.List;
/**
* 119访
*
* @author wu
* @since 2024-05-06 09:15:01
*/
public interface FireMapper extends BaseMapper<Fire> {
/**
*
*
* @param list
*/
void saveAll(List<Fire> list);
/**
*
*
* @return
*/
LocalDateTime findNewTime();
}

@ -0,0 +1,15 @@
package com.yingji.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yingji.entity.Task;
/**
* (Task)访
*
* @author wu
* @since 2024-05-10 17:10:33
*/
public interface TaskMapper extends BaseMapper<Task> {
}

@ -0,0 +1,84 @@
package com.yingji.quartz;
import cn.hutool.core.util.StrUtil;
import com.yingji.entity.QuartzLog;
import com.yingji.service.AccidentService;
import com.yingji.service.QuartzLogService;
import com.yingji.utils.SmsUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;
import java.time.Duration;
import java.time.LocalDateTime;
/**
* 120
*
* @author wu
* @since 2024/5/10 10:05
*/
@Configuration
public class AccidentQuartz {
public static final Logger log = LoggerFactory.getLogger(AccidentQuartz.class);
@Resource
private AccidentService accidentService;
@Resource
private QuartzLogService quartzLogService;
@Resource
private SmsUtil smsUtil;
/**
* 9
*/
@Async
@Scheduled(cron = "0 0 9 * * ? ")
public void sendMes() {
// 获取数据库中最新的创建时间
LocalDateTime newTime = accidentService.findNewTime();
// 获取当前时间
LocalDateTime currentTime = LocalDateTime.now();
// 计算两者之间的持续时间
Duration duration = Duration.between(newTime, currentTime);
// 判断时间差是否大于24小时
if (duration.toHours() > 24) {
// 调用短信接口
smsUtil.sendSms("120原始接口超过24小时无数据", null, null);
}
}
@Async
@Scheduled(cron = "0 */1 * * * ? ")
public void savaData() {
QuartzLog quartzLog = new QuartzLog();
quartzLog.setInterfaceName(3);
quartzLog.setCreateTime(LocalDateTime.now());
try {
String accessToken = accidentService.getAuthorizeToken();
if (StrUtil.isNotEmpty(accessToken)) {
accidentService.getAccidentUrl(accessToken);
quartzLog.setStatus(1);
log.info("=================120定时任务结束===============");
} else {
quartzLog.setStatus(2);
// 调用短信接口
smsUtil.sendSms("120原始接口获取token失败", null, "120ErrorMes");
log.info("=================120定时任务获取token失败===============");
}
} catch (Exception e) {
// 调用短信接口
smsUtil.sendSms("120原始接口调用失败", null, "120ErrorMes");
e.printStackTrace();
quartzLog.setStatus(2);
} finally {
quartzLogService.save(quartzLog);
}
}
}

@ -0,0 +1,123 @@
package com.yingji.quartz;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.yingji.entity.Fire;
import com.yingji.entity.QuartzLog;
import com.yingji.service.FireService;
import com.yingji.service.QuartzLogService;
import com.yingji.utils.SmsUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 119
*
* @author wu
* @since 2024/05/06 10:18
*/
@Configuration
public class FireQuartz {
public static final Logger log = LoggerFactory.getLogger(FireQuartz.class);
@Resource
private FireService fireService;
@Resource
private QuartzLogService quartzLogService;
@Resource
private SmsUtil smsUtil;
/**
* 9
*/
@Async
@Scheduled(cron = "0 0 9 * * ? ")
public void sendMes() {
// 获取数据库中最新的创建时间
LocalDateTime newTime = fireService.findNewTime();
// 获取当前时间
LocalDateTime currentTime = LocalDateTime.now();
// 计算两者之间的持续时间
Duration duration = Duration.between(newTime, currentTime);
// 判断时间差是否大于12小时
if (duration.toHours() > 12) {
// 调用短信接口
smsUtil.sendSms("119原始接口超过12小时无数据", null,null);
}
}
/**
*
*/
@Async
@Scheduled(cron = "0 */5 * * * ? ")
public void savaData() {
log.info("119接口开始" + LocalDateTime.now());
QuartzLog quartzLog = new QuartzLog();
quartzLog.setInterfaceName(2);
quartzLog.setCreateTime(LocalDateTime.now());
try {
// 获取token
String token = fireService.getToken();
if (StrUtil.isNotEmpty(token)) {
// 根据id查询数据保存
List<Fire> list = fireService.findDataList(token);
// 110算法接口
if (CollectionUtil.isNotEmpty(list)) {
fireService.saveAll(list);
try {
for (Fire fire : list) {
link119Algorithm(fire.getId());
}
} catch (Exception e) {
// 调用短信接口
smsUtil.sendSms("119算法事件接口异常", null,"119sfError");
}
}
quartzLog.setStatus(1);
log.info("119接口结束" + LocalDateTime.now());
} else {
quartzLog.setStatus(2);
// 调用短信接口
smsUtil.sendSms("119原始接口获取token失败", null,null);
log.error("============119算法接口获取token失败119接口结束=============");
}
} catch (Exception e) {
quartzLog.setStatus(2);
// 调用短信接口
// smsUtil.sendSms("119原始接口调用失败", null,"119ErrorMes");
smsUtil.sendSms("119原始接口调用失败", null,null);
} finally {
quartzLogService.save(quartzLog);
}
}
/**
* 120
*/
public void link119Algorithm(String id) {
log.info("============119和110对比算法接口开始" + LocalDateTime.now() + "=============");
Map<String, String> map = new HashMap<>();
map.put("id", id);
String body = JSONUtil.toJsonStr(map);
String response = HttpRequest.post("http://localhost:9002/link119_algorithm").body(body).execute().body();
log.info("++++++119和110对比算法响应数据++++++" + response);
log.info("============119和110对比算法接口结束" + LocalDateTime.now() + "=============");
}
}

@ -0,0 +1,15 @@
package com.yingji.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yingji.entity.AcceptEvents;
/**
* (Accept)
*
* @author wu
* @since 2024-05-10 17:10:32
*/
public interface AcceptService extends IService<AcceptEvents> {
}

@ -0,0 +1,37 @@
package com.yingji.service;
import java.time.LocalDateTime;
/**
* 120
*
* @author wu
* @since 2024/5/10 10:38
*/
public interface AccidentService {
/**
* token
*/
String getAuthorizeValidate();
/**
* token
*/
String getAuthorizeToken();
/**
*
*
* @param accessToken token
*/
void getAccidentUrl(String accessToken);
/**
*
*
* @return
*/
LocalDateTime findNewTime();
}

@ -0,0 +1,15 @@
package com.yingji.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yingji.entity.Amb;
/**
* (Amb)
*
* @author wu
* @since 2024-05-10 17:10:32
*/
public interface AmbService extends IService<Amb> {
}

@ -0,0 +1,23 @@
package com.yingji.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yingji.entity.EventClass;
/**
* (AcceptClass)
*
* @author wu
* @since 2024-06-14 14:32:49
*/
public interface EventClassService extends IService<EventClass> {
/**
*
*
* @param accidentType
* @return
*/
EventClass findByAccidentType(String accidentType);
}

@ -0,0 +1,44 @@
package com.yingji.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yingji.entity.Event;
import com.yingji.entity.dto.response.EventPageRequest;
import com.yingji.entity.dto.response.EventsFindResponse;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* (Event)
*
* @author wu
* @since 2024-05-10 17:10:33
*/
public interface EventService extends IService<Event> {
/**
*
*
* @param page
* @param event
* @return
*/
Page<Event> page(Page<Event> page, EventPageRequest event);
/**
* id
*
* @param id id
* @return
*/
EventsFindResponse findById(Serializable id);
/**
*
*
* @return
*/
LocalDateTime findNewTime();
}

@ -0,0 +1,48 @@
package com.yingji.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yingji.entity.Fire;
import java.time.LocalDateTime;
import java.util.List;
/**
* 119
*
* @author wu
* @since 2024-05-06 09:15:01
*/
public interface FireService extends IService<Fire> {
/**
*
*
* @param token token
* @return List
*/
List<Fire> findDataList(String token);
/**
* 110token
*
* @return token
*/
String getToken();
/**
*
*
* @param list
*/
void saveAll(List<Fire> list);
/**
*
*
* @return
*/
LocalDateTime findNewTime();
}

@ -0,0 +1,15 @@
package com.yingji.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yingji.entity.Task;
/**
* (Task)
*
* @author wu
* @since 2024-05-10 17:10:33
*/
public interface TaskService extends IService<Task> {
}

@ -0,0 +1,19 @@
package com.yingji.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yingji.entity.AcceptEvents;
import com.yingji.mapper.AcceptMapper;
import com.yingji.service.AcceptService;
import org.springframework.stereotype.Service;
/**
* (Accept)
*
* @author wu
* @since 2024-05-10 17:10:32
*/
@Service("acceptService")
public class AcceptServiceImpl extends ServiceImpl<AcceptMapper, AcceptEvents> implements AcceptService {
}

@ -0,0 +1,282 @@
package com.yingji.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpException;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yingji.entity.AcceptEvents;
import com.yingji.entity.Amb;
import com.yingji.entity.Event;
import com.yingji.entity.EventClass;
import com.yingji.entity.Task;
import com.yingji.entity.dto.response.EventsResponse;
import com.yingji.entity.dto.response.TaskInfos;
import com.yingji.redis.RedisCache;
import com.yingji.service.AcceptService;
import com.yingji.service.AccidentService;
import com.yingji.service.AmbService;
import com.yingji.service.EventClassService;
import com.yingji.service.EventService;
import com.yingji.service.TaskService;
import com.yingji.utils.SmsUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* @author wu
* @since 2024/5/10 10:39
*/
@Service("accidentService")
public class AccidentServiceImpl implements AccidentService {
public static final Logger log = LoggerFactory.getLogger(AccidentServiceImpl.class);
@Value("${getAuthorizeValidateUrl}")
private String getAuthorizeValidateUrl;
@Value("${getAuthorizeTokenUrl}")
private String getAuthorizeTokenUrl;
@Value("${getAccidentUrl}")
private String getAccidentUrl;
@Resource
private RedisCache redisCache;
@Resource
private EventService eventService;
@Resource
private TaskService taskService;
@Resource
private AmbService ambService;
@Resource
private AcceptService acceptService;
@Resource
private EventClassService eventClassService;
@Resource
private SmsUtil smsUtil;
// public static void main(String[] args) {
//
// JSONObject json = JSONObject.parse(s);
// Object data = json.get("data");
// String recordsStr = JSONUtil.toJsonStr(data);
// List<EventsResponse> list = JSONUtil.toList(recordsStr, EventsResponse.class);
// System.out.println(list);
// }
/**
* token
*/
@Override
public String getAuthorizeValidate() {
String validate = redisCache.getCacheObject("validate");
if (StrUtil.isEmpty(validate)) {
// 获取当前的时间
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
String accessDateTime = localDateTime.format(formatter);
Map<String, Object> map = new HashMap<>();
map.put("AKey", "admin");
map.put("ASecret", "anchor120.");
map.put("AccessDateTime", accessDateTime);
String parse = JSONUtil.toJsonStr(map);
String body = HttpRequest.post(getAuthorizeValidateUrl).body(parse).execute().body();
JSONObject json = JSONObject.parse(body);
validate = (String) json.get("data");
if (StrUtil.isNotEmpty(validate)) {
redisCache.setCacheObject("validate", validate, 40, TimeUnit.MINUTES);
}
}
log.info("=======================================");
log.info("120token校验为:" + validate);
return validate;
}
/**
* token
*/
@Override
public String getAuthorizeToken() {
String accessToken;
accessToken = redisCache.getCacheObject("accessToken");
if (StrUtil.isEmpty(accessToken)) {
// 获取授权码
String validate = getAuthorizeValidate();
Map<String, Object> map = new HashMap<>();
map.put("Data", validate);
String parse = JSONUtil.toJsonStr(map);
String body = HttpRequest.post(getAuthorizeTokenUrl).body(parse).execute().body();
JSONObject json = JSONObject.parse(body);
Object data = json.get("data");
if (BeanUtil.isNotEmpty(data)) {
String recordsStr = JSONUtil.toJsonStr(data);
JSONObject res = JSONObject.parse(recordsStr);
accessToken = (String) res.get("token");
if (StrUtil.isNotEmpty(accessToken)) {
redisCache.setCacheObject("accessToken", accessToken, 40, TimeUnit.MINUTES);
}
}
log.info("=======================================");
log.info("120token为:" + accessToken);
}
return accessToken;
}
/**
*
*
* @param accessToken token
*/
@Override
public void getAccidentUrl(String accessToken) {
// 获取今天的日期
LocalDate today = LocalDate.now();
// 获取明天的日期
LocalDate tomorrow = today.plusDays(1);
// 定义日期格式化对象
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 格式化日期为字符串
String todayStr = today.format(formatter) + " 00:00:00";
String tomorrowStr = tomorrow.format(formatter) + " 00:00:00";
Map<String, Object> map = new HashMap<>();
map.put("StartDateTime", todayStr);
map.put("EndDateTime", tomorrowStr);
String parse = JSONUtil.toJsonStr(map);
String body = HttpRequest.post(getAccidentUrl).header("Authorization", "Bearer " + accessToken).body(parse).execute().body();
log.error("120接收到的数据为=======================" + body);
if (body.contains("Time-out")) {
return ;
}
JSONObject json = JSONObject.parse(body);
Object data = json.get("data");
if (BeanUtil.isNotEmpty(data)) {
saveResponseData(data);
} else {
redisCache.deleteObject("validate");
redisCache.deleteObject("accessToken");
}
}
/**
*
*
* @param data
*/
private void saveResponseData(Object data) {
List<EventsResponse> list;
String recordsStr = JSONUtil.toJsonStr(data);
if (StrUtil.isNotEmpty(recordsStr)) {
// json数据转换成实体类
list = JSONUtil.toList(recordsStr, EventsResponse.class);
if (CollectionUtil.isNotEmpty(list)) {
// 获取事故数据保存
List<Event> events = BeanUtil.copyToList(list, Event.class);
for (Event event : events) {
// 新增或编辑事故(Event) 表
QueryWrapper<Event> wrapper = new QueryWrapper<>();
wrapper.eq("event_id", event.getEventId());
Event one = eventService.getOne(wrapper);
if (BeanUtil.isEmpty(one)) {
event.setCreateTime(LocalDateTime.now());
event.setUpdateTime(LocalDateTime.now());
if (StrUtil.isNotEmpty(event.getAccidentType())) {
EventClass eventClass = eventClassService.findByAccidentType(event.getAccidentType());
if (BeanUtil.isNotEmpty(eventClass)) {
event.setAiClass(eventClass.getAiClass());
}
}
eventService.save(event);
// 调用120和110事件对比接口
linkAlgorithm(event.getEventId());
log.info("======调用120和110事件对比接口======");
} else {
event.setUpdateTime(LocalDateTime.now());
eventService.updateById(event);
}
}
for (EventsResponse res : list) {
List<AcceptEvents> acceptEvents = res.getAcceptEvents();
// 保存或编辑受理调度信息
for (AcceptEvents acceptEvent : acceptEvents) {
QueryWrapper<AcceptEvents> wrapper = new QueryWrapper<>();
wrapper.eq("accept_id", acceptEvent.getAcceptId());
AcceptEvents one = acceptService.getOne(wrapper);
if (BeanUtil.isEmpty(one)) {
acceptService.save(acceptEvent);
} else {
acceptService.updateById(acceptEvent);
}
}
List<TaskInfos> taskInfos = res.getTaskInfos();
for (TaskInfos taskInfo : taskInfos) {
// 保存或编辑任务信息(Task) 表实体类
Task task = taskInfo.getTask();
if (BeanUtil.isNotEmpty(task)) {
QueryWrapper<Task> wrapper = new QueryWrapper<>();
wrapper.eq("task_id", task.getTaskId());
Task one = taskService.getOne(wrapper);
if (BeanUtil.isEmpty(one)) {
taskService.save(task);
Amb amb = taskInfo.getAmb();
if (BeanUtil.isNotEmpty(amb)) {
amb.setTaskId(task.getTaskId());
ambService.save(amb);
}
} else {
taskService.updateById(task);
}
}
}
}
}
}
}
/**
* 120
*/
public void linkAlgorithm(String eventId) {
try {
log.info("============120和110对比算法接口开始" + LocalDateTime.now() + "=============");
Map<String, String> map = new HashMap<>();
map.put("event_id", eventId);
String body = JSONUtil.toJsonStr(map);
String response = HttpRequest.post("http://localhost:9002/link_algorithm").body(body).execute().body();
log.info("++++++120和110对比算法响应数据++++++" + response);
log.info("============120和110对比算法接口结束" + LocalDateTime.now() + "=============");
} catch (HttpException e) {
// 调用短信接口
smsUtil.sendSms("120算法事件接口异常", null, "120sfError");
}
}
/**
*
*
* @return
*/
@Override
public LocalDateTime findNewTime() {
return eventService.findNewTime();
}
}

@ -32,16 +32,16 @@ import java.util.List;
public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements AlarmService { public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements AlarmService {
public static final Logger log = LoggerFactory.getLogger(AlarmServiceImpl.class); public static final Logger log = LoggerFactory.getLogger(AlarmServiceImpl.class);
@Value("${clientId}") @Value("${110clientId}")
private String clientId; private String clientId;
@Value("${clientSecret}") @Value("${110clientSecret}")
private String clientSecret; private String clientSecret;
@Value("${getToken}") @Value("${110getToken}")
private String getToken; private String getToken;
@Value("${specificWarn}") @Value("${110specificWarn}")
private String specificWarn; private String specificWarn;
/** /**

@ -0,0 +1,19 @@
package com.yingji.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yingji.entity.Amb;
import com.yingji.mapper.AmbMapper;
import com.yingji.service.AmbService;
import org.springframework.stereotype.Service;
/**
* (Amb)
*
* @author wu
* @since 2024-05-10 17:10:32
*/
@Service("ambService")
public class AmbServiceImpl extends ServiceImpl<AmbMapper, Amb> implements AmbService {
}

@ -0,0 +1,32 @@
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.EventClass;
import com.yingji.mapper.EventClassMapper;
import com.yingji.service.EventClassService;
import org.springframework.stereotype.Service;
/**
* (AcceptClass)
*
* @author wu
* @since 2024-06-14 14:32:49
*/
@Service("acceptClassService")
public class EventClassServiceImpl extends ServiceImpl<EventClassMapper, EventClass> implements EventClassService {
/**
*
*
* @param accidentType
* @return
*/
@Override
public EventClass findByAccidentType(String accidentType) {
QueryWrapper<EventClass> wrapper = new QueryWrapper<>();
wrapper.eq("accept_type", accidentType);
return baseMapper.selectOne(wrapper);
}
}

@ -0,0 +1,122 @@
package com.yingji.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yingji.entity.AcceptEvents;
import com.yingji.entity.Amb;
import com.yingji.entity.Event;
import com.yingji.entity.Task;
import com.yingji.entity.dto.response.EventPageRequest;
import com.yingji.entity.dto.response.EventsFindResponse;
import com.yingji.exception.ServiceException;
import com.yingji.mapper.EventMapper;
import com.yingji.service.AcceptService;
import com.yingji.service.AmbService;
import com.yingji.service.EventService;
import com.yingji.service.TaskService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
/**
* (Event)
*
* @author wu
* @since 2024-05-10 17:10:33
*/
@Service("eventService")
public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements EventService {
@Resource
private TaskService taskService;
@Resource
private AmbService ambService;
@Resource
private AcceptService acceptService;
/**
*
*
* @param page
* @param event
* @return
*/
@Override
public Page<Event> page(Page<Event> page, EventPageRequest event) {
QueryWrapper<Event> wrapper = new QueryWrapper<>();
wrapper.like(StrUtil.isNotEmpty(event.getEventName()), "event_name", event.getEventName())
.eq(StrUtil.isNotEmpty(event.getEventType()), "event_type", event.getEventType())
.eq(StrUtil.isNotEmpty(event.getEventLevel()), "event_level", event.getEventLevel())
.ge(event.getStartTime() != null, "event_date_time", event.getStartTime())
.le(event.getEndTime() != null, "event_date_time", event.getEndTime())
.like(StrUtil.isNotEmpty(event.getEventArea()), "event_area", event.getEventArea())
.like(StrUtil.isNotEmpty(event.getEventAddress()), "event_address", event.getEventAddress())
.eq(event.getSendAmbCount() != null, "send_amb_count", event.getSendAmbCount())
.like(StrUtil.isNotEmpty(event.getEventDescribe()), "event_describe", event.getEventDescribe())
.like(StrUtil.isNotEmpty(event.getAlarmUnit()), "alarm_unit", event.getAlarmUnit())
.like(StrUtil.isNotEmpty(event.getAlarmUnitContactor()), "alarm_unit_contactor", event.getAlarmUnitContactor())
.like(StrUtil.isNotEmpty(event.getAlarmUnitTelephone()), "alarm_unit_telephone", event.getAlarmUnitTelephone());
return this.page(page, wrapper);
}
/**
* id
*
* @param id id
* @return
*/
@Override
public EventsFindResponse findById(Serializable id) {
Event event = this.getById(id);
if (BeanUtil.isEmpty(event)) {
throw new ServiceException("所选数据不存在");
}
EventsFindResponse res = BeanUtil.copyProperties(event, EventsFindResponse.class);
// 查询任务信息
QueryWrapper<Task> taskWrapper = new QueryWrapper<>();
taskWrapper.eq("event_id", res.getEventId());
List<Task> taskList = taskService.list(taskWrapper);
// 受理调度信息
QueryWrapper<AcceptEvents> acceptWrapper = new QueryWrapper<>();
acceptWrapper.eq("event_id", res.getEventId());
List<AcceptEvents> acceptList = acceptService.list(acceptWrapper);
// 任务车辆
List<String> taskIdList = taskList.stream().map(Task::getTaskId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(taskIdList)) {
QueryWrapper<Amb> ambWrapper = new QueryWrapper<>();
ambWrapper.in("task_id", taskIdList);
List<Amb> ambList = ambService.list(ambWrapper);
res.setAmbs(ambList);
}
res.setAcceptEvents(acceptList);
res.setTasks(taskList);
return res;
}
/**
*
*
* @return
*/
@Override
public LocalDateTime findNewTime() {
QueryWrapper<Event> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("create_time")
.last("LIMIT 1");
Event event = this.getOne(wrapper);
return event.getCreateTime();
}
}

@ -0,0 +1,152 @@
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.HttpException;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yingji.entity.Fire;
import com.yingji.mapper.FireMapper;
import com.yingji.service.FireService;
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.util.List;
import java.util.stream.Collectors;
/**
* 119
*
* @author wu
* @since 2024-05-06 09:15:01
*/
@Service("fireService")
public class FireServiceImpl extends ServiceImpl<FireMapper, Fire> implements FireService {
public static final Logger log = LoggerFactory.getLogger(FireServiceImpl.class);
@Value("${119clientId}")
private String clientId;
@Value("${119clientSecret}")
private String clientSecret;
@Value("${119getToken}")
private String getToken;
@Value("${119specificWarn}")
private String specificWarn;
/**
* base64
*
* @return base64
*/
public String findBase() {
String str = clientId + ":" + clientSecret;
return Base64.encode(str);
}
/**
*
*
* @param token token
* @return List
*/
@Override
public List<Fire> findDataList(String token) {
List<Fire> records = null;
// 获取id
String body = HttpRequest.post(specificWarn)
.header("Authorization", "Basic " + token)
.header("Content-Type", "application/json")
.execute().body();
log.info("===============================");
log.info("119body数据为:" + body);
if (body.contains("Time-out")) {
return null;
}
try {
JSONObject json = JSONObject.parse(body);
Object response = json.get("response");
if (BeanUtil.isNotEmpty(response)) {
String recordsStr = JSONUtil.toJsonStr(response);
if (StrUtil.isEmpty(recordsStr)) {
return null;
}
records = JSONUtil.toList(recordsStr, Fire.class);
if (records == null) {
return null;
}
return records.stream()
.filter(district -> "苏州市".equals(district.getXzqhmc()))
.peek(district -> district.setCreateTime(LocalDateTime.now())) // 使用peek设置时间戳
.collect(Collectors.toList());
}
} catch (Exception e) {
log.info("json解析错误");
}
return records;
}
/**
* 119token
*
* @return token
*/
@Override
public String getToken() {
String accessToken = null;
String body = null;
try {
body = HttpRequest.get(getToken)
.header("Authorization", "Basic QkZTaFQzL1d3UGhaSlFkTDhlNEZkblExMWgwUU9lS3FCZG4reGVzQ1NKR2xESEtQazVmeG5tbkxrMW9ua20zWXpkZmpFMGdMR0VaN0g3dmZMczIxc0dNPTpHdGJnUmZOSW1Yam1CcVcwbnB4VWlHaS9zMG1iNVpkdlhBTnFVQ2dtSW00PQ==")
.header("Content-Type", "application/json")
.form("grant_type", "client_credentials").execute().body();
} catch (HttpException e) {
log.error("获取token接口响应超时");
}
JSONObject json = JSONObject.parse(body);
if (json == null) {
return accessToken;
}
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("119token为:" + accessToken);
return accessToken;
}
/**
*
*
* @param list
*/
@Override
public void saveAll(List<Fire> list) {
baseMapper.saveAll(list);
}
/**
*
*
* @return
*/
@Override
public LocalDateTime findNewTime() {
return baseMapper.findNewTime();
}
}

@ -0,0 +1,19 @@
package com.yingji.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yingji.entity.Task;
import com.yingji.mapper.TaskMapper;
import com.yingji.service.TaskService;
import org.springframework.stereotype.Service;
/**
* (Task)
*
* @author wu
* @since 2024-05-10 17:10:33
*/
@Service("taskService")
public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements TaskService {
}

@ -34,14 +34,35 @@ knife4j:
# group-name: 应急算法 # group-name: 应急算法
# 110获取token # 110获取token
getToken: http://2.46.4.198:8008/token 110getToken: http://2.46.4.198:8008/token
# 110获取数据 # 110获取数据
specificWarn: http://2.46.4.198:8008/rs/k4r3h/ApiShareService/sz/share/specificWarn 110specificWarn: http://2.46.4.198:8008/rs/k4r3h/ApiShareService/sz/share/specificWarn
# 110clientId # 110clientId
clientId: BNjP9S8p2EJZyt1UF+D6kCsK6ZVapyKqiGzarEdsZ3QmIWoVdB7YkrX2GBAmCDO16tQ/ak86pZgP5ZS3s4EGdco= 110clientId: BNjP9S8p2EJZyt1UF+D6kCsK6ZVapyKqiGzarEdsZ3QmIWoVdB7YkrX2GBAmCDO16tQ/ak86pZgP5ZS3s4EGdco=
# 110clientSecret # 110clientSecret
clientSecret: AM4oMOsJj0ULAUOOXlz5xHjIF4kp9W63ajZrXxTGLHEn 110clientSecret: AM4oMOsJj0ULAUOOXlz5xHjIF4kp9W63ajZrXxTGLHEn
# 120获取token授权码
getAuthorizeValidateUrl: http://192.180.22.214:7015/api/Authorize/validate/v1
# 120获取token
getAuthorizeTokenUrl: http://192.180.22.214:7015/api/Authorize/token/get/v1
# 120获取数据
getAccidentUrl: http://192.180.22.214:7015/api/Event/accident/list/get/v2
# 119获取token
119getToken: http://2.46.4.198:8008/token
# 119获取数据
119specificWarn: http://2.46.4.198:8008/rs/8uu6d/DataAnalysisService/st/data/fire_alarm
# 119clientId
119clientId: BFShT3/WwPhZJQdL8e4FdnQ11h0QOeKqBdn+xesCSJGlDHKPk5fxnmnLk1onkm3YzdfjE0gLGEZ7H7vfLs21sGM=
# 119clientSecret
119clientSecret: GtbgRfNImXjmBqW0npxUiGi/s0mb5ZdvXANqUCgmIm4=

@ -0,0 +1,28 @@
<?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.FireMapper">
<insert id="saveAll">
INSERT IGNORE INTO `fire`(
id, xzqh, ajbh, ajms, gdsj, jjyxm, sjc, wd, jd, bcxx, jssj, afdz, cdsj, lafsdm, topic, xdsj, lasj, xzqhmc,
ddxcsj, create_time
) VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id}, #{item.xzqh}, #{item.ajbh}, #{item.ajms}, #{item.gdsj}, #{item.jjyxm}, #{item.sjc}, #{item.wd},
#{item.jd}, #{item.bcxx}, #{item.jssj}, #{item.afdz},
#{item.cdsj}, #{item.lafsdm}, #{item.topic}, #{item.xdsj}, #{item.lasj}, #{item.xzqhmc}, #{item.ddxcsj},
#{item.createTime})
</foreach>
</insert>
<select id="findNewTime" resultType="java.time.LocalDateTime">
select create_time
from fire
order by create_time desc
limit 1
</select>
</mapper>

@ -2,6 +2,7 @@ package com.yingji.controller;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yingji.base.controller.BaseController; import com.yingji.base.controller.BaseController;
import com.yingji.base.domain.AjaxResult; import com.yingji.base.domain.AjaxResult;
@ -11,6 +12,7 @@ import com.yingji.entity.dto.response.EventsFindResponse;
import com.yingji.service.EventService; import com.yingji.service.EventService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -36,6 +38,7 @@ import java.util.List;
@RequestMapping("algorithms/event") @RequestMapping("algorithms/event")
@Api(tags = "事故") @Api(tags = "事故")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Slf4j
public class EventController extends BaseController { public class EventController extends BaseController {
/** /**
@ -54,10 +57,16 @@ public class EventController extends BaseController {
@GetMapping @GetMapping
@ApiOperation(value = "分页条件查询事故", response = Event.class) @ApiOperation(value = "分页条件查询事故", response = Event.class)
public AjaxResult page(Page<Event> page, EventPageRequest event) { public AjaxResult page(Page<Event> page, EventPageRequest event) {
log.error("==================120入参开始=====================");
log.error("==================120每页显示条数: " + page.getSize() + "页数: " + page.getCurrent() + "=====================");
log.error(JSONUtil.toJsonStr(event));
log.error("==================120入参结束=====================");
StpUtil.checkLogin(); StpUtil.checkLogin();
if (page.getSize() > 1000) { if (page.getSize() > 1000) {
page.setSize(1000); page.setSize(1000);
} }
log.error("==================120响应开始=====================");
log.error("==================120响应结束=====================");
return success(eventService.page(page, event)); return success(eventService.page(page, event));
} }

@ -3,6 +3,7 @@ package com.yingji.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -18,6 +19,7 @@ import com.yingji.service.AcceptService;
import com.yingji.service.AmbService; import com.yingji.service.AmbService;
import com.yingji.service.EventService; import com.yingji.service.EventService;
import com.yingji.service.TaskService; import com.yingji.service.TaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -32,6 +34,7 @@ import java.util.stream.Collectors;
* @since 2024-05-10 17:10:33 * @since 2024-05-10 17:10:33
*/ */
@Service("eventService") @Service("eventService")
@Slf4j
public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements EventService { public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements EventService {
@Resource @Resource
@ -52,6 +55,10 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
*/ */
@Override @Override
public Page<Event> page(Page<Event> page, EventPageRequest event) { public Page<Event> page(Page<Event> page, EventPageRequest event) {
log.error("==================119入参开始=====================");
log.error("==================119每页显示条数: " + page.getSize() + "页数: " + page.getCurrent() + "=====================");
log.error(JSONUtil.toJsonStr(event));
log.error("==================119入参结束=====================");
QueryWrapper<Event> wrapper = new QueryWrapper<>(); QueryWrapper<Event> wrapper = new QueryWrapper<>();
wrapper.ne("event_type", "转院") wrapper.ne("event_type", "转院")
.like(StrUtil.isNotEmpty(event.getEventName()), "event_name", event.getEventName()) .like(StrUtil.isNotEmpty(event.getEventName()), "event_name", event.getEventName())
@ -66,6 +73,8 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
.like(StrUtil.isNotEmpty(event.getAlarmUnit()), "alarm_unit", event.getAlarmUnit()) .like(StrUtil.isNotEmpty(event.getAlarmUnit()), "alarm_unit", event.getAlarmUnit())
.like(StrUtil.isNotEmpty(event.getAlarmUnitContactor()), "alarm_unit_contactor", event.getAlarmUnitContactor()) .like(StrUtil.isNotEmpty(event.getAlarmUnitContactor()), "alarm_unit_contactor", event.getAlarmUnitContactor())
.like(StrUtil.isNotEmpty(event.getAlarmUnitTelephone()), "alarm_unit_telephone", event.getAlarmUnitTelephone()); .like(StrUtil.isNotEmpty(event.getAlarmUnitTelephone()), "alarm_unit_telephone", event.getAlarmUnitTelephone());
log.error("==================119响应开始=====================");
log.error("==================119响应结束=====================");
return this.page(page, wrapper); return this.page(page, wrapper);
} }

Loading…
Cancel
Save