Search in sources :

Example 1 with MEASURABLE_CATEGORY

use of org.finos.waltz.schema.Tables.MEASURABLE_CATEGORY in project waltz by khartec.

the class MeasurableHelper method createMeasurableCategory.

public long createMeasurableCategory(String name) {
    Set<MeasurableCategory> categories = categoryService.findByExternalId(name);
    return CollectionUtilities.maybeFirst(categories).map(c -> c.id().get()).orElseGet(() -> {
        long schemeId = ratingSchemeHelper.createEmptyRatingScheme("test");
        MeasurableCategoryRecord record = dsl.newRecord(MEASURABLE_CATEGORY);
        record.setDescription(name);
        record.setName(name);
        record.setExternalId(name);
        record.setRatingSchemeId(schemeId);
        record.setLastUpdatedBy("admin");
        record.setLastUpdatedAt(DateTimeUtilities.nowUtcTimestamp());
        record.setEditable(false);
        record.store();
        return record.getId();
    });
}
Also used : MeasurableCategory(org.finos.waltz.model.measurable_category.MeasurableCategory) MeasurableCategoryRecord(org.finos.waltz.schema.tables.records.MeasurableCategoryRecord) Autowired(org.springframework.beans.factory.annotation.Autowired) Set(java.util.Set) CollectionUtilities(org.finos.waltz.common.CollectionUtilities) MEASURABLE_CATEGORY(org.finos.waltz.schema.Tables.MEASURABLE_CATEGORY) MeasurableCategoryService(org.finos.waltz.service.measurable_category.MeasurableCategoryService) DateTimeUtilities(org.finos.waltz.common.DateTimeUtilities) Service(org.springframework.stereotype.Service) MeasurableRecord(org.finos.waltz.schema.tables.records.MeasurableRecord) MeasurableService(org.finos.waltz.service.measurable.MeasurableService) DSLContext(org.jooq.DSLContext) MEASURABLE(org.finos.waltz.schema.Tables.MEASURABLE) MeasurableCategoryRecord(org.finos.waltz.schema.tables.records.MeasurableCategoryRecord) MeasurableCategory(org.finos.waltz.model.measurable_category.MeasurableCategory)

Example 2 with MEASURABLE_CATEGORY

use of org.finos.waltz.schema.Tables.MEASURABLE_CATEGORY in project waltz by khartec.

the class InvolvementGenerator method create.

