From 708c121dafd545fd4f7caded0c7e29506be378c1 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 06 二月 2025 13:56:59 +0800
Subject: [PATCH] 添加测试环境的itod配置

---
 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