完成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 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;
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<ChargeInfoRequest> 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<String, Object> 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<String, Object> 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;
}
}