|
@ -2,10 +2,10 @@ package com.qs.serve.modules.oms.service.impl; |
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
|
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; |
|
|
|
|
|
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; |
|
|
import com.qs.serve.modules.bms.service.BmsSupplierAddressService; |
|
|
import com.qs.serve.modules.bms.service.BmsSupplierAddressService; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSku; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSku; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSpu; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSpu; |
|
@ -14,11 +14,7 @@ import com.qs.serve.modules.goods.service.GoodsSkuService; |
|
|
import com.qs.serve.modules.goods.service.GoodsSpuService; |
|
|
import com.qs.serve.modules.goods.service.GoodsSpuService; |
|
|
import com.qs.serve.modules.oms.entity.OmsOrderItem; |
|
|
import com.qs.serve.modules.oms.entity.OmsOrderItem; |
|
|
import com.qs.serve.modules.oms.entity.OmsShoppingCart; |
|
|
import com.qs.serve.modules.oms.entity.OmsShoppingCart; |
|
|
import com.qs.serve.modules.oms.entity.bo.CreateOrderParam; |
|
|
import com.qs.serve.modules.oms.entity.bo.*; |
|
|
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo.*; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.bo.OmsOrderPcBo; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.bo.OmsSpuAssesInfoBo; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam; |
|
|
import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam; |
|
|
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; |
|
|
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; |
|
|
import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; |
|
|
import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; |
|
@ -61,6 +57,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
private OmsShoppingCartService omsShoppingCartService; |
|
|
private OmsShoppingCartService omsShoppingCartService; |
|
|
private GoodsSkuService goodsSkuService; |
|
|
private GoodsSkuService goodsSkuService; |
|
|
private GoodsSpuService goodsSpuService; |
|
|
private GoodsSpuService goodsSpuService; |
|
|
|
|
|
private BmsSupplierMapper bmsSupplierMapper; |
|
|
private BmsSupplierAddressService bmsSupplierAddressService; |
|
|
private BmsSupplierAddressService bmsSupplierAddressService; |
|
|
private SysUserService sysUserService; |
|
|
private SysUserService sysUserService; |
|
|
private SysDeptService sysDeptService; |
|
|
private SysDeptService sysDeptService; |
|
@ -119,21 +116,19 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public OmsConfirmOrderResult confirmOrderPc(OmsOrderPcBo confirmOrder) { |
|
|
public OmsConfirmOrderResult confirmOrderPc(OmsOrderSkuBo confirmOrder) { |
|
|
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); |
|
|
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); |
|
|
//构建Sku
|
|
|
//构建Sku
|
|
|
List<Long> spuIds = confirmOrder.getSpuParamList().stream() |
|
|
List<Long> spuIds = confirmOrder.getSpuParamList().stream() |
|
|
.map(OmsOrderPcBo.SpuParam::getSpuId).collect(Collectors.toList()); |
|
|
.map(OmsOrderSkuBo.SpuParam::getSpuId).collect(Collectors.toList()); |
|
|
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); |
|
|
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); |
|
|
|
|
|
|
|
|
//通过当前函数获取当前账套对于的skuID
|
|
|
|
|
|
List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("",spuIds); |
|
|
|
|
|
|
|
|
|
|
|
//构建临时购物车列表
|
|
|
//构建临时购物车列表
|
|
|
List<OmsShoppingCart> shoppingCartList = new ArrayList<>(); |
|
|
List<OmsShoppingCart> shoppingCartList = new ArrayList<>(); |
|
|
for (GoodsSpu goodsSpu : spuList) { |
|
|
for (GoodsSpu goodsSpu : spuList) { |
|
|
int qty = 1; |
|
|
int qty = 1; |
|
|
for (OmsOrderPcBo.SpuParam spuParam : confirmOrder.getSpuParamList()) { |
|
|
for (OmsOrderSkuBo.SpuParam spuParam : confirmOrder.getSpuParamList()) { |
|
|
if(spuParam.getSpuId().equals(goodsSpu.getId())){ |
|
|
if(spuParam.getSpuId().equals(goodsSpu.getId())){ |
|
|
qty = spuParam.getQty(); |
|
|
qty = spuParam.getQty(); |
|
|
} |
|
|
} |
|
@ -142,25 +137,10 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
shoppingCart.setSpuId(goodsSpu.getId()); |
|
|
shoppingCart.setSpuId(goodsSpu.getId()); |
|
|
shoppingCart.setSpuCode(goodsSpu.getSpuCode()); |
|
|
shoppingCart.setSpuCode(goodsSpu.getSpuCode()); |
|
|
shoppingCart.setQuantity(qty); |
|
|
shoppingCart.setQuantity(qty); |
|
|
//设置订单的sku信息
|
|
|
shoppingCart.setSkuId(0L); |
|
|
GoodsSku goodsSku = null; |
|
|
shoppingCart.setSkuCode(""); |
|
|
for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) { |
|
|
shoppingCart.setSpecInfo(goodsSpu.getName()); |
|
|
if(goodsSpu.getId().equals(toSkuKey.getSpuId())){ |
|
|
shoppingCart.setAddPrice(BigDecimal.ZERO); |
|
|
goodsSku = goodsSkuService.getById(toSkuKey.getSkuId()); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(goodsSku==null){ |
|
|
|
|
|
shoppingCart.setSkuId(0L); |
|
|
|
|
|
shoppingCart.setSkuCode(""); |
|
|
|
|
|
shoppingCart.setSpecInfo(goodsSpu.getName()); |
|
|
|
|
|
shoppingCart.setAddPrice(BigDecimal.ZERO); |
|
|
|
|
|
}else { |
|
|
|
|
|
shoppingCart.setSkuId(goodsSku.getId()); |
|
|
|
|
|
shoppingCart.setSkuCode(goodsSku.getSkuCode()); |
|
|
|
|
|
shoppingCart.setSpecInfo(goodsSku.getSpecInfos()); |
|
|
|
|
|
shoppingCart.setAddPrice(goodsSku.getSalesPrice()); |
|
|
|
|
|
} |
|
|
|
|
|
shoppingCartList.add(shoppingCart); |
|
|
shoppingCartList.add(shoppingCart); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -183,9 +163,86 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
confirmOrderResult.setAmountInfo(calcAmount); |
|
|
confirmOrderResult.setAmountInfo(calcAmount); |
|
|
confirmOrderResult.setShoppingCarts(shoppingCartList); |
|
|
confirmOrderResult.setShoppingCarts(shoppingCartList); |
|
|
confirmOrderResult.setOrderType(confirmOrder.getOrderType()); |
|
|
confirmOrderResult.setOrderType(confirmOrder.getOrderType()); |
|
|
|
|
|
confirmOrderResult.setBrandRuleId(confirmOrder.getBrandRuleId()); |
|
|
return confirmOrderResult; |
|
|
return confirmOrderResult; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
|
public void modifyOrder(OmsOrderModifyParam param) { |
|
|
|
|
|
OmsOrder order = super.getById(param.getUserId()); |
|
|
|
|
|
if(order.getStatus().equals(0)){ |
|
|
|
|
|
Assert.throwEx("非草稿状态订单无法修改"); |
|
|
|
|
|
} |
|
|
|
|
|
order.setId(param.getId()); |
|
|
|
|
|
order.setOrderType(param.getOrderType()); |
|
|
|
|
|
order.setSupplierAddrId(param.getSupplierAddrId()); |
|
|
|
|
|
order.setBrandRuleId(param.getBrandRuleId()); |
|
|
|
|
|
if(param.getSupplierId()!=null && !param.getSupplierId().equals(order.getSupplierId())){ |
|
|
|
|
|
BmsSupplier supplier = bmsSupplierMapper.selectById(param.getSupplierId()); |
|
|
|
|
|
order.setSupplierId(param.getSupplierId()); |
|
|
|
|
|
order.setSupplierName(supplier.getSupplierName()); |
|
|
|
|
|
order.setSupplierCode(supplier.getSupplierCode()); |
|
|
|
|
|
} |
|
|
|
|
|
if(StringUtils.hasText(param.getUserId())){ |
|
|
|
|
|
SysUser sysUser = sysUserService.getById(param.getUserId()); |
|
|
|
|
|
order.setUserId(param.getUserId()); |
|
|
|
|
|
order.setUserPhone(sysUser.getMobile()); |
|
|
|
|
|
order.setUserCode(sysUser.getCode()); |
|
|
|
|
|
} |
|
|
|
|
|
order.setBillType(param.getBillType()); |
|
|
|
|
|
order.setUrgentFlag(param.getUrgentFlag()); |
|
|
|
|
|
order.setRemark(param.getRemark()); |
|
|
|
|
|
|
|
|
|
|
|
//构建新的item
|
|
|
|
|
|
List<OmsOrderItem> newOrderItemList = new ArrayList<>(); |
|
|
|
|
|
List<OmsOrderModifyParam.OmsOrderItemModifyBo> orderModifyItems = param.getOrderItems(); |
|
|
|
|
|
for (OmsOrderModifyParam.OmsOrderItemModifyBo modifyItem : orderModifyItems) { |
|
|
|
|
|
GoodsSku goodsSku = null; |
|
|
|
|
|
GoodsSpu goodsSpu = null; |
|
|
|
|
|
if(order.getLatitudeFrom().equals("sku")){ |
|
|
|
|
|
//H5下单
|
|
|
|
|
|
goodsSku = goodsSkuService.getById(modifyItem.getSkuId()); |
|
|
|
|
|
goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); |
|
|
|
|
|
}else { |
|
|
|
|
|
//PC下单
|
|
|
|
|
|
goodsSpu = goodsSpuService.getById(modifyItem.getSpuId()); |
|
|
|
|
|
} |
|
|
|
|
|
OmsOrderItem orderItem = new OmsOrderItem(); |
|
|
|
|
|
orderItem.setOrderId(order.getId()); |
|
|
|
|
|
orderItem.setOrderSn(order.getOrderSn()); |
|
|
|
|
|
orderItem.setSpuId(goodsSpu.getId()); |
|
|
|
|
|
orderItem.setSpuCode(goodsSpu.getSpuCode()); |
|
|
|
|
|
orderItem.setSpuTitle(goodsSpu.getName()); |
|
|
|
|
|
if(goodsSku==null){ |
|
|
|
|
|
orderItem.setSkuId(goodsSku.getId()); |
|
|
|
|
|
orderItem.setSkuCode(goodsSku.getSkuCode()); |
|
|
|
|
|
orderItem.setSpecValues(goodsSku.getSpecInfos()); |
|
|
|
|
|
orderItem.setSkuUnit(null); |
|
|
|
|
|
orderItem.setSkuImg(null); |
|
|
|
|
|
orderItem.setSalesPrice(goodsSku.getSalesPrice()); |
|
|
|
|
|
orderItem.setCusPrice(goodsSku.getSalesPrice()); |
|
|
|
|
|
orderItem.setMarketPrice(goodsSku.getMarketPrice()); |
|
|
|
|
|
}else { |
|
|
|
|
|
orderItem.setSpecValues(goodsSpu.getName()); |
|
|
|
|
|
orderItem.setSalesPrice(BigDecimal.ZERO); |
|
|
|
|
|
orderItem.setCusPrice(BigDecimal.ZERO); |
|
|
|
|
|
orderItem.setMarketPrice(BigDecimal.ZERO); |
|
|
|
|
|
} |
|
|
|
|
|
orderItem.setQuantity(modifyItem.getQuantity()); |
|
|
|
|
|
newOrderItemList.add(orderItem); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.updateById(order); |
|
|
|
|
|
//移除已有的ITEM
|
|
|
|
|
|
LambdaQueryWrapper<OmsOrderItem> rmItemLqw = new LambdaQueryWrapper<>(); |
|
|
|
|
|
rmItemLqw.eq(OmsOrderItem::getOrderId,param.getId()); |
|
|
|
|
|
omsOrderItemService.remove(rmItemLqw); |
|
|
|
|
|
//重新保存item
|
|
|
|
|
|
omsOrderItemService.saveBatch(newOrderItemList); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public OmsOrder createOrder(OmsOrderBo omsOrderBo) { |
|
|
public OmsOrder createOrder(OmsOrderBo omsOrderBo) { |
|
@ -198,7 +255,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public OmsOrder createOrderPc(OmsOrderPcBo omsOrderBo) { |
|
|
public OmsOrder createOrderPc(OmsOrderSkuBo omsOrderBo) { |
|
|
OmsConfirmOrderResult confirmOrder = this.confirmOrderPc(omsOrderBo); |
|
|
OmsConfirmOrderResult confirmOrder = this.confirmOrderPc(omsOrderBo); |
|
|
confirmOrder.setLatitudeFrom("SPU"); |
|
|
confirmOrder.setLatitudeFrom("SPU"); |
|
|
CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); |
|
|
CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); |
|
@ -215,12 +272,14 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
} |
|
|
} |
|
|
List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts(); |
|
|
List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts(); |
|
|
OmsOrder order = new OmsOrder(); |
|
|
OmsOrder order = new OmsOrder(); |
|
|
|
|
|
order.setLatitudeFrom(confirmOrder.getLatitudeFrom().toLowerCase(Locale.ROOT)); |
|
|
order.setOrderSn("SN"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
order.setOrderSn("SN"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
order.setOrderType(confirmOrder.getOrderType()); |
|
|
order.setOrderType(confirmOrder.getOrderType()); |
|
|
order.setSupplierId(Long.parseLong(supplier.getId())); |
|
|
order.setSupplierId(Long.parseLong(supplier.getId())); |
|
|
order.setSupplierCode(supplier.getCode()); |
|
|
order.setSupplierCode(supplier.getCode()); |
|
|
order.setSupplierName(supplier.getName()); |
|
|
order.setSupplierName(supplier.getName()); |
|
|
order.setSupplierAddrId(address.getId()); |
|
|
order.setSupplierAddrId(address.getId()); |
|
|
|
|
|
order.setBrandRuleId(confirmOrder.getBrandRuleId()); |
|
|
order.setUserId(user.getId()); |
|
|
order.setUserId(user.getId()); |
|
|
order.setUserName(user.getName()); |
|
|
order.setUserName(user.getName()); |
|
|
order.setUserCode(user.getCode()); |
|
|
order.setUserCode(user.getCode()); |
|
@ -324,6 +383,38 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
iteLqw.eq(OmsOrderItem::getOrderId,id); |
|
|
iteLqw.eq(OmsOrderItem::getOrderId,id); |
|
|
List<OmsOrderItem> list = omsOrderItemService.list(iteLqw); |
|
|
List<OmsOrderItem> list = omsOrderItemService.list(iteLqw); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Long> spuIds = list.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
|
|
//TODO 通过当前函数获取当前账套对于的skuID
|
|
|
|
|
|
List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("",spuIds); |
|
|
|
|
|
|
|
|
|
|
|
for (OmsOrderItem orderItem : list) { |
|
|
|
|
|
if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){ |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
//设置订单的sku信息
|
|
|
|
|
|
GoodsSku goodsSku = null; |
|
|
|
|
|
for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) { |
|
|
|
|
|
if(orderItem.getSpuId().equals(toSkuKey.getSpuId())){ |
|
|
|
|
|
goodsSku = goodsSkuService.getById(toSkuKey.getSkuId()); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(goodsSku==null){ |
|
|
|
|
|
Assert.throwEx("未能匹配当前账号的产品信息:"+orderItem.getSpuCode()); |
|
|
|
|
|
}else { |
|
|
|
|
|
orderItem.setSkuId(goodsSku.getId()); |
|
|
|
|
|
orderItem.setSkuCode(goodsSku.getSkuCode()); |
|
|
|
|
|
orderItem.setSpecValues(goodsSku.getSpecInfos()); |
|
|
|
|
|
orderItem.setSalesPrice(goodsSku.getSalesPrice()); |
|
|
|
|
|
orderItem.setSalesPrice(goodsSku.getSalesPrice()); |
|
|
|
|
|
orderItem.setMarketPrice(goodsSku.getSalesPrice()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//更新设置sku后的信息
|
|
|
|
|
|
omsOrderItemService.updateBatchById(list); |
|
|
|
|
|
|
|
|
List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>(); |
|
|
List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>(); |
|
|
for (OmsOrderItem orderItem : list) { |
|
|
for (OmsOrderItem orderItem : list) { |
|
|
ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem(); |
|
|
ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem(); |
|
|