From 17e0e58e4c6f1f436a50efa424853e1271fb2f96 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期三, 04 二月 2026 15:43:54 +0800
Subject: [PATCH] fix(management):分公司车辆服务模式跟随分公司

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java |   46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
index d452c95..1d19b6f 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
@@ -77,6 +77,12 @@
 
 	@Autowired
 	private ITDriverServiceService tDriverServiceService;
+
+	@Autowired
+	private ITCarService tCarService;
+
+	@Autowired
+	private ITCarServiceService tCarServiceService;
 	
 	@Value("${pushMinistryOfTransport}")
 	private boolean pushMinistryOfTransport;
@@ -799,7 +805,10 @@
 		// 4. 删除分公司直属司机的对应经营业务记录
 		deleteDriverServices(companyId, null, cancelledServiceTypes);
 
-		// 5. 删除加盟商司机的对应经营业务记录
+		// 5. 删除分公司直属车辆的对应经营业务记录
+		deleteCarServices(companyId, null, cancelledServiceTypes);
+
+		// 6. 删除加盟商司机和车辆的对应经营业务记录
 		List<Integer> franchiseeIds = franchiseeList.stream()
 			.map(TCompany::getId)
 			.collect(Collectors.toList());
@@ -807,6 +816,7 @@
 		if (!franchiseeIds.isEmpty()) {
 			for (Integer franchiseeId : franchiseeIds) {
 				deleteDriverServices(null, franchiseeId, cancelledServiceTypes);
+				deleteCarServices(null, franchiseeId, cancelledServiceTypes);
 			}
 		}
 	}
@@ -900,4 +910,38 @@
 		}
 	}
 
+	/**
+	 * 删除车辆的经营业务记录
+	 * @param companyId 分公司ID(查询直属车辆时使用)
+	 * @param franchiseeId 加盟商ID(查询加盟商车辆时使用)
+	 * @param serviceTypes 要删除的业务类型列表
+	 */
+	private void deleteCarServices(Integer companyId, Integer franchiseeId, List<Integer> serviceTypes) {
+		Wrapper<TCar> wrapper = new EntityWrapper<TCar>().ne("state", 2);
+
+		if (companyId != null) {
+			// 查询分公司直属车辆(companyId匹配且franchiseeId为空或0)
+			wrapper.eq("companyId", companyId)
+				.andNew()
+				.isNull("franchiseeId")
+				.or()
+				.eq("franchiseeId", 0);
+		} else if (franchiseeId != null) {
+			// 查询加盟商车辆
+			wrapper.eq("franchiseeId", franchiseeId);
+		} else {
+			return;
+		}
+
+		List<TCar> cars = tCarService.selectList(wrapper);
+
+		for (TCar car : cars) {
+			tCarServiceService.delete(
+				new EntityWrapper<TCarService>()
+					.eq("carId", car.getId())
+					.in("type", serviceTypes)
+			);
+		}
+	}
+
 }

--
Gitblit v1.7.1