diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStartChargeController.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStartChargeController.java index 1334f72d..704d5bb7 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStartChargeController.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStartChargeController.java @@ -49,67 +49,72 @@ public class QueryStartChargeController { if (startChargeRequest == null) { resp.setMsg("Request or token params validation failed"); } else { - StartChargeResponse startChargeResponse = new StartChargeResponse(); - startChargeResponse.setFailReason(0); - startChargeResponse.setSuccStat(1); - startChargeResponse.setStartChargeSeqStat(4); String startChargeSeq = startChargeRequest.getStartChargeSeq(); - String connectorId = startChargeRequest.getConnectorId(); - Map cacheGun = REDIS.getCacheMap("gun:".concat(connectorId)); - String terminalStatus = (String) cacheGun.get("vehicleGunStatus"); - String status = (String) cacheGun.get("status"); - EtOrderMapping etOrderMapping = new EtOrderMapping(); - Date now = DateUtils.getNowDate(); - etOrderMapping.setCreateTime(now); - etOrderMapping.setEvcsOrderNo(startChargeSeq); - if (!"空闲".equals(status)) { - resp.setMsg("终端状态异常:[".concat(status == null ? "未注册" : status).concat("]")); - emptyHorder(startChargeSeq, connectorId, etOrderMapping); - } else if ("否".equals(terminalStatus)) { - resp.setMsg("未插枪"); - emptyHorder(startChargeSeq, connectorId, etOrderMapping); + EtOrderMapping orderMapping = etOrderMappingRepo.findByEvcsOrderNo(startChargeSeq).orElse(null); + if (orderMapping != null) { + resp.setMsg("Duplicated StartChargeSeq"); } else { - String plateNum = startChargeRequest.getPlateNum(); - plateNum = plateNum == null ? startChargeRequest.getPlateNum2() : plateNum; - R res = pileOrderService.pileStartUpBy3rd(startChargeSeq, startChargeRequest.getDriverId(), - startChargeRequest.getChargingAmt(), plateNum, -1, connectorId); - startChargeResponse.setStartChargeSeq(startChargeSeq); - startChargeResponse.setConnectorID(connectorId); - resp.setMsg(res.getMsg()); - if (res.getCode() != 200) { - if (res.getCode() != 500) { - startChargeResponse.setFailReason(res.getCode()); - } else { - startChargeResponse.setFailReason(3); - } - startChargeResponse.setSuccStat(1); - startChargeResponse.setStartChargeSeqStat(4); + StartChargeResponse startChargeResponse = new StartChargeResponse(); + startChargeResponse.setFailReason(0); + startChargeResponse.setSuccStat(1); + startChargeResponse.setStartChargeSeqStat(4); + String connectorId = startChargeRequest.getConnectorId(); + Map cacheGun = REDIS.getCacheMap("gun:".concat(connectorId)); + String terminalStatus = (String) cacheGun.get("vehicleGunStatus"); + String status = (String) cacheGun.get("status"); + EtOrderMapping etOrderMapping = new EtOrderMapping(); + Date now = DateUtils.getNowDate(); + etOrderMapping.setCreateTime(now); + etOrderMapping.setEvcsOrderNo(startChargeSeq); + if (!"空闲".equals(status)) { + resp.setMsg("终端状态异常:[".concat(status == null ? "未注册" : status).concat("]")); + emptyHorder(startChargeSeq, connectorId, etOrderMapping); + } else if ("否".equals(terminalStatus)) { + resp.setMsg("未插枪"); emptyHorder(startChargeSeq, connectorId, etOrderMapping); } else { - Map etOrderData = (Map) res.getData(); - if (etOrderData != null) { - resp.setRet(EvcsConst.RET_SUCC); - startChargeResponse.setStartChargeSeqStat(1); - startChargeResponse.setSuccStat(0); - startChargeResponse.setFailReason(0); - Map pushOrder = new HashMap<>(); - pushOrder.put("startChargeSeqStat", 1); - pushOrder.put("internetSerialNumber", startChargeRequest.getStartChargeSeq()); - pushOrder.put("connectorID", connectorId); - pushOrder.put("startChargeNotificationStat", 0); - pushOrder.put("chargeOrderInfoNotificationStat", 0); - pushOrder.put("operatorId3rdpty", startChargeSeq.substring(0, 9)); - pushOrder.put("startTime", etOrderData.get("startTime")); - String orderNo = (String) etOrderData.get("orderNo"); - etOrderMapping.setXhOrderNo(orderNo); - REDIS.setCacheMap("pushOrder:".concat(orderNo), pushOrder); - } else { + String plateNum = startChargeRequest.getPlateNum(); + plateNum = plateNum == null ? startChargeRequest.getPlateNum2() : plateNum; + R res = pileOrderService.pileStartUpBy3rd(startChargeSeq, startChargeRequest.getDriverId(), + startChargeRequest.getChargingAmt(), plateNum, -1, connectorId); + startChargeResponse.setStartChargeSeq(startChargeSeq); + startChargeResponse.setConnectorID(connectorId); + resp.setMsg(res.getMsg()); + if (res.getCode() != 200) { + if (res.getCode() != 500) { + startChargeResponse.setFailReason(res.getCode()); + } else { + startChargeResponse.setFailReason(3); + } + startChargeResponse.setSuccStat(1); + startChargeResponse.setStartChargeSeqStat(4); emptyHorder(startChargeSeq, connectorId, etOrderMapping); + } else { + Map etOrderData = (Map) res.getData(); + if (etOrderData != null) { + resp.setRet(EvcsConst.RET_SUCC); + startChargeResponse.setStartChargeSeqStat(1); + startChargeResponse.setSuccStat(0); + startChargeResponse.setFailReason(0); + Map pushOrder = new HashMap<>(); + pushOrder.put("startChargeSeqStat", 1); + pushOrder.put("internetSerialNumber", startChargeRequest.getStartChargeSeq()); + pushOrder.put("connectorID", connectorId); + pushOrder.put("startChargeNotificationStat", 0); + pushOrder.put("chargeOrderInfoNotificationStat", 0); + pushOrder.put("operatorId3rdpty", startChargeSeq.substring(0, 9)); + pushOrder.put("startTime", etOrderData.get("startTime")); + String orderNo = (String) etOrderData.get("orderNo"); + etOrderMapping.setXhOrderNo(orderNo); + REDIS.setCacheMap("pushOrder:".concat(orderNo), pushOrder); + } else { + emptyHorder(startChargeSeq, connectorId, etOrderMapping); + } } } + etOrderMappingRepo.save(etOrderMapping); + resp.setData(JSONUtil.toJSONString(startChargeResponse)); } - etOrderMappingRepo.save(etOrderMapping); - resp.setData(JSONUtil.toJSONString(startChargeResponse)); } return resp; }