This commit is contained in:
Jakub Pilimon
2018-03-19 08:36:18 +01:00
143 changed files with 506 additions and 434 deletions

View File

@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>pl.com.bottega</groupId>
<groupId>pl.com.dddbyexamples</groupId>
<artifactId>demand-forecasting-adapters</artifactId>
<version>1.0-SNAPSHOT</version>
@@ -16,17 +16,17 @@
<dependencies>
<dependency>
<groupId>pl.com.bottega</groupId>
<groupId>pl.com.dddbyexamples</groupId>
<artifactId>demand-forecasting-model</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>pl.com.bottega</groupId>
<groupId>pl.com.dddbyexamples</groupId>
<artifactId>adapter-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>pl.com.bottega</groupId>
<groupId>pl.com.dddbyexamples</groupId>
<artifactId>adapter-commons</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>

View File

@@ -1,9 +1,9 @@
package pl.com.bottega.factory.delivery.planning;
package pl.com.dddbyexamples.factory.delivery.planning;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao;
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity;
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao;
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity;
import java.util.Collections;

View File

@@ -1,10 +1,10 @@
package pl.com.bottega.factory.delivery.planning.definition;
package pl.com.dddbyexamples.factory.delivery.planning.definition;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Singular;
import lombok.Value;
import pl.com.bottega.factory.demand.forecasting.Demand;
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
import java.time.LocalTime;
import java.util.Collections;

View File

@@ -1,4 +1,4 @@
package pl.com.bottega.factory.delivery.planning.definition;
package pl.com.dddbyexamples.factory.delivery.planning.definition;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

View File

@@ -1,8 +1,8 @@
package pl.com.bottega.factory.delivery.planning.definition;
package pl.com.dddbyexamples.factory.delivery.planning.definition;
import lombok.Getter;
import lombok.NoArgsConstructor;
import pl.com.bottega.tools.JsonConverter;
import pl.com.dddbyexamples.tools.JsonConverter;
import javax.persistence.Convert;
import javax.persistence.Entity;

View File

@@ -1,9 +1,9 @@
package pl.com.bottega.factory.delivery.planning.projection;
package pl.com.dddbyexamples.factory.delivery.planning.projection;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.data.rest.core.annotation.RestResource;
import org.springframework.stereotype.Repository;
import pl.com.bottega.tools.ProjectionRepository;
import pl.com.dddbyexamples.tools.ProjectionRepository;
import java.time.LocalDate;
import java.time.LocalDateTime;

View File

@@ -1,4 +1,4 @@
package pl.com.bottega.factory.delivery.planning.projection;
package pl.com.dddbyexamples.factory.delivery.planning.projection;
import lombok.Getter;
import lombok.NoArgsConstructor;

View File

@@ -1,13 +1,13 @@
package pl.com.bottega.factory.delivery.planning.projection;
package pl.com.dddbyexamples.factory.delivery.planning.projection;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import pl.com.bottega.factory.delivery.planning.DeliveryAutoPlanner;
import pl.com.bottega.factory.delivery.planning.DeliveryAutoPlannerORMRepository;
import pl.com.bottega.factory.demand.forecasting.Demand;
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged;
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandDao;
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandEntity;
import pl.com.dddbyexamples.factory.delivery.planning.DeliveryAutoPlanner;
import pl.com.dddbyexamples.factory.delivery.planning.DeliveryAutoPlannerORMRepository;
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged;
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandDao;
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity;
import java.time.Clock;
import java.time.LocalDate;

View File

@@ -1,4 +1,4 @@
package pl.com.bottega.factory.demand.forecasting;
package pl.com.dddbyexamples.factory.demand.forecasting;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;

View File

@@ -1,4 +1,4 @@
package pl.com.bottega.factory.demand.forecasting;
package pl.com.dddbyexamples.factory.demand.forecasting;
import lombok.Value;

View File

