demand changes review processing

This commit is contained in:
Michał Michaluk
2017-12-12 23:23:15 +01:00
parent 277f5f9822
commit c6e0b9baf8
27 changed files with 550 additions and 110 deletions

View File

@@ -3,12 +3,14 @@ package pl.com.bottega.factory.demand.forecasting;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import java.time.LocalDate;
@Getter
@AllArgsConstructor
@EqualsAndHashCode
@ToString
public class DailyId {
private final String refNo;
private final LocalDate date;

View File

@@ -3,30 +3,57 @@ 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 id;
RefNoId refNo;
Map<DailyId, Change> results;
public DemandedLevelsChanged(RefNoId id, Map<DailyId, Change> results) {
this.id = id;
public DemandedLevelsChanged(RefNoId refNo, Map<DailyId, Change> results) {
this.refNo = refNo;
this.results = Collections.unmodifiableMap(results);
}
public RefNoId getRefNo() {
return id;
}
@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

@@ -3,10 +3,12 @@ package pl.com.bottega.factory.product.management;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
@Getter
@AllArgsConstructor
@EqualsAndHashCode
@ToString
public class RefNoId {
private final String refNo;
}