@ -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 . li stByS upplierId ( order . getSupplier Id ( ) . 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 & & param . 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,24 +387,25 @@ 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 ) ;
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 ( ) + "]不予下单且非特殊品" ) ;
Assert . throwEx ( "单品[" + sku . getSkuCode ( ) + "]不予下单且非特殊品" ) ;
}
}
}
}
skuIds . addAll ( skuList . stream ( ) . map ( GoodsSku : : getSpuId ) . collect ( Collectors . toList ( ) ) ) ;
skuIds . addAll ( skuList . stream ( ) . map ( GoodsSku : : getSpuId ) . collect ( Collectors . toList ( ) ) ) ;
@ -414,35 +413,90 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
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 ( ) + "]不予下单" ) ;
Assert . throwEx ( "SKU已下架[" + goodsSpu . getSpuCode ( ) + "]不予下单" ) ;
}
}
if ( ! goodsSpu . getOrderFlag ( ) . equals ( 1 ) ) {
if ( ! goodsSpu . getOrderFlag ( ) . equals ( 1 ) ) {
boolean msp = skuList . stream ( ) . anyMatch ( m - > m . getSpuId ( ) . equals ( goodsSpu . getId ( ) ) & & m . getSpecialFlag ( ) . equals ( 1 ) ) ;
boolean msp = skuList . stream ( ) . anyMatch ( m - > m . getSpuId ( ) . equals ( goodsSpu . getId ( ) ) & & m . getSpecialFlag ( ) . equals ( 1 ) ) ;
if ( ! msp ) {
if ( ! msp ) {
Assert . throwEx ( "SKU[" + goodsSpu . getSpuCode ( ) + "]不予下单" ) ;
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 ) ;
for ( GoodsSku sku : skuList ) {
if ( ! sku . getOrderFlag ( ) . equals ( 1 ) & & sku . getSpecialFlag ( ) . equals ( 0 ) ) {
errSkuIds . add ( new SimpleKeyValue ( "单品不予下单且非特殊品" , sku . getId ( ) ) ) ;
break ;
}
}
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 ) ;
for ( GoodsSpu goodsSpu : spuList ) {
if ( ! goodsSpu . getShelf ( ) . equals ( 1 ) ) {
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 ( ) ;
}
}
errSkuIds . add ( new SimpleKeyValue ( "SKU不予下单" , errSkuId ) ) ;
}
}
}
}
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 & & param . 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 ;
}
}
}
}