Просмотр исходного кода

1.充电桩数据初始化
2.充电桩列表
3.miniapp生产环境配置

skyline 2 лет назад
Родитель
Сommit
d2add1c502

+ 29 - 1
admin/src/main/java/com/kym/admin/controller/EquipmentInfoController.java

@@ -1,8 +1,17 @@
 package com.kym.admin.controller;
 
+import com.kym.common.R;
+import com.kym.entity.admin.EquipmentInfo;
+import com.kym.entity.admin.queryParams.EquipmentQueryParam;
+import com.kym.entity.common.PageBean;
+import com.kym.service.admin.EquipmentInfoService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
+
 /**
  * <p>
  * 充电桩桩体设备 前端控制器
@@ -12,7 +21,26 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2023-08-05
  */
 @RestController
-@RequestMapping("/equipment-info")
+@RequestMapping("/equipment")
 public class EquipmentInfoController {
 
+    private final EquipmentInfoService equipmentInfoService;
+
+    public EquipmentInfoController(EquipmentInfoService equipmentInfoService) {
+        this.equipmentInfoService = equipmentInfoService;
+    }
+
+    /**
+     * 充电桩列表
+     *
+     * @param params
+     * @return
+     */
+    @GetMapping("/listEquipment")
+    R listEquipment(@ModelAttribute EquipmentQueryParam params) {
+        PageBean<EquipmentInfo> res = equipmentInfoService.listEquipment(params);
+
+        return R.success(res);
+    }
+
 }

+ 81 - 7
entity/src/main/java/com/kym/entity/admin/EquipmentInfo.java

@@ -2,13 +2,10 @@ package com.kym.entity.admin;
 
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.kym.entity.BaseEntity;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.experimental.Accessors;
+import lombok.Data;
 
 /**
  * <p>
@@ -18,10 +15,8 @@ import lombok.experimental.Accessors;
  * @author skyline
  * @since 2023-09-01
  */
-@Getter
-@Setter
+@Data
 @TableName("t_equipment_info")
-@Accessors(chain = true)
 public class EquipmentInfo extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
