|
@@ -18,7 +18,6 @@ import com.sd.business.entity.production.po.ProductionTask;
|
|
|
import com.sd.business.entity.production.vo.ProductionOrderDetailVo;
|
|
|
import com.sd.business.entity.production.vo.ProductionOrderScheduleVo;
|
|
|
import com.sd.business.entity.production.vo.ProductionOrderVo;
|
|
|
-import com.sd.business.entity.sku.po.SkuSpecLink;
|
|
|
import com.sd.business.mapper.production.ProductionOrderMapper;
|
|
|
import com.sd.business.service.bom.BomSpecService;
|
|
|
import com.sd.business.service.order.OrderPackageBomService;
|
|
@@ -34,8 +33,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -125,7 +125,7 @@ public class ProductionOrderServiceImpl implements ProductionOrderService {
|
|
|
Assert.notNull(id, "订单id不能为空");
|
|
|
|
|
|
List<ProductionOrderDetailVo.SkuSpec> skuSpecList = getSkuSpecList(id);
|
|
|
- List<ProductionOrderDetailVo.OrderPackage> packageList = getPackageList(skuSpecList);
|
|
|
+ List<ProductionOrderDetailVo.OrderPackage> packageList = getPackageList(id);
|
|
|
|
|
|
ProductionOrderDetailVo vo = new ProductionOrderDetailVo();
|
|
|
vo.setSkuSpecList(skuSpecList);
|
|
@@ -143,7 +143,7 @@ public class ProductionOrderServiceImpl implements ProductionOrderService {
|
|
|
|
|
|
List<OrderPackageBom> orderPackageBomList = dto.getPackageList();
|
|
|
orderPackageBomList.forEach(item -> item.setOrderId(orderId));
|
|
|
- orderPackageBomService.saveBatch(orderPackageBomList);
|
|
|
+ orderPackageBomService.editLinked(orderPackageBomList, OrderPackageBom::getOrderId, orderId);
|
|
|
|
|
|
Date date = new Date();
|
|
|
orderService.update(q -> q
|
|
@@ -186,41 +186,16 @@ public class ProductionOrderServiceImpl implements ProductionOrderService {
|
|
|
return skuSpecList;
|
|
|
}
|
|
|
|
|
|
- private List<ProductionOrderDetailVo.OrderPackage> getPackageList(List<ProductionOrderDetailVo.SkuSpec> skuSpecList) {
|
|
|
- // 订单sku规格id 数量map
|
|
|
- Map<Long, BigDecimal> map = skuSpecList.stream().collect(Collectors.toMap(
|
|
|
- ProductionOrderDetailVo.SkuSpec::getSkuSpecId,
|
|
|
- ProductionOrderDetailVo.SkuSpec::getQuantity
|
|
|
- ));
|
|
|
-
|
|
|
- // 获取订单sku规格包装列表
|
|
|
- List<SkuSpecLink> list = skuSpecLinkService.list(q -> q
|
|
|
- .eq(SkuSpecLink::getType, 2)
|
|
|
- .eq(SkuSpecLink::getDepartmentId, SecurityUtils.getDeptId())
|
|
|
- .in(SkuSpecLink::getSkuSpecId, map.keySet())
|
|
|
- );
|
|
|
-
|
|
|
- if (list.size() == 0) {
|
|
|
- return Collections.emptyList();
|
|
|
- }
|
|
|
+ private List<ProductionOrderDetailVo.OrderPackage> getPackageList(Long orderId) {
|
|
|
+
|
|
|
+ List<OrderPackageBom> list = orderPackageBomService.list(q -> q.eq(OrderPackageBom::getOrderId, orderId));
|
|
|
|
|
|
- // 同一包装合并数量
|
|
|
- List<ProductionOrderDetailVo.OrderPackage> orderPackageList = new ArrayList<>(list.stream()
|
|
|
- .map(item -> {
|
|
|
- ProductionOrderDetailVo.OrderPackage orderPackage = new ProductionOrderDetailVo.OrderPackage();
|
|
|
- BigDecimal quantity = map.get(item.getSkuSpecId());
|
|
|
- orderPackage.setBomSpecId(item.getBomSpecId());
|
|
|
- orderPackage.setQuantity(item.getQuantity().multiply(quantity));
|
|
|
- return orderPackage;
|
|
|
- })
|
|
|
- .collect(Collectors.toMap(
|
|
|
- ProductionOrderDetailVo.OrderPackage::getBomSpecId,
|
|
|
- Function.identity(),
|
|
|
- (v1, v2) -> {
|
|
|
- v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
|
|
|
- return v1;
|
|
|
- }
|
|
|
- )).values());
|
|
|
+ List<ProductionOrderDetailVo.OrderPackage> orderPackageList = list.stream().map(item -> {
|
|
|
+ ProductionOrderDetailVo.OrderPackage orderPackage = new ProductionOrderDetailVo.OrderPackage();
|
|
|
+ orderPackage.setBomSpecId(item.getBomSpecId());
|
|
|
+ orderPackage.setQuantity(item.getQuantity());
|
|
|
+ return orderPackage;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
|
// 赋值品名 品号 销售单价 成本价
|
|
|
bomSpecService.attributeAssign(orderPackageList, ProductionOrderDetailVo.OrderPackage::getBomSpecId, (item, bomSpec) -> {
|