|
|
@@ -66,6 +66,7 @@ import org.apache.commons.collections4.MapUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.RoundingMode;
|
|
|
@@ -1502,11 +1503,27 @@ public class kwfTruckTraceService {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 生成车辆轨迹数据
|
|
|
+ * 生成车辆轨迹数据(异步执行)
|
|
|
* @param req 生成轨迹请求参数
|
|
|
*/
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Async("traceTaskExecutor")
|
|
|
public void generateTrace(GenerateTraceReq req) {
|
|
|
+ log.info("开始异步生成车辆轨迹,运单号:{}", req.getWayOrderNo());
|
|
|
+ try {
|
|
|
+ generateTraceInternal(req);
|
|
|
+ log.info("异步生成车辆轨迹完成,运单号:{}", req.getWayOrderNo());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("异步生成车辆轨迹失败,运单号:{},错误信息:{}", req.getWayOrderNo(), e.getMessage(), e);
|
|
|
+ // 异步方法中的异常需要记录,但不抛出(避免影响调用方)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成车辆轨迹数据(内部方法,包含事务)
|
|
|
+ * @param req 生成轨迹请求参数
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void generateTraceInternal(GenerateTraceReq req) {
|
|
|
log.info("生成车辆轨迹参数:{}", JSON.toJSONString(req));
|
|
|
LocalDate date = LocalDate.parse(req.getDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
LocalDateTime startDateTime = date.atStartOfDay();
|