Преглед изворни кода

fix(charging): 修正计费策略查询和充电时长计算错误

- 删除未使用的 stationId 变量
- 改正 PolicyFee 查询中使用的 stationInfoId 字段,改为 thirdPartyConnectorInfo.getId()
- 优化充电时长字符串拼接,使用 MOD 函数替代取余操作
- 修正充电订单与状态表连接条件,改为 coi.start_charge_seq = tcs.start_charge_seq
SheepHy пре 3 дана
родитељ
комит
86f7fcd1c0

+ 1 - 2
src/main/java/com/zsElectric/boot/charging/service/impl/ChargingReceptionServiceImpl.java

@@ -233,7 +233,6 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
 
             ThirdPartyConnectorInfo thirdPartyConnectorInfo = connectorInfoMapper.selectOne(Wrappers.<ThirdPartyConnectorInfo>lambdaQuery()
                     .eq(ThirdPartyConnectorInfo::getConnectorId, connectorID).last("LIMIT 1"));
-            String stationId = thirdPartyConnectorInfo.getStationId();
 
             //平台服务费
             BigDecimal serviceFee = BigDecimal.ZERO;
@@ -243,7 +242,7 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
                 String itemFlag = node.get("ItemFlag").asText();
                 double detailPower = node.get("DetailPower").asDouble();
                 PolicyFee policyFee = policyFeeMapper.selectOne(Wrappers.<PolicyFee>lambdaQuery()
-                        .eq(PolicyFee::getStationInfoId, stationId)
+                        .eq(PolicyFee::getStationInfoId, thirdPartyConnectorInfo.getId())
                         .eq(PolicyFee::getPeriodFlag, Integer.parseInt(itemFlag))
                         .last("LIMIT 1"));
                 BigDecimal opFee = policyFee.getOpFee();

+ 3 - 3
src/main/resources/mapper/business/ThirdPartyStationInfoMapper.xml

@@ -583,8 +583,8 @@
             TIMESTAMPDIFF(SECOND, tcs.start_time, tcs.end_time) AS charging_duration,
             CONCAT(
                 LPAD(FLOOR(TIMESTAMPDIFF(SECOND, tcs.start_time, tcs.end_time) / 3600), 2, '0'), ':',
-                LPAD(FLOOR((TIMESTAMPDIFF(SECOND, tcs.start_time, tcs.end_time) % 3600) / 60), 2, '0'), ':',
-                LPAD(TIMESTAMPDIFF(SECOND, tcs.start_time, tcs.end_time) % 60, 2, '0')
+                LPAD(FLOOR(MOD(TIMESTAMPDIFF(SECOND, tcs.start_time, tcs.end_time), 3600) / 60), 2, '0'), ':',
+                LPAD(MOD(TIMESTAMPDIFF(SECOND, tcs.start_time, tcs.end_time), 60), 2, '0')
             ) AS charging_duration_desc,
             IFNULL(tcs.total_power, 0) AS total_power,
             IFNULL(tcs.elec_money, 0) AS elec_money,
@@ -602,7 +602,7 @@
             DATE_FORMAT(tcs.update_time, '%Y-%m-%d %H:%i:%s') AS last_update_time
         FROM c_charge_order_info coi
         INNER JOIN third_party_charge_status tcs
-            ON coi.charge_order_no = tcs.start_charge_seq
+            ON coi.start_charge_seq = tcs.start_charge_seq
         INNER JOIN third_party_connector_info tpci
             ON tcs.connector_id = tpci.connector_id
             AND tpci.is_deleted = 0