@@ -1,15 +1,13 @@
package pl.com.bottega.factory.demand.forecasting;
package pl.com.dddbyexamples.factory.demand.forecasting;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import pl.com.bottega.factory.demand.forecasting.DailyDemand.DemandUpdated;
import pl.com.bottega.factory.demand.forecasting.persistence.DemandDao;
import pl.com.bottega.factory.demand.forecasting.persistence.DemandEntity;
import pl.com.bottega.factory.demand.forecasting.persistence.DemandEntity.DemandEntityId;
import pl.com.bottega.factory.demand.forecasting.persistence.ProductDemandDao;
import pl.com.bottega.factory.demand.forecasting.persistence.ProductDemandEntity;
import pl.com.bottega.factory.product.management.RefNoId;
import pl.com.bottega.tools.TechnicalId;
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DemandDao;
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DemandEntity;
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandDao;
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandEntity;
import pl.com.dddbyexamples.factory.product.management.RefNoId;
import pl.com.dddbyexamples.tools.TechnicalId;
import javax.persistence.EntityManager;
import javax.persistence.LockModeType;
@@ -63,7 +61,7 @@ class ProductDemandORMRepository implements ProductDemandRepository {
if (model.updates.size() > 0) {
em.lock(root, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
}
for (DemandUpdated updated : model.updates) {
for (DailyDemand.DemandUpdated updated : model.updates) {
DemandEntity entity;
if (TechnicalId.isPersisted(updated.getId())) {
entity = demandDao.getOne(TechnicalId.get(updated.getId()));
@@ -90,7 +88,7 @@ class ProductDemandORMRepository implements ProductDemandRepository {
entity.getValue().getDocumented(),
entity.getValue().getAdjustment()))
.orElseGet(() -> new DailyDemand(
new DemandEntityId(refNo, date),
new DemandEntity.DemandEntityId(refNo, date),
reviewPolicy,
null,
null

View File

@@ -1,4 +1,4 @@
package pl.com.bottega.factory.demand.forecasting.command;
package pl.com.dddbyexamples.factory.demand.forecasting.command;
import lombok.AllArgsConstructor;
import org.springframework.boot.context.event.ApplicationReadyEvent;
@@ -10,8 +10,8 @@ import org.springframework.data.rest.core.annotation.RepositoryEventHandler;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import pl.com.bottega.factory.demand.forecasting.DemandService;
import pl.com.bottega.factory.demand.forecasting.persistence.DocumentEntity;
import pl.com.dddbyexamples.factory.demand.forecasting.DemandService;
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity;
import java.time.Clock;
import java.time.LocalDate;

View File

@@ -1,9 +1,9 @@
package pl.com.bottega.factory.demand.forecasting.command;
package pl.com.dddbyexamples.factory.demand.forecasting.command;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.data.rest.core.annotation.RestResource;
import org.springframework.stereotype.Repository;
import pl.com.bottega.tools.CommandRepository;
import pl.com.dddbyexamples.tools.CommandRepository;
import java.time.LocalDate;

View File

@@ -1,10 +1,10 @@
package pl.com.bottega.factory.demand.forecasting.command;
package pl.com.dddbyexamples.factory.demand.forecasting.command;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import pl.com.bottega.factory.demand.forecasting.AdjustDemand;
import pl.com.bottega.tools.JsonConverter;
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand;
import pl.com.dddbyexamples.tools.JsonConverter;
import javax.persistence.*;
import java.io.Serializable;

View File

@@ -1,9 +1,9 @@
package pl.com.bottega.factory.demand.forecasting.command;
package pl.com.dddbyexamples.factory.demand.forecasting.command;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.data.rest.core.annotation.RestResource;
import org.springframework.stereotype.Repository;
import pl.com.bottega.tools.CommandRepository;
import pl.com.dddbyexamples.tools.CommandRepository;
import java.time.LocalDate;
import java.util.List;

View File

@@ -1,12 +1,12 @@
package pl.com.bottega.factory.demand.forecasting.command;
package pl.com.dddbyexamples.factory.demand.forecasting.command;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import pl.com.bottega.factory.demand.forecasting.ApplyReviewDecision;
import pl.com.bottega.factory.demand.forecasting.ReviewDecision;
import pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview;
import pl.com.bottega.tools.JsonConverter;
import pl.com.dddbyexamples.factory.demand.forecasting.ApplyReviewDecision;
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision;
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview;
import pl.com.dddbyexamples.tools.JsonConverter;
import javax.persistence.*;
import java.io.Serializable;

View File

@@ -1,4 +1,4 @@
package pl.com.bottega.factory.demand.forecasting.persistence;
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RestResource;

View File

@@ -1,12 +1,12 @@
package pl.com.bottega.factory.demand.forecasting.persistence;
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import pl.com.bottega.factory.demand.forecasting.DailyId;
import pl.com.bottega.factory.demand.forecasting.DemandValue;
import pl.com.bottega.tools.JsonConverter;
import pl.com.bottega.tools.TechnicalId;
import pl.com.dddbyexamples.factory.demand.forecasting.DailyId;
import pl.com.dddbyexamples.factory.demand.forecasting.DemandValue;
import pl.com.dddbyexamples.tools.JsonConverter;
import pl.com.dddbyexamples.tools.TechnicalId;
import javax.persistence.*;
import java.io.Serializable;

View File

@@ -1,8 +1,8 @@
package pl.com.bottega.factory.demand.forecasting.persistence;
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.stereotype.Repository;
import pl.com.bottega.tools.CommandRepository;
import pl.com.dddbyexamples.tools.CommandRepository;
@Repository("documentDao")
@RepositoryRestResource(path = "demand-documents",

View File

@@ -1,11 +1,11 @@
package pl.com.bottega.factory.demand.forecasting.persistence;
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.LastModifiedDate;
import pl.com.bottega.factory.demand.forecasting.Document;
import pl.com.bottega.tools.JsonConverter;
import pl.com.dddbyexamples.factory.demand.forecasting.Document;
import pl.com.dddbyexamples.tools.JsonConverter;
import javax.persistence.*;
import java.io.Serializable;

View File

@@ -1,4 +1,4 @@
package pl.com.bottega.factory.demand.forecasting.persistence;
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RestResource;

View File

@@ -1,9 +1,9 @@
package pl.com.bottega.factory.demand.forecasting.persistence;
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
import lombok.Getter;
import lombok.NoArgsConstructor;
import pl.com.bottega.factory.product.management.RefNoId;
import pl.com.bottega.tools.TechnicalId;
import pl.com.dddbyexamples.factory.product.management.RefNoId;
import pl.com.dddbyexamples.tools.TechnicalId;
import javax.persistence.*;
import java.io.Serializable;

View File

@@ -1,11 +1,11 @@
package pl.com.bottega.factory.demand.forecasting.projection;
package pl.com.dddbyexamples.factory.demand.forecasting.projection;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.data.rest.core.annotation.RestResource;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Repository;
import pl.com.bottega.tools.ProjectionRepository;
import pl.com.dddbyexamples.tools.ProjectionRepository;
import java.time.LocalDate;
import java.util.List;

View File

@@ -1,8 +1,8 @@
package pl.com.bottega.factory.demand.forecasting.projection;
package pl.com.dddbyexamples.factory.demand.forecasting.projection;
import lombok.Getter;
import lombok.NoArgsConstructor;
import pl.com.bottega.factory.demand.forecasting.Demand;
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
import javax.persistence.*;
import java.io.Serializable;

View File

@@ -1,9 +1,9 @@
package pl.com.bottega.factory.demand.forecasting.projection;
package pl.com.dddbyexamples.factory.demand.forecasting.projection;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import pl.com.bottega.factory.demand.forecasting.DailyId;
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged;
import pl.com.dddbyexamples.factory.demand.forecasting.DailyId;
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged;
@Component
@AllArgsConstructor
@@ -12,10 +12,7 @@ public class CurrentDemandProjection {
private final CurrentDemandDao demandDao;
public void applyDemandedLevelsChanged(DemandedLevelsChanged event) {
event.getResults().forEach((daily, change) -> {
createOrUpdateDemand(daily, change);
}
);
event.getResults().forEach(this::createOrUpdateDemand);
}
private void createOrUpdateDemand(DailyId daily, DemandedLevelsChanged.Change change) {

View File

@@ -1,13 +1,13 @@
package pl.com.bottega.factory;
package pl.com.dddbyexamples.factory;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Bean;
import org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters;
import org.springframework.scheduling.annotation.EnableScheduling;
import pl.com.bottega.factory.demand.forecasting.DemandEvents;
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged;
import pl.com.bottega.factory.demand.forecasting.ReviewRequired;
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents;
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged;
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired;
import java.time.Clock;

View File

@@ -1,15 +1,15 @@
package pl.com.bottega.factory.delivery.planning
package pl.com.dddbyexamples.factory.delivery.planning
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinition
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinition
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity
import spock.lang.Specification
import static java.time.LocalTime.of as time
import static pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinition.of
import static pl.com.bottega.factory.demand.forecasting.Demand.Schema.*
import static DeliveryPlannerDefinition.of
import static pl.com.dddbyexamples.factory.demand.forecasting.Demand.Schema.*
@SpringBootTest
class DeliveryPlannerDefinitionTest extends Specification {

View File

@@ -1,12 +1,18 @@
package pl.com.bottega.factory.demand.forecasting
package pl.com.dddbyexamples.factory.demand.forecasting
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.annotation.Commit
import pl.com.bottega.factory.demand.forecasting.persistence.DemandDao
import pl.com.bottega.factory.demand.forecasting.persistence.DemandEntity
import pl.com.bottega.factory.demand.forecasting.persistence.ProductDemandDao
import pl.com.bottega.factory.demand.forecasting.persistence.ProductDemandEntity
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
import pl.com.dddbyexamples.factory.demand.forecasting.DemandValue
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewPolicy
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DemandDao
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DemandEntity
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandDao
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandEntity
import spock.lang.Specification
import javax.persistence.EntityManager