Pu Zhibing
2025-05-08 5b64f31f1d35b38b51935b5fa7f4b8cf46fbf4cf
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -24,6 +24,9 @@
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.BasePojo;
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.redis.service.RedisService;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
@@ -36,6 +39,7 @@
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.ChargingOrderAndUploadRealTimeMonitoringDataDto;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
import com.ruoyi.order.api.dto.ChargingStatisticeDTO;
import com.ruoyi.order.api.model.*;
import com.ruoyi.order.api.query.ChargingOrderQuery;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
@@ -54,6 +58,7 @@
import com.ruoyi.order.service.*;
import com.ruoyi.order.util.PreviousSixMonths;
import com.ruoyi.order.vo.EndOfChargePageInfo;
import com.ruoyi.order.vo.WatchChargingOrderVo;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.payment.api.feignClient.AliPaymentClient;
@@ -63,14 +68,11 @@
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.SysUserRoleVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -159,10 +161,25 @@
    private RoleSiteClient roleSiteClient;
    @Resource
    private SysUserRoleClient sysUserRoleClient;
    /**
     * 远程调用 监管平台查询前一天用能统计
     * @return
     */
    @ResponseBody
    @PostMapping(value = "/getChargingStatistics")
    public R<List<TChargingOrder>> getChargingStatistics(@RequestBody ChargingStatisticeDTO dto) {
        List<Long> collect = chargingOrderAccountingStrategyService.lambdaQuery().between(TChargingOrderAccountingStrategy::getCreateTime, dto.getStartTime(), dto.getEndTime())
                .list().stream().map(TChargingOrderAccountingStrategy::getChargingOrderId).collect(Collectors.toList());
        if (!collect.isEmpty()){
            List<TChargingOrder> list = chargingOrderService.lambdaQuery()
                    .in(TChargingOrder::getId,collect).list();
            return R.ok(list);
        }
        return R.ok(new ArrayList<TChargingOrder>());
    }
    /**
     * 远程调用 增加管理后台赠送会员记录
@@ -624,10 +641,11 @@
        chargingOrderInfoVO.setList(list);
        return AjaxResult.success(chargingOrderInfoVO);
    }
    
    
    
    @Log(title = "【扫一扫】添加评价", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
    @ResponseBody
    @PostMapping(value = "/addEvaluate")
    @ApiOperation(value = "添加评价", tags = {"小程序-扫一扫"})
@@ -780,7 +798,7 @@
    }
    
    
    @Log(title = "【扫一扫】支付充电充值费用", businessType = BusinessType.UPDATE,operatorType = OperatorType.MOBILE)
    @ResponseBody
    @PostMapping(value = "/paymentChargingOrder")
    @ApiOperation(value = "支付充电充值费用", tags = {"小程序-扫一扫"})
@@ -848,6 +866,19 @@
    
    
    /**
     *
     * @param code
     */
    @ResponseBody
    @PostMapping(value = "/refund1")
    public R refund1(@RequestParam(value = "code") String code, @RequestParam(value = "money") BigDecimal money){
        chargingOrderService.refund1(code, money);
        return R.ok();
    }
    /**
     * 远程启动失败后退款回调
     */
    @ResponseBody
@@ -861,8 +892,7 @@
    
    
    
    @ResponseBody
    @GetMapping(value = "/preChargeCheck/{id}")
    @ApiOperation(value = "获取安全检测数据", tags = {"小程序-扫一扫"})
@@ -876,7 +906,6 @@
    }
    
    
    @ResponseBody
    @GetMapping(value = "/getChargingDetails/{id}")
    @ApiOperation(value = "获取充电中页面数据", tags = {"小程序-扫一扫"})
@@ -887,8 +916,8 @@
        ChargingDetails chargingDetails = chargingOrderService.getChargingDetails(id);
        return AjaxResult.success(chargingDetails);
    }
    @Log(title = "【扫一扫】手动停止充电", businessType = BusinessType.STOP,operatorType = OperatorType.MOBILE)
    @ResponseBody
    @PutMapping(value = "/stopCharging/{id}")
    @ApiOperation(value = "手动停止充电", tags = {"小程序-扫一扫"})
