From 26526de10d49c3422a6d6c2d55fe5a2997786ad9 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 21 七月 2025 13:58:37 +0800
Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into dev

---
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/ChargingMessageController.java |  267 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 267 insertions(+), 0 deletions(-)

diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/ChargingMessageController.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/ChargingMessageController.java
new file mode 100644
index 0000000..d35b64f
--- /dev/null
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/ChargingMessageController.java
@@ -0,0 +1,267 @@
+package com.ruoyi.jianguan.controller;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+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.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.other.api.domain.Operator;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+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 AppUserClient appUserClient;
+	@Resource
+	private ChuanYiChongSuperviseUtil chuanYiChongSuperviseUtil;
+	@Resource
+	private ChargingOrderClient chargingOrderClient;
+
+	
+	/**
+	 * 推送充电订单信息
+	 * @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);
+		TAppUser data = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
+		// 川逸充
+		if (chargingOrder.getRechargePaymentType()==3){
+			JSONObject jsonObject = new JSONObject();
+			jsonObject.put("StartChargeSeq",chargingOrder.getCode());
+			jsonObject.put("ConnectorID",chargingGun2.getFullNumber());
+			LocalDateTime startTime = chargingOrder.getStartTime();
+			log.info("川逸充用户信息"+data);
+			if (StringUtils.hasLength(data.getPhone())){
+				jsonObject.put("Mobile",data.getPhone());
+			}
+			//状态(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:
+					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();
+	}
+
+	/**
+	 * 查询订单状态
+	 * @return
+	 */
+	@ResponseBody
+	@GetMapping("/getOrderById")
+	public R pushOrderStatus(@RequestParam Long orderId){
+		log.info("川易充通过id查询订单:{}", orderId);
+		R<TChargingOrder> tChargingOrderR = chargingOrderClient.orderDetail(orderId);
+		return R.ok(tChargingOrderR.getData());
+	}
+}

--
Gitblit v1.7.1