无关风月
2026-01-29 55fe7f2c190ce6560befc22c6f329186d4e5598f
临时数据对接,站点和枪新增临时字段
3个文件已添加
9个文件已修改
681 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/resources/bootstrap.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ChargeDetail.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ChargeOrder.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/constant/ChargePileInterface.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/ChargingPileInfoController.java 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/NotifyController.java 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/PageInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/TContent.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/util/ChargePileHttpUtil.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderBackController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
@@ -465,5 +465,8 @@
    @TableField("isEnergyStorage")
    @ApiModelProperty(value = "是否有储能设施(0:无,1:有)")
    private Integer isEnergyStorage;
    // todo 临时字段 用于区分途来电订单数据属于哪一个站点
    @TableField("stationID")
    @ApiModelProperty(value = "站点ID")
    private String stationID;
}
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java
@@ -148,4 +148,8 @@
    @ApiModelProperty(value = "2.0修改字段-运营时间描述")
    @TableField("opreate_hours")
    private String opreateHours;
    // todo 临时字段 用于区分途来电订单数据属于哪一个站点
    @TableField("connectorID")
    @ApiModelProperty(value = "连接器id")
    private String connectorID;
}
ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
    allow-bean-definition-overriding: true
  profiles:
    # 环境配置
#    active: dev
    active: prod
    active: dev
#    active: prod
---
spring:
  config:
@@ -23,7 +23,7 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.169:8848
        server-addr: 192.168.110.64:8848
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
@@ -31,7 +31,7 @@
        password: nacos
      config:
        # 配置中心地址
        server-addr: 192.168.110.169:8848
        server-addr: 192.168.110.64:8848
        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
        username: nacos
        password: nacos