@@ -1175,23 +1204,37 @@
        PageInfo<TChargingOrder> orderPageInfo = chargingOrderService.page(pageInfo, queryWrapper.orderByDesc(TChargingOrder::getCreateTime));
        List<Site> siteList = siteClient.getSiteAll().getData();
        
        List<WatchChargingOrderVo> list = new ArrayList<>();
        for (TChargingOrder record : orderPageInfo.getRecords()) {
            record.setIdStr(record.getId().toString());
            WatchChargingOrderVo vo = new WatchChargingOrderVo();
            BeanUtils.copyProperties(record, vo);
            vo.setIdStr(record.getId().toString());
            Site site = siteList.stream().filter(s->s.getId().equals(record.getSiteId())).findFirst().get();
            record.setSiteName(site.getName());
            vo.setSiteName(site.getName());
            TChargingPile chargingPile = chargingPileClient.getChargingPileById(record.getChargingPileId()).getData();
            record.setTerminalName(chargingPile.getName());
            vo.setTerminalName(chargingPile.getName());
            TChargingGun chargingGun = chargingGunClient.getChargingGunById(record.getChargingGunId()).getData();
            record.setTerminalCode(chargingGun.getName());
            vo.setTerminalCode(chargingGun.getName());
            
            if(null != record.getStartTime() && null != record.getEndTime()){
                long time = record.getEndTime().toEpochSecond(ZoneOffset.UTC) - record.getStartTime().toEpochSecond(ZoneOffset.UTC);
                record.setChargingTime(time + "");
                vo.setChargingTime(time + "");
            }
            long count = chargingOrderAccountingStrategyService.count(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, record.getId()));
            record.setTimeFrame(count);
            vo.setTimeFrame(count);
            vo.setAuthInfo(roleType == 1 ? true : partnerClient.authMenu(objectId, record.getSiteId(), SiteMenu.CHARGING_PILE_ORDER_MONITORING_RECORD_INFO.getValue()));
            vo.setAuthDelete(roleType == 1 ? true : partnerClient.authMenu(objectId, record.getSiteId(), SiteMenu.CHARGING_PILE_ORDER_MONITORING_RECORD_DEL.getValue()));
            list.add(vo);
        }
        return R.ok(orderPageInfo);
        PageInfo<WatchChargingOrderVo> pageInfos = new PageInfo<>(query.getPageCurr(), query.getPageSize());
        pageInfos.setRecords(list);
        pageInfos.setCurrent(pageInfo.getCurrent());
        pageInfos.setPages(pageInfo.getPages());
        pageInfos.setSize(pageInfo.getSize());
        pageInfos.setStartIndex(pageInfo.getStartIndex());
        pageInfos.setTotal(pageInfo.getTotal());
        return R.ok(pageInfos);
    }
    
    
@@ -1264,7 +1307,6 @@
            start = statisticsQueryDto.getStartTime();
            end = statisticsQueryDto.getEndTime();
        }else if (statisticsQueryDto.getDayType()==5){
            // 获取今年1月1日的日期
            start = statisticsQueryDto.getStartTime();
            end = statisticsQueryDto.getEndTime();
            if (start.equals(end)){
@@ -1429,7 +1471,10 @@
        BigDecimal commissionAmount = BigDecimal.ZERO;
        for (Map<String, Object> map : maps) {
            BigDecimal periodElectricPrice = (BigDecimal) map.get("period_electric_price");
            allMoney = allMoney.add(periodElectricPrice);
            Long order_source = (Long)map.get("order_source");
            if(2 != order_source){
                allMoney = allMoney.add(periodElectricPrice);
            }
            BigDecimal total_amount = (BigDecimal) map.get("total_amount");
            allMoney = allMoney.add(total_amount);
            commissionAmount = commissionAmount.add((BigDecimal) map.get("commissionAmount"));
@@ -2289,6 +2334,15 @@
        return chargingOrderService.getNotPaymentChargingOrder();
    }
    
    /**
     * 手动推送订单给三方平台
     * @param code
     * @return
     */
    @PostMapping("/pushOrderInfo")
    public R pushOrderInfo(@RequestParam String code){
        return chargingOrderService.pushOrderInfo(code);
    }
    
}