获取便携式设备基础数据功能
This commit is contained in:
@@ -82,6 +82,79 @@ public class EventDto {
|
|||||||
|
|
||||||
@SerializedName("Parm")
|
@SerializedName("Parm")
|
||||||
private List<Param> param;
|
private List<Param> param;
|
||||||
|
|
||||||
|
|
||||||
|
@SerializedName("PrjName")
|
||||||
|
@ApiModelProperty("工程名称")
|
||||||
|
private String prjName;
|
||||||
|
|
||||||
|
@SerializedName("PrjTimeStart")
|
||||||
|
@ApiModelProperty("装置启动时间")
|
||||||
|
private Long prjTimeStart;
|
||||||
|
|
||||||
|
@SerializedName("PrjTimeEnd")
|
||||||
|
@ApiModelProperty("装置结束时间")
|
||||||
|
private Long prjTimeEnd;
|
||||||
|
|
||||||
|
@SerializedName("PrjDataPath")
|
||||||
|
@ApiModelProperty("装置数据路径")
|
||||||
|
private String prjDataPath;
|
||||||
|
|
||||||
|
@SerializedName("DevType")
|
||||||
|
@ApiModelProperty("装置型号")
|
||||||
|
private String devType;
|
||||||
|
|
||||||
|
@SerializedName("DevMac")
|
||||||
|
@ApiModelProperty("装置mac地址")
|
||||||
|
private String devMac;
|
||||||
|
|
||||||
|
@SerializedName("AppVersion")
|
||||||
|
@ApiModelProperty("装置程序版本")
|
||||||
|
private String appVersion;
|
||||||
|
|
||||||
|
@SerializedName("Cldid")
|
||||||
|
@ApiModelProperty("逻辑子设备id")
|
||||||
|
private Integer clDid;
|
||||||
|
|
||||||
|
@SerializedName("StatCycle")
|
||||||
|
@ApiModelProperty("统计间隔")
|
||||||
|
private Integer statCycle;
|
||||||
|
|
||||||
|
@SerializedName("VolGrade")
|
||||||
|
@ApiModelProperty("电压等级")
|
||||||
|
private Float volGrade;
|
||||||
|
|
||||||
|
@SerializedName("VolConType")
|
||||||
|
@ApiModelProperty("电压接线方式(0-星型, 1-角型, 2-V型)")
|
||||||
|
private Integer volConType;
|
||||||
|
|
||||||
|
@SerializedName("CurConSel")
|
||||||
|
@ApiModelProperty("电流接线方式(0-正常, 1-合成IB, 2-合成IC)")
|
||||||
|
private Integer curConSel;
|
||||||
|
|
||||||
|
@SerializedName("PtRatio")
|
||||||
|
@ApiModelProperty("PT变比")
|
||||||
|
private Integer ptRatio;
|
||||||
|
|
||||||
|
@SerializedName("CtRatio")
|
||||||
|
@ApiModelProperty("ct变比")
|
||||||
|
private Integer ctRatio;
|
||||||
|
|
||||||
|
@SerializedName("CapacitySscb")
|
||||||
|
@ApiModelProperty("基准短路容量")
|
||||||
|
private Float capacitySscb;
|
||||||
|
|
||||||
|
@SerializedName("CapacitySscmin")
|
||||||
|
@ApiModelProperty("最小短路容量")
|
||||||
|
private Float capacitySscmin;
|
||||||
|
|
||||||
|
@SerializedName("CapacitySt")
|
||||||
|
@ApiModelProperty("供电设备容量")
|
||||||
|
private Float capacitySt;
|
||||||
|
|
||||||
|
@SerializedName("CapacitySi")
|
||||||
|
@ApiModelProperty("用户协议容量")
|
||||||
|
private Float capacitySi;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -105,6 +105,16 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
|
|||||||
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
||||||
executeMainTask(scheduler,nDid,version);
|
executeMainTask(scheduler,nDid,version);
|
||||||
}
|
}
|
||||||
|
//自动接入
|
||||||
|
else if (expiredKey.startsWith("autoAccess")) {
|
||||||
|
List<CsEquipmentDeliveryPO> list = csEquipmentDeliveryService.getAll();
|
||||||
|
list.forEach(item->{
|
||||||
|
String version = csTopicService.getVersion(item.getNdid());
|
||||||
|
if (!Objects.isNull(version)){
|
||||||
|
csDeviceService.devAccessAskTemplate(item.getNdid(),version,1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//主任务
|
//主任务
|
||||||
|
|||||||
@@ -1,17 +1,12 @@
|
|||||||
package com.njcn.access.runner;
|
package com.njcn.access.runner;
|
||||||
|
|
||||||
import com.njcn.access.service.ICsEquipmentDeliveryService;
|
import com.njcn.redis.utils.RedisUtil;
|
||||||
import com.njcn.access.service.ICsTopicService;
|
|
||||||
import com.njcn.access.service.impl.CsDeviceServiceImpl;
|
|
||||||
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.boot.ApplicationArguments;
|
import org.springframework.boot.ApplicationArguments;
|
||||||
import org.springframework.boot.ApplicationRunner;
|
import org.springframework.boot.ApplicationRunner;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 类的介绍:用来重新发起设备的接入,存在程序意外停止了,缓存失效导致无法更新装置的状态,所以需要在程序启动时发起设备的接入
|
* 类的介绍:用来重新发起设备的接入,存在程序意外停止了,缓存失效导致无法更新装置的状态,所以需要在程序启动时发起设备的接入
|
||||||
@@ -25,21 +20,11 @@ import java.util.Objects;
|
|||||||
public class AccessApplicationRunner implements ApplicationRunner {
|
public class AccessApplicationRunner implements ApplicationRunner {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private CsDeviceServiceImpl csDeviceService;
|
private RedisUtil redisUtil;
|
||||||
@Resource
|
|
||||||
private ICsTopicService csTopicService;
|
|
||||||
@Resource
|
|
||||||
private ICsEquipmentDeliveryService csEquipmentDeliveryService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(ApplicationArguments args){
|
public void run(ApplicationArguments args) {
|
||||||
List<CsEquipmentDeliveryPO> list = csEquipmentDeliveryService.getAll();
|
redisUtil.saveByKeyWithExpire("autoAccess",null,60L);
|
||||||
list.forEach(item->{
|
|
||||||
String version = csTopicService.getVersion(item.getNdid());
|
|
||||||
if (!Objects.isNull(version)){
|
|
||||||
csDeviceService.devAccessAskTemplate(item.getNdid(),version,1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import com.njcn.system.pojo.vo.DictTreeVO;
|
|||||||
import com.njcn.web.utils.RequestUtil;
|
import com.njcn.web.utils.RequestUtil;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@@ -64,49 +65,26 @@ import java.util.stream.Collectors;
|
|||||||
public class CsDevModelServiceImpl implements ICsDevModelService {
|
public class CsDevModelServiceImpl implements ICsDevModelService {
|
||||||
|
|
||||||
private final FileStorageUtil fileStorageUtil;
|
private final FileStorageUtil fileStorageUtil;
|
||||||
|
|
||||||
private final DevModelFeignClient devModelFeignClient;
|
private final DevModelFeignClient devModelFeignClient;
|
||||||
|
|
||||||
private final EpdFeignClient epdFeignClient;
|
private final EpdFeignClient epdFeignClient;
|
||||||
|
|
||||||
private final DicDataFeignClient dicDataFeignClient;
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
private final EleEvtFeignClient eleEvtFeignClient;
|
private final EleEvtFeignClient eleEvtFeignClient;
|
||||||
|
|
||||||
private final ICsDataSetService csDataSetService;
|
private final ICsDataSetService csDataSetService;
|
||||||
|
|
||||||
private final ICsDataArrayService csDataArrayService;
|
private final ICsDataArrayService csDataArrayService;
|
||||||
|
|
||||||
private final CsDevModelMapper csDevModelMapper;
|
private final CsDevModelMapper csDevModelMapper;
|
||||||
|
|
||||||
private final ICsLineModelService csLineModelService;
|
private final ICsLineModelService csLineModelService;
|
||||||
|
|
||||||
private final ICsGroupService csGroupService;
|
private final ICsGroupService csGroupService;
|
||||||
|
|
||||||
private final ICsGroArrService csGroArrService;
|
private final ICsGroArrService csGroArrService;
|
||||||
|
|
||||||
private final CsLogsFeignClient csLogsFeignClient;
|
private final CsLogsFeignClient csLogsFeignClient;
|
||||||
|
|
||||||
private final EleWaveFeignClient waveFeignClient;
|
private final EleWaveFeignClient waveFeignClient;
|
||||||
|
|
||||||
private final DictTreeFeignClient dictTreeFeignClient;
|
private final DictTreeFeignClient dictTreeFeignClient;
|
||||||
|
|
||||||
private final MqttPublisher publisher;
|
private final MqttPublisher publisher;
|
||||||
|
|
||||||
private final ICsTopicService csTopicService;
|
private final ICsTopicService csTopicService;
|
||||||
|
|
||||||
private final ICsEquipmentDeliveryService csEquipmentDeliveryService;
|
|
||||||
|
|
||||||
private final RedisUtil redisUtil;
|
private final RedisUtil redisUtil;
|
||||||
|
|
||||||
private final MqttMessageHandler mqttMessageHandler;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void refreshDevModelCache() {
|
public void refreshDevModelCache() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
//package com.njcn.stat.api;
|
|
||||||
//
|
|
||||||
//import com.njcn.common.pojo.constant.ServerInfo;
|
|
||||||
//import com.njcn.common.pojo.response.HttpResult;
|
|
||||||
//import com.njcn.mq.message.AppAutoDataMessage;
|
|
||||||
//import com.njcn.stat.api.fallback.WlRecordClientFallbackFactory;
|
|
||||||
//import org.springframework.cloud.openfeign.FeignClient;
|
|
||||||
//import org.springframework.validation.annotation.Validated;
|
|
||||||
//import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
//import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * @author xy
|
|
||||||
// */
|
|
||||||
//@FeignClient(value = ServerInfo.CS_STAT_BOOT, path = "/record", fallbackFactory = WlRecordClientFallbackFactory.class,contextId = "record")
|
|
||||||
//public interface WlRecordFeignClient {
|
|
||||||
//
|
|
||||||
// @PostMapping("/addOrUpdateBaseData")
|
|
||||||
// HttpResult<String> addOrUpdateBaseData(@RequestBody @Validated AppAutoDataMessage appAutoDataMessage);
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
//package com.njcn.stat.api.fallback;
|
|
||||||
//
|
|
||||||
//import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
|
||||||
//import com.njcn.common.pojo.exception.BusinessException;
|
|
||||||
//import com.njcn.common.pojo.response.HttpResult;
|
|
||||||
//import com.njcn.mq.message.AppAutoDataMessage;
|
|
||||||
//import com.njcn.stat.api.WlRecordFeignClient;
|
|
||||||
//import feign.hystrix.FallbackFactory;
|
|
||||||
//import lombok.extern.slf4j.Slf4j;
|
|
||||||
//import org.springframework.stereotype.Component;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * @author xy
|
|
||||||
// */
|
|
||||||
//@Slf4j
|
|
||||||
//@Component
|
|
||||||
//public class WlRecordClientFallbackFactory implements FallbackFactory<WlRecordFeignClient> {
|
|
||||||
// @Override
|
|
||||||
// public WlRecordFeignClient create(Throwable cause) {
|
|
||||||
// //判断抛出异常是否为解码器抛出的业务异常
|
|
||||||
// Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
|
||||||
// if (cause.getCause() instanceof BusinessException) {
|
|
||||||
// BusinessException businessException = (BusinessException) cause.getCause();
|
|
||||||
// }
|
|
||||||
// Enum<?> finalExceptionEnum = exceptionEnum;
|
|
||||||
// return new WlRecordFeignClient() {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public HttpResult<String> addOrUpdateBaseData(AppAutoDataMessage appAutoDataMessage) {
|
|
||||||
// log.error("{}异常,降级处理,异常为:{}","新增或更新装置基础数据",cause.toString());
|
|
||||||
// throw new BusinessException(finalExceptionEnum);
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
@@ -6,6 +6,7 @@ import com.njcn.mq.message.AppEventMessage;
|
|||||||
import com.njcn.zlevent.api.fallback.EventClientFallbackFactory;
|
import com.njcn.zlevent.api.fallback.EventClientFallbackFactory;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xy
|
* @author xy
|
||||||
@@ -16,7 +17,7 @@ public interface EventFeignClient {
|
|||||||
@PostMapping("/analysis")
|
@PostMapping("/analysis")
|
||||||
HttpResult<String> analysis(AppEventMessage appEventMessage);
|
HttpResult<String> analysis(AppEventMessage appEventMessage);
|
||||||
|
|
||||||
@PostMapping("/errorEvent")
|
@PostMapping("/portableData")
|
||||||
HttpResult<String> insertErrorEvent(AppEventMessage appEventMessage);
|
HttpResult<String> getPortableData(@RequestBody AppEventMessage appEventMessage);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,10 +32,11 @@ public class EventClientFallbackFactory implements FallbackFactory<EventFeignCli
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HttpResult<String> insertErrorEvent(AppEventMessage appEventMessage) {
|
public HttpResult<String> getPortableData(AppEventMessage appEventMessage) {
|
||||||
log.error("{}异常,降级处理,异常为:{}","异常事件统计",cause.toString());
|
log.error("{}异常,降级处理,异常为:{}","便携式设备数据记录动作",cause.toString());
|
||||||
throw new BusinessException(finalExceptionEnum);
|
throw new BusinessException(finalExceptionEnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/event")
|
@RequestMapping("/event")
|
||||||
@Api(tags = "暂态事件处理")
|
@Api(tags = "事件处理")
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class EventController extends BaseController {
|
public class EventController extends BaseController {
|
||||||
|
|
||||||
@@ -44,4 +44,14 @@ public class EventController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/portableData")
|
||||||
|
@ApiOperation("便携式数据事件")
|
||||||
|
@ApiImplicitParam(name = "appEventMessage", value = "数据实体", required = true)
|
||||||
|
public HttpResult<String> getPortableData(@RequestBody AppEventMessage appEventMessage){
|
||||||
|
String methodDescribe = getMethodDescribe("getPortableData");
|
||||||
|
eventService.getPortableData(appEventMessage);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,4 +17,12 @@ public interface IEventService {
|
|||||||
*/
|
*/
|
||||||
void analysis(AppEventMessage appEventMessage);
|
void analysis(AppEventMessage appEventMessage);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 便携式设备基础数据
|
||||||
|
* 1.装置发起数据记录开始动作,库中新增数据;
|
||||||
|
* 2.装置发起数据记录结束动作,库中更新数据;
|
||||||
|
* @param appEventMessage
|
||||||
|
*/
|
||||||
|
void getPortableData(AppEventMessage appEventMessage);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,12 @@ import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
|||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
import com.njcn.csdevice.api.CsLineFeignClient;
|
import com.njcn.csdevice.api.CsLineFeignClient;
|
||||||
import com.njcn.csdevice.api.EquipmentFeignClient;
|
import com.njcn.csdevice.api.EquipmentFeignClient;
|
||||||
|
import com.njcn.csdevice.api.WlRecordFeignClient;
|
||||||
|
import com.njcn.csdevice.pojo.param.WlRecordParam;
|
||||||
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
|
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
|
||||||
import com.njcn.csdevice.pojo.po.CsLinePO;
|
import com.njcn.csdevice.pojo.po.CsLinePO;
|
||||||
|
import com.njcn.csdevice.pojo.po.WlRecord;
|
||||||
|
import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO;
|
||||||
import com.njcn.csharmonic.pojo.po.CsEventPO;
|
import com.njcn.csharmonic.pojo.po.CsEventPO;
|
||||||
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
||||||
import com.njcn.influx.utils.InfluxDbUtils;
|
import com.njcn.influx.utils.InfluxDbUtils;
|
||||||
@@ -31,11 +35,15 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.influxdb.InfluxDB;
|
import org.influxdb.InfluxDB;
|
||||||
import org.influxdb.dto.BatchPoints;
|
import org.influxdb.dto.BatchPoints;
|
||||||
import org.influxdb.dto.Point;
|
import org.influxdb.dto.Point;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.Instant;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -53,22 +61,15 @@ import java.util.concurrent.TimeUnit;
|
|||||||
public class EventServiceImpl implements IEventService {
|
public class EventServiceImpl implements IEventService {
|
||||||
|
|
||||||
private final CsLineFeignClient csLineFeignClient;
|
private final CsLineFeignClient csLineFeignClient;
|
||||||
|
|
||||||
private final DicDataFeignClient dicDataFeignClient;
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
private final EpdFeignClient epdFeignClient;
|
private final EpdFeignClient epdFeignClient;
|
||||||
|
|
||||||
private final RedisUtil redisUtil;
|
private final RedisUtil redisUtil;
|
||||||
|
|
||||||
private final ICsEventService csEventService;
|
private final ICsEventService csEventService;
|
||||||
|
|
||||||
private final EquipmentFeignClient equipmentFeignClient;
|
private final EquipmentFeignClient equipmentFeignClient;
|
||||||
|
|
||||||
private final InfluxDbUtils influxDbUtils;
|
private final InfluxDbUtils influxDbUtils;
|
||||||
|
|
||||||
private final ICsEventLogsService csEventLogsService;
|
private final ICsEventLogsService csEventLogsService;
|
||||||
|
|
||||||
private final SendEventUtils sendEventUtils;
|
private final SendEventUtils sendEventUtils;
|
||||||
|
private final WlRecordFeignClient wlRecordFeignClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -188,6 +189,93 @@ public class EventServiceImpl implements IEventService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void getPortableData(AppEventMessage appEventMessage) {
|
||||||
|
CsEquipmentDeliveryVO vo = equipmentFeignClient.queryEquipmentByndid(appEventMessage.getId()).getData();
|
||||||
|
//根据报文判断是新增还是更新
|
||||||
|
List<AppEventMessage.DataArray> dataArrays = appEventMessage.getMsg().getDataArray();
|
||||||
|
dataArrays.forEach(item->{
|
||||||
|
WlRecordParam.Record param = new WlRecordParam.Record();
|
||||||
|
param.setDevId(vo.getId());
|
||||||
|
param.setLineId(appEventMessage.getId() + item.getClDid().toString());
|
||||||
|
param.setProName(item.getPrjName());
|
||||||
|
param.setProStartTime(timestampToDatetime((item.getPrjTimeStart() - 8*3600)));
|
||||||
|
WlRecord record = wlRecordFeignClient.findDevBaseData(param).getData();
|
||||||
|
if (!Objects.isNull(record)) {
|
||||||
|
if (!Objects.equals(item.getPrjTimeEnd(),-1L)) {
|
||||||
|
WlRecordParam.UpdateRecord wlRecord = new WlRecordParam.UpdateRecord();
|
||||||
|
wlRecord.setId(record.getId());
|
||||||
|
wlRecord.setProEndTime(timestampToDatetime((item.getPrjTimeEnd() - 8*3600)));
|
||||||
|
wlRecordFeignClient.updateTestRecord(wlRecord);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//新项目入库
|
||||||
|
WlRecord wlRecord = new WlRecord();
|
||||||
|
wlRecord.setId(IdUtil.simpleUUID());
|
||||||
|
wlRecord.setItemName("基础数据");
|
||||||
|
wlRecord.setGcName(item.getPrjName());
|
||||||
|
wlRecord.setDevId(vo.getId());
|
||||||
|
wlRecord.setLineId(appEventMessage.getId() + item.getClDid().toString());
|
||||||
|
wlRecord.setStatisticalInterval(item.getStatCycle());
|
||||||
|
wlRecord.setPt(item.getPtRatio());
|
||||||
|
wlRecord.setCt(item.getCtRatio());
|
||||||
|
//电压等级
|
||||||
|
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(channelVol(item.getVolGrade()) + "kV","Dev_Voltage_Stand").getData();
|
||||||
|
wlRecord.setVoltageLevel(Objects.isNull(dictData)?null:dictData.getId());
|
||||||
|
wlRecord.setCapacitySscb(item.getCapacitySscb());
|
||||||
|
wlRecord.setCapacitySscmin(item.getCapacitySscmin());
|
||||||
|
wlRecord.setCapacitySt(item.getCapacitySt());
|
||||||
|
wlRecord.setCapacitySi(item.getCapacitySi());
|
||||||
|
//电压接线方式
|
||||||
|
wlRecord.setVolConType(getVolConType(item.getVolConType()));
|
||||||
|
//fixme 电流接线方式 这边系统没有字典,录入字典通用性不强,采用装置上送值存储
|
||||||
|
wlRecord.setCurConSel(item.getCurConSel().toString());
|
||||||
|
wlRecord.setStartTime(timestampToDatetime((item.getPrjTimeStart() - 8*3600)));
|
||||||
|
wlRecord.setType(1);
|
||||||
|
wlRecord.setState(1);
|
||||||
|
wlRecord.setGcDataPath(item.getPrjDataPath());
|
||||||
|
wlRecordFeignClient.addBaseData(wlRecord);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理电压
|
||||||
|
* @param vol
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String channelVol(Float vol) {
|
||||||
|
BigDecimal value = new BigDecimal(vol);
|
||||||
|
BigDecimal noZeros = value.stripTrailingZeros();
|
||||||
|
return noZeros.toPlainString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 0-星型, 1-角型, 2-V型
|
||||||
|
// star-星型、Star_Triangle-星三角、Open_Delta-开口三角
|
||||||
|
public String getVolConType(Integer volConType) {
|
||||||
|
String result = null;
|
||||||
|
String dictDataCode = null;
|
||||||
|
switch (volConType) {
|
||||||
|
case 0:
|
||||||
|
dictDataCode = "star";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
dictDataCode = "Star_Triangle";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
dictDataCode = "Open_Delta";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!Objects.isNull(dictDataCode)) {
|
||||||
|
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(dictDataCode,"Dev_Connect").getData();
|
||||||
|
result = dictData.getId();
|
||||||
|
}
|
||||||
|
return Objects.isNull(result)?null:result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 缓存监测点相关信息
|
* 缓存监测点相关信息
|
||||||
*/
|
*/
|
||||||
@@ -248,4 +336,9 @@ public class EventServiceImpl implements IEventService {
|
|||||||
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
|
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
|
||||||
return LocalDateTime.parse(time, fmt);
|
return LocalDateTime.parse(time, fmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LocalDateTime timestampToDatetime(long timestamp){
|
||||||
|
Instant instant = Instant.ofEpochSecond(timestamp);
|
||||||
|
return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ public class AppEventConsumer extends EnhanceConsumerMessageHandler<AppEventMess
|
|||||||
break;
|
break;
|
||||||
case 32:
|
case 32:
|
||||||
log.info("分发至便携式基础数据处理");
|
log.info("分发至便携式基础数据处理");
|
||||||
|
eventFeignClient.getPortableData(appEventMessage);
|
||||||
break;
|
break;
|
||||||
case 241:
|
case 241:
|
||||||
log.info("分发装置异常事件统计");
|
log.info("分发装置异常事件统计");
|
||||||
|
|||||||
Reference in New Issue
Block a user