新增 南瑞相关接口

This commit is contained in:
Lemon
2023-10-10 16:20:45 +08:00
parent 4babf55fec
commit ff9a10c992
8 changed files with 181 additions and 15 deletions

View File

@@ -0,0 +1,114 @@
package com.jsowell.pile.domain.nanrui;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 订单信息
*
* @author Lemon
* @Date 2023/9/25 14:33
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class NROrderInfo {
/**
* 运营商 ID
* 统一社会信用代码
*/
@JSONField(name = "OperatorID")
private String operatorId;
/**
* 充电设备接口编码
*/
@JSONField(name = "ConnectorID")
private String connectorId;
/**
* 充电业务编号
*/
@JSONField(name = "StartChargeSeq")
private String startChargeSeq;
/**
* 用户发起充电类型
* 1:充电运营商平台注册用户
* 2:监管平台注册用户
* 3:其他
*/
@JSONField(name = "UserChargeType")
private Integer userChargeType;
/**
* 本次充电电量
* 单位 kWh精度 0.001
* 如果不设置峰谷电价,平电量等于本次充电电量,其他分电量为零
*/
@JSONField(name = "Elect")
private BigDecimal elect;
/**
* 尖阶段电量
* 单位 kWh精度 0.001
*/
@JSONField(name = "CuspElect")
private BigDecimal cuspElect;
/**
* 峰阶段电量
* 单位 kWh精度 0.001
*/
@JSONField(name = "PeakElect")
private BigDecimal peakElect;
/**
* 平阶段电量
* 单位 kWh精度 0.001
*/
@JSONField(name = "FlatElect")
private BigDecimal flatElect;
/**
* 谷阶段电量
* 单位 kWh精度 0.001
*/
@JSONField(name = "ValleyElect")
private BigDecimal valleyElect;
/**
* 本次充电开始时间
* yyyy-MM-dd HH:mm:ss
*/
@JSONField(name = "StartTime")
private String startTime;
/**
* 本次充电结束时间
* yyyy-MM-dd HH:mm:ss
*
*/
@JSONField(name = "EndTime")
private String endTime;
/**
* 电表总起值
* 单位 kWh精度 0.001
*/
@JSONField(name = "MeterValueStart")
private BigDecimal meterValueStart;
/**
* 电表总止值
* 单位 kWh精度 0.001
*/
@JSONField(name = "MeterValueEnd")
private BigDecimal meterValueEnd;
}

View File

@@ -0,0 +1,28 @@
package com.jsowell.pile.dto.nanrui;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
/**
* 南瑞平台查询订单信息DTO
*
* @author Lemon
* @Date 2023/10/10 14:59
*/
@Data
public class NRQueryOrderDTO {
private String orderCode;
/**
* yyyy-MM-dd HH:mm:ss 格式,必填,以充电结束时间为准
*/
@JSONField(name = "QueryStartTime")
private String queryStartTime;
/**
* yyyy-MM-dd HH:mm:ss 格式,必填,以充电结束时间为准
*/
@JSONField(name = "QueryEndTime")
private String queryEndTime;
}

View File

@@ -2,7 +2,9 @@ package com.jsowell.pile.mapper;
import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.OrderDetail;
import com.jsowell.pile.domain.nanrui.NROrderInfo;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
import com.jsowell.pile.vo.uniapp.OrderVO;
@@ -246,4 +248,11 @@ public interface OrderBasicInfoMapper {
* @return
*/
int updateMerchantByStationId(@Param("stationId")Long stationId, @Param("newMerchantId")String newMerchantId);
/**
* 通过订单编号获取南瑞平台所需要的订单数据信息
* @param dto
* @return
*/
List<NROrderInfo> getNROrderInfoByOrderCode(@Param("dto") NRQueryOrderDTO dto);
}

View File

@@ -6,7 +6,9 @@ import com.jsowell.adapay.vo.OrderSettleResult;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.pile.domain.*;
import com.jsowell.pile.domain.nanrui.NROrderInfo;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
@@ -353,4 +355,18 @@ public interface IOrderBasicInfoService {
* @return
*/
int updateMerchantByStationId(Long stationId, String newMerchantId);
/**
* 通过订单编号获取南瑞平台所需要的订单数据信息
* @param orderCode
* @return
*/
NROrderInfo getNROrderInfoByOrderCode(String orderCode);
/**
* 通过充电结束时间批量查询
* @param dto
* @return
*/
List<NROrderInfo> getNROrderInfos(NRQueryOrderDTO dto);
}

View File

@@ -35,7 +35,9 @@ import com.jsowell.common.util.bean.BeanUtils;
import com.jsowell.common.util.id.IdUtils;
import com.jsowell.common.util.id.SnowflakeIdWorker;
import com.jsowell.pile.domain.*;
import com.jsowell.pile.domain.nanrui.NROrderInfo;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
@@ -165,6 +167,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
@Autowired
private ClearingBillInfoService clearingBillInfoService;
@Autowired
private IPileMsgRecordService pileMsgRecordService;
/**
* 条件查询订单基本信息
*
@@ -989,6 +994,39 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
return orderBasicInfoMapper.updateMerchantByStationId(stationId, newMerchantId);
}
/**
* 通过订单编号获取南瑞平台所需要的订单数据信息
* @param orderCode
* @return
*/
@Override
public NROrderInfo getNROrderInfoByOrderCode(String orderCode) {
NRQueryOrderDTO dto = new NRQueryOrderDTO();
dto.setOrderCode(orderCode);
List<NROrderInfo> nrOrderInfos = orderBasicInfoMapper.getNROrderInfoByOrderCode(dto);
if (CollectionUtils.isEmpty(nrOrderInfos)) {
return null;
}
// 此方法仅通过订单编号查,因此只有一条数据
NROrderInfo nrOrderInfo = nrOrderInfos.get(0);
// 将组织机构代码截取后九位
String organizationCode = nrOrderInfo.getOperatorId();
String operatorId = StringUtils.substring(organizationCode, organizationCode.length() - 9);
nrOrderInfo.setOperatorId(operatorId);
nrOrderInfo.setUserChargeType(1);
// TODO 获取电表总起、止值
// pileMsgRecordService.getPileFeedList()
nrOrderInfo.setMeterValueStart(BigDecimal.ZERO);
nrOrderInfo.setMeterValueEnd(BigDecimal.ZERO);
return nrOrderInfo;
}
@Override
public List<NROrderInfo> getNROrderInfos(NRQueryOrderDTO dto) {
return orderBasicInfoMapper.getNROrderInfoByOrderCode(dto);
}
/**
* 卡状态解锁
*/