tdd : picking system - assigned picker
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
package com.example.pickingtdd.entity;
|
||||
|
||||
public enum OrderStateEnum {
|
||||
ORDERED, LISTED, PENDING, PICKING, DONE
|
||||
ORDERED, LISTED, ASSIGNED, PENDING, PICKING, DONE
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.Map;
|
||||
@Setter
|
||||
public class PickingList {
|
||||
private Long id;
|
||||
private Long orderId;
|
||||
private Order order;
|
||||
private Map<Sku, Integer> skuAmountMap;
|
||||
private PickingStateEnum state;
|
||||
private Picker picker;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package com.example.pickingtdd.entity;
|
||||
|
||||
public enum PickingStateEnum {
|
||||
NOTASSIGNED
|
||||
NOTASSIGNED, ASSIGNED, PROGRESS, PENDING, ERROR, DONE
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.example.pickingtdd.service;
|
||||
|
||||
import com.example.pickingtdd.entity.Order;
|
||||
import com.example.pickingtdd.entity.Picker;
|
||||
import com.example.pickingtdd.entity.PickingList;
|
||||
|
||||
public interface PickingListService {
|
||||
|
||||
PickingList createPickingList(Order order);
|
||||
|
||||
PickingList assignPicker(PickingList pickingList, Picker picker);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ public class PickingListServiceImpl implements PickingListService {
|
||||
@Override
|
||||
public PickingList createPickingList(Order order) {
|
||||
PickingList pickingList = new PickingList();
|
||||
pickingList.setOrderId(order.getOrderId());
|
||||
pickingList.setOrder(order);
|
||||
pickingList.setState(PickingStateEnum.NOTASSIGNED);
|
||||
|
||||
Map<Sku, Integer> skuAmountMap = new HashMap<>();
|
||||
@@ -30,4 +30,13 @@ public class PickingListServiceImpl implements PickingListService {
|
||||
orderService.changeOrderState(order, OrderStateEnum.LISTED);
|
||||
return pickingList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PickingList assignPicker(PickingList pickingList, Picker picker) {
|
||||
pickingList.setPicker(picker);
|
||||
pickingList.setState(PickingStateEnum.ASSIGNED);
|
||||
|
||||
orderService.changeOrderState(pickingList.getOrder(), OrderStateEnum.ASSIGNED);
|
||||
return pickingList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ public class PickingListServiceTests {
|
||||
.thenReturn(true);
|
||||
|
||||
PickingList assertPickingList = new PickingList();
|
||||
assertPickingList.setOrderId(1L);
|
||||
assertPickingList.setOrder(order);
|
||||
assertPickingList.setSkuAmountMap(
|
||||
Maps.newHashMap(
|
||||
order.getOrderDetailList().get(0).getSku(),
|
||||
@@ -59,10 +59,22 @@ public class PickingListServiceTests {
|
||||
|
||||
PickingList pickingList = pickingListService.createPickingList(order);
|
||||
|
||||
assertEquals(assertPickingList.getOrderId(), pickingList.getOrderId());
|
||||
assertEquals(PickingStateEnum.NOTASSIGNED, pickingList.getState());
|
||||
assertEquals(assertPickingList.getOrder(), pickingList.getOrder());
|
||||
assertEquals(assertPickingList.getState(), pickingList.getState());
|
||||
assertEquals(
|
||||
assertPickingList.getSkuAmountMap().get(order.getOrderDetailList().get(0).getSku()),
|
||||
pickingList.getSkuAmountMap().get(order.getOrderDetailList().get(0).getSku()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void assignPicker() {
|
||||
PickingList pickingList = pickingListService.createPickingList(order);
|
||||
|
||||
Picker picker = new Picker();
|
||||
|
||||
PickingList assignedPickingList = pickingListService.assignPicker(pickingList, picker);
|
||||
|
||||
assertEquals(picker, assignedPickingList.getPicker());
|
||||
assertEquals(PickingStateEnum.ASSIGNED, assignedPickingList.getState());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,11 @@ SKU
|
||||
주문 -> 피킹리스트 -> 피커 -> 피킹완료
|
||||
|
||||
------- TO-DO -------
|
||||
[] changeOrderState 메소드 생성
|
||||
[] Picker 구체화
|
||||
|
||||
[v] 피킹 리스트 피커에게 할당
|
||||
[v] PickingList - Order 연관관계 설정
|
||||
[v] changeOrderState 메소드 생성
|
||||
[v] 피킹 리스트 생성
|
||||
[v] Order validation 에 OrderDetail 검증 추가
|
||||
[v] OrderDetail validation 추가
|
||||
|
||||
Reference in New Issue
Block a user