liujie
2026-02-28 8f6fdf2196cbdc76a8a187ec064b8c9fe51b8737
Merge remote-tracking branch 'origin/master'
7个文件已修改
102 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/vehicleConvoy/XpVehicle.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/resources/bootstrap.yml 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/vehicleConvoy/XpVehicle.java
@@ -115,7 +115,7 @@
    private Integer currentElectricity;
    @ApiModelProperty(value = "续航公里")
    private Double mileageRange;
    private Float mileageRange;
    @ApiModelProperty(value = "车辆接单状态 1接单中 0空闲")
    private Integer state;
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -252,9 +252,8 @@
                    dto.setRouteType(1);
                    dto.setLongitude(longitude);
                    dto.setLatitude(latitude);
                    //TODO 这两个字段现在拿不到
//            dto.setDuration(rtTripInfo.getRemaining_time());
//            dto.setDistance(rtTripInfo.getRemaining_distance().intValue());
                    dto.setDuration(10);
                    dto.setDistance(2);
                    xpPushMessageClient.pushOrderRoute(dto);
                }
@@ -368,12 +367,11 @@
                if (null != orderId) {
                    PushOrderRouteDTO dto = new PushOrderRouteDTO();
                    dto.setOrderId(orderId);
                    dto.setRouteType(1);
                    dto.setRouteType(2);
                    dto.setLongitude(longitude);
                    dto.setLatitude(latitude);
                    //TODO 这两个字段现在拿不到
//            dto.setDuration(rtTripInfo.getRemaining_time());
//            dto.setDistance(rtTripInfo.getRemaining_distance().intValue());
                    dto.setDuration(20);
                    dto.setDistance(10);
                    xpPushMessageClient.pushOrderRoute(dto);
                }
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -157,11 +157,11 @@
        PageInfo<TaskPageListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TaskPageListVO> list = this.baseMapper.pageList(pageInfo, query);
        XpTaskRule xpTaskRule = xpTaskRuleMapper.selectOne(new LambdaQueryWrapper<XpTaskRule>().last("limit 1"));
        if (Objects.nonNull(xpTaskRule)) {
            list.stream().filter(item -> item.getTaskCategory().equals(2)).forEach(item -> {
                item.setCanArriveRange(xpTaskRule.getCanArriveRange());
            });
        }
//        if (Objects.nonNull(xpTaskRule)) {
//            list.stream().filter(item -> item.getTaskCategory().equals(2)).forEach(item -> {
//                item.setCanArriveRange(xpTaskRule.getCanArriveRange());
//            });
//        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
@@ -174,20 +174,35 @@
        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
        xpTask.setTaskCode(code);
        xpTask.setTaskCategory(2);
        xpTask.setTaskTypeId(dto.getTaskTypeId());
        String[] split = dto.getTaskTypeId().split(",");
        List<String> typeIds = new ArrayList<>();
        for (String s : split) {
            typeIds.add(s.trim());
        }
        StringBuilder temp = new StringBuilder(dto.getTaskTypeId());
        List<Long> children = typeIds.stream().map(Long::parseLong).collect(Collectors.toList());
        List<Long> parentIds = errorTypeMapper.selectList(new LambdaQueryWrapper<XpErrorType>()
                .in(XpErrorType::getId, children)).stream().map(XpErrorType::getParentId).distinct().collect(Collectors.toList());
        for (Long parentId : parentIds) {
            temp.append(",").append(parentId);
        }
        xpTask.setTaskTypeId(temp.toString());
        xpTask.setTaskUrgencyLevel(dto.getTaskUrgencyLevel());
        xpTask.setTaskDescription(dto.getTaskDescription());
        XpVehicle vehicle = xpVehicleClient.queryById(xpTask.getVehicleId()).getData();
        if (vehicle!=null){
            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
            if (vehiclePosition != null) {
                double x = vehiclePosition.getPoint().getX();
                double y = vehiclePosition.getPoint().getY();
                xpTask.setVehicleLon(new BigDecimal(x));
                xpTask.setVehicleLat(new BigDecimal(y));
            }
        }
//        if (vehicle!=null){
//            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
//            if (vehiclePosition != null) {
//                double x = vehiclePosition.getPoint().getX();
//                double y = vehiclePosition.getPoint().getY();
//                xpTask.setVehicleLon(new BigDecimal(x));
//                xpTask.setVehicleLat(new BigDecimal(y));
//            }
//        }
// 临时处理
        xpTask.setVehicleLon(new BigDecimal("104.055683"));
        xpTask.setVehicleLat(new BigDecimal("30.585991"));
        xpTask.setVehicleLocation("四川省成都市武侯区石羊街道天府新谷");
        xpTask.setVehicleId(dto.getId());
        xpTask.setReportUserId(xpOperationsUser.getId());
        xpTask.setReportTime(LocalDateTime.now());
