Forráskód Böngészése

站点初始化部分代码

skyline 2 éve
szülő
commit
304b2bb1db

+ 11 - 0
admin/src/main/java/com/kym/admin/controller/StationController.java

@@ -4,11 +4,14 @@ import cn.dev33.satoken.stp.StpUtil;
 import com.kym.common.R;
 import com.kym.common.annotation.SysLog;
 import com.kym.entity.admin.Station;
+import com.kym.entity.admin.vo.ConnectorVo;
 import com.kym.service.admin.StationService;
 import com.kym.service.cache.KymCache;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
 
 /**
@@ -71,4 +74,12 @@ public class StationController {
         return R.success();
     }
 
+    // 新增站点
+    @SysLog("初始化新站点信息")
+    @PostMapping("/addStation")
+    R<?> addStation(@RequestBody List<ConnectorVo> stationInfo) {
+        stationService.addStation(stationInfo);
+        return R.success();
+    }
+
 }

+ 50 - 0
entity/src/main/java/com/kym/entity/admin/vo/ConnectorVo.java

@@ -0,0 +1,50 @@
+package com.kym.entity.admin.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 充电设备信息
+ */
+@Getter
+@Setter
+@Accessors(chain = true)
+public class ConnectorVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 充电站id
+     */
+    private String stationId;
+
+    /**
+     * 充电站名称
+     */
+    private String stationName;
+
+    /**
+     * 充电设备id
+     */
+    private String equipmentId;
+
+    /**
+     * 充电设备接口id
+     */
+    private String connectorId;
+
+    /**
+     * 充电设备接口短编号
+     */
+    private String shortId;
+
+    /**
+     * 车位编号
+     */
+    private String parkingNo;
+
+
+}

+ 3 - 2
miniapp/src/main/java/com/kym/miniapp/jobs/StartChargeDelayJob.java

