refactor: 将Desktop功能重构到DesktopUtils类中

重构Desktop类的浏览器和文件资源管理器功能到新的DesktopUtils工具类,提高代码可维护性
修改多处调用点使用新的工具类方法
更新数据库连接默认主机地址
为CurrentEmployee类添加@ToString注解
This commit is contained in:
danyz
2025-08-23 10:33:35 +08:00
parent 2b013feaf1
commit c6b3b35997
24 changed files with 152 additions and 127 deletions

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.company.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.cloud.u8.YongYouU8Service;
import com.ecep.contract.manager.ds.company.model.Company;
import com.ecep.contract.manager.ds.contract.controller.ContractGroupTableCell;
@@ -21,6 +20,7 @@ import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.util.ContractGroupStringConverter;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.SpecificationUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.collections.FXCollections;
@@ -236,7 +236,7 @@ public class CompanyTabSkinContract
}
try {
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
setStatus("打开文件/目录 " + path);
} catch (Exception e) {
setStatus("打开文件错误:" + e.getMessage());

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.company.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.MyProperties;
import com.ecep.contract.manager.cloud.tyc.CloudTycService;
import com.ecep.contract.manager.ds.company.CompanyFileType;
@@ -12,6 +11,7 @@ import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel;
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.application.Platform;
@@ -343,7 +343,7 @@ public class CompanyTabSkinFile
setStatus("文件不存在 " + file.getName());
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
}

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.company.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.cloud.rk.CloudRk;
import com.ecep.contract.manager.cloud.rk.CloudRkInfoViewModel;
import com.ecep.contract.manager.cloud.rk.CloudRkService;
@@ -19,6 +18,7 @@ import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.MessageHolder;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.util.DelayOnceExecutor;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.application.Platform;
@@ -376,7 +376,7 @@ public class CompanyTabSkinOther
Company company = getEntity();
url = String.format(CloudTycService.URL_COMPANY_SEARCH, company.getName());
}
Desktop.showInBrowse(url);
DesktopUtils.showInBrowse(url);
}
public void onTycCloudPaneHyperLinkInnerViewClickedAction(ActionEvent event) {

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.company.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.ds.company.model.Company;
import com.ecep.contract.manager.ds.company.service.CompanyFileService;
@@ -18,6 +17,7 @@ import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService;
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.AbstEntityController;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.beans.property.SimpleObjectProperty;
import javafx.event.ActionEvent;
@@ -307,7 +307,7 @@ public class CompanyWindowController
return;
}
}
Desktop.checkAndShowInExplorer(company.getPath(), this::setStatus);
DesktopUtils.checkAndShowInExplorer(company.getPath(), this::setStatus);
});
}

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.company.controller.old_name;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.MyProperties;
import com.ecep.contract.manager.ds.company.CompanyFileType;
import com.ecep.contract.manager.ds.company.model.CompanyFile;
@@ -11,6 +10,7 @@ import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel;
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.SpecificationUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.application.Platform;
@@ -318,7 +318,7 @@ public class CompanyOldNameTabSkinFile
setStatus("文件不存在 " + file.getName());
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
}

View File

