Browse Source

立即下单;修复下单金额异常

v1.0
Yen 2 years ago
parent
commit
cda91ea6f2
  1. 2
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  2. 3
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java
  3. 1
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  4. 3
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java
  5. 3
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java
  6. 72
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  7. 3
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java

2
src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java

@ -111,6 +111,7 @@ public class GoodsSpuController {
if(param.getSelectSpecialFlag()!=null&&param.getSelectSpecialFlag().equals(1)){
if(!spu.getSpecialSkuId().equals(0L)){
GoodsSku goodsSku = goodsSkuService.getById(spu.getSpecialSkuId());
spu.setSkuCode(goodsSku.getSkuCode());
spu.setSkuPrice(goodsSku.getSalesPrice());
spu.setVolume(goodsSku.getVolume().toString());
spu.setWeight(goodsSku.getWeight().toString());
@ -120,6 +121,7 @@ public class GoodsSpuController {
for (OmsSpuToSkuKey skuKey : toSkuKeys) {
if(spu.getSpuCode().equals(skuKey.getSkuCode())){
GoodsSku goodsSku = goodsSkuService.getByCode(skuKey.getInvCode());
spu.setSkuCode(goodsSku.getSkuCode());
spu.setSkuPrice(goodsSku.getSalesPrice());
spu.setVolume(goodsSku.getVolume().toString());
spu.setWeight(goodsSku.getWeight().toString());

3
src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java

@ -156,6 +156,9 @@ public class GoodsSpu implements Serializable {
@TableField(exist = false)
private BigDecimal skuPrice;
@TableField(exist = false)
private String skuCode;
/** 重量(kg) */
@TableField(exist = false)
@NotNull(message = "重量(kg)不能为空")

1
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java

@ -293,6 +293,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
LambdaQueryWrapper<GoodsSku> skuLqw = new LambdaQueryWrapper<>();
skuLqw.eq(GoodsSku::getBelong,placeName);
skuLqw.eq(GoodsSku::getOrderFlag,1);
skuLqw.in(GoodsSku::getSpuId,spuIds);
List<GoodsSku> goodsSkus = goodsSkuService.list(skuLqw);

3
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java

@ -42,6 +42,9 @@ public class OmsOrderModifyParam {
/** 备注 */
private String remark;
/** 立刻下单标识 */
private Integer instantFlag;
/** 供应商ID */
private Long supplierId;

3
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java

@ -29,6 +29,9 @@ public class OmsOrderSkuBo {
/** 创建订单参数(确认订单时可不传) */
private CreateOrderParam createOrderParam;
/** 立刻下单标识 */
private Integer instantFlag;
/** 收货地址 */
private Long addressId;

72
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -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&&param.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());

3
src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java

@ -63,9 +63,6 @@ public class TzcPolicyController {
private TzcPolicyItemService tzcPolicyItemService;
private TzcPolicyApplicationService policyApplicationService;
private TzcPolicyOperationServiceImpl tzcPolicyOperationService;
private TbsBudgetLogService tbsBudgetLogService;
private SysUserService sysUserService;
private SeeYonRequestService seeYonService;
private SysPostUserService postUserService;
@GetMapping("succ")

Loading…
Cancel
Save