| | |
| | | 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; |
| | |
| | | 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<>(); |
| | |
| | | public void run(String... args) { |
| | | seedMenusAndRoles(); |
| | | ensureSystemMenus(); |
| | | ensureCompletionMenus(); |
| | | normalizeSensitiveTerms(); |
| | | normalizeEquipmentTerms(); |
| | | seedButtonMenus(); |
| | |
| | | backfillFaultEquipmentIds(); |
| | | upgradeDemoFaultEquipment(); |
| | | upgradeDemoMultiEquipmentFault(); |
| | | seedBusinessData(); |
| | | if (seedDemoData) { |
| | | seedBusinessData(); |
| | | } |
| | | backfillCompletionConsumableCounts(); |
| | | normalizeParentSystemSeparators(); |
| | | } |
| | |
| | | createMenu("dispatch", fault, "rk_XCB助理派单", "/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); |
| | | |
| | | Long acceptance = createMenu("acceptance", null, "完工验收", null, "el-icon-circle-check", 0, 30); |
| | | createMenu("accept-application", acceptance, "验收申请", "/acceptance/application", null, 1, 10); |
| | |
| | | Long systemConfig = createMenu("system-config", system, "系统配置", null, "el-icon-s-tools", 0, 10); |
| | | createMenu("organization", systemConfig, "组织机构", "/system/organization", null, 1, 10); |
| | | createMenu("contractors", systemConfig, "承修单位管理", "/system/contractors", null, 1, 20); |
| | | createMenu("product-tree", systemConfig, "产品结构树管理", "/system/product-tree", null, 1, 30); |
| | | createMenu("product-tree", systemConfig, "产品结构树", "/system/product-tree", null, 1, 30); |
| | | createMenu("base-equipment", systemConfig, "设备基础库管理", "/system/base-equipment", null, 1, 40); |
| | | createMenu("engineering-majors", systemConfig, "工程专业配置", "/system/engineering-majors", null, 1, 50); |
| | | createMenu("team-majors", systemConfig, "rk_T队专业配置", "/system/team-majors", null, 1, 60); |
| | |
| | | menuMapper.insert(menu); |
| | | return menu.getId(); |
| | | } |
| | | // Existing menu names are user-managed; startup only repairs structural fields. |
| | | boolean changed = !java.util.Objects.equals(menu.getPid(), pid) |
| | | || !java.util.Objects.equals(menu.getName(), name) |
| | | || !java.util.Objects.equals(menu.getSortNo(), sort) |
| | | || !java.util.Objects.equals(menu.getMenuType(), 1) |
| | | || !java.util.Objects.equals(menu.getVisible(), 1); |
| | | if (changed) { |
| | | menu.setPid(pid); |
| | | menu.setName(name); |
| | | menu.setMenuType(1); |
| | | menu.setSortNo(sort); |
| | | menu.setVisible(1); |
| | |
| | | menuMapper.updateById(menu); |
| | | } |
| | | return menu.getId(); |
| | | } |
| | | |
| | | private void ensureCompletionMenus() { |
| | | 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, "完工信息查阅", "/completion/query", 90); |
| | | grantAdminMenus("/completion/query"); |
| | | } |
| | | |
| | | private void ensureSystemMenus() { |
| | |
| | | |
| | | ensureMenu(systemConfig, "组织机构", "/system/organization", 10); |
| | | ensureMenu(systemConfig, "承修单位管理", "/system/contractors", 20); |
| | | ensureMenu(systemConfig, "产品结构树管理", "/system/product-tree", 30); |
| | | ensureMenu(systemConfig, "产品结构树", "/system/product-tree", 30); |
| | | ensureMenu(systemConfig, "设备基础库管理", "/system/base-equipment", 40); |
| | | ensureMenu(systemConfig, "工程专业配置", "/system/engineering-majors", 50); |
| | | ensureMenu(systemConfig, "rk_T队专业配置", "/system/team-majors", 60); |