From 2b013feaf12dbe92203f3746659c1f12bfd0828c Mon Sep 17 00:00:00 2001 From: danyz Date: Sat, 23 Aug 2025 01:30:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0CurrentEmployeeInitia?= =?UTF-8?q?ledEvent=E5=B9=B6=E9=87=8D=E6=9E=84=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加CurrentEmployeeInitialedEvent事件类,用于在员工初始化完成后发布事件 重构HomeWindowController中的初始化逻辑,使用事件监听方式处理管理员任务调度 更新Unit类实现IdentityEntity和NamedEntity接口 移除SysConf类中多余的注释 在.gitignore中添加config.properties忽略规则 --- .gitignore | 2 + config.properties | 8 +- .../contract/manager/CurrentEmployee.java | 2 + .../CurrentEmployeeInitialedEvent.java | 19 +++++ .../controller/HomeWindowController.java | 74 ++++++++++--------- .../manager/ds/other/model/Inverntory.sql | 1 + .../manager/ds/other/model/SysConf.java | 1 - .../contract/manager/ds/other/model/Unit.java | 5 +- 8 files changed, 73 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/ecep/contract/manager/CurrentEmployeeInitialedEvent.java diff --git a/.gitignore b/.gitignore index 07e6956..77a833b 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,5 @@ build/ ### VS Code ### .vscode/ + +config.properties diff --git a/config.properties b/config.properties index a4340a9..aa74cb8 100644 --- a/config.properties +++ b/config.properties @@ -2,8 +2,8 @@ #Wed Mar 26 16:33:45 CST 2025 cloud.u8.enabled=true db.server.database=supplier_ms -db.server.host=db-server1.ecctrl.com -db.server.password=ecep.62335656 -db.server.port=3306 -db.server.username=ecep +#db.server.host=10.84.209.8 +#db.server.password=ecep.62335656 +#db.server.port=3306 +#db.server.username=ecep username_password.remember=true diff --git a/src/main/java/com/ecep/contract/manager/CurrentEmployee.java b/src/main/java/com/ecep/contract/manager/CurrentEmployee.java index c28ebdb..9085431 100644 --- a/src/main/java/com/ecep/contract/manager/CurrentEmployee.java +++ b/src/main/java/com/ecep/contract/manager/CurrentEmployee.java @@ -69,6 +69,8 @@ public class CurrentEmployee extends EmployeeViewModel { Platform.runLater(() -> { update(employee); rolesProperty().setAll(roles); + // 发布事件 + SpringApp.context.publishEvent(new CurrentEmployeeInitialedEvent(this)); future.complete(null); }); }); diff --git a/src/main/java/com/ecep/contract/manager/CurrentEmployeeInitialedEvent.java b/src/main/java/com/ecep/contract/manager/CurrentEmployeeInitialedEvent.java new file mode 100644 index 0000000..f19b224 --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/CurrentEmployeeInitialedEvent.java @@ -0,0 +1,19 @@ +package com.ecep.contract.manager; + +import lombok.Getter; +import org.springframework.context.ApplicationEvent; + +@Getter +public class CurrentEmployeeInitialedEvent extends ApplicationEvent { + private final CurrentEmployee employee; + + public CurrentEmployeeInitialedEvent(CurrentEmployee employee) { + super(employee); + this.employee = employee; + } + + @Override + public CurrentEmployee getSource() { + return employee; + } +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/HomeWindowController.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/HomeWindowController.java index 4a6460c..ce8a810 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/HomeWindowController.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/HomeWindowController.java @@ -1,5 +1,21 @@ package com.ecep.contract.manager.ds.other.controller; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; + +import org.controlsfx.control.TaskProgressView; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Scope; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +import com.ecep.contract.manager.CurrentEmployee; +import com.ecep.contract.manager.CurrentEmployeeInitialedEvent; import com.ecep.contract.manager.Desktop; import com.ecep.contract.manager.cloud.old.OldVersionService; import com.ecep.contract.manager.cloud.rk.CloudRkManagerWindowController; @@ -23,7 +39,7 @@ 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.FxmlUtils; -import javafx.application.Platform; + import javafx.concurrent.Task; import javafx.event.ActionEvent; import javafx.scene.Node; @@ -36,18 +52,6 @@ import javafx.scene.layout.VBox; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.WindowEvent; -import org.controlsfx.control.TaskProgressView; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeansException; -import org.springframework.context.annotation.Lazy; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; @Lazy @Scope("prototype") @@ -95,27 +99,31 @@ public class HomeWindowController extends BaseController { employeeStatusLabel.textProperty().bind(Desktop.instance.getActiveEmployee().getName()); - Desktop.instance.getActiveEmployee().initialize().thenRun(() -> { - if (Desktop.instance.getActiveEmployee().isSystemAdministrator()) { - if (logger.isInfoEnabled()) { - logger.info("You are administrator, try schedule sync tasks."); - } - Desktop.instance.getExecutorService().schedule(() -> { - try { - getBean(OldVersionService.class).scheduledTasks(taskProgressView); - } catch (BeansException ignored) { - } - try { - getBean(YongYouU8Service.class).scheduledTasks(taskProgressView); - } catch (BeansException ignored) { - } - try { - getBean(CloudRkService.class).scheduledTasks(taskProgressView); - } catch (BeansException ignored) { - } - }, 15, TimeUnit.SECONDS); + Desktop.instance.getActiveEmployee().initialize(); + } + + @EventListener + public void onCurrentEmployeeInitialed(CurrentEmployeeInitialedEvent event) { + CurrentEmployee currentEmployee = event.getEmployee(); + if (currentEmployee.isSystemAdministrator()) { + if (logger.isInfoEnabled()) { + logger.info("You are administrator, try schedule sync tasks."); } - }); + Desktop.instance.getExecutorService().schedule(() -> { + try { + getBean(OldVersionService.class).scheduledTasks(taskProgressView); + } catch (BeansException ignored) { + } + try { + getBean(YongYouU8Service.class).scheduledTasks(taskProgressView); + } catch (BeansException ignored) { + } + try { + getBean(CloudRkService.class).scheduledTasks(taskProgressView); + } catch (BeansException ignored) { + } + }, 15, TimeUnit.SECONDS); + } } @Override diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Inverntory.sql b/src/main/java/com/ecep/contract/manager/ds/other/model/Inverntory.sql index 88b1906..da9b889 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Inverntory.sql +++ b/src/main/java/com/ecep/contract/manager/ds/other/model/Inverntory.sql @@ -12,6 +12,7 @@ CREATE TABLE if not exists supplier_ms.INVENTORY CONSTRAINT pk_nverntory PRIMARY KEY (id) ); + select c1_0.ID, c1_0.AMOUNT, c1_0.CODE, diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/SysConf.java b/src/main/java/com/ecep/contract/manager/ds/other/model/SysConf.java index 6232db4..114ae6f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/SysConf.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/model/SysConf.java @@ -14,7 +14,6 @@ import java.time.Instant; @Setter @Entity @Table(name = "SYS_CONF", schema = "supplier_ms") -// @org.springframework.data.relational.core.mapping.Table("SYS_CONF") public class SysConf { @Id @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Unit.java b/src/main/java/com/ecep/contract/manager/ds/other/model/Unit.java index 3675cac..768c8da 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Unit.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/model/Unit.java @@ -5,11 +5,14 @@ import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; +/** + * 单位 + */ @Getter @Setter @jakarta.persistence.Entity @Table(name = "UNIT", schema = "supplier_ms") -public class Unit { +public class Unit implements IdentityEntity , NamedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false)