Pu Zhibing
16 小时以前 9bc378e6bb9b4563a0dec222e1c2d5d3278632cb
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -5,6 +5,7 @@
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.ruoyi.chargingPile.api.feignClient.*;
import com.ruoyi.chargingPile.api.model.*;
import com.ruoyi.chargingPile.api.vo.GetChargingGunByChargingPileIdsVo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.utils.StringUtils;
@@ -150,31 +151,7 @@
      }
      return baseResult;
   }
   public BaseResult requestCheckJianGuan(Boolean tokenCheck, BaseRequest baseRequest, HttpServletRequest request){
      Operator operator = new Operator();
      BaseResult baseResult = new BaseResult();
      baseResult.setRet(0);
      baseResult.setMsg("成功");
      baseResult.setOperatorID(baseRequest.getOperatorID());
      operator.setOperatorId(baseRequest.getOperatorID());
      Long mapKey = Long.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
      baseResult.setTimeStamp(mapKey);
      baseResult.setSeq("0001");
      //校验token和签名
      String operatorID = baseRequest.getOperatorID();
      String sig = baseRequest.getSig();
      Long timeStamp = baseRequest.getTimeStamp();
      String data = baseRequest.getData();
      String seq = baseRequest.getSeq();
      baseResult.setOperator(operator);
      if(StringUtils.isEmpty(operatorID) || StringUtils.isEmpty(sig) || StringUtils.isEmpty(data) || StringUtils.isEmpty(seq) || null == timeStamp){
         baseResult.setRet(4003);
         baseResult.setMsg("参数异常");
         return baseResult;
      }
      return baseResult;
   }
   
   
   
@@ -252,7 +229,7 @@
   @PostMapping("/query_token_jianguan")
   public BaseResult queryTokenJianguan(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
      log.info("三方平台获取token请求参数:" + JacksonUtils.toJson(baseRequest));
      BaseResult baseResult = requestCheckJianGuan(false, baseRequest, request);
      BaseResult baseResult = requestCheck(false, baseRequest, request);
      if(0 != baseResult.getRet()){
         log.info("三方平台获取token响应Data:");
         baseResult.setData("");
@@ -300,7 +277,7 @@
   public BaseResult queryStationsInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
      log.info("三方平台查询充电站信息请求参数:" + JacksonUtils.toJson(baseRequest));
      //校验token和签名
      BaseResult baseResult = requestCheckJianGuan(true, baseRequest, request);
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         log.info("三方平台查询充电站信息响应Data:");
         baseResult.setData("");
@@ -348,7 +325,9 @@
      List<Integer> siteIds = sites.stream().map(Site::getId).collect(Collectors.toList());
      List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData();
      List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
      List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData();
      GetChargingGunByChargingPileIdsVo vo = new GetChargingGunByChargingPileIdsVo();
      vo.setChargingPileIds(collect1);
      List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(vo).getData();
      String serviceTel = systemConfigurationClient.getServerPhone().getData();
      List<StationInfo> StationInfos = new ArrayList<>();
      for (Site datum : sites) {
@@ -399,8 +378,8 @@
         stationInfo.setCountryCode(StringUtils.isNotEmpty(datum.getCountryCode()) ? datum.getCountryCode() : "CN");
         stationInfo.setAreaCode(datum.getDistrictsCode());
         stationInfo.setAddress(datum.getAddress());
         stationInfo.setStationTel(datum.getPhone());
         stationInfo.setServiceTel(serviceTel);
         stationInfo.setStationTel(StringUtils.isNotEmpty(serviceTel) ? serviceTel.split(",")[0] : "");
         stationInfo.setServiceTel(StringUtils.isNotEmpty(serviceTel) ? serviceTel.split(",")[0] : "");
         switch (datum.getSiteType()){
            case 0:
               stationInfo.setStationType(StationTypeEnum.OTHER.getType());
@@ -588,7 +567,7 @@
    * @return
    */
   @PostMapping("/pushChargingGunStatus")
   public R pushChargingGunStatus(@RequestParam("fullNumber") String fullNumber, @RequestParam("status") Integer status){
   public R pushChargingGunStatus(@RequestParam(value = "fullNumber") String fullNumber, @RequestParam(value = "status") Integer status){
      ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
      connectorStatusInfo.setConnectorID(fullNumber);
      switch (status){
@@ -651,7 +630,9 @@
      List<Integer> siteIds = data.stream().map(Site::getId).collect(Collectors.toList());
      List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData();
      List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
      List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData();
      GetChargingGunByChargingPileIdsVo vo = new GetChargingGunByChargingPileIdsVo();
      vo.setChargingPileIds(collect1);
      List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(vo).getData();
      
      QueryStationStatusResult result = new QueryStationStatusResult();
      result.setTotal(data.size());
@@ -1245,17 +1226,23 @@
      queryEquipChargeStatusResult.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
      queryEquipChargeStatusResult.setTotalPower(chargingOrder.getElectricity());
      
      List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
      if(data.size() > 0){
         BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
         BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
         BigDecimal totalMoney = totalElectricity.add(serviceCharge).setScale(4, RoundingMode.HALF_EVEN);
         queryEquipChargeStatusResult.setElecMoney(totalElectricity);
         queryEquipChargeStatusResult.setSeviceMoney(serviceCharge);
         queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getPaymentAmount());
      }else{
         queryEquipChargeStatusResult.setTotalMoney(totalMoney);
      }else if(null != chargingOrder.getRechargeAmount() && null != chargingOrder.getResidualAmount()){
         queryEquipChargeStatusResult.setElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
         queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO);
         queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
      }else{
         queryEquipChargeStatusResult.setElecMoney(BigDecimal.ZERO);
         queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO);
         queryEquipChargeStatusResult.setTotalMoney(BigDecimal.ZERO);
      }
      
      //构建充电明细
@@ -1282,7 +1269,7 @@
         }
         chargeDetail.setElecPrice(datum.getElectrovalence());
         chargeDetail.setSevicePrice(datum.getServiceCharge());
         chargeDetail.setDetailPower(datum.getChargingCapacity());
         chargeDetail.setDetailPower(datum.getChargingCapacity().setScale(2, BigDecimal.ROUND_HALF_UP));
         chargeDetail.setDetailElecMoney(datum.getPeriodElectricPrice());
         chargeDetail.setDetailSeviceMoney(datum.getPeriodServicePrice());
         chargeDetails.add(chargeDetail);
@@ -1489,6 +1476,7 @@
      notificationChargeOrderInfo.setStartChargeSeq(startChargeSeq);
      TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(startChargeSeq).getData();
      if(null == chargingOrder){
         log.info("三方平台流水号获取订单失败");
         return null;
      }
      TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
@@ -1499,11 +1487,12 @@
      
      List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
      if(data.size() > 0){
         BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
         BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
         notificationChargeOrderInfo.setTotalElecMoney(totalElectricity.setScale(2, RoundingMode.HALF_EVEN));
         notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge.setScale(2, RoundingMode.HALF_EVEN));
         notificationChargeOrderInfo.setTotalMoney(chargingOrder.getPaymentAmount());
         BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN);
         BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN);
         BigDecimal totalMoney = totalElectricity.add(serviceCharge).setScale(4, RoundingMode.HALF_EVEN);
         notificationChargeOrderInfo.setTotalElecMoney(totalElectricity);
         notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge);
         notificationChargeOrderInfo.setTotalMoney(totalMoney);
      }else{
         notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
         notificationChargeOrderInfo.setTotalSeviceMoney(BigDecimal.ZERO);
@@ -1556,7 +1545,7 @@
         }
         chargeDetail.setElecPrice(datum.getElectrovalence());
         chargeDetail.setSevicePrice(datum.getServiceCharge());
         chargeDetail.setDetailPower(datum.getChargingCapacity());
         chargeDetail.setDetailPower(datum.getChargingCapacity().setScale(2, BigDecimal.ROUND_HALF_UP));
         chargeDetail.setDetailElecMoney(datum.getPeriodElectricPrice());
         chargeDetail.setDetailSeviceMoney(datum.getPeriodServicePrice());
         chargeDetails.add(chargeDetail);
