From 37d2350961bc16543d28e2c9c158dfb2c3734d73 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 05 二月 2025 15:05:32 +0800 Subject: [PATCH] 合并代码 --- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java | 269 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 217 insertions(+), 52 deletions(-) diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java index ca33eb3..693a746 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java @@ -8,9 +8,7 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.integration.drainage.kuaidian.TCECKDUtil; -import com.ruoyi.integration.drainage.kuaidian.model.NotificationStationChangeResult; -import com.ruoyi.integration.drainage.kuaidian.model.QueryTerminalCode; -import com.ruoyi.integration.drainage.kuaidian.model.QueryTerminalCodeResult; +import com.ruoyi.integration.drainage.kuaidian.model.*; import com.ruoyi.integration.drainage.model.*; import com.ruoyi.integration.drainage.model.enu.*; import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient; @@ -22,11 +20,16 @@ import com.ruoyi.other.api.domain.Operator; import com.ruoyi.other.api.feignClient.OperatorClient; import com.ruoyi.system.api.model.LoginUser; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; @@ -42,6 +45,7 @@ * @author zhibing.pu * @Date 2025/1/21 17:52 */ +@Slf4j @RestController @RequestMapping("/evcs/v1.0") public class TCECController { @@ -75,6 +79,9 @@ @Resource private ParkingLotClient parkingLotClient; + @Resource + private ParkingRecordClient parkingRecordClient; + /** @@ -99,7 +106,10 @@ baseResult.setTimeStamp(mapKey); baseResult.setSeq(String.format("%04d", integer)); //清空小于当前时间的map中的无效数据 - for (Long k : map.keySet()) { + Set<Long> set = map.keySet(); + Iterator<Long> iterator = set.iterator(); + while (iterator.hasNext()){ + Long k = iterator.next(); if(k <= (mapKey - 10)){ map.remove(k); } @@ -134,6 +144,7 @@ } Operator operator = r.getData(); + baseResult.setOperator(operator); baseRequest.setOperator(operator); //校验签名 String sign = TCECUtil.buildSign(baseRequest); @@ -142,7 +153,6 @@ baseResult.setMsg("签名校验失败"); return baseResult; } - baseResult.setOperator(operator); return baseResult; } @@ -159,7 +169,7 @@ BaseResult baseResult = requestCheck(false, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } QueryTokenResult queryTokenResult = new QueryTokenResult(); @@ -169,9 +179,9 @@ queryTokenResult.setFailReason(1); //参数加密 String jsonString = JSON.toJSONString(queryTokenResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -183,9 +193,9 @@ queryTokenResult.setFailReason(2); //参数加密 String jsonString = JSON.toJSONString(queryTokenResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -200,9 +210,9 @@ queryTokenResult.setTokenAvailableTime(expires_in * 60); //参数加密 String jsonString = JSON.toJSONString(queryTokenResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -220,7 +230,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -244,9 +254,9 @@ queryStationsInfoResult.setStationInfos(buildSite(parkingLots, siteListPaging.getRecords())); //参数加密 String jsonString = JSON.toJSONString(queryStationsInfoResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -491,7 +501,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -548,9 +558,9 @@ result.setStationStatusInfos(StationStatusInfos); //参数加密 String jsonString = JSON.toJSONString(result); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -568,7 +578,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -618,9 +628,9 @@ result.setStationStats(stationStats); //参数加密 String jsonString = JSON.toJSONString(result); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -635,7 +645,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -685,9 +695,9 @@ } //参数加密 String jsonString = JSON.toJSONString(queryEquipAuthResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -703,7 +713,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -724,9 +734,9 @@ baseResult.setMsg("connectorID 参数无效"); //参数加密 String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Integer accountingStrategyId = tChargingGun.getAccountingStrategyId(); @@ -741,9 +751,9 @@ queryEquipBusinessPolicyResult.setSumPeriod(0); //参数加密 String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } List<PolicyInfo> PolicyInfos = new ArrayList<>(); @@ -758,9 +768,9 @@ queryEquipBusinessPolicyResult.setPolicyInfos(PolicyInfos); //参数加密 String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -809,7 +819,7 @@ /** - * 请求定充电 + * 请求开始充电 * @return */ @PostMapping("/query_start_charge") @@ -818,7 +828,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -841,9 +851,9 @@ result.setStartChargeSeqStat(5); //参数加密 String jsonString = JSON.toJSONString(result); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } //设备离线 @@ -853,9 +863,9 @@ result.setStartChargeSeqStat(5); //参数加密 String jsonString = JSON.toJSONString(result); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } //调用充电接口 @@ -863,8 +873,8 @@ addTripartitePlatformOrder.setStartChargeSeq(queryStartCharge.getStartChargeSeq()); addTripartitePlatformOrder.setChargingGunId(tChargingGun.getId()); addTripartitePlatformOrder.setOperatorId(operator.getOperatorId()); - addTripartitePlatformOrder.setPaymentAmount(queryStartCharge.getPaymentAmount()); - addTripartitePlatformOrder.setRechargePaymentType(queryStartCharge.getPaymentType()); + addTripartitePlatformOrder.setPaymentAmount(queryStartCharge.getChargingAmt()); + addTripartitePlatformOrder.setRechargePaymentType(0); addTripartitePlatformOrder.setPlateNum(queryStartCharge.getPlateNum()); R order = chargingOrderClient.addTripartitePlatformOrder(addTripartitePlatformOrder); //启动失败 @@ -874,9 +884,9 @@ result.setStartChargeSeqStat(2); //参数加密 String jsonString = JSON.toJSONString(result); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } result.setStartChargeSeqStat(1); @@ -884,9 +894,9 @@ result.setFailReason(0); //参数加密 String jsonString = JSON.toJSONString(result); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -946,7 +956,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -957,9 +967,9 @@ QueryEquipChargeStatusResult queryEquipChargeStatusResult = buildQueryEquipChargeStatusResult(queryEquipChargeStatus.getStartChargeSeq()); //参数加密 String jsonString = JSON.toJSONString(queryEquipChargeStatusResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -1121,7 +1131,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -1141,16 +1151,16 @@ queryStopChargeResult.setFailReason(3); //参数加密 String jsonString = JSON.toJSONString(queryStopChargeResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } //参数加密 String jsonString = JSON.toJSONString(queryStopChargeResult); - String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); baseResult.setData(encrypt); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } @@ -1267,6 +1277,12 @@ notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getTotalElectricity()); notificationChargeOrderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge()); notificationChargeOrderInfo.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge())); + notificationChargeOrderInfo.setTotalDelayMoney(BigDecimal.ZERO); + TParkingRecord parkingRecord = parkingRecordClient.getParkingRecordByChargingOrderId(chargingOrder.getId()).getData(); + if(null != parkingRecord && parkingRecord.getStatus() == 3){ + notificationChargeOrderInfo.setTotalDelayMoney(parkingRecord.getPayment()); + } + //结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止) switch (chargingOrder.getEndMode()){ case 0: @@ -1330,7 +1346,7 @@ BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ baseResult.setData(""); - baseResult.setSig(TCECUtil.buildSign(baseResult)); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); return baseResult; } Operator operator = baseResult.getOperator(); @@ -1344,9 +1360,158 @@ //参数加密 String jsonString = JSON.toJSONString(queryTerminalCodeResult); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); + baseResult.setData(encrypt); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); + return baseResult; + } + + + /** + * 推送充电车牌号 + * 客户归属运营商向设备运营商推送充电用户车牌号减免停车费,多次推送以最后一次车牌号为准 + * @param baseRequest + * @param request + * @return + */ + @PostMapping("/notification_charge_carnum") + public BaseResult notificationChargeCarnum(@RequestBody BaseRequest baseRequest, HttpServletRequest request){ + //校验token和签名 + BaseResult baseResult = requestCheck(true, baseRequest, request); + if(0 != baseResult.getRet()){ + baseResult.setData(""); + baseResult.setSig(TCECUtil.buildSign(baseResult)); + return baseResult; + } + Operator operator = baseResult.getOperator(); + //解密参数 + String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv()); + NotificationChargeCarnum notificationChargeCarnum = JSON.parseObject(decrypt, NotificationChargeCarnum.class); + + NotificationChargeCarnumResult notificationChargeCarnumResult = new NotificationChargeCarnumResult(); + notificationChargeCarnumResult.setStartChargeSeqs(notificationChargeCarnum.getStartChargeSeqs()); + notificationChargeCarnumResult.setSuccStat(0); + notificationChargeCarnumResult.setFailReason(0); + TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(notificationChargeCarnum.getStartChargeSeqs()).getData(); + if(null == chargingOrder){ + notificationChargeCarnumResult.setSuccStat(1); + notificationChargeCarnumResult.setFailReason(1); + }else{ + //待处理相关业务逻辑 + } + //参数加密 + String jsonString = JSON.toJSONString(notificationChargeCarnumResult); String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv()); baseResult.setData(encrypt); baseResult.setSig(TCECUtil.buildSign(baseResult)); return baseResult; } + + + /** + * 账单拉取(快电) + * @param baseRequest + * @param request + * @return + */ + @PostMapping("/query_charge_order_info") + public BaseResult queryChargeOrderInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){ + //校验token和签名 + BaseResult baseResult = requestCheck(true, baseRequest, request); + if(0 != baseResult.getRet()){ + baseResult.setData(""); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); + return baseResult; + } + Operator operator = baseResult.getOperator(); + //解密参数 + String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv()); + QueryChargeOrderInfo queryChargeOrderInfo = JSON.parseObject(decrypt, QueryChargeOrderInfo.class); + //构建返回结果 + QueryChargeOrderInfoResult result = buildQueryChargeOrderInfoResult(queryChargeOrderInfo); + //参数加密 + String jsonString = JSON.toJSONString(result); + String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv()); + baseResult.setData(encrypt); + baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); + return baseResult; + } + + + + /** + * 构建充电账单拉取实体 + * @param queryChargeOrderInfo + * @return + */ + public QueryChargeOrderInfoResult buildQueryChargeOrderInfoResult(QueryChargeOrderInfo queryChargeOrderInfo){ + //构建返回结果 + QueryChargeOrderInfoResult queryChargeOrderInfoResult = new QueryChargeOrderInfoResult(); + List<OrderInfo> orderInfos = new ArrayList<>(); + List<String> startChargeSeqs = queryChargeOrderInfo.getStartChargeSeqs(); + List<TChargingOrder> chargingOrders = chargingOrderClient.getChargingOrderByStartChargeSeqs(startChargeSeqs).getData(); + for (TChargingOrder chargingOrder : chargingOrders) { + if(null == chargingOrder){ + return null; + } + OrderInfo orderInfo = new OrderInfo(); + orderInfo.setStartChargeSeq(chargingOrder.getStartChargeSeq()); + orderInfo.setConnectorID(chargingOrder.getChargingGunId().toString()); + orderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + orderInfo.setEndTime((null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + orderInfo.setTotalPower(chargingOrder.getTotalElectricity()); + orderInfo.setTotalElecMoney(chargingOrder.getElectrovalence()); + orderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge()); + orderInfo.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge())); + //结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止) + switch (chargingOrder.getEndMode()){ + case 0: + orderInfo.setStopReason(3); + break; + case 1: + orderInfo.setStopReason(0); + break; + case 2: + orderInfo.setStopReason(2); + break; + case 3: + orderInfo.setStopReason(4); + break; + } + //构建充电明细 + List<ChargeDetail> chargeDetails = new ArrayList<>(); + List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData(); + + LocalDateTime startTime = chargingOrder.getStartTime(); + LocalDateTime endTime = chargingOrder.getEndTime(); + String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + for (TChargingOrderAccountingStrategy datum : data) { + ChargeDetail chargeDetail = new ChargeDetail(); + if(s_format.equals(e_format)){ + chargeDetail.setDetailStartTime(s_format + " " + datum.getStartTime() + ":00"); + chargeDetail.setDetailEndTime(s_format + " " + datum.getEndTime() + ":59"); + }else{ + String substring = datum.getEndTime().substring(0, datum.getEndTime().indexOf(":")); + if(Integer.valueOf(substring) > 12){ + chargeDetail.setDetailStartTime(s_format + " " + datum.getStartTime() + ":00"); + chargeDetail.setDetailEndTime(s_format + " " + datum.getEndTime() + ":59"); + }else{ + chargeDetail.setDetailStartTime(e_format + " " + datum.getStartTime() + ":00"); + chargeDetail.setDetailEndTime(e_format + " " + datum.getEndTime() + ":59"); + } + } + chargeDetail.setElecPrice(datum.getElectrovalence()); + chargeDetail.setSevicePrice(datum.getServiceCharge()); + chargeDetail.setDetailPower(datum.getChargingCapacity()); + chargeDetail.setDetailElecMoney(datum.getPeriodElectricPrice()); + chargeDetail.setDetailSeviceMoney(datum.getPeriodServicePrice()); + chargeDetails.add(chargeDetail); + } + orderInfo.setChargeDetails(chargeDetails); + orderInfos.add(orderInfo); + } + queryChargeOrderInfoResult.setOrderInfos(orderInfos); + return queryChargeOrderInfoResult; + } } -- Gitblit v1.7.1