xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/ISysGroupService.java
@@ -74,6 +74,11 @@ */ void deleteById(Long id); /** * 获取手机号脱敏 * @param phoneNumber * @return */ String getPhoneDesensitization(String phoneNumber); boolean getPhoneDesensitization(); xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupServiceImpl.java
@@ -321,7 +321,11 @@ removeById(id); } /** * 获取手机号脱敏 * @param phoneNumber * @return */ @Override public String getPhoneDesensitization(String phoneNumber){ boolean b = getPhoneDesensitization(); xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/XpPointSituationReportQuery.java
@@ -34,19 +34,21 @@ /** * 上报运维id */ @TableField("operations_user_id") @ApiModelProperty("上报运维id") private Long operationsUserId; private List<Long> operationsUserIds; @ApiModelProperty("上报运维人名称") private String operationsUserName; /** * 现场情况上报时间 */ @TableField("reporting_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime reportingTimeStart; /** * 现场情况上报时间 */ @TableField("reporting_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime reportingTimeEnd; } xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
@@ -210,6 +210,7 @@ if (xpPoint == null) { throw new ServiceException("系统异常", I18nKeyConstant.SYSTEM_EXCEPTION); } pointAddDto.setStationSortNo(xpPoint.getStationSortNo()); xpPointService.validatePointNameUnique(pointAddDto.getPointName(), pointAddDto.getId()); BeanUtils.copyProperties(pointAddDto, xpPoint); if (Integer.valueOf(2).equals(pointAddDto.getOperationStatus()) && Integer.valueOf(5).equals(pointAddDto.getVerificationStatus())) { @@ -236,12 +237,10 @@ } xpPoint.setFpElectronicAreaId(null); Integer stationSortNo = xpPoint.getStationSortNo(); //点位在场站内排序 Long stationId = pointAddDto.getStationId(); Integer stationSortNo = pointAddDto.getStationSortNo(); //点位在场站内排序 if(stationId != null && stationId > 0){ if(stationSortNo == null){ stationSortNo = 0; } stationSortNo = 0; } // 使用 lambdaUpdate 确保 pointPictures 为 null 时也能将数据库字段清空 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpPointSituationReportController.java
@@ -3,7 +3,10 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.hutool.core.util.StrUtil; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; import com.xiaopeng.api.model.account.SysUser; import com.xiaopeng.api.model.account.XpOperationsUser; import com.xiaopeng.api.model.operation.XpPasswordFreePolicy; import com.xiaopeng.api.model.operation.XpPointSituationReport; import com.xiaopeng.api.query.operation.XpPointSituationReportQuery; @@ -19,6 +22,7 @@ import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -30,6 +34,7 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @RestController @RequestMapping("") @@ -41,6 +46,8 @@ @Resource private TokenService tokenService; @Resource private XpOperationUserClient xpOperationUserClient; @@ -50,19 +57,23 @@ @ApiOperation(value = "现场情况上报分页列表", tags = {"管理后台-运维-现场情况上报"}, response = XpPasswordFreePolicy.class) @PostMapping("/api/v1/pointSituationReport/pageList") public R<PageInfo<XpPointSituationReportVo>> pageList(@RequestBody XpPointSituationReportQuery query) { PageInfo<XpPointSituationReportVo> pageInfo = xpPointSituationReportService.pageList(query); return R.ok(pageInfo); } /** * 删除路线规划配置 * 详情现场情况上报 */ @ApiOperation(value = "详情现场情况上报", tags = {"管理后台-运维-现场情况上报"}) @GetMapping("/api/v1/pointSituationReport/getdetail/{id}") public R<?> getdetail(@PathVariable Long id) { xpPointSituationReportService.getdetail(id); return R.ok(); XpPointSituationReportVo detail = xpPointSituationReportService.getdetail(id); return R.ok(detail); } @@ -72,13 +83,27 @@ @ApiOperation(value = "删除现场情况上报", tags = {"管理后台-运维-现场情况上报"}) @DeleteMapping("/api/v1/pointSituationReport/deleteById/{id}") public R<?> deleteById(@PathVariable Long id) { xpPointSituationReportService.deleteById(id); return R.ok(); try { boolean b = xpPointSituationReportService.deleteById(id); if(b){ return R.ok(); } return R.fail("删除失败"); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } @ApiOperation(value = "导出现场情况上报", tags = {"管理后台-运维-现场情况上报"}) @PostMapping(value = "/api/v1/pointSituationReport/exportExcels") public void exportExcels(@RequestBody XpPointSituationReportQuery query) { if(query.getIds().isEmpty()){ return; } List<XpPointSituationReportVo> exportList = xpPointSituationReportService.exportList(query); List<XpPointSituationReportExportExcel> exportExcels = new ArrayList<>(); long sequence = 1L; @@ -115,7 +140,7 @@ } @ApiOperation(value = "现场情况上报", tags = {"运维APP-站点管理"}, response = XpPointSituationReport.class) @ApiOperation(value = "现场情况上报", tags = {"运维APP-现场情况上报"}, response = XpPointSituationReport.class) @PostMapping("/maintenance-app/api/v1/pointSituationReport/addPointSituationReport") public R<?> addPointSituationReport(@RequestBody XpPointSituationReport xpPointSituationReport){ LoginOperationUser loginOperationUser = tokenService.getLoginOperationUser(); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpPointSituationReportService.java
@@ -15,5 +15,5 @@ List<XpPointSituationReportVo> exportList(XpPointSituationReportQuery query); void deleteById(Long id); boolean deleteById(Long id); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointSituationReportServiceImpl.java
@@ -1,5 +1,8 @@ package com.xiaopeng.operation.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient; @@ -13,6 +16,7 @@ import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.operation.mapper.XpPointSituationReportMapper; import com.xiaopeng.operation.service.IXpPointSituationReportService; import net.bytebuddy.implementation.bytecode.Throw; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -34,6 +38,18 @@ @Override public PageInfo<XpPointSituationReportVo> pageList(XpPointSituationReportQuery query) { //根据 上报运维人名称 查询数据 if(StrUtil.isNotBlank(query.getOperationsUserName())){ R<List<XpOperationsUser>> listR = xpOperationUserClient.listByName(query.getOperationsUserName()); if(CollUtil.isNotEmpty(listR.getData())){ List<Long> operationsUserIds = listR.getData().stream() .map(XpOperationsUser::getId) .collect(Collectors.toList()); query.setOperationsUserIds(operationsUserIds); }else{ query.setOperationsUserIds(ListUtil.toList(0L)); } } // 创建分页对象 PageInfo<XpPointSituationReportVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); // 调用Mapper查询 @@ -125,14 +141,14 @@ @Override public void deleteById(Long id) { public boolean deleteById(Long id) { // 1. 检查记录是否存在 XpPointSituationReport bean = this.getById(id); if (bean == null) { throw new ServiceException("密支付策略配置不存在"); throw new ServiceException("点位现场情况上报信息不存在"); } // 2. 逻辑删除(MyBatis-Plus自动处理) this.removeById(id); return super.removeById( bean.getId()); } } xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpPointSituationReportMapper.xml
@@ -12,7 +12,7 @@ inner join xp_point as b on a.point_id = b.id WHERE a.is_deleted = 0 <if test="query.id != null and query.id != ''"> AND b.point_name = #{query.id} AND a.id = #{query.id} </if> <if test="query.ids != null and query.ids.size() > 0"> AND a.id IN @@ -33,6 +33,12 @@ <if test="query.operationsUserId != null and query.operationsUserId != ''"> AND a.operations_user_id = #{query.operationsUserId} </if> <if test="query.operationsUserIds != null and query.operationsUserIds.size() > 0"> AND a.operations_user_id IN <foreach collection="query.operationsUserIds" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> <if test="query.reportingTimeStart != null"> AND a.reporting_time >= #{query.reportingTimeStart} </if>