@@ -31,11 +26,28 @@ public class EquipmentInfo extends BaseEntity {
      */
     private Long companyId;
 
+    /**
+     * 站点id
+     */
+    private String stationId;
+
+    /**
+     * 站点编号  eg:001,002
+     */
+    @TableField(exist = false)
+    private String stationNo;
+
     /**
      * 充电桩序列号
      */
     private String equipmentId;
 
+    /**
+     * 充电桩短编号
+     */
+    @TableField(exist = false)
+    private String shortId;
+
     /**
      * 设备生产商组织机构代码
      */
@@ -89,4 +101,66 @@ public class EquipmentInfo extends BaseEntity {
      * 服务状态:0-空闲 1-已连接 2-充电 3-结束
      */
     private Integer serviceStatus;
+
+    public void setCompanyId(Long companyId) {
+        this.companyId = companyId;
+    }
+
+    public EquipmentInfo setStationId(String stationId) {
+        this.stationId = stationId;
+        return this;
+    }
+
+    public void setStationNo(String stationNo) {
+        this.stationNo = stationNo;
+    }
+
+    public void setEquipmentId(String equipmentId) {
+        this.equipmentId = equipmentId;
+    }
+
+    public EquipmentInfo setShortId(String shortId) {
+        this.shortId = shortId;
+        if (shortId != null) {
+            setStationNo(shortId.substring(0, 3));
+        }
+        return this;
+    }
+
+    public void setManufacturerId(String manufacturerId) {
+        this.manufacturerId = manufacturerId;
+    }
+
+    public void setManufacturerName(String manufacturerName) {
+        this.manufacturerName = manufacturerName;
+    }
+
+    public void setEquipmentModel(String equipmentModel) {
+        this.equipmentModel = equipmentModel;
+    }
+
+    public void setProductionDate(String productionDate) {
+        this.productionDate = productionDate;
+    }
+
+    public void setEquipmentType(Integer equipmentType) {
+        this.equipmentType = equipmentType;
+    }
+
+    public void setLocation(JSONObject location) {
+        this.location = location;
+    }
+
+    public EquipmentInfo setPower(Double power) {
+        this.power = power;
+        return this;
+    }
+
+    public void setNetStatus(Integer netStatus) {
+        this.netStatus = netStatus;
+    }
+
+    public void setServiceStatus(Integer serviceStatus) {
+        this.serviceStatus = serviceStatus;
+    }
 }

+ 27 - 0
entity/src/main/java/com/kym/entity/admin/queryParams/EquipmentQueryParam.java

@@ -0,0 +1,27 @@
+package com.kym.entity.admin.queryParams;
+
+import lombok.Data;
+
+/**
+ * @author skyline
+ * @description 充电桩查询参数
+ * @date 2023-08-22 18:56
+ */
+@Data
+public class EquipmentQueryParam extends PageParams {
+
+    /**
+     * 充电站id
+     */
+    private String stationId;
+
+    /**
+     * 充电桩id
+     */
+    private String equipmentId;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+}

+ 14 - 0
entity/src/main/java/com/kym/entity/admin/queryParams/PageParams.java

@@ -0,0 +1,14 @@
+package com.kym.entity.admin.queryParams;
+
+import lombok.Data;
+
+/**
+ * @author skyline
+ * @description
+ * @date 2023-09-01 22:38
+ */
+@Data
+public class PageParams {
+    private int PageNum = 1;
+    private int pageSize = 10;
+}

+ 2 - 1
mapper/src/main/resources/mappers/admin/EquipmentInfoMapper.xml

@@ -5,6 +5,7 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.kym.entity.admin.EquipmentInfo">
         <result column="company_id" property="companyId" />
+        <result column="station_id" property="stationId" />
         <result column="equipment_id" property="equipmentId" />
         <result column="manufacturer_id" property="manufacturerId" />
         <result column="manufacturer_name" property="manufacturerName" />
@@ -19,7 +20,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        company_id, equipment_id, manufacturer_id, manufacturer_name, equipment_model, production_date, equipment_type, location, power, net_status, service_status
+        id,company_id, station_id,equipment_id, manufacturer_id, manufacturer_name, equipment_model, production_date, equipment_type, location, power, net_status, service_status,create_time,update_time
     </sql>
 
 </mapper>

+ 9 - 9
miniapp/src/main/resources/application-prod.yml

@@ -62,20 +62,20 @@ spring:
       strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
       datasource:
         db-admin:
-          url: jdbc:mysql://121.40.98.15:3307/charge_admin?tinyInt1isBit=false&serverTimezone=Asia/Shanghai
-          username: root
-          password: 123456
+          url: jdbc:mysql://127.0.0.1:3306/charge_admin?serverTimezone=Asia/Shanghai
+          username: kym
+          password: qYhQLZLP6e7paVmQN5foEwRYJ1yFNpwM
           driver-class-name: com.mysql.cj.jdbc.Driver
         db-miniapp:
-          url: jdbc:mysql://121.40.98.15:3307/charge_app
-          username: root
-          password: 123456
+          url: jdbc:mysql://127.0.0.1:3306/charge_app?serverTimezone=Asia/Shanghai
+          username: kym
+          password: qYhQLZLP6e7paVmQN5foEwRYJ1yFNpwM
           driver-class-name: com.mysql.cj.jdbc.Driver
   data:
     redis:
-      port: 6380
-      host: 121.40.98.15
-      password: 123456
+      port: 6379
+      host: 127.0.0.1
+      password: OPYCJ3mJpaU4IsP7ZeIyaus6FtHjLYmhNDGteuRc1gIFCAm7wi
       database: 10
       lettuce:
         cluster:

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

@@ -2,6 +2,8 @@ package com.kym.service.admin;
 
 import com.kym.entity.admin.EquipmentInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.kym.entity.admin.queryParams.EquipmentQueryParam;
+import com.kym.entity.common.PageBean;
 
 /**
  * <p>
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface EquipmentInfoService extends IService<EquipmentInfo> {
 
+    PageBean<EquipmentInfo> listEquipment(EquipmentQueryParam params);
 }

+ 27 - 0
service/src/main/java/com/kym/service/admin/impl/EquipmentInfoServiceImpl.java

@@ -2,11 +2,20 @@ package com.kym.service.admin.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
 import com.kym.entity.admin.EquipmentInfo;
+import com.kym.entity.admin.queryParams.EquipmentQueryParam;
+import com.kym.entity.common.PageBean;
 import com.kym.mapper.admin.EquipmentInfoMapper;
 import com.kym.service.admin.EquipmentInfoService;
+import com.kym.service.utils.KymCache;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
+import java.util.Comparator;
+
+import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
+
 /**
  * <p>
  * 充电桩桩体设备 服务实现类
@@ -19,5 +28,23 @@ import org.springframework.stereotype.Service;
 @DS("db-admin")
 public class EquipmentInfoServiceImpl extends ServiceImpl<EquipmentInfoMapper, EquipmentInfo> implements EquipmentInfoService {
 
+    private final KymCache kymCache;
+
+    public EquipmentInfoServiceImpl(@Lazy KymCache kymCache) {
+        this.kymCache = kymCache;
+    }
 
+    @Override
+    public PageBean<EquipmentInfo> listEquipment(EquipmentQueryParam params) {
+        PageHelper.startPage(params.getPageNum(), params.getPageSize());
+        var equipmentInfos = lambdaQuery()
+                .eq(isNotNull(params.getEquipmentId()), EquipmentInfo::getEquipmentId, params.getEquipmentId())
+                .eq(isNotNull(params.getStationId()), EquipmentInfo::getStationId, params.getStationId())
+                .eq(isNotNull(params.getStatus()), EquipmentInfo::getNetStatus, params.getStatus())
+                .list();
+        // TODO: 2023-09-02  parallelStream 这里可能有坑,注意检查
+        var res = equipmentInfos.parallelStream().map(item -> item.setShortId(kymCache.getShortId(item.getEquipmentId())))
+                .toList().stream().sorted(Comparator.comparing(EquipmentInfo::getShortId)).toList();
+        return new PageBean<>(res);
+    }
 }

+ 21 - 2
service/src/main/java/com/kym/service/admin/impl/StationServiceImpl.java

@@ -5,11 +5,13 @@ import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kym.common.enums.EnPlusApi;
 import com.kym.common.utils.AESUtil;
+import com.kym.entity.admin.EquipmentInfo;
 import com.kym.entity.admin.Station;
 import com.kym.entity.admin.vo.StationVo;
 import com.kym.entity.enplus.EnStationStatsInfo;
 import com.kym.entity.enplus.EnStationStatusInfo;
 import com.kym.mapper.admin.StationMapper;
+import com.kym.service.admin.EquipmentInfoService;
 import com.kym.service.admin.StationService;
 import com.kym.service.enplus.EnPlusService;
 import com.kym.service.utils.KymCache;
@@ -21,6 +23,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -38,12 +41,15 @@ public class StationServiceImpl extends ServiceImpl<StationMapper, Station> impl
     private static final Logger LOGGER = LoggerFactory.getLogger(StationServiceImpl.class);
     private final KymCache kymCache;
 
+    private final EquipmentInfoService equipmentInfoService;
+
 
     private final EnPlusService enPlusService;
 
-    public StationServiceImpl(@Lazy KymCache kymCache, EnPlusService enPlusService) {
+    public StationServiceImpl(@Lazy KymCache kymCache, EnPlusService enPlusService, EquipmentInfoService equipmentInfoService) {
         this.kymCache = kymCache;
         this.enPlusService = enPlusService;
+        this.equipmentInfoService = equipmentInfoService;
     }
 
     @Override
@@ -109,12 +115,25 @@ public class StationServiceImpl extends ServiceImpl<StationMapper, Station> impl
     public void pullEnStationInfos() {
         var stationVoList = queryStationInfo(1, 1000);
         var stationList = new ArrayList<Station>();
+        var equipmentList = new ArrayList<EquipmentInfo>();
         stationVoList.forEach(vo -> {
+            if(vo.getEquipmentInfos().size()>0){
+                vo.getEquipmentInfos().forEach(item -> {
+                    var equipment = new EquipmentInfo()
+                            .setStationId(vo.getStationId())
+                            .setShortId(item.getShortId())
+                            .setPower(item.getConnectorInfos().get(0).getPower());
+                    BeanUtils.copyProperties(item, equipment);
+                    equipmentList.add(equipment);
+                });
+                equipmentList.sort(Comparator.comparing(EquipmentInfo::getShortId));
+            }
             var station = new Station();
             BeanUtils.copyProperties(vo, station);
             stationList.add(station);
         });
-        saveOrUpdateBatch(stationList);
+        // saveBatch(stationList);
+        equipmentInfoService.saveBatch(equipmentList);
     }
 
 }