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)); } }