liujie
2026-04-18 be13b366461b31449c1488e495d7edcd25a22823
修改bug
1个文件已添加
3个文件已修改
46 ■■■■■ 已修改文件
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRuleServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/TaskReassignVo.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
@@ -31,6 +31,7 @@
import com.xiaopeng.maintenance.service.XpTaskService;
import com.xiaopeng.maintenance.vo.TaskCleanDetailVO;
import com.xiaopeng.maintenance.vo.TaskDetectionDetailVO;
import com.xiaopeng.maintenance.vo.TaskReassignVo;
import com.xiaopeng.maintenance.vo.VehicleListVO;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@@ -52,6 +53,8 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import static net.sf.jsqlparser.parser.feature.Feature.comment;
/**
 * <p>
@@ -103,8 +106,8 @@
    @ApiOperation(value = "工单改派", tags = "运维APP-任务中心")
    @PostMapping("/maintenance-app/api/v1/task/reassign")
    public R<?> reassign(@RequestParam("taskId") Long taskId, @RequestParam("comment") String comment) {
        xpTaskService.reassign(taskId, comment);
    public R<?> reassign(@RequestBody TaskReassignVo vo) {
        xpTaskService.reassign(vo.getTaskId(), vo.getComment());
        return R.ok();
    }
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRuleServiceImpl.java
@@ -92,7 +92,7 @@
                .eq(XpCruiseCheckInRecord::getDeleted, 0)
                .eq(XpCruiseCheckInRecord::getCruiseCheckInRuleId, ruleId)
                .eq(XpCruiseCheckInRecord::getOperationsUserId, uid)
                .last(" and DATE_FORMAT(check_in_time, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d"));
                .last(" and DATE(check_in_time) = DATE(NOW())"));
        //构建返回结果
        for (XpCruiseCheckInRuleLocation xpCruiseCheckInRuleLocation : list) {
            XpCruiseCheckInRecord xpCruiseCheckInRecord = list1.stream().filter(x -> x.getCheckLocationId().equals(xpCruiseCheckInRuleLocation.getCheckLocationId())).findFirst().orElse(null);
@@ -132,7 +132,7 @@
                .eq(XpCruiseCheckInRecord::getDeleted, 0)
                .eq(XpCruiseCheckInRecord::getCheckLocationId, checkLocationId)
                .eq(XpCruiseCheckInRecord::getOperationsUserId, dto.getOperationsUserId())
                .last(" and DATE_FORMAT(check_in_time, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')"));
                .last(" and DATE(check_in_time) = DATE(NOW())"));
        if(null != cruiseCheckInRecord){
            throw new ServiceException("不能重复打卡", I18nKeyConstant.CANNOT_REPEAT_CLOCKING_IN);
        }
@@ -169,7 +169,7 @@
                .eq(XpCruiseCheckInRecord::getCruiseCheckInRuleId, dto.getId())
                .eq(XpCruiseCheckInRecord::getDeleted, 0)
                .eq(XpCruiseCheckInRecord::getOperationsUserId, uid)
                .last(" and DATE_FORMAT(check_in_time, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d') order by check_in_time desc limit 1"));
                .last(" and DATE(check_in_time) = DATE(NOW()) order by check_in_time desc limit 1"));
        XpCruiseCheckInRuleLocation cruiseCheckInRuleLocation = null;
        //没有打卡的情况,用第一个打卡点位
        if(null == cruiseCheckInRecord){
@@ -232,6 +232,6 @@
                .eq(XpCruiseCheckInRecord::getCheckLocationId, locationId)
                .eq(XpCruiseCheckInRecord::getDeleted, 0)
                .eq(XpCruiseCheckInRecord::getOperationsUserId, uid)
                .last(" and DATE_FORMAT(check_in_time, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')"));
                .last(" and DATE(check_in_time) = DATE(NOW())"));
    }
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -65,6 +65,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
@@ -1383,7 +1384,7 @@
            throw new ServiceException("未配置车辆事故任务分配规则");
        }
        List<Long> excludedUserIds = Optional.ofNullable(task.getExcluded()).orElse(new ArrayList<>());
        excludedUserIds.add(Long.valueOf(task.getHandleUserId()));
        excludedUserIds.addAll(Arrays.asList(task.getHandleUserId().split(",")).stream().map(Long::parseLong).collect(Collectors.toList()));
        task.setExcluded(excludedUserIds);
        Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData();
        List<Long> roleIds = taskRuleRole.stream().map(XpTaskRuleRole::getRoleId).collect(Collectors.toList());
@@ -1393,7 +1394,9 @@
                .filter(ids::contains)
                .filter(id -> !excludedUserIds.contains(id))
                .map(String::valueOf).collect(Collectors.joining(","));
        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
//        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
        VehiclePosition vehiclePosition = new VehiclePosition();
        vehiclePosition.setPoint(new GeoJsonPoint(103.12615621, 30.264561));
        String handlerUser = chooseNearestAvailableOperationsUser(belongUserIds, vehiclePosition);
        task.setHandleUserId(handlerUser);
        if(handlerUser == null) {
@@ -1401,12 +1404,9 @@
            noticeAdministrator(task);
        }
        updateById(task);
        // 存储事故处理日志
        XpTaskHandleDetail xpTaskHandleDetail = new XpTaskHandleDetail();
        xpTaskHandleDetail.setTaskId(task.getId());
        xpTaskHandleDetail.setResponsibleDescription(msg);
        xpTaskHandleDetailMapper.insert(xpTaskHandleDetail);
        sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit());
        if(StringUtils.isNotBlank(task.getHandleUserId())){
            sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit());
        }
    }
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/TaskReassignVo.java
New file
@@ -0,0 +1,15 @@
package com.xiaopeng.maintenance.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel
public class TaskReassignVo {
    @ApiModelProperty("任务id")
    private Long taskId;
    @ApiModelProperty("说明")
    private String comment;
}