From 375de610ef4d5e7f6f9059a9c6025cabbc06b515 Mon Sep 17 00:00:00 2001 From: songqq Date: Thu, 11 Sep 2025 00:06:22 +0800 Subject: [PATCH] =?UTF-8?q?refactor(client):=20=E9=87=8D=E6=9E=84=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E7=B1=BB=E7=BB=A7=E6=89=BF=E5=85=B3=E7=B3=BB=E5=B9=B6?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8QueryService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构所有服务类,使其继承自QueryService接口,统一数据查询逻辑。同时为服务类添加@Service注解,确保Spring容器管理。更新相关FXML文件的控制器路径,从manager.ds调整为controller目录结构。调整pom.xml版本号至0.0.84-SNAPSHOT。新增MessageNotitfication和SimpleMessage消息类,提供基础消息结构支持。 --- .trae/rules/project_rules.md | 14 +- client/pom.xml | 12 +- .../main/java/com/ecep/contract/Desktop.java | 7 +- .../com/ecep/contract/WebSocketService.java | 278 +++++++++++++ .../controller/HomeWindowController.java | 97 +---- .../controller/OkHttpLoginController.java | 6 +- .../controller/YongYouU8ManagerSkin.java | 14 +- .../ecep/contract/service/BankService.java | 9 +- .../ecep/contract/service/CloudRkService.java | 5 +- .../contract/service/CloudTycService.java | 38 +- .../service/CompanyBankAccountService.java | 5 +- .../service/CompanyBlackReasonService.java | 5 +- .../service/CompanyContactService.java | 5 +- .../service/CompanyCustomerEntityService.java | 4 +- .../service/CompanyCustomerFileService.java | 5 +- .../service/CompanyCustomerService.java | 9 +- .../service/CompanyExtendInfoService.java | 5 +- .../contract/service/CompanyFileService.java | 5 +- .../service/CompanyOldNameService.java | 5 +- .../ecep/contract/service/CompanyService.java | 18 +- .../CompanyVendorApprovedFileService.java | 6 +- .../CompanyVendorApprovedItemService.java | 6 +- .../CompanyVendorApprovedListService.java | 5 +- .../service/CompanyVendorEntityService.java | 5 +- .../service/CompanyVendorFileService.java | 5 +- .../service/CompanyVendorService.java | 5 +- .../service/ContractBidVendorService.java | 5 +- .../contract/service/ContractFileService.java | 5 +- .../service/ContractGroupService.java | 5 +- .../contract/service/ContractItemService.java | 2 +- .../contract/service/ContractKindService.java | 5 +- .../service/ContractPayPlanService.java | 5 +- .../contract/service/ContractService.java | 9 +- .../contract/service/ContractTypeService.java | 9 +- .../CustomerSatisfactionSurveyService.java | 6 +- .../service/DeliverySignMethodService.java | 5 +- .../contract/service/DepartmentService.java | 10 +- .../service/EmployeeAuthBindService.java | 4 +- .../service/EmployeeLoginHistoryService.java | 5 +- .../contract/service/EmployeeRoleService.java | 5 +- .../contract/service/EmployeeService.java | 11 +- .../service/ExtendVendorInfoService.java | 11 +- .../contract/service/FunctionService.java | 5 +- .../service/InventoryCatalogService.java | 9 +- .../service/InventoryHistoryPriceService.java | 7 +- .../contract/service/InventoryService.java | 10 +- .../ecep/contract/service/InvoiceService.java | 5 +- .../contract/service/PermissionService.java | 5 +- .../contract/service/ProductTypeService.java | 5 +- .../contract/service/ProductUsageService.java | 5 +- .../contract/service/ProjectBidService.java | 5 +- .../service/ProjectCostItemService.java | 5 +- .../contract/service/ProjectCostService.java | 5 +- .../service/ProjectFundPlanService.java | 5 +- .../service/ProjectIndustryService.java | 5 +- .../service/ProjectQuotationService.java | 5 +- ...ProjectSaleTypeRequireFileTypeService.java | 21 +- .../service/ProjectSaleTypeService.java | 5 +- .../ecep/contract/service/ProjectService.java | 9 +- .../contract/service/ProjectTypeService.java | 5 +- .../PurchaseBillVoucherItemService.java | 5 +- .../service/PurchaseBillVoucherService.java | 5 +- .../service/PurchaseOrderItemService.java | 5 +- .../service/PurchaseOrdersService.java | 5 +- .../ecep/contract/service/QueryService.java | 156 ++++++++ .../contract/service/SaleOrdersService.java | 5 +- .../contract/service/SaleTypeService.java | 5 +- .../service/SalesBillVoucherService.java | 5 +- .../service/SalesOrderItemService.java | 5 +- .../ecep/contract/service/SysConfService.java | 2 + .../VendorGroupRequireFileTypeService.java | 7 +- .../contract/service/VendorGroupService.java | 5 +- .../contract/service/ViewModelService.java | 27 +- .../contract/service/YongYouU8Service.java | 5 +- .../main/resources/ui/cloud/u8_manager.fxml | 3 +- .../resources/ui/company/bank-account.fxml | 2 +- .../resources/ui/company/company-manager.fxml | 2 +- .../ui/company/company-tab-bank-account.fxml | 2 +- .../ui/company/company-tab-black-list.fxml | 2 +- .../ui/company/company-tab-contact.fxml | 2 +- .../ui/company/company-tab-contract.fxml | 2 +- .../ui/company/company-tab-file.fxml | 2 +- .../ui/company/company-tab-invoice.fxml | 2 +- .../ui/company/company-tab-oldname.fxml | 2 +- .../ui/company/company-tab-other.fxml | 2 +- .../main/resources/ui/company/company.fxml | 2 +- .../ui/company/vendor/vendor_manager.fxml | 2 +- .../ui/contract/contract-manager.fxml | 2 +- .../ui/contract/contract-tab-bid.fxml | 2 +- .../contract-tab-ext-vendor-info.fxml | 2 +- .../ui/contract/contract-tab-file.fxml | 2 +- .../ui/contract/contract-tab-item-v2.fxml | 2 +- .../ui/contract/contract-tab-item.fxml | 2 +- .../ui/contract/contract-tab-pay-plan.fxml | 2 +- .../contract-tab-purchase-orders.fxml | 2 +- .../ui/contract/contract-tab-sale-orders.fxml | 2 +- .../contract/contract-tab-sub-contract.fxml | 2 +- .../ui/contract/contract-verify.fxml | 2 +- .../main/resources/ui/contract/contract.fxml | 2 +- .../purchase-bill-voucher-tab-item.fxml | 2 +- .../ui/contract/purchase-bill-voucher.fxml | 2 +- .../purchase-orders-tab-bill-voucher.fxml | 2 +- .../ui/contract/purchase-orders-tab-item.fxml | 2 +- .../ui/contract/purchase-orders.fxml | 2 +- .../sale-orders-tab-bill-voucher.fxml | 2 +- .../ui/contract/sale-orders-tab-item.fxml | 2 +- .../resources/ui/contract/sale-orders.fxml | 2 +- .../resources/ui/contract/vendor-bid.fxml | 2 +- .../ui/employee/department-manager.fxml | 2 +- .../ui/employee/employee-auth-bind.fxml | 2 +- .../ui/employee/employee-login-history.fxml | 2 +- .../ui/employee/employee-manager.fxml | 2 +- .../main/resources/ui/employee/employee.fxml | 2 +- .../ui/employee/function-tab-permission.fxml | 2 +- .../main/resources/ui/employee/function.fxml | 2 +- .../ui/employee/functions-manager.fxml | 2 +- .../src/main/resources/ui/employee/role.fxml | 2 +- .../resources/ui/employee/roles-manager.fxml | 2 +- client/src/main/resources/ui/home.fxml | 5 +- .../ui/project/apply-new-project.fxml | 2 +- .../project/customer-satisfaction-survey.fxml | 2 +- .../ui/project/product-type-manager.fxml | 2 +- .../ui/project/product-usage-manager.fxml | 2 +- .../resources/ui/project/project-bid.fxml | 2 +- .../ui/project/project-cost-tab-item.fxml | 2 +- .../resources/ui/project/project-cost.fxml | 2 +- .../resources/ui/project/project-manager.fxml | 2 +- .../ui/project/project-quotation.fxml | 2 +- .../resources/ui/project/project-tab-bid.fxml | 2 +- .../ui/project/project-tab-contract.fxml | 2 +- .../ui/project/project-tab-cost.fxml | 2 +- ...ject-tab-customer-satisfaction-survey.fxml | 2 +- .../ui/project/project-tab-customer.fxml | 2 +- .../ui/project/project-tab-fund-plan.fxml | 2 +- .../ui/project/project-tab-quotation.fxml | 2 +- .../ui/project/project-type-manager.fxml | 2 +- .../main/resources/ui/project/project.fxml | 2 +- .../ui/project/sale-type-manager.fxml | 2 +- .../main/resources/ui/project/sale-type.fxml | 357 +++++++++-------- .../ui/project/used-industry-manager.fxml | 2 +- .../resources/ui/task/TaskMonitorView.fxml | 2 +- common/pom.xml | 4 +- .../com/ecep/contract/msg/SimpleMessage.java | 26 ++ config.properties | 3 + docs/tmp.json | 256 ++++++++++++ pom.xml | 2 +- server/pom.xml | 6 +- .../java/com/ecep/contract/QueryService.java | 10 + .../java/com/ecep/contract/SpringApp.java | 37 +- .../api/controller/BeanApiController.java | 17 + .../api/controller/LoginApiController.java | 35 +- .../contract/cloud/u8/ContractSyncTask.java | 55 ++- .../contract/cloud/u8/YongYouU8Service.java | 15 +- .../ecep/contract/config/SecurityConfig.java | 4 +- .../ecep/contract/config/WebSocketConfig.java | 37 ++ .../controller/WebSocketController.java | 82 ++++ .../ds/company/service/CompanyService.java | 10 +- .../EmployeeLoginHistoryRepository.java | 12 +- .../other/repository/EmployeeRepository.java | 7 - .../ds/other/service/EmployeeService.java | 5 - .../handler/MessageNotitfication.java | 9 + .../contract/handler/WebSocketHandler.java | 370 ++++++++++++++++++ .../contract/service/WebSocketService.java | 125 ++++++ 163 files changed, 2085 insertions(+), 578 deletions(-) create mode 100644 client/src/main/java/com/ecep/contract/WebSocketService.java create mode 100644 client/src/main/java/com/ecep/contract/service/QueryService.java create mode 100644 common/src/main/java/com/ecep/contract/msg/SimpleMessage.java create mode 100644 docs/tmp.json create mode 100644 server/src/main/java/com/ecep/contract/QueryService.java create mode 100644 server/src/main/java/com/ecep/contract/api/controller/BeanApiController.java create mode 100644 server/src/main/java/com/ecep/contract/config/WebSocketConfig.java create mode 100644 server/src/main/java/com/ecep/contract/controller/WebSocketController.java create mode 100644 server/src/main/java/com/ecep/contract/handler/MessageNotitfication.java create mode 100644 server/src/main/java/com/ecep/contract/handler/WebSocketHandler.java create mode 100644 server/src/main/java/com/ecep/contract/service/WebSocketService.java diff --git a/.trae/rules/project_rules.md b/.trae/rules/project_rules.md index efcec4a..4a81c3e 100644 --- a/.trae/rules/project_rules.md +++ b/.trae/rules/project_rules.md @@ -1,12 +1,22 @@ +# server 模块 Java 21 Spring Boot 3.3.7 Spring Data JPA 3.3.7 -JavaFX 21 -ControlsFX 11.1.2 MySQL 8.0.33 Lombok 1.18.32 POI 5.2.5 PDFBox 3.0.1 +Redis + +# client 模块 +Java 21 +JavaFX 21 +ControlsFX 11.1.2 +Lombok 1.18.32 +caffeine 3.1.8 +.fxml 界面UI, /client/src/main/resources/ui/ 目录下 +websocket 与 server 模块通信 + ignore: - .idea diff --git a/client/pom.xml b/client/pom.xml index e5acc9b..de2a1e4 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -6,12 +6,12 @@ com.ecep.contract Contract-Manager - 0.0.80-SNAPSHOT + 0.0.84-SNAPSHOT com.ecep.contract client - 0.0.80-SNAPSHOT + 0.0.84-SNAPSHOT ${java.version} @@ -22,7 +22,7 @@ com.ecep.contract common - 0.0.80-SNAPSHOT + 0.0.84-SNAPSHOT org.springframework.boot @@ -73,12 +73,6 @@ okhttp 4.12.0 - - - com.squareup.okhttp3 - okhttp-ws - 3.4.2 - diff --git a/client/src/main/java/com/ecep/contract/Desktop.java b/client/src/main/java/com/ecep/contract/Desktop.java index 15ce1a5..b8c7ced 100644 --- a/client/src/main/java/com/ecep/contract/Desktop.java +++ b/client/src/main/java/com/ecep/contract/Desktop.java @@ -37,10 +37,12 @@ import javafx.scene.text.Text; import javafx.stage.Stage; import javafx.stage.StageStyle; import lombok.Getter; +import lombok.Setter; import okhttp3.Cookie; import okhttp3.CookieJar; import okhttp3.HttpUrl; import okhttp3.OkHttpClient; +import okhttp3.WebSocket; /** * JavaFx 应用程序 @@ -74,7 +76,6 @@ public class Desktop extends Application { @Getter private OkHttpClient httpClient; - public void setActiveEmployeeId(int activeEmployeeId) { activeEmployee.getId().set(activeEmployeeId); } @@ -174,7 +175,7 @@ public class Desktop extends Application { Properties properties = new Properties(); File configFile = new File("config.properties"); if (configFile.exists()) { - holder.debug("读取配置文件 " + configFile.getName() + "..."); + holder.info("读取配置文件 " + configFile.getAbsolutePath() + "..."); try (FileInputStream input = new FileInputStream(configFile)) { properties.load(input); holder.info("配置文件读取成功."); @@ -183,6 +184,8 @@ public class Desktop extends Application { logger.error(e.getMessage(), e); return; } + } else { + logger.warn("配置文件{}不存在", configFile.getAbsolutePath()); } runAsync(() -> { diff --git a/client/src/main/java/com/ecep/contract/WebSocketService.java b/client/src/main/java/com/ecep/contract/WebSocketService.java new file mode 100644 index 0000000..2bb6391 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/WebSocketService.java @@ -0,0 +1,278 @@ +package com.ecep.contract; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.ecep.contract.msg.SimpleMessage; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +import javafx.application.Platform; +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.StringProperty; +import lombok.Getter; +import lombok.Setter; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.WebSocket; +import okhttp3.WebSocketListener; +import okio.ByteString; + +/** + * WebSocket消息服务 + * 提供向服务器端发送WebSocket消息的功能 + */ +@Service +public class WebSocketService { + private static final Logger logger = LoggerFactory.getLogger(WebSocketService.class); + @Getter + @Setter + private WebSocket webSocket; + @Autowired + private ObjectMapper objectMapper; + private static final int RECONNECT_DELAY_MS = 5000; // 重连延迟时间(毫秒) + private static final int HEARTBEAT_INTERVAL_MS = 30000; // 心跳间隔时间(毫秒) + private String webSocketUrl = "ws://localhost:8080/ws"; + private boolean isActive = false; // 标记连接是否活跃 + private ScheduledFuture heartbeatTask; // 心跳任务 + private ScheduledFuture reconnectFuture; // 修改类型为CompletableFuture + private SimpleBooleanProperty online = new SimpleBooleanProperty(false); + private SimpleStringProperty message = new SimpleStringProperty(""); + + // 存储所有活跃的WebSocket会话 + private final Map> callbacks = Collections.synchronizedMap(new HashMap<>()); + + WebSocketListener listener = new WebSocketListener() { + @Override + public void onOpen(WebSocket webSocket, Response response) { + Platform.runLater(() -> { + online.setValue(true); + message.setValue("已连接"); + }); + startHeartbeat(); // 启动心跳 + } + + @Override + public void onMessage(WebSocket webSocket, String text) { + // 处理收到的文本消息 + logger.debug("收到WebSocket消息: {}", text); + // 这里可以根据需要处理从服务器接收的数据 + if ("pong".equals(text)) { + // 收到pong响应,说明连接正常 + logger.debug("收到心跳响应"); + return; + } + + try { + JsonNode node = objectMapper.readTree(text); + if (node.has("messageId")) { + String messageId = node.get("messageId").asText(); + CompletableFuture future = callbacks.remove(messageId); + if (future != null) { + if (node.has("success")) { + if (!node.get("success").asBoolean()) { + future.completeExceptionally( + new RuntimeException("请求失败:" + node.get("message").asText())); + return; + } + } + // 使用具体类型后,这里不会再出现类型不匹配的错误 + if (node.has("data")) { + future.complete(node.get("data")); + } else { + future.complete(node); + } + } else { + logger.error("未找到对应的回调future: {}", messageId); + } + } + } catch (Exception e) { + logger.error("处理WebSocket消息失败: {}", e.getMessage(), e); + } + } + + @Override + public void onMessage(WebSocket webSocket, ByteString bytes) { + // 处理收到的二进制消息 + logger.debug("收到二进制WebSocket消息,长度: " + bytes.size()); + } + + @Override + public void onClosing(WebSocket webSocket, int code, String reason) { + logger.debug("WebSocket连接正在关闭: 代码=" + code + ", 原因=" + reason); + stopHeartbeat(); // 停止心跳 + } + + @Override + public void onClosed(WebSocket webSocket, int code, String reason) { + logger.debug("WebSocket连接已关闭: 代码=" + code + ", 原因=" + reason); + stopHeartbeat(); // 停止心跳 + // 处理重连逻辑 + scheduleReconnect(); + } + + @Override + public void onFailure(WebSocket webSocket, Throwable t, Response response) { + logger.error("WebSocket连接失败: " + t.getMessage()); + Platform.runLater(() -> { + online.setValue(false); + message.set("连接失败: " + t.getMessage()); + }); + stopHeartbeat(); // 停止心跳 + // 处理重连逻辑 + scheduleReconnect(); + } + }; + + public void send(String string) { + if (webSocket != null && webSocket.send(string)) { + logger.debug("send message success:{}", string); + } else if (webSocket == null) { + logger.warn("Failed to send message: WebSocket is not initialized"); + } + } + + public CompletableFuture send(SimpleMessage msg) { + CompletableFuture future = new CompletableFuture<>(); + try { + if (webSocket == null) { + throw new IllegalStateException("WebSocket is not initialized"); + } + + String json = objectMapper.writeValueAsString(msg); + if (webSocket.send(json)) { + logger.debug("send message success:{}", json); + callbacks.put(msg.getMessageId(), future); + } else { + future.completeExceptionally(new RuntimeException("Failed to send WebSocket message")); + } + } catch (Exception e) { + logger.error("Failed to send WebSocket message: {}", e.getMessage()); + future.completeExceptionally(e); + } + return future; + } + + public void initWebSocket() { + isActive = true; + OkHttpClient httpClient = Desktop.instance.getHttpClient(); + + try { + // 构建WebSocket请求,包含认证信息 + Request request = new Request.Builder() + .url(webSocketUrl) + .build(); + webSocket = httpClient.newWebSocket(request, listener); + } catch (Exception e) { + logger.error("建立WebSocket连接失败: " + e.getMessage()); + Platform.runLater(() -> { + online.setValue(false); + message.set("连接失败: " + e.getMessage()); + }); + // 处理重连逻辑 + scheduleReconnect(); + } + } + + /** + * 启动心跳任务,定期发送ping消息保持连接 + */ + private void startHeartbeat() { + // 先停止可能存在的心跳任务 + stopHeartbeat(); + ScheduledExecutorService executorService = Desktop.instance.getExecutorService(); + heartbeatTask = executorService.scheduleAtFixedRate(this::heartbeat, RECONNECT_DELAY_MS, HEARTBEAT_INTERVAL_MS, + TimeUnit.MILLISECONDS); + } + + void heartbeat() { + if (!isActive) { + return; + } + + try { + if (webSocket != null) { + logger.debug("发送心跳 ping"); + webSocket.send("ping"); + } + } catch (Exception e) { + logger.error("发送心跳失败: {}", e.getMessage()); + } + } + + /** + * 停止心跳任务 + */ + private void stopHeartbeat() { + if (heartbeatTask != null && !heartbeatTask.isCancelled()) { + heartbeatTask.cancel(true); + heartbeatTask = null; + } + } + + /** + * 安排重连任务 + */ + private void scheduleReconnect() { + if (!isActive) { + return; // 如果连接已被主动关闭,则不再重连 + } + + // 取消之前可能存在的重连任务 + if (reconnectFuture != null && !reconnectFuture.isDone()) { + reconnectFuture.cancel(true); + } + // 创建新的重连任务s + logger.info("计划在 {} 毫秒后尝试重连WebSocket", RECONNECT_DELAY_MS); + + reconnectFuture = Desktop.instance.getExecutorService().schedule(() -> { + if (isActive) { + logger.info("尝试重新连接WebSocket"); + Platform.runLater(() -> { + online.setValue(false); + message.set("正在重新连接WebSocket..."); + }); + initWebSocket(); + } + }, RECONNECT_DELAY_MS, TimeUnit.MILLISECONDS); + + } + + /** + * 关闭WebSocket连接 + */ + public void closeWebSocket() { + isActive = false; + stopHeartbeat(); + + if (reconnectFuture != null && !reconnectFuture.isDone()) { + reconnectFuture.cancel(false); + reconnectFuture = null; + } + if (webSocket != null) { + webSocket.close(1000, "主动关闭连接"); + webSocket = null; + } + } + + public StringProperty getMessageProperty() { + return message; + } + + public BooleanProperty getOnlineProperty() { + return online; + } +} diff --git a/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java b/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java index d8b5afa..1cbba53 100644 --- a/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java @@ -1,11 +1,13 @@ package com.ecep.contract.controller; +import java.time.LocalDateTime; 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.controlsfx.glyphfont.Glyph; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; @@ -16,6 +18,7 @@ import org.springframework.stereotype.Component; import com.ecep.contract.Desktop; import com.ecep.contract.DesktopUtils; +import com.ecep.contract.WebSocketService; import com.ecep.contract.controller.bank.BankManagerWindowController; import com.ecep.contract.controller.company.CompanyManagerWindowController; import com.ecep.contract.controller.contract.ContractManagerWindowController; @@ -34,7 +37,6 @@ import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.FxmlUtils; import com.ecep.contract.vm.CurrentEmployee; -import javafx.application.Platform; import javafx.concurrent.Task; import javafx.event.ActionEvent; import javafx.scene.Node; @@ -47,12 +49,6 @@ import javafx.scene.layout.VBox; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.WindowEvent; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import okhttp3.WebSocket; -import okhttp3.WebSocketListener; -import okio.ByteString; @Lazy @Scope("prototype") @@ -75,11 +71,10 @@ public class HomeWindowController extends BaseController { public Button openCustomManagerWindow; public TaskProgressView> taskProgressView; public Label taskMonitorLabel; + public Label webSocketMonitorLabel; + public Glyph webSocketMonitorIcon; public Label employeeStatusLabel; - private WebSocket webSocket; - private String webSocketUrl = "ws://localhost:8080/ws"; - public void initialize() { openCompanyManagerWindow.setOnAction(event -> showInOwner(CompanyManagerWindowController.class)); openProjectManagerWindow.setOnAction(event -> showInOwner(ProjectManagerWindowController.class)); @@ -105,7 +100,15 @@ public class HomeWindowController extends BaseController { employeeStatusLabel.textProperty().bind(Desktop.instance.getActiveEmployee().getName()); Desktop.instance.getTaskMonitorCenter().bindStatusLabel(taskMonitorLabel); Desktop.instance.getActiveEmployee().initialize(); - initWebSocket(); + + WebSocketService webSocketService = getBean(WebSocketService.class); + webSocketMonitorIcon.iconProperty() + .bind(webSocketService.getOnlineProperty().map(b -> b ? "CHAIN" : "CHAIN_BROKEN")); + webSocketMonitorLabel.textProperty().bind(webSocketService.getMessageProperty()); + webSocketMonitorLabel.setOnMouseClicked(event -> { + webSocketService.send("webSocketUrl - " + LocalDateTime.now().toString()); + }); + webSocketService.initWebSocket(); } @EventListener @@ -140,14 +143,6 @@ public class HomeWindowController extends BaseController { // scheduledExecutorService.shutdownNow(); } - @Override - public void onHidden(WindowEvent windowEvent) { - System.out.println("windowEvent = " + windowEvent); - super.onHidden(windowEvent); - - // Platform.exit(); - } - /** * 打开 配置 窗口 */ @@ -221,63 +216,11 @@ public class HomeWindowController extends BaseController { showInOwner(TaskMonitorViewController.class); } - private void initWebSocket() { - - OkHttpClient httpClient = Desktop.instance.getHttpClient(); - - try { - // 构建WebSocket请求,包含认证信息 - Request request = new Request.Builder() - .url(webSocketUrl) - .build(); - - webSocket = httpClient.newWebSocket(request, new WebSocketListener() { - @Override - public void onOpen(WebSocket webSocket, Response response) { - Platform.runLater(() -> { - setStatus("WebSocket连接已建立"); - // 登录成功后的处理 - System.out.println("WebSocket连接已建立"); - }); - } - - @Override - public void onMessage(WebSocket webSocket, String text) { - // 处理收到的文本消息 - logger.debug("收到WebSocket消息: " + text); - // 这里可以根据需要处理从服务器接收的数据 - } - - @Override - public void onMessage(WebSocket webSocket, ByteString bytes) { - // 处理收到的二进制消息 - logger.debug("收到二进制WebSocket消息,长度: " + bytes.size()); - } - - @Override - public void onClosing(WebSocket webSocket, int code, String reason) { - logger.debug("WebSocket连接正在关闭: 代码=" + code + ", 原因=" + reason); - } - - @Override - public void onClosed(WebSocket webSocket, int code, String reason) { - logger.debug("WebSocket连接已关闭: 代码=" + code + ", 原因=" + reason); - // 可以在这里处理重连逻辑 - } - - @Override - public void onFailure(WebSocket webSocket, Throwable t, Response response) { - logger.error("WebSocket连接失败: " + t.getMessage()); - Platform.runLater(() -> { - setStatus("WebSocket连接失败: " + t.getMessage()); - }); - } - }); - } catch (Exception e) { - logger.error("建立WebSocket连接失败: " + e.getMessage()); - Platform.runLater(() -> { - setStatus("建立WebSocket连接失败: " + e.getMessage()); - }); - } + @Override + public void onHidden(WindowEvent windowEvent) { + System.out.println("windowEvent = " + windowEvent); + WebSocketService webSocketService = getBean(WebSocketService.class); + webSocketService.closeWebSocket(); // 在窗口隐藏时关闭WebSocket连接 + super.onHidden(windowEvent); } } diff --git a/client/src/main/java/com/ecep/contract/controller/OkHttpLoginController.java b/client/src/main/java/com/ecep/contract/controller/OkHttpLoginController.java index 8121108..a997a23 100644 --- a/client/src/main/java/com/ecep/contract/controller/OkHttpLoginController.java +++ b/client/src/main/java/com/ecep/contract/controller/OkHttpLoginController.java @@ -254,6 +254,11 @@ public class OkHttpLoginController implements MessageHolder { CompletableFuture future = new CompletableFuture<>(); try { + while (!SpringApp.isRunning()) { + holder.info("环境准备中,请稍后..."); + Thread.sleep(1000); + } + ObjectMapper objectMapper = SpringApp.getBean(ObjectMapper.class); ObjectNode objectNode = objectMapper.createObjectNode(); objectNode.put("username", username); @@ -367,7 +372,6 @@ public class OkHttpLoginController implements MessageHolder { }); } - // WebSocket消息发送方法 public void sendMessage(String message) { if (webSocket != null) { diff --git a/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java index 17e6778..d6f25e4 100644 --- a/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java @@ -28,27 +28,17 @@ public class YongYouU8ManagerSkin extends AbstEntityManagerSkin implements ManagerSkin { - @Setter - private YongYouU8Service u8Service; - @Setter - private CompanyService companyService; public YongYouU8ManagerSkin(YongYouU8ManagerWindowController controller) { super(controller); } YongYouU8Service getU8Service() { - if (u8Service == null) { - u8Service = SpringApp.getBean(YongYouU8Service.class); - } - return u8Service; + return getBean(YongYouU8Service.class); } CompanyService getCompanyService() { - if (companyService == null) { - companyService = SpringApp.getBean(CompanyService.class); - } - return companyService; + return getBean(CompanyService.class); } @Override diff --git a/client/src/main/java/com/ecep/contract/service/BankService.java b/client/src/main/java/com/ecep/contract/service/BankService.java index 4ce2b94..83e671e 100644 --- a/client/src/main/java/com/ecep/contract/service/BankService.java +++ b/client/src/main/java/com/ecep/contract/service/BankService.java @@ -2,16 +2,15 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Bank; import com.ecep.contract.vm.BankViewModel; -public class BankService implements ViewModelService { +@Service +public class BankService extends QueryService { public Bank findByName(String name) { return null; } - public List search(String searchText) { - return null; - } - } diff --git a/client/src/main/java/com/ecep/contract/service/CloudRkService.java b/client/src/main/java/com/ecep/contract/service/CloudRkService.java index 8b69a58..fb0e23e 100644 --- a/client/src/main/java/com/ecep/contract/service/CloudRkService.java +++ b/client/src/main/java/com/ecep/contract/service/CloudRkService.java @@ -4,6 +4,7 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.controlsfx.control.TaskProgressView; +import org.springframework.stereotype.Service; import com.ecep.contract.Desktop; import com.ecep.contract.MessageHolder; @@ -17,7 +18,8 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import javafx.concurrent.Task; import lombok.Data; -public class CloudRkService implements ViewModelService { +@Service +public class CloudRkService extends QueryService { @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class EntInfo { @@ -27,6 +29,7 @@ public class CloudRkService implements ViewModelService { +@Service +public class CloudTycService extends QueryService { /** * 天眼查报告,文件名中必须包含 天眼查 字样 * @@ -58,36 +56,6 @@ public class CloudTycService implements ViewModelService findAll() { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'findAll'"); - } - - @Override - public Page findAll(Map params, Pageable pageable) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'findAll'"); - } - public CloudTyc getOrCreateCloudTyc(Company company) { throw new UnsupportedOperationException("Unimplemented method 'getOrCreateCloudTyc'"); } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java b/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java index 419cdae..6b899f4 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyBankAccount; import com.ecep.contract.vm.CompanyBankAccountViewModel; -public class CompanyBankAccountService implements ViewModelService { +@Service +public class CompanyBankAccountService extends QueryService { public List searchByCompany(Company company, String searchText) { throw new UnsupportedOperationException("未实现"); diff --git a/client/src/main/java/com/ecep/contract/service/CompanyBlackReasonService.java b/client/src/main/java/com/ecep/contract/service/CompanyBlackReasonService.java index f6381fc..34c7680 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyBlackReasonService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyBlackReasonService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.CompanyBlackReason; import com.ecep.contract.vm.CompanyBlackReasonViewModel; +@Service public class CompanyBlackReasonService - implements ViewModelService { + extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyContactService.java b/client/src/main/java/com/ecep/contract/service/CompanyContactService.java index 80fe853..39a2611 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyContactService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyContactService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyContact; import com.ecep.contract.vm.CompanyContactViewModel; -public class CompanyContactService implements ViewModelService { +@Service +public class CompanyContactService extends QueryService { public List searchByCompany(Company company, String userText) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java b/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java index 3ac5bce..a1443b1 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java @@ -5,12 +5,14 @@ import java.util.Map; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CompanyCustomerEntity; import com.ecep.contract.vm.CustomerEntityViewModel; -public class CompanyCustomerEntityService implements ViewModelService { +@Service +public class CompanyCustomerEntityService extends QueryService { public List findAllByCustomer(CompanyCustomer customer) { throw new UnsupportedOperationException(); } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java index 3eb0a35..13a799d 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import org.springframework.stereotype.Service; + import com.ecep.contract.CompanyCustomerFileType; import com.ecep.contract.MessageHolder; import com.ecep.contract.model.CompanyCustomer; @@ -14,7 +16,8 @@ import com.ecep.contract.model.CompanyCustomerFile; import com.ecep.contract.model.CompanyCustomerFileTypeLocal; import com.ecep.contract.vm.CompanyCustomerFileViewModel; -public class CompanyCustomerFileService implements ViewModelService { +@Service +public class CompanyCustomerFileService extends QueryService { public List findAllCustomerEvaluationFormFiles(CompanyCustomer customer) { throw new UnsupportedOperationException(); } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java b/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java index 75cc82a..4ce5ad8 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java @@ -1,14 +1,17 @@ package com.ecep.contract.service; +import java.io.File; + +import org.springframework.stereotype.Service; + import com.ecep.contract.MessageHolder; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CustomerCatalog; import com.ecep.contract.vm.CompanyCustomerViewModel; -import java.io.File; - -public class CompanyCustomerService implements ViewModelService { +@Service +public class CompanyCustomerService extends QueryService { public CompanyCustomer findByCompany(Company company) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/CompanyExtendInfoService.java b/client/src/main/java/com/ecep/contract/service/CompanyExtendInfoService.java index 40a73b7..162d5fa 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyExtendInfoService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyExtendInfoService.java @@ -1,10 +1,13 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyExtendInfo; import com.ecep.contract.vm.CompanyExtendInfoViewModel; -public class CompanyExtendInfoService implements ViewModelService { +@Service +public class CompanyExtendInfoService extends QueryService { public CompanyExtendInfo findByCompany(Company company) { throw new UnsupportedOperationException("Unimplemented method 'findByCompany'"); } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyFileService.java index b777be7..dff789c 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyFileService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyFileService.java @@ -5,6 +5,8 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; +import org.springframework.stereotype.Service; + import com.ecep.contract.CompanyFileType; import com.ecep.contract.MessageHolder; import com.ecep.contract.model.Company; @@ -14,7 +16,8 @@ import com.ecep.contract.vm.CompanyFileViewModel; import javafx.collections.ObservableList; -public class CompanyFileService implements ViewModelService { +@Service +public class CompanyFileService extends QueryService { public boolean reBuildingFiles(Company company, MessageHolder holder) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java b/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java index f82feff..03d8008 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java @@ -3,11 +3,14 @@ package com.ecep.contract.service; import java.time.LocalDate; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyOldName; import com.ecep.contract.vm.CompanyOldNameViewModel; -public class CompanyOldNameService implements ViewModelService { +@Service +public class CompanyOldNameService extends QueryService { public boolean makePathAbsent(CompanyOldName companyOldName) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/CompanyService.java b/client/src/main/java/com/ecep/contract/service/CompanyService.java index 87e5ebb..ff672f7 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyService.java @@ -4,22 +4,25 @@ import java.io.File; import java.time.LocalDate; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.MessageHolder; import com.ecep.contract.model.Company; import com.ecep.contract.vm.CompanyViewModel; -public class CompanyService implements ViewModelService { +@Service +public class CompanyService extends QueryService { + + @Override + public String getBeanName() { + return "companyService"; + } public Company findByName(String name) { // return companyRepository.findByName(name); throw new UnsupportedOperationException("Unimplemented method 'findByName'"); } - public List search(String name) { - // return companyRepository.findByName(name); - throw new UnsupportedOperationException("Unimplemented method 'search'"); - } - public List findAllByName(String name) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findAllByName'"); @@ -55,10 +58,9 @@ public class CompanyService implements ViewModelService { +@Service +public class CompanyVendorApprovedFileService + extends QueryService { public CompanyVendorApprovedFile findByName(CompanyVendorApprovedList approvedList, String name) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedItemService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedItemService.java index 479a583..e330b47 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedItemService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedItemService.java @@ -2,12 +2,16 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.CompanyVendorApprovedItem; import com.ecep.contract.model.CompanyVendorApprovedList; import com.ecep.contract.vm.CompanyVendorApprovedItemViewModel; -public class CompanyVendorApprovedItemService implements ViewModelService { +@Service +public class CompanyVendorApprovedItemService + extends QueryService { public List findAllByListAndVendor(CompanyVendorApprovedList approvedList, CompanyVendor vendor) { diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedListService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedListService.java index 53c4171..bd6c00c 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedListService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedListService.java @@ -1,11 +1,14 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.MessageHolder; import com.ecep.contract.model.CompanyVendorApprovedList; import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; +@Service public class CompanyVendorApprovedListService - implements ViewModelService { + extends QueryService { public boolean makePathAbsent(CompanyVendorApprovedList list) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorEntityService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorEntityService.java index af1669b..a8172e6 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyVendorEntityService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorEntityService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.CompanyVendorEntity; import com.ecep.contract.vm.CompanyVendorEntityViewModel; -public class CompanyVendorEntityService implements ViewModelService { +@Service +public class CompanyVendorEntityService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java index c7436f3..ed20d31 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java @@ -6,13 +6,16 @@ import java.util.Locale; import java.util.Map; import java.util.function.Consumer; +import org.springframework.stereotype.Service; + import com.ecep.contract.CompanyVendorFileType; import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.CompanyVendorFile; import com.ecep.contract.model.CompanyVendorFileTypeLocal; import com.ecep.contract.vm.CompanyVendorFileViewModel; -public class CompanyVendorFileService implements ViewModelService { +@Service +public class CompanyVendorFileService extends QueryService { public LocalDate getNextSignDate(CompanyVendor companyVendor, Consumer state) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java index de88643..ee45704 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java @@ -5,6 +5,8 @@ import java.util.Collection; import java.util.List; import java.util.Locale; +import org.springframework.stereotype.Service; + import com.ecep.contract.MessageHolder; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyVendor; @@ -13,7 +15,8 @@ import com.ecep.contract.model.VendorCatalog; import com.ecep.contract.model.VendorTypeLocal; import com.ecep.contract.vm.CompanyVendorViewModel; -public class CompanyVendorService implements ViewModelService { +@Service +public class CompanyVendorService extends QueryService { public VendorCatalog findCatalogById(Integer id) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java b/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java index bd6bd54..21aa5dd 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java @@ -2,12 +2,15 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Company; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractBidVendor; import com.ecep.contract.vm.ContractBidVendorViewModel; -public class ContractBidVendorService implements ViewModelService { +@Service +public class ContractBidVendorService extends QueryService { public List findByContract(Contract contract) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ContractFileService.java b/client/src/main/java/com/ecep/contract/service/ContractFileService.java index ed76b64..32d1adc 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractFileService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractFileService.java @@ -3,13 +3,16 @@ package com.ecep.contract.service; import java.util.List; import java.util.Map; +import org.springframework.stereotype.Service; + import com.ecep.contract.ContractFileType; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractFile; import com.ecep.contract.model.ContractFileTypeLocal; import com.ecep.contract.vm.ContractFileViewModel; -public class ContractFileService implements ViewModelService { +@Service +public class ContractFileService extends QueryService { public List findAllByContract(Contract contract) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ContractGroupService.java b/client/src/main/java/com/ecep/contract/service/ContractGroupService.java index e36a4f4..553f508 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractGroupService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractGroupService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ContractGroup; import com.ecep.contract.vm.ContractGroupViewModel; -public class ContractGroupService implements ViewModelService { +@Service +public class ContractGroupService extends QueryService { public ContractGroup findByCode(String groupCode) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ContractItemService.java b/client/src/main/java/com/ecep/contract/service/ContractItemService.java index 2cd1948..059780f 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractItemService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractItemService.java @@ -12,7 +12,7 @@ import com.ecep.contract.model.Inventory; import com.ecep.contract.vm.ContractItemViewModel; @Service -public class ContractItemService implements ViewModelService { +public class ContractItemService extends QueryService { @Override public ContractItem findById(Integer id) { diff --git a/client/src/main/java/com/ecep/contract/service/ContractKindService.java b/client/src/main/java/com/ecep/contract/service/ContractKindService.java index d3b2de2..402729d 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractKindService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractKindService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ContractKind; import com.ecep.contract.vm.ContractKindViewModel; -public class ContractKindService implements ViewModelService { +@Service +public class ContractKindService extends QueryService { public ContractKind findByName(String name) { throw new UnsupportedOperationException("Unimplemented method 'findByName'"); diff --git a/client/src/main/java/com/ecep/contract/service/ContractPayPlanService.java b/client/src/main/java/com/ecep/contract/service/ContractPayPlanService.java index 6cb621f..633c920 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractPayPlanService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractPayPlanService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractPayPlan; import com.ecep.contract.vm.ContractPayPlanViewModel; -public class ContractPayPlanService implements ViewModelService { +@Service +public class ContractPayPlanService extends QueryService { public List findAllByContract(Contract contract) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ContractService.java b/client/src/main/java/com/ecep/contract/service/ContractService.java index 02fb98c..68e6e9a 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractService.java @@ -4,6 +4,8 @@ import java.io.File; import java.time.LocalDate; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.MessageHolder; import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.Contract; @@ -12,7 +14,8 @@ import com.ecep.contract.model.ContractGroup; import com.ecep.contract.model.Project; import com.ecep.contract.vm.ContractViewModel; -public class ContractService implements ViewModelService { +@Service +public class ContractService extends QueryService { public boolean updateParentCode(Contract contract) { // TODO Auto-generated method stub @@ -28,10 +31,6 @@ public class ContractService implements ViewModelService search(String searchText) { - throw new UnsupportedOperationException("Unimplemented method 'search'"); - } - public Contract findByName(String name) { throw new UnsupportedOperationException("Unimplemented method 'findByName'"); } diff --git a/client/src/main/java/com/ecep/contract/service/ContractTypeService.java b/client/src/main/java/com/ecep/contract/service/ContractTypeService.java index d13fd45..6dddc8a 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractTypeService.java @@ -1,20 +1,17 @@ package com.ecep.contract.service; -import java.util.List; +import org.springframework.stereotype.Service; import com.ecep.contract.model.ContractType; import com.ecep.contract.vm.ContractTypeViewModel; -public class ContractTypeService implements ViewModelService { +@Service +public class ContractTypeService extends QueryService { public ContractType findByName(String name) { throw new UnsupportedOperationException("Unimplemented method 'findByName'"); } - public List search(String searchText) { - throw new UnsupportedOperationException("Unimplemented method 'search'"); - } - public ContractType findByCode(String typeCode) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); diff --git a/client/src/main/java/com/ecep/contract/service/CustomerSatisfactionSurveyService.java b/client/src/main/java/com/ecep/contract/service/CustomerSatisfactionSurveyService.java index 03fef99..b696e9a 100644 --- a/client/src/main/java/com/ecep/contract/service/CustomerSatisfactionSurveyService.java +++ b/client/src/main/java/com/ecep/contract/service/CustomerSatisfactionSurveyService.java @@ -1,8 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.CustomerSatisfactionSurvey; import com.ecep.contract.vm.CustomerSatisfactionSurveyViewModel; -public class CustomerSatisfactionSurveyService implements ViewModelService { +@Service +public class CustomerSatisfactionSurveyService + extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/DeliverySignMethodService.java b/client/src/main/java/com/ecep/contract/service/DeliverySignMethodService.java index 7bd4537..bcc3066 100644 --- a/client/src/main/java/com/ecep/contract/service/DeliverySignMethodService.java +++ b/client/src/main/java/com/ecep/contract/service/DeliverySignMethodService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.DeliverySignMethod; import com.ecep.contract.vm.DeliverySignMethodViewModel; -public class DeliverySignMethodService implements ViewModelService { +@Service +public class DeliverySignMethodService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/DepartmentService.java b/client/src/main/java/com/ecep/contract/service/DepartmentService.java index 132d2f4..1fb8f04 100644 --- a/client/src/main/java/com/ecep/contract/service/DepartmentService.java +++ b/client/src/main/java/com/ecep/contract/service/DepartmentService.java @@ -1,15 +1,11 @@ package com.ecep.contract.service; -import java.util.List; +import org.springframework.stereotype.Service; import com.ecep.contract.model.Department; import com.ecep.contract.vm.DepartmentViewModel; -public class DepartmentService implements ViewModelService { - - public List search(String searchText) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'search'"); - } +@Service +public class DepartmentService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeAuthBindService.java b/client/src/main/java/com/ecep/contract/service/EmployeeAuthBindService.java index da425bc..08210c8 100644 --- a/client/src/main/java/com/ecep/contract/service/EmployeeAuthBindService.java +++ b/client/src/main/java/com/ecep/contract/service/EmployeeAuthBindService.java @@ -3,11 +3,13 @@ package com.ecep.contract.service; import java.util.List; import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; import com.ecep.contract.model.EmployeeAuthBind; import com.ecep.contract.vm.EmployeeAuthBindViewModel; -public class EmployeeAuthBindService implements ViewModelService { +@Service +public class EmployeeAuthBindService extends QueryService { public List findAllByEmployee(Object object, Sort unsorted) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeLoginHistoryService.java b/client/src/main/java/com/ecep/contract/service/EmployeeLoginHistoryService.java index 3a855fd..24646ed 100644 --- a/client/src/main/java/com/ecep/contract/service/EmployeeLoginHistoryService.java +++ b/client/src/main/java/com/ecep/contract/service/EmployeeLoginHistoryService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.EmployeeLoginHistory; import com.ecep.contract.vm.EmployeeLoginHistoryViewModel; +@Service public class EmployeeLoginHistoryService - implements ViewModelService { + extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java b/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java index 11462bf..458faf5 100644 --- a/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java +++ b/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.EmployeeRole; import com.ecep.contract.model.Function; import com.ecep.contract.vm.EmployeeRoleViewModel; -public class EmployeeRoleService implements ViewModelService { +@Service +public class EmployeeRoleService extends QueryService { public List getFunctionsByRoleId(int i) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeService.java b/client/src/main/java/com/ecep/contract/service/EmployeeService.java index e8e6a80..225d4df 100644 --- a/client/src/main/java/com/ecep/contract/service/EmployeeService.java +++ b/client/src/main/java/com/ecep/contract/service/EmployeeService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Employee; import com.ecep.contract.model.EmployeeRole; import com.ecep.contract.vm.EmployeeViewModel; -public class EmployeeService implements ViewModelService { +@Service +public class EmployeeService extends QueryService { public static final int DEFAULT_SYSTEM_EMPLOYEE_ID = 26; @@ -24,12 +27,6 @@ public class EmployeeService implements ViewModelService search(String searchText) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'search'"); - } - public Employee findByCode(String personCode) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); diff --git a/client/src/main/java/com/ecep/contract/service/ExtendVendorInfoService.java b/client/src/main/java/com/ecep/contract/service/ExtendVendorInfoService.java index a8e440b..c125aa2 100644 --- a/client/src/main/java/com/ecep/contract/service/ExtendVendorInfoService.java +++ b/client/src/main/java/com/ecep/contract/service/ExtendVendorInfoService.java @@ -1,14 +1,17 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Contract; import com.ecep.contract.model.ExtendVendorInfo; import com.ecep.contract.vm.ExtendVendorInfoViewModel; -public class ExtendVendorInfoService implements ViewModelService { +@Service +public class ExtendVendorInfoService extends QueryService { - public ExtendVendorInfo findByContract(Contract contract) { - throw new UnsupportedOperationException("Unimplemented method 'findByContract'"); - } + public ExtendVendorInfo findByContract(Contract contract) { + throw new UnsupportedOperationException("Unimplemented method 'findByContract'"); + } public ExtendVendorInfo newInstanceByContract(Contract contract) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/FunctionService.java b/client/src/main/java/com/ecep/contract/service/FunctionService.java index 3145a8f..6ff77f5 100644 --- a/client/src/main/java/com/ecep/contract/service/FunctionService.java +++ b/client/src/main/java/com/ecep/contract/service/FunctionService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Function; import com.ecep.contract.vm.FunctionViewModel; -public class FunctionService implements ViewModelService { +@Service +public class FunctionService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/InventoryCatalogService.java b/client/src/main/java/com/ecep/contract/service/InventoryCatalogService.java index ace0e39..6639436 100644 --- a/client/src/main/java/com/ecep/contract/service/InventoryCatalogService.java +++ b/client/src/main/java/com/ecep/contract/service/InventoryCatalogService.java @@ -2,19 +2,18 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.InventoryCatalog; import com.ecep.contract.vm.InventoryCatalogViewModel; -public class InventoryCatalogService implements ViewModelService { +@Service +public class InventoryCatalogService extends QueryService { public InventoryCatalog findByName(String v) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findByName'"); } - public List search(String searchText) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'findAll'"); - } } diff --git a/client/src/main/java/com/ecep/contract/service/InventoryHistoryPriceService.java b/client/src/main/java/com/ecep/contract/service/InventoryHistoryPriceService.java index fb87650..53b0587 100644 --- a/client/src/main/java/com/ecep/contract/service/InventoryHistoryPriceService.java +++ b/client/src/main/java/com/ecep/contract/service/InventoryHistoryPriceService.java @@ -1,15 +1,18 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Inventory; import com.ecep.contract.model.InventoryHistoryPrice; import com.ecep.contract.vm.InventoryHistoryPriceViewModel; +@Service public class InventoryHistoryPriceService - implements ViewModelService { + extends QueryService { public InventoryHistoryPrice[] findAllByInventory(Inventory parent) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findAllByInventory'"); - } + } } diff --git a/client/src/main/java/com/ecep/contract/service/InventoryService.java b/client/src/main/java/com/ecep/contract/service/InventoryService.java index f542477..0669956 100644 --- a/client/src/main/java/com/ecep/contract/service/InventoryService.java +++ b/client/src/main/java/com/ecep/contract/service/InventoryService.java @@ -1,12 +1,13 @@ package com.ecep.contract.service; -import java.util.List; +import org.springframework.stereotype.Service; import com.ecep.contract.MessageHolder; import com.ecep.contract.model.Inventory; import com.ecep.contract.vm.InventoryViewModel; -public class InventoryService implements ViewModelService { +@Service +public class InventoryService extends QueryService { public Inventory createNewInstance() { // TODO Auto-generated method stub @@ -18,11 +19,6 @@ public class InventoryService implements ViewModelService search(String searchText) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'findAllByProject'"); - } - public Inventory findByCode(String code) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); diff --git a/client/src/main/java/com/ecep/contract/service/InvoiceService.java b/client/src/main/java/com/ecep/contract/service/InvoiceService.java index 9009afa..a74f356 100644 --- a/client/src/main/java/com/ecep/contract/service/InvoiceService.java +++ b/client/src/main/java/com/ecep/contract/service/InvoiceService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Invoice; import com.ecep.contract.vm.InvoiceViewModel; -public class InvoiceService implements ViewModelService { +@Service +public class InvoiceService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/PermissionService.java b/client/src/main/java/com/ecep/contract/service/PermissionService.java index d48f1cd..9d5fa2a 100644 --- a/client/src/main/java/com/ecep/contract/service/PermissionService.java +++ b/client/src/main/java/com/ecep/contract/service/PermissionService.java @@ -2,10 +2,13 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Permission; import com.ecep.contract.vm.PermissionViewModel; -public class PermissionService implements ViewModelService { +@Service +public class PermissionService extends QueryService { public List findByFunctionId(int i) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ProductTypeService.java b/client/src/main/java/com/ecep/contract/service/ProductTypeService.java index 6eea634..15506e4 100644 --- a/client/src/main/java/com/ecep/contract/service/ProductTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/ProductTypeService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ProductType; import com.ecep.contract.vm.ProductTypeViewModel; -public class ProductTypeService implements ViewModelService { +@Service +public class ProductTypeService extends QueryService { public ProductType findByName(String name) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ProductUsageService.java b/client/src/main/java/com/ecep/contract/service/ProductUsageService.java index f49bdb6..55c0854 100644 --- a/client/src/main/java/com/ecep/contract/service/ProductUsageService.java +++ b/client/src/main/java/com/ecep/contract/service/ProductUsageService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ProductUsage; import com.ecep.contract.vm.ProductUsageViewModel; -public class ProductUsageService implements ViewModelService { +@Service +public class ProductUsageService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectBidService.java b/client/src/main/java/com/ecep/contract/service/ProjectBidService.java index ecf1afa..300f3ce 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectBidService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectBidService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectBid; import com.ecep.contract.vm.ProjectBidViewModel; -public class ProjectBidService implements ViewModelService { +@Service +public class ProjectBidService extends QueryService { public List findAllByProject(Project project) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ProjectCostItemService.java b/client/src/main/java/com/ecep/contract/service/ProjectCostItemService.java index 15159ea..ace7a64 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectCostItemService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectCostItemService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ProjectCost; import com.ecep.contract.model.ProjectCostItem; import com.ecep.contract.vm.ProjectCostItemViewModel; -public class ProjectCostItemService implements ViewModelService { +@Service +public class ProjectCostItemService extends QueryService { public List findByCost(ProjectCost cost) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ProjectCostService.java b/client/src/main/java/com/ecep/contract/service/ProjectCostService.java index 6cde910..121757a 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectCostService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectCostService.java @@ -2,12 +2,15 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.MessageHolder; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectCost; import com.ecep.contract.vm.ProjectCostViewModel; -public class ProjectCostService implements ViewModelService { +@Service +public class ProjectCostService extends QueryService { public ProjectCost findAutoCostByProject(Project project) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ProjectFundPlanService.java b/client/src/main/java/com/ecep/contract/service/ProjectFundPlanService.java index 7e2bf13..776f84c 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectFundPlanService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectFundPlanService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectFundPlan; import com.ecep.contract.vm.ProjectFundPlanViewModel; -public class ProjectFundPlanService implements ViewModelService { +@Service +public class ProjectFundPlanService extends QueryService { public List findAllByProject(Project project) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ProjectIndustryService.java b/client/src/main/java/com/ecep/contract/service/ProjectIndustryService.java index 5658d92..540e725 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectIndustryService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectIndustryService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ProjectIndustry; import com.ecep.contract.vm.ProjectIndustryViewModel; -public class ProjectIndustryService implements ViewModelService { +@Service +public class ProjectIndustryService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java b/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java index 7eefc18..7fd035a 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java @@ -2,11 +2,14 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectQuotation; import com.ecep.contract.vm.ProjectQuotationViewModel; -public class ProjectQuotationService implements ViewModelService{ +@Service +public class ProjectQuotationService extends QueryService { public List findAllByProject(Project project) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java index 4a80276..7505f3b 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java @@ -2,25 +2,18 @@ package com.ecep.contract.service; import java.util.List; -import com.ecep.contract.model.ProjectSaleType; -import com.ecep.contract.model.ProjectSaleTypeRequireFileType; -import com.ecep.contract.vm.ProjectSaleTypeViewModel; +import org.springframework.stereotype.Service; -public class ProjectSaleTypeRequireFileTypeService implements ViewModelService{ +import com.ecep.contract.model.ProjectSaleTypeRequireFileType; +import com.ecep.contract.vm.ProjectSaleTypeRequireFileTypeViewModel; + +@Service +public class ProjectSaleTypeRequireFileTypeService + extends QueryService { public List findBySaleTypeId(Integer id) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findBySaleTypeId'"); } - public void save(ProjectSaleTypeRequireFileType entity) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'save'"); - } - - public void delete(ProjectSaleTypeRequireFileType entity) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'delete'"); - } - } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java index 1da1e9e..18c50f4 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.vm.ProjectSaleTypeViewModel; -public class ProjectSaleTypeService implements ViewModelService { +@Service +public class ProjectSaleTypeService extends QueryService { public ProjectSaleType findByCode(String substring) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ProjectService.java b/client/src/main/java/com/ecep/contract/service/ProjectService.java index 5246022..8d3df2d 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectService.java @@ -1,5 +1,7 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.Contract; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectSaleType; @@ -8,13 +10,10 @@ import com.ecep.contract.vm.ProjectViewModel; import java.io.File; import java.util.List; -public class ProjectService implements ViewModelService { +@Service +public class ProjectService extends QueryService { - public List search(String searchText) { - throw new UnsupportedOperationException(); - } - public Project findByName(String name) { throw new UnsupportedOperationException(); } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectTypeService.java b/client/src/main/java/com/ecep/contract/service/ProjectTypeService.java index 76585b4..71f309b 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectTypeService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ProjectType; import com.ecep.contract.vm.ProjectTypeViewModel; -public class ProjectTypeService implements ViewModelService { +@Service +public class ProjectTypeService extends QueryService { public ProjectType findByName(String name) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherItemService.java b/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherItemService.java index ce716bb..e025232 100644 --- a/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherItemService.java +++ b/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherItemService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.PurchaseBillVoucherItem; import com.ecep.contract.vm.PurchaseBillVoucherItemViewModel; +@Service public class PurchaseBillVoucherItemService - implements ViewModelService { + extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherService.java b/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherService.java index f683fba..7eda69c 100644 --- a/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherService.java +++ b/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.PurchaseBillVoucher; import com.ecep.contract.vm.PurchaseBillVoucherViewModel; -public class PurchaseBillVoucherService implements ViewModelService { +@Service +public class PurchaseBillVoucherService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/PurchaseOrderItemService.java b/client/src/main/java/com/ecep/contract/service/PurchaseOrderItemService.java index 3ede1c9..bdbea5a 100644 --- a/client/src/main/java/com/ecep/contract/service/PurchaseOrderItemService.java +++ b/client/src/main/java/com/ecep/contract/service/PurchaseOrderItemService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.PurchaseOrderItem; import com.ecep.contract.vm.PurchaseOrderItemViewModel; -public class PurchaseOrderItemService implements ViewModelService { +@Service +public class PurchaseOrderItemService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/PurchaseOrdersService.java b/client/src/main/java/com/ecep/contract/service/PurchaseOrdersService.java index 26247be..0315c8b 100644 --- a/client/src/main/java/com/ecep/contract/service/PurchaseOrdersService.java +++ b/client/src/main/java/com/ecep/contract/service/PurchaseOrdersService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.PurchaseOrder; import com.ecep.contract.vm.PurchaseOrderViewModel; -public class PurchaseOrdersService implements ViewModelService { +@Service +public class PurchaseOrdersService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/QueryService.java b/client/src/main/java/com/ecep/contract/service/QueryService.java new file mode 100644 index 0000000..4abf6e4 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/QueryService.java @@ -0,0 +1,156 @@ +package com.ecep.contract.service; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; + +import com.ecep.contract.WebSocketService; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.msg.SimpleMessage; +import com.ecep.contract.vm.IdentityViewModel; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class QueryService> + implements ViewModelService { + @Autowired + protected WebSocketService webSocketService; + @Autowired + protected ObjectMapper objectMapper; + private long readTimeout = 30000; + + @SuppressWarnings("unchecked") + public TV createNewViewModel() { + try { + Type genericSuperclass = getClass().getGenericSuperclass(); + System.out.println("genericSuperclass = " + genericSuperclass.getClass()); + + String typeName = genericSuperclass.getTypeName(); + // System.out.println("typeName = " + typeName); + String clz = typeName.split("<")[1].split(">")[0].split(",")[1].trim(); + // System.out.println("clz = " + clz); + Class clazz = Class.forName(clz); + return (TV) clazz.getDeclaredConstructor().newInstance(); + } catch (Exception e) { + throw new RuntimeException("无法创建ViewModel实例", e); + } + } + + @SuppressWarnings("unchecked") + public T createNewEntity() { + try { + Type genericSuperclass = getClass().getGenericSuperclass(); + String typeName = genericSuperclass.getTypeName(); + // System.out.println("typeName = " + typeName); + String clz = typeName.split("<")[1].split(">")[0].split(",")[0].trim(); + // System.out.println("clz = " + clz); + Class clazz = Class.forName(clz); + return (T) clazz.getDeclaredConstructor().newInstance(); + } catch (Exception e) { + throw new RuntimeException("无法创建Entity实例", e); + } + } + + @Override + public T save(T entity) { + SimpleMessage msg = new SimpleMessage(); + msg.setService(getBeanName()); + msg.setMethod("save"); + msg.setArguments(entity); + try { + Object response = webSocketService.send(msg).get(readTimeout, TimeUnit.MILLISECONDS); + if (response != null) { + objectMapper.updateValue(entity, response); + } + } catch (Exception e) { + e.printStackTrace(); + } + return entity; + } + + @Override + public void delete(T entity) { + SimpleMessage msg = new SimpleMessage(); + msg.setService(getBeanName()); + msg.setMethod("delete"); + msg.setArguments(entity); + try { + JsonNode response = webSocketService.send(msg).get(readTimeout, TimeUnit.MILLISECONDS); + if (response != null) { + objectMapper.updateValue(entity, response); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public T findById(Integer id) { + SimpleMessage msg = new SimpleMessage(); + msg.setService(getBeanName()); + msg.setMethod("findById"); + msg.setArguments(id); + try { + JsonNode response = webSocketService.send(msg).get(readTimeout, TimeUnit.MILLISECONDS); + if (response != null) { + T newEntity = createNewEntity(); + objectMapper.updateValue(newEntity, response); + return newEntity; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + public Page findAll(Map params, Pageable pageable) { + SimpleMessage msg = new SimpleMessage(); + msg.setService(getBeanName()); + msg.setMethod("findAll"); + msg.setArguments(params, pageable); + try { + JsonNode response = webSocketService.send(msg).get(readTimeout, TimeUnit.MILLISECONDS); + if (response != null) { + + List content = new ArrayList<>(); + JsonNode contentNode = response.get("content"); + if (contentNode != null && contentNode.isArray()) { + for (JsonNode node : contentNode) { + T newEntity = createNewEntity(); + objectMapper.updateValue(newEntity, node); + content.add(newEntity); + } + } + + JsonNode pageNode = response.get("page"); + + int total = pageNode.get("totalElements").asInt(); + int totalPages = pageNode.get("totalPages").asInt(); + int size = pageNode.get("size").asInt(); + int number = pageNode.get("number").asInt(); + + PageRequest newPageable = PageRequest.of(number, size); + return new PageImpl<>(content, newPageable, total); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return null; + } + + + public List search(String searchText) { + Map params = getSpecification(searchText); + List list = findAll(params, Pageable.ofSize(10)).getContent(); + return list; + } +} diff --git a/client/src/main/java/com/ecep/contract/service/SaleOrdersService.java b/client/src/main/java/com/ecep/contract/service/SaleOrdersService.java index 3fa7798..8fb6869 100644 --- a/client/src/main/java/com/ecep/contract/service/SaleOrdersService.java +++ b/client/src/main/java/com/ecep/contract/service/SaleOrdersService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.SalesOrder; import com.ecep.contract.vm.SalesOrderViewModel; -public class SaleOrdersService implements ViewModelService { +@Service +public class SaleOrdersService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/SaleTypeService.java b/client/src/main/java/com/ecep/contract/service/SaleTypeService.java index b902f90..faa5041 100644 --- a/client/src/main/java/com/ecep/contract/service/SaleTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/SaleTypeService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.vm.ProjectSaleTypeViewModel; -public class SaleTypeService implements ViewModelService { +@Service +public class SaleTypeService extends QueryService { public ProjectSaleType findByName(String name) { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/SalesBillVoucherService.java b/client/src/main/java/com/ecep/contract/service/SalesBillVoucherService.java index 2e75971..84d0769 100644 --- a/client/src/main/java/com/ecep/contract/service/SalesBillVoucherService.java +++ b/client/src/main/java/com/ecep/contract/service/SalesBillVoucherService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.SalesBillVoucher; import com.ecep.contract.vm.SalesBillVoucherViewModel; -public class SalesBillVoucherService implements ViewModelService { +@Service +public class SalesBillVoucherService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/SalesOrderItemService.java b/client/src/main/java/com/ecep/contract/service/SalesOrderItemService.java index bdddfa2..1a3a22c 100644 --- a/client/src/main/java/com/ecep/contract/service/SalesOrderItemService.java +++ b/client/src/main/java/com/ecep/contract/service/SalesOrderItemService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.SalesOrderItem; import com.ecep.contract.vm.SalesOrderItemViewModel; -public class SalesOrderItemService implements ViewModelService { +@Service +public class SalesOrderItemService extends QueryService { } diff --git a/client/src/main/java/com/ecep/contract/service/SysConfService.java b/client/src/main/java/com/ecep/contract/service/SysConfService.java index 7f5f633..47fbb03 100644 --- a/client/src/main/java/com/ecep/contract/service/SysConfService.java +++ b/client/src/main/java/com/ecep/contract/service/SysConfService.java @@ -5,9 +5,11 @@ import java.util.Map; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; import com.ecep.contract.model.SysConf; +@Service public class SysConfService { public SysConf findById(String id) { diff --git a/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java b/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java index 8f95ede..e81fa8b 100644 --- a/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java @@ -2,15 +2,18 @@ package com.ecep.contract.service; import java.util.List; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.VendorGroupRequireFileType; import com.ecep.contract.vm.VendorGroupRequireFileTypeViewModel; +@Service public class VendorGroupRequireFileTypeService - implements ViewModelService { + extends QueryService { public List findByGroupId(Integer id) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findByGroupId'"); - } + } } diff --git a/client/src/main/java/com/ecep/contract/service/VendorGroupService.java b/client/src/main/java/com/ecep/contract/service/VendorGroupService.java index 15013c7..a4e9315 100644 --- a/client/src/main/java/com/ecep/contract/service/VendorGroupService.java +++ b/client/src/main/java/com/ecep/contract/service/VendorGroupService.java @@ -1,9 +1,12 @@ package com.ecep.contract.service; +import org.springframework.stereotype.Service; + import com.ecep.contract.model.VendorGroup; import com.ecep.contract.vm.VendorGroupViewModel; -public class VendorGroupService implements ViewModelService { +@Service +public class VendorGroupService extends QueryService { public VendorGroup newInstance() { // TODO Auto-generated method stub diff --git a/client/src/main/java/com/ecep/contract/service/ViewModelService.java b/client/src/main/java/com/ecep/contract/service/ViewModelService.java index cca36fc..2b93a4d 100644 --- a/client/src/main/java/com/ecep/contract/service/ViewModelService.java +++ b/client/src/main/java/com/ecep/contract/service/ViewModelService.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.poi.ss.formula.functions.T; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -15,14 +16,27 @@ import com.ecep.contract.vm.IdentityViewModel; /** * 视图模型服务接口 * - * @param 实体类型 - * @param 视图模型类型 - * @author 2025-08-02 + * @pahor 2025-08-02 */ public interface ViewModelService> extends IEntityService { // > R getRepository(); + default String getBeanName() { + String className = getClass().getSimpleName(); + // 按照Spring默认的bean命名规则转换 + // 1. 如果类名长度大于1且首两个字符都是大写,则不转换 + // 2. 否则,将首字母转为小写,其余部分保持不变 + if (className.length() > 1 && Character.isUpperCase(className.charAt(0)) + && Character.isUpperCase(className.charAt(1))) { + return className; + } + // 将首字母转为小写 + if (className.length() > 0) { + className = Character.toLowerCase(className.charAt(0)) + className.substring(1); + } + return className; + } default T findById(Integer id) { return null; @@ -74,7 +88,6 @@ public interface ViewModelService findAll() { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'findAll'"); + return findAll(null, Pageable.unpaged()).getContent(); } default Page findAll(Map params, Pageable pageable) { @@ -94,7 +106,7 @@ public interface ViewModelService params) { + default long count(Map params) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'count'"); } @@ -105,5 +117,4 @@ public interface ViewModelService { +@Service +public class YongYouU8Service extends QueryService { /** * 生成定时同步任务 @@ -51,4 +53,5 @@ public class YongYouU8Service implements ViewModelService + fx:controller="com.ecep.contract.controller.YongYouU8ManagerWindowController"> @@ -45,7 +45,6 @@ - diff --git a/client/src/main/resources/ui/company/bank-account.fxml b/client/src/main/resources/ui/company/bank-account.fxml index 741f6fa..ec05c03 100644 --- a/client/src/main/resources/ui/company/bank-account.fxml +++ b/client/src/main/resources/ui/company/bank-account.fxml @@ -7,7 +7,7 @@ + fx:controller="com.ecep.contract.controller.bank.account.BankAccountWindowController">
diff --git a/client/src/main/resources/ui/company/company-manager.fxml b/client/src/main/resources/ui/company/company-manager.fxml index 3ea7682..c879eb1 100644 --- a/client/src/main/resources/ui/company/company-manager.fxml +++ b/client/src/main/resources/ui/company/company-manager.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.company.CompanyManagerWindowController"> diff --git a/client/src/main/resources/ui/company/company-tab-bank-account.fxml b/client/src/main/resources/ui/company/company-tab-bank-account.fxml index a592866..78e1250 100644 --- a/client/src/main/resources/ui/company/company-tab-bank-account.fxml +++ b/client/src/main/resources/ui/company/company-tab-bank-account.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.company.CompanyTabSkinBankAccount"> diff --git a/client/src/main/resources/ui/company/company-tab-black-list.fxml b/client/src/main/resources/ui/company/company-tab-black-list.fxml index 80340ea..0089a59 100644 --- a/client/src/main/resources/ui/company/company-tab-black-list.fxml +++ b/client/src/main/resources/ui/company/company-tab-black-list.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.tab.CompanyTabSkinBlackReason"> diff --git a/client/src/main/resources/ui/company/company-tab-contact.fxml b/client/src/main/resources/ui/company/company-tab-contact.fxml index 7ca2113..a37610a 100644 --- a/client/src/main/resources/ui/company/company-tab-contact.fxml +++ b/client/src/main/resources/ui/company/company-tab-contact.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.company.CompanyTabSkinContact"> diff --git a/client/src/main/resources/ui/company/company-tab-contract.fxml b/client/src/main/resources/ui/company/company-tab-contract.fxml index 6c2afe4..b8c6ffc 100644 --- a/client/src/main/resources/ui/company/company-tab-contract.fxml +++ b/client/src/main/resources/ui/company/company-tab-contract.fxml @@ -11,7 +11,7 @@ + fx:controller="com.ecep.contract.controller.tab.CompanyTabSkinContract"> diff --git a/client/src/main/resources/ui/company/company-tab-file.fxml b/client/src/main/resources/ui/company/company-tab-file.fxml index e205750..480b4b2 100644 --- a/client/src/main/resources/ui/company/company-tab-file.fxml +++ b/client/src/main/resources/ui/company/company-tab-file.fxml @@ -10,7 +10,7 @@ + fx:controller="com.ecep.contract.controller.tab.CompanyTabSkinFile"> diff --git a/client/src/main/resources/ui/company/company-tab-invoice.fxml b/client/src/main/resources/ui/company/company-tab-invoice.fxml index d759643..9b3b4f2 100644 --- a/client/src/main/resources/ui/company/company-tab-invoice.fxml +++ b/client/src/main/resources/ui/company/company-tab-invoice.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.tab.CompanyTabSkinInvoice"> diff --git a/client/src/main/resources/ui/company/company-tab-oldname.fxml b/client/src/main/resources/ui/company/company-tab-oldname.fxml index f0faaee..1a9732a 100644 --- a/client/src/main/resources/ui/company/company-tab-oldname.fxml +++ b/client/src/main/resources/ui/company/company-tab-oldname.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.tab.CompanyTabSkinOldName"> diff --git a/client/src/main/resources/ui/company/company-tab-other.fxml b/client/src/main/resources/ui/company/company-tab-other.fxml index 0b58372..8d39021 100644 --- a/client/src/main/resources/ui/company/company-tab-other.fxml +++ b/client/src/main/resources/ui/company/company-tab-other.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.tab.CompanyTabSkinOther"> diff --git a/client/src/main/resources/ui/company/company.fxml b/client/src/main/resources/ui/company/company.fxml index 3432f8e..fcee612 100644 --- a/client/src/main/resources/ui/company/company.fxml +++ b/client/src/main/resources/ui/company/company.fxml @@ -7,7 +7,7 @@ + fx:controller="com.ecep.contract.controller.company.CompanyWindowController"> diff --git a/client/src/main/resources/ui/company/vendor/vendor_manager.fxml b/client/src/main/resources/ui/company/vendor/vendor_manager.fxml index f7e0654..de7634c 100644 --- a/client/src/main/resources/ui/company/vendor/vendor_manager.fxml +++ b/client/src/main/resources/ui/company/vendor/vendor_manager.fxml @@ -4,7 +4,7 @@ + fx:controller="com.ecep.contract.controller.vendor.CompanyVendorManagerWindowController"> diff --git a/client/src/main/resources/ui/contract/contract-manager.fxml b/client/src/main/resources/ui/contract/contract-manager.fxml index 21a2ac8..6d4968e 100644 --- a/client/src/main/resources/ui/contract/contract-manager.fxml +++ b/client/src/main/resources/ui/contract/contract-manager.fxml @@ -4,7 +4,7 @@ + fx:controller="com.ecep.contract.controller.contract.ContractManagerWindowController"> diff --git a/client/src/main/resources/ui/contract/contract-tab-bid.fxml b/client/src/main/resources/ui/contract/contract-tab-bid.fxml index 79d8f38..56642cc 100644 --- a/client/src/main/resources/ui/contract/contract-tab-bid.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-bid.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.ContractTabSkinVendorBid"> diff --git a/client/src/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml b/client/src/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml index bc23bbb..331e432 100644 --- a/client/src/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml @@ -11,7 +11,7 @@ - + diff --git a/client/src/main/resources/ui/contract/contract-tab-file.fxml b/client/src/main/resources/ui/contract/contract-tab-file.fxml index 3fc9a71..c16f518 100644 --- a/client/src/main/resources/ui/contract/contract-tab-file.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-file.fxml @@ -4,7 +4,7 @@ + fx:controller="com.ecep.contract.controller.contract.ContractTabSkinFiles"> diff --git a/client/src/main/resources/ui/contract/contract-tab-item-v2.fxml b/client/src/main/resources/ui/contract/contract-tab-item-v2.fxml index bf91230..4a99060 100644 --- a/client/src/main/resources/ui/contract/contract-tab-item-v2.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-item-v2.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.ContractTabSkinItemsV2"> diff --git a/client/src/main/resources/ui/contract/contract-tab-item.fxml b/client/src/main/resources/ui/contract/contract-tab-item.fxml index 60a13be..34301b0 100644 --- a/client/src/main/resources/ui/contract/contract-tab-item.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-item.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.ContractTabSkinItems"> diff --git a/client/src/main/resources/ui/contract/contract-tab-pay-plan.fxml b/client/src/main/resources/ui/contract/contract-tab-pay-plan.fxml index 68b7ce3..f5642a6 100644 --- a/client/src/main/resources/ui/contract/contract-tab-pay-plan.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-pay-plan.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.ContractTabSkinPayPlan"> diff --git a/client/src/main/resources/ui/contract/contract-tab-purchase-orders.fxml b/client/src/main/resources/ui/contract/contract-tab-purchase-orders.fxml index 960c99a..110a0d1 100644 --- a/client/src/main/resources/ui/contract/contract-tab-purchase-orders.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-purchase-orders.fxml @@ -5,7 +5,7 @@ diff --git a/client/src/main/resources/ui/contract/contract-tab-sale-orders.fxml b/client/src/main/resources/ui/contract/contract-tab-sale-orders.fxml index 6937ffd..56fb2b9 100644 --- a/client/src/main/resources/ui/contract/contract-tab-sale-orders.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-sale-orders.fxml @@ -5,7 +5,7 @@ diff --git a/client/src/main/resources/ui/contract/contract-tab-sub-contract.fxml b/client/src/main/resources/ui/contract/contract-tab-sub-contract.fxml index 0b692a3..877b96d 100644 --- a/client/src/main/resources/ui/contract/contract-tab-sub-contract.fxml +++ b/client/src/main/resources/ui/contract/contract-tab-sub-contract.fxml @@ -5,7 +5,7 @@ diff --git a/client/src/main/resources/ui/contract/contract-verify.fxml b/client/src/main/resources/ui/contract/contract-verify.fxml index ef8bb1d..65185b0 100644 --- a/client/src/main/resources/ui/contract/contract-verify.fxml +++ b/client/src/main/resources/ui/contract/contract-verify.fxml @@ -6,7 +6,7 @@ + fx:controller="com.ecep.contract.controller.contract.ContractVerifyWindowController"> diff --git a/client/src/main/resources/ui/contract/contract.fxml b/client/src/main/resources/ui/contract/contract.fxml index f9cf29d..5ae7042 100644 --- a/client/src/main/resources/ui/contract/contract.fxml +++ b/client/src/main/resources/ui/contract/contract.fxml @@ -6,7 +6,7 @@ + fx:controller="com.ecep.contract.controller.contract.ContractWindowController"> diff --git a/client/src/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml b/client/src/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml index 75a53f7..f7ddd1f 100644 --- a/client/src/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml +++ b/client/src/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.purchase_bill.PurchaseBillVoucherTabSkinItems"> diff --git a/client/src/main/resources/ui/contract/purchase-bill-voucher.fxml b/client/src/main/resources/ui/contract/purchase-bill-voucher.fxml index 11eebe2..fa292e7 100644 --- a/client/src/main/resources/ui/contract/purchase-bill-voucher.fxml +++ b/client/src/main/resources/ui/contract/purchase-bill-voucher.fxml @@ -6,7 +6,7 @@ + fx:controller="com.ecep.contract.controller.contract.purchase_bill.PurchaseBillVoucherWindowController"> diff --git a/client/src/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml b/client/src/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml index c532efc..e7a957e 100644 --- a/client/src/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml +++ b/client/src/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.purchase_order.PurchaseOrderTabSkinBillVoucher"> diff --git a/client/src/main/resources/ui/contract/purchase-orders-tab-item.fxml b/client/src/main/resources/ui/contract/purchase-orders-tab-item.fxml index d6459f6..e2f8c15 100644 --- a/client/src/main/resources/ui/contract/purchase-orders-tab-item.fxml +++ b/client/src/main/resources/ui/contract/purchase-orders-tab-item.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.purchase_order.PurchaseOrderTabSkinItems"> diff --git a/client/src/main/resources/ui/contract/purchase-orders.fxml b/client/src/main/resources/ui/contract/purchase-orders.fxml index 2c1082b..455d42c 100644 --- a/client/src/main/resources/ui/contract/purchase-orders.fxml +++ b/client/src/main/resources/ui/contract/purchase-orders.fxml @@ -19,7 +19,7 @@ - +
diff --git a/client/src/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml b/client/src/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml index c6f2b7b..76ea860 100644 --- a/client/src/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml +++ b/client/src/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.sale_order.SalesOrderTabSkinBillVoucher"> diff --git a/client/src/main/resources/ui/contract/sale-orders-tab-item.fxml b/client/src/main/resources/ui/contract/sale-orders-tab-item.fxml index 18eed77..7f003f3 100644 --- a/client/src/main/resources/ui/contract/sale-orders-tab-item.fxml +++ b/client/src/main/resources/ui/contract/sale-orders-tab-item.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.controller.contract.sale_order.SalesOrderTabSkinItems"> diff --git a/client/src/main/resources/ui/contract/sale-orders.fxml b/client/src/main/resources/ui/contract/sale-orders.fxml index 8926067..5201d69 100644 --- a/client/src/main/resources/ui/contract/sale-orders.fxml +++ b/client/src/main/resources/ui/contract/sale-orders.fxml @@ -6,7 +6,7 @@ + fx:controller="com.ecep.contract.controller.contract.sale_order.SalesOrderWindowController">
diff --git a/client/src/main/resources/ui/contract/vendor-bid.fxml b/client/src/main/resources/ui/contract/vendor-bid.fxml index 760f0f5..c18e3f8 100644 --- a/client/src/main/resources/ui/contract/vendor-bid.fxml +++ b/client/src/main/resources/ui/contract/vendor-bid.fxml @@ -7,7 +7,7 @@ + fx:controller="com.ecep.contract.controller.contract.VendorBidWindowController">
diff --git a/client/src/main/resources/ui/employee/department-manager.fxml b/client/src/main/resources/ui/employee/department-manager.fxml index e4ac0d4..ea9c287 100644 --- a/client/src/main/resources/ui/employee/department-manager.fxml +++ b/client/src/main/resources/ui/employee/department-manager.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.department.DepartmentManagerWindowController"> diff --git a/client/src/main/resources/ui/employee/employee-auth-bind.fxml b/client/src/main/resources/ui/employee/employee-auth-bind.fxml index d64ea32..924f68f 100644 --- a/client/src/main/resources/ui/employee/employee-auth-bind.fxml +++ b/client/src/main/resources/ui/employee/employee-auth-bind.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.employee.EmployeeTabSkinAuthBind"> diff --git a/client/src/main/resources/ui/employee/employee-login-history.fxml b/client/src/main/resources/ui/employee/employee-login-history.fxml index 1d46e02..741b1bb 100644 --- a/client/src/main/resources/ui/employee/employee-login-history.fxml +++ b/client/src/main/resources/ui/employee/employee-login-history.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.employee.EmployeeTabSkinLoginHistory"> diff --git a/client/src/main/resources/ui/employee/employee-manager.fxml b/client/src/main/resources/ui/employee/employee-manager.fxml index 1810502..995db25 100644 --- a/client/src/main/resources/ui/employee/employee-manager.fxml +++ b/client/src/main/resources/ui/employee/employee-manager.fxml @@ -2,7 +2,7 @@ + fx:controller="com.ecep.contract.controller.employee.EmployeeManagerWindowController"> diff --git a/client/src/main/resources/ui/employee/employee.fxml b/client/src/main/resources/ui/employee/employee.fxml index 240bd95..49a1cf6 100644 --- a/client/src/main/resources/ui/employee/employee.fxml +++ b/client/src/main/resources/ui/employee/employee.fxml @@ -7,7 +7,7 @@ + fx:controller="com.ecep.contract.controller.employee.EmployeeWindowController">
diff --git a/client/src/main/resources/ui/employee/function-tab-permission.fxml b/client/src/main/resources/ui/employee/function-tab-permission.fxml index 1cd3196..3b0961f 100644 --- a/client/src/main/resources/ui/employee/function-tab-permission.fxml +++ b/client/src/main/resources/ui/employee/function-tab-permission.fxml @@ -4,7 +4,7 @@ + fx:controller="com.ecep.contract.controller.permission.FunctionTabSkinPermission"> diff --git a/client/src/main/resources/ui/employee/function.fxml b/client/src/main/resources/ui/employee/function.fxml index d4c6933..e25856a 100644 --- a/client/src/main/resources/ui/employee/function.fxml +++ b/client/src/main/resources/ui/employee/function.fxml @@ -7,7 +7,7 @@ + fx:controller="com.ecep.contract.controller.permission.EmployeeFunctionsManagerWindowController">
diff --git a/client/src/main/resources/ui/employee/functions-manager.fxml b/client/src/main/resources/ui/employee/functions-manager.fxml index d7dea6c..384d789 100644 --- a/client/src/main/resources/ui/employee/functions-manager.fxml +++ b/client/src/main/resources/ui/employee/functions-manager.fxml @@ -3,7 +3,7 @@ + fx:controller="com.ecep.contract.controller.permission.EmployeeFunctionsManagerWindowController"> diff --git a/client/src/main/resources/ui/employee/role.fxml b/client/src/main/resources/ui/employee/role.fxml index 36ebe0d..2caa473 100644 --- a/client/src/main/resources/ui/employee/role.fxml +++ b/client/src/main/resources/ui/employee/role.fxml @@ -23,7 +23,7 @@ - +
diff --git a/client/src/main/resources/ui/employee/roles-manager.fxml b/client/src/main/resources/ui/employee/roles-manager.fxml index d17bdf0..34082bf 100644 --- a/client/src/main/resources/ui/employee/roles-manager.fxml +++ b/client/src/main/resources/ui/employee/roles-manager.fxml @@ -2,7 +2,7 @@ - + diff --git a/client/src/main/resources/ui/home.fxml b/client/src/main/resources/ui/home.fxml index 0f40c73..86a082a 100644 --- a/client/src/main/resources/ui/home.fxml +++ b/client/src/main/resources/ui/home.fxml @@ -4,10 +4,11 @@ + + fx:controller="com.ecep.contract.controller.HomeWindowController"> @@ -179,6 +180,8 @@ + +