Ver Fonte

feat(charging): 推送渠道方启动充电结果通知

- 在ChargingReceptionServiceImpl中添加启动充电结果的推送逻辑
- 根据充电订单信息和渠道方URL发送请求通知启动状态
- 移除原有重复的推送代码,优化流程
- AppletChargeController的invokeCharge方法添加异常声明以支持JSON处理异常抛出
wzq há 1 semana atrás
pai
commit
741ddd069b

+ 2 - 1
src/main/java/com/zsElectric/boot/business/controller/applet/AppletChargeController.java

@@ -3,6 +3,7 @@ package com.zsElectric.boot.business.controller.applet;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.zsElectric.boot.business.model.entity.UserAccount;
 import com.zsElectric.boot.business.model.form.applet.AppInvokeChargeForm;
 import com.zsElectric.boot.business.model.form.applet.AppStopChargeForm;
@@ -107,7 +108,7 @@ public class AppletChargeController {
     @Operation(summary = "启用充电")
     @PostMapping("/invokeCharge")
     @Log(value = "启用充电", module = LogModuleEnum.APP_CHARGE_ORDER)
-    public Result<AppChargeVO> invokeCharge(@Valid @RequestBody AppInvokeChargeForm formData) {
+    public Result<AppChargeVO> invokeCharge(@Valid @RequestBody AppInvokeChargeForm formData) throws JsonProcessingException {
         AppChargeVO appInvokeChargeVO = chargeOrderInfoService.invokeCharge(formData);
         return Result.success(appInvokeChargeVO);
     }

+ 14 - 10
src/main/java/com/zsElectric/boot/charging/service/impl/ChargingReceptionServiceImpl.java

@@ -432,6 +432,20 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
             
             ChargeOrderInfo chargeOrderInfo = chargeOrderInfoService.getOne(new LambdaQueryWrapper<ChargeOrderInfo>()
                     .eq(ChargeOrderInfo::getStartChargeSeq, startChargeSeq).last("LIMIT 1"));
+
+            // 推送渠道方启动充电结果
+            if(chargeOrderInfo != null && chargeOrderInfo.getFirmId() != null){
+                FirmInfo firmInfo = firmInfoMapper.selectById(chargeOrderInfo.getFirmId());
+                if (ObjectUtil.isNotNull(firmInfo)) {
+                    HashMap<String, Object> map = new HashMap<>();
+                    map.put("chargeOrderNo", chargeOrderInfo.getChargeOrderNo());
+                    map.put("status", SystemConstants.STATUS_ONE);
+                    map.put("startTime", startTime);
+                    map.put("connectorId", chargeOrderInfo.getConnectorId());
+                    map.put("jsonNode", jsonNode.toString());
+                    okHttpUtil.doPostForm(firmInfo.getChannelUrl() + "/notification_start_charge_result", map, null);
+                }
+            }
             
             if (startChargeSeqStat != null) {
                 switch (startChargeSeqStat) {
@@ -444,16 +458,6 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
                                 chargeOrderInfo.setStatus(SystemConstants.STATUS_ONE);
                                 chargeOrderInfo.setStartTime(startTime);
                                 chargeOrderInfoService.updateById(chargeOrderInfo);
-
-                                // 推送渠道方启动充电结果
-                                FirmInfo firmInfo = firmInfoMapper.selectById(chargeOrderInfo.getFirmId());
-                                if (ObjectUtil.isNotNull(firmInfo)) {
-                                    HashMap<String, Object> map = new HashMap<>();
-                                    map.put("chargeOrderNo", chargeOrderInfo.getChargeOrderNo());
-                                    map.put("status", SystemConstants.STATUS_ONE);
-                                    map.put("startTime", startTime);
-                                    okHttpUtil.doPostForm(firmInfo.getChannelUrl() + "/notification_start_charge_result", map, null);
-                                }
                             }
                         }
                     }