mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
Merge branch 'dev' of http://192.168.2.2:8099/jsowell/jsowell-charger-web into dev
This commit is contained in:
53
jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/nanrui/domain/NRAlarmInfo.java
vendored
Normal file
53
jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/nanrui/domain/NRAlarmInfo.java
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
package com.jsowell.thirdparty.nanrui.domain;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 告警信息
|
||||
*
|
||||
* @author Lemon
|
||||
* @Date 2023/10/8 9:09
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class NRAlarmInfo {
|
||||
/**
|
||||
* 枪口编号
|
||||
*/
|
||||
@JSONField(name = "ConnectorID")
|
||||
private String connectorId;
|
||||
|
||||
/**
|
||||
* 告警时间
|
||||
* 格 式 为 yyyy-MM-dd HH:mm:ss
|
||||
*/
|
||||
@JSONField(name = "Alert_time")
|
||||
private String alertTime;
|
||||
|
||||
/**
|
||||
* 告警代码
|
||||
*/
|
||||
@JSONField(name = "Alert_code")
|
||||
private Integer alertCode;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
* 文字描述,最大长度 256 字符
|
||||
*/
|
||||
@JSONField(name = "Describe")
|
||||
private String describe;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
* 告警发生:0;告警恢复:1
|
||||
* 默认为 0
|
||||
*/
|
||||
@JSONField(name = "Status")
|
||||
private Integer status;
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.jsowell.thirdparty.nanrui.domain;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@@ -12,6 +15,9 @@ import java.math.BigDecimal;
|
||||
* @Date 2023/9/25 14:05
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class NRConnectorStatusInfo {
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.jsowell.thirdparty.nanrui.service;
|
||||
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
import com.jsowell.pile.dto.QueryStationInfoDTO;
|
||||
|
||||
import java.text.ParseException;
|
||||
@@ -23,9 +24,26 @@ public interface NRService {
|
||||
|
||||
|
||||
/**
|
||||
* 联联平台获取充电站信息
|
||||
* 获取充电站信息
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
Map<String, String> query_stations_info(QueryStationInfoDTO dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 推送告警信息
|
||||
* 当充电接口发生异常告警或故障时,运营商企业平台应立即主动推送信息到省、市两级监管平台
|
||||
* @param pileConnectorCode
|
||||
* @param connectorStatus
|
||||
* @return
|
||||
*/
|
||||
String notification_alarmInfo(String pileConnectorCode, String connectorStatus);
|
||||
|
||||
|
||||
/**
|
||||
* 设备状态变化推送
|
||||
* 当充电枪由 闲置 转为 充电 等状态发生变化时,运营商平台应立即推送当前状态到省、市两级监管平台。
|
||||
* 充电过程中运营商平台应 每分钟 上报充电包含电流、电压在内的监测数据。
|
||||
*/
|
||||
String notification_stationStatus(RealTimeMonitorData realTimeMonitorData);
|
||||
}
|
||||
@@ -2,15 +2,15 @@ package com.jsowell.thirdparty.nanrui.service.impl;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.jsowell.common.constant.CacheConstants;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
import com.jsowell.common.core.redis.RedisCache;
|
||||
import com.jsowell.common.enums.ykc.PileStatusEnum;
|
||||
import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.PageUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.pile.domain.PileBasicInfo;
|
||||
import com.jsowell.pile.domain.PileConnectorInfo;
|
||||
import com.jsowell.pile.domain.PileStationInfo;
|
||||
import com.jsowell.pile.domain.ThirdPartyPlatformConfig;
|
||||
import com.jsowell.pile.domain.*;
|
||||
import com.jsowell.pile.dto.QueryStationInfoDTO;
|
||||
import com.jsowell.pile.service.*;
|
||||
import com.jsowell.pile.vo.uniapp.CurrentTimePriceDetails;
|
||||
@@ -18,9 +18,7 @@ import com.jsowell.pile.vo.web.PileModelInfoVO;
|
||||
import com.jsowell.pile.vo.web.PileStationVO;
|
||||
import com.jsowell.thirdparty.lianlian.domain.ConnectorInfo;
|
||||
import com.jsowell.thirdparty.lianlian.domain.StationInfo;
|
||||
import com.jsowell.thirdparty.nanrui.domain.NRConnectorInfo;
|
||||
import com.jsowell.thirdparty.nanrui.domain.NREquipmentInfo;
|
||||
import com.jsowell.thirdparty.nanrui.domain.NRStationInfo;
|
||||
import com.jsowell.thirdparty.nanrui.domain.*;
|
||||
import com.jsowell.thirdparty.nanrui.service.NRService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -52,6 +50,12 @@ public class NRServiceImpl implements NRService {
|
||||
@Autowired
|
||||
private IPileBillingTemplateService pileBillingTemplateService;
|
||||
|
||||
@Autowired
|
||||
private IOrderBasicInfoService orderBasicInfoService;
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
/**
|
||||
* 充电站信息变化推送
|
||||
* @param stationId
|
||||
@@ -184,6 +188,79 @@ public class NRServiceImpl implements NRService {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 推送告警信息
|
||||
* @param pileConnectorCode
|
||||
* @param connectorStatus
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String notification_alarmInfo(String pileConnectorCode, String connectorStatus) {
|
||||
List<NRAlarmInfo> nrAlarmInfos = new ArrayList<>();
|
||||
// 从缓存中获取故障原因
|
||||
String redisKey = CacheConstants.PILE_HARDWARE_FAULT + pileConnectorCode;
|
||||
String faultReason = redisCache.getCacheObject(redisKey);
|
||||
int status = 0;
|
||||
if (StringUtils.equals(connectorStatus, "01")) {
|
||||
// 故障
|
||||
status = 1;
|
||||
}
|
||||
// 封装对象
|
||||
NRAlarmInfo alarmInfo = NRAlarmInfo.builder()
|
||||
.connectorId(pileConnectorCode)
|
||||
.alertTime(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS))
|
||||
.alertCode(120) // 120-预留
|
||||
.describe(faultReason)
|
||||
.status(status)
|
||||
|
||||
.build();
|
||||
nrAlarmInfos.add(alarmInfo);
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("AlarmInfos", nrAlarmInfos);
|
||||
|
||||
// TODO 发送请求
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备状态变化推送
|
||||
* @param realTimeMonitorData
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String notification_stationStatus(RealTimeMonitorData realTimeMonitorData) {
|
||||
String pileConnectorCode = realTimeMonitorData.getPileSn() + realTimeMonitorData.getConnectorCode();
|
||||
String connectorStatus = realTimeMonitorData.getConnectorStatus();
|
||||
String transactionCode = realTimeMonitorData.getTransactionCode();
|
||||
// 根据交易流水号查询订单信息
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByTransactionCode(transactionCode);
|
||||
// 封装对象
|
||||
NRConnectorStatusInfo nrConnectorStatusInfo = NRConnectorStatusInfo.builder()
|
||||
.connectorID(pileConnectorCode)
|
||||
.status(Integer.parseInt(connectorStatus))
|
||||
.currentA(Integer.parseInt(realTimeMonitorData.getOutputCurrent()))
|
||||
.voltageA(Integer.parseInt(realTimeMonitorData.getOutputVoltage()))
|
||||
.soc(BigDecimal.ZERO)
|
||||
.beginTime(DateUtils.formatDateTime(orderBasicInfo.getChargeStartTime()))
|
||||
.currentKwh(new BigDecimal(realTimeMonitorData.getChargingDegree()).setScale(3, BigDecimal.ROUND_HALF_UP))
|
||||
.timeStamp((int) (System.currentTimeMillis() / 1000))
|
||||
|
||||
.build();
|
||||
if (StringUtils.isNotBlank(realTimeMonitorData.getSOC())) {
|
||||
nrConnectorStatusInfo.setSoc(new BigDecimal(realTimeMonitorData.getSOC()).setScale(1, BigDecimal.ROUND_HALF_UP));
|
||||
}
|
||||
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("ConnectorStatusInfo", nrConnectorStatusInfo);
|
||||
|
||||
// TODO 发送请求
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备信息
|
||||
* @param stationId
|
||||
|
||||
Reference in New Issue
Block a user