|
|
@ -15,6 +15,8 @@ import com.qs.serve.modules.goods.common.GoodsConst; |
|
|
|
import com.qs.serve.modules.goods.entity.GoodsCategoryRule; |
|
|
|
import com.qs.serve.modules.goods.entity.GoodsSku; |
|
|
|
import com.qs.serve.modules.goods.entity.GoodsSpu; |
|
|
|
import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice; |
|
|
|
import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery; |
|
|
|
import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; |
|
|
|
import com.qs.serve.modules.goods.mapper.GoodsCategoryRuleMapper; |
|
|
|
import com.qs.serve.modules.goods.service.GoodsSkuService; |
|
|
@ -35,6 +37,7 @@ import com.qs.serve.modules.sys.entity.SysDept; |
|
|
|
import com.qs.serve.modules.sys.entity.SysUser; |
|
|
|
import com.qs.serve.modules.sys.service.SysDeptService; |
|
|
|
import com.qs.serve.modules.sys.service.SysUserService; |
|
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.jetbrains.annotations.NotNull; |
|
|
@ -299,6 +302,10 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
omsOrderItemService.remove(rmItemLqw); |
|
|
|
//重新保存item
|
|
|
|
omsOrderItemService.saveBatch(newOrderItemList); |
|
|
|
//立即下单
|
|
|
|
if(param.getInstantFlag()!=null&¶m.getInstantFlag().equals(1)){ |
|
|
|
this.buildPriceOrder(order.getId()+"",null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -317,7 +324,11 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
OmsConfirmOrderResult confirmOrder = this.confirmOrderPc(omsOrderBo); |
|
|
|
confirmOrder.setLatitudeFrom("SPU"); |
|
|
|
CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); |
|
|
|
return this.buildOmsOrder(confirmOrder, createOrderParam); |
|
|
|
OmsOrder order = this.buildOmsOrder(confirmOrder, createOrderParam); |
|
|
|
if(omsOrderBo.getInstantFlag()!=null&&omsOrderBo.getInstantFlag().equals(1)){ |
|
|
|
this.buildPriceOrder(order.getId()+"",null); |
|
|
|
} |
|
|
|
return order; |
|
|
|
} |
|
|
|
|
|
|
|
@NotNull |
|
|
@ -348,6 +359,22 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
order.setRemark(createOrderParam.getRemark()); |
|
|
|
} |
|
|
|
this.save(order); |
|
|
|
|
|
|
|
//兼容转换
|
|
|
|
List<OmsSpuToSkuKey> spuToSkuKeys = null; |
|
|
|
if(confirmOrder.getLatitudeFrom()!=null&&confirmOrder.getLatitudeFrom().equals("SPU")){ |
|
|
|
List<String> spuCodes = shoppingCarts.stream().map(OmsShoppingCart::getSpuCode).collect(Collectors.toList()); |
|
|
|
spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_PlaCE,spuCodes); |
|
|
|
for (OmsSpuToSkuKey skuKey : spuToSkuKeys) { |
|
|
|
for (OmsShoppingCart cart : shoppingCarts) { |
|
|
|
if(skuKey.getSkuCode().equals(cart.getSpuCode())){ |
|
|
|
cart.setSkuCode(skuKey.getInvCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<OmsOrderItem> orderItems = new ArrayList<>(); |
|
|
|
for (OmsShoppingCart shoppingCart : shoppingCarts) { |
|
|
|
OmsOrderItem orderItem = new OmsOrderItem(); |
|
|
@ -358,15 +385,17 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
if(confirmOrder.getLatitudeFrom()!=null&&confirmOrder.getLatitudeFrom().equals("SPU")){ |
|
|
|
// spu维度
|
|
|
|
orderItem.setSpuId(shoppingCart.getSpuId()); |
|
|
|
orderItem.setSpuCode(shoppingCart.getSpuCode()); |
|
|
|
orderItem.setSpuTitle(shoppingCart.getSpecInfo()); |
|
|
|
orderItem.setSkuId(shoppingCart.getId()); |
|
|
|
orderItem.setSkuCode(shoppingCart.getSkuCode()); |
|
|
|
orderItem.setSkuUnit(null); |
|
|
|
orderItem.setSkuImg(shoppingCart.getPicUrl()); |
|
|
|
orderItem.setSpecValues(shoppingCart.getSpecInfo()); |
|
|
|
orderItem.setMarketPrice(BigDecimal.ZERO); |
|
|
|
orderItem.setSalesPrice(BigDecimal.ZERO); |
|
|
|
orderItem.setSpuCode(shoppingCart.getSpuCode()); |
|
|
|
GoodsSku goodsSku = goodsSkuService.getByCode(orderItem.getSkuCode()); |
|
|
|
orderItem.setMarketPrice(goodsSku.getMarketPrice()); |
|
|
|
orderItem.setSalesPrice(goodsSku.getSalesPrice()); |
|
|
|
orderItem.setCusPrice(goodsSku.getSalesPrice()); |
|
|
|
}else { |
|
|
|
// 默认sku
|
|
|
|
GoodSkuVo goodSkuVo = shoppingCart.getGoodSkuVo(); |
|
|
@ -385,6 +414,38 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
orderItem.setCusPrice(shoppingCart.getSupplierSalesPrice()); |
|
|
|
orderItems.add(orderItem); |
|
|
|
} |
|
|
|
|
|
|
|
//兼容客户特殊价
|
|
|
|
List<InventoryCusPrice> inventoryCusPrices = null; |
|
|
|
try { |
|
|
|
String supplierCode = supplier.getCode(); |
|
|
|
List<String> skuCodes = orderItems.stream().map(OmsOrderItem::getSkuCode).collect(Collectors.toList()); |
|
|
|
if(skuCodes.size()>0){ |
|
|
|
InventoryCusPriceQuery query = new InventoryCusPriceQuery(); |
|
|
|
query.setCusCode(supplierCode); |
|
|
|
query.setInvCodes(skuCodes); |
|
|
|
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价"); |
|
|
|
if(res.getStatus().equals(200)){ |
|
|
|
inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("客户特殊价异常:{}",e.getMessage()); |
|
|
|
} |
|
|
|
if(inventoryCusPrices!=null){ |
|
|
|
for (OmsOrderItem orderItem : orderItems) { |
|
|
|
for (InventoryCusPrice cusPrice : inventoryCusPrices) { |
|
|
|
if(orderItem.getSkuCode().equals(cusPrice.getInvCode())){ |
|
|
|
orderItem.setMarketPrice(cusPrice.getPrice()); |
|
|
|
orderItem.setCusPrice(cusPrice.getPrice()); |
|
|
|
orderItem.setSalesPrice(cusPrice.getPrice()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
omsOrderItemService.saveBatch(orderItems); |
|
|
|
//清空勾选的购物车
|
|
|
|
List<Long> cartIds = confirmOrder.getShoppingCarts().stream() |
|
|
@ -512,6 +573,9 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
xltOrderItem.setId(xltOrder.getId()+"_"+(i+1)); |
|
|
|
xltOrderItem.setDingDanID(xltOrder.getId()); |
|
|
|
xltOrderItem.setSpuCode(orderItem.getSpuCode()); |
|
|
|
if(!StringUtils.hasText(orderItem.getSkuCode())){ |
|
|
|
Assert.throwEx("SKU【"+orderItem.getSpuCode()+"】存货缺失,请联系档案负责人"); |
|
|
|
} |
|
|
|
xltOrderItem.setChanPinBianHao(orderItem.getSkuCode()); |
|
|
|
xltOrderItem.setChanPinDanWei(orderItem.getSkuUnit()); |
|
|
|
xltOrderItem.setDingHuoShuLiang(orderItem.getQuantity()); |
|
|
|