diff --git a/crm-dict/src/main/java/com/crm/dict/config/DictDataInitializer.java b/crm-dict/src/main/java/com/crm/dict/config/DictDataInitializer.java index 55260a3..2042429 100644 --- a/crm-dict/src/main/java/com/crm/dict/config/DictDataInitializer.java +++ b/crm-dict/src/main/java/com/crm/dict/config/DictDataInitializer.java @@ -250,7 +250,14 @@ public class DictDataInitializer implements CommandLineRunner { new ItemSeed("customer_role_03", "投资方", "customer_role_03", 3, null, false), new ItemSeed("customer_role_04", "设计院", "customer_role_04", 4, null, false), new ItemSeed("customer_role_05", "集成商", "customer_role_05", 5, null, false), - new ItemSeed("customer_role_06", "投标公司", "customer_role_06", 6, null, false)))); + new ItemSeed("customer_role_06", "投标公司", "customer_role_06", 6, null, false))), + new GroupSeed("attachment_type", "商机资料类型", 22, "商机附件资料分类(票 09 attachment.attachment_type;产品录入 20260825)", + List.of( + new ItemSeed("attachment_type_01", "现场资料", "attachment_type_01", 1, null, false), + new ItemSeed("attachment_type_02", "涉及清单/图纸", "attachment_type_02", 2, null, false), + new ItemSeed("attachment_type_03", "客户需求资料", "attachment_type_03", 3, null, false), + new ItemSeed("attachment_type_04", "招投标相关资料", "attachment_type_04", 4, null, false), + new ItemSeed("attachment_type_99", "其他", "attachment_type_99", 5, null, false)))); @Override public void run(String... args) { diff --git a/crm-dict/src/test/java/com/crm/dict/config/DictDataInitializerTest.java b/crm-dict/src/test/java/com/crm/dict/config/DictDataInitializerTest.java index d1747d1..94a440c 100644 --- a/crm-dict/src/test/java/com/crm/dict/config/DictDataInitializerTest.java +++ b/crm-dict/src/test/java/com/crm/dict/config/DictDataInitializerTest.java @@ -31,27 +31,28 @@ class DictDataInitializerTest extends AbstractDictH2Test { } @Test - @DisplayName("首装:21 个内置分组 + 163 个内置项全部建库,ref_count 预建,种子默认项生效") + @DisplayName("首装:22 个内置分组 + 168 个内置项全部建库,ref_count 预建,种子默认项生效") void firstRun_createsBuiltinDictsWithDefaults() { initializer.run(); List groups = dictGroupMapper.selectList(null); - assertThat(groups).hasSize(21); + assertThat(groups).hasSize(22); assertThat(groups).extracting(DictGroup::getCode) .containsExactlyInAnyOrder("lead_source", "customer_status", "industry", "brand", "product", "scene", "opp_stage", "opp_source", "opp_type", "bid_form", "result_tag", "design_config", "pause_reason", "pool_reason", "project_role", "close_reason", - "locality_type", "follow_way", "survey_seq", "apply_way", "customer_role"); + "locality_type", "follow_way", "survey_seq", "apply_way", "customer_role", + "attachment_type"); assertThat(groups).allMatch(g -> Boolean.TRUE.equals(g.getBuiltin())); assertThat(groups).allMatch(g -> g.getStatus() == DictConstants.STATUS_ENABLED); List items = dictItemMapper.selectList(null); - assertThat(items).hasSize(163); // 144 + 属地2 + 跟进方式5 + 勘察次数4 + 申请方式2 + 客户角色6 + assertThat(items).hasSize(168); // 163 + 资料类型5 assertThat(items).allMatch(i -> Boolean.TRUE.equals(i.getBuiltin())); // 引用计数行预建(与新建接口同口径) - assertThat(dictRefCountMapper.selectCount(null)).isEqualTo(163); + assertThat(dictRefCountMapper.selectCount(null)).isEqualTo(168); DictGroup statusGroup = groups.stream() .filter(g -> g.getCode().equals("customer_status")).findFirst().orElseThrow(); DictItem potential = dictItemMapper.selectList(null).stream() @@ -72,9 +73,9 @@ class DictDataInitializerTest extends AbstractDictH2Test { initializer.run(); initializer.run(); - assertThat(dictGroupMapper.selectCount(null)).isEqualTo(21); - assertThat(dictItemMapper.selectCount(null)).isEqualTo(163); - assertThat(dictRefCountMapper.selectCount(null)).isEqualTo(163); + assertThat(dictGroupMapper.selectCount(null)).isEqualTo(22); + assertThat(dictItemMapper.selectCount(null)).isEqualTo(168); + assertThat(dictRefCountMapper.selectCount(null)).isEqualTo(168); assertThat(dictGroupDefaultMapper.selectCount(null)).isEqualTo(1); } @@ -198,11 +199,11 @@ class DictDataInitializerTest extends AbstractDictH2Test { assertThat(dictItemMapper.selectList(null).stream() .filter(i -> i.getGroupId().equals(userGroup.getId()))).isEmpty(); // 种子其他分组不受影响(继续正常导入):customer_status + industry + brand + product + scene + opp_stage + 8 商机分组 - assertThat(dictGroupMapper.selectCount(null)).isEqualTo(21); // lead_source(用户) + 其余 20 个内置分组 + assertThat(dictGroupMapper.selectCount(null)).isEqualTo(22); // lead_source(用户) + 其余 21 个内置分组 assertThat(dictGroupMapper.selectList(null).stream() .filter(g -> g.getCode().equals("industry"))).hasSize(1); - assertThat(dictItemMapper.selectCount(null)).isEqualTo(125); // 163 - 渠道 38(用户分组整组跳过) - assertThat(dictRefCountMapper.selectCount(null)).isEqualTo(125); + assertThat(dictItemMapper.selectCount(null)).isEqualTo(130); // 168 - 渠道 38(用户分组整组跳过) + assertThat(dictRefCountMapper.selectCount(null)).isEqualTo(130); assertThat(dictGroupDefaultMapper.selectCount(null)).isEqualTo(1); // customer_status 默认项 }