From 771a4c8baf737771ac08274670e2d9d6057adcbd Mon Sep 17 00:00:00 2001 From: wen <1455474577@qq.com> Date: Mon, 1 Nov 2021 16:18:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90query=5Fequip=5Fcharge=5Fstat?= =?UTF-8?q?us=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91(=E6=9C=AA=E6=B5=8B?= =?UTF-8?q?=E8=AF=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xhpc/evcs/encryption/EvcsConst.java | 6 +- .../api/QueryEquipChargeStatusController.java | 122 +++++++++++++----- 2 files changed, 94 insertions(+), 34 deletions(-) diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/EvcsConst.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/EvcsConst.java index aef7ddc0..5d77557a 100644 --- a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/EvcsConst.java +++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/EvcsConst.java @@ -2,7 +2,9 @@ package com.xhpc.evcs.encryption; public class EvcsConst { - public static final String RET_SUCC = "0";//请求成功 - public static final String RET_FAIl = "1";//请求成功 + //请求成功 + public static final String RET_SUCC = "0"; + //请求失败 + public static final String RET_FAIL = "1"; } diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryEquipChargeStatusController.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryEquipChargeStatusController.java index 53375073..db88fbbe 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryEquipChargeStatusController.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryEquipChargeStatusController.java @@ -1,6 +1,10 @@ package com.xhpc.evcs.api; -import com.xhpc.evcs.dto.*; +import com.xhpc.common.data.redis.CacheOrderData; +import com.xhpc.evcs.dto.ChargeInfoRequest; +import com.xhpc.evcs.dto.CommonRequest; +import com.xhpc.evcs.dto.CommonResponse; +import com.xhpc.evcs.dto.EquipChargeStatus; import com.xhpc.evcs.encryption.EvcsConst; import com.xhpc.evcs.http.ServerInternalException; import com.xhpc.evcs.jpa.XhpcHistoryOrderRepository; @@ -13,7 +17,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.io.IOException; -import java.util.Date; +import java.util.Map; + +import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS; @RestController() public class QueryEquipChargeStatusController { @@ -23,46 +29,98 @@ public class QueryEquipChargeStatusController { @PostMapping("/v1/query_equip_charge_status") public CommonResponse QueryEquipChargeStatus(@RequestBody CommonRequest commonRequest) throws IOException { - + //创建数据实体类 EquipChargeStatus equipChargeStatus = new EquipChargeStatus(); + //充电订单号 三方传进来都是27位 String data = commonRequest.getData(); ChargeInfoRequest chargeInfoRequest = JSONUtil.readParams(data, ChargeInfoRequest.class); - String responseBody = ""; String startChargeSeq = chargeInfoRequest.getStartChargeSeq(); - // todo 三方对接 到et_order_mapping表查找xh_order_no - XhpcHistoryOrder xhpcHistoryOrder = - xhpcHistoryOrderRepository.findByInternetSerialNumber(startChargeSeq).orElse(null); - ChargeOrderInfo chargeOrderInfo = new ChargeOrderInfo(xhpcHistoryOrder); - if (chargeOrderInfo == null) { + equipChargeStatus.setStartChargeSeq(startChargeSeq); + //充电订单状态 + XhpcHistoryOrder xhpcHistoryOrder = xhpcHistoryOrderRepository.findByInternetSerialNumber(startChargeSeq).orElse(null); + if (xhpcHistoryOrder == null) { throw new ServerInternalException("未查询到该订单编号数据"); } - equipChargeStatus.setStartChargeSeq(chargeOrderInfo.getStartChargeSeq()); - equipChargeStatus.setStartChargeSeqStat(chargeOrderInfo.getStartChargeSeqStat()); - equipChargeStatus.setConnectorID(chargeOrderInfo.getConnectorID()); - equipChargeStatus.setStartTime(chargeOrderInfo.getStartTime()); - String endTime; - if (chargeOrderInfo.getEndTime() != null) { - endTime = chargeOrderInfo.getEndTime(); - } else { - endTime = DateUtil.date2String(new Date(), "yyyy-MM-dd HH:mm:ss"); + String internalOrderNum = xhpcHistoryOrder.getSerialNumber(); + Map order = REDIS.getCacheMap("order" + internalOrderNum); + String orderStatus = (String) order.get("status"); + int startChargeSeqStat = 0; + switch (orderStatus) { + case "启动中": + startChargeSeqStat = 1; + break; + case "充电中": + startChargeSeqStat = 2; + break; + case "停止中": + startChargeSeqStat = 3; + break; + case "结束中": + startChargeSeqStat = 4; + break; + default: + startChargeSeqStat = 5; + break; } - equipChargeStatus.setEndTime(endTime); - equipChargeStatus.setTotalPower(chargeOrderInfo.getTotalPower()); - equipChargeStatus.setElecMoney(chargeOrderInfo.getTotalElecMoney()); - equipChargeStatus.setSeviceMoney(chargeOrderInfo.getTotalSeviceMoney()); - equipChargeStatus.setTotalMoney(chargeOrderInfo.getTotalMoney()); - ChargeDetails detail = new ChargeDetails(); - detail.setDetailStartTime(equipChargeStatus.getStartTime()); - detail.setDetailEndTime(endTime); - detail.setDetailSeviceMoney(equipChargeStatus.getSeviceMoney()); - detail.setDetailElecMoney(equipChargeStatus.getElecMoney()); - detail.setDetailPower(equipChargeStatus.getTotalPower()); - ChargeDetails[] details = {detail}; - equipChargeStatus.setChargeDetails(details); + equipChargeStatus.setStartChargeSeqStat(startChargeSeqStat); + //充电设备接口编码 + CacheOrderData cacheOrderData = (CacheOrderData) order.get("orderData"); + String pileNo = cacheOrderData.getPileNo(); + String gunId = cacheOrderData.getGunId(); + String connectorId = pileNo + gunId; + //充电设备接口状态 + Map cacheGunData = REDIS.getCacheMap("gun:" + connectorId); + String gunStatus = (String) cacheGunData.get("status"); + int connectorStatus = 0; + switch (gunStatus) { + case "空闲": + connectorStatus = 1; + break; + case "离线": + connectorStatus = 2; + break; + case "故障": + connectorStatus = 255; + break; + default: + connectorStatus = 3; + break; + } + equipChargeStatus.setConnectorStatus(connectorStatus); + //A相电流 + String current = (String) cacheGunData.get("current"); + Double currentA = Double.valueOf(current); + equipChargeStatus.setCurrentA(currentA); + //A相电压 + String voltage = (String) cacheGunData.get("voltage"); + Double voltageA = Double.valueOf(voltage); + equipChargeStatus.setVoltageA(voltageA); + //电池剩余电量 + Integer endSoc = cacheOrderData.getEndSoc(); + Double soc = Double.valueOf(endSoc); + equipChargeStatus.setVoltageA(soc); + //开始充电时间 + String startTime = cacheOrderData.getStartTime(); + equipChargeStatus.setStartTime(startTime); + //本次采样时间 直接new一个当前时间的Date就可以了 + equipChargeStatus.setEndTime(DateUtil.getNowDateStr()); + //累计充电量 + double totalPowerQuantity = (double) cacheOrderData.getTotalPowerQuantity(); + double totalPower = totalPowerQuantity / 10000; + equipChargeStatus.setTotalPower(totalPower); + +// ChargeDetails detail = new ChargeDetails(); +// detail.setDetailStartTime(equipChargeStatus.getStartTime()); +// detail.setDetailEndTime(endTime); +// detail.setDetailSeviceMoney(equipChargeStatus.getSeviceMoney()); +// detail.setDetailElecMoney(equipChargeStatus.getElecMoney()); +// detail.setDetailPower(equipChargeStatus.getTotalPower()); +// ChargeDetails[] details = {detail}; +// equipChargeStatus.setChargeDetails(details); + CommonResponse response = new CommonResponse(); response.setRet(EvcsConst.RET_SUCC); response.setData(JSONUtil.toJSONString(equipChargeStatus)); return response; } - }