group id changed to dddbyexamples
This commit is contained in:
@@ -4,14 +4,14 @@
|
||||
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-model</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>shared-kernel-model</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package pl.com.bottega.factory.delivery.planning;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning;
|
||||
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.delivery.planning;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package pl.com.bottega.factory.delivery.planning;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Map;
|
||||
@@ -1,7 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
import pl.com.bottega.factory.demand.forecasting.DailyDemand.Result;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DailyDemand.Result;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Comparator;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Value;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged.Change;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged.Change;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -43,7 +42,7 @@ class DailyDemand {
|
||||
Result.ResultBuilder result = Result.builder(id);
|
||||
State state = state();
|
||||
if (policy.reviewNeeded(this.documented, this.adjustment, documented)) {
|
||||
result.toReview(new ToReview(id,
|
||||
result.toReview(new ReviewRequired.ToReview(id,
|
||||
this.documented,
|
||||
this.adjustment.getDemand(),
|
||||
documented)
|
||||
@@ -117,7 +116,7 @@ class DailyDemand {
|
||||
return new ResultBuilder().id(id);
|
||||
}
|
||||
|
||||
static List<ToReview> reviews(List<Result> results) {
|
||||
static List<ReviewRequired.ToReview> reviews(List<Result> results) {
|
||||
return Collections.unmodifiableList(results.stream()
|
||||
.filter(result -> result.toReview != null)
|
||||
.map(result -> result.toReview)
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
public interface DemandEvents {
|
||||
void emit(DemandedLevelsChanged event);
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.HashMap;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import pl.com.bottega.factory.demand.forecasting.DailyDemand.Result;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged.Change;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged.Change;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
|
||||
import java.time.Clock;
|
||||
import java.time.LocalDate;
|
||||
@@ -28,11 +26,11 @@ class ProductDemand {
|
||||
void adjust(AdjustDemand adjustDemand) {
|
||||
LocalDate today = LocalDate.now(clock);
|
||||
|
||||
List<Result> results = adjustDemand
|
||||
List<DailyDemand.Result> results = adjustDemand
|
||||
.forEachStartingFrom(today, this::adjustDaily);
|
||||
updates.addAll(Result.updates(results));
|
||||
updates.addAll(DailyDemand.Result.updates(results));
|
||||
|
||||
Map<DailyId, Change> changes = Result.levelChanges(results);
|
||||
Map<DailyId, Change> changes = DailyDemand.Result.levelChanges(results);
|
||||
|
||||
if (!changes.isEmpty()) {
|
||||
events.emit(new DemandedLevelsChanged(id, changes));
|
||||
@@ -42,17 +40,17 @@ class ProductDemand {
|
||||
void process(Document document) {
|
||||
LocalDate today = LocalDate.now(clock);
|
||||
|
||||
List<Result> results = document
|
||||
List<DailyDemand.Result> results = document
|
||||
.forEachStartingFrom(today, this::updateDaily);
|
||||
updates.addAll(Result.updates(results));
|
||||
updates.addAll(DailyDemand.Result.updates(results));
|
||||
|
||||
Map<DailyId, Change> changes = Result.levelChanges(results);
|
||||
Map<DailyId, Change> changes = DailyDemand.Result.levelChanges(results);
|
||||
|
||||
if (!changes.isEmpty()) {
|
||||
events.emit(new DemandedLevelsChanged(id, changes));
|
||||
}
|
||||
|
||||
List<ToReview> reviews = Result.reviews(results);
|
||||
List<ReviewRequired.ToReview> reviews = DailyDemand.Result.reviews(results);
|
||||
|
||||
if (!reviews.isEmpty()) {
|
||||
events.emit(new ReviewRequired(id, reviews));
|
||||
@@ -65,12 +63,12 @@ class ProductDemand {
|
||||
}
|
||||
}
|
||||
|
||||
private Result adjustDaily(LocalDate date, Adjustment adjustment) {
|
||||
private DailyDemand.Result adjustDaily(LocalDate date, Adjustment adjustment) {
|
||||
DailyDemand demand = demands.get(date);
|
||||
return demand.adjust(adjustment);
|
||||
}
|
||||
|
||||
private Result updateDaily(LocalDate date, Demand demand) {
|
||||
private DailyDemand.Result updateDaily(LocalDate date, Demand demand) {
|
||||
DailyDemand daily = demands.get(date);
|
||||
return daily.update(demand);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
interface ProductDemandRepository {
|
||||
ProductDemand get(String refNo);
|
||||
@@ -1,7 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
public interface ReviewPolicy {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package pl.com.bottega.factory.delivery.planning
|
||||
package pl.com.dddbyexamples.factory.delivery.planning
|
||||
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.Delivery
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import spock.lang.PendingFeature
|
||||
import spock.lang.Specification
|
||||
|
||||
@@ -9,7 +10,7 @@ import java.time.LocalDateTime
|
||||
import java.time.LocalTime
|
||||
import java.util.stream.Collectors
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.Demand.Schema.AtDayStart
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Demand.Schema.AtDayStart
|
||||
|
||||
class DeliveriesSuggestionSpec extends Specification {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package pl.com.bottega.factory.delivery.planning
|
||||
package pl.com.dddbyexamples.factory.delivery.planning
|
||||
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.Delivery
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.DeliveryAutoPlanner
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
@@ -8,8 +10,8 @@ import java.time.LocalDateTime
|
||||
import java.time.LocalTime
|
||||
import java.util.stream.Collectors
|
||||
|
||||
import static pl.com.bottega.factory.delivery.planning.DeliveriesSuggestion.timesAndFractions
|
||||
import static pl.com.bottega.factory.demand.forecasting.Demand.Schema.AtDayStart
|
||||
import static pl.com.dddbyexamples.factory.delivery.planning.DeliveriesSuggestion.timesAndFractions
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Demand.Schema.AtDayStart
|
||||
|
||||
class DeliveryAutoPlannerSpec extends Specification {
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DailyId
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewPolicy
|
||||
|
||||
import java.time.Clock
|
||||
import java.time.Instant
|
||||
import java.time.LocalDate
|
||||
import java.time.ZoneId
|
||||
|
||||
import static DemandedLevelsChanged.Change
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged.Change
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
|
||||
class DailyDemandBuilder {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
@@ -1,10 +1,12 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandService
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewDecision.PICK_NEW
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision.PICK_NEW
|
||||
|
||||
class DemandServiceSpec extends Specification implements ProductDemandTrait {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import java.time.Clock
|
||||
import java.time.LocalDate
|
||||
@@ -1,5 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
@@ -1,5 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import spock.lang.Specification
|
||||
|
||||
class KeepingDailyDemandsSpec extends Specification {
|
||||
@@ -1,11 +1,21 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.bottega.factory.product.management.RefNoId
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ApplyReviewDecision
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DailyId
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Document
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId
|
||||
|
||||
import java.time.*
|
||||
|
||||
import static DemandedLevelsChanged.Change
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged.Change
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
|
||||
class ProductDemandBuilder {
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ApplyReviewDecision
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Document
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired
|
||||
|
||||
import java.time.LocalDate
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
|
||||
trait ProductDemandTrait {
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewPolicy
|
||||
import spock.lang.Specification
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.Adjustment.strong
|
||||
import static pl.com.bottega.factory.demand.forecasting.Adjustment.weak
|
||||
import static pl.com.bottega.factory.demand.forecasting.Demand.of
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Adjustment.strong
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Adjustment.weak
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Demand.of
|
||||
|
||||
class ReviewPolicySpec extends Specification {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewDecision.*
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision.*
|
||||
|
||||
class ReviewProcessingSpec extends Specification implements ProductDemandTrait {
|
||||
|
||||
Reference in New Issue
Block a user