small improvements

This commit is contained in:
Michał Michaluk
2017-12-14 13:49:31 +01:00
parent 81b597fbc8
commit 64b746cb36
20 changed files with 72 additions and 81 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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.*;

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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)

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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);
}
}

View File

@@ -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();
}
}
}
}

View File

@@ -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;
}
}

View File

@@ -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();
}
}
}