| | |
| | | import com.xiaopeng.api.feignClient.account.SysUserClient; |
| | | import com.xiaopeng.api.feignClient.account.XpOperationUserClient; |
| | | import com.xiaopeng.api.feignClient.account.XpOperationUserNotificationClient; |
| | | import com.xiaopeng.api.feignClient.account.XpOperationsRoleClient; |
| | | import com.xiaopeng.api.feignClient.operation.SmsClient; |
| | | import com.xiaopeng.api.feignClient.pushMessage.WebSocketMessageClient; |
| | | import com.xiaopeng.api.feignClient.pushMessage.XpAliPushMessageClient; |
| | |
| | | import com.xiaopeng.api.model.maintenance.*; |
| | | import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; |
| | | import com.xiaopeng.api.vo.TaskVO; |
| | | import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO; |
| | | import com.xiaopeng.api.vo.automaticPilot.VehiclePosition; |
| | | import com.xiaopeng.api.vo.maintenance.TaskScheduleConstants; |
| | | import com.xiaopeng.api.vo.operation.SmsVo; |
| | |
| | | import com.xiaopeng.maintenance.utils.UUIDUtil; |
| | | import com.xiaopeng.maintenance.vo.TaskCleanDetailVO; |
| | | import com.xiaopeng.maintenance.vo.TaskDetectionDetailVO; |
| | | import com.xiaopeng.maintenance.vo.TaskReassignDetailVO; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; |
| | |
| | | |
| | | @Autowired |
| | | private XpVehicleCleanMapper vehicleCleanMapper; |
| | | @Autowired |
| | | @Resource |
| | | private XpOperationUserClient xpOperationUserClient; |
| | | @Autowired |
| | | @Resource |
| | | private SysUserClient sysUserClient; |
| | | @Autowired |
| | | private XpTaskHandleDetailRoutineMapper xpTaskHandleDetailRoutineMapper; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private XpVehicleClient xpVehicleClient; |
| | | @Autowired |
| | | private XpTaskRuleMapper xpTaskRuleMapper; |
| | | @Autowired |
| | | private MongoTemplate mongoTemplate; |
| | | @Autowired |
| | | @Resource |
| | | private XpAliPushMessageClient xpAliPushMessageClient; |
| | | @Autowired |
| | | @Resource |
| | | private XpOperationUserNotificationClient xpOperationUserNotificationClient; |
| | | @Autowired |
| | | private IXpTaskRuleRoleService xpTaskRuleRoleService; |
| | |
| | | XpTask task = getById(taskId); |
| | | XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); |
| | | XpTaskRule taskRule = xpTaskRuleService.lambdaQuery().last("limit 1").one(); |
| | | List<XpTaskRuleRole> taskRuleRole = xpTaskRuleRoleService.lambdaQuery().eq(XpTaskRuleRole::getRuleType, 9).list(); |
| | | |
| | | int type = 9; |
| | | if(task.getTaskCategory() != 2) { |
| | | type = Integer.parseInt(task.getTaskTypeId()); |
| | | } |
| | | |
| | | List<XpTaskRuleRole> taskRuleRole = xpTaskRuleRoleService.lambdaQuery().eq(XpTaskRuleRole::getRuleType, type).list(); |
| | | |
| | | if (Objects.isNull(taskRuleRole) || Objects.isNull(taskRule)) { |
| | | throw new ServiceException("未配置车辆事故任务分配规则"); |
| | | } |
| | | List<Long> excludedUserIds = Optional.ofNullable(task.getExcluded()).orElse(new ArrayList<>()); |
| | | excludedUserIds.addAll(Arrays.asList(task.getHandleUserId().split(",")).stream().map(Long::parseLong).collect(Collectors.toList())); |
| | | task.setExcluded(excludedUserIds); |
| | | |
| | | List<XpTask.Reject> rejects = Optional.ofNullable(task.getExcluded()).orElse(new ArrayList<>()); |
| | | XpTask.Reject reject = task.reject(msg); |
| | | rejects.add(reject); |
| | | task.setExcluded(rejects); |
| | | Set<String> excludedUserIds = rejects.stream().map(XpTask.Reject::getRejectUserId).collect(Collectors.toSet()); |
| | | |
| | | Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData(); |
| | | List<Long> roleIds = taskRuleRole.stream().map(XpTaskRuleRole::getRoleId).collect(Collectors.toList()); |
| | | List<Long> ids = xpFleetOperationsClient.getOperationsIdsByFleetId(fleetId).getData(); |
| | | String belongUserIds = xpOperationUserClient.getXpOperationsRoleByRoleIds(roleIds).getData().stream() |
| | | .map(XpOperationsRole::getOperationsUserId) |
| | | .filter(ids::contains) |
| | | .filter(id -> !excludedUserIds.contains(id)) |
| | | .filter(id -> !excludedUserIds.contains(id.toString())) |
| | | .map(String::valueOf).collect(Collectors.joining(",")); |
| | | |
| | | |
| | | // 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)); |
| | |
| | | task.setStatus(4); |
| | | noticeAdministrator(task);//TODO 需要通知管理员手动处理,考虑再AliPushUtil 中给管理员发送消息 |
| | | } |
| | | |
| | | updateById(task); |
| | | |
| | | if(StringUtils.isNotBlank(task.getHandleUserId())){ |
| | | List<Long> id = Collections.singletonList(Long.parseLong(task.getHandleUserId())); |
| | | String roleName = xpOperationUserClient.listByIdsWithRole(id).getData().get(0).getRoleName(); |
| | | reject.setRejectUserRoleName(roleName); |
| | | sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit()); |
| | | } |
| | | } |
| | |
| | | @Override |
| | | public PageInfo<TaskVO> reassignTaskPageList(TaskPageListQuery query) { |
| | | return baseMapper.reassignTaskPageList(query); |
| | | } |
| | | |
| | | @Override |
| | | public TaskReassignDetailVO detail(Long taskId) { |
| | | XpTask task = getById(taskId); |
| | | |
| | | // 根据taskId去查询XpTaskHandleDetail, |
| | | // XpTaskHandleDetail taskHandleDetail = xpTaskHandleDetailClient.queryByTaskId(taskId).getData(); |
| | | |
| | | |
| | | // return baseMapper.detail(taskId); |
| | | // todo |
| | | return null; |
| | | } |
| | | |
| | | @Value("${robotaxi.sms.app-id:1476153389173952512}") |