From 07b344e51076a0307c1ac1be52d59436abb32fbf Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期五, 18 九月 2026 14:14:36 +0800
Subject: [PATCH] 添加了 从芯跃智联 api获取定位数据和电压

---
 src/modules/report/service/taskservice.ts |   52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 51 insertions(+), 1 deletions(-)

diff --git a/src/modules/report/service/taskservice.ts b/src/modules/report/service/taskservice.ts
index 4498ccb..0b9b7be 100644
--- a/src/modules/report/service/taskservice.ts
+++ b/src/modules/report/service/taskservice.ts
@@ -1,10 +1,11 @@
 import { Provide, Inject } from '@midwayjs/core';
 import { BaseService } from '@cool-midway/core';
 import { InjectEntityModel } from '@midwayjs/typeorm';
-import { Repository, In } from 'typeorm';
+import { Repository } from 'typeorm';
 import { ReportJoblogEntity } from '../entity/joblog';
 import { ExecutorSiteDeptDaily } from './ExecutorSiteDeptDaily'
 import { ExecutorVehicleDaily } from './ExecutorVehicleDaily'
+import { ExecutorXinYueVehicleGps } from './ExecutorXinYueVehicleGps'
 
 /**
  *  瀹氭椂浠诲姟-姹囨�荤珯鐐�/鍚勪釜鍗曚綅鐨勫悇绫诲瀮鍦炬眹鎬绘暟鎹�
@@ -22,6 +23,9 @@
 
   @Inject()
   executorVehicleDaily: ExecutorVehicleDaily;
+
+  @Inject()
+  executorXinYueVehicleGps: ExecutorXinYueVehicleGps;
 
 
 
@@ -44,6 +48,18 @@
 
 
     return '浠诲姟鎵ц:ReportTaskService';
+  }
+
+  /**
+   * 鑺穬涓夎疆杞﹀畾浣嶏細瀹氭椂鎷夊彇浣嶇疆鍜岀數鍘�
+   * 鍚庡彴浠诲姟绠$悊閰嶇疆锛歳eportTaskService.syncXinYueVehicleGps()
+   * 寤鸿 cron 涓嶅ぇ浜庣郴缁熷弬鏁� xinYue.syncIntervalSeconds锛堥粯璁�300绉掞級锛屼緥濡傛瘡鍒嗛挓锛�0 * * * * *
+   */
+  async syncXinYueVehicleGps() {
+    await this.ensureXinYueGpsJobInstance();
+    await this.executorXinYueVehicleGps.recoverStuckJobs();
+    await this.executorXinYueVehicleGps.execute();
+    return '浠诲姟鎵ц:鑺穬涓夎疆杞﹀畾浣嶅悓姝�';
   }
 
   /**
@@ -101,5 +117,39 @@
     }
   }
 
+  /**
+   * 鍒濆鍖栧綋澶╃殑鑺穬瀹氫綅鍚屾浠诲姟锛孲UCCESS 娲楀洖 INIT 浠ヤ究鎸夊懆鏈熼噸鎷�
+   */
+  private async ensureXinYueGpsJobInstance() {
+    const now = new Date();
+    const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`;
+    try {
+      await this.reportJoblogEntity.update(
+        { jobName: 'XY_VEHICLE_GPS' },
+        { jobName: 'XINYUE_VEHICLE_GPS' }
+      );
+    } catch (err) {
+      // 鏂版棫浠诲姟鍚嶅苟瀛樻椂蹇界暐鍞竴绱㈠紩鍐茬獊
+    }
+    try {
+      const exist = await this.reportJoblogEntity.findOneBy({
+        jobName: 'XINYUE_VEHICLE_GPS',
+        dataDate: todayStr,
+      });
+      if (!exist) {
+        const job = new ReportJoblogEntity();
+        job.jobName = 'XINYUE_VEHICLE_GPS';
+        job.dataDate = todayStr;
+        job.status = 'INIT';
+        await this.reportJoblogEntity.save(job);
+        return;
+      }
+      if (exist.status === 'SUCCESS') {
+        await this.reportJoblogEntity.update(exist.id, { status: 'INIT' });
+      }
+    } catch (err) {
+      // 骞跺彂鍐欏叆鏃跺彲鑳借Е鍙戝敮涓�绱㈠紩鍐茬獊锛岀洿鎺ュ拷鐣ュ嵆鍙�
+    }
+  }
 
 }
\ No newline at end of file

--
Gitblit v1.9.1