fast()指标预警,滑窗规则设定
parent
8ec657dd1a
commit
8f305f5ddc
|
@ -0,0 +1,61 @@
|
||||||
|
package com.business.common.dev;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DataSpecificationDev {
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 车辆标识
|
||||||
|
*/
|
||||||
|
private String vin;
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private String dataCode;
|
||||||
|
/**
|
||||||
|
* 标签
|
||||||
|
*/
|
||||||
|
private String label;
|
||||||
|
/**
|
||||||
|
* 标准数据
|
||||||
|
*/
|
||||||
|
private String standardData;
|
||||||
|
/**
|
||||||
|
*编码id
|
||||||
|
*/
|
||||||
|
private Long dateTypeId;
|
||||||
|
/**
|
||||||
|
* 滑窗范围id
|
||||||
|
*/
|
||||||
|
private Long radiusId;
|
||||||
|
/**
|
||||||
|
* 滑窗范围
|
||||||
|
*/
|
||||||
|
private String radius;
|
||||||
|
/**
|
||||||
|
* 滑窗定义
|
||||||
|
*/
|
||||||
|
private String radiusName;
|
||||||
|
/**
|
||||||
|
* 滑动长度id
|
||||||
|
*/
|
||||||
|
private Long lengthId;
|
||||||
|
/**
|
||||||
|
* 滑动定义
|
||||||
|
*/
|
||||||
|
private String lengthName;
|
||||||
|
/**
|
||||||
|
* 滑动长度
|
||||||
|
*/
|
||||||
|
private String length;
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
package com.business.common.domain.event;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DataSpecification {
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 车辆标识
|
||||||
|
*/
|
||||||
|
private String vin;
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private String dataCode;
|
||||||
|
/**
|
||||||
|
* 标签
|
||||||
|
*/
|
||||||
|
private String label;
|
||||||
|
/**
|
||||||
|
* 标准数据
|
||||||
|
*/
|
||||||
|
private String standardData;
|
||||||
|
/**
|
||||||
|
*编码id
|
||||||
|
*/
|
||||||
|
private Long dateTypeId;
|
||||||
|
/**
|
||||||
|
* 滑窗范围id
|
||||||
|
*/
|
||||||
|
private Long radiusId;
|
||||||
|
/**
|
||||||
|
* 滑窗长度id
|
||||||
|
*/
|
||||||
|
private Long lengthId;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.business.common.domain.event;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DateType {
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
private Long dateTypeId;
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private String dataCode;
|
||||||
|
/**
|
||||||
|
* 标签
|
||||||
|
*/
|
||||||
|
private String label;
|
||||||
|
}
|
|
@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class Length {
|
public class Length {
|
||||||
|
private Long lengthId;
|
||||||
/**
|
/**
|
||||||
* 长度定义
|
* 长度定义
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class Radius {
|
public class Radius {
|
||||||
|
private Long radiusId;
|
||||||
/**
|
/**
|
||||||
* 范围定义
|
* 范围定义
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.muyu.goods.controller;
|
package com.muyu.goods.controller;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import com.business.common.dev.LongitudeAndLatitude;
|
import com.business.common.dev.LongitudeAndLatitude;
|
||||||
|
@ -148,7 +149,7 @@ public class CarController extends BaseController
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("read")
|
@PostMapping("read")
|
||||||
public Result<VehicleInfo> read() {
|
public Result<Map<String,String>> read() {
|
||||||
return success(carService.read());
|
return success(carService.read());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package com.muyu.goods.controller;
|
package com.muyu.goods.controller;
|
||||||
|
|
||||||
import com.business.common.dev.DataFormatDev;
|
import com.business.common.dev.DataFormatDev;
|
||||||
|
import com.business.common.dev.DataSpecificationDev;
|
||||||
import com.business.common.domain.DataFormat;
|
import com.business.common.domain.DataFormat;
|
||||||
import com.business.common.domain.event.Window;
|
import com.business.common.domain.event.*;
|
||||||
import com.dtflys.forest.annotation.Post;
|
import com.dtflys.forest.annotation.Post;
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
import com.muyu.common.core.web.controller.BaseController;
|
import com.muyu.common.core.web.controller.BaseController;
|
||||||
|
import com.muyu.common.log.annotation.Log;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
import com.muyu.common.system.domain.LoginUser;
|
import com.muyu.common.system.domain.LoginUser;
|
||||||
import com.muyu.goods.Domain.WindowDonain;
|
import com.muyu.goods.Domain.WindowDonain;
|
||||||
|
@ -24,8 +26,8 @@ public class ForewarnController extends BaseController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private IForewarnService forewarnService;
|
private IForewarnService forewarnService;
|
||||||
|
|
||||||
@PostMapping("list")
|
@PostMapping("listDataSpecificationDev")
|
||||||
public Result<List<Window>> list() {
|
public Result<List<DataSpecificationDev>> list() {
|
||||||
return success(forewarnService.list());
|
return success(forewarnService.list());
|
||||||
}
|
}
|
||||||
//全部报文
|
//全部报文
|
||||||
|
@ -48,4 +50,102 @@ public class ForewarnController extends BaseController {
|
||||||
public Result deleteDataFormatById(@PathVariable String vin) {
|
public Result deleteDataFormatById(@PathVariable String vin) {
|
||||||
return success(forewarnService.deleteDataFormatById(vin));
|
return success(forewarnService.deleteDataFormatById(vin));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入redis
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("redisDataDormById")
|
||||||
|
public Result redisDataDormById() {
|
||||||
|
return success(forewarnService.redisDataDormById());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 滑动长度
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("listLength")
|
||||||
|
public Result<List<Length>> listLength() {
|
||||||
|
return success(forewarnService.listLength());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 滑动范围
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("listRadius")
|
||||||
|
public Result<List<Radius>> listRadius() {
|
||||||
|
return success(forewarnService.listRadius());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看车辆具体滑窗
|
||||||
|
* @param vin
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("selectDataSpecificationDev")
|
||||||
|
public Result<List<DataSpecificationDev>> selectDataSpecificationDev(@RequestParam String vin) {
|
||||||
|
return success(forewarnService.selectDataSpecificationDev(vin));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加新滑动
|
||||||
|
* @param dataSpecification
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("indexDataSpecification")
|
||||||
|
public Result indexDataSpecification(@RequestBody DataSpecification dataSpecification,@RequestParam String vin) {
|
||||||
|
return success(forewarnService.indexDataSpecification(dataSpecification,vin));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看单个滑窗详情
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("selectDataSpecificationById/{id}")
|
||||||
|
public Result<DataSpecification> selectDataSpecificationById(@PathVariable Long id) {
|
||||||
|
return success(forewarnService.selectDataSpecificationById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改滑动
|
||||||
|
* @param dataSpecification
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("updataDataSpecification")
|
||||||
|
public Result updataDataSpecification(@RequestBody DataSpecification dataSpecification) {
|
||||||
|
return success(forewarnService.updataDataSpecification(dataSpecification));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除滑动
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("deleteDataSpecification")
|
||||||
|
public Result deleteDataSpecification(@RequestParam Long id){
|
||||||
|
return success(forewarnService.deleteDataSpecification(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取相应的编码
|
||||||
|
* @param vin
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("listDateType")
|
||||||
|
public Result<List<DateType>> listDateType(@RequestParam String vin) {
|
||||||
|
return success(forewarnService.listDateType(vin));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取相应的编码
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("selectDateType")
|
||||||
|
public Result<List<DateType>> selectDateType() {
|
||||||
|
return success(forewarnService.selectDateType());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,4 +25,8 @@ public class Producer {
|
||||||
String jsonString = JSONObject.toJSONString(faultInfo);
|
String jsonString = JSONObject.toJSONString(faultInfo);
|
||||||
rabbitTemplate.convertAndSend("fault.message","end",jsonString);
|
rabbitTemplate.convertAndSend("fault.message","end",jsonString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void redis_cache(String vin) {
|
||||||
|
rabbitTemplate.convertAndSend("data_format_renewal",vin);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
package com.muyu.goods.mapper;
|
package com.muyu.goods.mapper;
|
||||||
|
|
||||||
import com.business.common.dev.DataFormatDev;
|
import com.business.common.dev.DataFormatDev;
|
||||||
|
import com.business.common.dev.DataSpecificationDev;
|
||||||
import com.business.common.domain.DataFormat;
|
import com.business.common.domain.DataFormat;
|
||||||
import com.business.common.domain.event.Window;
|
import com.business.common.domain.event.*;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface ForewarnMapper {
|
public interface ForewarnMapper {
|
||||||
List<Window> list();
|
List<DataSpecificationDev> list();
|
||||||
|
|
||||||
List<DataFormatDev> listDataFormat();
|
List<DataFormatDev> listDataFormat();
|
||||||
|
|
||||||
|
@ -17,4 +18,21 @@ public interface ForewarnMapper {
|
||||||
Integer deleteDataFormatById(@Param("vin") String vin);
|
Integer deleteDataFormatById(@Param("vin") String vin);
|
||||||
|
|
||||||
List<DataFormat> selectDataFormatById(@Param("vin") String vin);
|
List<DataFormat> selectDataFormatById(@Param("vin") String vin);
|
||||||
|
|
||||||
|
List<Length> listLength();
|
||||||
|
|
||||||
|
List<Radius> listRadius();
|
||||||
|
|
||||||
|
List<DataSpecificationDev> selectDataSpecificationDev();
|
||||||
|
|
||||||
|
int indexDataSpecification(DataSpecification dataSpecification);
|
||||||
|
|
||||||
|
int updataDataSpecification(DataSpecification dataSpecification);
|
||||||
|
|
||||||
|
Integer deleteDataSpecification(@Param("id") Long id);
|
||||||
|
|
||||||
|
|
||||||
|
List<DateType> listDateType();
|
||||||
|
|
||||||
|
DataSpecification selectDataSpecificationById(@Param("id") Long id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.business.common.domain.Car;
|
||||||
import com.business.common.domain.VehicleInfo;
|
import com.business.common.domain.VehicleInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车辆信息Service接口
|
* 车辆信息Service接口
|
||||||
|
@ -69,7 +70,7 @@ public interface ICarService
|
||||||
|
|
||||||
Car query(Long carId);
|
Car query(Long carId);
|
||||||
|
|
||||||
VehicleInfo read();
|
Map<String,String> read();
|
||||||
|
|
||||||
void open();
|
void open();
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
package com.muyu.goods.service;
|
package com.muyu.goods.service;
|
||||||
|
|
||||||
import com.business.common.dev.DataFormatDev;
|
import com.business.common.dev.DataFormatDev;
|
||||||
|
import com.business.common.dev.DataSpecificationDev;
|
||||||
import com.business.common.domain.DataFormat;
|
import com.business.common.domain.DataFormat;
|
||||||
import com.business.common.domain.event.Window;
|
import com.business.common.domain.event.*;
|
||||||
|
import com.muyu.common.core.domain.Result;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface IForewarnService {
|
public interface IForewarnService {
|
||||||
List<Window> list();
|
List<DataSpecificationDev> list();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 全部报文
|
* 全部报文
|
||||||
|
@ -34,4 +36,61 @@ public interface IForewarnService {
|
||||||
*/
|
*/
|
||||||
Integer deleteDataFormatById(String vin);
|
Integer deleteDataFormatById(String vin);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入redis
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String redisDataDormById();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看滑动长度
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<Length> listLength();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看滑窗范围
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<Radius> listRadius();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看车辆滑窗
|
||||||
|
* @param vin
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<DataSpecificationDev> selectDataSpecificationDev(String vin);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加滑窗
|
||||||
|
* @param dataSpecification
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer indexDataSpecification(DataSpecification dataSpecification,String vin);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改滑窗
|
||||||
|
* @param dataSpecification
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer updataDataSpecification(DataSpecification dataSpecification);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除滑窗
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer deleteDataSpecification(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看具体编程
|
||||||
|
* @param vin
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<DateType> listDateType(String vin);
|
||||||
|
|
||||||
|
List<DateType> selectDateType();
|
||||||
|
|
||||||
|
DataSpecification selectDataSpecificationById(Long id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.muyu.goods.service.impl;
|
package com.muyu.goods.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -21,6 +23,8 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static com.fasterxml.jackson.databind.type.LogicalType.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车辆信息Service业务层处理
|
* 车辆信息Service业务层处理
|
||||||
*
|
*
|
||||||
|
@ -157,7 +161,7 @@ public class CarServiceImpl implements ICarService
|
||||||
private Timer timer;
|
private Timer timer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VehicleInfo read() {
|
public Map<String,String> read() {
|
||||||
String rightPopAndLeftPush = null;
|
String rightPopAndLeftPush = null;
|
||||||
try {
|
try {
|
||||||
rightPopAndLeftPush = redisTemplate.opsForList().leftPop("event_handler:realtime_data:JAV0VJUJYOTOK9KSY"
|
rightPopAndLeftPush = redisTemplate.opsForList().leftPop("event_handler:realtime_data:JAV0VJUJYOTOK9KSY"
|
||||||
|
@ -170,8 +174,7 @@ public class CarServiceImpl implements ICarService
|
||||||
}
|
}
|
||||||
if (rightPopAndLeftPush != null){
|
if (rightPopAndLeftPush != null){
|
||||||
String parse = JSON.parse(rightPopAndLeftPush).toString();
|
String parse = JSON.parse(rightPopAndLeftPush).toString();
|
||||||
VehicleInfo vehicleInfo = JSON.parseObject(parse, VehicleInfo.class);
|
return JSON.parseObject(parse, java.util.Map.class);
|
||||||
return vehicleInfo;
|
|
||||||
}else{
|
}else{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
package com.muyu.goods.service.impl;
|
package com.muyu.goods.service.impl;
|
||||||
|
|
||||||
import com.business.common.dev.DataFormatDev;
|
import com.business.common.dev.DataFormatDev;
|
||||||
|
import com.business.common.dev.DataSpecificationDev;
|
||||||
import com.business.common.domain.DataFormat;
|
import com.business.common.domain.DataFormat;
|
||||||
import com.business.common.domain.event.Window;
|
import com.business.common.domain.event.*;
|
||||||
|
import com.muyu.common.core.domain.Result;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
|
import com.muyu.goods.incident.mq.Producer;
|
||||||
import com.muyu.goods.mapper.ForewarnMapper;
|
import com.muyu.goods.mapper.ForewarnMapper;
|
||||||
import com.muyu.goods.service.IForewarnService;
|
import com.muyu.goods.service.IForewarnService;
|
||||||
import org.apache.kafka.common.protocol.types.Field;
|
import org.apache.kafka.common.protocol.types.Field;
|
||||||
|
import org.apache.xmlbeans.GDateSpecification;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -24,9 +28,11 @@ public class ForewarnService implements IForewarnService {
|
||||||
private ForewarnMapper forewarnMapper;
|
private ForewarnMapper forewarnMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisTemplate<String,String> redisTemplate;
|
private RedisTemplate<String,String> redisTemplate;
|
||||||
|
@Autowired
|
||||||
|
private Producer producer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Window> list() {
|
public List<DataSpecificationDev> list() {
|
||||||
return forewarnMapper.list();
|
return forewarnMapper.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,8 +92,16 @@ public class ForewarnService implements IForewarnService {
|
||||||
list.add(dataFormatDev);
|
list.add(dataFormatDev);
|
||||||
}
|
}
|
||||||
//再添加新报文
|
//再添加新报文
|
||||||
|
int i = forewarnMapper.indexDataFormat(list);
|
||||||
return forewarnMapper.indexDataFormat(list);
|
if (i > 0){
|
||||||
|
listDataFormat();
|
||||||
|
Boolean b = redisTemplate.opsForHash().hasKey("load_center:go_live", vin);
|
||||||
|
if (b){
|
||||||
|
System.out.println(vin);
|
||||||
|
producer.redis_cache(vin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -99,5 +113,130 @@ public class ForewarnService implements IForewarnService {
|
||||||
return forewarnMapper.deleteDataFormatById(vin);
|
return forewarnMapper.deleteDataFormatById(vin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String redisDataDormById() {
|
||||||
|
List<DataSpecificationDev> dataSpecificationDevs = selectDataSpecificationDev(null);
|
||||||
|
//进行分组
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
Map<String, String> map2 = new HashMap<>();
|
||||||
|
Map<String, List<DataSpecificationDev>> collect = dataSpecificationDevs.stream().collect(Collectors.groupingBy(DataSpecificationDev::getVin));
|
||||||
|
// 给每组数据改成字符串格式
|
||||||
|
collect.forEach((a,b) -> {
|
||||||
|
String name = "";
|
||||||
|
String code = "";
|
||||||
|
//编辑字符串
|
||||||
|
for (DataSpecificationDev dataSpecificationDev : b) {
|
||||||
|
name += dataSpecificationDev.getDataCode() + "-" + dataSpecificationDev.getLabel() + "-"
|
||||||
|
+ dataSpecificationDev.getRadius() + "-" + dataSpecificationDev.getLength() + "-" + dataSpecificationDev.getStandardData() + ",";
|
||||||
|
code += dataSpecificationDev.getDataCode() + ",";
|
||||||
|
}
|
||||||
|
name = name.substring(0,name.length()-1);
|
||||||
|
code = code.substring(0,code.length()-1);
|
||||||
|
//存入map中
|
||||||
|
map.put(a,name);
|
||||||
|
map2.put(a,code);
|
||||||
|
});
|
||||||
|
//map数据导入redis
|
||||||
|
map.forEach((key,val) -> {
|
||||||
|
redisTemplate.opsForHash().put("event_handler:indicator_warning:execute_info:",key,val);
|
||||||
|
});
|
||||||
|
map2.forEach((key,val) -> {
|
||||||
|
redisTemplate.opsForHash().put("event_handler:indicator_warning:warning_data:",key,val);
|
||||||
|
});
|
||||||
|
return dataSpecificationDevs.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 滑动长度
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Length> listLength() {
|
||||||
|
return forewarnMapper.listLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 滑窗范围
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Radius> listRadius() {
|
||||||
|
return forewarnMapper.listRadius();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DataSpecificationDev> selectDataSpecificationDev(String vin) {
|
||||||
|
List<DataSpecificationDev> list = forewarnMapper.selectDataSpecificationDev();
|
||||||
|
if (vin!=null){
|
||||||
|
List<DataSpecificationDev> collect = list.stream().filter(dataSpecificationDev -> dataSpecificationDev.getVin().equals(vin)).collect(Collectors.toList());
|
||||||
|
return collect;
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加滑窗
|
||||||
|
* @param dataSpecification
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Integer indexDataSpecification(DataSpecification dataSpecification, String vin) {
|
||||||
|
DateType dateType1 = selectDateType().stream().filter(dateType -> dataSpecification.getDateTypeId() == dateType.getDateTypeId()).collect(Collectors.toList()).get(0);
|
||||||
|
dataSpecification.setDataCode(dateType1.getDataCode());
|
||||||
|
dataSpecification.setLabel(dateType1.getLabel());
|
||||||
|
dataSpecification.setVin(vin);
|
||||||
|
int i = forewarnMapper.indexDataSpecification(dataSpecification);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改滑窗
|
||||||
|
* @param dataSpecification
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Integer updataDataSpecification(DataSpecification dataSpecification) {
|
||||||
|
int i = forewarnMapper.updataDataSpecification(dataSpecification);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除滑窗
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Integer deleteDataSpecification(Long id) {
|
||||||
|
return forewarnMapper.deleteDataSpecification(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DateType> listDateType(String vin) {
|
||||||
|
List<DateType> dateTypeList = selectDateType();
|
||||||
|
List<DataFormat> dataFormats = selectDataFormatById(vin);
|
||||||
|
//取重复的值
|
||||||
|
//创建一个集合类
|
||||||
|
List<String> dataCode = dataFormats.stream().map(DataFormat::getDataCode).collect(Collectors.toList());
|
||||||
|
//开始区分
|
||||||
|
List<DateType> dateTypes = dateTypeList.stream().filter(dateType -> dataCode.contains(dateType.getDataCode())).collect(Collectors.toList());
|
||||||
|
//取没有重复值
|
||||||
|
List<DataSpecificationDev> dataSpecificationDevs = selectDataSpecificationDev(vin);
|
||||||
|
//拉取集合类
|
||||||
|
List<String> collect = dataSpecificationDevs.stream().map(DataSpecificationDev::getDataCode).collect(Collectors.toList());
|
||||||
|
//过滤提取没有重复的值
|
||||||
|
List<DateType> typeList = dateTypes.stream().filter(dateType -> !collect.contains(dateType.getDataCode())).collect(Collectors.toList());
|
||||||
|
return typeList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DateType> selectDateType() {
|
||||||
|
return forewarnMapper.listDateType();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSpecification selectDataSpecificationById(Long id) {
|
||||||
|
return forewarnMapper.selectDataSpecificationById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.muyu.goods.mapper.ForewarnMapper">
|
<mapper namespace="com.muyu.goods.mapper.ForewarnMapper">
|
||||||
|
|
||||||
<resultMap type="com.business.common.domain.event.Window" id="WindowResult">
|
<resultMap type="com.business.common.dev.DataSpecificationDev" id="DataSpecificationDevResult">
|
||||||
<result property="id" column="id" />
|
<result property="id" column="id" />
|
||||||
<result property="vin" column="vin" />
|
<result property="vin" column="vin" />
|
||||||
<result property="point" column="point" />
|
<result property="dataCode" column="data_code" />
|
||||||
<result property="standard" column="standard" />
|
<result property="label" column="label" />
|
||||||
<result property="windowStartTime" column="window_start_time" />
|
<result property="standardData" column="standard_data" />
|
||||||
<result property="windowEndTime" column="window_end_time" />
|
<result property="dateTypeId" column="date_type_id" />
|
||||||
<result property="result" column="result" />
|
<result property="radiusId" column="radius_id" />
|
||||||
|
<result property="lengthId" column="length_id" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<resultMap id="RadiusResult" type="com.business.common.domain.event.Radius">
|
<resultMap id="RadiusResult" type="com.business.common.domain.event.Radius">
|
||||||
|
@ -31,8 +32,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="end" column="end"></result>
|
<result property="end" column="end"></result>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectWindowVo">
|
<sql id="selectDataSpecificationVo">
|
||||||
select id, vin, point, standard, window_start_time, window_end_time, result from window
|
select d.id,d.vin,d.data_code,d.label,d.standard_data,d.date_type_id,d.radius_id,d.length_id,
|
||||||
|
r.radius_name, r.radius, l.length_name, l.length
|
||||||
|
from data_specification d left join radius r on d.radius_id = r.radius_id
|
||||||
|
left join length l on l.length_id = d.length_id
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="selectDataFormat">
|
<sql id="selectDataFormat">
|
||||||
select data_code, label, start,end from data_format
|
select data_code, label, start,end from data_format
|
||||||
|
@ -41,17 +45,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
insert into data_format
|
insert into data_format
|
||||||
values
|
values
|
||||||
<foreach collection="dataFormat" item="list" separator=",">
|
<foreach collection="dataFormat" item="list" separator=",">
|
||||||
(#{list.vin},#{list.dataCode},#{list.label},#{list.start},#{list.end})
|
(0,#{list.vin},#{list.dataCode},#{list.label},#{list.start},#{list.end})
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
<insert id="indexDataSpecification" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into data_specification
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="vin != null">vin,</if>
|
||||||
|
<if test="dataCode != null">data_code,</if>
|
||||||
|
<if test="label != null">label,</if>
|
||||||
|
<if test="standardData != null">standard_data,</if>
|
||||||
|
<if test="dateTypeId != null">date_type_id,</if>
|
||||||
|
<if test="radiusId != null">radius_id,</if>
|
||||||
|
<if test="lengthId != null">length_id,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="vin != null">#{vin},</if>
|
||||||
|
<if test="dataCode != null">#{dataCode},</if>
|
||||||
|
<if test="label != null">#{label},</if>
|
||||||
|
<if test="standardData != null">#{standardData},</if>
|
||||||
|
<if test="dateTypeId != null">#{dateTypeId},</if>
|
||||||
|
<if test="radiusId != null">#{radiusId},</if>
|
||||||
|
<if test="lengthId != null">#{lengthId},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
<update id="updataDataSpecification">
|
||||||
|
update data_specification
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="dataCode != null">data_code = #{dataCode},</if>
|
||||||
|
<if test="label != null">label = #{label},</if>
|
||||||
|
<if test="standardData != null">standard_data = #{standardData},</if>
|
||||||
|
<if test="dateTypeId != null">date_type_id = #{dateTypeId},</if>
|
||||||
|
<if test="radiusId != null">radius_id = #{radiusId},</if>
|
||||||
|
<if test="lengthId != null">length_id = #{lengthId},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
<delete id="deleteDataFormatById">
|
<delete id="deleteDataFormatById">
|
||||||
delete
|
delete
|
||||||
from data_format
|
from data_format
|
||||||
where vin = #{vin};
|
where vin = #{vin};
|
||||||
</delete>
|
</delete>
|
||||||
<select id="list" resultType="com.business.common.domain.event.Window">
|
<delete id="deleteDataSpecification">
|
||||||
<include refid="selectWindowVo"></include>
|
delete
|
||||||
</select>
|
from data_specification
|
||||||
|
where id = #{id};
|
||||||
|
</delete>
|
||||||
<select id="listDataFormat" resultType="com.business.common.dev.DataFormatDev">
|
<select id="listDataFormat" resultType="com.business.common.dev.DataFormatDev">
|
||||||
select * from data_format
|
select * from data_format
|
||||||
</select>
|
</select>
|
||||||
|
@ -59,6 +98,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<include refid="selectDataFormat"></include>
|
<include refid="selectDataFormat"></include>
|
||||||
where vin = #{vin}
|
where vin = #{vin}
|
||||||
</select>
|
</select>
|
||||||
|
<select id="list" resultType="com.business.common.dev.DataSpecificationDev">
|
||||||
|
<include refid="selectDataSpecificationVo"></include>
|
||||||
|
</select>
|
||||||
|
<select id="listLength" resultType="com.business.common.domain.event.Length">
|
||||||
|
select *
|
||||||
|
from length
|
||||||
|
</select>
|
||||||
|
<select id="listRadius" resultType="com.business.common.domain.event.Radius">
|
||||||
|
select *
|
||||||
|
from radius
|
||||||
|
</select>
|
||||||
|
<select id="selectDataSpecificationDev" resultType="com.business.common.dev.DataSpecificationDev">
|
||||||
|
<include refid="selectDataSpecificationVo"></include>
|
||||||
|
</select>
|
||||||
|
<select id="listDateType" resultType="com.business.common.domain.event.DateType">
|
||||||
|
select *
|
||||||
|
from date_type
|
||||||
|
</select>
|
||||||
|
<select id="selectDataSpecificationById" resultType="com.business.common.domain.event.DataSpecification">
|
||||||
|
select * from data_specification where id = #{id};
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
Loading…
Reference in New Issue