diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 8721dd5a..3b085ef0 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -111,6 +111,7 @@ public class GoodsSpuController { if(param.getSelectSpecialFlag()!=null&¶m.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()); diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java index 5180930a..c765652a 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java +++ b/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)不能为空") diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java index 8279cc3f..e2cd5c45 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java @@ -293,6 +293,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl im LambdaQueryWrapper skuLqw = new LambdaQueryWrapper<>(); skuLqw.eq(GoodsSku::getBelong,placeName); + skuLqw.eq(GoodsSku::getOrderFlag,1); skuLqw.in(GoodsSku::getSpuId,spuIds); List goodsSkus = goodsSkuService.list(skuLqw); diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java index df590c8e..1f047ca7 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java index ae8ef12b..8bb24be2 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 5df60381..fa90582e 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/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 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 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 im order.setRemark(createOrderParam.getRemark()); } this.save(order); + + //兼容转换 + List spuToSkuKeys = null; + if(confirmOrder.getLatitudeFrom()!=null&&confirmOrder.getLatitudeFrom().equals("SPU")){ + List 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 orderItems = new ArrayList<>(); for (OmsShoppingCart shoppingCart : shoppingCarts) { OmsOrderItem orderItem = new OmsOrderItem(); @@ -358,15 +385,17 @@ public class OmsOrderServiceImpl extends ServiceImpl 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 im orderItem.setCusPrice(shoppingCart.getSupplierSalesPrice()); orderItems.add(orderItem); } + + //兼容客户特殊价 + List inventoryCusPrices = null; + try { + String supplierCode = supplier.getCode(); + List skuCodes = orderItems.stream().map(OmsOrderItem::getSkuCode).collect(Collectors.toList()); + if(skuCodes.size()>0){ + InventoryCusPriceQuery query = new InventoryCusPriceQuery(); + query.setCusCode(supplierCode); + query.setInvCodes(skuCodes); + R 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 cartIds = confirmOrder.getShoppingCarts().stream() @@ -512,6 +573,9 @@ public class OmsOrderServiceImpl extends ServiceImpl 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()); diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java index 8dc8605b..9985527a 100644 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java +++ b/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")