From 14f96ba18b58cda204d10608c1abfe9a1d78a495 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期三, 10 六月 2026 20:21:31 +0800
Subject: [PATCH] bug fix
---
ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java | 74 ++++++++++++++++++++++++++-----------
1 files changed, 52 insertions(+), 22 deletions(-)
diff --git a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
index 427221b..5b4b29e 100644
--- a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
+++ b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
@@ -72,7 +72,13 @@
private ITDriverServiceService tDriverServiceService;
@Autowired
- private IDriverWorkService driverWorkService;
+ private ITOrderPrivateCarService orderPrivateCarService;
+
+ @Autowired
+ private ITOrderTaxiService orderTaxiService;
+
+ @Autowired
+ private ITOrderCrossCityService orderCrossCityService;
@Autowired
private ITCarService tCarService;
@@ -774,7 +780,7 @@
return false;
}
- private String validateCancelledServiceDriverUsage(TCompany oldCompany, TCompany newCompany, boolean includeFranchisee) {
+ private String validateCancelledServiceDriverUsage(TCompany oldCompany, TCompany newCompany, boolean includeSubCompanies) {
if (oldCompany == null || newCompany == null) {
return null;
}
@@ -782,12 +788,12 @@
if (cancelledTypes.isEmpty()) {
return null;
}
- List<Integer> driverIds = getCompanyDriverIds(oldCompany.getId(), includeFranchisee);
+ List<Integer> driverIds = getCompanyDriverIds(oldCompany.getId(), includeSubCompanies);
if (driverIds.isEmpty()) {
return null;
}
for (Integer cancelledType : cancelledTypes) {
- if (hasDriverWorkingService(driverIds, cancelledType)) {
+ if (hasDriverUnfinishedOrder(driverIds, cancelledType)) {
return "当前公司内存在司机正在使用" + getServiceName(cancelledType) + "业务,无法变动";
}
}
@@ -808,22 +814,31 @@
return cancelledTypes;
}
- private List<Integer> getCompanyDriverIds(Integer companyId, boolean includeFranchisee) {
+ private List<Integer> getCompanyDriverIds(Integer companyId, boolean includeSubCompanies) {
List<Integer> driverIds = new ArrayList<>();
- List<TDriver> companyDrivers = tDriverService.selectList(new EntityWrapper<TDriver>().ne("flag", "3").eq("companyId", companyId));
- addDriverIds(driverIds, companyDrivers);
- if (!includeFranchisee) {
- List<TDriver> franchiseeDrivers = tDriverService.selectList(new EntityWrapper<TDriver>().ne("flag", "3").eq("franchiseeId", companyId));
- addDriverIds(driverIds, franchiseeDrivers);
- }
- if (includeFranchisee) {
- List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("superiorId", companyId).eq("type", 3).ne("flag", "3"));
- for (TCompany franchisee : franchiseeList) {
- List<TDriver> franchiseeDrivers = tDriverService.selectList(new EntityWrapper<TDriver>().ne("flag", "3").eq("franchiseeId", franchisee.getId()));
- addDriverIds(driverIds, franchiseeDrivers);
- }
+ List<Integer> companyIds = new ArrayList<>();
+ addCompanyAndSubCompanyIds(companyIds, companyId, includeSubCompanies);
+ for (Integer id : companyIds) {
+ addDriverIds(driverIds, tDriverService.selectList(new EntityWrapper<TDriver>().ne("flag", "3").eq("companyId", id)));
+ addDriverIds(driverIds, tDriverService.selectList(new EntityWrapper<TDriver>().ne("flag", "3").eq("franchiseeId", id)));
}
return driverIds;
+ }
+
+ private void addCompanyAndSubCompanyIds(List<Integer> companyIds, Integer companyId, boolean includeSubCompanies) {
+ if (companyId == null || companyIds.contains(companyId)) {
+ return;
+ }
+ companyIds.add(companyId);
+ if (!includeSubCompanies) {
+ return;
+ }
+ List<TCompany> childCompanies = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("superiorId", companyId).ne("flag", "3"));
+ for (TCompany childCompany : childCompanies) {
+ if (childCompany != null) {
+ addCompanyAndSubCompanyIds(companyIds, childCompany.getId(), true);
+ }
+ }
}
private void addDriverIds(List<Integer> driverIds, List<TDriver> drivers) {
@@ -837,14 +852,29 @@
}
}
- private boolean hasDriverWorkingService(List<Integer> driverIds, Integer serviceType) {
+ private boolean hasDriverUnfinishedOrder(List<Integer> driverIds, Integer serviceType) {
if (driverIds == null || driverIds.isEmpty() || serviceType == null) {
return false;
}
- return driverWorkService.selectCount(new EntityWrapper<DriverWork>()
- .in("driverId", driverIds)
- .eq("state", 1)
- .like("type", String.valueOf(serviceType))) > 0;
+ if (Integer.valueOf(1).equals(serviceType)) {
+ return orderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>()
+ .eq("isDelete", 1)
+ .in("driverId", driverIds)
+ .notIn("state", 8, 9, 10, 12)) > 0;
+ }
+ if (Integer.valueOf(2).equals(serviceType)) {
+ return orderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>()
+ .eq("isDelete", 1)
+ .in("driverId", driverIds)
+ .notIn("state", 8, 9, 10, 12)) > 0;
+ }
+ if (Integer.valueOf(3).equals(serviceType)) {
+ return orderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>()
+ .eq("isDelete", 1)
+ .in("driverId", driverIds)
+ .notIn("state", 8, 9, 10, 12)) > 0;
+ }
+ return false;
}
private String getServiceName(Integer serviceType) {
--
Gitblit v1.7.1