From 708f980f0f351bfe47d7936151bf52ed4d4a7bc4 Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期六, 18 七月 2026 18:00:56 +0800
Subject: [PATCH] 业务表支持部门数据权限

---
 src/modules/push/controller/admin/vehiclegps.ts |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/modules/push/controller/admin/vehiclegps.ts b/src/modules/push/controller/admin/vehiclegps.ts
index f7d430f..3545e19 100644
--- a/src/modules/push/controller/admin/vehiclegps.ts
+++ b/src/modules/push/controller/admin/vehiclegps.ts
@@ -2,6 +2,8 @@
 import { CoolController, BaseController } from '@cool-midway/core';
 import { PushVehicleGpsEntity } from '../../entity/vehiclegps';
 import { PushVehicleGpsService } from '../../service/vehiclegps';
+import { BaseSysDepartmentEntity } from '../../../base/entity/sys/department'
+import { WithDeptFilterWhere } from '../../../base/middleware/with-dept-filter-where'
 
 /**
  * 杞﹁浇鐩戞帶GPS浣嶇疆鏁版嵁
@@ -13,16 +15,28 @@
   pageQueryOp: {
     keyWordLikeFields: ['a.sn', 'a.vehicleNo'],
     fieldEq: ['a.status'],
+    select: ['a.*', 'b.name AS departmentName'],
+    join: [
+      {
+        entity: BaseSysDepartmentEntity,
+        alias: 'b',
+        condition: 'a.departmentId = b.id',
+        type: 'leftJoin',
+      },
+    ],
     where: async (ctx) => {
       const { createDate, gpsTime } = ctx.request.body;
-      const condition = [];
+      const conditions: any[][] = [];
       if (createDate && createDate.length === 2) {
-        condition.push(['a.createDate BETWEEN :createStartDate AND :createEndDate', { createStartDate: createDate[0], createEndDate: createDate[1] }]);
+        conditions.push(['a.createDate BETWEEN :createStartDate AND :createEndDate', { createStartDate: createDate[0], createEndDate: createDate[1] }]);
       }
       if (gpsTime && gpsTime.length === 2) {
-        condition.push(['a.gpsTime BETWEEN :gpsStartDate AND :gpsEndDate', { gpsStartDate: gpsTime[0], gpsEndDate: gpsTime[1] }]);
+        conditions.push(['a.gpsTime BETWEEN :gpsStartDate AND :gpsEndDate', { gpsStartDate: gpsTime[0], gpsEndDate: gpsTime[1] }]);
       }
-      return condition;
+
+      conditions.push(...(await WithDeptFilterWhere(ctx, { alias: 'a', field: 'departmentId' })));
+
+      return conditions;
     }
   }
 })

--
Gitblit v1.9.1