|
@@ -10,14 +10,25 @@ import com.sd.business.entity.department.po.Department;
|
|
|
import com.sd.business.entity.order.dto.OrderInfoDto;
|
|
|
import com.sd.business.entity.order.dto.OrderSelectDto;
|
|
|
import com.sd.business.entity.order.po.OrderInfo;
|
|
|
+import com.sd.business.entity.order.po.OrderSku;
|
|
|
+import com.sd.business.entity.order.po.OrderSkuBom;
|
|
|
import com.sd.business.entity.order.vo.OrderInfoVo;
|
|
|
+import com.sd.business.entity.order.vo.OrderSkuBomVo;
|
|
|
+import com.sd.business.entity.order.vo.OrderSkuVo;
|
|
|
import com.sd.business.mapper.order.OrderMapper;
|
|
|
+import com.sd.business.service.bom.BomSpecService;
|
|
|
import com.sd.business.service.department.DepartmentService;
|
|
|
import com.sd.business.service.order.OrderService;
|
|
|
+import com.sd.business.service.order.OrderSkuBomService;
|
|
|
+import com.sd.business.service.order.OrderSkuService;
|
|
|
+import com.sd.business.service.sku.SkuSpecService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -33,6 +44,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
|
|
|
@Autowired
|
|
|
private DepartmentService departmentService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private OrderSkuService orderSkuService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SkuSpecService skuSpecService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BomSpecService bomSpecService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OrderSkuBomService orderSkuBomService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<OrderInfoVo> getPage(OrderSelectDto dto) {
|
|
|
IWrapper<OrderInfo> wrapper = getWrapper();
|
|
@@ -64,18 +87,38 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
|
|
|
if (orderInfo == null) {
|
|
|
throw new ServiceException("未知订单");
|
|
|
}
|
|
|
+
|
|
|
+ // 订单
|
|
|
OrderInfoVo result = BeanUtil.toBean(orderInfo, OrderInfoVo.class);
|
|
|
result.setDeliveryTime(DateUtil.offsetDay(result.getCreateTime(), 1));
|
|
|
-
|
|
|
if (orderInfo.getDepartmentId() == null) {
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
Department department = departmentService.getById(orderInfo.getDepartmentId());
|
|
|
if (department != null) {
|
|
|
result.setDepartmentName(department.getName());
|
|
|
}
|
|
|
|
|
|
+ // 订单明细
|
|
|
+ List<OrderSkuVo> orderSkuList = BeanUtil.copyToList(orderSkuService.list(q -> q.eq(OrderSku::getOrderId, id)), OrderSkuVo.class);
|
|
|
+ skuSpecService.attributeAssign(orderSkuList, OrderSkuVo::getSkuSpecId, (item, skuSpec) -> {
|
|
|
+ item.setBomSpecId(skuSpec.getBomSpecId());
|
|
|
+ });
|
|
|
+ bomSpecService.attributeAssign(orderSkuList, OrderSkuVo::getBomSpecId, (item, bomSpec) -> {
|
|
|
+ item.setName(bomSpec.getName());
|
|
|
+ item.setCode(bomSpec.getCode());
|
|
|
+ });
|
|
|
+ result.setOrderSkuList(orderSkuList);
|
|
|
+
|
|
|
+ // 包材配件/单品
|
|
|
+ List<OrderSkuBomVo> orderSkuBomList = BeanUtil.copyToList(orderSkuBomService.list(q -> q.eq(OrderSkuBom::getOrderId, id)), OrderSkuBomVo.class);
|
|
|
+ bomSpecService.attributeAssign(orderSkuBomList, OrderSkuBom::getBomSpecId, (item, bomSpec) -> {
|
|
|
+ item.setBomSpecName(bomSpec.getName());
|
|
|
+ });
|
|
|
+ Map<Long, List<OrderSkuBomVo>> orderSkuBomMap = orderSkuBomList.stream().collect(Collectors.groupingBy(OrderSkuBom::getOrderSkuId));
|
|
|
+ for (OrderSkuVo orderSkuVo : orderSkuList) {
|
|
|
+ orderSkuVo.setOrderSkuBomList(orderSkuBomMap.getOrDefault(orderSkuVo.getId(), Collections.emptyList()));
|
|
|
+ }
|
|
|
|
|
|
return result;
|
|
|
}
|