ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/IntegrationFallbackFactory.java
@@ -124,7 +124,7 @@ } @Override public R<String> setupBillingModel1(String deviceId) { public R<String> setupBillingModel1(String deviceId, String json) { return R.fail("远程更新硬件:" + throwable.getMessage()); } }; ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/IntegrationClient.java
@@ -9,6 +9,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; /** * 充电服务 * @author ruoyi @@ -176,7 +178,7 @@ public R<String> platformRemoteUpdate(@RequestBody PlatformRemoteUpdate platformRemoteUpdate); @PostMapping("/iot/setupBillingModel") public R<String> setupBillingModel1(@RequestParam("deviceId") String deviceId); public R<String> setupBillingModel1(@RequestParam("deviceId") String deviceId, @RequestParam("json") String json); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -1,6 +1,8 @@ package com.ruoyi.chargingPile.controller; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.chargingPile.api.dto.TAccountingStrategyDTO; @@ -119,16 +121,16 @@ Long userId = SecurityUtils.getLoginUser().getUserid(); dto.setUserId(userId); accountingStrategyService.save(dto); // 添加明细 dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()); if(null != dto.getSiteId()){ //下发硬件数据 List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).eq(TChargingPile::getDelFlag, 0).list(); for (TChargingPile tChargingPile : list) { integrationClient.setupBillingModel1(tChargingPile.getCode()); integrationClient.setupBillingModel1(tChargingPile.getCode(), JSON.toJSONString(dto.getAccountingStrategyDetails())); } } // 添加明细 dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()); return AjaxResult.ok(dto.getId()); } @@ -202,7 +204,7 @@ //下发硬件数据 List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, dto.getSiteId()).eq(TChargingPile::getDelFlag, 0).list(); for (TChargingPile tChargingPile : list) { integrationClient.setupBillingModel1(tChargingPile.getCode()); integrationClient.setupBillingModel1(tChargingPile.getCode(), JSON.toJSONString(dto.getAccountingStrategyDetails())); } } return AjaxResult.success(); @@ -380,9 +382,11 @@ accountingStrategyService.removeById(one.getId()); } //硬件 List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailService.list(new LambdaQueryWrapper<TAccountingStrategyDetail>().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId.getId())); List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, byId.getSiteId()).list(); for (TChargingPile tChargingPile : list) { integrationClient.setupBillingModel1(tChargingPile.getCode()); integrationClient.setupBillingModel1(tChargingPile.getCode(), JSON.toJSONString(accountingStrategyDetails)); } } }else { ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -9,10 +9,7 @@ import com.ruoyi.account.api.model.TAppUserVipDetail; import com.ruoyi.account.api.vo.GetAppUserVipDetail; import com.ruoyi.chargingPile.api.dto.GetSiteListDTO; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.model.TParkingLot; import com.ruoyi.chargingPile.api.model.*; import com.ruoyi.chargingPile.api.query.GetSiteList; import com.ruoyi.chargingPile.api.query.SiteDetailQuery; import com.ruoyi.chargingPile.api.query.SiteQuery; @@ -87,6 +84,9 @@ private IntegrationClient integrationClient; @Resource private AppUserVipDetailClient vipDetailClient; @Resource private TAccountingStrategyDetailService accountingStrategyDetailService; /** @@ -438,14 +438,17 @@ this.updateById(site); List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getSiteId, id).eq(TChargingGun::getDelFlag, 0)); for (TChargingGun tChargingGun : list) { tChargingGun.setAccountingStrategyId(accountingStrategyId); TChargingGun tChargingGun1 = new TChargingGun(); tChargingGun1.setId(tChargingGun.getId()); tChargingGun1.setAccountingStrategyId(accountingStrategyId); chargingGunService.updateById(tChargingGun1); } chargingGunService.updateBatchById(list); //下发硬件数据 List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailService.list(new LambdaQueryWrapper<TAccountingStrategyDetail>().eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategyId)); List<TChargingPile> list1 = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, id).eq(TChargingPile::getDelFlag, 0).list(); for (TChargingPile tChargingPile : list1) { integrationClient.setupBillingModel1(tChargingPile.getCode()); integrationClient.setupBillingModel1(tChargingPile.getCode(), JSON.toJSONString(accountingStrategyDetails)); } } } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -1,15 +1,13 @@ package com.ruoyi.chargingPile.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.AppUserCarClient; import com.ruoyi.account.api.model.TAppUserCar; import com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.model.TFaultMessage; import com.ruoyi.chargingPile.api.model.*; import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy; import com.ruoyi.chargingPile.api.query.PageChargingPileList; import com.ruoyi.chargingPile.api.vo.TChargingGunVO; @@ -111,6 +109,9 @@ @Resource private IntegrationClient integrationClient; @Resource private TAccountingStrategyDetailService accountingStrategyDetailService; @@ -286,12 +287,16 @@ List<Integer> id = setAccountingStrategy.getId(); List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getChargingPileId, id).eq(TChargingGun::getDelFlag, 0)); for (TChargingGun tChargingGun : list) { tChargingGun.setAccountingStrategyId(setAccountingStrategy.getAccountingStrategyId()); TChargingGun tChargingGun1 = new TChargingGun(); tChargingGun1.setId(tChargingGun.getId()); tChargingGun1.setAccountingStrategyId(setAccountingStrategy.getAccountingStrategyId()); chargingGunService.updateById(tChargingGun1); } chargingGunService.updateBatchById(list); Integer accountingStrategyId = setAccountingStrategy.getAccountingStrategyId(); List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailService.list(new LambdaQueryWrapper<TAccountingStrategyDetail>().eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategyId)); //下发硬件更新计费模板 for (TChargingPile chargingPile : this.listByIds(id)) { integrationClient.setupBillingModel1(chargingPile.getCode()); integrationClient.setupBillingModel1(chargingPile.getCode(), JSON.toJSONString(accountingStrategyDetails)); } } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -81,6 +81,7 @@ parkingRecord.setPayType(order.getPayType()); BigDecimal payment = new BigDecimal(order.getPayment()); parkingRecord.setStatus(BigDecimal.ZERO.compareTo(payment) == 0 ? 2 : 3); parkingRecord.setOutParkingType(BigDecimal.ZERO.compareTo(payment) == 0 ? 2 : 1); parkingRecordClient.updateParkingRecord(parkingRecord); } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -382,18 +382,17 @@ @ApiOperation(value = "计费模型设置",tags = {"硬件接口"}) @PostMapping(value = "/setupBillingModel") public R setupBillingModel(@RequestParam("deviceId") String deviceId) { public R setupBillingModel(@RequestParam("deviceId") String deviceId, @RequestParam("json") String json) { SetupBillingModel setupBillingModel = new SetupBillingModel(); List<TAccountingStrategyDetail> accountingStrategyDetails = JSON.parseArray(json, TAccountingStrategyDetail.class); // 计费模型 List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode(deviceId).getData(); Map<Integer, TAccountingStrategyDetail> strategyPrice = StrategyUtil.getStrategyPrice(accountingStrategyDetails); // 价格设置 AcquisitionBillingModeReply acquisitionBillingModeReply = new AcquisitionBillingModeReply(); StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply); // 时段设置 StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply); TAccountingStrategyDetail accountingStrategyDetail = accountingStrategyDetailClient.getDetailByCode(deviceId).getData(); acquisitionBillingModeReply.setBilling_model_code(accountingStrategyDetail.getId().toString()); acquisitionBillingModeReply.setBilling_model_code(accountingStrategyDetails.get(0).getAccountingStrategyId().toString()); acquisitionBillingModeReply.setCharging_pile_code(deviceId); acquisitionBillingModeReply.setLoss_ratio(BigDecimal.ZERO); BeanUtils.copyProperties(acquisitionBillingModeReply,setupBillingModel); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1817,7 +1817,7 @@ //获取订单的计费策略 List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData(); accountingStrategyDetailOrderList.get(accountingStrategyDetailOrderList.size() - 1).setEndTime("23:59"); //开始处理计费明细数据和优惠数据 chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId())); SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");