package com.example.demo.config.cash; import com.example.demo.domain.vo.cash.Market; import com.example.demo.service.cash.MarketService; import com.example.demo.service.cash.RefundApprovalService; import lombok.RequiredArgsConstructor; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import java.util.Arrays; import java.util.List; @Component @RequiredArgsConstructor public class DataInitializer implements CommandLineRunner { private final MarketService marketService; private final RefundApprovalService refundApprovalService; @Override public void run(String... args) throws Exception { // 初始化地区数据 initializeMarketData(); } private void initializeMarketData() { List markets = Arrays.asList( createMarket(1, "Capt", -1, "Capt-Capt-Capt-Capt", 0), createMarket(2, "公司", 1, "Capt-公司-公司-公司", 1), createMarket(3, "市场", 1, "Capt-市场部-市场部-市场部", 1), createMarket(4, "新加坡", 3, "Capt-市场部-新加坡-新加坡", 2), createMarket(5, "马来西亚", 3, "Capt-市场部-马来西亚-马来西亚", 2), createMarket(9, "研发部", 2, "Capt-公司-研发部-研发部", 2), createMarket(13, "香港", 3, "Capt-市场部-香港-香港", 2), createMarket(9999, "总部", 2, "Capt-公司-总部-总部", 2), createMarket(24016, "加拿大", 3, "Capt-市场部-加拿大-加拿大", 2), createMarket(24018, "泰国", 3, "Capt-市场部-泰国-泰国", 2), createMarket(24022, "越南HCM", 3, "Capt-市场部-越南HCM-越南HCM", 2), createMarket(24027, "韩国", 3, "Capt-市场部-韩国-韩国", 2), createMarket(24028, "深圳运营", 3, "Capt-市场部-深圳运营-深圳运营", 2), createMarket(24030, "未知", 3, "Capt-市场部-未知", 2), createMarket(24031, "其他", 3, "Capt-市场部-其他", 2), createMarket(24032, "市场部", 3, "Capt-市场部-市场部", 2) ); marketService.initializeMarkets(markets); // 为特定市场初始化审批流程 refundApprovalService.initializeFlowForMarketName("新加坡"); refundApprovalService.initializeFlowForMarketName("马来西亚"); refundApprovalService.initializeFlowForMarketName("香港"); refundApprovalService.initializeFlowForMarketName("加拿大"); refundApprovalService.initializeFlowForMarketName("泰国"); refundApprovalService.initializeFlowForMarketName("越南HCM"); refundApprovalService.initializeFlowForMarketName("韩国"); refundApprovalService.initializeFlowForMarketName("深圳运营"); } private Market createMarket(Integer id, String name, Integer parentId, String treelist, Integer type) { Market market = new Market(); market.setId(id); market.setName(name); market.setParentId(parentId); market.setTreelist(treelist); market.setType(type); return market; } }