|
@ -3,17 +3,20 @@ 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.util.*; |
|
|
import com.qs.serve.common.util.*; |
|
|
|
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; |
|
|
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; |
|
|
|
|
|
import com.qs.serve.modules.bms.mapper.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.entity.GoodsCategoryRule; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSku; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSku; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSpu; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSpu; |
|
|
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.service.GoodsSkuService; |
|
|
import com.qs.serve.modules.goods.service.GoodsSkuService; |
|
|
import com.qs.serve.modules.goods.service.GoodsSpuService; |
|
|
import com.qs.serve.modules.goods.service.GoodsSpuService; |
|
|
import com.qs.serve.modules.oms.entity.OmsOrderItem; |
|
|
import com.qs.serve.modules.oms.entity.*; |
|
|
import com.qs.serve.modules.oms.entity.OmsShoppingCart; |
|
|
|
|
|
import com.qs.serve.modules.oms.entity.bo.*; |
|
|
import com.qs.serve.modules.oms.entity.bo.*; |
|
|
import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam; |
|
|
import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam; |
|
|
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; |
|
|
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; |
|
@ -21,6 +24,8 @@ import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; |
|
|
import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; |
|
|
import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; |
|
|
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.OmsXltOrderItemMapper; |
|
|
|
|
|
import com.qs.serve.modules.oms.mapper.OmsXltOrderMapper; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderItemService; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderItemService; |
|
|
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; |
|
@ -35,12 +40,12 @@ 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.entity.OmsOrder; |
|
|
|
|
|
import com.qs.serve.modules.oms.service.OmsOrderService; |
|
|
import com.qs.serve.modules.oms.service.OmsOrderService; |
|
|
import com.qs.serve.modules.oms.mapper.OmsOrderMapper; |
|
|
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; |
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@ -54,17 +59,24 @@ import java.util.stream.Collectors; |
|
|
@AllArgsConstructor |
|
|
@AllArgsConstructor |
|
|
public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> implements OmsOrderService { |
|
|
public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> implements OmsOrderService { |
|
|
|
|
|
|
|
|
private OmsShoppingCartService omsShoppingCartService; |
|
|
|
|
|
private GoodsSkuService goodsSkuService; |
|
|
private GoodsSkuService goodsSkuService; |
|
|
private GoodsSpuService goodsSpuService; |
|
|
private GoodsSpuService goodsSpuService; |
|
|
|
|
|
private GoodsCategoryRuleMapper goodsCategoryRuleMapper; |
|
|
|
|
|
|
|
|
private BmsSupplierMapper bmsSupplierMapper; |
|
|
private BmsSupplierMapper bmsSupplierMapper; |
|
|
|
|
|
private BmsRegionMapper bmsRegionMapper; |
|
|
private BmsSupplierAddressService bmsSupplierAddressService; |
|
|
private BmsSupplierAddressService bmsSupplierAddressService; |
|
|
|
|
|
|
|
|
private SysUserService sysUserService; |
|
|
private SysUserService sysUserService; |
|
|
private SysDeptService sysDeptService; |
|
|
private SysDeptService sysDeptService; |
|
|
private OmsOrderItemService omsOrderItemService; |
|
|
|
|
|
private SalePlanMapper salePlanMapper; |
|
|
private SalePlanMapper salePlanMapper; |
|
|
private SalePlanGoodsMapper salePlanGoodsMapper; |
|
|
private SalePlanGoodsMapper salePlanGoodsMapper; |
|
|
|
|
|
|
|
|
|
|
|
private OmsOrderItemService omsOrderItemService; |
|
|
|
|
|
private OmsXltOrderMapper omsXltOrderMapper; |
|
|
|
|
|
private OmsXltOrderItemMapper omsXltOrderItemMapper; |
|
|
|
|
|
private OmsShoppingCartService omsShoppingCartService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public OmsConfirmOrderResult confirmOrder(OmsOrderBo confirmOrder) { |
|
|
public OmsConfirmOrderResult confirmOrder(OmsOrderBo confirmOrder) { |
|
@ -170,8 +182,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
@Override |
|
|
@Override |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public void modifyOrder(OmsOrderModifyParam param) { |
|
|
public void modifyOrder(OmsOrderModifyParam param) { |
|
|
OmsOrder order = super.getById(param.getUserId()); |
|
|
OmsOrder order = super.getById(param.getId()); |
|
|
if(order.getStatus().equals(0)){ |
|
|
if(!order.getStatus().equals(0)){ |
|
|
Assert.throwEx("非草稿状态订单无法修改"); |
|
|
Assert.throwEx("非草稿状态订单无法修改"); |
|
|
} |
|
|
} |
|
|
order.setId(param.getId()); |
|
|
order.setId(param.getId()); |
|
@ -214,16 +226,20 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
orderItem.setSpuId(goodsSpu.getId()); |
|
|
orderItem.setSpuId(goodsSpu.getId()); |
|
|
orderItem.setSpuCode(goodsSpu.getSpuCode()); |
|
|
orderItem.setSpuCode(goodsSpu.getSpuCode()); |
|
|
orderItem.setSpuTitle(goodsSpu.getName()); |
|
|
orderItem.setSpuTitle(goodsSpu.getName()); |
|
|
if(goodsSku==null){ |
|
|
if(goodsSku!=null){ |
|
|
orderItem.setSkuId(goodsSku.getId()); |
|
|
orderItem.setSkuId(goodsSku.getId()); |
|
|
orderItem.setSkuCode(goodsSku.getSkuCode()); |
|
|
orderItem.setSkuCode(goodsSku.getSkuCode()); |
|
|
orderItem.setSpecValues(goodsSku.getSpecInfos()); |
|
|
orderItem.setSpecValues(goodsSku.getSpecInfos()); |
|
|
orderItem.setSkuUnit(null); |
|
|
orderItem.setSkuUnit(goodsSku.getUnitName()); |
|
|
orderItem.setSkuImg(null); |
|
|
orderItem.setSkuImg(goodsSku.getPicUrl()); |
|
|
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.setSkuCode(""); |
|
|
|
|
|
orderItem.setSkuUnit(""); |
|
|
|
|
|
orderItem.setSkuImg(null); |
|
|
orderItem.setSpecValues(goodsSpu.getName()); |
|
|
orderItem.setSpecValues(goodsSpu.getName()); |
|
|
orderItem.setSalesPrice(BigDecimal.ZERO); |
|
|
orderItem.setSalesPrice(BigDecimal.ZERO); |
|
|
orderItem.setCusPrice(BigDecimal.ZERO); |
|
|
orderItem.setCusPrice(BigDecimal.ZERO); |
|
@ -374,22 +390,20 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
public void buildPriceOrder(String id) { |
|
|
public void buildPriceOrder(String id) { |
|
|
OmsOrder omsOrder = super.getById(id); |
|
|
OmsOrder omsOrder = super.getById(id); |
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
SysUser sysUser = sysUserService.getById(userId); |
|
|
// if(omsOrder==null || !omsOrder.getUserId().equals(userId)){
|
|
|
SysDept dept = sysDeptService.getById(sysUser.getDeptId()); |
|
|
// Assert.throwEx("订单不存在或被移除");
|
|
|
if(omsOrder==null || !omsOrder.getUserId().equals(userId)){ |
|
|
// }
|
|
|
Assert.throwEx("订单不存在或被移除"); |
|
|
|
|
|
} |
|
|
|
|
|
LambdaQueryWrapper<OmsOrderItem> iteLqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<OmsOrderItem> iteLqw = new LambdaQueryWrapper<>(); |
|
|
iteLqw.eq(OmsOrderItem::getOrderId,id); |
|
|
iteLqw.eq(OmsOrderItem::getOrderId,id); |
|
|
List<OmsOrderItem> list = omsOrderItemService.list(iteLqw); |
|
|
List<OmsOrderItem> orderItemList = omsOrderItemService.list(iteLqw); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Long> spuIds = list.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); |
|
|
List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
//TODO 通过当前函数获取当前账套对于的skuID
|
|
|
//通过当前函数获取当前账套对于的skuID,默认全部转化为开平的sku
|
|
|
List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("",spuIds); |
|
|
List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("001",spuIds); |
|
|
|
|
|
|
|
|
for (OmsOrderItem orderItem : list) { |
|
|
for (OmsOrderItem orderItem : orderItemList) { |
|
|
if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){ |
|
|
if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){ |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
@ -413,8 +427,80 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
//更新设置sku后的信息
|
|
|
//更新设置sku后的信息
|
|
|
omsOrderItemService.updateBatchById(list); |
|
|
omsOrderItemService.updateBatchById(orderItemList); |
|
|
|
|
|
|
|
|
|
|
|
//直接调用U8接口生成
|
|
|
|
|
|
//SysUser sysUser = sysUserService.getById(userId);
|
|
|
|
|
|
//SysDept dept = sysDeptService.getById(sysUser.getDeptId());
|
|
|
|
|
|
//this.toU8Api(omsOrder, sysUser, dept, orderItemList);
|
|
|
|
|
|
|
|
|
|
|
|
//加载关联数据
|
|
|
|
|
|
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId()); |
|
|
|
|
|
GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(omsOrder.getBrandRuleId()); |
|
|
|
|
|
String brands = Arrays.stream(categoryRule.getBrandNames()).collect(Collectors.joining(",")); |
|
|
|
|
|
BmsSupplier supplier = bmsSupplierMapper.selectById(omsOrder.getSupplierId()); |
|
|
|
|
|
String lastRegionId = supplier.getRegionLast(); |
|
|
|
|
|
BmsRegion bmsRegion = bmsRegionMapper.selectById(lastRegionId); |
|
|
|
|
|
//保存到临时表-主表
|
|
|
|
|
|
LocalDateTime nowTime = LocalDateTime.now(); |
|
|
|
|
|
OmsXltOrder xltOrder = new OmsXltOrder(); |
|
|
|
|
|
xltOrder.setId(IdUtil.getSnowFlakeId()+""); |
|
|
|
|
|
xltOrder.setDingDanHao(omsOrder.getOrderSn()); |
|
|
|
|
|
xltOrder.setShenQingRiQi(nowTime); |
|
|
|
|
|
xltOrder.setKeHuBianHao(omsOrder.getSupplierCode()); |
|
|
|
|
|
xltOrder.setShouHuoDiZhi(supplierAddress.getDetail()); |
|
|
|
|
|
xltOrder.setRenYuanBianHao(omsOrder.getUserCode()); |
|
|
|
|
|
xltOrder.setZhuYiShiXian(omsOrder.getRemark()); |
|
|
|
|
|
xltOrder.setXieRuShiJian(nowTime); |
|
|
|
|
|
xltOrder.setChuLiShiJian(null); |
|
|
|
|
|
xltOrder.setRowCreateDate(nowTime); |
|
|
|
|
|
xltOrder.setRenYuanXingMing(omsOrder.getUserName()); |
|
|
|
|
|
xltOrder.setRenYuanDianHua(omsOrder.getUserPhone()); |
|
|
|
|
|
xltOrder.setXianZhiWeiDu("品牌"); |
|
|
|
|
|
xltOrder.setXianZhiWeiDuMingChen(brands); |
|
|
|
|
|
xltOrder.setZhuangTai(0); |
|
|
|
|
|
//状态:0未使用;1报价单;2销售订单
|
|
|
|
|
|
xltOrder.setStatus(0); |
|
|
|
|
|
|
|
|
|
|
|
xltOrder.setEmpName(omsOrder.getUserName()); |
|
|
|
|
|
xltOrder.setCusCode(omsOrder.getSupplierCode()); |
|
|
|
|
|
xltOrder.setCusName(omsOrder.getSupplierName()); |
|
|
|
|
|
|
|
|
|
|
|
String[] regions = bmsRegion.getPathNames().split("_"); |
|
|
|
|
|
if(regions.length>1){ |
|
|
|
|
|
xltOrder.setDealerProvince(regions[1]); |
|
|
|
|
|
} |
|
|
|
|
|
if(regions.length>0){ |
|
|
|
|
|
xltOrder.setDealerCity(regions[0]); |
|
|
|
|
|
} |
|
|
|
|
|
xltOrder.setDealerArea(bmsRegion.getPathNames()); |
|
|
|
|
|
|
|
|
|
|
|
omsXltOrderMapper.insert(xltOrder); |
|
|
|
|
|
//保存到临时表-明细表
|
|
|
|
|
|
for (OmsOrderItem orderItem : orderItemList) { |
|
|
|
|
|
OmsXltOrderItem xltOrderItem = new OmsXltOrderItem(); |
|
|
|
|
|
xltOrderItem.setDingDanID(xltOrder.getId()); |
|
|
|
|
|
xltOrderItem.setChanPinBianHao(orderItem.getSkuCode()); |
|
|
|
|
|
xltOrderItem.setChanPinDanWei(orderItem.getSkuUnit()); |
|
|
|
|
|
xltOrderItem.setDingHuoShuLiang(orderItem.getQuantity()); |
|
|
|
|
|
xltOrderItem.setDaZengShuLiang(BigDecimal.ZERO); |
|
|
|
|
|
xltOrderItem.setChanPinYuanJia(orderItem.getMarketPrice()); |
|
|
|
|
|
xltOrderItem.setChanPinXianJia(orderItem.getSalesPrice()); |
|
|
|
|
|
xltOrderItem.setXieRuShiJian(nowTime); |
|
|
|
|
|
xltOrderItem.setChuLiShiJian(null); |
|
|
|
|
|
xltOrderItem.setRowCreateDate(nowTime); |
|
|
|
|
|
xltOrderItem.setBeiZhu(null); |
|
|
|
|
|
xltOrderItem.setZhuangTai(0); |
|
|
|
|
|
omsXltOrderItemMapper.insert(xltOrderItem); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//更新订单
|
|
|
|
|
|
omsOrder.setStatus(1); |
|
|
|
|
|
this.updateById(omsOrder); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void toU8Api(OmsOrder omsOrder, SysUser sysUser, SysDept dept, List<OmsOrderItem> list) { |
|
|
List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>(); |
|
|
List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>(); |
|
|
for (OmsOrderItem orderItem : list) { |
|
|
for (OmsOrderItem orderItem : list) { |
|
|
ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem(); |
|
|
ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem(); |
|
@ -447,19 +533,40 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im |
|
|
offerOrder.setInventoryItemList(inventoryItemList); |
|
|
offerOrder.setInventoryItemList(inventoryItemList); |
|
|
offerOrder.setCusName(omsOrder.getSupplierName()); |
|
|
offerOrder.setCusName(omsOrder.getSupplierName()); |
|
|
offerOrder.setMakerName(sysUser.getName()); |
|
|
offerOrder.setMakerName(sysUser.getName()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* TODO: 根据账套,获取spuId对应的skuId |
|
|
* TODO: 根据账套,获取spuId对应的skuId |
|
|
* @param book |
|
|
* @param book 账套 |
|
|
* @param spuIds |
|
|
* @param spuIds 嘉士利的SKU-CODE |
|
|
* @return |
|
|
* @return 嘉士利的invCode |
|
|
*/ |
|
|
*/ |
|
|
public List<OmsSpuToSkuKey> getSpuToSkuInfo(String book, List<Long> spuIds){ |
|
|
public List<OmsSpuToSkuKey> getSpuToSkuInfo(String book, List<Long> spuIds){ |
|
|
return null; |
|
|
//TODO 测试数据
|
|
|
|
|
|
List<OmsSpuToSkuKey> rs = new ArrayList<>(); |
|
|
|
|
|
Long[] skuIds = {2315912284L, |
|
|
|
|
|
2315912286L, |
|
|
|
|
|
2315912287L, |
|
|
|
|
|
2315912288L, |
|
|
|
|
|
2315912289L, |
|
|
|
|
|
2315912290L, |
|
|
|
|
|
2315912291L, |
|
|
|
|
|
2315912292L, |
|
|
|
|
|
2315912293L, |
|
|
|
|
|
2315912294L, |
|
|
|
|
|
2315912295L, |
|
|
|
|
|
2315912296L, |
|
|
|
|
|
2315912297L, |
|
|
|
|
|
2315912298L, |
|
|
|
|
|
2315912300L,}; |
|
|
|
|
|
for (int i = 0; i < spuIds.size(); i++) { |
|
|
|
|
|
OmsSpuToSkuKey skuKey = new OmsSpuToSkuKey(); |
|
|
|
|
|
skuKey.setSpuId(spuIds.get(i)); |
|
|
|
|
|
skuKey.setSkuId(skuIds[i]); |
|
|
|
|
|
rs.add(skuKey); |
|
|
|
|
|
} |
|
|
|
|
|
return rs; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|