xp-robotaxi-maintenance-boot/src/main/resources/bootstrap.yml
@@ -29,7 +29,6 @@
        namespace: 5185ac4b-6369-48eb-a21b-a7cbc441c5f1
        username: nacos
        password: nacos
        ip: 192.168.110.85
      config:
        # 配置中心地址
        server-addr: 192.168.110.80:8848
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java
@@ -135,7 +135,7 @@
        }
    }
    @ApiOperation(value = "邀请码导入")
    @PostMapping("/api/v1/invitation/importExcel")
    @PostMapping("/base/v1/invitation/importExcel")
    public R<String> importExcel(@RequestPart("file") MultipartFile file) {
        System.out.println("文件名 = " + file.getOriginalFilename());
        System.out.println("文件大小 = " + file.getSize());
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
@@ -60,7 +60,7 @@
 * @author mitao
 * @since 2026-02-03
 */
@RequestMapping("/api/v1/whitelist")
@RequestMapping("")
@RestController
@Api(tags = "白名单管理")
@Slf4j
@@ -78,13 +78,13 @@
     * 获取所有白名单手机号
     * @return
     */
    @PostMapping("/inner/getAllWhiteList")
    @PostMapping("/api/v1/whitelist/inner/getAllWhiteList")
    public R<List<String>> getAllWhiteList(){
        return R.ok(xpWhitelistService.getAllWhiteList());
    }
    @ApiOperation(value = "白名单管理分页列表", response = XpWhitelist.class)
    @PostMapping("/pageList")
    @PostMapping("/api/v1/whitelist/pageList")
    public R<PageInfo<XpWhitelist>> pageList(@RequestBody WhitelistPageListQuery query) {
        PageInfo<XpWhitelist> pageList = xpWhitelistService.pageList(query);
        return R.ok(pageList);
@@ -93,7 +93,7 @@
    /**
     * 新增白名单
     */
    @PostMapping("/add")
    @PostMapping("/api/v1/whitelist/add")
    @ResponseBody
    @ApiOperation(value = "新增白名单")
    @Transactional
@@ -109,7 +109,7 @@
    /**
     * 编辑白名单
     */
    @PostMapping("/edit")
    @PostMapping("/api/v1/whitelist/edit")
    @ResponseBody
    @ApiOperation(value = "编辑白名单")
    @Transactional
@@ -125,7 +125,7 @@
    /**
     * 冻结解冻
     */
    @GetMapping("/freezeUnfreeze")
    @GetMapping("/api/v1/whitelist/freezeUnfreeze")
    @ResponseBody
    @ApiOperation(value = "冻结解冻")
    @Transactional
@@ -138,7 +138,7 @@
    /**
     * 批量删除
     */
    @GetMapping("/deleteByIds")
    @GetMapping("/api/v1/whitelist/deleteByIds")
    @ResponseBody
    @ApiOperation(value = "批量删除")
    public R deleteByIds(String ids) {
@@ -150,7 +150,7 @@
    /**
     * 批量冻结
     */
    @GetMapping("/freezeByIds")
    @GetMapping("/api/v1/whitelist/freezeByIds")
    @ResponseBody
    @ApiOperation(value = "批量冻结")
    public R freezeByIds(String ids) {
@@ -160,7 +160,7 @@
    }
    @ApiOperation(value = "白名单导入模板下载")
    @GetMapping("/import-template")
    @GetMapping("/api/v1/whitelist/import-template")
    public void importTemplate() {
        List<WhitelistImportExcel> whitelistImportExcels = new ArrayList<>();
        WhitelistImportExcel whitelistImportExcel = new WhitelistImportExcel();
@@ -190,7 +190,7 @@
    @Log(title = "白名单导入", businessType = BusinessType.IMPORT)
    @ApiOperation(value = "白名单导入")
    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
    @PostMapping("/importExcel")
    @PostMapping("/base/v1/whitelist/importExcel")
    public AjaxResult<String> importExcel(@RequestPart("file") MultipartFile file) {
        ImportParams params = new ImportParams();
@@ -260,7 +260,7 @@
    }
    @ApiOperation(value = "白名单导出")
    @PostMapping(value = "/exportExcel")
    @PostMapping(value = "/api/v1/whitelist/exportExcel")
    public void exportExcel(@RequestBody WhitelistPageListQuery query) {
        List<XpWhitelist> exportList = xpWhitelistService.exportList(query);
        List<XpWhitelistExportExcel> xpWhitelistExportExcels = new ArrayList<>();
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java
@@ -22,6 +22,7 @@
import com.xiaopeng.api.model.vehicleConvoy.XpFleetVehicle;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicleAnnualRecord;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.vehicleConvoy.VehiclesCommandCallbackVo;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
@@ -43,10 +44,14 @@
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -81,6 +86,7 @@
    private final XpChargingRecordClient xpChargingRecordClient;
    private final XpTaskClient xpTaskClient;
    private final XpTaskRuleClient xpTaskRuleClient;
    private final MongoTemplate mongoTemplate;
    /**
     * 根据ID列表批量查询车辆信息(内部接口)
     *
@@ -213,7 +219,6 @@
    /**
     * 导出在库车辆列表
     *
     * @param query 查询参数
     */
    @ApiOperation(value = "下载导入模板", tags = {"管理后台-车辆管理-在库车辆管理"})
    @PostMapping("/api/v1/vehicle/importTemplate")
@@ -582,6 +587,15 @@
                }
            }
        }
        // 查询车辆的续航里程
        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicleVO.getVehicleVin())), VehiclePosition.class);
        if(Objects.nonNull(vehiclePosition)){
            xpVehicleVO.setMileageRange(vehiclePosition.getMileageRange());
            xpVehicleVO.setCurrentElectricity(vehiclePosition.getCurrentElectricity());
        }else {
            xpVehicleVO.setMileageRange(0F);
            xpVehicleVO.setCurrentElectricity(0);
        }
        return R.ok(xpVehicleVO);
    }