ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java
@@ -67,7 +67,12 @@ public void updateChargingPileStatus(UpdateChargingPileStatusVo vo) { log.error("修改充电桩状态失败:" + throwable.getMessage()); } @Override public R<List<TChargingPile>> getAllPile() { return R.fail("查询所有充电桩信息失败:"+throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java
@@ -60,4 +60,11 @@ */ @PostMapping("/t-charging-pile/updateChargingPileStatus") void updateChargingPileStatus(@RequestBody UpdateChargingPileStatusVo vo); /** * 获取所有桩 */ @PostMapping("/t-charging-pile/getAllPile") R<List<TChargingPile>> getAllPile(); } ruoyi-api/ruoyi-api-jianguan/src/main/java/com/ruoyi/integration/api/elutong/model/ChargingGunInfo.java
New file @@ -0,0 +1,22 @@ package com.ruoyi.integration.api.elutong.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @Data @ApiModel(value = "东涪充电枪信息") public class ChargingGunInfo implements Serializable { @ApiModelProperty(value = "充电枪id") private String id; @ApiModelProperty(value = "充电枪名称") private String name; @ApiModelProperty(value = "充电桩状态(1=空闲,2=使用中,0=离线)") private Integer status; @ApiModelProperty(value = "所属充电桩ID") private String pileId; } ruoyi-api/ruoyi-api-jianguan/src/main/java/com/ruoyi/integration/api/elutong/model/ChargingPileInfo.java
New file @@ -0,0 +1,24 @@ package com.ruoyi.integration.api.elutong.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @Data @ApiModel(value = "东涪充电桩信息") public class ChargingPileInfo implements Serializable { @ApiModelProperty(value = "充电桩id") private String id; @ApiModelProperty(value = "充电桩名称") private String name; @ApiModelProperty(value = "充电桩状态(1=空闲,2=使用中,0=离线)") private Integer status; @ApiModelProperty(value = "是否快充(1=快充,0=慢充)") private Integer fast; @ApiModelProperty(value = "电站id") private String stationId; } ruoyi-api/ruoyi-api-jianguan/src/main/java/com/ruoyi/integration/api/elutong/model/ChargingStationInfo.java
New file @@ -0,0 +1,20 @@ package com.ruoyi.integration.api.elutong.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @Data @ApiModel(value = "东涪充电站信息") public class ChargingStationInfo implements Serializable { @ApiModelProperty(value = "站点id") private String id; @ApiModelProperty(value = "站点名称") private String name; @ApiModelProperty(value = "充电站状态(0=关闭,1=正常)") private Integer status; } ruoyi-api/ruoyi-api-jianguan/src/main/java/com/ruoyi/integration/api/factory/DongFuStationClientFallbackFactory.java
New file @@ -0,0 +1,29 @@ package com.ruoyi.integration.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.feignClient.DongFuStationClient; import org.springframework.cloud.openfeign.FallbackFactory; public class DongFuStationClientFallbackFactory implements FallbackFactory<DongFuStationClient> { @Override public DongFuStationClient create(Throwable cause) { return new DongFuStationClient() { @Override public R<String> pushChargingStation() { return R.fail("推送充电站信息失败:" + cause.getMessage()); } @Override public R<String> pushChargingPile() { return R.fail("推送充电桩信息失败:" + cause.getMessage()); } @Override public R<String> pushChargingGun() { return R.fail("推送充电枪信息失败:" + cause.getMessage()); } }; } } ruoyi-api/ruoyi-api-jianguan/src/main/java/com/ruoyi/integration/api/feignClient/DongFuStationClient.java
New file @@ -0,0 +1,36 @@ package com.ruoyi.integration.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.factory.ChengDuJianGuanClientFallbackFactory; import com.ruoyi.integration.api.factory.DongFuStationClientFallbackFactory; import com.ruoyi.integration.api.vo.NotificationConnectorChargeStatusVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @FeignClient(contextId = "DongFuStationClient", value = ServiceNameConstants.JIANGUAN_SERVICE, fallbackFactory = DongFuStationClientFallbackFactory.class) public interface DongFuStationClient { /** * 推送充电站信息 * @return */ @PostMapping("/chargingStationInfo/pushChargingStation") R<String> pushChargingStation(); /** * 推送充电桩信息 * @return */ @PostMapping("/chargingStationInfo/pushChargingPile") R<String> pushChargingPile(); /** * 推送充电枪信息 * @return */ @PostMapping("/chargingStationInfo/pushChargingGun") R<String> pushChargingGun(); } ruoyi-api/ruoyi-api-jianguan/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,3 +1,4 @@ com.ruoyi.integration.api.factory.ChargingMessageClientFallbackFactory com.ruoyi.integration.api.factory.ELuTongClientFallbackFactory com.ruoyi.integration.api.factory.ChengDuJianGuanClientFallbackFactory com.ruoyi.integration.api.factory.ChengDuJianGuanClientFallbackFactory com.ruoyi.integration.api.factory.DongFuStationClientFallbackFactory ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
@@ -416,7 +416,12 @@ } } } @ResponseBody @PostMapping("/getAllPile") public R<List<TChargingPile>> getAllPile(){ List<TChargingPile> pileList = chargingPileService.list(); return R.ok(pileList); } /** * 推送设备接口状态信息 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -26,10 +26,7 @@ import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.integration.api.elutong.model.*; import com.ruoyi.integration.api.feignClient.ChengDuJianGuanClient; import com.ruoyi.integration.api.feignClient.ELuTongClient; import com.ruoyi.integration.api.feignClient.IntegrationClient; import com.ruoyi.integration.api.feignClient.TCECClient; import com.ruoyi.integration.api.feignClient.*; import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.api.feignClient.RoleSiteClient; import com.ruoyi.other.api.feignClient.UserSiteClient; @@ -104,7 +101,9 @@ @Resource private ChengDuJianGuanClient chengDuJianGuanClient; @Resource private DongFuStationClient dongFuStationClient; /** * 获取站点管理列表数据 @@ -234,6 +233,8 @@ if(200 != r.getCode()){ System.out.println(r.getMsg()); } // TODO 东涪推送 dongFuStationClient.pushChargingStation(); }); } return AjaxResult.success(); @@ -445,6 +446,8 @@ if(200 != r.getCode()){ System.out.println(r.getMsg()); } // TODO 东涪推送 dongFuStationClient.pushChargingStation(); }); } return AjaxResult.success(); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
@@ -24,6 +24,7 @@ import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.integration.api.feignClient.ChengDuJianGuanClient; import com.ruoyi.integration.api.feignClient.DongFuStationClient; import com.ruoyi.integration.api.feignClient.SendMessageClient; import com.ruoyi.integration.api.feignClient.TCECClient; import com.ruoyi.integration.api.model.QrCodeDelivery; @@ -131,6 +132,8 @@ @Resource private ChengDuJianGuanClient chengDuJianGuanClient; @Resource private DongFuStationClient dongFuStationClient; @@ -171,6 +174,8 @@ threadPoolExecutor.execute(()->{ //推送成都监管 chengDuJianGuanClient.notificationStationInfo(chargingPile.getSiteId()); // TODO 东涪推送 dongFuStationClient.pushChargingGun(); }); return AjaxResult.success(); } @@ -217,6 +222,8 @@ threadPoolExecutor.execute(()->{ //推送成都监管 chengDuJianGuanClient.notificationStationInfo(chargingPile.getSiteId()); // TODO 东涪推送 dongFuStationClient.pushChargingGun(); }); return AjaxResult.success(); } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -134,7 +134,9 @@ @Resource private ChengDuJianGuanClient chengDuJianGuanClient; @Resource private DongFuStationClient dongFuStationClient; /** @@ -221,6 +223,8 @@ threadPoolExecutor.execute(()->{ //推送成都监管 chengDuJianGuanClient.notificationStationInfo(chargingPile.getSiteId()); // TODO 东涪推送 dongFuStationClient.pushChargingPile(); }); return AjaxResult.success(); } @@ -346,6 +350,8 @@ threadPoolExecutor.execute(()->{ //推送成都监管 chengDuJianGuanClient.notificationStationInfo(chargingPile.getSiteId()); // TODO 东涪推送 dongFuStationClient.pushChargingPile(); }); return AjaxResult.success(); } ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/dongfu/ChargingInfoController.java
New file @@ -0,0 +1,159 @@ package com.ruoyi.jianguan.dongfu; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.elutong.model.ChargingGunInfo; import com.ruoyi.integration.api.elutong.model.ChargingPileInfo; import com.ruoyi.integration.api.elutong.model.ChargingStationInfo; import com.ruoyi.jianguan.chengdujianguan.util.HttpRequestUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; /** * 站桩枪、订单 临时数据接口 * * @author stylefeng * @Date 2018/7/20 23:39 */ @RestController @RequestMapping("/chargingStationInfo") @Slf4j public class ChargingInfoController { /** * 推送地址 */ private final String PUSH_URL = "https://kdgkg.dftzyxgs.com/scenic"; /** * 推送站点 */ private final String PUSH_SITE_URL = "/open/xw/charging/push/station"; /** * 推送桩 */ private final String PUSH_PILE_URL = "/open/xw/charging/push/pile"; /** * 推送枪 */ private final String PUSH_GUN_URL = "/open/xw/charging/push/gun"; @Autowired private ChargingGunClient chargingGunClient; @Autowired private ChargingPileClient chargingPileClient; @Autowired private SiteClient siteClient; /** * 推送充电站信息 * @return */ @PostMapping("/pushChargingStation") public R<String> pushChargingStation(){ R<List<Site>> siteListR = siteClient.getSiteAll(); List<Site> siteList = siteListR.getData(); if(!CollectionUtils.isEmpty(siteList)){ List<ChargingStationInfo> chargingStationInfoList = new ArrayList<>(); for (Site site : siteList) { ChargingStationInfo chargingStationInfo = new ChargingStationInfo(); chargingStationInfo.setId(site.getId().toString()); chargingStationInfo.setName(site.getName()); chargingStationInfo.setStatus(site.getStatus()==1?1:0); chargingStationInfoList.add(chargingStationInfo); } // 推送http请求 String result = HttpRequestUtil.httpPost(PUSH_URL + PUSH_SITE_URL, JSONObject.toJSONString(chargingStationInfoList), ""); log.info("推送充电站信息:{}",result); } return R.ok(); } /** * 推送充电桩信息 * @return */ @PostMapping("/pushChargingPile") public R<String> pushChargingPile(){ R<List<TChargingPile>> pileListR = chargingPileClient.getAllPile(); List<TChargingPile> chargingPiles = pileListR.getData(); if(!CollectionUtils.isEmpty(chargingPiles)){ List<ChargingPileInfo> chargingPileInfoList = new ArrayList<>(); for (TChargingPile pile : chargingPiles) { ChargingPileInfo chargingPileInfo = new ChargingPileInfo(); chargingPileInfo.setId(pile.getId().toString()); chargingPileInfo.setName(pile.getName()); if(pile.getStatus() == 1){ chargingPileInfo.setStatus(2); }else { chargingPileInfo.setStatus(0); } chargingPileInfo.setStatus(pile.getStatus()==1?1:0); chargingPileInfo.setFast(1); chargingPileInfo.setStationId(pile.getSiteId().toString()); chargingPileInfoList.add(chargingPileInfo); } // 推送http请求 String result = HttpRequestUtil.httpPost(PUSH_URL + PUSH_PILE_URL, JSONObject.toJSONString(chargingPileInfoList), ""); log.info("推送充电桩信息:{}",result); } return R.ok(); } /** * 推送充电枪信息 * @return */ @PostMapping("/pushChargingGun") public R<String> pushChargingGun(){ R<List<TChargingGun>> gunListR = chargingGunClient.getAllGun(); List<TChargingGun> chargingGuns = gunListR.getData(); if(!CollectionUtils.isEmpty(chargingGuns)){ List<ChargingGunInfo> chargingGunInfoList = new ArrayList<>(); for (TChargingGun gun : chargingGuns) { ChargingGunInfo chargingGunInfo = new ChargingGunInfo(); chargingGunInfo.setId(gun.getId().toString()); chargingGunInfo.setName(gun.getName()); if(gun.getStatus() == 1 || gun.getStatus() == 7){ chargingGunInfo.setStatus(0); }else if (gun.getStatus() == 2){ chargingGunInfo.setStatus(1); }else { chargingGunInfo.setStatus(2); } chargingGunInfo.setPileId(gun.getChargingPileId().toString()); chargingGunInfoList.add(chargingGunInfo); } // 推送http请求 String result = HttpRequestUtil.httpPost(PUSH_URL + PUSH_GUN_URL, JSONObject.toJSONString(chargingGunInfoList), ""); log.info("推送充电枪信息:{}",result); } return R.ok(); } }