@@ -8,6 +8,7 @@ import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
import com.ecep.contract.manager.ui.AbstEntityController;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.ViewModelService;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.event.ActionEvent;
import javafx.scene.control.*;
@@ -25,8 +26,6 @@ import org.springframework.util.StringUtils;
import java.io.File;
import java.util.concurrent.CompletableFuture;
import static com.ecep.contract.manager.Desktop.showInExplorer;
@Lazy
@Scope("prototype")
@Component
@@ -125,7 +124,7 @@ public class CompanyOldNameWindowController extends AbstEntityController<Company
}
}
File file = new File(companyOldName.getPath());
showInExplorer(file);
DesktopUtils.showInExplorer(file);
});
}
}

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.contract.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx;
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
@@ -18,6 +17,7 @@ import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.beans.binding.Bindings;
@@ -573,7 +573,7 @@ public class ContractTabSkinFiles
setStatus("文件不存在 " + file.getName());
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
public void onFileTableContextMenuShowing(WindowEvent windowEvent) {

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.contract.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
import com.ecep.contract.manager.ds.company.model.Company;
import com.ecep.contract.manager.ds.company.service.CompanyService;
@@ -12,6 +11,7 @@ import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
import com.ecep.contract.manager.ds.project.service.ProjectService;
import com.ecep.contract.manager.ui.AbstEntityController;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
@@ -184,7 +184,7 @@ public class ContractWindowController
setStatus("目录错误,不存在");
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
public void onContractOpenRelativeCompanyAction(ActionEvent event) {

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.customer.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.company.service.CompanyContactService;
import com.ecep.contract.manager.ds.company.service.CompanyService;
import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
@@ -9,6 +8,8 @@ import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
import com.ecep.contract.manager.ui.AbstEntityController;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.ViewModelService;
import com.ecep.contract.manager.util.DesktopUtils;
import javafx.event.ActionEvent;
import javafx.scene.control.*;
import javafx.scene.layout.BorderPane;
@@ -115,7 +116,7 @@ public class CompanyCustomerWindowController extends AbstEntityController<Compan
setStatus("目录错误,不存在");
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.customer.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
import com.ecep.contract.manager.ds.company.model.Company;
@@ -16,6 +15,7 @@ import com.ecep.contract.manager.ds.other.model.BaseEnumEntity;
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.Message;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import com.ecep.contract.manager.util.SpecificationUtils;
import com.ecep.contract.manager.util.UITools;
@@ -160,7 +160,7 @@ public class CustomerTabSkinFile
setStatus("文件不存在 " + file.getName());
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
private void moveFileToCustomer(List<File> files) {

View File

@@ -38,6 +38,7 @@ import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorManagerWindow
import com.ecep.contract.manager.ui.BaseController;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.task.TaskMonitorViewController;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.FxmlUtils;
import javafx.concurrent.Task;
@@ -173,7 +174,7 @@ public class HomeWindowController extends BaseController {
public void openInBrowse(ActionEvent event) {
MenuItem source = (MenuItem) event.getSource();
String url = (String) source.getUserData();
Desktop.showInBrowse(url);
DesktopUtils.showInBrowse(url);
}
public void openGroupRKResourceWindow(ActionEvent event) {

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.project.controller.bid;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.company.CompanyStringConverter;
import com.ecep.contract.manager.ds.company.model.Company;
import com.ecep.contract.manager.ds.company.service.CompanyService;
@@ -29,6 +28,7 @@ import com.ecep.contract.manager.ds.project.service.ProjectService;
import com.ecep.contract.manager.ds.project.vo.ProjectBidViewModel;
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.application.Platform;
@@ -204,7 +204,7 @@ public class ProjectBidTabSkinBase
controller.authorizationFileField.textProperty().bind(viewModel.getAuthorizationFile().map(File::getName));
controller.openAuthorizationFileBtn.setOnAction(event -> {
Desktop.showInExplorer(viewModel.getAuthorizationFile().get());
DesktopUtils.showInExplorer(viewModel.getAuthorizationFile().get());
});
controller.openAuthorizationFileBtn.disableProperty().bind(viewModel.getAuthorizationFile().isNull());
controller.changeAuthorizationFileBtn.setOnAction(this::onChangeAuthorizationFileAction);
@@ -212,7 +212,7 @@ public class ProjectBidTabSkinBase
controller.bidAcceptanceLetterFileField.textProperty()
.bind(viewModel.getBidAcceptanceLetterFile().map(File::getName));
controller.openBidAcceptanceLetterFileBtn.setOnAction(event -> {
Desktop.showInExplorer(viewModel.getBidAcceptanceLetterFile().get());
DesktopUtils.showInExplorer(viewModel.getBidAcceptanceLetterFile().get());
});
controller.openBidAcceptanceLetterFileBtn.disableProperty()
.bind(viewModel.getBidAcceptanceLetterFile().isNull());

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.project.controller.cost;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.contract.ContractFileType;
import com.ecep.contract.manager.ds.contract.model.Contract;
import com.ecep.contract.manager.ds.contract.model.ContractFile;
@@ -13,6 +12,7 @@ import com.ecep.contract.manager.ds.project.service.ProjectService;
import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel;
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.application.Platform;
@@ -68,7 +68,7 @@ public class ProjectCostTabSkinBase
@Override
public void initializeTab() {
controller.openFileBtn.setOnAction(event -> {
Desktop.showInExplorer(viewModel.getAuthorizationFile().get());
DesktopUtils.showInExplorer(viewModel.getAuthorizationFile().get());
});
controller.openFileBtn.disableProperty().bind(viewModel.getAuthorizationFile().isNull());
controller.changeFileBtn.setOnAction(this::onChangeAuthorizationFileAction);

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.project.controller.quotation;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.company.CompanyStringConverter;
import com.ecep.contract.manager.ds.company.model.Company;
import com.ecep.contract.manager.ds.company.service.CompanyService;
@@ -26,6 +25,7 @@ import com.ecep.contract.manager.ds.project.service.ProjectService;
import com.ecep.contract.manager.ds.project.vo.ProjectQuotationViewModel;
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.application.Platform;
@@ -101,7 +101,7 @@ public class ProjectQuotationTabSkinBase
@Override
public void initializeTab() {
controller.openFileBtn.setOnAction(event -> {
Desktop.showInExplorer(viewModel.getAuthorizationFile().get());
DesktopUtils.showInExplorer(viewModel.getAuthorizationFile().get());
});
controller.openFileBtn.disableProperty().bind(viewModel.getAuthorizationFile().isNull());
controller.changeFileBtn.setOnAction(this::onChangeAuthorizationFileAction);

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.vendor.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.company.service.CompanyContactService;
import com.ecep.contract.manager.ds.company.service.CompanyService;
import com.ecep.contract.manager.ds.vendor.model.CompanyVendor;
@@ -9,6 +8,8 @@ import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService;
import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel;
import com.ecep.contract.manager.ui.AbstEntityController;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.util.DesktopUtils;
import javafx.event.ActionEvent;
import javafx.scene.control.*;
import javafx.scene.layout.BorderPane;
@@ -106,7 +107,7 @@ public class CompanyVendorWindowController extends AbstEntityController<CompanyV
setStatus("目录错误,不存在");
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
}

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.vendor.controller;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.ds.company.model.Company;
import com.ecep.contract.manager.ds.other.model.BaseEnumEntity;
@@ -15,6 +14,7 @@ import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorFileViewModel;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.ViewModelService;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.application.Platform;
@@ -117,7 +117,7 @@ public class VendorTabSkinFile
setStatus("文件不存在 " + file.getName());
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
private void moveFileToCustomer(List<File> files) {

View File

@@ -1,6 +1,5 @@
package com.ecep.contract.manager.ds.vendor.controller.approved_list;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedFile;
import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList;
@@ -10,6 +9,7 @@ import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.SpecificationUtils;
import javafx.event.ActionEvent;
import javafx.scene.control.Tab;
@@ -101,7 +101,7 @@ public class CompanyVendorApprovedListTabSkinFiles
setStatus("文件不存在 " + file.getName());
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
}

View File

@@ -1,11 +1,11 @@
package com.ecep.contract.manager.ds.vendor.controller.approved_list;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList;
import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedListService;
import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel;
import com.ecep.contract.manager.ui.AbstEntityController;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.UITools;
import javafx.event.ActionEvent;
import javafx.scene.control.*;
@@ -86,7 +86,7 @@ public class CompanyVendorApprovedListWindowController
setStatus("目录错误,不存在");
return;
}
Desktop.showInExplorer(file);
DesktopUtils.showInExplorer(file);
}
public void onVendorApprovedListVerifyAction(ActionEvent event) {