xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java
@@ -24,6 +24,8 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.apache.commons.lang3.ArrayUtils; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -282,7 +284,8 @@ } @PostMapping("/updateSysUser") @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R<Boolean> updateSysUser(@RequestBody SysUser sysUser) { try { sysUser.setUpdateBy(SecurityUtils.getUsername()); @@ -449,7 +452,8 @@ */ @ResponseBody @PostMapping("/addSysUser") @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R<Long> addSysUser(@RequestBody SysUser user) { // if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { // throw new RuntimeException("手机号已开通账号"); xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupServiceImpl.java
@@ -28,6 +28,8 @@ import com.xiaopeng.common.security.utils.SecurityUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -61,7 +63,8 @@ * @param dto 新增权限组请求 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void addGroup(SysGroupAddDTO dto) { // 校验组名唯一性 if (!checkGroupNameUnique(dto.getGroupName(), null)) { @@ -83,7 +86,8 @@ * @param dto 编辑权限组请求 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void editGroup(SysGroupEditDTO dto) { // 校验权限组是否存在 SysGroup existGroup = this.getById(dto.getId()); xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysRoleBakServiceImplBak.java
@@ -14,6 +14,8 @@ import com.xiaopeng.account.mapper.SysUserRoleMapper; import com.xiaopeng.account.service.ISysRoleBakService; import com.xiaopeng.api.model.account.*; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -205,7 +207,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int insertRole(SysRoleBak role) { // 新增角色信息 roleMapper.insertRole(role); @@ -219,7 +222,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int updateRole(SysRoleBak role) { // 修改角色信息 // roleMapper.updateRole(role); @@ -246,7 +250,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int authDataScope(SysRoleBak role) { // 修改角色信息 roleMapper.updateRole(role); @@ -320,7 +325,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int deleteRoleById(Long roleId) { // 删除角色与菜单关联 roleMenuMapper.deleteRoleMenuByRoleId(roleId); @@ -336,7 +342,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int deleteRoleByIds(Long[] roleIds) { for (Long roleId : roleIds) { checkRoleAllowed(new SysRoleBak(roleId)); xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java
@@ -14,6 +14,8 @@ import com.xiaopeng.common.core.utils.StringUtils; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.security.service.TokenService; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -157,7 +159,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int insertUser(SysUser user) { // 新增用户信息 // int rows = userMapper.insertUser(user); @@ -177,7 +180,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int updateUser(SysUser user) { return userMapper.updateUser(user); } @@ -189,7 +193,8 @@ * @param roleIds 角色组 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void insertUserAuth(Long userId, Long[] roleIds) { userRoleMapper.deleteUserRoleByUserId(userId); insertUserRole(userId, roleIds); @@ -244,7 +249,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int deleteUserByIds(Long[] userIds) { for (Long userId : userIds) { SysUser sysUser = new SysUser(); xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserNotificationServiceImpl.java
@@ -49,8 +49,8 @@ return pageInfo; } @Override // @Transactional(rollbackFor = Exception.class) // @ShardingSphereTransactionType(TransactionType.BASE) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void addNotificationBatch(List<XpOperationsUserNotification> notifications) { saveBatch(notifications); } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -34,6 +34,8 @@ import com.xiaopeng.common.security.utils.SecurityUtils; 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.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -178,8 +180,10 @@ return vo; } @Transactional(rollbackFor = Exception.class) @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void saveCertificate(XpOperationsUserDTO dto) { XpOperationsUser xpOperationsUser = BeanUtil.copyProperties(dto, XpOperationsUser.class); updateById(xpOperationsUser); xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/order/XpHistoryEndPointsVo.java
@@ -30,6 +30,9 @@ private Integer time; @ApiModelProperty("operation_status 运营状态 1=待启用 2=启用中 3=已停用 4=已失效") private Integer operationStatus; private Long electronicAreaId; xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/order/XpHistoryStartPointsVo.java
@@ -30,6 +30,9 @@ private Integer time; @ApiModelProperty("operation_status 运营状态 1=待启用 2=启用中 3=已停用 4=已失效") private Integer operationStatus; private Long electronicAreaId; private Integer num; xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -14,10 +14,7 @@ import com.xiaopeng.api.dto.order.PopOrderDto; import com.xiaopeng.api.dto.pushMessage.PushOrderRouteDTO; import com.xiaopeng.api.dto.pushMessage.SendMessageDTO; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; import com.xiaopeng.api.feignClient.account.XpOperationUserNotificationClient; import com.xiaopeng.api.feignClient.maintenance.XpTaskClient; import com.xiaopeng.api.feignClient.maintenance.XpTaskRuleClient; import com.xiaopeng.api.feignClient.map.XpMapClient; import com.xiaopeng.api.feignClient.operation.ReassignOrderClient; import com.xiaopeng.api.feignClient.operation.XpCruisePlanClient; @@ -25,8 +22,6 @@ import com.xiaopeng.api.feignClient.order.XpOrderClient; import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient; import com.xiaopeng.api.feignClient.vehicleConvoy.UserVehicleClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetVehicleClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.model.order.XpCruiseOrder; import com.xiaopeng.api.model.order.XpOrder; @@ -45,7 +40,6 @@ import com.xiaopeng.common.core.utils.uuid.UUID; import com.xiaopeng.common.redis.service.RedisService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.core.MongoTemplate; @@ -60,7 +54,6 @@ import java.util.*; import java.util.concurrent.TimeUnit; ; /** * Kafka 消费者服务 @@ -105,7 +98,7 @@ @Resource private XpCruisePlanClient xpCruisePlanClient; @Resource(name = "hutoolSnowflake") @Resource private Snowflake snowflake; @Value("${robotaxi.appId:xp_robotaxi_api}") @@ -114,7 +107,7 @@ @Resource private XpTaskClient xpTaskClient; private static final com.google.protobuf.util.JsonFormat.Printer jsonPrinter = com.google.protobuf.util.JsonFormat.printer() private static final JsonFormat.Printer jsonPrinter = JsonFormat.printer() .printingEnumsAsInts() .preservingProtoFieldNames(); @@ -268,7 +261,7 @@ String vin = jsonObject.getString("vin"); String orderType = jsonObject.getString("orderType"); PopOrderDto dto = new PopOrderDto(); dto.setOrderId(Long.valueOf(orderId)); dto.setOrderId(Long.valueOf(orderId.contains("XU") ? orderId.substring(2) : orderId)); dto.setXpVehicleVin(vin); dto.setOrderType(orderType); xpOrderClient.popOrder(dto); @@ -368,12 +361,13 @@ //TODO 这两个字段现在拿不到 // dto.setDuration(rtTripInfo.getRemaining_time()); // dto.setDistance(rtTripInfo.getRemaining_distance().intValue()); // dto.setDirection(); xpPushMessageClient.pushOrderRoute(dto); } } } /** @@ -510,7 +504,7 @@ destination.setLatitude(xpCruiseOrder.getEndLat()); OrderRouteAndFareDto dto = new OrderRouteAndFareDto(); dto.setOrderId(Long.parseLong(orderId)); dto.setOrderId(Long.parseLong(orderId.substring(2))); dto.setOrigin(origin); dto.setDestination(destination); dto.setRouteType(3); @@ -618,7 +612,7 @@ destination.setLatitude(xpCruiseOrder.getEndLat()); OrderRouteAndFareDto dto = new OrderRouteAndFareDto(); dto.setOrderId(Long.parseLong(orderId)); dto.setOrderId(Long.parseLong(orderId.substring(2))); dto.setOrigin(origin); dto.setDestination(destination); dto.setRouteType(3); @@ -800,7 +794,7 @@ case ORDER_RECEIVED: //收到订单 buildPushOrderStatus(orderId, OrderStatusEnum.READY_DEPART, sequence); xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.READY_DEPART.getCode()); xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.READY_DEPART.getCode()); break; case ORDER_STARTED: //开始执行订单 @@ -809,7 +803,7 @@ case ORDER_EN_ROUTE_TO_PICKUP: //前往上车点 buildPushOrderStatus(orderId, OrderStatusEnum.PICK_UP, sequence); xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP.getCode()); xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PICK_UP.getCode()); break; case ORDER_ARRIVED_AT_PICKUP: //到达上车点 @@ -818,17 +812,17 @@ case ORDER_WAITING_FOR_PICKUP: //等待乘客上车 buildPushOrderStatus(orderId, OrderStatusEnum.PICK_UP_GUESTS, sequence); xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode()); xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode()); break; case ORDER_PASSENGER_ONBOARD: //乘客已上车 buildPushOrderStatus(orderId, OrderStatusEnum.PASSENGER_BOARDED, sequence); xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode()); xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode()); break; case ORDER_EN_ROUTE_TO_DESTINATION: //前往目的地 buildPushOrderStatus(orderId, OrderStatusEnum.IN_SERVICE, sequence); xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.IN_SERVICE.getCode()); xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.IN_SERVICE.getCode()); break; case ORDER_ARRIVED_AT_DESTINATION: //到达目的地 @@ -837,13 +831,12 @@ case ORDER_WAITING_FOR_DROPOFF: //等待乘客下车 buildPushOrderStatus(orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence); xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode()); xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode()); break; case ORDER_DROPOFF_COMPLETED: //下车完成 buildPushOrderStatus(orderId, OrderStatusEnum.APPROVAL_REJECTION, sequence); xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.APPROVAL_REJECTION.getCode()); xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.APPROVAL_REJECTION.getCode()); // 下发巡游任务 R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(Long.parseLong(orderId)); @@ -860,9 +853,6 @@ xpCruiseOrderClient.addCruiseMission(addCruiseMissionDto); } } break; case ORDER_COMPLETED: //已完成 @@ -871,7 +861,7 @@ case ORDER_CANCELLED: //已取消 buildPushOrderStatus(orderId, OrderStatusEnum.CANCELED, sequence); xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.CANCELED.getCode()); xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.CANCELED.getCode()); break; case ORDER_ARRIVED_AT_CRUISE_DESTINATION: //到达巡游终点 @@ -923,33 +913,10 @@ if(xpCruiseOrder.getOrderType()==2){ R<XpCruiseOrder> lastOrder = xpCruiseOrderClient.getCruiseOrder(xpCruiseOrder.getLastOrderId()); XpCruiseOrder lastXpCruiseOrder = lastOrder.getData(); // 修改一下id 加一个一样的巡游单子 lastXpCruiseOrder.setId(null); lastXpCruiseOrder.setStatus(1); xpCruiseOrderClient.addCruiseOrder(lastXpCruiseOrder); //构建下发XPU订单报文数据 RtTask.Builder taskBuilder = RtTask.newBuilder(); taskBuilder.setOrderId("XU" + lastXpCruiseOrder.getId()); taskBuilder.setTaskId(snowflake.nextId() + ""); taskBuilder.setTaskType(com.xiaopeng.api.vo.automaticPilot.protobuf.OrderType.ORDER_TYPE_CRUISE); //构建点位信息 Waypoint.Builder pointBuilder = Waypoint.newBuilder(); pointBuilder.setPointType(PointType.CRUISE_END_POINT); pointBuilder.setSequence(1); //构建终点坐标 GeoPoint.Builder geoPointBuilder = GeoPoint.newBuilder(); geoPointBuilder.setLatitude(lastXpCruiseOrder.getEndLat()); geoPointBuilder.setLongitude(lastXpCruiseOrder.getEndLat()); // geoPointBuilder.setPoiName("Start Point"); // GeoPoint might not have poi_name pointBuilder.setPoint(geoPointBuilder.build()); taskBuilder.addPoints(pointBuilder); RtTask task = taskBuilder.build(); RtTaskList taskList = RtTaskList.newBuilder().addTasks(task).build(); long sequence1 = snowflake.nextId(); xpuUtil.cloudCreateOrder(taskList, xpVehicle.getVehicleVin(),sequence1); }else if(xpCruiseOrder.getOrderType()==1){ // 正常巡游 找到下一个点位 若到达最后点位 则反向找点位 // 起点 @@ -967,7 +934,6 @@ newXpCruiseOrder.setStatus(1); newXpCruiseOrder.setLastOrderId(xpCruiseOrder.getId()); // 通过车找终点id CruisePointDto cruisePointDto = new CruisePointDto(); cruisePointDto.setNewXpCruiseOrder(newXpCruiseOrder); @@ -977,29 +943,6 @@ R<XpCruiseOrder> cruisePoint = xpCruisePlanClient.getCruisePoint(cruisePointDto); if(cruisePoint!=null){ xpCruiseOrderClient.addCruiseOrder(cruisePoint.getData()); RtTask.Builder taskBuilder = RtTask.newBuilder(); taskBuilder.setOrderId("XU" + newXpCruiseOrder.getId()); taskBuilder.setTaskId(snowflake.nextId() + ""); taskBuilder.setTaskType(com.xiaopeng.api.vo.automaticPilot.protobuf.OrderType.ORDER_TYPE_CRUISE); //构建点位信息 Waypoint.Builder pointBuilder = Waypoint.newBuilder(); pointBuilder.setPointType(PointType.CRUISE_END_POINT); pointBuilder.setSequence(1); //构建终点坐标 GeoPoint.Builder geoPointBuilder = GeoPoint.newBuilder(); geoPointBuilder.setLatitude(cruisePoint.getData().getEndLat()); geoPointBuilder.setLongitude(cruisePoint.getData().getEndLat()); // geoPointBuilder.setPoiName("Start Point"); // GeoPoint might not have poi_name pointBuilder.setPoint(geoPointBuilder.build()); taskBuilder.addPoints(pointBuilder); RtTaskList.Builder taskListBuilder = RtTaskList.newBuilder(); taskListBuilder.addTasks(taskBuilder.build()); long sequence1 = snowflake.nextId(); xpuUtil.cloudCreateOrder(taskListBuilder.build(), xpVehicle.getVehicleVin(),sequence1); } } } xp-robotaxi-gateway-boot/pom.xml
@@ -38,31 +38,15 @@ </dependency> <!-- SpringCloud Alibaba Nacos --> <!--<dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>--> </dependency> <!-- SpringCloud Alibaba Nacos Config --> <!--<dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>--> <dependency> <groupId>com.xiaopeng.logan</groupId> <artifactId>logan2-namor-client</artifactId> <version>1.16.0</version> </dependency> <dependency> <groupId>com.xiaopeng.logan</groupId> <artifactId>logan-starter-core</artifactId> <version>2.3.5</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </exclusion> </exclusions> </dependency> <!-- SpringCloud Alibaba Sentinel --> @@ -165,15 +149,11 @@ </dependencies> <build> <!--<finalName>${project.artifactId}</finalName>--> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <classifier>exec</classifier> <executable>true</executable> </configuration> <executions> <execution> <goals> xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
@@ -26,6 +26,8 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.geo.GeoJsonPoint; import org.springframework.data.mongodb.core.query.Criteria; @@ -78,7 +80,6 @@ @ApiOperation(value = "事故任务确认到达", tags = "运维APP-任务中心") @GetMapping("/api/v1/task/confirmArrive") @Transactional public R confirmArrive(Long id) { Long userId = tokenService.getLoginOperationUser().getXpOperationsUser().getId(); return xpTaskService.confirmArrive(id, userId); @@ -182,9 +183,10 @@ return xpTaskService.cleanDetail(id); } @Transactional @ShardingSphereTransactionType(TransactionType.BASE) @ApiOperation(value = "处理车辆事故", tags = "运维APP-任务中心") @PostMapping("/api/v1/task/handleVehicleAccident") @Transactional public R handleVehicleAccident(@RequestBody HandleVehicleAccidentDto dto) { LoginOperationUser loginOperationUser = tokenService.getLoginOperationUser(); XpOperationsUser xpOperationsUser = loginOperationUser.getXpOperationsUser(); xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleCleanController.java
@@ -17,6 +17,8 @@ import com.xiaopeng.maintenance.service.XpTaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; @@ -55,7 +57,8 @@ /** * 车辆运维-车辆运维-车身清洁 */ @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) @ApiOperation(value = "车辆运维-车辆运维-车身清洁", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/vehicleClean/add") public R<String> add(@RequestBody XpVehicleCleanDTO dto) { xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleDetectionController.java
@@ -15,6 +15,8 @@ import com.xiaopeng.maintenance.service.XpTaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -72,7 +74,8 @@ /** * 车辆详情-车辆运维-车辆检测提交 */ @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) @ApiOperation(value = "车辆运维-车辆运维-车辆检测提交", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/vehicleDetection/saveDetection") public R<String> saveDetection(@RequestBody XpVehicleDetectionDTO dto) { xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehiclePreparationController.java
@@ -14,6 +14,8 @@ import com.xiaopeng.maintenance.service.XpTaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -46,7 +48,8 @@ /** * 车辆详情-车辆运维-车辆整备 */ @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) @ApiOperation(value = "车辆运维-车辆运维-车辆整备", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/vehiclePreparation/savePreparation") public R<String> savePreparation(@RequestBody XpVehiclePreparationDTO dto) { xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -49,6 +49,8 @@ import com.xiaopeng.maintenance.utils.UUIDUtil; 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.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.BeanUtils; @@ -185,8 +187,11 @@ return pageInfo; } @Transactional(rollbackFor = Exception.class) @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void saveVehicleAccident(SaveVehicleAccidentDto dto, XpOperationsUser xpOperationsUser) { XpTask xpTask = new XpTask(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); @@ -797,6 +802,8 @@ } @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R confirmArrive(Long id, Long userId) { RLock lock = redissonClient.getLock("TASK_CONFIRM_" + id); xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
@@ -96,8 +96,6 @@ */ @PostMapping("/add") @ApiOperation(value = "新增电子围栏") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R add(@Validated @RequestBody ElectronicFenceAddDto dto) { return xpElectronicFenceService.addElectronic(dto); } @@ -110,8 +108,6 @@ @PostMapping("/updateStatus") @ResponseBody @ApiOperation(value = "修改状态") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R updateStatus(@RequestBody ElectronicFenceAreaUpdateStatusDto dto) { XpElectronicFenceArea electronicFenceArea = xpElectronicFenceAreaService.getById(dto.getId()); if (electronicFenceArea == null) { @@ -150,8 +146,6 @@ */ @PostMapping("/edit") @ApiOperation(value = "编辑电子围栏") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated @RequestBody ElectronicFenceUpdateDto dto) { return xpElectronicFenceService.editElectronic(dto); } @@ -161,8 +155,8 @@ */ @PostMapping("/copy") @ApiOperation(value = "复制电子围栏") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R<Long> copy(@RequestParam("id") Integer id) { XpElectronicFence electronicFence = xpElectronicFenceService.getById(id); if (electronicFence.getStatus()==2){ xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
@@ -25,7 +25,10 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -148,8 +151,6 @@ @PostMapping("/add") @ResponseBody @ApiOperation(value = "新增点位") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R<XpPoint> add(@Validated @RequestBody PointAddDto pointAddDto) { return R.ok(xpPointService.addPointWithGeneratedNumber(pointAddDto)); } @@ -160,8 +161,6 @@ @GetMapping("/deletePoint") @ResponseBody @ApiOperation(value = "删除点位") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R deletePoint(@RequestParam("ids") String ids) { xpPointService.removeBatchByIds(Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList())); return R.ok(); @@ -172,8 +171,8 @@ */ @PostMapping("/edit") @ApiOperation(value = "编辑点位") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated @RequestBody PointUpdateDto pointAddDto) { XpPoint xpPoint = xpPointService.getById(pointAddDto.getId()); if (!xpPoint.getElectronicAreaId().equals(pointAddDto.getElectronicAreaId())) { @@ -203,8 +202,6 @@ */ @PostMapping("/enableDisable") @ApiOperation(value = "启用/禁用") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R enableDisable(@RequestBody XpPointEnableDisableDto dto) { XpPoint xpPoint = xpPointService.getById(dto.getId()); xpPoint.setOperationStatus(dto.getOperationStatus()); xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
@@ -31,6 +31,8 @@ import com.xiaopeng.map.utils.PolygonOverlapService; import lombok.extern.slf4j.Slf4j; import net.sourceforge.pinyin4j.PinyinHelper; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.GeometryFactory; import org.locationtech.jts.geom.LinearRing; @@ -42,6 +44,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.awt.geom.Point2D; @@ -195,6 +198,8 @@ return pinyinInitials.toString(); } @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R addElectronic(ElectronicFenceAddDto dto) { // 获取现有的运营区域(areaType=1) LambdaQueryWrapper<XpElectronicFenceArea> xpElectronicFenceAreaLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -383,6 +388,8 @@ } @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R editElectronic(ElectronicFenceUpdateDto dto) { // 获取现有的运营区域(areaType=1),排除当前正在编辑的电子围栏 LambdaQueryWrapper<XpElectronicFenceArea> xpElectronicFenceAreaLambdaQueryWrapper = new LambdaQueryWrapper<>(); xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java
@@ -39,11 +39,14 @@ import com.xiaopeng.map.vo.OrderDistanceVo; import lombok.extern.slf4j.Slf4j; import net.sourceforge.pinyin4j.PinyinHelper; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalTime; @@ -88,6 +91,8 @@ private RedissonClient redissonClient; @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public XpPoint addPointWithGeneratedNumber(PointAddDto pointAddDto) { if (pointAddDto == null) { throw new ServiceException("参数不能为空", I18nKeyConstant.SYSTEM_EXCEPTION); xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpSystemSettingServiceImpl.java
@@ -46,7 +46,7 @@ return 15; } @Transactional(rollbackFor = Exception.class) @Override public void saveSystemSetting(XpSystemSetting xpSystemSetting) { saveOrUpdate(xpSystemSetting); xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java
@@ -118,8 +118,7 @@ params.put("encoderVersion", "5.1"); String post = HttpUtils.post(url, JSON.toJSONString(params)); System.out.println("高德地图返回结果:"+ post); JSONObject jsonObject = JSON.parseObject(post); return jsonObject.getString("data"); return post; } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpElectronicFenceController.java
@@ -84,8 +84,6 @@ */ @PostMapping("/add") @ApiOperation(value = "新增电子围栏") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R add(@Validated @RequestBody ElectronicFenceAddDto dto) { return xpElectronicFenceService.addElectronic(dto); } @@ -98,8 +96,6 @@ @PostMapping("/updateStatus") @ResponseBody @ApiOperation(value = "修改状态") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R updateStatus(@RequestBody ElectronicFenceAreaUpdateStatusDto dto) { XpElectronicFenceArea electronicFenceArea = xpElectronicFenceAreaService.getById(dto.getId()); if (electronicFenceArea == null) { @@ -138,8 +134,6 @@ */ @PostMapping("/edit1") @ApiOperation(value = "编辑电子围栏") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated @RequestBody ElectronicFenceUpdateDto dto) { return xpElectronicFenceService.editElectronic(dto); } @@ -149,8 +143,8 @@ */ @PostMapping("/copy") @ApiOperation(value = "复制电子围栏") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R<Long> copy(@RequestParam("id") Integer id) { XpElectronicFence electronicFence = xpElectronicFenceService.getById(id); if (electronicFence.getStatus()==2){ xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java
@@ -27,6 +27,8 @@ import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.transaction.annotation.Transactional; @@ -82,7 +84,6 @@ @PostMapping("/api/v1/invitation/add") @ResponseBody @ApiOperation(value = "生成邀请码") @Transactional public R add(@RequestBody InvitationAddDto dto){ long existing = xpInvitationCodeService.count(); long incoming = Arrays.stream(Optional.ofNullable(dto.getPhones()).orElse("").split(",")) xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpPointManagementController.java
@@ -84,12 +84,9 @@ /** * 新增点位 */ @Transactional(rollbackFor = Exception.class) @PostMapping("/addPoint") @ResponseBody @ApiOperation(value = "新增点位") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R add(@Validated @RequestBody PointAddDto pointAddDto) { XpPoint xpPoint = new XpPoint(); BeanUtils.copyProperties(pointAddDto, xpPoint); @@ -102,8 +99,6 @@ @GetMapping("/deletePoint") @ResponseBody @ApiOperation(value = "删除点位") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R deletePoint(@RequestParam("ids") String ids) { xpPointService.removeBatchByIds(Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList())); return R.ok(); @@ -113,8 +108,6 @@ */ @PostMapping("/editPoint") @ApiOperation(value = "编辑点位") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated@RequestBody PointUpdateDto pointAddDto) { XpPoint xpPoint = new XpPoint(); BeanUtils.copyProperties(pointAddDto, xpPoint); @@ -134,8 +127,6 @@ */ @PostMapping("/enableDisablePoint") @ApiOperation(value = "启用/禁用") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R enableDisable(@RequestBody XpPointEnableDisableDto dto) { XpPoint xpPoint = xpPointService.getById(dto.getId()); xpPoint.setOperationStatus(dto.getOperationStatus()); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
@@ -32,6 +32,8 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -104,7 +106,6 @@ @PostMapping("/api/v1/whitelist/add") @ResponseBody @ApiOperation(value = "新增白名单") @Transactional public R add(@Validated @RequestBody WhitelistAddDto dto) { if (!StringUtils.hasLength(dto.getAccount())) { return R.fail("请输入账号"); @@ -198,9 +199,12 @@ } } @Transactional @ShardingSphereTransactionType(TransactionType.BASE) @Log(title = "白名单导入", businessType = BusinessType.IMPORT) @ApiOperation(value = "白名单导入") @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) @PostMapping("/base/v1/whitelist/importExcel") public AjaxResult<String> importExcel(@RequestParam("file") MultipartFile file) { xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/SysDictTypeServiceImpl.java
@@ -10,6 +10,8 @@ import com.xiaopeng.operation.mapper.SysDictDataMapper; import com.xiaopeng.operation.mapper.SysDictTypeMapper; import com.xiaopeng.operation.service.ISysDictTypeService; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -190,7 +192,8 @@ * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public int updateDictType(SysDictType dict) { SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId()); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpCruisePlanServiceImpl.java
@@ -28,6 +28,8 @@ import com.xiaopeng.operation.vo.XpCruisePlanVehicleVO; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -77,7 +79,8 @@ } @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void add(XpCruisePlanAddDTO dto) { //1.校验巡游计划名称 validatePlanName(dto.getPlanName(), null); @@ -105,7 +108,8 @@ } @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void edit(XpCruisePlanEditDTO dto) { if (dto.getId() == null) { throw new ServiceException("巡游计划ID不能为空", I18nKeyConstant.CRUISE_PLAN_ID_EMPTY); @@ -142,7 +146,8 @@ } @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void deleteById(Long id) { xpCruisePlanPointService.lambdaUpdate() .eq(XpCruisePlanPoint::getCruisePlanId, id) xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpElectronicFenceServiceImpl.java
@@ -33,6 +33,8 @@ import com.xiaopeng.operation.utils.PolygonOverlapService; import lombok.extern.slf4j.Slf4j; import net.sourceforge.pinyin4j.PinyinHelper; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.core.MongoTemplate; @@ -40,6 +42,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; @@ -114,7 +117,11 @@ } return pinyinInitials.toString(); } @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R addElectronic(ElectronicFenceAddDto dto) { try { // 获取现有的运营区域(areaType=1) @@ -296,6 +303,8 @@ } @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R editElectronic(ElectronicFenceUpdateDto dto) { try { // 获取现有的运营区域(areaType=1),排除当前正在编辑的电子围栏 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpFrequentlyAskedQuestionsServiceImpl.java
@@ -5,6 +5,8 @@ import com.xiaopeng.operation.mapper.XpFrequentlyAskedQuestionsMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.operation.service.IXpFrequentlyAskedQuestionsService; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -20,8 +22,9 @@ */ @Service public class XpFrequentlyAskedQuestionsServiceImpl extends ServiceImpl<XpFrequentlyAskedQuestionsMapper, XpFrequentlyAskedQuestions> implements IXpFrequentlyAskedQuestionsService { @Transactional(rollbackFor = Exception.class) @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void saveQuestion(XpFrequentlyAskedQuestionsDTO dto) { //先删除原有的常见问题 remove(null); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
@@ -139,7 +139,7 @@ double v = FastDistanceCalculator.distanceFast(dto.getLatitude(), dto.getLongitude(), xpPoint.getPointLat(), xpPoint.getPointLon()); // m做判断 if ((v*1000) < orderDistance) { if ((v) < orderDistance) { NearestNextVo nearestNextVo = new NearestNextVo(); nearestNextVo.setId(xpPoint.getId()); nearestNextVo.setName(xpPoint.getPointName()); @@ -227,6 +227,7 @@ ArrayList<XpHistoryStartPointsVo> resultList = new ArrayList<>(10); for (XpPoint xpPoint : xpPoints) { XpHistoryStartPointsVo xpHistoryStartPointsVo = new XpHistoryStartPointsVo(); xpHistoryStartPointsVo.setOperationStatus(xpPoint.getOperationStatus()); xpHistoryStartPointsVo.setName(xpPoint.getPointName()); xpHistoryStartPointsVo.setAddress(xpPoint.getPointAddress()); xpHistoryStartPointsVo.setLatitude(xpPoint.getPointLat()); @@ -249,6 +250,7 @@ ArrayList<XpHistoryEndPointsVo> resultList = new ArrayList<>(10); for (XpPoint xpPoint : xpPoints) { XpHistoryEndPointsVo xpHistoryEndPointsVo = new XpHistoryEndPointsVo(); xpHistoryEndPointsVo.setOperationStatus(xpPoint.getOperationStatus()); xpHistoryEndPointsVo.setName(xpPoint.getPointName()); xpHistoryEndPointsVo.setAddress(xpPoint.getPointAddress()); xpHistoryEndPointsVo.setLatitude(xpPoint.getPointLat()); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRideGuideServiceImpl.java
@@ -9,6 +9,8 @@ import com.xiaopeng.operation.service.XpRideGuideService; import com.xiaopeng.operation.vo.XpRideGuideNextVo; import com.xiaopeng.operation.vo.XpRideGuideVo; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -53,8 +55,9 @@ * 保存乘车指南 * @param dto */ @Transactional(rollbackFor = Exception.class) @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void saveGuide(XpRideGuideDTO dto) { //根据类型删除已配置的乘车指南 lambdaUpdate().remove(); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpSystemSettingServiceImpl.java
@@ -54,7 +54,7 @@ return 15; } @Transactional(rollbackFor = Exception.class) @Override public void saveSystemSetting(XpSystemSetting xpSystemSetting) { if (Objects.nonNull(xpSystemSetting.getId())) { xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpTradingStrategyServiceImpl.java
@@ -12,6 +12,8 @@ import com.xiaopeng.operation.service.IXpTradingStrategyService; import com.xiaopeng.operation.vo.XpTradingStrategyDetailVO; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -58,7 +60,8 @@ } @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void editStrategy(XpTradingStrategyEditDTO dto) { // 1. 校验策略是否存在 XpTradingStrategy strategy = this.getById(dto.getId()); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpWhitelistServiceImpl.java
@@ -16,8 +16,11 @@ import com.xiaopeng.operation.query.WhitelistPageListQuery; import com.xiaopeng.operation.service.IXpWhitelistService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import java.util.ArrayList; @@ -59,6 +62,8 @@ } @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R addWhitelist(WhitelistAddDto dto, SysUser sysUser) { List<String> accounts = Arrays.stream(dto.getAccount().split(",")) .map(String::trim) xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -93,6 +93,8 @@ import com.xiaopeng.order.vo.OrderDetailVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -491,8 +493,10 @@ return new HashMap<>(); } @Transactional(rollbackFor = Exception.class) @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void cancelOrCloseOrder(Long orderId, Integer type) { // 1. 校验订单是否存在 XpOrder order = this.getById(orderId); @@ -686,8 +690,9 @@ /** * 改派订单 */ @Transactional(rollbackFor = Exception.class) @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void reassignOrder(Long orderId, Long newVehicleId, String reassignReason) { // 1. 校验订单是否存在 XpOrder order = this.getById(orderId); @@ -1114,6 +1119,7 @@ */ @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void cancelOrder(Long orderId, String uid) { XpOrder order = this.getById(orderId); if (order.getStatus() == 0) { @@ -1227,6 +1233,7 @@ @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void cancelOrder(String orderId) { XpOrder order = this.getById(orderId); if (order == null) { @@ -1287,6 +1294,7 @@ */ @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void comment(XpOrderCommentDto dto, String uid) { XpOrder xpOrder = this.getById(dto.getOrderId()); if (xpOrder == null) { @@ -2192,9 +2200,9 @@ // 计算时间差 Duration durationBetween = Duration.between(createTime, tripEnd); // 转换为分钟并保留一位小数 // 转换为秒并保留一位小数 BigDecimal minutes = BigDecimal.valueOf(durationBetween.getSeconds()) .divide(BigDecimal.valueOf(60), 1, RoundingMode.HALF_UP); ; res.setTime(minutes); return R.ok(res); } @@ -2347,8 +2355,8 @@ * @param dto */ @Override // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void popOrder(PopOrderDto dto) { String orderType = dto.getOrderType(); Long orderId = dto.getOrderId(); xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java
@@ -38,6 +38,8 @@ import com.xiaopeng.vehicleConvoy.service.IXpFleetVehicleService; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -80,7 +82,8 @@ } @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R<Void> add(FleetAddDTO dto) { // 1. 校验车队名称不能重复 long count = this.count(new LambdaQueryWrapper<XpFleet>() @@ -136,7 +139,6 @@ } @Override @Transactional(rollbackFor = Exception.class) public R<Void> edit(FleetEditDTO dto) { // 1. 查询车队是否存在 XpFleet fleet = this.getById(dto.getId()); @@ -533,7 +535,8 @@ } @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void deleteById(Long id) { long vehicleCount = xpFleetVehicleService.count(new LambdaQueryWrapper<XpFleetVehicle>() .eq(XpFleetVehicle::getFleetId, id)); xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpPolicyApplicationServiceImpl.java
@@ -114,6 +114,7 @@ /** * 转换为页面 VO * * @param item * @param longXpVehicleMap * @param longXpOperationsUserMap @@ -121,7 +122,7 @@ * @return */ private XpPolicyApplicationVO convertToPageVO(XpPolicyApplication item, Map<Long, XpVehicle> longXpVehicleMap, Map<Long, XpOperationsUser> longXpOperationsUserMap, Map<Long, SysUser> auditUserMap) { Map<Long, XpOperationsUser> longXpOperationsUserMap, Map<Long, SysUser> auditUserMap) { XpPolicyApplicationVO xpPolicyApplicationVO = BeanUtil.copyProperties(item, XpPolicyApplicationVO.class); xpPolicyApplicationVO.setAuditStatusDesc(AuditStateEnum.getDescByCode(item.getAuditStatus())); // 车辆信息 @@ -207,7 +208,6 @@ return new HashMap<>(); } @Transactional(rollbackFor = Exception.class) @Override public void batchAudit(XpPolicyApplicationAuditDTO dto) { // 1.查询待审核的保单申请记录 @@ -255,12 +255,12 @@ XpVehicle xpVehicle = xpVehicleMapper.selectById(xpPolicyApplication.getVehicleId()); xpPolicyApplicationVO.setPlateNumber(xpVehicle.getPlateNumber()); xpPolicyApplicationVO.setVehicleCode(xpVehicle.getVehicleCode()); if(xpPolicyApplicationVO.getAuditStatus() == 2){ if (xpPolicyApplicationVO.getAuditStatus() == 2) { xpPolicyApplicationVO.setPolicyInformation(xpVehicle.getPolicyInformation()); } } queryPolicyInfoVO.setStatus(xpPolicyApplication.getAuditStatus()); }else { } else { queryPolicyInfoVO.setStatus(0); } return queryPolicyInfoVO; xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
@@ -50,6 +50,8 @@ import com.xiaopeng.vehicleConvoy.util.VehicleControlUtil; 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.context.i18n.LocaleContextHolder; import org.springframework.data.geo.Point; @@ -350,7 +352,6 @@ } @Override @Transactional(rollbackFor = Exception.class) public void addVehicle(VehicleAddDTO dto) { String normalizedVehicleCode = trimToNull(dto.getVehicleCode()); String normalizedVin = normalizeVin(dto.getVehicleVin()); @@ -382,7 +383,6 @@ } @Override @Transactional(rollbackFor = Exception.class) public void editVehicle(VehicleEditDTO dto) { String normalizedVehicleCode = trimToNull(dto.getVehicleCode()); String normalizedVin = normalizeVin(dto.getVehicleVin()); @@ -475,7 +475,8 @@ } @Override @Transactional(rollbackFor = Exception.class) @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void improveInfo(VehicleImproveInfoDTO dto) { // 校验已填写的时间字段是否在有效范围内 validateTimeFields(dto); @@ -657,7 +658,6 @@ } @Override @Transactional(rollbackFor = Exception.class) public void batchOperation(String idStr) { if (StringUtils.isBlank(idStr)) { return; @@ -750,7 +750,6 @@ } @Override @Transactional(rollbackFor = Exception.class) public void batchStock(String idStr) { if (StringUtils.isBlank(idStr)) { return; @@ -764,7 +763,6 @@ } @Override @Transactional(rollbackFor = Exception.class) public void batchSetElectronic(List<Long> ids, Long electronicId) { if (CollectionUtils.isEmpty(ids)) { return; @@ -835,7 +833,6 @@ } @Override @Transactional(rollbackFor = Exception.class) public void importVehicles(List<XpVehicleImportExcel> importList) { if (CollectionUtils.isEmpty(importList)) { return; xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/task/VehicleDocumentExpiryTask.java
@@ -27,7 +27,6 @@ private final IXpVehicleService xpVehicleService; @Scheduled(cron = "0 0 1 * * ?", zone = "GMT+8") @Transactional(rollbackFor = Exception.class) public void checkAndStockExpiredVehicles() { LocalDate today = LocalDate.now(ZONE_GMT8); LocalDateTime todayStart = today.atStartOfDay();