package com.ruoyi.jianguan.controller;
|
|
import com.alibaba.fastjson2.JSONObject;
|
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
|
import com.ruoyi.chargingPile.api.model.TChargingGun;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.integration.api.vo.ChargingOrderVo;
|
import com.ruoyi.jianguan.model.SupChargeOrderInfo;
|
import com.ruoyi.jianguan.model.SupEquipChargeStatus;
|
import com.ruoyi.jianguan.util.ChuanYiChongSuperviseUtil;
|
import com.ruoyi.jianguan.util.TCECSuperviseUtil;
|
import com.ruoyi.other.api.domain.Operator;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.Date;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/7/12 10:07
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("/chargingMessage")
|
public class ChargingMessageController {
|
|
@Resource
|
private TCECSuperviseUtil tcecSuperviseUtil;
|
|
private final static String operatorId = "906171535";
|
@Resource
|
private ChargingGunClient chargingGunClient;
|
@Resource
|
private ChuanYiChongSuperviseUtil chuanYiChongSuperviseUtil;
|
|
|
/**
|
* 推送充电订单信息
|
* @param chargingOrder
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/pushOrderInfo")
|
public R pushOrderInfo(@RequestBody ChargingOrderVo chargingOrder){
|
SupChargeOrderInfo supChargeOrderInfo = new SupChargeOrderInfo();
|
supChargeOrderInfo.setOperatorID(operatorId);
|
supChargeOrderInfo.setEquipmentOwnerID(operatorId);
|
supChargeOrderInfo.setStationID(String.valueOf(chargingOrder.getSiteId()));
|
supChargeOrderInfo.setEquipmentID(String.valueOf(chargingOrder.getChargingPileId()));
|
supChargeOrderInfo.setOrderNo(operatorId+chargingOrder.getCode());
|
TChargingGun chargingGun1 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
|
supChargeOrderInfo.setConnectorID(chargingGun1.getFullNumber());
|
supChargeOrderInfo.setEquipmentClassification(1);
|
supChargeOrderInfo.setPushTimeStamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
supChargeOrderInfo.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
|
supChargeOrderInfo.setEndTime(chargingOrder.getEndTime() != null ? chargingOrder.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
|
supChargeOrderInfo.setTotalPower(chargingOrder.getElectrovalence());
|
supChargeOrderInfo.setTotalElecMoney(chargingOrder.getElectrovalence());
|
supChargeOrderInfo.setTotalServiceMoney(chargingOrder.getServiceCharge());
|
supChargeOrderInfo.setTotalMoney(chargingOrder.getOrderAmount());
|
switch (chargingOrder.getEndMode()){
|
case 0:
|
supChargeOrderInfo.setStopReason(5);
|
supChargeOrderInfo.setStopDesc("异常终止");
|
break;
|
case 1:
|
supChargeOrderInfo.setStopReason(0);
|
supChargeOrderInfo.setStopDesc("用户手动停止充电");
|
break;
|
case 2:
|
supChargeOrderInfo.setStopReason(1);
|
supChargeOrderInfo.setStopDesc("客户归属地运营商平台停止充电");
|
break;
|
case 3:
|
supChargeOrderInfo.setStopReason(1);
|
supChargeOrderInfo.setStopDesc("费用不足中止");
|
break;
|
}
|
tcecSuperviseUtil.notificationChargeOrderInfo(new Operator(), supChargeOrderInfo);
|
return R.ok();
|
}
|
|
|
/**
|
* 推送充电订单状态
|
* @param chargingOrder
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/pushOrderStatus")
|
public R pushOrderStatus(@RequestBody ChargingOrderVo chargingOrder){
|
log.info("推送充电订单状态:{}", chargingOrder);
|
SupEquipChargeStatus supEquipChargeStatus = new SupEquipChargeStatus();
|
supEquipChargeStatus.setOperatorID(operatorId);
|
supEquipChargeStatus.setEquipmentOwnerID(operatorId);
|
supEquipChargeStatus.setStationID(String.valueOf(chargingOrder.getSiteId()));
|
supEquipChargeStatus.setEquipmentID(String.valueOf(chargingOrder.getChargingPileId()));
|
supEquipChargeStatus.setOrderNo(operatorId+chargingOrder.getCode());
|
switch (chargingOrder.getStatus()){
|
case 2:
|
supEquipChargeStatus.setConnectorStatus(1);
|
break;
|
case 3:
|
supEquipChargeStatus.setConnectorStatus(2);
|
break;
|
case 4:
|
supEquipChargeStatus.setConnectorStatus(3);
|
break;
|
case 5:
|
supEquipChargeStatus.setConnectorStatus(4);
|
break;
|
}
|
TChargingGun chargingGun2 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
|
supEquipChargeStatus.setConnectorID(chargingGun2.getFullNumber());
|
supEquipChargeStatus.setEquipmentClassification(1);
|
supEquipChargeStatus.setPushTimeStamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
switch (chargingGun2.getStatus()){
|
case 1:
|
supEquipChargeStatus.setConnectorStatus(0);
|
break;
|
case 2:
|
supEquipChargeStatus.setConnectorStatus(1);
|
break;
|
case 3:
|
supEquipChargeStatus.setConnectorStatus(2);
|
break;
|
case 4:
|
supEquipChargeStatus.setConnectorStatus(3);
|
break;
|
case 5:
|
supEquipChargeStatus.setConnectorStatus(3);
|
break;
|
case 6:
|
supEquipChargeStatus.setConnectorStatus(4);
|
break;
|
case 7:
|
supEquipChargeStatus.setConnectorStatus(255);
|
break;
|
}
|
supEquipChargeStatus.setCurrentA(chargingOrder.getCurrent());
|
|
supEquipChargeStatus.setSOC(null != chargingOrder.getTotalElectricity()?chargingOrder.getTotalElectricity():new BigDecimal("1"));
|
supEquipChargeStatus.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
|
supEquipChargeStatus.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
supEquipChargeStatus.setTotalPower(chargingOrder.getElectrovalence());
|
tcecSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), supEquipChargeStatus);
|
// 川逸充
|
if (chargingOrder.getRechargePaymentType()==3){
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("StartChargeSeq",chargingOrder.getCode());
|
jsonObject.put("ConnectorID",chargingGun2.getFullNumber());
|
LocalDateTime startTime = chargingOrder.getStartTime();
|
|
//状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)
|
int tempStatus = 0;
|
switch (chargingOrder.getStatus()){
|
case 1:
|
tempStatus=1;
|
|
case 2:
|
tempStatus=1;
|
jsonObject.put("StartChargeSeqStat",tempStatus);
|
if (startTime!=null){
|
jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
}else{
|
LocalDateTime now = LocalDateTime.now();
|
// 转化为yyyy-MM-dd HH:mm:ss格式字符串
|
jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
}
|
chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject);
|
break;
|
case 3:
|
tempStatus=2;
|
jsonObject.put("StartChargeSeqStat",tempStatus);
|
if (startTime!=null){
|
jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
}else{
|
LocalDateTime now = LocalDateTime.now();
|
// 转化为yyyy-MM-dd HH:mm:ss格式字符串
|
jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
}
|
chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject);
|
break;
|
case 4:
|
tempStatus=3;
|
jsonObject.put("StartChargeSeqStat",tempStatus);
|
if (startTime!=null){
|
jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
}else{
|
LocalDateTime now = LocalDateTime.now();
|
// 转化为yyyy-MM-dd HH:mm:ss格式字符串
|
jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
}
|
chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject);
|
break;
|
case 5:
|
jsonObject.put("StartChargeSeqStat",4);
|
int temp = 0;
|
//充电枪状态(1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障)
|
switch (chargingGun2.getStatus()){
|
case 1:
|
temp = 0;
|
break;
|
case 2:
|
temp=1;
|
break;
|
case 3:
|
temp=2;
|
break;
|
case 4:
|
temp=3;
|
break;
|
case 5:
|
temp=4;
|
break;
|
case 6:
|
temp=4;
|
break;
|
case 7:
|
temp = 255;
|
break;
|
}
|
jsonObject.put("ConnectorStatus",temp);
|
|
jsonObject.put("CurrentA",chargingOrder.getCurrent());
|
jsonObject.put("VoltageA",chargingOrder.getVoltage());
|
LocalDateTime startTime2 = chargingOrder.getStartTime();
|
|
if (startTime2!=null){
|
jsonObject.put("StartTime",startTime2.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
}else{
|
LocalDateTime now = LocalDateTime.now();
|
// 转化为yyyy-MM-dd HH:mm:ss格式字符串
|
jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
}
|
LocalDateTime now = LocalDateTime.now();
|
// 转化为yyyy-MM-dd HH:mm:ss格式字符串
|
jsonObject.put("EndTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
jsonObject.put("TotalPower",chargingOrder.getElectricity());
|
jsonObject.put("TotalMoney",chargingOrder.getOrderAmount());
|
chuanYiChongSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), jsonObject);
|
break;
|
}
|
}
|
return R.ok();
|
}
|
}
|