@@ -52,7 +52,7 @@
      datasource:
        ds1:
          nacos:
            server-addr: 192.168.110.169:8848
            server-addr: 192.168.110.64:8848
            dataId: sentinel-ruoyi-gateway
            groupId: DEFAULT_GROUP
            username: nacos
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ChargeDetail.java
New file
@@ -0,0 +1,33 @@
package com.ruoyi.chargingPile.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(description = "充电详情实体")
@Data
public class ChargeDetail {
    @ApiModelProperty(value = "详情开始时间", example = "2023-11-10 14:16:54")
    private String detailStartTime;
    @ApiModelProperty(value = "详情结束时间", example = "1970-01-01 08:00:00")
    private String detailEndTime;
    @ApiModelProperty(value = "电价", example = "0.5")
    private Double elecPrice;
    @ApiModelProperty(value = "服务价格", example = "0.42")
    private Double sevicePrice;
    @ApiModelProperty(value = "详情功率", example = "0")
    private Integer detailPower;
    @ApiModelProperty(value = "详情电费", example = "0")
    private Integer detailElecMoney;
    @ApiModelProperty(value = "详情服务费", example = "0")
    private Integer detailSeviceMoney;
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ChargeOrder.java
New file
@@ -0,0 +1,62 @@
package com.ruoyi.chargingPile.dto;
import com.ruoyi.chargingPile.tulaidian.domain.ChargeDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ApiModel(description = "充电订单实体")
@Data
public class ChargeOrder {
    @ApiModelProperty(value = "启动充电序列号", example = "1726204696124142")
    private String startChargeSeq;
    @ApiModelProperty(value = "启动充电序列状态", example = "4")
    private Integer startChargeSeqStat;
    @ApiModelProperty(value = "连接器状态", example = "1")
    private Integer connectorStatus;
    @ApiModelProperty(value = "连接器ID", example = "9227171651855801")
    private String connectorID;
    @ApiModelProperty(value = "当前电流A", example = "0.0")
    private String currentA;
    @ApiModelProperty(value = "电压A", example = "0.0")
    private String voltageA;
    @ApiModelProperty(value = "电池电量百分比", example = "0.00")
    private String soc;
    @ApiModelProperty(value = "开始时间", example = "2024-09-13 13:18:16")
    private String startTime;
    @ApiModelProperty(value = "结束时间", example = "2026-01-27 10:42:05")
    private String endTime;
    @ApiModelProperty(value = "总功率", example = "0.0000")
    private String totalPower;
    @ApiModelProperty(value = "电费", example = "0.00")
    private String elecMoney;
    @ApiModelProperty(value = "服务费", example = "0.00")
    private String seviceMoney;
    @ApiModelProperty(value = "总费用", example = "0.00")
    private String totalMoney;
    @ApiModelProperty(value = "车辆识别码", example = "null")
    private String vin;
    @ApiModelProperty(value = "充电详情列表")
    private List<ChargeDetail> chargeDetails;
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/constant/ChargePileInterface.java
@@ -7,6 +7,7 @@
    public static final String QUERY_TOKEN = "http://tld.itsou.top/evcs/tld/query_token";
    // 查询充电站信息
    public static final String QUERY_STATIONS_INFO = "http://tld.itsou.top/evcs/tld/query_stations_info";
    public static final String QUERY_ORDER_LIST = "http://tld.itsou.top/evcs/tld/query_finish_orders";
    // 设备接口状态查询
    public static final String QUERY_STATION_STATUS = "http://tld.itsou.top/evcs/tld/query_station_status";
    // 查询业务策略信息
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/ChargingPileInfoController.java
@@ -3,22 +3,26 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.dto.ChargeOrder;
import com.ruoyi.chargingPile.service.ISiteService;
import com.ruoyi.chargingPile.service.TChargingGunService;
import com.ruoyi.chargingPile.service.TChargingPileService;
import com.ruoyi.chargingPile.tulaidian.domain.ConnectorInfo;
import com.ruoyi.chargingPile.tulaidian.domain.EquipmentInfos;
import com.ruoyi.chargingPile.tulaidian.domain.PageInfo;
import com.ruoyi.chargingPile.tulaidian.domain.StationInfos;
import com.ruoyi.chargingPile.tulaidian.domain.*;
import com.ruoyi.chargingPile.tulaidian.util.ChargePileHttpUtil;
import com.ruoyi.chargingPile.tulaidian.util.CodeGenerateUtils;
import com.ruoyi.chargingPile.util.UUIDUtil;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
import com.ruoyi.other.api.domain.Region;
import com.ruoyi.other.api.feignClient.OtherClient;
import io.swagger.annotations.ApiImplicitParam;
@@ -27,6 +31,7 @@
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -36,17 +41,18 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 接口控制器提供
 * 站桩枪、订单 临时数据接口
 *
 * @author stylefeng
 * @Date 2018/7/20 23:39
 */
@RestController
@RequestMapping("/chargingPileInfo111")
@RequestMapping("/chargingPileInfo")
@Slf4j
public class ChargingPileInfoController {
    @Autowired
@@ -54,9 +60,13 @@
    @Autowired
    private ISiteService siteService;
    @Autowired
    private ChargingOrderAccountingStrategyClient chargingOrderAccountingStrategyClient;
    @Autowired
    private TChargingGunService chargingGunService;
    @Autowired
    private TChargingPileService chargingPileService;
    @Autowired
    private ChargingOrderClient chargingOrderClient;
    @Autowired
    private OtherClient otherClient;
    private static final double EARTH_RADIUS = 6371.0; // 地球半径,单位为千米
@@ -83,19 +93,133 @@
        return EARTH_RADIUS * c;
    }
    @ResponseBody
    @PostMapping("/deleteSite")
    @ApiOperation(value = "删除关联站桩枪", tags = {"删除关联站桩枪"}, notes = "")
    public R<String> deleteSite(){
        List<Integer> siteIds = siteService.lambdaQuery().eq(Site::getPartnerId, 26)
                .list().stream().map(Site::getId)
                .collect(Collectors.toList());
        siteService.remove(new LambdaQueryWrapper<Site>()
                .eq(Site::getPartnerId,26));
        if (!siteIds.isEmpty()){
        chargingPileService.remove(new LambdaQueryWrapper<TChargingPile>()
                .in(TChargingPile::getSiteId,siteIds));
        chargingGunService.remove(new LambdaQueryWrapper<TChargingGun>()
                .in(TChargingGun::getSiteId,siteIds));
        }
        return R.ok();
    }
    /**
     * 司机端-获取充电桩列表
     */
    @ResponseBody
    @PostMapping("/orderList")
    @ApiOperation(value = "获取充电订单", tags = {"司机端-获取充电订单"}, notes = "")
    public R<String> chargingPileList(){
        List<ChargeOrder> result = getOrderList();
        List<TChargingOrder> orders = new ArrayList<>();
        List<TChargingOrderAccountingStrategy> accountingStrategies = new ArrayList<>();
        // 封装订单数据
        for (ChargeOrder chargeOrder : result) {
            TChargingOrder chargingOrder = new TChargingOrder();
            chargingOrder.setOrderType(1);
            chargingOrder.setOrderClassification(1);
//            chargingOrder.setAppUserId(1L);
//            chargingOrder.setAppUserCarId(1L);
            chargingOrder.setRefundAmount(new BigDecimal(chargeOrder.getTotalMoney()));
            chargingOrder.setRechargeSerialNumber("4200002747202505247686188393");
            chargingOrder.setCouponDiscountAmount(BigDecimal.ZERO);
            chargingOrder.setVipDiscount(BigDecimal.ZERO);
            chargingOrder.setVipDiscountAmount(BigDecimal.ZERO);
            chargingOrder.setCouponDiscountAmount(BigDecimal.ZERO);
            chargingOrder.setCommissionAmount(BigDecimal.ZERO);
            chargingOrder.setSharingAmount(BigDecimal.ZERO);
            chargingOrder.setDelFlag(false);
            chargingOrder.setNeedElec(new BigDecimal(chargeOrder.getTotalPower()));
            chargingOrder.setStartSoc(BigDecimal.ZERO);
            chargingOrder.setEndSoc(new BigDecimal("100"));
            chargingOrder.setPower(new BigDecimal(chargeOrder.getTotalPower()));
            chargingOrder.setElectricity(new BigDecimal(chargeOrder.getTotalPower()));
            chargingOrder.setVoltage(new BigDecimal(chargeOrder.getTotalPower()));
            chargingOrder.setCurrent(new BigDecimal(chargeOrder.getTotalPower()));
            chargingOrder.setChargingPower(new BigDecimal(chargeOrder.getTotalPower()));
            chargingOrder.setChargingCapacity(new BigDecimal(chargeOrder.getTotalPower()));
            chargingOrder.setCode(chargeOrder.getStartChargeSeq());
            chargingOrder.setOrderSource(2);
            chargingOrder.setOperatorId(26);
            chargingOrder.setTripartitePlatformName("途来电");
            chargingOrder.setStartChargeSeq(chargeOrder.getStartChargeSeq());
            chargingOrder.setSourceName("途来电");
            chargingOrder.setStartTime(DateUtils.stringToLocalDateTime(chargeOrder.getStartTime()));
            chargingOrder.setEndTime(DateUtils.stringToLocalDateTime(chargeOrder.getEndTime()));
            chargingOrder.setStatus(5);
            chargingOrder.setEndMode(1);
            chargingOrder.setElectrovalence(new BigDecimal(chargeOrder.getElecMoney()));
            chargingOrder.setServiceCharge(new BigDecimal(chargeOrder.getSeviceMoney()));
            chargingOrder.setTotalElectricity(new BigDecimal(chargeOrder.getElecMoney()));
            chargingOrder.setPaymentAmount(new BigDecimal(chargeOrder.getTotalMoney()));
            chargingOrder.setRechargePaymentType(1);
            chargingOrder.setRechargePaymentStatus(2);
            chargingOrder.setChargeAmount(new BigDecimal(chargeOrder.getTotalMoney()));
            chargingOrder.setOrderAmount(new BigDecimal(chargeOrder.getTotalMoney()));
            chargingOrder.setResidualAmount(BigDecimal.ZERO);
            chargingOrder.setPaymentAmount(new BigDecimal(chargeOrder.getTotalMoney()));
            chargingOrder.setPayTime(LocalDateTime.now());
            // 通过枪编号查询枪
            TChargingGun chargingGun = chargingGunService.getOne(Wrappers.lambdaQuery(TChargingGun.class)
                    .eq(TChargingGun::getConnectorID, chargeOrder.getConnectorID()));
            if(Objects.nonNull(chargingGun)){
                chargingOrder.setChargingGunId(chargingGun.getId());
                chargingOrder.setChargingPileId(chargingGun.getChargingPileId());
                chargingOrder.setSiteId(chargingGun.getSiteId());
            }else{
                continue;
            }
            R<Long> orderIdR = chargingOrderClient.addChargingOrder(chargingOrder);
            if(orderIdR.getCode() == 200){
                // 充电明细
                List<ChargeDetail> chargeDetails = chargeOrder.getChargeDetails();
                if(!CollectionUtils.isEmpty(chargeDetails)){
                    List<TChargingOrderAccountingStrategy> accountingStrategyList = new ArrayList<>();
                    for (ChargeDetail chargeDetail : chargeDetails) {
                        TChargingOrderAccountingStrategy accountingStrategy = new TChargingOrderAccountingStrategy();
                        accountingStrategy.setChargingOrderId(orderIdR.getData());
                        accountingStrategy.setAccountingStrategyDetailId(232);
                        accountingStrategy.setType(1);
                        accountingStrategy.setStartTime(chargeDetail.getDetailStartTime());
                        accountingStrategy.setEndTime(chargeDetail.getDetailEndTime());
                        accountingStrategy.setElectrovalence(chargeDetail.getElecPrice());
                        accountingStrategy.setServiceCharge(chargeDetail.getSevicePrice());
                        accountingStrategy.setCostServiceCharge(chargeDetail.getDetailSeviceMoney());
                        accountingStrategy.setChargingCapacity(chargeDetail.getDetailPower());
                        accountingStrategy.setPeriodElectricPrice(chargeDetail.getDetailElecMoney());
                        accountingStrategy.setCouponDiscountAmount(BigDecimal.ZERO);
                        accountingStrategy.setVipDiscountAmount(BigDecimal.ZERO);
                        accountingStrategy.setPeriodServicePrice(chargeDetail.getDetailSeviceMoney());
                        accountingStrategy.setPeriodOriginalServicePrice(chargeDetail.getDetailSeviceMoney());
                        accountingStrategy.setCreateTime(LocalDateTime.now());
                        accountingStrategyList.add(accountingStrategy);
                    }
                    chargingOrderAccountingStrategyClient.addChargingOrderAccountingStrategy(accountingStrategyList);
                }
            }
        }
        return R.ok();
    }
    @ResponseBody
    @PostMapping("/chargingPileList")
    @ApiOperation(value = "司机端-获取充电桩列表", tags = {"司机端-获取充电桩列表"}, notes = "")
    @ApiOperation(value = "获取充电桩列表", tags = {"获取充电桩列表"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "电站类型 0=不限 1=公共 50=个人 100=公交 101=环卫(专用) 102=物流(专用) 103=出租车(专用) 255=其他", name = "type", required = false, dataType = "string"),
            @ApiImplicitParam(value = "电站距离 不限=0 1km内=1 2km内=2 3km内=3 5km内=4 10km内=5 50km内=6 100km内=7 ", name = "distance", required = false, dataType = "int"),
            @ApiImplicitParam(value = "设备状态 不限=0 1=只看空闲", name = "status", required = false, dataType = "int"),
            @ApiImplicitParam(value = "电站名称/目标地址", name = "name", required = false, dataType = "string"),
            @ApiImplicitParam(value = "pageNo", name = "pageNo", required = true, dataType = "string"),
            @ApiImplicitParam(value = "pageSize", name = "pageSize", required = true, dataType = "string"),
            @ApiImplicitParam(value = "pageNo", name = "pageNo", required = false, dataType = "string"),
            @ApiImplicitParam(value = "pageSize", name = "pageSize", required = false, dataType = "string"),
            @ApiImplicitParam(value = "lon", name = "经度", required = false, dataType = "string"),
            @ApiImplicitParam(value = "lat", name = "纬度", required = false, dataType = "string"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
@@ -242,8 +366,13 @@
        List<Site> sites = new ArrayList<>();
        List<TChargingPile> piles = new ArrayList<>();
        List<TChargingGun> guns = new ArrayList<>();
        Map<String, Site> siteMap = siteService.list().stream().collect(Collectors.toMap(Site::getStationID, e -> e));
        for (StationInfos stationInfos : result) {
            if (siteMap.get(stationInfos.getStationID())!=null){
                continue;
            }
            Site site = new Site();
            site.setStationID(stationInfos.getStationID());
            site.setPartnerId(26);
            Calendar calendar = Calendar.getInstance();
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
@@ -339,8 +468,9 @@
            site.setIsEnergyStorage(0);
            siteService.save(site);
            sites.add(site);
            int i = 1;
            for (EquipmentInfos equipmentInfo : stationInfos.getEquipmentInfos()) {
                int i = 1;
                TChargingPile chargingPile = new TChargingPile();
                Calendar calendar2 = Calendar.getInstance();
                SimpleDateFormat dateFormat3 = new SimpleDateFormat("yyyyMMddHHmmss");
@@ -378,16 +508,18 @@
                chargingPileService.save(chargingPile);
                piles.add(chargingPile);
                i++;
                int j = 1;
                for (ConnectorInfo connectorInfo : equipmentInfo.getConnectorInfos()) {
                    int j = 1;
                    TChargingGun gun = new TChargingGun();
                    gun.setConnectorID(connectorInfo.getConnectorID());
                    gun.setCode(j+"");
                    gun.setSiteId(site.getId());
                    gun.setPartnerId(26);
                    gun.setChargingPileId(chargingPile.getId());
                    gun.setName(connectorInfo.getConnectorName());
                    gun.setType(connectorInfo.getConnectorType());
                    gun.setStatus(1);
                    gun.setStatus(2);
                    gun.setChargeMode(connectorInfo.getGunType());
                    // todo 临时写死
                    gun.setAccountingStrategyId(232);
@@ -397,7 +529,7 @@
                    gun.setRatedPower(new BigDecimal("7"));
                    gun.setChargingPower(new BigDecimal("200"));
                    gun.setParkingNumber("39");
                    gun.setParkingStatus(0);
                    gun.setParkingStatus(1);
                    gun.setParkingLockState(0);
                    gun.setNationalStandard("3");
//                    gun.setRemark();
@@ -425,30 +557,6 @@
        return R.ok();
    }
    public static List<StationInfos> testing(long total, long current, long size, List<StationInfos> str){
        List<StationInfos> result = new ArrayList<>();
        //获取初始化分页结构
        Page<StationInfos> page = new Page(total, size, current - 1);
        //获取集合下标初始值
        long startIndex = page.getCurrent();
        //获取集合下标结束值
        long endInddex = 0;
        if(startIndex + page.getCurrent() >= total || size > total){
            endInddex = total;
        }else {
            endInddex = Math.min(startIndex + page.getSize(), total);
        }
        //如果输入的开始查询下标大于集合大小,则查询为空值
        if(startIndex > total){
            result = Collections.emptyList();
        }else{
            result = str.subList((int)startIndex,(int)endInddex);
        }
        return result;
    }
    private List<StationInfos> getStationInfos(){
        String s = chargePileHttpUtil.queryStationsInfo(1, 199);
        // 将s字符串转化为json 然后转化为实体类PageInfo
@@ -471,6 +579,33 @@
        }
        return result;
    }
    private List<ChargeOrder> getOrderList(){
        String s = chargePileHttpUtil.getOrderList(1, 199);
        // 将s字符串转化为json 然后转化为实体类PageInfo
        JSONObject jsonObject = JSONObject.parseObject(s);
        PageInfo pageInfo = JSON.parseObject(jsonObject.toJSONString(), PageInfo.class);
        List<ChargeOrder> result = new ArrayList<>();
        int itemSize = pageInfo.getItemSize();
        int temp =  0;
        if(itemSize>199){
            result.addAll(pageInfo.getChargeOrders());
            int i = itemSize / 199;
            for (int j = 2; j < i + 2; j++) {
                s = chargePileHttpUtil.getOrderList(j, 199);
                // 将s字符串转化为json 然后转化为实体类PageInfo
                jsonObject = JSONObject.parseObject(s);
                pageInfo = JSON.parseObject(jsonObject.toJSONString(), PageInfo.class);
                result.addAll(pageInfo.getChargeOrders());
                if (temp==10){
                    break;
                }
                temp++;
            }
        }else {
            result.addAll(pageInfo.getChargeOrders());
        }
        return result;
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/NotifyController.java
@@ -61,85 +61,84 @@
    private static final String DataSecretOther = "50a61b93919c9606";
    private static final String DataSecretIVOther = "7c8ac6861661d586";
    // 结束充电后 特来电主动 推送充电订单信息
    @ResponseBody
    @PostMapping("/notification_charge_order_info")
    public Map<String, Object> notification_charge_order_info(@RequestBody String json) throws ParseException {
        TContent tContent = new TContent();
        tContent.setType(1);
        tContent.setContent(json);
        tContent.setCreateTime(new Date());
        contentService.save(tContent);
        JSONObject jsonObject1 = JSONObject.parseObject(json);
        String data = jsonObject1.getString("Data");
        String decrypt = AesEncryption.decrypt(DataSecret, DataSecretIV, data);
        System.err.println(decrypt);
        JSONObject jsonObject = JSONObject.parseObject(decrypt);
        System.err.println("结束充电后 特来电主动推送订单信息");
        ChargeRecord chargeRecord = JSON.parseObject(jsonObject.toJSONString(), ChargeRecord.class);
        // 新增订单
        TChargingOrder chargingOrder = new TChargingOrder();
        chargingOrder.setCode(chargeRecord.getStartChargeSeq());
        chargingOrder.setOrderSource(2);
        // TODO 运营商id
        chargingOrder.setOperatorId(1);
        chargingOrder.setTripartitePlatformName("途来电");
        chargingOrder.setStartChargeSeq(chargeRecord.getStartChargeSeq());
        chargingOrder.setSourceName("途来电");
        chargingOrder.setStartTime(DateUtils.stringToLocalDateTime(chargeRecord.getStartTime()));
        chargingOrder.setEndTime(DateUtils.stringToLocalDateTime(chargeRecord.getEndTime()));
        chargingOrder.setStatus(5);
        chargingOrder.setEndMode(1);
        chargingOrder.setElectrovalence(chargeRecord.getTotalElecMoney());
        chargingOrder.setServiceCharge(chargeRecord.getTotalSeviceMoney());
        chargingOrder.setTotalElectricity(chargeRecord.getTotalPower());
        chargingOrder.setPaymentAmount(chargeRecord.getTotalMoney());
        chargingOrder.setRechargePaymentType(1);
        chargingOrder.setRechargePaymentStatus(2);
        chargingOrder.setChargeAmount(chargeRecord.getTotalMoney());
        chargingOrder.setOrderAmount(chargeRecord.getTotalMoney());
        chargingOrder.setResidualAmount(BigDecimal.ZERO);
        chargingOrder.setPaymentAmount(chargeRecord.getTotalMoney());
        chargingOrder.setPayTime(LocalDateTime.now());
        // 通过枪编号查询枪
        TChargingGun chargingGun = chargingGunService.getOne(Wrappers.lambdaQuery(TChargingGun.class)
                .eq(TChargingGun::getCode, chargeRecord.getConnectorID()));
        if(Objects.nonNull(chargingGun)){
            chargingOrder.setChargingGunId(chargingGun.getId());
            chargingOrder.setChargingPileId(chargingGun.getChargingPileId());
            chargingOrder.setSiteId(chargingGun.getSiteId());
        }
        R<Long> orderIdR = chargingOrderClient.addChargingOrder(chargingOrder);
        if(orderIdR.getCode() == 200){
            // 充电明细
            List<ChargeDetail> chargeDetails = chargeRecord.getChargeDetails();
            if(!CollectionUtils.isEmpty(chargeDetails)){
                List<TChargingOrderAccountingStrategy> accountingStrategyList = new ArrayList<>();
                for (ChargeDetail chargeDetail : chargeDetails) {
                    TChargingOrderAccountingStrategy accountingStrategy = new TChargingOrderAccountingStrategy();
                    accountingStrategy.setChargingOrderId(orderIdR.getData());
                    accountingStrategy.setAccountingStrategyDetailId(232);
                    accountingStrategy.setType(1);
                    accountingStrategy.setStartTime(chargeDetail.getDetailStartTime());
                    accountingStrategy.setEndTime(chargeDetail.getDetailEndTime());
                    accountingStrategy.setElectrovalence(chargeDetail.getElecPrice());
                    accountingStrategy.setServiceCharge(chargeDetail.getSevicePrice());
                    accountingStrategy.setChargingCapacity(chargeDetail.getDetailPower());
                    accountingStrategy.setPeriodElectricPrice(chargeDetail.getDetailElecMoney());
                    accountingStrategy.setPeriodServicePrice(chargeDetail.getDetailSeviceMoney());
                    accountingStrategy.setPeriodOriginalServicePrice(chargeDetail.getDetailSeviceMoney());
                    accountingStrategy.setCreateTime(LocalDateTime.now());
                    accountingStrategyList.add(accountingStrategy);
                }
                chargingOrderAccountingStrategyClient.addChargingOrderAccountingStrategy(accountingStrategyList);
            }
        }
        Map<String,Object> map = new HashMap<>();
        map.put("StartChargeSeq",chargeRecord.getStartChargeSeq());
        map.put("ConnectorID",chargeRecord.getConnectorID());
        map.put("ConfirmResult",0);
        return map;
    }
//    // 结束充电后 特来电主动 推送充电订单信息
//    @ResponseBody
//    @PostMapping("/notification_charge_order_info")
//    public Map<String, Object> notification_charge_order_info(@RequestBody String json) throws ParseException {
//        TContent tContent = new TContent();
//        tContent.setType(1);
//        tContent.setContent(json);
//        tContent.setCreateTime(new Date());
//        contentService.save(tContent);
//        JSONObject jsonObject1 = JSONObject.parseObject(json);
//        String data = jsonObject1.getString("Data");
//        String decrypt = AesEncryption.decrypt(DataSecret, DataSecretIV, data);
//        System.err.println(decrypt);
//        JSONObject jsonObject = JSONObject.parseObject(decrypt);
//        System.err.println("结束充电后 特来电主动推送订单信息");
//        ChargeRecord chargeRecord = JSON.parseObject(jsonObject.toJSONString(), ChargeRecord.class);
//        // 新增订单
//        TChargingOrder chargingOrder = new TChargingOrder();
//        chargingOrder.setCode(chargeRecord.getStartChargeSeq());
//        chargingOrder.setOrderSource(2);
//        chargingOrder.setOperatorId(26);
//        chargingOrder.setTripartitePlatformName("途来电");
//        chargingOrder.setStartChargeSeq(chargeRecord.getStartChargeSeq());
//        chargingOrder.setSourceName("途来电");
//        chargingOrder.setStartTime(DateUtils.stringToLocalDateTime(chargeRecord.getStartTime()));
//        chargingOrder.setEndTime(DateUtils.stringToLocalDateTime(chargeRecord.getEndTime()));
//        chargingOrder.setStatus(5);
//        chargingOrder.setEndMode(1);
//        chargingOrder.setElectrovalence(chargeRecord.getTotalElecMoney());
//        chargingOrder.setServiceCharge(chargeRecord.getTotalSeviceMoney());
//        chargingOrder.setTotalElectricity(chargeRecord.getTotalPower());
//        chargingOrder.setPaymentAmount(chargeRecord.getTotalMoney());
//        chargingOrder.setRechargePaymentType(1);
//        chargingOrder.setRechargePaymentStatus(2);
//        chargingOrder.setChargeAmount(chargeRecord.getTotalMoney());
//        chargingOrder.setOrderAmount(chargeRecord.getTotalMoney());
//        chargingOrder.setResidualAmount(BigDecimal.ZERO);
//        chargingOrder.setPaymentAmount(chargeRecord.getTotalMoney());
//        chargingOrder.setPayTime(LocalDateTime.now());
//        // 通过枪编号查询枪
//        TChargingGun chargingGun = chargingGunService.getOne(Wrappers.lambdaQuery(TChargingGun.class)
//                .eq(TChargingGun::getCode, chargeRecord.getConnectorID()));
//        if(Objects.nonNull(chargingGun)){
//            chargingOrder.setChargingGunId(chargingGun.getId());
//            chargingOrder.setChargingPileId(chargingGun.getChargingPileId());
//            chargingOrder.setSiteId(chargingGun.getSiteId());
//        }
//        R<Long> orderIdR = chargingOrderClient.addChargingOrder(chargingOrder);
//        if(orderIdR.getCode() == 200){
//            // 充电明细
//            List<ChargeDetail> chargeDetails = chargeRecord.getChargeDetails();
//            if(!CollectionUtils.isEmpty(chargeDetails)){
//                List<TChargingOrderAccountingStrategy> accountingStrategyList = new ArrayList<>();
//                for (ChargeDetail chargeDetail : chargeDetails) {
//                    TChargingOrderAccountingStrategy accountingStrategy = new TChargingOrderAccountingStrategy();
//                    accountingStrategy.setChargingOrderId(orderIdR.getData());
//                    accountingStrategy.setAccountingStrategyDetailId(232);
//                    accountingStrategy.setType(1);
//                    accountingStrategy.setStartTime(chargeDetail.getDetailStartTime());
//                    accountingStrategy.setEndTime(chargeDetail.getDetailEndTime());
//                    accountingStrategy.setElectrovalence(chargeDetail.getElecPrice());
//                    accountingStrategy.setServiceCharge(chargeDetail.getSevicePrice());
//                    accountingStrategy.setChargingCapacity(chargeDetail.getDetailPower());
//                    accountingStrategy.setPeriodElectricPrice(chargeDetail.getDetailElecMoney());
//                    accountingStrategy.setPeriodServicePrice(chargeDetail.getDetailSeviceMoney());
//                    accountingStrategy.setPeriodOriginalServicePrice(chargeDetail.getDetailSeviceMoney());
//                    accountingStrategy.setCreateTime(LocalDateTime.now());
//                    accountingStrategyList.add(accountingStrategy);
//                }
//                chargingOrderAccountingStrategyClient.addChargingOrderAccountingStrategy(accountingStrategyList);
//            }
//        }
//        Map<String,Object> map = new HashMap<>();
//        map.put("StartChargeSeq",chargeRecord.getStartChargeSeq());
//        map.put("ConnectorID",chargeRecord.getConnectorID());
//        map.put("ConfirmResult",0);
//        return map;
//    }
//    @ResponseBody
//    @PostMapping("/notification_equip_charge_status")
@@ -169,44 +168,44 @@
    @ResponseBody
    @PostMapping("/notification_stationStatus")
    public Map<String,Integer> notification_stationStatus(@RequestBody String json) {
        TContent tContent = new TContent();
        tContent.setType(3);
        tContent.setContent(json);
        tContent.setCreateTime(new Date());
        contentService.save(tContent);
        JSONObject jsonObject1 = JSONObject.parseObject(json);
        String data = jsonObject1.getString("Data");
        String decrypt = AesEncryption.decrypt(DataSecret, DataSecretIV, data);
        System.err.println(decrypt);
        JSONObject jsonObject = JSONObject.parseObject(decrypt);
        System.err.println("特来电主动推送设备状态");
        ConnectorStatusInfos connectorStatusInfos = JSON.parseObject(jsonObject.toJSONString(), ConnectorStatusInfos.class);
        TChargingGun chargingGun = chargingGunService.getOne(Wrappers.lambdaQuery(TChargingGun.class)
                .eq(TChargingGun::getCode, connectorStatusInfos.getConnectorID()));
        if (Objects.nonNull(chargingGun)){
            // 修改订单状态
            switch (connectorStatusInfos.getStatus()){
                case 0:
                    chargingGun.setStatus(1);
                    break;
                case 1:
                    chargingGun.setStatus(2);
                    break;
                case 2:
                    chargingGun.setStatus(3);
                    break;
                case 3:
                    chargingGun.setStatus(4);
                    break;
                case 4:
                    chargingGun.setStatus(6);
                    break;
                case 255:
                    chargingGun.setStatus(7);
                    break;
            }
            chargingGunService.updateById(chargingGun);
        }
//        TContent tContent = new TContent();
//        tContent.setType(3);
//        tContent.setContent(json);
//        tContent.setCreateTime(new Date());
//        contentService.save(tContent);
//        JSONObject jsonObject1 = JSONObject.parseObject(json);
//        String data = jsonObject1.getString("Data");
//        String decrypt = AesEncryption.decrypt(DataSecret, DataSecretIV, data);
//        System.err.println(decrypt);
//        JSONObject jsonObject = JSONObject.parseObject(decrypt);
//        System.err.println("特来电主动推送设备状态");
//        ConnectorStatusInfos connectorStatusInfos = JSON.parseObject(jsonObject.toJSONString(), ConnectorStatusInfos.class);
//        TChargingGun chargingGun = chargingGunService.getOne(Wrappers.lambdaQuery(TChargingGun.class)
//                .eq(TChargingGun::getCode, connectorStatusInfos.getConnectorID()));
//        if (Objects.nonNull(chargingGun)){
//            // 修改订单状态
//            switch (connectorStatusInfos.getStatus()){
//                case 0:
//                    chargingGun.setStatus(1);
//                    break;
//                case 1:
//                    chargingGun.setStatus(2);
//                    break;
//                case 2:
//                    chargingGun.setStatus(3);
//                    break;
//                case 3:
//                    chargingGun.setStatus(4);
//                    break;
//                case 4:
//                    chargingGun.setStatus(6);
//                    break;
//                case 255:
//                    chargingGun.setStatus(7);
//                    break;
//            }
//            chargingGunService.updateById(chargingGun);
//        }
        Map<String,Integer> map = new HashMap<>();
        map.put("Status",0);
        return map;
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/PageInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.chargingPile.tulaidian.domain;
import com.ruoyi.chargingPile.dto.ChargeOrder;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@@ -13,6 +14,7 @@
    private int itemSize;
    private int total;
    private List<StationInfos> stationInfos;
    private List<ChargeOrder> chargeOrders;
    public PageInfo(int pageNo, int pageCount) {
        this.pageNo = pageNo;
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/TContent.java
@@ -1,9 +1,11 @@
package com.ruoyi.chargingPile.tulaidian.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
@@ -37,6 +39,8 @@
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField("createTime")
    private Date createTime;
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/util/ChargePileHttpUtil.java
@@ -101,6 +101,35 @@
        System.err.println(decrypt);
        return decrypt;
    }
    /**
     * 获取充电桩
     * @return
     */
    public String getOrderList(Integer PageNo, Integer PageSize){
        String token = getToken();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("PageNo", PageNo);
        jsonObject.put("PageSize", PageSize);
        String params = jsonObject.toJSONString();
        // 参数加密
        String data = AesEncryption.encrypt(DataSecret, DataSecretIV, params);
        // 获取签名
        String timeStamp = System.currentTimeMillis() + "";
        SequenceGenerator generator = new SequenceGenerator();
        String nextSequence = generator.getNextSequence();
        String hmacMD5 = HMacMD5Util.getHMacMD5(OperatorID,timeStamp, data,nextSequence,SigSecret);
        jsonObject = new JSONObject();
        jsonObject.put("OperatorID", OperatorID);
        jsonObject.put("Data", data);
        jsonObject.put("TimeStamp", timeStamp);
        jsonObject.put("Seq", nextSequence);
        jsonObject.put("Sig", hmacMD5);
        String result = HttpUtils.sendPost(ChargePileInterface.QUERY_ORDER_LIST, jsonObject.toJSONString(),token);
        String string = JSONObject.parseObject(result).getString("Data");
        String decrypt = AesEncryption.decrypt(DataSecret, DataSecretIV, string);
        System.err.println(decrypt);
        return decrypt;
    }
    /**
     * 获取充电桩
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderBackController.java
New file
@@ -0,0 +1,89 @@
package com.ruoyi.order.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.common.core.utils.DateUtils;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.integration.api.elutong.model.ConnectorInfo;
import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
import com.ruoyi.order.service.TChargingOrderAccountingStrategyService;
import com.ruoyi.order.service.TChargingOrderService;
import com.ruoyi.other.api.domain.Region;
import com.ruoyi.other.api.feignClient.OtherClient;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 接口控制器提供
 *
 * @author stylefeng
 * @Date 2018/7/20 23:39
 */
@RestController
@RequestMapping("/tempOrders")
@Slf4j
public class OrderBackController {
    @Autowired
    private TChargingOrderService chargingOrderService;
    @Resource
    private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
    /**
     * 删除关联充电订单
     */
    @ResponseBody
    @PostMapping("/deleteOrders")
    @ApiOperation(value = "删除关联充电订单", tags = {"删除关联充电订单"}, notes = "")
    public R<String> deleteOrders(){
        List<Long> orderIds = chargingOrderService.lambdaQuery().eq(TChargingOrder::getOperatorId, 26)
                .list().stream().map(TChargingOrder::getId).collect(Collectors.toList());
        chargingOrderService.
                remove(new LambdaQueryWrapper<TChargingOrder>()
                        .eq(TChargingOrder::getOperatorId,26));
        log.info("删除关联订单数量:{}",orderIds.size());
        log.info("删除关联订单数据:{}",orderIds);
        if (!orderIds.isEmpty()){
            chargingOrderAccountingStrategyService.remove(
                    new LambdaQueryWrapper<TChargingOrderAccountingStrategy>()
                            .in(TChargingOrderAccountingStrategy::getChargingOrderId
                            ,
                                    orderIds)
            );
        }
        return R.ok();
    }
}