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