small improvements
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.*;
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<DailyId, Change> results;
|
||||
|
||||
public DemandedLevelsChanged(RefNoId refNo, Map<DailyId, Change> results) {
|
||||
this.refNo = refNo;
|
||||
this.results = Collections.unmodifiableMap(results);
|
||||
}
|
||||
|
||||
@Value
|
||||
public static class Change {
|
||||
Demand previous;
|
||||
Demand current;
|
||||
}
|
||||
}
|
||||
|
||||
@Value
|
||||
class ReviewRequested {
|
||||
RefNoId refNo;
|
||||
List<ReviewNeeded> reviews;
|
||||
|
||||
public ReviewRequested(RefNoId refNo, List<ReviewNeeded> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<DailyId, Change> results;
|
||||
|
||||
public DemandedLevelsChanged(RefNoId refNo, Map<DailyId, Change> results) {
|
||||
this.refNo = refNo;
|
||||
this.results = Collections.unmodifiableMap(results);
|
||||
}
|
||||
|
||||
@Value
|
||||
public static class Change {
|
||||
Demand previous;
|
||||
Demand current;
|
||||
}
|
||||
}
|
||||
@@ -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<ReviewNeeded> reviews;
|
||||
|
||||
public ReviewRequested(RefNoId refNo, List<ReviewNeeded> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user