@@ -90,7 +90,8 @@ public class StartChargeDelayJob implements DelayService<DelayChargeOrder> {
                     if (e instanceof InterruptedException) {
                         log.error("预约充电队列take异常", e);
                     } else {
-                        log.info("预约启动充电失败,订单号:{}", threadLocal.get(), e);
+                        log.info("预约启动充电失败,订单号:{}", threadLocal.get());
+                        log.error(e.getMessage());
                         // 启动失败将订单状态修改为充电状态已结束,订单状态已确认,结束原因:预约启动失败
                         chargeOrderService.lambdaUpdate()
                                 .eq(ChargeOrder::getStartChargeSeq, threadLocal.get())
@@ -98,7 +99,7 @@ public class StartChargeDelayJob implements DelayService<DelayChargeOrder> {
                                 .set(ChargeOrder::getOrderStatus, ChargeOrder.ORDER_STATUS_失败)
                                 .set(ChargeOrder::getStopReason, "预约启动充电失败")
                                 .update();
-
+                        // todo 这里是否会阻塞线程
                     }
                 } finally {
                     threadLocal.remove();

+ 3 - 0
service/src/main/java/com/kym/service/admin/StationService.java

@@ -3,6 +3,7 @@ package com.kym.service.admin;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.github.yulichang.base.MPJBaseService;
 import com.kym.entity.admin.Station;
+import com.kym.entity.admin.vo.ConnectorVo;
 import com.kym.entity.admin.vo.StationVo;
 import com.kym.entity.enplus.EnStationStatsInfo;
 import com.kym.entity.enplus.EnStationStatusInfo;
@@ -30,4 +31,6 @@ public interface StationService extends MPJBaseService<Station> {
     public void pullEnStationInfos();
 
     void modifyStation(Station station);
+
+    void addStation(List<ConnectorVo> connectorVos);
 }

+ 39 - 1
service/src/main/java/com/kym/service/admin/impl/StationServiceImpl.java

@@ -10,7 +10,9 @@ import com.kym.common.utils.AESUtil;
 import com.kym.common.utils.CommUtil;
 import com.kym.entity.admin.ConnectorInfo;
 import com.kym.entity.admin.EquipmentInfo;
+import com.kym.entity.admin.EquipmentRelation;
 import com.kym.entity.admin.Station;
+import com.kym.entity.admin.vo.ConnectorVo;
 import com.kym.entity.admin.vo.StationVo;
 import com.kym.entity.enplus.EnEquipmentInfo;
 import com.kym.entity.enplus.EnStationStatsInfo;
@@ -18,6 +20,7 @@ import com.kym.entity.enplus.EnStationStatusInfo;
 import com.kym.mapper.admin.StationMapper;
 import com.kym.service.admin.ConnectorInfoService;
 import com.kym.service.admin.EquipmentInfoService;
+import com.kym.service.admin.EquipmentRelationService;
 import com.kym.service.admin.StationService;
 import com.kym.service.cache.KymCache;
 import com.kym.service.enplus.EnPlusService;
@@ -46,11 +49,13 @@ public class StationServiceImpl extends MPJBaseServiceImpl<StationMapper, Statio
     private final EnPlusService enPlusService;
     private final EquipmentInfoService equipmentInfoService;
     private final ConnectorInfoService connectorInfoService;
+    private final EquipmentRelationService equipmentRelationService;
 
-    public StationServiceImpl(EnPlusService enPlusService, EquipmentInfoService equipmentInfoService, ConnectorInfoService connectorInfoService) {
+    public StationServiceImpl(EnPlusService enPlusService, EquipmentInfoService equipmentInfoService, ConnectorInfoService connectorInfoService, EquipmentRelationService equipmentRelationService) {
         this.enPlusService = enPlusService;
         this.equipmentInfoService = equipmentInfoService;
         this.connectorInfoService = connectorInfoService;
+        this.equipmentRelationService = equipmentRelationService;
     }
 
     @PostConstruct
@@ -197,4 +202,37 @@ public class StationServiceImpl extends MPJBaseServiceImpl<StationMapper, Statio
                 .eq(Station::getStationId, station.getStationId()).update();
     }
 
+    @Override
+    @Transactional
+    public void addStation(List<ConnectorVo> connectorVos) {
+        // 1、组装t_station数据
+
+        // 2、组装t_equipment_info数据
+        var equipmentInfos = connectorVos.stream().map(item -> {
+            var equipmentInfo = new EquipmentInfo();
+            BeanUtils.copyProperties(item, equipmentInfo);
+            return equipmentInfo;
+        }).toList();
+        equipmentInfoService.saveBatch(equipmentInfos);
+
+        // 3、组装t_connector_info数据
+        var connectorInfos = connectorVos.stream().map(item -> {
+            var connectorInfo = new ConnectorInfo();
+            BeanUtils.copyProperties(item, connectorInfo);
+            return connectorInfo;
+        }).toList();
+        connectorInfoService.saveBatch(connectorInfos);
+
+        // 4、组装t_equipment_relation数据
+        var equipmentRelations = connectorVos.stream().map(item -> {
+            var equipmentRelation = new EquipmentRelation();
+            BeanUtils.copyProperties(item, equipmentRelation);
+            return equipmentRelation;
+        }).toList();
+        equipmentRelationService.saveBatch(equipmentRelations);
+
+        // 5、更新KymCache数据
+        // TODO redis发布订阅?
+    }
+
 }

+ 6 - 6
service/src/main/java/com/kym/service/cache/KymCache.java

@@ -80,6 +80,11 @@ public enum KymCache {
         return STATION_MAPPING.get(stationId);
     }
 
+    /**
+     * 操作员对应有权限的站点
+     *
+     * @param map
+     */
     public void putAdminUser2Stations(Map<Long, List<String>> map) {
         ADMIN_USER_STATIONS.putAll(map);
     }
@@ -106,12 +111,7 @@ public enum KymCache {
      * @return
      */
     public List<String> getAdminUserStationIds(Long adminUserId) {
-        var res = ADMIN_USER_STATIONS.get(adminUserId);
-//        if (res == null) {
-//            var adminUserStation = adminUserStationService.lambdaQuery().eq(AdminUserStation::getAdminUserId, adminUserId).one();
-//            res = adminUserStation == null ? null : adminUserStation.getStationId();
-//        }
-        return res;
+        return ADMIN_USER_STATIONS.get(adminUserId);
     }
 
     public void putConnectorId2ParkingNo(Map<String, String> map) {