完成query_equip_charge_status接口开发(未测试)

This commit is contained in:
wen 2021-11-01 16:18:56 +08:00
parent 3b5314db40
commit 771a4c8baf
2 changed files with 94 additions and 34 deletions

View File

@ -2,7 +2,9 @@ package com.xhpc.evcs.encryption;
public class EvcsConst { 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";
} }

View File

@ -1,6 +1,10 @@
package com.xhpc.evcs.api; 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.encryption.EvcsConst;
import com.xhpc.evcs.http.ServerInternalException; import com.xhpc.evcs.http.ServerInternalException;
import com.xhpc.evcs.jpa.XhpcHistoryOrderRepository; 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 org.springframework.web.bind.annotation.RestController;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.util.Map;
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
@RestController() @RestController()
public class QueryEquipChargeStatusController { public class QueryEquipChargeStatusController {
@ -23,46 +29,98 @@ public class QueryEquipChargeStatusController {
@PostMapping("/v1/query_equip_charge_status") @PostMapping("/v1/query_equip_charge_status")
public CommonResponse QueryEquipChargeStatus(@RequestBody CommonRequest<ChargeInfoRequest> commonRequest) throws IOException { public CommonResponse QueryEquipChargeStatus(@RequestBody CommonRequest<ChargeInfoRequest> commonRequest) throws IOException {
//创建数据实体类
EquipChargeStatus equipChargeStatus = new EquipChargeStatus(); EquipChargeStatus equipChargeStatus = new EquipChargeStatus();
//充电订单号 三方传进来都是27位
String data = commonRequest.getData(); String data = commonRequest.getData();
ChargeInfoRequest chargeInfoRequest = JSONUtil.readParams(data, ChargeInfoRequest.class); ChargeInfoRequest chargeInfoRequest = JSONUtil.readParams(data, ChargeInfoRequest.class);
String responseBody = "";
String startChargeSeq = chargeInfoRequest.getStartChargeSeq(); String startChargeSeq = chargeInfoRequest.getStartChargeSeq();
// todo 三方对接 到et_order_mapping表查找xh_order_no equipChargeStatus.setStartChargeSeq(startChargeSeq);
XhpcHistoryOrder xhpcHistoryOrder = //充电订单状态
xhpcHistoryOrderRepository.findByInternetSerialNumber(startChargeSeq).orElse(null); XhpcHistoryOrder xhpcHistoryOrder = xhpcHistoryOrderRepository.findByInternetSerialNumber(startChargeSeq).orElse(null);
ChargeOrderInfo chargeOrderInfo = new ChargeOrderInfo(xhpcHistoryOrder); if (xhpcHistoryOrder == null) {
if (chargeOrderInfo == null) {
throw new ServerInternalException("未查询到该订单编号数据"); throw new ServerInternalException("未查询到该订单编号数据");
} }
equipChargeStatus.setStartChargeSeq(chargeOrderInfo.getStartChargeSeq()); String internalOrderNum = xhpcHistoryOrder.getSerialNumber();
equipChargeStatus.setStartChargeSeqStat(chargeOrderInfo.getStartChargeSeqStat()); Map<String, Object> order = REDIS.getCacheMap("order" + internalOrderNum);
equipChargeStatus.setConnectorID(chargeOrderInfo.getConnectorID()); String orderStatus = (String) order.get("status");
equipChargeStatus.setStartTime(chargeOrderInfo.getStartTime()); int startChargeSeqStat = 0;
String endTime; switch (orderStatus) {
if (chargeOrderInfo.getEndTime() != null) { case "启动中":
endTime = chargeOrderInfo.getEndTime(); startChargeSeqStat = 1;
} else { break;
endTime = DateUtil.date2String(new Date(), "yyyy-MM-dd HH:mm:ss"); case "充电中":
startChargeSeqStat = 2;
break;
case "停止中":
startChargeSeqStat = 3;
break;
case "结束中":
startChargeSeqStat = 4;
break;
default:
startChargeSeqStat = 5;
break;
} }
equipChargeStatus.setEndTime(endTime); equipChargeStatus.setStartChargeSeqStat(startChargeSeqStat);
equipChargeStatus.setTotalPower(chargeOrderInfo.getTotalPower()); //充电设备接口编码
equipChargeStatus.setElecMoney(chargeOrderInfo.getTotalElecMoney()); CacheOrderData cacheOrderData = (CacheOrderData) order.get("orderData");
equipChargeStatus.setSeviceMoney(chargeOrderInfo.getTotalSeviceMoney()); String pileNo = cacheOrderData.getPileNo();
equipChargeStatus.setTotalMoney(chargeOrderInfo.getTotalMoney()); String gunId = cacheOrderData.getGunId();
ChargeDetails detail = new ChargeDetails(); String connectorId = pileNo + gunId;
detail.setDetailStartTime(equipChargeStatus.getStartTime()); //充电设备接口状态
detail.setDetailEndTime(endTime); Map<String, Object> cacheGunData = REDIS.getCacheMap("gun:" + connectorId);
detail.setDetailSeviceMoney(equipChargeStatus.getSeviceMoney()); String gunStatus = (String) cacheGunData.get("status");
detail.setDetailElecMoney(equipChargeStatus.getElecMoney()); int connectorStatus = 0;
detail.setDetailPower(equipChargeStatus.getTotalPower()); switch (gunStatus) {
ChargeDetails[] details = {detail}; case "空闲":
equipChargeStatus.setChargeDetails(details); 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(); CommonResponse response = new CommonResponse();
response.setRet(EvcsConst.RET_SUCC); response.setRet(EvcsConst.RET_SUCC);
response.setData(JSONUtil.toJSONString(equipChargeStatus)); response.setData(JSONUtil.toJSONString(equipChargeStatus));
return response; return response;
} }
} }