@@ -1751,7 +1740,7 @@
            }
            chargeDetail.setElecPrice(datum.getElectrovalence());
            chargeDetail.setSevicePrice(datum.getServiceCharge());
            chargeDetail.setDetailPower(datum.getChargingCapacity());
            chargeDetail.setDetailPower(datum.getChargingCapacity().setScale(2, BigDecimal.ROUND_HALF_EVEN));
            chargeDetail.setDetailElecMoney(datum.getPeriodElectricPrice());
            chargeDetail.setDetailSeviceMoney(datum.getPeriodServicePrice());
            chargeDetails.add(chargeDetail);
@@ -1888,7 +1877,9 @@
      List<TChargingPile> chargingPiles = chargingPileClient.getChargingPileBySiteIds(stationIDList).getData();
      if(!CollectionUtils.isEmpty(chargingPiles)){
         List<Integer> pileIds = chargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
         List<TChargingGun> chargingGuns = chargingGunClient.getChargingGunByChargingPileIds(pileIds).getData();
         GetChargingGunByChargingPileIdsVo vo = new GetChargingGunByChargingPileIdsVo();
         vo.setChargingPileIds(pileIds);
         List<TChargingGun> chargingGuns = chargingGunClient.getChargingGunByChargingPileIds(vo).getData();
         if(!CollectionUtils.isEmpty(chargingGuns)){
            for (Integer stationID : stationIDList) {
               StationStatusInfo stationStatusInfo = new StationStatusInfo();
@@ -2122,85 +2113,7 @@
   }
   /**
    * 推送充换电站信息
    * @param id
    * @return
    */
   @PostMapping("/supervise_notification_station_info")
   public R superviseNotificationStationInfo(@RequestParam("id") Integer id){
      String serviceTel = systemConfigurationClient.getServerPhone().getData();
      Site site = siteClient.getSiteAll().getData().stream().filter(e -> e.getId().equals(id)).findFirst().orElse(new Site());
      List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(Collections.singletonList(site.getId())).getData();
      List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
      List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData();
      SupStationInfo supStationInfo = new SupStationInfo();
      supStationInfo.setStationID(site.getId().toString());
      supStationInfo.setStationUniqueNumber(site.getDistrictsCode() + "906171535" + site.getId());
      supStationInfo.setOperatorID("906171535");
      supStationInfo.setEquipmentOwnerID("906171535");
      supStationInfo.setStationName(site.getName());
      supStationInfo.setCountryCode(site.getCountryCode());
      supStationInfo.setAreaCode(site.getCityCode());
      supStationInfo.setAddress(site.getAddress());
      supStationInfo.setAreaCodeCountryside(site.getAreaCodeCountryside());
      supStationInfo.setStationTel(site.getPhone());
      supStationInfo.setServiceTel(serviceTel);
      supStationInfo.setStationClassification(site.getStationClassification());
      supStationInfo.setGeneralApplicationType(site.getGeneralApplicationType());
      supStationInfo.setStationType(site.getSiteType());
      supStationInfo.setStationStatus(site.getStatus());
      supStationInfo.setParkNums(site.getParkingSpace());
      supStationInfo.setStationLat(new BigDecimal(site.getLat()).setScale(6, RoundingMode.DOWN));
      supStationInfo.setStationLng(new BigDecimal(site.getLon()).setScale(6, RoundingMode.DOWN));
      supStationInfo.setSiteGuide(site.getGuide());
      supStationInfo.setConstruction(site.getConstructionSite() == 0 ? ConstructionEnum.OTHER.getType() : site.getConstructionSite());
      supStationInfo.setPictures(StringUtils.isNotEmpty(site.getImgUrl()) ? Arrays.asList(site.getImgUrl().split(",")) : new ArrayList<>());
      supStationInfo.setMatchCars(site.getVehicleDescription());
      if (org.springframework.util.StringUtils.hasLength(site.getSwapMatchCars())){
         supStationInfo.setSwapMatchCars(Arrays.asList(site.getSwapMatchCars().split(",")));
      }
      supStationInfo.setBusineHours(site.getStartServiceTime());
      supStationInfo.setRoundTheClock(site.getRoundTheClock());
      supStationInfo.setParkType(site.getParkType());
      supStationInfo.setParkFee("{\"rules\":"+site.getParkFee()+","+"\"freeDuration\":"+site.getParkFeeFree()+"}");
      supStationInfo.setElectricityType(site.getElectricityType());
      supStationInfo.setBusinessExpandType(site.getBusinessExpandType());
      supStationInfo.setCapacity(site.getCapacity());
      supStationInfo.setRatedPower(site.getRatedPower());
      supStationInfo.setPeriodFee(site.getPeriodFee());
      supStationInfo.setOfficialRunTime(site.getOfficialRunTime());
      supStationInfo.setStationOrientation(site.getStationOrientation());
      supStationInfo.setStationArea(site.getStationArea());
      supStationInfo.setHavePerson(site.getHavePerson());
      supStationInfo.setVideoMonitor(site.getVideoMonitor());
      if (StringUtils.isNotEmpty(site.getSupportingFacilities())){
         String[] split = site.getSupportingFacilities().split(",");
         List<Integer> collect = Arrays.stream(split).map(Integer::parseInt).collect(Collectors.toList());
         supStationInfo.setSupportingFacilities(collect);
      }
      supStationInfo.setPrinterFlag(site.getPrinterFlag());
      supStationInfo.setBarrierFlag(site.getBarrierFlag());
      supStationInfo.setParkingLockFlag(site.getParkingLockFlag());
      supStationInfo.setEquipmentInfos(buildEquipmentInfo(site.getId(), tChargingPiles, chargingGunList));
//      supStationInfo.setSwapEquipmentInfos();
      supStationInfo.setElectricityFee("{"+site.getElectricityFee()+"}");
      supStationInfo.setEquipmentOwnerName(site.getEquipmentOwnerName());
      supStationInfo.setResidentNo(site.getResidentNo());
      supStationInfo.setSupplyType(site.getSupplyType());
      supStationInfo.setWattHourMeterNo(site.getWattHourMeterNo());
      supStationInfo.setForwardPower(site.getForwardPower());
      supStationInfo.setServiceFee("{"+site.getServiceFee()+"}");
      supStationInfo.setRecordUniqueNo(site.getRecordUniqueNo());
      BaseResult baseResult = new BaseResult();
      SupStationInfoResult supStationInfoResult = new SupStationInfoResult();
      supStationInfoResult.setSupStationInfo(supStationInfo);
      tcecSuperviseUtil.superviseNotificationStationInfo(supStationInfoResult);
      return R.ok(baseResult);
   }
//
//
//   /**