From 7858c25faa53dd2f4c0faae58618565ac5bb50ae Mon Sep 17 00:00:00 2001
From: zzw <228544128@qq.com>
Date: 星期三, 14 十月 2026 13:07:22 +0800
Subject: [PATCH] feat: add engineering order print and externalize app config

---
 emergency-repair-server/src/main/java/com/emergencyrepair/bootstrap/DataInitializer.java |   30 ++++++++++++++++++++++++------
 1 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/emergency-repair-server/src/main/java/com/emergencyrepair/bootstrap/DataInitializer.java b/emergency-repair-server/src/main/java/com/emergencyrepair/bootstrap/DataInitializer.java
index 3cefa29..9615625 100644
--- a/emergency-repair-server/src/main/java/com/emergencyrepair/bootstrap/DataInitializer.java
+++ b/emergency-repair-server/src/main/java/com/emergencyrepair/bootstrap/DataInitializer.java
@@ -34,6 +34,7 @@
 import com.emergencyrepair.system.mapper.SysTenantMenuMapper;
 import com.emergencyrepair.system.service.ButtonPermissionCatalog;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
@@ -74,6 +75,9 @@
     private final JdbcTemplate jdbcTemplate;
     private final ButtonPermissionCatalog buttonPermissionCatalog;
 
+    @Value("${app.seed-demo-data:false}")
+    private boolean seedDemoData;
+
     private final Map<String, Long> menuIds = new HashMap<>();
     private final Map<String, Long> productDeviceIds = new HashMap<>();
     private final List<Long> contractorIds = new ArrayList<>();
@@ -85,6 +89,7 @@
         seedMenusAndRoles();
         ensureSystemMenus();
         ensureCompletionMenus();
+        ensureEngineeringPrintMenu();
         normalizeSensitiveTerms();
         normalizeEquipmentTerms();
         seedButtonMenus();
@@ -100,7 +105,9 @@
         backfillFaultEquipmentIds();
         upgradeDemoFaultEquipment();
         upgradeDemoMultiEquipmentFault();
-        seedBusinessData();
+        if (seedDemoData) {
+            seedBusinessData();
+        }
         backfillCompletionConsumableCounts();
         normalizeParentSystemSeparators();
     }
@@ -110,14 +117,15 @@
             createMenu("dashboard", null, "棣栭〉闂ㄦ埛", "/dashboard", "el-icon-s-home", 1, 10);
             Long fault = createMenu("fault", null, "鏁呴殰绠$悊", null, "el-icon-warning-outline", 0, 20);
             createMenu("fault-report", fault, "鏁呴殰涓婃姤", "/fault/report", null, 1, 10);
-            createMenu("xcb-review", fault, "rk_XCB鍔╃悊瀹℃牳", "/fault/review", null, 1, 20);
-            createMenu("cmb-approval", fault, "rk_CMB棰嗗瀹℃壒", "/fault/approval/cmb", null, 1, 30);
-            createMenu("jcc-assistant", fault, "rk_JCC鍔╃悊瀹℃壒", "/fault/approval/jcc-assistant", null, 1, 40);
-            createMenu("jcc-director", fault, "rk_JCC澶勯暱瀹℃壒", "/fault/approval/jcc-director", null, 1, 50);
-            createMenu("dispatch", fault, "rk_XCB鍔╃悊娲惧崟", "/fault/dispatch", null, 1, 60);
+            createMenu("xcb-review", fault, "rk_绗竴瀹℃壒浜哄鏍�", "/fault/review", null, 1, 20);
+            createMenu("cmb-approval", fault, "rk_绗簩瀹℃壒浜哄鎵�", "/fault/approval/cmb", null, 1, 30);
+            createMenu("jcc-assistant", fault, "rk_绗笁瀹℃壒浜哄鎵�", "/fault/approval/jcc-assistant", null, 1, 40);
+            createMenu("jcc-director", fault, "rk_绗洓瀹℃壒浜哄鎵�", "/fault/approval/jcc-director", null, 1, 50);
+            createMenu("dispatch", fault, "rk_绗竴瀹℃壒浜烘淳鍗�", "/fault/dispatch", null, 1, 60);
             createMenu("completion-list", fault, "瀹屽伐鎯呭喌澶勭悊", "/fault/completion", null, 1, 70);
             createMenu("completion-report", fault, "瀹屽伐淇℃伅涓婃姤", "/completion/report", null, 1, 80);
             createMenu("completion-query", fault, "瀹屽伐淇℃伅鏌ラ槄", "/completion/query", null, 1, 90);
+            createMenu("engineering-print", fault, "宸ョ▼鍗曟墦鍗�", "/fault/engineering-print", null, 1, 100);
 
             Long acceptance = createMenu("acceptance", null, "瀹屽伐楠屾敹", null, "el-icon-circle-check", 0, 30);
             createMenu("accept-application", acceptance, "楠屾敹鐢宠", "/acceptance/application", null, 1, 10);
@@ -275,6 +283,16 @@
         grantAdminMenus("/completion/query");
     }
 
+    private void ensureEngineeringPrintMenu() {
+        SysMenu fault = menuMapper.selectOne(Wrappers.<SysMenu>lambdaQuery()
+                .eq(SysMenu::getName, "鏁呴殰绠$悊")
+                .eq(SysMenu::getMenuType, 0)
+                .last("LIMIT 1"));
+        Long pid = fault == null ? 0L : fault.getId();
+        ensureMenu(pid, "宸ョ▼鍗曟墦鍗�", "/fault/engineering-print", 100);
+        grantAdminMenus("/fault/engineering-print");
+    }
+
     private void ensureSystemMenus() {
         SysMenu system = menuMapper.selectOne(Wrappers.<SysMenu>lambdaQuery()
                 .eq(SysMenu::getName, "\u7cfb\u7edf\u7ba1\u7406").last("LIMIT 1"));

--
Gitblit v1.9.1