mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-08-14 02:03:54 +08:00
复用 settleOrder 主路径纠正状态/锁/实时数据取值等问题,补充 mock 单测与 sys_job SQL;交易记录到达时按实时曲线估算尖峰平谷仅打日志对比,不参与结算。
61 lines
2.5 KiB
Java
61 lines
2.5 KiB
Java
package com.jsowell.pile.util;
|
|
|
|
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
|
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
|
|
import com.jsowell.pile.domain.OrderBasicInfo;
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
import java.util.Date;
|
|
|
|
/**
|
|
* SettlementDataConverter 单元测试
|
|
*/
|
|
public class SettlementDataConverterTest {
|
|
|
|
@Test
|
|
public void testConvertKeepsPileAmountWithoutTouBreakdown() {
|
|
OrderBasicInfo order = new OrderBasicInfo();
|
|
order.setOrderCode("O001");
|
|
order.setTransactionCode("T001");
|
|
order.setPileSn("32010600000001");
|
|
order.setConnectorCode("01");
|
|
order.setChargeStartTime(new Date(System.currentTimeMillis() - 3600_000L));
|
|
order.setChargeEndTime(new Date(System.currentTimeMillis() - 1200_000L));
|
|
|
|
RealTimeMonitorData realTime = new RealTimeMonitorData();
|
|
realTime.setTransactionCode("T001");
|
|
realTime.setChargingDegree("12.3456");
|
|
realTime.setChargingAmount("23.45");
|
|
realTime.setLossDegree("12.3456");
|
|
realTime.setDateTime("2026-08-11 12:00:00");
|
|
|
|
TransactionRecordsData data = SettlementDataConverter.convertFromRealTimeData(order, realTime);
|
|
Assert.assertEquals("23.45", data.getConsumptionAmount());
|
|
Assert.assertEquals("12.3456", data.getTotalElectricity());
|
|
Assert.assertNull("不应填充尖段电量,否则 settleOrder 会改用平台计价", data.getSharpUsedElectricity());
|
|
Assert.assertNull(data.getPeakUsedElectricity());
|
|
Assert.assertNull(data.getFlatUsedElectricity());
|
|
Assert.assertNull(data.getValleyUsedElectricity());
|
|
Assert.assertEquals("无交易记录自动结算", data.getStopReasonMsg());
|
|
}
|
|
|
|
@Test
|
|
public void testIsValidForSettlement() {
|
|
RealTimeMonitorData ok = new RealTimeMonitorData();
|
|
ok.setChargingDegree("1.0");
|
|
ok.setChargingAmount("1.2");
|
|
Assert.assertTrue(SettlementDataConverter.isValidForSettlement(ok));
|
|
|
|
RealTimeMonitorData zeroAmount = new RealTimeMonitorData();
|
|
zeroAmount.setChargingDegree("1.0");
|
|
zeroAmount.setChargingAmount("0");
|
|
Assert.assertFalse(SettlementDataConverter.isValidForSettlement(zeroAmount));
|
|
|
|
RealTimeMonitorData zeroDegree = new RealTimeMonitorData();
|
|
zeroDegree.setChargingDegree("0");
|
|
zeroDegree.setChargingAmount("1.2");
|
|
Assert.assertFalse(SettlementDataConverter.isValidForSettlement(zeroDegree));
|
|
}
|
|
}
|