xp-robotaxi-account-boot/pom.xml
@@ -131,6 +131,12 @@ <artifactId>snakeyaml</artifactId> <version>1.33</version> </dependency> <dependency> <groupId>com.xiaopeng.logan</groupId> <artifactId>xp-evi-oss-sdk</artifactId> <version>1.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> <build> xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java
@@ -1,6 +1,7 @@ package com.xiaopeng.account.controller; import com.alibaba.fastjson2.JSONObject; import com.xiaopeng.account.mapper.XpOperationsRoleMapper; import com.xiaopeng.account.model.dto.EnableDisableDTO; import com.xiaopeng.account.model.dto.RePasswordDTO; @@ -21,6 +22,7 @@ import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.security.service.TokenService; import com.xiaopeng.account.constant.I18nKeyConstant; import com.xiaopeng.evi.oss.service.AliOssService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; @@ -52,15 +54,18 @@ private final XpFleetClient xpFleetClient; private final AliOssService aliOssService; @Autowired public XpOperationsUserController(IXpOperationsUserService xpOperationsUserService, XpOperationsRoleMapper xpOperationsRoleMapper, TokenService tokenService, XpFleetClient xpFleetClient) { XpFleetClient xpFleetClient, AliOssService aliOssService) { this.xpOperationsUserService = xpOperationsUserService; this.xpOperationsRoleMapper = xpOperationsRoleMapper; this.tokenService = tokenService; this.xpFleetClient = xpFleetClient; this.aliOssService = aliOssService; } /** @@ -176,6 +181,7 @@ PageInfo<XpOperationsUserVO> pageList = xpOperationsUserService.pageList(query); return R.ok(pageList); } @ApiOperation(value = "运维人员管理不分页列表", tags = {"管理后台-运维执行"}) @PostMapping("/api/v1/operationsUser/listAll") public R<List<XpOperationsUser>> listAll() { @@ -254,31 +260,43 @@ @GetMapping("/api/v1/operationsUser/detailById") public R<XpOperationsUserVO> detailById(@RequestParam Long id) { XpOperationsUserVO xpOperationsUserVO = xpOperationsUserService.detailById(id); if (xpOperationsUserVO.getAvatar() != null) { JSONObject jsonObject = JSONObject.parseObject(xpOperationsUserVO.getAvatar()); String downloadUrl = null; try { String downloadUrl1 = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); downloadUrl = downloadUrl1; } catch (Exception e) { e.printStackTrace(); } xpOperationsUserVO.setAvatar(downloadUrl); } return R.ok(xpOperationsUserVO); } @ApiOperation(value = "运维人员管理导出列表", tags = {"管理后台-运维执行"}) @PostMapping("/api/v1/operationsUser/exportOperationsUser") public void exportOperationsUser(@RequestBody XpOperationsUserQuery query, HttpServletResponse response){ public void exportOperationsUser(@RequestBody XpOperationsUserQuery query, HttpServletResponse response) { xpOperationsUserService.exportOperationsUser(query, response); } @ApiOperation(value = "运维人员管理导出模板", tags = {"管理后台-运维执行"}) @GetMapping("/api/v1/operationsUser/exportTemplate") public void exportTemplate(HttpServletResponse response){ public void exportTemplate(HttpServletResponse response) { xpOperationsUserService.exportTemplate(response); } @ApiOperation(value = "运维人员管理导入数据", tags = {"管理后台-运维执行"}) @PostMapping("/api/v1/operationsUser/importOperationsUser") public R<String> importOperationsUser(@RequestParam("file") MultipartFile file){ public R<String> importOperationsUser(@RequestParam("file") MultipartFile file) { xpOperationsUserService.importOperationsUser(file); return R.ok(); } /** * 根据手机号模糊查询用户(内部接口) * xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpQualificationAuditService.java
@@ -7,6 +7,8 @@ import com.xiaopeng.api.vo.account.XpQualificationAuditVO; import com.xiaopeng.common.core.web.page.PageInfo; import java.io.UnsupportedEncodingException; /** * <p> * 运维人员资质证书审核记录 服务类 @@ -23,7 +25,7 @@ * @param query 查询参数 * @return 列表 */ PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query); PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query) throws UnsupportedEncodingException; /** * 管理后台-综合审核-人员资质审核 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -3,6 +3,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.PhoneUtil; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -32,6 +33,7 @@ import com.xiaopeng.common.core.utils.poi.ExcelUtil; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.security.utils.SecurityUtils; import com.xiaopeng.evi.oss.service.AliOssService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; @@ -43,9 +45,11 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.util.*; import java.util.function.Function; @@ -83,6 +87,8 @@ private SysRoleMapper sysRoleMapper; @Autowired private ISysRoleService iSysRoleService; @Autowired private AliOssService aliOssService; @Override public List<XpOperationsUser> listByName(String nickName) { @@ -233,6 +239,19 @@ } } } for (XpOperationsUserVO xpOperationsUserVO : list) { String avatar = xpOperationsUserVO.getAvatar(); JSONObject jsonObject = JSONObject.parseObject(avatar); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } xpOperationsUserVO.setAvatar(downloadUrl); } pageInfo.setRecords(list); return pageInfo; } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
@@ -1,5 +1,6 @@ package com.xiaopeng.account.service.impl; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xiaopeng.account.mapper.SysRoleMapper; @@ -17,10 +18,12 @@ import com.xiaopeng.api.model.account.XpQualificationAudit; import com.xiaopeng.api.vo.account.XpQualificationAuditVO; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.evi.oss.service.AliOssService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; @@ -42,9 +45,11 @@ private XpOperationsRoleMapper xpOperationsRoleMapper; @Autowired private SysRoleMapper sysRoleMapper; @Autowired private AliOssService aliOssService; @Override public PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query) { public PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query) throws UnsupportedEncodingException { PageInfo<XpQualificationAuditVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<XpQualificationAuditVO> list = this.baseMapper.pageList(pageInfo, query); if(CollectionUtils.isEmpty(list)){ @@ -80,6 +85,46 @@ } } for (XpQualificationAuditVO xpQualificationAuditVO : list) { String certificateOfNoCriminalRecord = xpQualificationAuditVO.getCertificateOfNoCriminalRecord(); if(certificateOfNoCriminalRecord!=null){ JSONObject jsonObject = JSONObject.parseObject(certificateOfNoCriminalRecord); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); xpQualificationAuditVO.setCertificateOfNoCriminalRecord(downloadUrl); } String driverLicense = xpQualificationAuditVO.getDriverLicense(); if(driverLicense!=null){ JSONObject jsonObject = JSONObject.parseObject(driverLicense); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); xpQualificationAuditVO.setDriverLicense(downloadUrl); } String trainingGraduationCertificate = xpQualificationAuditVO.getTrainingGraduationCertificate(); if(trainingGraduationCertificate!=null){ JSONObject jsonObject = JSONObject.parseObject(trainingGraduationCertificate); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); xpQualificationAuditVO.setTrainingGraduationCertificate(downloadUrl); } String idCardFront = xpQualificationAuditVO.getIdCardFront(); if(idCardFront!=null){ JSONObject jsonObject = JSONObject.parseObject(idCardFront); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); xpQualificationAuditVO.setIdCardFront(downloadUrl); } String idCardBack = xpQualificationAuditVO.getIdCardBack(); if(idCardBack!=null){ JSONObject jsonObject = JSONObject.parseObject(idCardBack); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); xpQualificationAuditVO.setIdCardBack(downloadUrl); } } pageInfo.setRecords(list); return pageInfo; } xp-robotaxi-maintenance-boot/pom.xml
@@ -166,6 +166,12 @@ <artifactId>snakeyaml</artifactId> <version>1.33</version> </dependency> <dependency> <groupId>com.xiaopeng.logan</groupId> <artifactId>xp-evi-oss-sdk</artifactId> <version>1.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> <build> xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskManagementController.java
@@ -44,6 +44,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -189,7 +190,7 @@ @ApiOperation(value = "任务详情") @GetMapping("/taskDetail") public R<TaskManagementDetailVO> taskDetail(Long id) { public R<TaskManagementDetailVO> taskDetail(Long id) throws UnsupportedEncodingException { return xpTaskService.taskDetail(id); } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleCleanController.java
@@ -1,6 +1,7 @@ package com.xiaopeng.maintenance.controller; 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; @@ -11,6 +12,7 @@ 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; @@ -24,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.io.UnsupportedEncodingException; import java.util.List; import java.util.stream.Collectors; @@ -53,6 +56,8 @@ private TokenService tokenService; @Autowired private ThreadPoolTaskScheduler taskScheduler; @Autowired private AliOssService aliOssService; /** * 车辆运维-车辆运维-车身清洁 @@ -86,7 +91,7 @@ */ @ApiOperation(value = "车辆管理-清洁列表", tags = {"管理后台-车辆管理"}) @PostMapping("/api/v1/vehicleClean/list") public R<PageInfo<XpVehicleClean>> list(@RequestBody VehicleCleanQuery query) { 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; @@ -120,6 +125,12 @@ for (XpVehicleClean record : records) { String taskImage = record.getTaskImage(); if(taskImage!=null){ JSONObject jsonObject = JSONObject.parseObject(taskImage); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); record.setTaskImage(downloadUrl); } data.stream().filter(xpOperationsUser -> xpOperationsUser.getId().equals(record.getOperationsUserId())).findFirst().ifPresent(xpOperationsUser -> record.setCreateBy(xpOperationsUser.getNickName())); } return R.ok(page); xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpWorkOrderController.java
@@ -1,21 +1,27 @@ package com.xiaopeng.maintenance.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.xiaopeng.api.model.maintenance.XpWorkOrder; import com.xiaopeng.api.model.maintenance.XpWorkOrderLog; import com.xiaopeng.common.core.domain.R; 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.model.query.WorkOrderPageListQuery; import com.xiaopeng.maintenance.service.IXpWorkOrderLogService; import com.xiaopeng.maintenance.service.IXpWorkOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.util.ArrayList; /** * <p> @@ -36,6 +42,8 @@ private IXpWorkOrderLogService workOrderLogService; @Resource private TokenService tokenService; @Resource private AliOssService aliOssService; @ApiOperation(value = "工单管理分页列表") @PostMapping("/pageList") @@ -73,6 +81,24 @@ @GetMapping("/workOrderDetail") public R<XpWorkOrder> workOrderDetail(Long id) { XpWorkOrder detail =workOrderService.workOrderDetail(id); if(detail.getProblemImage()!=null){ String problemImage = detail.getProblemImage(); if (StringUtils.isNotBlank(problemImage)) { JSONArray jsonArray = JSONArray.parseArray(problemImage); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } detail.setProblemImage(String.join(",", list)); } } return R.ok(detail); } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpChargingRecordService.java
@@ -9,6 +9,8 @@ import com.xiaopeng.maintenance.model.vo.XpChargingRecordVO; import com.xiaopeng.maintenance.vo.ChargingStatusVO; import java.io.UnsupportedEncodingException; /** * <p> * 车辆充电记录 服务类 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/XpTaskService.java
@@ -17,6 +17,7 @@ import com.xiaopeng.maintenance.vo.TaskDetectionDetailVO; import javax.validation.Valid; import java.io.UnsupportedEncodingException; import java.util.List; /** @@ -83,7 +84,7 @@ void saveTask(SaveErrorTaskDto dto, Long reportUserId); R<TaskManagementDetailVO> taskDetail(Long id); R<TaskManagementDetailVO> taskDetail(Long id) throws UnsupportedEncodingException; List<TaskManagementPageListVO> exportList(TaskManagementPageListQuery query); xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpChargingRecordServiceImpl.java
@@ -1,5 +1,7 @@ package com.xiaopeng.maintenance.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; @@ -9,6 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.automaticPilot.VehiclePosition; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.maintenance.model.query.XpChargingRecordPageQuery; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; @@ -27,6 +30,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -48,6 +52,9 @@ private XpOperationUserClient xpOperationUserClient; @Autowired private MongoTemplate mongoTemplate; @Autowired private AliOssService aliOssService; @Override public void startCharging(XpChargingRecordStartDTO dto, Long id) { // 创建车辆充电记录 @@ -124,7 +131,7 @@ } @Override public PageInfo<XpChargingRecordVO> queryChargingByVehicleId(XpChargingRecordPageQuery query) { public PageInfo<XpChargingRecordVO> queryChargingByVehicleId(XpChargingRecordPageQuery query){ // 1. 如果有操作人姓名过滤条件,先查询符合条件的用户ID列表 List<Long> userIds = null; if (StringUtils.isNotBlank(query.getOperationsUserName())) { @@ -208,6 +215,65 @@ String userName = userNameMap.get(chargingRecord.getEndOperationsUserId()); vo.setOperatorEndName(userName); } String vehiclePictures = vo.getVehiclePictures(); if (StringUtils.isNotBlank(vehiclePictures)) { JSONArray jsonArray = JSONArray.parseArray(vehiclePictures); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } vo.setVehiclePictures(String.join(",", list)); } String startChargingPicture = vo.getStartChargingPicture(); if (StringUtils.isNotBlank(startChargingPicture)) { JSONArray jsonArray = JSONArray.parseArray(startChargingPicture); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } vo.setStartChargingPicture(String.join(",", list)); } String endChargingPicture = vo.getEndChargingPicture(); if (StringUtils.isNotBlank(endChargingPicture)) { JSONArray jsonArray = JSONArray.parseArray(endChargingPicture); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } vo.setEndChargingPicture(String.join(",", list)); } records.add(vo); } } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -1,6 +1,7 @@ package com.xiaopeng.maintenance.service.impl; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -27,6 +28,7 @@ import com.xiaopeng.common.core.enums.TaskTypeNotificationEnum; import com.xiaopeng.common.core.exception.ServiceException; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.maintenance.constant.I18nKeyConstant; import com.xiaopeng.maintenance.dto.HandleVehicleAccidentDto; import com.xiaopeng.maintenance.dto.SaveErrorTaskDto; @@ -61,6 +63,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; @@ -133,6 +136,9 @@ @Resource private XpFleetOperationsClient xpFleetOperationsClient; @Resource private AliOssService aliOssService; @Override public PageInfo<WorkBenchVO> workbench(WorkBenchQuery query) { @@ -1301,7 +1307,7 @@ } @Override public R<TaskManagementDetailVO> taskDetail(Long id) { public R<TaskManagementDetailVO> taskDetail(Long id) throws UnsupportedEncodingException { TaskManagementDetailVO managementDetailVO = new TaskManagementDetailVO(); XpTask task = this.getById(id); if (task == null) { @@ -1333,7 +1339,13 @@ taskManagementDetectionDetailVO.setVehicleCode(vehicle.getVehicleCode()); taskManagementDetectionDetailVO.setVehicleVin(vehicle.getVehicleVin()); taskManagementDetectionDetailVO.setVehicleLocation(task.getVehicleLocation()); taskManagementDetectionDetailVO.setVehiclePictures(vehicle.getVehiclePictures()); if(vehicle.getVehiclePictures()!=null){ JSONObject jsonObject = JSONObject.parseObject(vehicle.getVehiclePictures()); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); taskManagementDetectionDetailVO.setVehiclePictures(downloadUrl); } taskManagementDetectionDetailVO.setTaskCode(task.getTaskCode()); XpVehicleDetection vehicleDetection = vehicleDetectionMapper.selectOne(new LambdaQueryWrapper<XpVehicleDetection>() .eq(XpVehicleDetection::getTaskId, id).last("limit 1")); @@ -1345,15 +1357,108 @@ taskManagementDetectionDetailVO.setCollisionPrevention(vehicleDetection.getCollisionPrevention()); taskManagementDetectionDetailVO.setSensorSelfCheck(vehicleDetection.getSensorSelfCheck()); taskManagementDetectionDetailVO.setSensorCleaning(vehicleDetection.getSensorCleaning()); taskManagementDetectionDetailVO.setSensorCleaningPicture(vehicleDetection.getSensorCleaningPicture()); String SensorCleaningPicture = vehicleDetection.getSensorCleaningPicture(); if (StringUtils.isNotBlank(SensorCleaningPicture)) { JSONArray jsonArray = JSONArray.parseArray(SensorCleaningPicture); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } taskManagementDetectionDetailVO.setSensorCleaningPicture(String.join(",", list)); } taskManagementDetectionDetailVO.setInteractiveScreen(vehicleDetection.getInteractiveScreen()); taskManagementDetectionDetailVO.setInteractiveScreenPicture(vehicleDetection.getInteractiveScreenPicture()); String InteractiveScreenPicture =vehicleDetection.getInteractiveScreenPicture(); if (StringUtils.isNotBlank(InteractiveScreenPicture)) { JSONArray jsonArray = JSONArray.parseArray(InteractiveScreenPicture); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } taskManagementDetectionDetailVO.setInteractiveScreenPicture(String.join(",", list)); } taskManagementDetectionDetailVO.setHelpButton(vehicleDetection.getHelpButton()); taskManagementDetectionDetailVO.setHelpButtonPicture(vehicleDetection.getHelpButtonPicture()); String HelpButtonPicture =vehicleDetection.getHelpButtonPicture(); if (StringUtils.isNotBlank(HelpButtonPicture)) { JSONArray jsonArray = JSONArray.parseArray(HelpButtonPicture); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } taskManagementDetectionDetailVO.setHelpButtonPicture(String.join(",", list)); } taskManagementDetectionDetailVO.setPaymentFunction(vehicleDetection.getPaymentFunction()); taskManagementDetectionDetailVO.setPaymentFunctionPicture(vehicleDetection.getPaymentFunctionPicture()); String PaymentFunctionPicture =vehicleDetection.getPaymentFunctionPicture(); if (StringUtils.isNotBlank(PaymentFunctionPicture)) { JSONArray jsonArray = JSONArray.parseArray(PaymentFunctionPicture); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } taskManagementDetectionDetailVO.setPaymentFunctionPicture(String.join(",", list)); } taskManagementDetectionDetailVO.setSystemCheck(vehicleDetection.getSystemCheck()); taskManagementDetectionDetailVO.setSystemCheckPicture(vehicleDetection.getSystemCheckPicture()); String SystemCheckPicture =vehicleDetection.getSystemCheckPicture(); if (StringUtils.isNotBlank(SystemCheckPicture)) { JSONArray jsonArray = JSONArray.parseArray(SystemCheckPicture); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } taskManagementDetectionDetailVO.setSystemCheckPicture(String.join(",", list)); } taskManagementDetectionDetailVO.setCheckTime(vehicleDetection.getCheckTime()); taskManagementDetectionDetailVO.setOperationsUserId(vehicleDetection.getOperationsUserId()); if (vehicleDetection.getOperationsUserId() != null) { @@ -1626,6 +1731,9 @@ managementDetailVO.setAccidentDetailVO(res); } return R.ok(managementDetailVO); } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpVehicleRepairServiceImpl.java
@@ -1,5 +1,7 @@ package com.xiaopeng.maintenance.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -12,6 +14,7 @@ import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.maintenance.dto.XpVehicleRepairReturnDTO; import com.xiaopeng.maintenance.dto.XpVehicleRepairStartDTO; import com.xiaopeng.maintenance.mapper.XpVehicleRepairMapper; @@ -26,6 +29,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -45,6 +49,9 @@ private XpVehicleClient xpVehicleClient; @Autowired private XpOperationUserClient xpOperationUserClient; @Autowired private AliOssService aliOssService; @Override public XpVehicleRepairVO repairDetail(Long id) { @@ -161,6 +168,51 @@ String userName = userNameMap.get(chargingRecord.getReturnUserId()); vo.setOperatorEndName(userName); } String RepairMoneyDetail = vo.getRepairMoneyDetail(); if (StringUtils.isNotBlank(RepairMoneyDetail)) { JSONArray jsonArray = JSONArray.parseArray(RepairMoneyDetail); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } vo.setRepairMoneyDetail(String.join(",", list)); } String StartRepairPicture = vo.getStartRepairPicture(); if (StringUtils.isNotBlank(StartRepairPicture)) { JSONArray jsonArray = JSONArray.parseArray(StartRepairPicture); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } vo.setStartRepairPicture(String.join(",", list)); } records.add(vo); } } xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/mangodb/service/impl/XpGeoFencingPolygonServiceImpl.java
@@ -87,7 +87,7 @@ * @param latitude 纬度 * @param fenceId 围栏ID * @param collectionName 集合名称 * @return 是否在围栏中 * @return 是否在围栏中 true在 false不在 */ public boolean isInFence(double longitude, double latitude, String fenceId, String collectionName) { if (fenceId == null || fenceId.trim().isEmpty()) { xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java
@@ -109,6 +109,22 @@ } public static void main(String[] args) { String url = "https://tsapi.amap.com/v1/route/price?key=" + "66ae577f63898dae3016d599fda57221" + "&extensions=all&start=" +"113.384932" + "," + "23.155455"; HashMap<String, Object> params = new HashMap<>(); params.put("extensions", "all"); params.put("start", "113.384932" + "," + "23.155455"); params.put("end", "113.388209" + "," + "23.163455"); params.put("routeUserType",2); log.info("高德地图接口:{}", url); log.info("高德地图参数:{}", params); String post = HttpUtils.post(url, JSON.toJSONString(params)); log.info("高德地图返回结果:"+ post); JSONObject jsonObject = JSON.parseObject(post); System.out.println(jsonObject); } class ArrayPointsTask extends RecursiveTask<Long>{ //最大定位集合阈值 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpBannerManagementController.java
@@ -1,10 +1,13 @@ package com.xiaopeng.operation.controller; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.xiaopeng.api.model.operation.XpBanner; import com.xiaopeng.api.model.operation.XpWhitelist; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.controller.BaseController; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.operation.query.BannerPageListQuery; import com.xiaopeng.operation.query.WhitelistPageListQuery; import com.xiaopeng.operation.service.XpBannerService; @@ -14,6 +17,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.io.UnsupportedEncodingException; import java.util.List; @Slf4j @@ -24,9 +28,11 @@ // banner实现类 private final XpBannerService xpBannerService; private final AliOssService aliOssService; public XpBannerManagementController(XpBannerService xpBannerService) { public XpBannerManagementController(XpBannerService xpBannerService, AliOssService aliOssService) { this.xpBannerService = xpBannerService; this.aliOssService = aliOssService; } @@ -51,7 +57,19 @@ @ApiOperation(value = "详情banner") @GetMapping("/detailBanner") public R<XpBanner> detailBanner(Long id) { return R.ok(xpBannerService.getById(id)); XpBanner xpBanner = xpBannerService.getById(id); JSONObject jsonObject = JSON.parseArray(xpBanner.getBannerPictures()).getJSONObject(0); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } xpBanner.setBannerPictures(downloadUrl); return R.ok(xpBanner); } @ApiOperation(value = "删除banner") @DeleteMapping("/deleteBanner") xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpBannerServiceImpl.java
@@ -68,6 +68,16 @@ public PageInfo<XpBanner> pageList(BannerPageListQuery query) { PageInfo<XpBanner> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<XpBanner> list = this.baseMapper.pageList(pageInfo, query); for (XpBanner xpBanner : list) { JSONObject jsonObject = JSON.parseArray(xpBanner.getBannerPictures()).getJSONObject(0); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } xpBanner.setBannerPictures(downloadUrl); } pageInfo.setRecords(list); return pageInfo; } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRideGuideServiceImpl.java
@@ -2,7 +2,10 @@ import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.operation.dto.XpRideGuideDTO; import com.xiaopeng.operation.mapper.XpRideGuideMapper; import com.xiaopeng.api.model.operation.XpRideGuide; @@ -14,6 +17,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.util.Collections; import java.util.List; @@ -27,6 +32,13 @@ */ @Service public class XpRideGuideServiceImpl extends ServiceImpl<XpRideGuideMapper, XpRideGuide> implements XpRideGuideService { @Resource private AliOssService aliOssService; /** @@ -48,7 +60,19 @@ */ @Override public List<XpRideGuide> getGideList() { return list(); List<XpRideGuide> list = list(); for (XpRideGuide xpRideGuide : list) { JSONObject jsonObject = JSON.parseObject(xpRideGuide.getGuideImage()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } xpRideGuide.setGuideImage(downloadUrl); } return list; } /** xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpUserFeedbackServiceImpl.java
@@ -2,6 +2,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xiaopeng.api.dto.account.UcUserInfo; @@ -9,6 +10,7 @@ import com.xiaopeng.api.model.operation.XpFeedbackType; import com.xiaopeng.api.model.operation.XpUserFeedback; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.operation.mapper.XpUserFeedbackMapper; import com.xiaopeng.operation.query.UserFeedBackQuery; import com.xiaopeng.operation.service.IXpFeedbackTypeService; @@ -20,6 +22,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.io.UnsupportedEncodingException; import java.util.*; import java.util.stream.Collectors; @@ -36,6 +39,7 @@ public class XpUserFeedbackServiceImpl extends ServiceImpl<XpUserFeedbackMapper, XpUserFeedback> implements IXpUserFeedbackService { private final UserResourcesClient userResourcesClient; private final IXpFeedbackTypeService xpFeedbackTypeService; private final AliOssService aliOssService; @Override public PageInfo<XpUserFeedbackVO> getPageList(UserFeedBackQuery query) { @@ -73,6 +77,29 @@ pageInfo.setTotal(page.getTotal()); pageInfo.setSize(page.getSize()); pageInfo.setPages(page.getPages()); for (XpUserFeedbackVO xpUserFeedbackVO : xpUserFeedbackVOS) { String feedbackPictures = xpUserFeedbackVO.getFeedbackPictures(); if (StringUtils.isNotBlank(feedbackPictures)) { JSONArray jsonArray = JSONArray.parseArray(feedbackPictures); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } list.add(downloadUrl); } xpUserFeedbackVO.setFeedbackPictures(String.join(",", list)); } } pageInfo.setRecords(xpUserFeedbackVOS); return pageInfo; } xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java
@@ -29,6 +29,7 @@ import com.xiaopeng.common.core.utils.WebUtils; 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.vehicleConvoy.constant.I18nKeyConstant; import com.xiaopeng.vehicleConvoy.model.dto.*; import com.xiaopeng.vehicleConvoy.model.exportExcel.XpVehicleExportExcel; @@ -63,10 +64,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.*; import java.net.URLEncoder; import java.time.LocalDateTime; import java.util.ArrayList; @@ -107,6 +105,7 @@ private final MessageSource messageSource; private final TokenService tokenService; private final XpVehicleRepairClient xpVehicleRepairClient; private final AliOssService aliOssService; /** * 根据ID列表批量查询车辆信息(内部接口) * @@ -138,9 +137,17 @@ * @return 车辆列表 */ @GetMapping("/inner/vehicle/queryById") public R<XpVehicle> queryById(@RequestParam Long id) { public R<XpVehicle> queryById(@RequestParam Long id) throws UnsupportedEncodingException { XpVehicle xpVehicle = xpVehicleService.getById(id); if (Objects.nonNull(xpVehicle)) { String vehiclePictures = xpVehicle.getVehiclePictures(); if(vehiclePictures!=null){ JSONObject jsonObject = JSON.parseObject(vehiclePictures); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); xpVehicle.setVehiclePictures(downloadUrl); } // 获取车队 XpFleetVehicle xpFleetVehicle = vehicleService.getOne(new LambdaQueryWrapper<XpFleetVehicle>().eq(XpFleetVehicle::getVehicleId, xpVehicle.getId())); if (Objects.nonNull(xpFleetVehicle)) { @@ -702,7 +709,7 @@ @ApiOperation(value = "通过车辆id查询年检分页列表", tags = {"管理后台-车辆管理-运营车辆管理"}) @PostMapping("/api/v1/vehicle/queryTaskRoutineByVehicleId") public R<PageInfo<XpVehicleAnnualRecord>> queryTaskRoutineByVehicleId( @Valid @RequestBody XpVehicleAnnualRecordPageQuery query){ @Valid @RequestBody XpVehicleAnnualRecordPageQuery query) throws UnsupportedEncodingException { return R.ok(xpVehicleAnnualRecordService.queryTaskRoutineByVehicleId(query)); } xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/IXpVehicleAnnualRecordService.java
@@ -5,6 +5,8 @@ import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.vehicleConvoy.model.query.XpVehicleAnnualRecordPageQuery; import java.io.UnsupportedEncodingException; /** * <p> * 车辆年检信息修改记录 服务类 @@ -19,5 +21,5 @@ * @param query * @return */ PageInfo<XpVehicleAnnualRecord> queryTaskRoutineByVehicleId(XpVehicleAnnualRecordPageQuery query); PageInfo<XpVehicleAnnualRecord> queryTaskRoutineByVehicleId(XpVehicleAnnualRecordPageQuery query) throws UnsupportedEncodingException; } xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleAnnualRecordServiceImpl.java
@@ -1,9 +1,12 @@ package com.xiaopeng.vehicleConvoy.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.api.model.vehicleConvoy.XpVehicleAnnualRecord; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.vehicleConvoy.mapper.XpVehicleAnnualRecordMapper; import com.xiaopeng.vehicleConvoy.model.query.XpVehicleAnnualRecordPageQuery; import com.xiaopeng.vehicleConvoy.service.IXpVehicleAnnualRecordService; @@ -13,8 +16,12 @@ import org.bouncycastle.jcajce.provider.symmetric.AES; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; /** @@ -27,8 +34,12 @@ */ @Service public class XpVehicleAnnualRecordServiceImpl extends ServiceImpl<XpVehicleAnnualRecordMapper, XpVehicleAnnualRecord> implements IXpVehicleAnnualRecordService { @Resource private AliOssService aliOssService; @Override public PageInfo<XpVehicleAnnualRecord> queryTaskRoutineByVehicleId(XpVehicleAnnualRecordPageQuery query) { public PageInfo<XpVehicleAnnualRecord> queryTaskRoutineByVehicleId(XpVehicleAnnualRecordPageQuery query) throws UnsupportedEncodingException { // 构建分页参数 PageInfo<XpVehicleAnnualRecord> page = new PageInfo<>(); LambdaQueryWrapper<XpVehicleAnnualRecord> wrapper = new LambdaQueryWrapper<>(); @@ -41,6 +52,55 @@ wrapper.like(StringUtils.isNotBlank(query.getOperationsUserName()), XpVehicleAnnualRecord::getCreateBy, query.getOperationsUserName()); wrapper.eq(XpVehicleAnnualRecord::getVehicleId, query.getVehicleId()); wrapper.orderByDesc(XpVehicleAnnualRecord::getCreateTime); return this.page(page, wrapper); PageInfo<XpVehicleAnnualRecord> pageInfo = this.page(page, wrapper); List<XpVehicleAnnualRecord> records = pageInfo.getRecords(); for (XpVehicleAnnualRecord record : records) { String inspectionAttachments = record.getInspectionAttachments(); if (StringUtils.isNotBlank(inspectionAttachments)) { JSONArray jsonArray = JSONArray.parseArray(inspectionAttachments); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); list.add(downloadUrl); } record.setInspectionAttachments(String.join(",", list)); } String operationQualification = record.getOperationQualification(); if (StringUtils.isNotBlank(operationQualification)) { JSONArray jsonArray = JSONArray.parseArray(operationQualification); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); list.add(downloadUrl); } record.setOperationQualification(String.join(",", list)); } String policyInformation = record.getPolicyInformation(); if (StringUtils.isNotBlank(policyInformation)) { JSONArray jsonArray = JSONArray.parseArray(policyInformation); ArrayList<String> list = new ArrayList<>(jsonArray.size()); for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); list.add(downloadUrl); } record.setPolicyInformation(String.join(",", list)); } } pageInfo.setRecords( records); return pageInfo; } }