From c96fbe6b0aeb413a17c429133ee6d81d138144b9 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 09 六月 2026 10:58:52 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleCleanController.java | 124 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 121 insertions(+), 3 deletions(-)
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleCleanController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleCleanController.java
index 488bdfd..7865c5b 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleCleanController.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleCleanController.java
@@ -1,22 +1,40 @@
package com.xiaopeng.maintenance.controller;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
+import com.xiaopeng.api.model.account.XpOperationsUser;
+import com.xiaopeng.api.model.maintenance.XpVehicleClean;
+import com.xiaopeng.api.query.maintenance.VehicleCleanQuery;
import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.core.web.domain.BaseModel;
+import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
+import com.xiaopeng.evi.oss.service.AliOssService;
import com.xiaopeng.maintenance.dto.XpVehicleCleanDTO;
import com.xiaopeng.maintenance.model.vo.XpVehicleCleanVO;
import com.xiaopeng.maintenance.service.IXpVehicleCleanService;
import com.xiaopeng.maintenance.service.XpTaskService;
+import com.xiaopeng.maintenance.utils.AliOssDownloadUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
+
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* <p>
@@ -26,6 +44,7 @@
* @author xiaochen
* @since 2026-02-06
*/
+@Slf4j
@Api(tags = "车辆清洁")
@RestController
@RequestMapping("")
@@ -44,6 +63,10 @@
private TokenService tokenService;
@Autowired
private ThreadPoolTaskScheduler taskScheduler;
+ @Autowired
+ private AliOssService aliOssService;
+ @Autowired
+ private AliOssDownloadUtil aliOssDownloadUtil;
/**
* 车辆运维-车辆运维-车身清洁
@@ -51,7 +74,7 @@
@Transactional
@ShardingSphereTransactionType(TransactionType.BASE)
@ApiOperation(value = "车辆运维-车辆运维-车身清洁", tags = {"运维APP-车辆管理"})
- @PostMapping("/api/v1/vehicleClean/add")
+ @PostMapping("/maintenance-app/api/v1/vehicleClean/add")
public R<String> add(@RequestBody XpVehicleCleanDTO dto) {
Long id = tokenService.getLoginOperationUser().getId();
dto.setOperationsUserId(id);
@@ -65,11 +88,106 @@
* 车辆运维-车辆运维-清洁记录详情
*/
@ApiOperation(value = "车辆运维-运维记录-清洁记录详情", tags = {"运维APP-车辆管理"})
- @GetMapping("/api/v1/vehicleClean/cleanDetail")
- public R<XpVehicleCleanVO> cleanDetail(@RequestParam Long id) {
+ @GetMapping("/maintenance-app/api/v1/vehicleClean/cleanDetail")
+ public R<XpVehicleCleanVO> cleanDetail(@RequestParam Long id) throws UnsupportedEncodingException {
XpVehicleCleanVO xpVehicleCleanVO = xpVehicleCleanService.cleanDetail(id);
+ String vehiclePictures = xpVehicleCleanVO.getVehiclePictures();
+ if (vehiclePictures != null && !vehiclePictures.isEmpty()) {
+ JSONObject jsonObject = JSONObject.parseObject(vehiclePictures);
+ // 1
+ String downloadUrl = jsonObject.getString("url");;
+ try {
+ downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true);
+ } catch (UnsupportedEncodingException e) {
+ log.error("获取图片下载地址失败", e);
+ }
+ jsonObject.put("url", downloadUrl);
+ xpVehicleCleanVO.setVehiclePictures(jsonObject.toJSONString());
+ }
+
+
+
+ String taskImage = xpVehicleCleanVO.getTaskImage();
+ if (StringUtils.isNotBlank(taskImage)) {
+ JSONArray jsonArray = JSONArray.parseArray(taskImage);
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ if (Objects.isNull(jsonObject)) {
+ continue;
+ }
+ String downloadUrl = jsonObject.getString("url");;
+ try {
+ downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true);
+ } catch (UnsupportedEncodingException e) {
+ log.error("获取图片下载地址失败", e);
+ }
+ jsonObject.put("url", downloadUrl);
+ }
+ xpVehicleCleanVO.setTaskImage(JSONArray.toJSONString(jsonArray));
+ }
+
+
return R.ok(xpVehicleCleanVO);
}
+
+ /**
+ * 车辆清洁列表
+ */
+ @ApiOperation(value = "车辆管理-清洁列表", tags = {"管理后台-车辆管理"})
+ @PostMapping("/api/v1/vehicleClean/list")
+ public R<PageInfo<XpVehicleClean>> list(@RequestBody VehicleCleanQuery query) throws UnsupportedEncodingException {
+ PageInfo<XpVehicleClean> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ LambdaQueryWrapper<XpVehicleClean> wrapper = new LambdaQueryWrapper<XpVehicleClean>().eq(XpVehicleClean::getVehicleId, query.getVehicleId());
+ List<XpOperationsUser> data=null;
+ if(query.getOperationUserName()!=null && !query.getOperationUserName().isEmpty()){
+ R<List<XpOperationsUser>> r = xpOperationUserClient.listByName(query.getOperationUserName());
+ if(r.getCode()!=200 || r.getData().isEmpty()){
+ return R.ok(pageInfo);
+ }
+ data = r.getData();
+ wrapper.in(XpVehicleClean::getOperationsUserId, data.stream().map(XpOperationsUser::getId).collect(Collectors.toList()));
+
+ }
+ if(query.getStartTime()!=null && !query.getStartTime().isEmpty() && query.getEndTime()!=null && !query.getEndTime().isEmpty()){
+ wrapper.between(XpVehicleClean::getCreateTime, query.getStartTime(), query.getEndTime());
+ }
+
+ PageInfo<XpVehicleClean> page = xpVehicleCleanService.page(pageInfo, wrapper.orderByDesc(BaseModel::getCreateTime));
+ List<XpVehicleClean> records = page.getRecords();
+ if(data==null){
+ List<Long> userIds = records.stream().map(XpVehicleClean::getOperationsUserId).collect(Collectors.toList());
+ if(userIds.isEmpty()){
+ return R.ok(page);
+ }
+
+ R<List<XpOperationsUser>> r = xpOperationUserClient.listByIds(userIds);
+ if(r.getData().isEmpty()){
+ return R.ok(page);
+ }
+ data = r.getData();
+ }
+
+
+ for (XpVehicleClean record : records) {
+ String taskImage = record.getTaskImage();
+ record.setTaskImage(aliOssDownloadUtil.getPictureJsonArray(record.getTaskImage()));
+ data.stream().filter(xpOperationsUser -> xpOperationsUser.getId().equals(record.getOperationsUserId())).findFirst().ifPresent(xpOperationsUser -> record.setCreateBy(xpOperationsUser.getNickName()));
+ }
+ return R.ok(page);
+ }
+
+
+ /**
+ * 删除数据
+ */
+ @ApiOperation(value = "车辆管理-删除数据", tags = {"管理后台-车辆管理"})
+ @DeleteMapping("/api/v1/vehicleClean/delete")
+ public R<String> delete(@RequestParam Long id) {
+ xpVehicleCleanService.removeById(id);
+ return R.ok();
+ }
+
+
}
--
Gitblit v1.7.1