diff --git a/app-monolith/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastEntity.java b/app-monolith/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastEntity.java index 99ba879..c867b25 100644 --- a/app-monolith/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastEntity.java +++ b/app-monolith/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastEntity.java @@ -12,7 +12,7 @@ import java.time.LocalDateTime; @Entity(name = "DeliveryForecast") @Getter @NoArgsConstructor -@EqualsAndHashCode(of = "id") +@EqualsAndHashCode(of = {"refNo", "date"}) public class DeliveryForecastEntity implements Serializable { @Id diff --git a/app-monolith/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastProjection.java b/app-monolith/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastProjection.java index 4a9eab0..c558a34 100644 --- a/app-monolith/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastProjection.java +++ b/app-monolith/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastProjection.java @@ -5,7 +5,7 @@ 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.DemandEvents.DemandedLevelsChanged; +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; diff --git a/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandService.java b/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandService.java index 547f78b..a37060c 100644 --- a/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandService.java +++ b/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandService.java @@ -2,7 +2,7 @@ package pl.com.bottega.factory.demand.forecasting; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested.ReviewNeeded; +import pl.com.bottega.factory.demand.forecasting.ReviewRequested.ReviewNeeded; import javax.transaction.Transactional; diff --git a/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/command/DemandReviewEntity.java b/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/command/DemandReviewEntity.java index adffe05..de6216e 100644 --- a/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/command/DemandReviewEntity.java +++ b/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/command/DemandReviewEntity.java @@ -4,7 +4,7 @@ import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested.ReviewNeeded; +import pl.com.bottega.factory.demand.forecasting.ReviewRequested.ReviewNeeded; import pl.com.bottega.factory.demand.forecasting.ReviewDecision; import pl.com.bottega.tools.JsonConverter; diff --git a/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/projection/CurrentDemandProjection.java b/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/projection/CurrentDemandProjection.java index 75a5f6f..af441cf 100644 --- a/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/projection/CurrentDemandProjection.java +++ b/app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/projection/CurrentDemandProjection.java @@ -2,7 +2,7 @@ package pl.com.bottega.factory.demand.forecasting.projection; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged; +import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged; @Component @AllArgsConstructor diff --git a/app-monolith/src/main/java/pl/com/bottega/factory/shortages/prediction/ShortagePredictionEventsMapping.java b/app-monolith/src/main/java/pl/com/bottega/factory/shortages/prediction/ShortagePredictionEventsMapping.java index 5134d2e..8a84a4d 100644 --- a/app-monolith/src/main/java/pl/com/bottega/factory/shortages/prediction/ShortagePredictionEventsMapping.java +++ b/app-monolith/src/main/java/pl/com/bottega/factory/shortages/prediction/ShortagePredictionEventsMapping.java @@ -3,7 +3,7 @@ package pl.com.bottega.factory.shortages.prediction; import lombok.AllArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged; +import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged; import pl.com.bottega.factory.shortages.prediction.monitoring.ShortagePredictionProcess; import pl.com.bottega.factory.shortages.prediction.monitoring.ShortagePredictionProcessRepository; diff --git a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DailyDemand.java b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DailyDemand.java index ae36940..e609998 100644 --- a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DailyDemand.java +++ b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DailyDemand.java @@ -1,8 +1,8 @@ package pl.com.bottega.factory.demand.forecasting; import lombok.Value; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged.Change; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested.ReviewNeeded; +import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged.Change; +import pl.com.bottega.factory.demand.forecasting.ReviewRequested.ReviewNeeded; import java.util.Objects; import java.util.Optional; diff --git a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ProductDemand.java b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ProductDemand.java index aff193c..2554029 100644 --- a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ProductDemand.java +++ b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ProductDemand.java @@ -1,9 +1,7 @@ package pl.com.bottega.factory.demand.forecasting; import lombok.AllArgsConstructor; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested.ReviewNeeded; +import pl.com.bottega.factory.demand.forecasting.ReviewRequested.ReviewNeeded; import pl.com.bottega.factory.product.management.RefNoId; import java.time.Clock; diff --git a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ReviewDecision.java b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ReviewDecision.java index ca46374..d0c4618 100644 --- a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ReviewDecision.java +++ b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ReviewDecision.java @@ -1,7 +1,7 @@ package pl.com.bottega.factory.demand.forecasting; import lombok.AllArgsConstructor; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested.ReviewNeeded; +import pl.com.bottega.factory.demand.forecasting.ReviewRequested.ReviewNeeded; import java.util.Collections; import java.util.function.Function; diff --git a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/UnitOfWork.java b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/UnitOfWork.java index a008807..fbb94f7 100644 --- a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/UnitOfWork.java +++ b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/UnitOfWork.java @@ -1,7 +1,6 @@ package pl.com.bottega.factory.demand.forecasting; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged; -import pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested.ReviewNeeded; +import pl.com.bottega.factory.demand.forecasting.ReviewRequested.ReviewNeeded; import java.util.*; diff --git a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DailyDemandBuilder.groovy b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DailyDemandBuilder.groovy index f6ea9d0..dd42f03 100644 --- a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DailyDemandBuilder.groovy +++ b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DailyDemandBuilder.groovy @@ -5,8 +5,8 @@ import java.time.Instant import java.time.LocalDate import java.time.ZoneId -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged.Change -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested.ReviewNeeded +import static DemandedLevelsChanged.Change +import static ReviewRequested.ReviewNeeded class DailyDemandBuilder { diff --git a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DemandAdjustmentSpec.groovy b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DemandAdjustmentSpec.groovy index 319a7d5..15ad3ad 100644 --- a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DemandAdjustmentSpec.groovy +++ b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DemandAdjustmentSpec.groovy @@ -4,8 +4,6 @@ import spock.lang.Specification import java.time.LocalDate -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged - class DemandAdjustmentSpec extends Specification implements ProductDemandTrait { def events = Mock(DemandEvents) diff --git a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DocumentProcessingSpec.groovy b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DocumentProcessingSpec.groovy index 5ce5b04..011c230 100644 --- a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DocumentProcessingSpec.groovy +++ b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/DocumentProcessingSpec.groovy @@ -4,8 +4,6 @@ import spock.lang.Specification import java.time.LocalDate -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged - class DocumentProcessingSpec extends Specification implements ProductDemandTrait { def events = Mock(DemandEvents) diff --git a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ProductDemandBuilder.groovy b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ProductDemandBuilder.groovy index 8c992b9..5efd30c 100644 --- a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ProductDemandBuilder.groovy +++ b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ProductDemandBuilder.groovy @@ -6,8 +6,6 @@ import java.time.* import static DemandedLevelsChanged.Change import static ReviewRequested.ReviewNeeded -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested class ProductDemandBuilder { diff --git a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ProductDemandTrait.groovy b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ProductDemandTrait.groovy index 94b8978..72ee1dd 100644 --- a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ProductDemandTrait.groovy +++ b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ProductDemandTrait.groovy @@ -3,8 +3,6 @@ package pl.com.bottega.factory.demand.forecasting import java.time.LocalDate import static ReviewRequested.ReviewNeeded -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.ReviewRequested trait ProductDemandTrait { diff --git a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ReviewProcessingSpec.groovy b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ReviewProcessingSpec.groovy index de3eacd..6d8c26f 100644 --- a/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ReviewProcessingSpec.groovy +++ b/demand-forecasting-model/src/test/groovy/pl/com/bottega/factory/demand/forecasting/ReviewProcessingSpec.groovy @@ -4,7 +4,6 @@ import spock.lang.Specification import java.time.LocalDate -import static pl.com.bottega.factory.demand.forecasting.DemandEvents.DemandedLevelsChanged import static pl.com.bottega.factory.demand.forecasting.ReviewDecision.* class ReviewProcessingSpec extends Specification implements ProductDemandTrait { diff --git a/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Demand.java b/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Demand.java index 126c20f..d21516e 100644 --- a/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Demand.java +++ b/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Demand.java @@ -23,9 +23,4 @@ public class Demand { return of(0); } - public static Demand ofNullable(Long level, Schema schema) { - return level == null || schema == null - ? nothingDemanded() - : of(level, schema); - } } diff --git a/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandEvents.java b/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandEvents.java index aaeac22..fa47c87 100644 --- a/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandEvents.java +++ b/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandEvents.java @@ -1,59 +1,8 @@ package pl.com.bottega.factory.demand.forecasting; -import lombok.Value; -import pl.com.bottega.factory.product.management.RefNoId; - -import java.time.LocalDate; -import java.util.Collections; -import java.util.List; -import java.util.Map; - public interface DemandEvents { void emit(DemandedLevelsChanged event); void emit(ReviewRequested event); - @Value - class DemandedLevelsChanged { - RefNoId refNo; - Map results; - - public DemandedLevelsChanged(RefNoId refNo, Map results) { - this.refNo = refNo; - this.results = Collections.unmodifiableMap(results); - } - - @Value - public static class Change { - Demand previous; - Demand current; - } - } - - @Value - class ReviewRequested { - RefNoId refNo; - List reviews; - - public ReviewRequested(RefNoId refNo, List reviews) { - this.refNo = refNo; - this.reviews = Collections.unmodifiableList(reviews); - } - - @Value - public static class ReviewNeeded { - DailyId id; - Demand previousDocumented; - Demand adjustment; - Demand newDocumented; - - public String getRefNo() { - return id.getRefNo(); - } - - public LocalDate getDate() { - return id.getDate(); - } - } - } } diff --git a/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandedLevelsChanged.java b/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandedLevelsChanged.java new file mode 100644 index 0000000..daa1cdc --- /dev/null +++ b/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandedLevelsChanged.java @@ -0,0 +1,24 @@ +package pl.com.bottega.factory.demand.forecasting; + +import lombok.Value; +import pl.com.bottega.factory.product.management.RefNoId; + +import java.util.Collections; +import java.util.Map; + +@Value +public class DemandedLevelsChanged { + RefNoId refNo; + Map results; + + public DemandedLevelsChanged(RefNoId refNo, Map results) { + this.refNo = refNo; + this.results = Collections.unmodifiableMap(results); + } + + @Value + public static class Change { + Demand previous; + Demand current; + } +} diff --git a/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ReviewRequested.java b/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ReviewRequested.java new file mode 100644 index 0000000..5ed4bf0 --- /dev/null +++ b/shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ReviewRequested.java @@ -0,0 +1,35 @@ +package pl.com.bottega.factory.demand.forecasting; + +import lombok.Value; +import pl.com.bottega.factory.product.management.RefNoId; + +import java.time.LocalDate; +import java.util.Collections; +import java.util.List; + +@Value +public class ReviewRequested { + RefNoId refNo; + List reviews; + + public ReviewRequested(RefNoId refNo, List reviews) { + this.refNo = refNo; + this.reviews = Collections.unmodifiableList(reviews); + } + + @Value + public static class ReviewNeeded { + DailyId id; + Demand previousDocumented; + Demand adjustment; + Demand newDocumented; + + public String getRefNo() { + return id.getRefNo(); + } + + public LocalDate getDate() { + return id.getDate(); + } + } +}