package com.ruoyi.integration.drainage;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.nacos.common.utils.JacksonUtils;
|
import com.ruoyi.chargingPile.api.feignClient.*;
|
import com.ruoyi.chargingPile.api.model.*;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
|
import com.ruoyi.common.core.web.page.PageInfo;
|
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
|
import com.ruoyi.integration.api.vo.StartChargeResult;
|
import com.ruoyi.integration.drainage.kuaidian.TCECKDUtil;
|
import com.ruoyi.integration.drainage.kuaidian.model.*;
|
import com.ruoyi.integration.drainage.model.*;
|
import com.ruoyi.integration.drainage.model.enu.*;
|
import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
|
import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient;
|
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
|
import com.ruoyi.order.api.model.AddTripartitePlatformOrder;
|
import com.ruoyi.order.api.model.TChargingOrder;
|
import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
|
import com.ruoyi.other.api.domain.Operator;
|
import com.ruoyi.other.api.feignClient.OperatorClient;
|
import com.ruoyi.other.api.feignClient.SystemConfigurationClient;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.*;
|
import java.util.concurrent.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/1/21 17:52
|
*/
|
@Slf4j
|
@Component
|
public class TCECPushUtil {
|
|
@Resource
|
private ChargingGunClient chargingGunClient;
|
|
@Resource
|
private OperatorClient operatorClient;
|
|
@Autowired
|
private TCECSuperviseUtil tcecSuperviseUtil;
|
private final static String operatorId = "906171535";
|
|
/**
|
* 推送充电设备接口状态信息
|
* @param chargingGun
|
* @return
|
*/
|
public R pushSuperviseNotificationStationStatus(TChargingGun chargingGun){
|
ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
|
connectorStatusInfo.setOperatorID(operatorId);
|
connectorStatusInfo.setEquipmentOwnerID(operatorId);
|
connectorStatusInfo.setStationID(String.valueOf(chargingGun.getSiteId()));
|
connectorStatusInfo.setEquipmentID(String.valueOf(chargingGun.getChargingPileId()));
|
connectorStatusInfo.setConnectorID(chargingGun.getFullNumber());
|
connectorStatusInfo.setEquipmentClassification(1);
|
switch (chargingGun.getStatus()){
|
case 1:
|
connectorStatusInfo.setStatus(0);
|
break;
|
case 2:
|
connectorStatusInfo.setStatus(1);
|
break;
|
case 3:
|
connectorStatusInfo.setStatus(2);
|
break;
|
case 4:
|
connectorStatusInfo.setStatus(3);
|
break;
|
case 5:
|
connectorStatusInfo.setStatus(3);
|
break;
|
case 6:
|
connectorStatusInfo.setStatus(4);
|
break;
|
case 7:
|
connectorStatusInfo.setStatus(255);
|
break;
|
}
|
connectorStatusInfo.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
tcecSuperviseUtil.notificationStationStatus(new Operator(), connectorStatusInfo);
|
return R.ok();
|
}
|
/**
|
* 推送充电状态信息
|
* @param chargingOrder
|
* @return
|
*/
|
public R pushSuperviseNotificationEquipChargeStatus(TChargingOrder 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 chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
|
supEquipChargeStatus.setConnectorID(chargingGun.getFullNumber());
|
supEquipChargeStatus.setEquipmentClassification(1);
|
supEquipChargeStatus.setPushTimeStamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
switch (chargingGun.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(StringUtils.hasLength(chargingOrder.getEndSoc())?new BigDecimal(chargingOrder.getEndSoc()):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);
|
return R.ok();
|
}
|
/**
|
* 推送充电订单信息
|
* @param chargingOrder
|
* @return
|
*/
|
public R pushSuperviseNotificationChargeOrderInfo(TChargingOrder 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 chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
|
supChargeOrderInfo.setConnectorID(chargingGun.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();
|
}
|
}
|