|
@ -2,9 +2,9 @@ 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.config.properties.ProjectApisProperties; |
|
|
|
|
|
import com.qs.serve.common.framework.redis.RedisService; |
|
|
import com.qs.serve.common.framework.redis.RedisService; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
|
|
|
import com.qs.serve.common.model.dto.SimpleKeyValue; |
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
@ -12,39 +12,36 @@ import com.qs.serve.modules.bms.entity.BmsSupplierAddress; |
|
|
import com.qs.serve.modules.bms.mapper.BmsRegionMapper; |
|
|
import com.qs.serve.modules.bms.mapper.BmsRegionMapper; |
|
|
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; |
|
|
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.common.GoodsConst; |
|
|
|
|
|
import com.qs.serve.modules.goods.entity.*; |
|
|
import com.qs.serve.modules.goods.entity.*; |
|
|
import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto; |
|
|
import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto; |
|
|
import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice; |
|
|
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.entity.vo.GoodSkuVo; |
|
|
import com.qs.serve.modules.goods.mapper.GoodsCategoryRuleMapper; |
|
|
import com.qs.serve.modules.goods.mapper.GoodsCategoryRuleMapper; |
|
|
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; |
|
|
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; |
|
|
import com.qs.serve.modules.goods.service.*; |
|
|
import com.qs.serve.modules.goods.service.*; |
|
|
import com.qs.serve.modules.oms.entity.*; |
|
|
import com.qs.serve.modules.oms.entity.*; |
|
|
import com.qs.serve.modules.oms.entity.bo.*; |
|
|
import com.qs.serve.modules.oms.entity.bo.*; |
|
|
import com.qs.serve.modules.oms.entity.dto.*; |
|
|
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.dto.XltOrderDTO; |
|
|
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; |
|
|
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; |
|
|
import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; |
|
|
import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; |
|
|
|
|
|
import com.qs.serve.modules.oms.mapper.OmsOrderMapper; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderItemService; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderItemService; |
|
|
|
|
|
import com.qs.serve.modules.oms.service.OmsOrderService; |
|
|
import com.qs.serve.modules.oms.service.OmsShoppingCartService; |
|
|
import com.qs.serve.modules.oms.service.OmsShoppingCartService; |
|
|
import com.qs.serve.modules.sale.entity.SalePlan; |
|
|
import com.qs.serve.modules.sale.entity.SalePlan; |
|
|
import com.qs.serve.modules.sale.entity.SalePlanGoods; |
|
|
import com.qs.serve.modules.sale.entity.SalePlanGoods; |
|
|
import com.qs.serve.modules.sale.mapper.SalePlanGoodsMapper; |
|
|
import com.qs.serve.modules.sale.mapper.SalePlanGoodsMapper; |
|
|
import com.qs.serve.modules.sale.mapper.SalePlanMapper; |
|
|
import com.qs.serve.modules.sale.mapper.SalePlanMapper; |
|
|
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; |
|
|
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; |
|
|
import com.qs.serve.modules.sys.entity.SysDept; |
|
|
|
|
|
import com.qs.serve.modules.sys.entity.SysUser; |
|
|
import com.qs.serve.modules.sys.entity.SysUser; |
|
|
import com.qs.serve.modules.sys.service.SysDeptService; |
|
|
import com.qs.serve.modules.sys.service.SysDeptService; |
|
|
import com.qs.serve.modules.sys.service.SysUserService; |
|
|
import com.qs.serve.modules.sys.service.SysUserService; |
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
|
|
|
import com.qs.serve.modules.tbs.entity.TbsCostApply; |
|
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.jetbrains.annotations.NotNull; |
|
|
import org.jetbrains.annotations.NotNull; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderService; |
|
|
|
|
|
import com.qs.serve.modules.oms.mapper.OmsOrderMapper; |
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
import java.math.BigDecimal; |
|
@ -57,13 +54,14 @@ import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.*; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 订单 服务实现类 |
|
|
* 订单 服务实现类 |
|
|
|
|
|
* |
|
|
* @author YenHex |
|
|
* @author YenHex |
|
|
* @since 2022-10-14 |
|
|
* @since 2022-10-14 |
|
|
*/ |
|
|
*/ |
|
|
@Slf4j |
|
|
@Slf4j |
|
|
@Service |
|
|
@Service |
|
|
@AllArgsConstructor |
|
|
@AllArgsConstructor |
|
|
public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> implements OmsOrderService { |
|
|
public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> implements OmsOrderService { |
|
|
|
|
|
|
|
|
private GoodsSkuMapper goodsSkuMapper; |
|
|
private GoodsSkuMapper goodsSkuMapper; |
|
|
private GoodsSkuService goodsSkuService; |
|
|
private GoodsSkuService goodsSkuService; |
|
@ -94,9 +92,9 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); |
|
|
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); |
|
|
//购物车
|
|
|
//购物车
|
|
|
List<OmsShoppingCart> shoppingCarts; |
|
|
List<OmsShoppingCart> shoppingCarts; |
|
|
if(CollectionUtil.isNotEmpty(confirmOrder.getShoppingCartIds())){ |
|
|
if (CollectionUtil.isNotEmpty(confirmOrder.getShoppingCartIds())) { |
|
|
shoppingCarts = omsShoppingCartService.listByIds(confirmOrder.getShoppingCartIds(),supplier.getId()); |
|
|
shoppingCarts = omsShoppingCartService.listByIds(confirmOrder.getShoppingCartIds(), supplier.getId()); |
|
|
}else { |
|
|
} else { |
|
|
//立即购买,生成临时购物车
|
|
|
//立即购买,生成临时购物车
|
|
|
GoodsSku goodsSku = goodsSkuService.getById(confirmOrder.getSkuId()); |
|
|
GoodsSku goodsSku = goodsSkuService.getById(confirmOrder.getSkuId()); |
|
|
GoodsSpu goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); |
|
|
GoodsSpu goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); |
|
@ -112,7 +110,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
shoppingCart.setPicUrl(goodsSku.getPicUrl()); |
|
|
shoppingCart.setPicUrl(goodsSku.getPicUrl()); |
|
|
shoppingCarts = Arrays.asList(shoppingCart); |
|
|
shoppingCarts = Arrays.asList(shoppingCart); |
|
|
} |
|
|
} |
|
|
ShoppingCartsCheckResult cartsCheckResult = omsShoppingCartService.checkShoppingCarts(supplier,shoppingCarts,true); |
|
|
ShoppingCartsCheckResult cartsCheckResult = omsShoppingCartService.checkShoppingCarts(supplier, shoppingCarts, true); |
|
|
OmsCalcAmount calcAmount = new OmsCalcAmount(); |
|
|
OmsCalcAmount calcAmount = new OmsCalcAmount(); |
|
|
BigDecimal totalAmount = BigDecimal.ZERO; |
|
|
BigDecimal totalAmount = BigDecimal.ZERO; |
|
|
for (OmsShoppingCart shoppingCart : shoppingCarts) { |
|
|
for (OmsShoppingCart shoppingCart : shoppingCarts) { |
|
@ -173,11 +171,11 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
for (GoodsSku goodsSku : skuList) { |
|
|
for (GoodsSku goodsSku : skuList) { |
|
|
GoodsSpu goodsSpu = null; |
|
|
GoodsSpu goodsSpu = null; |
|
|
for (GoodsSpu spu : spuList) { |
|
|
for (GoodsSpu spu : spuList) { |
|
|
if(goodsSku.getSpuId().equals(spu.getId())){ |
|
|
if (goodsSku.getSpuId().equals(spu.getId())) { |
|
|
goodsSpu = spu; |
|
|
goodsSpu = spu; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if(goodsSku==null){ |
|
|
if (goodsSku == null) { |
|
|
Assert.throwEx("商品档案有更新,请刷新页面再试"); |
|
|
Assert.throwEx("商品档案有更新,请刷新页面再试"); |
|
|
} |
|
|
} |
|
|
OmsShoppingCart shoppingCart = new OmsShoppingCart(); |
|
|
OmsShoppingCart shoppingCart = new OmsShoppingCart(); |
|
@ -185,8 +183,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
shoppingCart.setSpuCode(goodsSpu.getSpuCode()); |
|
|
shoppingCart.setSpuCode(goodsSpu.getSpuCode()); |
|
|
int qty = 1; |
|
|
int qty = 1; |
|
|
for (OmsOrderSkuBo.SpuParam spuParam : confirmOrder.getSpuParamList()) { |
|
|
for (OmsOrderSkuBo.SpuParam spuParam : confirmOrder.getSpuParamList()) { |
|
|
if(spuParam.getSkuId()!=null&&goodsSku.getId().equals(spuParam.getSkuId())){ |
|
|
if (spuParam.getSkuId() != null && goodsSku.getId().equals(spuParam.getSkuId())) { |
|
|
if(spuParam.getQty()!=null){ |
|
|
if (spuParam.getQty() != null) { |
|
|
qty = spuParam.getQty(); |
|
|
qty = spuParam.getQty(); |
|
|
} |
|
|
} |
|
|
shoppingCart.setVolume(spuParam.getVolume()); |
|
|
shoppingCart.setVolume(spuParam.getVolume()); |
|
@ -211,12 +209,12 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
// 计算是否有活动优惠
|
|
|
// 计算是否有活动优惠
|
|
|
//收货地址
|
|
|
//收货地址
|
|
|
BmsSupplierAddress supplierAddress = null; |
|
|
BmsSupplierAddress supplierAddress = null; |
|
|
if(confirmOrder.getAddressId()==null){ |
|
|
if (confirmOrder.getAddressId() == null) { |
|
|
//supplierAddress = bmsSupplierAddressService.getDefault(Long.parseLong(supplier.getId()));
|
|
|
//supplierAddress = bmsSupplierAddressService.getDefault(Long.parseLong(supplier.getId()));
|
|
|
}else if (confirmOrder.getAddressId().equals(0L)){ |
|
|
} else if (confirmOrder.getAddressId().equals(0L)) { |
|
|
supplierAddress = new BmsSupplierAddress(); |
|
|
supplierAddress = new BmsSupplierAddress(); |
|
|
supplierAddress.setId(0L); |
|
|
supplierAddress.setId(0L); |
|
|
}else { |
|
|
} else { |
|
|
supplierAddress = bmsSupplierAddressService.getById(confirmOrder.getAddressId()); |
|
|
supplierAddress = bmsSupplierAddressService.getById(confirmOrder.getAddressId()); |
|
|
} |
|
|
} |
|
|
OmsConfirmOrderResult confirmOrderResult = new OmsConfirmOrderResult(); |
|
|
OmsConfirmOrderResult confirmOrderResult = new OmsConfirmOrderResult(); |
|
@ -233,10 +231,10 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public void modifyOrder(OmsOrderModifyParam param) { |
|
|
public void modifyOrder(OmsOrderModifyParam param) { |
|
|
OmsOrder order = super.getById(param.getId()); |
|
|
OmsOrder order = super.getById(param.getId()); |
|
|
if(!order.getStatus().equals(0)){ |
|
|
if (!order.getStatus().equals(0)) { |
|
|
Assert.throwEx("非草稿状态无法修改"); |
|
|
Assert.throwEx("非草稿状态无法修改"); |
|
|
} |
|
|
} |
|
|
if(order.getOrderType().equals(3)){ |
|
|
if (order.getOrderType().equals(3)) { |
|
|
Assert.throwEx("临期品订单不支持该接口修改"); |
|
|
Assert.throwEx("临期品订单不支持该接口修改"); |
|
|
} |
|
|
} |
|
|
order.setId(param.getId()); |
|
|
order.setId(param.getId()); |
|
@ -245,11 +243,11 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
order.setSupplierAddrId(param.getSupplierAddrId()); |
|
|
order.setSupplierAddrId(param.getSupplierAddrId()); |
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(param.getBrandRuleId()); |
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(param.getBrandRuleId()); |
|
|
order.setBrandRuleId(param.getBrandRuleId()); |
|
|
order.setBrandRuleId(param.getBrandRuleId()); |
|
|
if(categoryRule!=null){ |
|
|
if (categoryRule != null) { |
|
|
order.setBrandRuleName(categoryRule.getLabel()); |
|
|
order.setBrandRuleName(categoryRule.getLabel()); |
|
|
} |
|
|
} |
|
|
BmsSupplier supplier = null; |
|
|
BmsSupplier supplier = null; |
|
|
if(param.getSupplierId()!=null){ |
|
|
if (param.getSupplierId() != null) { |
|
|
supplier = bmsSupplierMapper.selectById(param.getSupplierId()); |
|
|
supplier = bmsSupplierMapper.selectById(param.getSupplierId()); |
|
|
order.setSupplierId(param.getSupplierId()); |
|
|
order.setSupplierId(param.getSupplierId()); |
|
|
order.setSupplierName(supplier.getSupplierName()); |
|
|
order.setSupplierName(supplier.getSupplierName()); |
|
@ -270,9 +268,9 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
List<Long> spuIds = param.getOrderItems().stream().map(OmsOrderModifyParam.OmsOrderItemModifyBo::getSpuId).collect(Collectors.toList()); |
|
|
List<Long> spuIds = param.getOrderItems().stream().map(OmsOrderModifyParam.OmsOrderItemModifyBo::getSpuId).collect(Collectors.toList()); |
|
|
spuIds.add(0L);//兼容空订单,防止空指针
|
|
|
spuIds.add(0L);//兼容空订单,防止空指针
|
|
|
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); |
|
|
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); |
|
|
Map<Long,GoodsSpu> goodsSpuMap = new HashMap<>(spuList.size()); |
|
|
Map<Long, GoodsSpu> goodsSpuMap = new HashMap<>(spuList.size()); |
|
|
for (GoodsSpu goodsSpu : spuList) { |
|
|
for (GoodsSpu goodsSpu : spuList) { |
|
|
goodsSpuMap.put(goodsSpu.getId(),goodsSpu); |
|
|
goodsSpuMap.put(goodsSpu.getId(), goodsSpu); |
|
|
} |
|
|
} |
|
|
List<String> spuCodeList = spuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); |
|
|
List<String> spuCodeList = spuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); |
|
|
/*List<OmsSpuToSkuKey> spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_PlaCE,spuCodeList); |
|
|
/*List<OmsSpuToSkuKey> spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_PlaCE,spuCodeList); |
|
@ -287,17 +285,17 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
for (OmsOrderModifyParam.OmsOrderItemModifyBo modifyItem : orderModifyItems) { |
|
|
for (OmsOrderModifyParam.OmsOrderItemModifyBo modifyItem : orderModifyItems) { |
|
|
GoodsSku goodsSku = null; |
|
|
GoodsSku goodsSku = null; |
|
|
GoodsSpu goodsSpu = null; |
|
|
GoodsSpu goodsSpu = null; |
|
|
if(order.getLatitudeFrom().equals("sku")){ |
|
|
if (order.getLatitudeFrom().equals("sku")) { |
|
|
//H5下单
|
|
|
//H5下单
|
|
|
goodsSku = goodsSkuService.getById(modifyItem.getSkuId()); |
|
|
goodsSku = goodsSkuService.getById(modifyItem.getSkuId()); |
|
|
goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); |
|
|
goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); |
|
|
}else { |
|
|
} else { |
|
|
//PC下单
|
|
|
//PC下单
|
|
|
goodsSpu = goodsSpuMap.get(modifyItem.getSpuId()); |
|
|
goodsSpu = goodsSpuMap.get(modifyItem.getSpuId()); |
|
|
//防止切换ID
|
|
|
//防止切换ID
|
|
|
if(modifyItem.getSkuId()!=null){ |
|
|
if (modifyItem.getSkuId() != null) { |
|
|
goodsSku = goodsSkuService.getById(modifyItem.getSkuId()); |
|
|
goodsSku = goodsSkuService.getById(modifyItem.getSkuId()); |
|
|
}else { |
|
|
} else { |
|
|
// String skuCode = spuGetSkuMap.get(goodsSpu.getSpuCode());
|
|
|
// String skuCode = spuGetSkuMap.get(goodsSpu.getSpuCode());
|
|
|
// goodsSku = goodsSkuService.getByCode(skuCode);
|
|
|
// goodsSku = goodsSkuService.getByCode(skuCode);
|
|
|
Assert.throwEx("订单无货或下架了"); |
|
|
Assert.throwEx("订单无货或下架了"); |
|
@ -312,7 +310,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
orderItem.setWeight(modifyItem.getWeight()); |
|
|
orderItem.setWeight(modifyItem.getWeight()); |
|
|
orderItem.setVolume(modifyItem.getVolume()); |
|
|
orderItem.setVolume(modifyItem.getVolume()); |
|
|
orderItem.setRemark(modifyItem.getRemark()); |
|
|
orderItem.setRemark(modifyItem.getRemark()); |
|
|
if(goodsSku!=null){ |
|
|
if (goodsSku != null) { |
|
|
orderItem.setSkuId(goodsSku.getId()); |
|
|
orderItem.setSkuId(goodsSku.getId()); |
|
|
orderItem.setSkuTitle(goodsSku.getSkuName()); |
|
|
orderItem.setSkuTitle(goodsSku.getSkuName()); |
|
|
orderItem.setSkuCode(goodsSku.getSkuCode()); |
|
|
orderItem.setSkuCode(goodsSku.getSkuCode()); |
|
@ -322,7 +320,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
orderItem.setSalesPrice(goodsSku.getSalesPrice()); |
|
|
orderItem.setSalesPrice(goodsSku.getSalesPrice()); |
|
|
orderItem.setCusPrice(goodsSku.getSalesPrice()); |
|
|
orderItem.setCusPrice(goodsSku.getSalesPrice()); |
|
|
orderItem.setMarketPrice(goodsSku.getMarketPrice()); |
|
|
orderItem.setMarketPrice(goodsSku.getMarketPrice()); |
|
|
}else { |
|
|
} else { |
|
|
orderItem.setSkuId(0L); |
|
|
orderItem.setSkuId(0L); |
|
|
orderItem.setSkuCode(""); |
|
|
orderItem.setSkuCode(""); |
|
|
orderItem.setSkuUnit(""); |
|
|
orderItem.setSkuUnit(""); |
|
@ -348,27 +346,27 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
this.checkGoodsRule(supplier, newOrderItemList); |
|
|
this.checkGoodsRule(supplier, newOrderItemList); |
|
|
|
|
|
|
|
|
//拦截客户维度规则
|
|
|
//拦截客户维度规则
|
|
|
goodsRuleService.checkSkuCode(skuCodes,goodsRuleService.listBySupplierId(order.getSupplierId().toString()),true); |
|
|
goodsRuleService.checkSkuCode(skuCodes, supplier.getId(), true); |
|
|
|
|
|
|
|
|
//拦截品类下单规则
|
|
|
//拦截品类下单规则
|
|
|
this.handleCategoryRule(categoryRule,newOrderItemList); |
|
|
this.handleCategoryRule(categoryRule, newOrderItemList); |
|
|
|
|
|
|
|
|
this.updateById(order); |
|
|
this.updateById(order); |
|
|
//移除已有的ITEM
|
|
|
//移除已有的ITEM
|
|
|
LambdaQueryWrapper<OmsOrderItem> rmItemLqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<OmsOrderItem> rmItemLqw = new LambdaQueryWrapper<>(); |
|
|
rmItemLqw.eq(OmsOrderItem::getOrderId,param.getId()); |
|
|
rmItemLqw.eq(OmsOrderItem::getOrderId, param.getId()); |
|
|
omsOrderItemService.remove(rmItemLqw); |
|
|
omsOrderItemService.remove(rmItemLqw); |
|
|
//重新保存item
|
|
|
//重新保存item
|
|
|
omsOrderItemService.saveBatch(newOrderItemList); |
|
|
omsOrderItemService.saveBatch(newOrderItemList); |
|
|
//立即下单
|
|
|
//立即下单
|
|
|
if(param.getInstantFlag()!=null&¶m.getInstantFlag().equals(1)){ |
|
|
if (param.getInstantFlag() != null && param.getInstantFlag().equals(1)) { |
|
|
this.buildPriceOrder(order.getId()+"",null); |
|
|
this.buildPriceOrder(order.getId() + "", null); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void checkGoodsRule(BmsSupplier supplier, List<OmsOrderItem> newOrderItemList) { |
|
|
private void checkGoodsRule(BmsSupplier supplier, List<OmsOrderItem> newOrderItemList) { |
|
|
GoodsAccrIdsDto accrIdsDto = goodsAccreditService.listIgnoreAcc2(supplier.getId(), supplier.listBizRegionIds(), supplier.listSaleRegionIds()); |
|
|
GoodsAccrIdsDto accrIdsDto = goodsAccreditService.listIgnoreAcc2(supplier.getId(), supplier.listBizRegionIds(), supplier.listSaleRegionIds()); |
|
|
if(accrIdsDto!=null){ |
|
|
if (accrIdsDto != null) { |
|
|
List<Long> skuIds = goodsSkuMapper.listByOtherIds( |
|
|
List<Long> skuIds = goodsSkuMapper.listByOtherIds( |
|
|
accrIdsDto.getCateIds(), |
|
|
accrIdsDto.getCateIds(), |
|
|
accrIdsDto.getSpuIds(), |
|
|
accrIdsDto.getSpuIds(), |
|
@ -379,8 +377,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
); |
|
|
); |
|
|
for (OmsOrderItem orderItem : newOrderItemList) { |
|
|
for (OmsOrderItem orderItem : newOrderItemList) { |
|
|
for (Long skuId : skuIds) { |
|
|
for (Long skuId : skuIds) { |
|
|
if(orderItem.getSkuId().equals(skuId)){ |
|
|
if (orderItem.getSkuId().equals(skuId)) { |
|
|
Assert.throwEx("商品未授权:"+orderItem.getSkuCode()); |
|
|
Assert.throwEx("商品未授权:" + orderItem.getSkuCode()); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -389,60 +387,116 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 拦截规则 |
|
|
* 拦截规则 |
|
|
|
|
|
* |
|
|
* @param categoryRule |
|
|
* @param categoryRule |
|
|
* @param orderItems |
|
|
* @param orderItems |
|
|
*/ |
|
|
*/ |
|
|
private void handleCategoryRule(GoodsCategoryRule categoryRule, List<OmsOrderItem> orderItems) { |
|
|
private void handleCategoryRule(GoodsCategoryRule categoryRule, List<OmsOrderItem> orderItems) { |
|
|
if(categoryRule!=null&&orderItems.size()>0){ |
|
|
if (categoryRule != null && orderItems.size() > 0) { |
|
|
List<String> cids = Arrays.asList(categoryRule.getBrandIds()); |
|
|
List<String> cids = Arrays.asList(categoryRule.getBrandIds()); |
|
|
List<String> igcids = null; |
|
|
List<String> igcids = null; |
|
|
if(categoryRule.getIgnoreBrandIds()!=null){ |
|
|
if (categoryRule.getIgnoreBrandIds() != null) { |
|
|
igcids = Arrays.asList(categoryRule.getIgnoreBrandIds()); |
|
|
igcids = Arrays.asList(categoryRule.getIgnoreBrandIds()); |
|
|
} |
|
|
} |
|
|
Set<Long> spuIds = orderItems.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toSet()); |
|
|
Set<Long> spuIds = orderItems.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toSet()); |
|
|
List<Long> skuIds = orderItems.stream().map(OmsOrderItem::getSkuId).collect(Collectors.toList()); |
|
|
List<Long> skuIds = orderItems.stream().map(OmsOrderItem::getSkuId).collect(Collectors.toList()); |
|
|
List<GoodsSku> skuList = new ArrayList<>(); |
|
|
List<GoodsSku> skuList = new ArrayList<>(); |
|
|
if(CollectionUtil.isNotEmpty(skuIds)){ |
|
|
if (CollectionUtil.isNotEmpty(skuIds)) { |
|
|
|
|
|
skuList = goodsSkuService.listByIds(skuIds); |
|
|
|
|
|
for (GoodsSku sku : skuList) { |
|
|
|
|
|
if (!sku.getOrderFlag().equals(1) && sku.getSpecialFlag().equals(0)) { |
|
|
|
|
|
Assert.throwEx("单品[" + sku.getSkuCode() + "]不予下单且非特殊品"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
skuIds.addAll(skuList.stream().map(GoodsSku::getSpuId).collect(Collectors.toList())); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); |
|
|
|
|
|
for (GoodsSpu goodsSpu : spuList) { |
|
|
|
|
|
if (!goodsSpu.getShelf().equals(1)) { |
|
|
|
|
|
Assert.throwEx("SKU已下架[" + goodsSpu.getSpuCode() + "]不予下单"); |
|
|
|
|
|
} |
|
|
|
|
|
if (!goodsSpu.getOrderFlag().equals(1)) { |
|
|
|
|
|
boolean msp = skuList.stream().anyMatch(m -> m.getSpuId().equals(goodsSpu.getId()) && m.getSpecialFlag().equals(1)); |
|
|
|
|
|
if (!msp) { |
|
|
|
|
|
Assert.throwEx("SKU[" + goodsSpu.getSpuCode() + "]不予下单"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
matchIgnoreCate(igcids, goodsSpu.getCategoryFirst(), goodsSpu); |
|
|
|
|
|
matchIgnoreCate(igcids, goodsSpu.getCategorySecond(), goodsSpu); |
|
|
|
|
|
matchIgnoreCate(igcids, goodsSpu.getCategoryThird(), goodsSpu); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public List<SimpleKeyValue> handleCategoryRule(List<Long> skuIds,GoodsCategoryRule categoryRule) { |
|
|
|
|
|
List<SimpleKeyValue> errSkuIds = new ArrayList<>(); |
|
|
|
|
|
if (categoryRule != null && skuIds.size() > 0) { |
|
|
|
|
|
List<String> cids = Arrays.asList(categoryRule.getBrandIds()); |
|
|
|
|
|
List<String> igcids = null; |
|
|
|
|
|
if (categoryRule.getIgnoreBrandIds() != null) { |
|
|
|
|
|
igcids = Arrays.asList(categoryRule.getIgnoreBrandIds()); |
|
|
|
|
|
} |
|
|
|
|
|
List<GoodsSku> skuList = new ArrayList<>(); |
|
|
|
|
|
if (CollectionUtil.isNotEmpty(skuIds)) { |
|
|
skuList = goodsSkuService.listByIds(skuIds); |
|
|
skuList = goodsSkuService.listByIds(skuIds); |
|
|
for (GoodsSku sku : skuList) { |
|
|
for (GoodsSku sku : skuList) { |
|
|
if(!sku.getOrderFlag().equals(1)&&sku.getSpecialFlag().equals(0)){ |
|
|
if (!sku.getOrderFlag().equals(1) && sku.getSpecialFlag().equals(0)) { |
|
|
Assert.throwEx("单品["+sku.getSkuCode()+"]不予下单且非特殊品"); |
|
|
errSkuIds.add(new SimpleKeyValue("单品不予下单且非特殊品",sku.getId())); |
|
|
|
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
skuIds.addAll(skuList.stream().map(GoodsSku::getSpuId).collect(Collectors.toList())); |
|
|
skuIds.addAll(skuList.stream().map(GoodsSku::getSpuId).collect(Collectors.toList())); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Set<Long> spuIds = skuList.stream().map(GoodsSku::getSpuId).collect(Collectors.toSet()); |
|
|
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); |
|
|
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); |
|
|
for (GoodsSpu goodsSpu : spuList) { |
|
|
for (GoodsSpu goodsSpu : spuList) { |
|
|
if(!goodsSpu.getShelf().equals(1)){ |
|
|
if (!goodsSpu.getShelf().equals(1)) { |
|
|
Assert.throwEx("SKU已下架["+goodsSpu.getSpuCode()+"]不予下单"); |
|
|
Long errSkuId = null; |
|
|
|
|
|
for (GoodsSku sku : skuList) { |
|
|
|
|
|
if(sku.getSpuId().equals(goodsSpu.getId())){ |
|
|
|
|
|
errSkuId = sku.getId(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
errSkuIds.add(new SimpleKeyValue("SKU不予下单且非特殊品",errSkuId)); |
|
|
|
|
|
} |
|
|
|
|
|
if (!goodsSpu.getOrderFlag().equals(1)) { |
|
|
|
|
|
boolean msp = skuList.stream().anyMatch(m -> m.getSpuId().equals(goodsSpu.getId()) && m.getSpecialFlag().equals(1)); |
|
|
|
|
|
if (!msp) { |
|
|
|
|
|
Long errSkuId = null; |
|
|
|
|
|
for (GoodsSku sku : skuList) { |
|
|
|
|
|
if(sku.getSpuId().equals(goodsSpu.getId())){ |
|
|
|
|
|
errSkuId = sku.getId(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
if(!goodsSpu.getOrderFlag().equals(1)){ |
|
|
errSkuIds.add(new SimpleKeyValue("SKU不予下单",errSkuId)); |
|
|
boolean msp = skuList.stream().anyMatch(m->m.getSpuId().equals(goodsSpu.getId())&&m.getSpecialFlag().equals(1)); |
|
|
|
|
|
if(!msp){ |
|
|
|
|
|
Assert.throwEx("SKU["+goodsSpu.getSpuCode()+"]不予下单"); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
matchIgnoreCate(igcids,goodsSpu.getCategoryFirst(),goodsSpu); |
|
|
matchIgnoreCate(igcids, goodsSpu.getCategoryFirst(), goodsSpu); |
|
|
matchIgnoreCate(igcids,goodsSpu.getCategorySecond(),goodsSpu); |
|
|
matchIgnoreCate(igcids, goodsSpu.getCategorySecond(), goodsSpu); |
|
|
matchIgnoreCate(igcids,goodsSpu.getCategoryThird(),goodsSpu); |
|
|
matchIgnoreCate(igcids, goodsSpu.getCategoryThird(), goodsSpu); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
return errSkuIds; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 拦截忽略的品牌 |
|
|
* 拦截忽略的品牌 |
|
|
|
|
|
* |
|
|
* @param igcids |
|
|
* @param igcids |
|
|
* @param spuCateId |
|
|
* @param spuCateId |
|
|
* @param goodsSpu |
|
|
* @param goodsSpu |
|
|
*/ |
|
|
*/ |
|
|
private void matchIgnoreCate(List<String> igcids, String spuCateId,GoodsSpu goodsSpu) { |
|
|
private void matchIgnoreCate(List<String> igcids, String spuCateId, GoodsSpu goodsSpu) { |
|
|
if(igcids==null || spuCateId ==null|| spuCateId.equals("")|| spuCateId.equals("0")){ |
|
|
if (igcids == null || spuCateId == null || spuCateId.equals("") || spuCateId.equals("0")) { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
for (String igcid : igcids) { |
|
|
for (String igcid : igcids) { |
|
|
if(spuCateId.equals(igcid)){ |
|
|
if (spuCateId.equals(igcid)) { |
|
|
Assert.throwEx("["+goodsSpu.getSkuCode()+"]"+goodsSpu.getName()+",不符合订单规则"); |
|
|
Assert.throwEx("[" + goodsSpu.getSkuCode() + "]" + goodsSpu.getName() + ",不符合订单规则"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -467,8 +521,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); |
|
|
CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); |
|
|
createOrderParam.setCdOrderRemark(omsOrderBo.getCdOrderRemark()); |
|
|
createOrderParam.setCdOrderRemark(omsOrderBo.getCdOrderRemark()); |
|
|
OmsOrder order = this.buildOmsOrder(confirmOrder, createOrderParam); |
|
|
OmsOrder order = this.buildOmsOrder(confirmOrder, createOrderParam); |
|
|
if(omsOrderBo.getInstantFlag()!=null&&omsOrderBo.getInstantFlag().equals(1)){ |
|
|
if (omsOrderBo.getInstantFlag() != null && omsOrderBo.getInstantFlag().equals(1)) { |
|
|
this.buildPriceOrder(order.getId()+"",null); |
|
|
this.buildPriceOrder(order.getId() + "", null); |
|
|
} |
|
|
} |
|
|
return order; |
|
|
return order; |
|
|
} |
|
|
} |
|
@ -485,17 +539,17 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
OmsOrder order = new OmsOrder(); |
|
|
OmsOrder order = new OmsOrder(); |
|
|
order.setLatitudeFrom(confirmOrder.getLatitudeFrom().toLowerCase(Locale.ROOT)); |
|
|
order.setLatitudeFrom(confirmOrder.getLatitudeFrom().toLowerCase(Locale.ROOT)); |
|
|
String orderPrefix = null; |
|
|
String orderPrefix = null; |
|
|
if(order.getOrderType()==null||order.getOrderType().equals(0)){ |
|
|
if (order.getOrderType() == null || order.getOrderType().equals(0)) { |
|
|
orderPrefix = "SN"; |
|
|
orderPrefix = "SN"; |
|
|
}else if(order.getOrderType().equals(1)){ |
|
|
} else if (order.getOrderType().equals(1)) { |
|
|
orderPrefix = "ZP"; |
|
|
orderPrefix = "ZP"; |
|
|
}else if(order.getOrderType().equals(2)){ |
|
|
} else if (order.getOrderType().equals(2)) { |
|
|
orderPrefix = "SC"; |
|
|
orderPrefix = "SC"; |
|
|
} |
|
|
} |
|
|
order.setOrderSn(orderPrefix+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
order.setOrderSn(orderPrefix + CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
|
|
|
|
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(confirmOrder.getBrandRuleId()); |
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(confirmOrder.getBrandRuleId()); |
|
|
if(categoryRule!=null){ |
|
|
if (categoryRule != null) { |
|
|
order.setBrandRuleName(categoryRule.getLabel()); |
|
|
order.setBrandRuleName(categoryRule.getLabel()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -504,13 +558,13 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
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!=null?address.getId():0); |
|
|
order.setSupplierAddrId(address != null ? address.getId() : 0); |
|
|
order.setBrandRuleId(confirmOrder.getBrandRuleId()); |
|
|
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()); |
|
|
order.setUserPhone(user.getMobile()); |
|
|
order.setUserPhone(user.getMobile()); |
|
|
if(createOrderParam !=null){ |
|
|
if (createOrderParam != null) { |
|
|
order.setBillType(createOrderParam.getBillType()); |
|
|
order.setBillType(createOrderParam.getBillType()); |
|
|
order.setUrgentFlag(createOrderParam.getUrgentFlag()); |
|
|
order.setUrgentFlag(createOrderParam.getUrgentFlag()); |
|
|
order.setRemark(createOrderParam.getRemark()); |
|
|
order.setRemark(createOrderParam.getRemark()); |
|
@ -540,7 +594,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
orderItem.setWeight(shoppingCart.getWeight()); |
|
|
orderItem.setWeight(shoppingCart.getWeight()); |
|
|
orderItem.setVolume(shoppingCart.getVolume()); |
|
|
orderItem.setVolume(shoppingCart.getVolume()); |
|
|
orderItem.setRemark(shoppingCart.getRemark()); |
|
|
orderItem.setRemark(shoppingCart.getRemark()); |
|
|
if(confirmOrder.getLatitudeFrom()!=null&&confirmOrder.getLatitudeFrom().equals("SPU")){ |
|
|
if (confirmOrder.getLatitudeFrom() != null && confirmOrder.getLatitudeFrom().equals("SPU")) { |
|
|
// spu维度
|
|
|
// spu维度
|
|
|
GoodsSku goodsSku = goodsSkuService.getById(shoppingCart.getSkuId()); |
|
|
GoodsSku goodsSku = goodsSkuService.getById(shoppingCart.getSkuId()); |
|
|
orderItem.setSpuId(shoppingCart.getSpuId()); |
|
|
orderItem.setSpuId(shoppingCart.getSpuId()); |
|
@ -551,18 +605,18 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
orderItem.setSkuImg(shoppingCart.getPicUrl()); |
|
|
orderItem.setSkuImg(shoppingCart.getPicUrl()); |
|
|
orderItem.setSpecValues(shoppingCart.getSpecInfo()); |
|
|
orderItem.setSpecValues(shoppingCart.getSpecInfo()); |
|
|
orderItem.setSpuCode(shoppingCart.getSpuCode()); |
|
|
orderItem.setSpuCode(shoppingCart.getSpuCode()); |
|
|
if(goodsSku!=null){ |
|
|
if (goodsSku != null) { |
|
|
GoodsSpu goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); |
|
|
GoodsSpu goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); |
|
|
orderItem.setSpuTitle(goodsSpu.getName()); |
|
|
orderItem.setSpuTitle(goodsSpu.getName()); |
|
|
orderItem.setSkuTitle(goodsSpu.getSkuName()); |
|
|
orderItem.setSkuTitle(goodsSpu.getSkuName()); |
|
|
|
|
|
|
|
|
log.warn("shoppingCart json =>"+JsonUtil.objectToJson(shoppingCart)); |
|
|
log.warn("shoppingCart json =>" + JsonUtil.objectToJson(shoppingCart)); |
|
|
orderItem.setSkuTitle(goodsSku.getSkuName()); |
|
|
orderItem.setSkuTitle(goodsSku.getSkuName()); |
|
|
orderItem.setMarketPrice(goodsSku.getMarketPrice()); |
|
|
orderItem.setMarketPrice(goodsSku.getMarketPrice()); |
|
|
orderItem.setSalesPrice(goodsSku.getSalesPrice()); |
|
|
orderItem.setSalesPrice(goodsSku.getSalesPrice()); |
|
|
orderItem.setCusPrice(goodsSku.getSalesPrice()); |
|
|
orderItem.setCusPrice(goodsSku.getSalesPrice()); |
|
|
} |
|
|
} |
|
|
}else { |
|
|
} else { |
|
|
// 默认sku
|
|
|
// 默认sku
|
|
|
GoodSkuVo goodSkuVo = shoppingCart.getGoodSkuVo(); |
|
|
GoodSkuVo goodSkuVo = shoppingCart.getGoodSkuVo(); |
|
|
GoodsSpu goodsSpu = goodsSpuService.getByCode(goodSkuVo.getSpuCode()); |
|
|
GoodsSpu goodsSpu = goodsSpuService.getByCode(goodSkuVo.getSpuCode()); |
|
@ -588,9 +642,9 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
try { |
|
|
try { |
|
|
String supplierCode = supplier.getCode(); |
|
|
String supplierCode = supplier.getCode(); |
|
|
List<String> skuCodes = orderItems.stream().map(OmsOrderItem::getSkuCode).collect(Collectors.toList()); |
|
|
List<String> skuCodes = orderItems.stream().map(OmsOrderItem::getSkuCode).collect(Collectors.toList()); |
|
|
if(skuCodes.size()>0){ |
|
|
if (skuCodes.size() > 0) { |
|
|
List<GoodsCustomerPrice> customerPrices = goodsCustomerPriceService.getBySupplierCodeAndCode(supplierCode,skuCodes); |
|
|
List<GoodsCustomerPrice> customerPrices = goodsCustomerPriceService.getBySupplierCodeAndCode(supplierCode, skuCodes); |
|
|
inventoryCusPrices = customerPrices.stream().map(obj->{ |
|
|
inventoryCusPrices = customerPrices.stream().map(obj -> { |
|
|
InventoryCusPrice cusPrice = new InventoryCusPrice(); |
|
|
InventoryCusPrice cusPrice = new InventoryCusPrice(); |
|
|
cusPrice.setCusCode(supplierCode); |
|
|
cusPrice.setCusCode(supplierCode); |
|
|
cusPrice.setInvCode(obj.getSkuCode()); |
|
|
cusPrice.setInvCode(obj.getSkuCode()); |
|
@ -606,12 +660,12 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
// }
|
|
|
// }
|
|
|
} |
|
|
} |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
log.error("客户特殊价异常:{}",e.getMessage()); |
|
|
log.error("客户特殊价异常:{}", e.getMessage()); |
|
|
} |
|
|
} |
|
|
if(inventoryCusPrices!=null){ |
|
|
if (inventoryCusPrices != null) { |
|
|
for (OmsOrderItem orderItem : orderItems) { |
|
|
for (OmsOrderItem orderItem : orderItems) { |
|
|
for (InventoryCusPrice cusPrice : inventoryCusPrices) { |
|
|
for (InventoryCusPrice cusPrice : inventoryCusPrices) { |
|
|
if(orderItem.getSkuCode().equals(cusPrice.getInvCode())){ |
|
|
if (orderItem.getSkuCode().equals(cusPrice.getInvCode())) { |
|
|
orderItem.setMarketPrice(cusPrice.getPrice()); |
|
|
orderItem.setMarketPrice(cusPrice.getPrice()); |
|
|
orderItem.setCusPrice(cusPrice.getPrice()); |
|
|
orderItem.setCusPrice(cusPrice.getPrice()); |
|
|
orderItem.setSalesPrice(cusPrice.getPrice()); |
|
|
orderItem.setSalesPrice(cusPrice.getPrice()); |
|
@ -620,14 +674,14 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.handleCategoryRule(categoryRule,orderItems); |
|
|
this.handleCategoryRule(categoryRule, orderItems); |
|
|
|
|
|
|
|
|
omsOrderItemService.saveBatch(orderItems); |
|
|
omsOrderItemService.saveBatch(orderItems); |
|
|
//清空勾选的购物车
|
|
|
//清空勾选的购物车
|
|
|
List<Long> cartIds = confirmOrder.getShoppingCarts().stream() |
|
|
List<Long> cartIds = confirmOrder.getShoppingCarts().stream() |
|
|
.filter(a->a.getId()!=null) |
|
|
.filter(a -> a.getId() != null) |
|
|
.map(OmsShoppingCart::getId).collect(Collectors.toList()); |
|
|
.map(OmsShoppingCart::getId).collect(Collectors.toList()); |
|
|
if(CollectionUtil.isNotEmpty(cartIds)){ |
|
|
if (CollectionUtil.isNotEmpty(cartIds)) { |
|
|
omsShoppingCartService.removeBatchByIds(cartIds); |
|
|
omsShoppingCartService.removeBatchByIds(cartIds); |
|
|
} |
|
|
} |
|
|
return order; |
|
|
return order; |
|
@ -641,17 +695,17 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
Integer month = param.getMonthNum(); |
|
|
Integer month = param.getMonthNum(); |
|
|
String supplierId = param.getSupplierId(); |
|
|
String supplierId = param.getSupplierId(); |
|
|
LambdaQueryWrapper<SalePlan> spLqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<SalePlan> spLqw = new LambdaQueryWrapper<>(); |
|
|
spLqw.eq(SalePlan::getYearNum,year); |
|
|
spLqw.eq(SalePlan::getYearNum, year); |
|
|
spLqw.eq(SalePlan::getMonthNum,month); |
|
|
spLqw.eq(SalePlan::getMonthNum, month); |
|
|
spLqw.eq(SalePlan::getSupplierId,supplierId); |
|
|
spLqw.eq(SalePlan::getSupplierId, supplierId); |
|
|
//spLqw.eq(SalePlan::getPlanState,1);
|
|
|
//spLqw.eq(SalePlan::getPlanState,1);
|
|
|
List<SalePlan> salePlanList = salePlanMapper.selectList(spLqw); |
|
|
List<SalePlan> salePlanList = salePlanMapper.selectList(spLqw); |
|
|
Map<Long,Integer> spuIdAndSum = new HashMap<>(); |
|
|
Map<Long, Integer> spuIdAndSum = new HashMap<>(); |
|
|
if(salePlanList.size()>0){ |
|
|
if (salePlanList.size() > 0) { |
|
|
List<Long> spIds = salePlanList.stream().map(SalePlan::getId).collect(Collectors.toList()); |
|
|
List<Long> spIds = salePlanList.stream().map(SalePlan::getId).collect(Collectors.toList()); |
|
|
LambdaQueryWrapper<SalePlanGoods> spgLqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<SalePlanGoods> spgLqw = new LambdaQueryWrapper<>(); |
|
|
spgLqw.in(SalePlanGoods::getPlanId,spIds); |
|
|
spgLqw.in(SalePlanGoods::getPlanId, spIds); |
|
|
spgLqw.in(SalePlanGoods::getTargetId,spuIds); |
|
|
spgLqw.in(SalePlanGoods::getTargetId, spuIds); |
|
|
List<SalePlanGoods> salePlanGoodsList = salePlanGoodsMapper.selectList(spgLqw); |
|
|
List<SalePlanGoods> salePlanGoodsList = salePlanGoodsMapper.selectList(spgLqw); |
|
|
for (SalePlanGoods planGoods : salePlanGoodsList) { |
|
|
for (SalePlanGoods planGoods : salePlanGoodsList) { |
|
|
spuIdAndSum.merge(planGoods.getTargetId(), planGoods.getQty(), Integer::sum); |
|
|
spuIdAndSum.merge(planGoods.getTargetId(), planGoods.getQty(), Integer::sum); |
|
@ -662,7 +716,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
OmsSpuAssesInfo assesInfo = new OmsSpuAssesInfo(); |
|
|
OmsSpuAssesInfo assesInfo = new OmsSpuAssesInfo(); |
|
|
assesInfo.setSpuId(spuId); |
|
|
assesInfo.setSpuId(spuId); |
|
|
Integer sum = spuIdAndSum.get(spuId); |
|
|
Integer sum = spuIdAndSum.get(spuId); |
|
|
assesInfo.setNum(sum==null?0:sum); |
|
|
assesInfo.setNum(sum == null ? 0 : sum); |
|
|
spuAssesInfoList.add(assesInfo); |
|
|
spuAssesInfoList.add(assesInfo); |
|
|
} |
|
|
} |
|
|
return spuAssesInfoList; |
|
|
return spuAssesInfoList; |
|
@ -675,17 +729,18 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId()); |
|
|
SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId()); |
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(param.getBrandRuleId()); |
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(param.getBrandRuleId()); |
|
|
BmsSupplier supplier = bmsSupplierMapper.selectById(param.getSupplierId()); |
|
|
BmsSupplier supplier = bmsSupplierMapper.selectById(param.getSupplierId()); |
|
|
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(param.getAddressId());; |
|
|
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(param.getAddressId()); |
|
|
|
|
|
; |
|
|
|
|
|
|
|
|
OmsOrder order; |
|
|
OmsOrder order; |
|
|
if(param.getId()!=null){ |
|
|
if (param.getId() != null) { |
|
|
order = this.getById(param.getId()); |
|
|
order = this.getById(param.getId()); |
|
|
if(!order.getOrderType().equals(3)){ |
|
|
if (!order.getOrderType().equals(3)) { |
|
|
Assert.throwEx("订单类型不支持混用"); |
|
|
Assert.throwEx("订单类型不支持混用"); |
|
|
} |
|
|
} |
|
|
}else { |
|
|
} else { |
|
|
order = new OmsOrder(); |
|
|
order = new OmsOrder(); |
|
|
order.setOrderSn("SP"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
order.setOrderSn("SP" + CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
} |
|
|
} |
|
|
order.setLatitudeFrom("sp"); |
|
|
order.setLatitudeFrom("sp"); |
|
|
order.setCdOrderRemark(param.getCdOrderRemark()); |
|
|
order.setCdOrderRemark(param.getCdOrderRemark()); |
|
@ -693,7 +748,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
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(supplierAddress!=null?supplierAddress.getId():0); |
|
|
order.setSupplierAddrId(supplierAddress != null ? supplierAddress.getId() : 0); |
|
|
order.setBrandRuleId(param.getBrandRuleId()); |
|
|
order.setBrandRuleId(param.getBrandRuleId()); |
|
|
order.setUserId(user.getId()); |
|
|
order.setUserId(user.getId()); |
|
|
order.setUserName(user.getName()); |
|
|
order.setUserName(user.getName()); |
|
@ -706,25 +761,25 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
|
|
|
|
|
List<OmsOrderItem> orderItems = new ArrayList<>(); |
|
|
List<OmsOrderItem> orderItems = new ArrayList<>(); |
|
|
|
|
|
|
|
|
if(CollectionUtil.isNotEmpty(param.getItemList())){ |
|
|
if (CollectionUtil.isNotEmpty(param.getItemList())) { |
|
|
Set<Long> batchSkuIds = param.getItemList().stream().map(OmsOrderImminentBo.ItemParam::getBatchSkuId) |
|
|
Set<Long> batchSkuIds = param.getItemList().stream().map(OmsOrderImminentBo.ItemParam::getBatchSkuId) |
|
|
.collect(Collectors.toSet()); |
|
|
.collect(Collectors.toSet()); |
|
|
if(order.getStatus()!=null&&!order.getStatus().equals(0)&&CollectionUtil.isEmpty(param.getItemList())){ |
|
|
if (order.getStatus() != null && !order.getStatus().equals(0) && CollectionUtil.isEmpty(param.getItemList())) { |
|
|
Assert.throwEx("请选择商品"); |
|
|
Assert.throwEx("请选择商品"); |
|
|
} |
|
|
} |
|
|
List<GoodsImminentBatch> imminentBatches = goodsImminentBatchService |
|
|
List<GoodsImminentBatch> imminentBatches = goodsImminentBatchService |
|
|
.list( |
|
|
.list( |
|
|
new LambdaQueryWrapper<GoodsImminentBatch>() |
|
|
new LambdaQueryWrapper<GoodsImminentBatch>() |
|
|
.in(GoodsImminentBatch::getId,batchSkuIds) |
|
|
.in(GoodsImminentBatch::getId, batchSkuIds) |
|
|
.ge(GoodsImminentBatch::getEndDate, LocalDate.now()) |
|
|
.ge(GoodsImminentBatch::getEndDate, LocalDate.now()) |
|
|
); |
|
|
); |
|
|
if(CollectionUtil.isEmpty(imminentBatches)){ |
|
|
if (CollectionUtil.isEmpty(imminentBatches)) { |
|
|
Assert.throwEx("参数过期或无效,请重新选择商品"); |
|
|
Assert.throwEx("参数过期或无效,请重新选择商品"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Set<String> skuIds = imminentBatches.stream() |
|
|
Set<String> skuIds = imminentBatches.stream() |
|
|
.map(GoodsImminentBatch::getSkuId).collect(Collectors.toSet()); |
|
|
.map(GoodsImminentBatch::getSkuId).collect(Collectors.toSet()); |
|
|
if(skuIds.size()!=imminentBatches.size()){ |
|
|
if (skuIds.size() != imminentBatches.size()) { |
|
|
Assert.throwEx("不同批次相同产品,请分开下单"); |
|
|
Assert.throwEx("不同批次相同产品,请分开下单"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -736,9 +791,9 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
|
|
|
|
|
for (OmsOrderImminentBo.ItemParam item : param.getItemList()) { |
|
|
for (OmsOrderImminentBo.ItemParam item : param.getItemList()) { |
|
|
for (GoodsImminentBatch batch : imminentBatches) { |
|
|
for (GoodsImminentBatch batch : imminentBatches) { |
|
|
if(item.getBatchSkuId().equals(batch.getId())){ |
|
|
if (item.getBatchSkuId().equals(batch.getId())) { |
|
|
for (GoodsSku sku : goodsSkuList) { |
|
|
for (GoodsSku sku : goodsSkuList) { |
|
|
if(sku.getId().toString().equals(batch.getSkuId())){ |
|
|
if (sku.getId().toString().equals(batch.getSkuId())) { |
|
|
//创建OrderItem
|
|
|
//创建OrderItem
|
|
|
OmsOrderItem orderItem = createImminentOrderItem(order, spuList, item, batch, sku); |
|
|
OmsOrderItem orderItem = createImminentOrderItem(order, spuList, item, batch, sku); |
|
|
orderItems.add(orderItem); |
|
|
orderItems.add(orderItem); |
|
@ -758,28 +813,28 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
this.checkGoodsRule(supplier, orderItems); |
|
|
this.checkGoodsRule(supplier, orderItems); |
|
|
|
|
|
|
|
|
//拦截客户维度规则
|
|
|
//拦截客户维度规则
|
|
|
goodsRuleService.checkSkuCode(skuCodes,goodsRuleService.listBySupplierId(order.getSupplierId().toString()),true); |
|
|
goodsRuleService.checkSkuCode(skuCodes, order.getSupplierId().toString(), true); |
|
|
|
|
|
|
|
|
//拦截品类下单规则
|
|
|
//拦截品类下单规则
|
|
|
this.handleCategoryRule(categoryRule,orderItems); |
|
|
this.handleCategoryRule(categoryRule, orderItems); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.updateById(order); |
|
|
this.updateById(order); |
|
|
//移除已有的ITEM
|
|
|
//移除已有的ITEM
|
|
|
LambdaQueryWrapper<OmsOrderItem> rmItemLqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<OmsOrderItem> rmItemLqw = new LambdaQueryWrapper<>(); |
|
|
rmItemLqw.eq(OmsOrderItem::getOrderId,param.getId()); |
|
|
rmItemLqw.eq(OmsOrderItem::getOrderId, param.getId()); |
|
|
omsOrderItemService.remove(rmItemLqw); |
|
|
omsOrderItemService.remove(rmItemLqw); |
|
|
//重新保存item
|
|
|
//重新保存item
|
|
|
if(orderItems.size()>0){ |
|
|
if (orderItems.size() > 0) { |
|
|
omsOrderItemService.saveBatch(orderItems); |
|
|
omsOrderItemService.saveBatch(orderItems); |
|
|
} |
|
|
} |
|
|
//立即下单
|
|
|
//立即下单
|
|
|
if(param.getInstantFlag()!=null&¶m.getInstantFlag().equals(1)){ |
|
|
if (param.getInstantFlag() != null && param.getInstantFlag().equals(1)) { |
|
|
if(supplier.getCdOrderFlag().equals(1) && !StringUtils.hasText(param.getCdOrderRemark()) ){ |
|
|
if (supplier.getCdOrderFlag().equals(1) && !StringUtils.hasText(param.getCdOrderRemark())) { |
|
|
Assert.throwEx("请补充CD单号"); |
|
|
Assert.throwEx("请补充CD单号"); |
|
|
} |
|
|
} |
|
|
this.buildPriceOrder(order.getId()+"",null); |
|
|
this.buildPriceOrder(order.getId() + "", null); |
|
|
} |
|
|
} |
|
|
return order; |
|
|
return order; |
|
|
} |
|
|
} |
|
@ -794,7 +849,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
orderItem.setOrderSn(order.getOrderSn()); |
|
|
orderItem.setOrderSn(order.getOrderSn()); |
|
|
orderItem.setSpuId(sku.getSpuId()); |
|
|
orderItem.setSpuId(sku.getSpuId()); |
|
|
for (GoodsSpu spu : spuList) { |
|
|
for (GoodsSpu spu : spuList) { |
|
|
if(sku.getSpuId().equals(spu.getId())){ |
|
|
if (sku.getSpuId().equals(spu.getId())) { |
|
|
orderItem.setSpuCode(spu.getSpuCode()); |
|
|
orderItem.setSpuCode(spu.getSpuCode()); |
|
|
orderItem.setSpuTitle(spu.getName()); |
|
|
orderItem.setSpuTitle(spu.getName()); |
|
|
break; |
|
|
break; |
|
@ -829,43 +884,43 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void buildPriceOrder(String id,String amount) { |
|
|
public void buildPriceOrder(String id, String amount) { |
|
|
redisService.throwResLock(OmsOrder.class.getSimpleName(),id); |
|
|
redisService.throwResLock(OmsOrder.class.getSimpleName(), id); |
|
|
OmsOrder omsOrder = super.getById(id); |
|
|
OmsOrder omsOrder = super.getById(id); |
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
SysUser sysUser = sysUserService.getById(userId); |
|
|
SysUser sysUser = sysUserService.getById(userId); |
|
|
if(omsOrder==null){ |
|
|
if (omsOrder == null) { |
|
|
Assert.throwEx("订单不存在或被移除"); |
|
|
Assert.throwEx("订单不存在或被移除"); |
|
|
} |
|
|
} |
|
|
if(!omsOrder.getUserId().equals(userId)){ |
|
|
if (!omsOrder.getUserId().equals(userId)) { |
|
|
Assert.throwEx("非制单人无法下单"); |
|
|
Assert.throwEx("非制单人无法下单"); |
|
|
} |
|
|
} |
|
|
this.checkMsOrderStatus(omsOrder); |
|
|
this.checkMsOrderStatus(omsOrder); |
|
|
if(!omsOrder.getStatus().equals(0)&&!omsOrder.getStatus().equals(6)){ |
|
|
if (!omsOrder.getStatus().equals(0) && !omsOrder.getStatus().equals(6)) { |
|
|
Assert.throwEx("订单状态不支持下单"); |
|
|
Assert.throwEx("订单状态不支持下单"); |
|
|
} |
|
|
} |
|
|
LambdaQueryWrapper<OmsOrderItem> iteLqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<OmsOrderItem> iteLqw = new LambdaQueryWrapper<>(); |
|
|
iteLqw.eq(OmsOrderItem::getOrderId,id); |
|
|
iteLqw.eq(OmsOrderItem::getOrderId, id); |
|
|
List<OmsOrderItem> orderItemList = omsOrderItemService.list(iteLqw); |
|
|
List<OmsOrderItem> orderItemList = omsOrderItemService.list(iteLqw); |
|
|
|
|
|
|
|
|
if(orderItemList.size()<1){ |
|
|
if (orderItemList.size() < 1) { |
|
|
Assert.throwEx("空项目不支持下单"); |
|
|
Assert.throwEx("空项目不支持下单"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
List<GoodsImminentBatch> imminentBatches = new ArrayList<>(); |
|
|
List<GoodsImminentBatch> imminentBatches = new ArrayList<>(); |
|
|
|
|
|
|
|
|
if(omsOrder.getOrderType().equals(3)){ |
|
|
if (omsOrder.getOrderType().equals(3)) { |
|
|
//临期品相关拦截
|
|
|
//临期品相关拦截
|
|
|
for (OmsOrderItem orderItem : orderItemList) { |
|
|
for (OmsOrderItem orderItem : orderItemList) { |
|
|
if(orderItem.getSkuBatchId()==null){ |
|
|
if (orderItem.getSkuBatchId() == null) { |
|
|
Assert.throwEx(orderItem.getSkuCode() + " 单品无效或过期"); |
|
|
Assert.throwEx(orderItem.getSkuCode() + " 单品无效或过期"); |
|
|
} |
|
|
} |
|
|
GoodsImminentBatch imminentBatch = goodsImminentBatchService.getById(orderItem.getSkuBatchId()); |
|
|
GoodsImminentBatch imminentBatch = goodsImminentBatchService.getById(orderItem.getSkuBatchId()); |
|
|
if(imminentBatch==null){ |
|
|
if (imminentBatch == null) { |
|
|
Assert.throwEx(orderItem.getSkuCode() + " 单品无效或过期"); |
|
|
Assert.throwEx(orderItem.getSkuCode() + " 单品无效或过期"); |
|
|
} |
|
|
} |
|
|
int spur = imminentBatch.getQuantity() - imminentBatch.getOrderQuantity(); |
|
|
int spur = imminentBatch.getQuantity() - imminentBatch.getOrderQuantity(); |
|
|
if(orderItem.getQuantity() > spur){ |
|
|
if (orderItem.getQuantity() > spur) { |
|
|
Assert.throwEx(orderItem.getSkuCode() + " 单品库存不足"); |
|
|
Assert.throwEx(orderItem.getSkuCode() + " 单品库存不足"); |
|
|
} |
|
|
} |
|
|
imminentBatch.setOrderQuantity(imminentBatch.getOrderQuantity() + orderItem.getQuantity()); |
|
|
imminentBatch.setOrderQuantity(imminentBatch.getOrderQuantity() + orderItem.getQuantity()); |
|
@ -875,19 +930,19 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
} |
|
|
} |
|
|
//拦截相同的skuItem
|
|
|
//拦截相同的skuItem
|
|
|
long countDistinct = orderItemList.stream().map(OmsOrderItem::getSkuId).distinct().count(); |
|
|
long countDistinct = orderItemList.stream().map(OmsOrderItem::getSkuId).distinct().count(); |
|
|
if(orderItemList.size()!=countDistinct){ |
|
|
if (orderItemList.size() != countDistinct) { |
|
|
Assert.throwEx("有重复存货,请检查订单项"); |
|
|
Assert.throwEx("有重复存货,请检查订单项"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for (OmsOrderItem orderItem : orderItemList) { |
|
|
for (OmsOrderItem orderItem : orderItemList) { |
|
|
if(orderItem.getQuantity()==null||orderItem.getQuantity()<1){ |
|
|
if (orderItem.getQuantity() == null || orderItem.getQuantity() < 1) { |
|
|
Assert.throwEx("确认订单商品项数量不能为零"); |
|
|
Assert.throwEx("确认订单商品项数量不能为零"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//下单前规则拦截
|
|
|
//下单前规则拦截
|
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(omsOrder.getBrandRuleId()); |
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(omsOrder.getBrandRuleId()); |
|
|
this.handleCategoryRule(categoryRule,orderItemList); |
|
|
this.handleCategoryRule(categoryRule, orderItemList); |
|
|
|
|
|
|
|
|
//List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
|
|
|
//List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
@ -904,27 +959,27 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId()); |
|
|
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId()); |
|
|
String brands = Arrays.stream(categoryRule.getBrandNames()).collect(Collectors.joining(",")); |
|
|
String brands = Arrays.stream(categoryRule.getBrandNames()).collect(Collectors.joining(",")); |
|
|
BmsSupplier supplier = bmsSupplierMapper.selectById(omsOrder.getSupplierId()); |
|
|
BmsSupplier supplier = bmsSupplierMapper.selectById(omsOrder.getSupplierId()); |
|
|
if(supplier.getCdOrderFlag().equals(1) && !StringUtils.hasText(omsOrder.getCdOrderRemark()) ){ |
|
|
if (supplier.getCdOrderFlag().equals(1) && !StringUtils.hasText(omsOrder.getCdOrderRemark())) { |
|
|
Assert.throwEx("请补充CD单号"); |
|
|
Assert.throwEx("请补充CD单号"); |
|
|
} |
|
|
} |
|
|
String lastRegionId = supplier.getRegionLast(); |
|
|
String lastRegionId = supplier.getRegionLast(); |
|
|
BmsRegion bmsRegion = bmsRegionMapper.selectById(lastRegionId); |
|
|
BmsRegion bmsRegion = bmsRegionMapper.selectById(lastRegionId); |
|
|
if(bmsRegion==null){ |
|
|
if (bmsRegion == null) { |
|
|
Assert.throwEx("客户档案["+supplier.getCode()+"]缺失销售区域数据,请联系管理员"); |
|
|
Assert.throwEx("客户档案[" + supplier.getCode() + "]缺失销售区域数据,请联系管理员"); |
|
|
} |
|
|
} |
|
|
//保存到临时表-主表
|
|
|
//保存到临时表-主表
|
|
|
LocalDateTime nowTime = LocalDateTime.now(); |
|
|
LocalDateTime nowTime = LocalDateTime.now(); |
|
|
OmsXltOrder xltOrder = new OmsXltOrder(); |
|
|
OmsXltOrder xltOrder = new OmsXltOrder(); |
|
|
xltOrder.setId(IdUtil.getSnowFlakeId()+""); |
|
|
xltOrder.setId(IdUtil.getSnowFlakeId() + ""); |
|
|
xltOrder.setDingDanHao(omsOrder.getOrderSn()); |
|
|
xltOrder.setDingDanHao(omsOrder.getOrderSn()); |
|
|
xltOrder.setShenQingRiQi(nowTime); |
|
|
xltOrder.setShenQingRiQi(nowTime); |
|
|
xltOrder.setKeHuBianHao(omsOrder.getSupplierCode()); |
|
|
xltOrder.setKeHuBianHao(omsOrder.getSupplierCode()); |
|
|
xltOrder.setShouHuoDiZhi(supplierAddress.getDetail()); |
|
|
xltOrder.setShouHuoDiZhi(supplierAddress.getDetail()); |
|
|
xltOrder.setRenYuanBianHao(omsOrder.getUserCode()); |
|
|
xltOrder.setRenYuanBianHao(omsOrder.getUserCode()); |
|
|
xltOrder.setCdOrderRemark(omsOrder.getCdOrderRemark()); |
|
|
xltOrder.setCdOrderRemark(omsOrder.getCdOrderRemark()); |
|
|
String remark = sysUser.getName()+"("+sysUser.getMobile()+")"+omsOrder.getRemark()+supplierAddress.getDetail(); |
|
|
String remark = sysUser.getName() + "(" + sysUser.getMobile() + ")" + omsOrder.getRemark() + supplierAddress.getDetail(); |
|
|
if(remark.length()>120){ |
|
|
if (remark.length() > 120) { |
|
|
remark = remark.substring(0,120); |
|
|
remark = remark.substring(0, 120); |
|
|
} |
|
|
} |
|
|
xltOrder.setZhuYiShiXian(remark); |
|
|
xltOrder.setZhuYiShiXian(remark); |
|
|
xltOrder.setXieRuShiJian(nowTime); |
|
|
xltOrder.setXieRuShiJian(nowTime); |
|
@ -939,19 +994,19 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
xltOrder.setStatus(0); |
|
|
xltOrder.setStatus(0); |
|
|
|
|
|
|
|
|
//补充:调度系统写报价单给ERP时,要把地址ID写过去
|
|
|
//补充:调度系统写报价单给ERP时,要把地址ID写过去
|
|
|
if(supplierAddress.getTmsSysId()==null){ |
|
|
if (supplierAddress.getTmsSysId() == null) { |
|
|
Assert.throwEx("地址缺失TmsSysId关联"); |
|
|
Assert.throwEx("地址缺失TmsSysId关联"); |
|
|
} |
|
|
} |
|
|
xltOrder.setTmsSysId(supplierAddress.getId()+""); |
|
|
xltOrder.setTmsSysId(supplierAddress.getId() + ""); |
|
|
xltOrder.setEmpName(omsOrder.getUserName()); |
|
|
xltOrder.setEmpName(omsOrder.getUserName()); |
|
|
xltOrder.setCusCode(omsOrder.getSupplierCode()); |
|
|
xltOrder.setCusCode(omsOrder.getSupplierCode()); |
|
|
xltOrder.setCusName(omsOrder.getSupplierName()); |
|
|
xltOrder.setCusName(omsOrder.getSupplierName()); |
|
|
|
|
|
|
|
|
String[] regions = bmsRegion.getPathNames().split("_"); |
|
|
String[] regions = bmsRegion.getPathNames().split("_"); |
|
|
if(regions.length>1){ |
|
|
if (regions.length > 1) { |
|
|
xltOrder.setDealerProvince(regions[1]); |
|
|
xltOrder.setDealerProvince(regions[1]); |
|
|
} |
|
|
} |
|
|
if(regions.length>0){ |
|
|
if (regions.length > 0) { |
|
|
xltOrder.setDealerCity(regions[0]); |
|
|
xltOrder.setDealerCity(regions[0]); |
|
|
} |
|
|
} |
|
|
xltOrder.setDealerArea(bmsRegion.getPathNames()); |
|
|
xltOrder.setDealerArea(bmsRegion.getPathNames()); |
|
@ -961,15 +1016,15 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
for (int i = 0; i < orderItemList.size(); i++) { |
|
|
for (int i = 0; i < orderItemList.size(); i++) { |
|
|
OmsOrderItem orderItem = orderItemList.get(i); |
|
|
OmsOrderItem orderItem = orderItemList.get(i); |
|
|
OmsXltOrderItem xltOrderItem = new OmsXltOrderItem(); |
|
|
OmsXltOrderItem xltOrderItem = new OmsXltOrderItem(); |
|
|
xltOrderItem.setId(xltOrder.getId()+"_"+(i+1)); |
|
|
xltOrderItem.setId(xltOrder.getId() + "_" + (i + 1)); |
|
|
xltOrderItem.setDingDanID(xltOrder.getId()); |
|
|
xltOrderItem.setDingDanID(xltOrder.getId()); |
|
|
xltOrderItem.setSpuCode(orderItem.getSpuCode()); |
|
|
xltOrderItem.setSpuCode(orderItem.getSpuCode()); |
|
|
boolean eq = orderItem.getSkuCode().equals(orderItem.getSpuCode()); |
|
|
boolean eq = orderItem.getSkuCode().equals(orderItem.getSpuCode()); |
|
|
if(!StringUtils.hasText(orderItem.getSkuCode())||eq){ |
|
|
if (!StringUtils.hasText(orderItem.getSkuCode()) || eq) { |
|
|
GoodsSku sku = goodsSkuService.getById(orderItem.getSkuId()); |
|
|
GoodsSku sku = goodsSkuService.getById(orderItem.getSkuId()); |
|
|
GoodsSpu spu = goodsSpuService.getById(orderItem.getSpuId()); |
|
|
GoodsSpu spu = goodsSpuService.getById(orderItem.getSpuId()); |
|
|
if(!sku.getSkuCode().equals(spu.getSpuCode())){ |
|
|
if (!sku.getSkuCode().equals(spu.getSpuCode())) { |
|
|
Assert.throwEx("SKU【"+orderItem.getSpuCode()+"】存货缺失,请联系档案负责人"); |
|
|
Assert.throwEx("SKU【" + orderItem.getSpuCode() + "】存货缺失,请联系档案负责人"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
xltOrderItem.setChanPinBianHao(orderItem.getSkuCode()); |
|
|
xltOrderItem.setChanPinBianHao(orderItem.getSkuCode()); |
|
@ -981,25 +1036,25 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
xltOrderItem.setXieRuShiJian(nowTime); |
|
|
xltOrderItem.setXieRuShiJian(nowTime); |
|
|
xltOrderItem.setChuLiShiJian(null); |
|
|
xltOrderItem.setChuLiShiJian(null); |
|
|
xltOrderItem.setRowCreateDate(nowTime); |
|
|
xltOrderItem.setRowCreateDate(nowTime); |
|
|
if(omsOrder.getOrderType().equals(3)){ |
|
|
if (omsOrder.getOrderType().equals(3)) { |
|
|
String itemRm = orderItem.getRemark()==null?"":orderItem.getRemark(); |
|
|
String itemRm = orderItem.getRemark() == null ? "" : orderItem.getRemark(); |
|
|
xltOrderItem.setBeiZhu("批号["+orderItem.getSkuBatchCode()+"]"+ itemRm); |
|
|
xltOrderItem.setBeiZhu("批号[" + orderItem.getSkuBatchCode() + "]" + itemRm); |
|
|
}else { |
|
|
} else { |
|
|
xltOrderItem.setBeiZhu(orderItem.getRemark()); |
|
|
xltOrderItem.setBeiZhu(orderItem.getRemark()); |
|
|
} |
|
|
} |
|
|
xltOrderItem.setZhuangTai(0); |
|
|
xltOrderItem.setZhuangTai(0); |
|
|
xltOrderItemList.add(xltOrderItem); |
|
|
xltOrderItemList.add(xltOrderItem); |
|
|
} |
|
|
} |
|
|
XltOrderDTO xltOrderDTO = new XltOrderDTO(xltOrder,xltOrderItemList); |
|
|
XltOrderDTO xltOrderDTO = new XltOrderDTO(xltOrder, xltOrderItemList); |
|
|
//请求到中间服务保存
|
|
|
//请求到中间服务保存
|
|
|
seeYonRequestBaseService.postBase(ERP_ORDER_CREATE,xltOrderDTO,"创建订单:"+xltOrder.getDingDanHao()); |
|
|
seeYonRequestBaseService.postBase(ERP_ORDER_CREATE, xltOrderDTO, "创建订单:" + xltOrder.getDingDanHao()); |
|
|
//更新订单
|
|
|
//更新订单
|
|
|
omsOrder.setStatus(1); |
|
|
omsOrder.setStatus(1); |
|
|
omsOrder.setCheckTime(LocalDateTime.now()); |
|
|
omsOrder.setCheckTime(LocalDateTime.now()); |
|
|
omsOrder.setCheckUserId(AuthContextUtils.getSysUserId()); |
|
|
omsOrder.setCheckUserId(AuthContextUtils.getSysUserId()); |
|
|
this.updateById(omsOrder); |
|
|
this.updateById(omsOrder); |
|
|
|
|
|
|
|
|
if(imminentBatches.size() > 0){ |
|
|
if (imminentBatches.size() > 0) { |
|
|
goodsImminentBatchService.updateBatchById(imminentBatches); |
|
|
goodsImminentBatchService.updateBatchById(imminentBatches); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -1007,13 +1062,13 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public boolean checkMsOrderStatus(OmsOrder omsOrder) { |
|
|
public boolean checkMsOrderStatus(OmsOrder omsOrder) { |
|
|
if(omsOrder.getStatus().equals(1)){ |
|
|
if (omsOrder.getStatus().equals(1)) { |
|
|
//检索是否能取消
|
|
|
//检索是否能取消
|
|
|
String status = seeYonRequestBaseService.postBase(ERP_ORDER_STATUS+"/"+omsOrder.getOrderSn() |
|
|
String status = seeYonRequestBaseService.postBase(ERP_ORDER_STATUS + "/" + omsOrder.getOrderSn() |
|
|
,null |
|
|
, null |
|
|
,"获取订单状态" |
|
|
, "获取订单状态" |
|
|
).getData(); |
|
|
).getData(); |
|
|
if(!status.equals("0")){ |
|
|
if (!status.equals("0")) { |
|
|
omsOrder.setStatus(2); |
|
|
omsOrder.setStatus(2); |
|
|
super.updateById(omsOrder); |
|
|
super.updateById(omsOrder); |
|
|
return true; |
|
|
return true; |
|
@ -1024,15 +1079,15 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public boolean cancelOrder(String orderSn) { |
|
|
public boolean cancelOrder(String orderSn) { |
|
|
OmsOrder order = this.getOne(new LambdaQueryWrapper<OmsOrder>().eq(OmsOrder::getOrderSn,orderSn)); |
|
|
OmsOrder order = this.getOne(new LambdaQueryWrapper<OmsOrder>().eq(OmsOrder::getOrderSn, orderSn)); |
|
|
if(order==null){ |
|
|
if (order == null) { |
|
|
Assert.throwEx("订单编码异常"); |
|
|
Assert.throwEx("订单编码异常"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
List<GoodsImminentBatch> updItemBatch = new ArrayList<>(); |
|
|
List<GoodsImminentBatch> updItemBatch = new ArrayList<>(); |
|
|
if(order.getOrderType().equals(3)){ |
|
|
if (order.getOrderType().equals(3)) { |
|
|
List<OmsOrderItem> itemList = omsOrderItemService.list(new LambdaQueryWrapper<OmsOrderItem>() |
|
|
List<OmsOrderItem> itemList = omsOrderItemService.list(new LambdaQueryWrapper<OmsOrderItem>() |
|
|
.eq(OmsOrderItem::getOrderId,order.getId())); |
|
|
.eq(OmsOrderItem::getOrderId, order.getId())); |
|
|
for (OmsOrderItem orderItem : itemList) { |
|
|
for (OmsOrderItem orderItem : itemList) { |
|
|
GoodsImminentBatch batch = goodsImminentBatchService.getById(orderItem.getSkuBatchId()); |
|
|
GoodsImminentBatch batch = goodsImminentBatchService.getById(orderItem.getSkuBatchId()); |
|
|
GoodsImminentBatch newBatch = new GoodsImminentBatch(); |
|
|
GoodsImminentBatch newBatch = new GoodsImminentBatch(); |
|
@ -1042,16 +1097,16 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
R<?> r = seeYonRequestBaseService.postBase(ERP_ORDER_CANCEL+"/"+orderSn |
|
|
R<?> r = seeYonRequestBaseService.postBase(ERP_ORDER_CANCEL + "/" + orderSn |
|
|
,null |
|
|
, null |
|
|
,"获取订单状态" |
|
|
, "获取订单状态" |
|
|
); |
|
|
); |
|
|
if(r.getStatus()==200){ |
|
|
if (r.getStatus() == 200) { |
|
|
if(CollectionUtil.isNotEmpty(updItemBatch)){ |
|
|
if (CollectionUtil.isNotEmpty(updItemBatch)) { |
|
|
goodsImminentBatchService.updateBatchById(updItemBatch); |
|
|
goodsImminentBatchService.updateBatchById(updItemBatch); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
return r.getStatus()==200; |
|
|
return r.getStatus() == 200; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|