@Override
public Map<String, Integer> create(ApplicationContext ctx) {
    DSLContext dsl = ctx.getBean(DSLContext.class);
    List<String> developers = getEmployeeIdsByTitle(dsl, "%Developer%");
    List<String> managers = getEmployeeIdsByTitle(dsl, "%Manager%");
    List<String> analysts = getEmployeeIdsByTitle(dsl, "%Analyst%");
    List<String> administrators = getEmployeeIdsByTitle(dsl, "%Administrator%");
    List<String> qa = getEmployeeIdsByTitle(dsl, "%QA%");
    List<String> directors = getEmployeeIdsByTitle(dsl, "%Director%");
    List<Long> orgUnitIds = dsl.select(ORGANISATIONAL_UNIT.ID).from(ORGANISATIONAL_UNIT).fetch(ORGANISATIONAL_UNIT.ID);
    Map<String, Long> involvementKindMap = dsl.select(INVOLVEMENT_KIND.NAME, INVOLVEMENT_KIND.ID).from(INVOLVEMENT_KIND).fetch().stream().collect(toMap(r -> r.getValue(INVOLVEMENT_KIND.NAME), r -> r.getValue(INVOLVEMENT_KIND.ID)));
    List<Long> inHouseApps = getAppIdsByKind(dsl, ApplicationKind.IN_HOUSE);
    List<Long> hostedApps = getAppIdsByKind(dsl, ApplicationKind.INTERNALLY_HOSTED);
    List<Long> externalApps = getAppIdsByKind(dsl, ApplicationKind.EXTERNALLY_HOSTED);
    List<Long> eucApps = getAppIdsByKind(dsl, ApplicationKind.EUC);
    List<InvolvementRecord> devInvolvements = inHouseApps.stream().map(id -> toAppRef(id)).flatMap(appRef -> mkInvolvments(appRef, developers, involvementKindMap.get("Developer"), 7)).collect(Collectors.toList());
    List<InvolvementRecord> qaInvolvements = concat(inHouseApps, hostedApps).stream().map(id -> toAppRef(id)).flatMap(appRef -> mkInvolvments(appRef, qa, involvementKindMap.get("Quality Assurance"), 3)).collect(Collectors.toList());
    List<InvolvementRecord> projectManagerInvolvements = concat(inHouseApps, externalApps, hostedApps, eucApps).stream().map(id -> toAppRef(id)).flatMap(appRef -> mkInvolvments(appRef, managers, involvementKindMap.get("Project Manager"), 1)).collect(Collectors.toList());
    List<InvolvementRecord> supportManagerInvolvments = concat(inHouseApps, externalApps, hostedApps).stream().map(id -> toAppRef(id)).flatMap(appRef -> mkInvolvments(appRef, managers, involvementKindMap.get("Support Manager"), 1)).collect(Collectors.toList());
    List<InvolvementRecord> analystInvolvments = concat(inHouseApps, externalApps, hostedApps).stream().map(id -> toAppRef(id)).flatMap(appRef -> mkInvolvments(appRef, analysts, involvementKindMap.get("Business Analyst"), 3)).collect(Collectors.toList());
    List<InvolvementRecord> ouArchitects = orgUnitIds.stream().map(id -> new InvolvementRecord(EntityKind.ORG_UNIT.name(), id, randomPick(directors), SAMPLE_DATA_PROVENANCE, Long.valueOf(rnd.nextInt(13) + 1), true)).collect(Collectors.toList());
    List<InvolvementRecord> ouSponsors = orgUnitIds.stream().map(id -> new InvolvementRecord(EntityKind.ORG_UNIT.name(), id, randomPick(directors), SAMPLE_DATA_PROVENANCE, Long.valueOf(rnd.nextInt(13) + 1), true)).collect(Collectors.toList());
    List<InvolvementRecord> categoryInvolvements = dsl.select(MEASURABLE_CATEGORY.ID).from(MEASURABLE_CATEGORY).fetch(MEASURABLE_CATEGORY.ID).stream().map(id -> new InvolvementRecord(EntityKind.MEASURABLE_CATEGORY.name(), id, randomPick(directors), SAMPLE_DATA_PROVENANCE, Long.valueOf(rnd.nextInt(13) + 1), true)).collect(Collectors.toList());
    dsl.batchInsert(devInvolvements).execute();
    dsl.batchInsert(qaInvolvements).execute();
    dsl.batchInsert(supportManagerInvolvments).execute();
    dsl.batchInsert(projectManagerInvolvements).execute();
    dsl.batchInsert(analystInvolvments).execute();
    dsl.batchInsert(ouArchitects).execute();
    dsl.batchInsert(ouSponsors).execute();
    dsl.batchInsert(categoryInvolvements).execute();
    System.out.println("Done");
    return null;
}
Also used : IntStream(java.util.stream.IntStream) APPLICATION(org.finos.waltz.schema.tables.Application.APPLICATION) INVOLVEMENT_KIND(org.finos.waltz.schema.tables.InvolvementKind.INVOLVEMENT_KIND) EntityKind(org.finos.waltz.model.EntityKind) ImmutableEntityReference(org.finos.waltz.model.ImmutableEntityReference) Random(java.util.Random) ApplicationContext(org.springframework.context.ApplicationContext) Collectors(java.util.stream.Collectors) InvolvementRecord(org.finos.waltz.schema.tables.records.InvolvementRecord) MEASURABLE_CATEGORY(org.finos.waltz.schema.Tables.MEASURABLE_CATEGORY) RandomUtilities(org.finos.waltz.common.RandomUtilities) List(java.util.List) Stream(java.util.stream.Stream) ORGANISATIONAL_UNIT(org.finos.waltz.schema.tables.OrganisationalUnit.ORGANISATIONAL_UNIT) Collectors.toMap(java.util.stream.Collectors.toMap) INVOLVEMENT(org.finos.waltz.schema.tables.Involvement.INVOLVEMENT) Map(java.util.Map) RandomUtilities.randomPick(org.finos.waltz.common.RandomUtilities.randomPick) EntityReference(org.finos.waltz.model.EntityReference) DSLContext(org.jooq.DSLContext) ApplicationKind(org.finos.waltz.model.application.ApplicationKind) ListUtilities.concat(org.finos.waltz.common.ListUtilities.concat) PERSON(org.finos.waltz.schema.tables.Person.PERSON) DSLContext(org.jooq.DSLContext) InvolvementRecord(org.finos.waltz.schema.tables.records.InvolvementRecord)

Aggregations

MEASURABLE_CATEGORY (org.finos.waltz.schema.Tables.MEASURABLE_CATEGORY)2 DSLContext (org.jooq.DSLContext)2 List (java.util.List)1 Map (java.util.Map)1 Random (java.util.Random)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 Collectors.toMap (java.util.stream.Collectors.toMap)1 IntStream (java.util.stream.IntStream)1 Stream (java.util.stream.Stream)1 CollectionUtilities (org.finos.waltz.common.CollectionUtilities)1 DateTimeUtilities (org.finos.waltz.common.DateTimeUtilities)1 ListUtilities.concat (org.finos.waltz.common.ListUtilities.concat)1 RandomUtilities (org.finos.waltz.common.RandomUtilities)1 RandomUtilities.randomPick (org.finos.waltz.common.RandomUtilities.randomPick)1 EntityKind (org.finos.waltz.model.EntityKind)1 EntityReference (org.finos.waltz.model.EntityReference)1 ImmutableEntityReference (org.finos.waltz.model.ImmutableEntityReference)1 ApplicationKind (org.finos.waltz.model.application.ApplicationKind)1 MeasurableCategory (org.finos.waltz.model.measurable_category.MeasurableCategory)1