|
@@ -212,15 +212,15 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
private OrderSku createOrderSku(JSONObject wlnOrderSku, OrderInfo orderInfo, SkuSpec skuSpec) {
|
|
private OrderSku createOrderSku(JSONObject wlnOrderSku, OrderInfo orderInfo, SkuSpec skuSpec) {
|
|
OrderSku orderSku = new OrderSku();
|
|
OrderSku orderSku = new OrderSku();
|
|
orderSku.setId(IdWorker.getId());
|
|
orderSku.setId(IdWorker.getId());
|
|
- orderSku.setOrderId(orderInfo.getId());
|
|
|
|
- orderSku.setBomSpecId(skuSpec.getBomSpecId());
|
|
|
|
- orderSku.setQuantity(wlnOrderSku.getBigDecimal("size"));
|
|
|
|
- orderSku.setPrintType(1);
|
|
|
|
orderSku.setWlnSkuId(wlnOrderSku.getString("sys_goods_uid"));
|
|
orderSku.setWlnSkuId(wlnOrderSku.getString("sys_goods_uid"));
|
|
orderSku.setWlnSkuSpecId(wlnOrderSku.getString("sys_spec_uid"));
|
|
orderSku.setWlnSkuSpecId(wlnOrderSku.getString("sys_spec_uid"));
|
|
orderSku.setWlnSkuName(wlnOrderSku.getString("oln_sku_name"));
|
|
orderSku.setWlnSkuName(wlnOrderSku.getString("oln_sku_name"));
|
|
|
|
+ orderSku.setOrderId(orderInfo.getId());
|
|
orderSku.setSkuId(skuSpec.getSkuId());
|
|
orderSku.setSkuId(skuSpec.getSkuId());
|
|
orderSku.setSkuSpecId(skuSpec.getId());
|
|
orderSku.setSkuSpecId(skuSpec.getId());
|
|
|
|
+ orderSku.setBomSpecId(skuSpec.getBomSpecId());
|
|
|
|
+ orderSku.setQuantity(wlnOrderSku.getBigDecimal("size"));
|
|
|
|
+ orderSku.setPrintType(1);
|
|
orderSku.setStockPreparationStatus(StatusConstant.NO);
|
|
orderSku.setStockPreparationStatus(StatusConstant.NO);
|
|
return orderSku;
|
|
return orderSku;
|
|
}
|
|
}
|
|
@@ -228,39 +228,41 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
/**
|
|
/**
|
|
* 创建订单包材
|
|
* 创建订单包材
|
|
*/
|
|
*/
|
|
- private List<OrderSkuBom> createOrderSkuBoom(OrderInfo orderInfo, OrderSku orderSku) {
|
|
|
|
|
|
+ private List<OrderSkuBom> createOrderSkuBoom(List<OrderSku> orderSkuList, List<SkuSpecLink> list) {
|
|
|
|
|
|
- List<SkuSpecLink> list = skuSpecLinkService.list(q -> q
|
|
|
|
- .eq(SkuSpecLink::getSkuSpecId, orderSku.getSkuSpecId())
|
|
|
|
- .eq(SkuSpecLink::getType, 1)
|
|
|
|
- .eq(SkuSpecLink::getDepartmentId, orderInfo.getDepartmentId())
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
- if (list.size() == 0) {
|
|
|
|
|
|
+ if (ObjectUtil.isEmpty(list)) {
|
|
return Collections.emptyList();
|
|
return Collections.emptyList();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ Map<Long, List<SkuSpecLink>> skuSpecLinkMap = list.stream().collect(Collectors.groupingBy(SkuSpecLink::getSkuSpecId));
|
|
|
|
+
|
|
// 根据sku规格id获取bomId和bom规格id
|
|
// 根据sku规格id获取bomId和bom规格id
|
|
- List<Long> skuSpecIdList = list.stream().map(SkuSpecLink::getSkuSpecId).collect(Collectors.toList());
|
|
|
|
|
|
+ List<Long> skuSpecIdList = list.stream().map(SkuSpecLink::getSkuSpecId).distinct().collect(Collectors.toList());
|
|
Map<Long, BomBo> bomBoMap = skuSpecService.getBomBySkuSpecIdList(skuSpecIdList);
|
|
Map<Long, BomBo> bomBoMap = skuSpecService.getBomBySkuSpecIdList(skuSpecIdList);
|
|
|
|
|
|
- return list.stream().map(item -> {
|
|
|
|
|
|
+ return orderSkuList.stream().flatMap(orderSku -> {
|
|
|
|
|
|
- OrderSkuBom orderSkuBom = new OrderSkuBom();
|
|
|
|
- orderSkuBom.setId(IdWorker.getId());
|
|
|
|
- orderSkuBom.setOrderId(orderInfo.getId());
|
|
|
|
- orderSkuBom.setOrderSkuId(orderSku.getId());
|
|
|
|
- orderSkuBom.setBomSpecId(item.getBomSpecId());
|
|
|
|
- orderSkuBom.setQuantity(item.getQuantity());
|
|
|
|
|
|
+ List<SkuSpecLink> skuSpecLinkList = skuSpecLinkMap.getOrDefault(orderSku.getSkuSpecId(), Collections.emptyList());
|
|
|
|
|
|
- BomBo bomBo = bomBoMap.get(item.getBomSpecId());
|
|
|
|
- if (bomBo == null) {
|
|
|
|
- orderSkuBom.setUnitPrice(BigDecimal.ZERO);
|
|
|
|
- } else {
|
|
|
|
- orderSkuBom.setUnitPrice(ObjectUtil.defaultIfNull(bomBo.getInternalSellingPrice(), BigDecimal.ZERO));
|
|
|
|
- }
|
|
|
|
|
|
+ return skuSpecLinkList.stream().map(item -> {
|
|
|
|
+
|
|
|
|
+ OrderSkuBom orderSkuBom = new OrderSkuBom();
|
|
|
|
+ orderSkuBom.setId(IdWorker.getId());
|
|
|
|
+ orderSkuBom.setOrderId(orderSku.getOrderId());
|
|
|
|
+ orderSkuBom.setOrderSkuId(orderSku.getId());
|
|
|
|
+ orderSkuBom.setBomSpecId(item.getBomSpecId());
|
|
|
|
+ orderSkuBom.setQuantity(item.getQuantity());
|
|
|
|
+
|
|
|
|
+ BomBo bomBo = bomBoMap.get(item.getBomSpecId());
|
|
|
|
+ if (bomBo == null) {
|
|
|
|
+ orderSkuBom.setUnitPrice(BigDecimal.ZERO);
|
|
|
|
+ } else {
|
|
|
|
+ orderSkuBom.setUnitPrice(ObjectUtil.defaultIfNull(bomBo.getInternalSellingPrice(), BigDecimal.ZERO));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return orderSkuBom;
|
|
|
|
+ });
|
|
|
|
|
|
- return orderSkuBom;
|
|
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
}
|
|
}
|
|
@@ -268,15 +270,12 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
/**
|
|
/**
|
|
* 创建订单包装
|
|
* 创建订单包装
|
|
*/
|
|
*/
|
|
- private List<OrderPackageBom> createOrderPackageBomList(List<OrderSku> orderSkuList, Long departmentId) {
|
|
|
|
|
|
+ private List<OrderPackageBom> createOrderPackageBomList(List<OrderSku> orderSkuList, List<SkuSpecLink> list) {
|
|
|
|
+
|
|
|
|
+ if (ObjectUtil.isEmpty(list)) {
|
|
|
|
+ return Collections.emptyList();
|
|
|
|
+ }
|
|
|
|
|
|
- // 获取sku规格快递包材map
|
|
|
|
- List<Long> skuSpecIdList = orderSkuList.stream().map(OrderSku::getSkuSpecId).collect(Collectors.toList());
|
|
|
|
- List<SkuSpecLink> list = skuSpecLinkService.list(q -> q
|
|
|
|
- .in(SkuSpecLink::getSkuSpecId, skuSpecIdList)
|
|
|
|
- .eq(SkuSpecLink::getType, 2)
|
|
|
|
- .eq(SkuSpecLink::getDepartmentId, departmentId)
|
|
|
|
- );
|
|
|
|
Map<Long, List<SkuSpecLink>> skuSpecLinkMap = list.stream().collect(Collectors.groupingBy(SkuSpecLink::getSkuSpecId));
|
|
Map<Long, List<SkuSpecLink>> skuSpecLinkMap = list.stream().collect(Collectors.groupingBy(SkuSpecLink::getSkuSpecId));
|
|
|
|
|
|
Map<Long, OrderPackageBom> orderPackageBomMap = new HashMap<>();
|
|
Map<Long, OrderPackageBom> orderPackageBomMap = new HashMap<>();
|
|
@@ -292,6 +291,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
for (SkuSpecLink skuSpecLink : skuSpecLinkList) {
|
|
for (SkuSpecLink skuSpecLink : skuSpecLinkList) {
|
|
|
|
|
|
Long bomSpecId = skuSpecLink.getBomSpecId();
|
|
Long bomSpecId = skuSpecLink.getBomSpecId();
|
|
|
|
+
|
|
OrderPackageBom orderPackageBom = orderPackageBomMap.computeIfAbsent(bomSpecId, item -> {
|
|
OrderPackageBom orderPackageBom = orderPackageBomMap.computeIfAbsent(bomSpecId, item -> {
|
|
OrderPackageBom tempOrderPackageBom = new OrderPackageBom();
|
|
OrderPackageBom tempOrderPackageBom = new OrderPackageBom();
|
|
tempOrderPackageBom.setOrderId(orderSku.getOrderId());
|
|
tempOrderPackageBom.setOrderId(orderSku.getOrderId());
|
|
@@ -314,8 +314,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
private void addOrder(OrderContext context, JSONObject wlnOrder, OrderInfo orderInfo) {
|
|
private void addOrder(OrderContext context, JSONObject wlnOrder, OrderInfo orderInfo) {
|
|
Map<String, SkuSpec> skuSpecMap = context.getSkuSpecMap();
|
|
Map<String, SkuSpec> skuSpecMap = context.getSkuSpecMap();
|
|
|
|
|
|
- List<OrderSku> tempOrderSkuList = new ArrayList<>();
|
|
|
|
- List<OrderSkuBom> tempOrderSkuBomList = new ArrayList<>();
|
|
|
|
|
|
+ List<OrderSku> orderSkuList = new ArrayList<>();
|
|
|
|
|
|
// 是否添加
|
|
// 是否添加
|
|
boolean isAdd = true;
|
|
boolean isAdd = true;
|
|
@@ -337,21 +336,34 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
|
|
|
|
// 创建订单sku
|
|
// 创建订单sku
|
|
OrderSku orderSku = createOrderSku(wlnOrderSku, orderInfo, skuSpec);
|
|
OrderSku orderSku = createOrderSku(wlnOrderSku, orderInfo, skuSpec);
|
|
- tempOrderSkuList.add(orderSku);
|
|
|
|
|
|
+ orderSkuList.add(orderSku);
|
|
|
|
|
|
- // 创建订单包材
|
|
|
|
- List<OrderSkuBom> orderSkuBomList = createOrderSkuBoom(orderInfo, orderSku);
|
|
|
|
- tempOrderSkuBomList.addAll(orderSkuBomList);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if (isAdd) {
|
|
|
|
- List<OrderPackageBom> tempOrderPackageBomList = createOrderPackageBomList(tempOrderSkuList, orderInfo.getDepartmentId());
|
|
|
|
- context.getSaveOrderList().add(orderInfo);
|
|
|
|
- context.getSaveOrderSkuList().addAll(tempOrderSkuList);
|
|
|
|
- context.getSaveOrderSkuBomList().addAll(tempOrderSkuBomList);
|
|
|
|
- context.getOrderPackageBomList().addAll(tempOrderPackageBomList);
|
|
|
|
|
|
+ if (!isAdd) {
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 订单关联
|
|
|
|
+ List<Long> skuSpecIdList = orderSkuList.stream().map(OrderSku::getSkuSpecId).collect(Collectors.toList());
|
|
|
|
+ List<SkuSpecLink> list = skuSpecLinkService.list(q -> q
|
|
|
|
+ .in(SkuSpecLink::getSkuSpecId, skuSpecIdList)
|
|
|
|
+ .eq(SkuSpecLink::getDepartmentId, orderInfo.getDepartmentId()));
|
|
|
|
+
|
|
|
|
+ // 跳过type区分包材和快递包装
|
|
|
|
+ Map<Integer, List<SkuSpecLink>> map = list.stream().collect(Collectors.groupingBy(SkuSpecLink::getType));
|
|
|
|
+
|
|
|
|
+ // 获取订单sku包材
|
|
|
|
+ List<OrderSkuBom> orderSkuBomList = createOrderSkuBoom(orderSkuList, map.get(1));
|
|
|
|
+
|
|
|
|
+ // 获取订单sku快递包装
|
|
|
|
+ List<OrderPackageBom> orderPackageBomList = createOrderPackageBomList(orderSkuList, map.get(2));
|
|
|
|
+
|
|
|
|
+ context.getSaveOrderList().add(orderInfo);
|
|
|
|
+ context.getSaveOrderSkuList().addAll(orderSkuList);
|
|
|
|
+ context.getSaveOrderSkuBomList().addAll(orderSkuBomList);
|
|
|
|
+ context.getOrderPackageBomList().addAll(orderPackageBomList);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|