ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java
@@ -23,7 +23,7 @@ @ApiModelProperty(value = "服务费折扣") private BigDecimal serviceFeeDiscount; @ApiModelProperty(value = "折扣") @ApiModelProperty(value = "模板折扣几折") private BigDecimal discount; } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.chargingPile.api.dto.TAccountingStrategyDTO; import com.ruoyi.chargingPile.api.model.*; import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy; @@ -14,6 +15,7 @@ import com.ruoyi.chargingPile.service.TChargingPileService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.SteategyPassDto; import com.ruoyi.common.core.enums.status.AppUserStatusEnum; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; @@ -143,6 +145,9 @@ if(!flag1){ return AjaxResult.error("同阶段费率值需一致"); } if(Objects.isNull(dto.getDiscount())){ accountingStrategyService.update(Wrappers.<TAccountingStrategy>lambdaUpdate().set(TAccountingStrategy::getDiscount, null).eq(TAccountingStrategy::getId, dto.getId())); } // 判断修改的计费策略是否为已通过 if(null != dto.getAuditStatus() && (dto.getAuditStatus() == 3 || dto.getAuditStatus() == 4)){ // 查询是否有下级审核中的策略 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java
@@ -10,11 +10,17 @@ import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.OperatorType; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import java.util.Objects; /** * <p> @@ -30,7 +36,27 @@ @Resource private TRepairService repairService; @Resource private TokenService tokenService; @Autowired private SysUserClient userClient; /** * 添加故障报修管理 */ @Log(title = "添加故障报修管理", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE) @ApiOperation(tags = {"小程序-故障报修"},value = "添加故障报修管理") @PostMapping(value = "/add") public AjaxResult<String> add(@Validated @RequestBody TRepair dto) { Long userId = tokenService.getLoginUserApplet().getUserId(); // 查询报修人员信息 SysUser user = userClient.getSysUser(userId).getData(); if(Objects.nonNull(user)){ dto.setRepairman(user.getUserName()); } repairService.add(dto); return AjaxResult.success(); } @ResponseBody @GetMapping("/getRepairList") ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TRepairService.java
@@ -24,4 +24,10 @@ * @return */ List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, String name, String siteId); /** * 添加报修记录 * @param dto */ void add(TRepair dto); } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -145,9 +145,9 @@ user.setDelFlag("0"); user.setRoleId(partner.getRoleId().longValue()); user.setRoleType(2); user.setObjectId(partner.getId()); //添加新数据 this.save(partner); user.setObjectId(partner.getId()); R r = sysUserClient.addSysUser(user); if(200 != r.getCode()){ throw new RuntimeException(r.getMsg()); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -38,6 +38,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -233,9 +234,9 @@ if(StringUtils.isEmpty(site.getAddress())){ return AjaxResult.error("详细地址不能为空"); } if(StringUtils.isEmpty(site.getLon()) || StringUtils.isEmpty(site.getLat())){ return AjaxResult.error("地图位置不能为空"); } // if(StringUtils.isEmpty(site.getLon()) || StringUtils.isEmpty(site.getLat())){ // return AjaxResult.error("地图位置不能为空"); // } if(StringUtils.isEmpty(site.getPhone())){ return AjaxResult.error("站点电话不能为空"); } @@ -288,7 +289,7 @@ TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); if(Objects.nonNull(vip) && vip.getType() == 2){ list.forEach(item -> { item.setVipElectrovalence(vip.getDiscount().multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal())); item.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal())); }); } } @@ -370,7 +371,7 @@ TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); if(Objects.nonNull(vip) && vip.getType() == 2){ list.forEach(item -> { item.setVipElectrovalence(vip.getDiscount().multiply(item.getElectrovalence())); item.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal())); }); } } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
@@ -135,7 +135,7 @@ // 查询最高折扣的会员 TVip monthlyCardDiscount = vipClient.getVipInfoByType(3).getData(); strategyPriceVO.setServiceFeeDiscount(monthlyCardDiscount.getMonthlyCardDiscount()); // 查询最高抵扣的会员 // 查询最高优惠的会员 TVip maximumDeduction = vipClient.getVipInfoByType(1).getData(); strategyPriceVO.setMaxDiscountAmount(maximumDeduction.getMaximumDeduction()); // 查询最低起步价会员 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileNotificationServiceImpl.java
@@ -109,6 +109,7 @@ notification.setContent(data); break; } this.save(notification); } } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -298,8 +298,14 @@ List<TChargingGun> chargingGunList = chargingGuns.stream().filter(gun -> gun.getChargingPileId().equals(item.getId())).collect(Collectors.toList()); for (TChargingGun chargingGun : chargingGunList) { if(chargingGun.getStatus().equals(4)){ // TODO 查询正在充电的单子的实时记录 chargingGun.setSoc(100); // 查询正在充电的单子的实时记录 TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(chargingGun.getId()).getData(); if(Objects.nonNull(chargingOrder)){ UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData(); chargingGun.setSoc(uploadRealTimeMonitoringData.getSoc()); }else { chargingGun.setSoc(100); } } if(chargingGun.getStatus().equals(5)){ chargingGun.setSoc(100); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TRepairServiceImpl.java
@@ -3,14 +3,24 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.model.TRepair; import com.ruoyi.chargingPile.mapper.TRepairMapper; import com.ruoyi.chargingPile.service.ISiteService; import com.ruoyi.chargingPile.service.TChargingPileNotificationService; import com.ruoyi.chargingPile.service.TChargingPileService; import com.ruoyi.chargingPile.service.TRepairService; import com.ruoyi.common.core.constant.MsgConstants; import com.ruoyi.common.core.utils.HttpUtils; import com.ruoyi.common.core.utils.MsgUtil; import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; @@ -22,10 +32,15 @@ * @author xiaochen * @since 2024-08-08 */ @Slf4j @Service public class TRepairServiceImpl extends ServiceImpl<TRepairMapper, TRepair> implements TRepairService { @Autowired private ISiteService siteService; @Autowired private TChargingPileService chargingPileService; @Autowired private TChargingPileNotificationService chargingPileNotificationService; /** * 获取报修记录列表 * @param name @@ -36,4 +51,21 @@ public List<TRepair> getRepairList(PageInfo<TRepair> pageInfo, String name, String siteId) { return this.baseMapper.getRepairList(pageInfo, name, siteId); } @Override public void add(TRepair dto) { // 故障短信提醒 Site site = siteService.getById(dto.getSiteId()); TChargingPile chargingPile = chargingPileService.getById(dto.getChargingPileId()); String siteName = site.getName(); String reqStr = MsgUtil.faultMsg(site.getPhone(), site.getName(), chargingPile.getNumber() + ""); String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr); log.info("故障短信提醒:{}",result); if(siteName.length()>10){ siteName = siteName.substring(0,10); } chargingPileNotificationService.saveData(4,dto.getSiteId(),dto.getChargingPileId(),site.getPhone(),"检测到"+siteName+"..."+chargingPile.getNumber()+"号桩设备离线,请及时查看处理!"); dto.setRepairTime(LocalDateTime.now()); this.save(dto); } } ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -285,8 +285,10 @@ left join ( select a.accounting_strategy_id, a.service_charge AS serviceCharge, a.electrovalence AS electrovalenceOriginal, (a.electrovalence+a.service_charge) AS electrovalence, ((a.electrovalence+a.service_charge)*b.discount) AS vipElectrovalence (a.electrovalence+(a.service_charge*b.discount)) AS vipElectrovalence from t_accounting_strategy_detail a left join ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
@@ -43,7 +43,7 @@ AND tpr.code LIKE concat('%',#{query.code},'%') </if> <if test="query.licensePlate != null and query.licensePlate != ''"> AND tpr.licensePlate LIKE concat('%',#{query.licensePlate},'%') AND tpr.license_plate LIKE concat('%',#{query.licensePlate},'%') </if> <if test="query.lotIds != null and query.lotIds.size()>0"> AND tpr.parking_lot_id IN ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -785,19 +785,23 @@ LocalDate end = null; if (statisticsQueryDto.getDayType()==1){ start = LocalDate.now(); end = LocalDate.now().plusDays(1); }else if (statisticsQueryDto.getDayType()==2){ LocalDate today = LocalDate.now(); // 获取本周一的日期 LocalDate mondayThisWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime(); System.out.println("本周一是: " + mondayThisWeek); } else if (statisticsQueryDto.getDayType()==3){ // 获取当前日期 LocalDate today = LocalDate.now(); start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime(); // 获取本月1号的日期 YearMonth yearMonth = YearMonth.from(today); // start = yearMonth.atDay(1); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1242,7 +1242,7 @@ dto.setUserIds(carIds); } } if (StringUtils.hasLength(dto.getPhone())){ if (StringUtils.hasLength(dto.getLicensePlate())){ List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData(); if(data!=null){ if (!data.isEmpty()){