|
@ -31,6 +31,7 @@ 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.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.event.OrderCreateCacheEvent; |
|
|
import com.qs.serve.modules.oms.mapper.OmsSaleOrderMapper; |
|
|
import com.qs.serve.modules.oms.mapper.OmsSaleOrderMapper; |
|
|
import com.qs.serve.modules.oms.service.*; |
|
|
import com.qs.serve.modules.oms.service.*; |
|
|
import com.qs.serve.modules.oms.utils.OmsOrderUtil; |
|
|
import com.qs.serve.modules.oms.utils.OmsOrderUtil; |
|
@ -46,6 +47,7 @@ import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
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.context.ApplicationEventPublisher; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
@ -91,6 +93,7 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
private GoodsAccreditService goodsAccreditService; |
|
|
private GoodsAccreditService goodsAccreditService; |
|
|
private GoodsImminentBatchService goodsImminentBatchService; |
|
|
private GoodsImminentBatchService goodsImminentBatchService; |
|
|
private RedisService redisService; |
|
|
private RedisService redisService; |
|
|
|
|
|
private ApplicationEventPublisher applicationEventPublisher; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public BigDecimal getExpiredOrderRateById(String oaId) { |
|
|
public BigDecimal getExpiredOrderRateById(String oaId) { |
|
@ -579,11 +582,11 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
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 = "RSN"; |
|
|
} else if (order.getOrderType().equals(1)) { |
|
|
} else if (order.getOrderType().equals(1)) { |
|
|
orderPrefix = "ZP"; |
|
|
orderPrefix = "RZP"; |
|
|
} else if (order.getOrderType().equals(2)) { |
|
|
} else if (order.getOrderType().equals(2)) { |
|
|
orderPrefix = "SC"; |
|
|
orderPrefix = "RSC"; |
|
|
} |
|
|
} |
|
|
order.setOrderSn(orderPrefix + CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
order.setOrderSn(orderPrefix + CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
|
|
|
|
|
@ -883,7 +886,7 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
order = new OmsSaleOrder(); |
|
|
order = new OmsSaleOrder(); |
|
|
order.setOrderSn("SP" + CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
order.setOrderSn("SSP" + CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); |
|
|
} |
|
|
} |
|
|
order.setLatitudeFrom("sp"); |
|
|
order.setLatitudeFrom("sp"); |
|
|
order.setCdOrderRemark(param.getCdOrderRemark()); |
|
|
order.setCdOrderRemark(param.getCdOrderRemark()); |
|
@ -1076,10 +1079,10 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
//更新最新的用户特殊价格
|
|
|
//更新最新的用户特殊价格
|
|
|
this.updateCusPrice(omsOrder.getSupplierCode(), orderItemList); |
|
|
this.updateCusPrice(omsOrder.getSupplierCode(), orderItemList); |
|
|
|
|
|
|
|
|
//补充:调度系统写报价单给ERP时,要把地址ID写过去
|
|
|
//DEV补充:调度系统写报价单给ERP时,要把地址ID写过去
|
|
|
if (supplierAddress.getTmsSysId() == null) { |
|
|
// if (supplierAddress.getTmsSysId() == null) {
|
|
|
Assert.throwEx("地址缺失TmsSysId关联"); |
|
|
// Assert.throwEx("地址缺失TmsSysId关联");
|
|
|
} |
|
|
// }
|
|
|
|
|
|
|
|
|
//保存到ERP中间表
|
|
|
//保存到ERP中间表
|
|
|
this.saveToErpOrder(omsOrder, orderItemList, brands, supplierAddress, bmsRegion); |
|
|
this.saveToErpOrder(omsOrder, orderItemList, brands, supplierAddress, bmsRegion); |
|
@ -1094,8 +1097,88 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
BmsRegion bmsRegion) { |
|
|
BmsRegion bmsRegion) { |
|
|
SysUser sysUser = sysUserService.getById(omsOrder.getCreateBy()); |
|
|
SysUser sysUser = sysUserService.getById(omsOrder.getCreateBy()); |
|
|
//保存到临时表-主表
|
|
|
//保存到临时表-主表
|
|
|
LocalDateTime nowTime = LocalDateTime.now(); |
|
|
// LocalDateTime nowTime = LocalDateTime.now();
|
|
|
//更新订单
|
|
|
// OmsXltOrder xltOrder = new OmsXltOrder();
|
|
|
|
|
|
// xltOrder.setId(IdUtil.getSnowFlakeId() + "");
|
|
|
|
|
|
// xltOrder.setOrderType(omsOrder.getOrderType());
|
|
|
|
|
|
// xltOrder.setDingDanHao(omsOrder.getOrderSn());
|
|
|
|
|
|
// xltOrder.setShenQingRiQi(nowTime);
|
|
|
|
|
|
// xltOrder.setKeHuBianHao(omsOrder.getSupplierCode());
|
|
|
|
|
|
// xltOrder.setShouHuoDiZhi(supplierAddress.getDetail());
|
|
|
|
|
|
// xltOrder.setRenYuanBianHao(omsOrder.getUserCode());
|
|
|
|
|
|
// xltOrder.setCdOrderRemark(omsOrder.getCdOrderRemark());
|
|
|
|
|
|
// xltOrder.setDiscountRate(omsOrder.getDiscountRate());
|
|
|
|
|
|
// String remark = sysUser.getName() + "(" + sysUser.getMobile() + ")" + omsOrder.getRemark() + supplierAddress.getDetail();
|
|
|
|
|
|
// if (remark.length() > 120) {
|
|
|
|
|
|
// remark = remark.substring(0, 120);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// xltOrder.setZhuYiShiXian(remark);
|
|
|
|
|
|
// 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.setTmsSysId(supplierAddress.getId() + "");
|
|
|
|
|
|
// xltOrder.setEmpName(omsOrder.getUserName());
|
|
|
|
|
|
// xltOrder.setCusCode(omsOrder.getSupplierCode());
|
|
|
|
|
|
// xltOrder.setCusName(omsOrder.getSupplierName());
|
|
|
|
|
|
//
|
|
|
|
|
|
// try {
|
|
|
|
|
|
// String[] regions = bmsRegion.getPathNames().split("_");
|
|
|
|
|
|
// if (regions.length > 1) {
|
|
|
|
|
|
// xltOrder.setDealerProvince(regions[1]);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// if (regions.length > 0) {
|
|
|
|
|
|
// xltOrder.setDealerCity(regions[0]);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// } catch (Exception e) {
|
|
|
|
|
|
// log.warn("区域档案异常:{}",bmsRegion.getName());
|
|
|
|
|
|
// }
|
|
|
|
|
|
// xltOrder.setDealerArea(bmsRegion.getPathNames());
|
|
|
|
|
|
//
|
|
|
|
|
|
// //保存到临时表-明细表
|
|
|
|
|
|
// List<OmsXltOrderItem> xltOrderItemList = new ArrayList<>();
|
|
|
|
|
|
// for (int i = 0; i < orderItemList.size(); i++) {
|
|
|
|
|
|
// OmsSaleOrderItem orderItem = orderItemList.get(i);
|
|
|
|
|
|
// OmsXltOrderItem xltOrderItem = new OmsXltOrderItem();
|
|
|
|
|
|
// xltOrderItem.setId(xltOrder.getId() + "_" + (i + 1));
|
|
|
|
|
|
// xltOrderItem.setDingDanID(xltOrder.getId());
|
|
|
|
|
|
// xltOrderItem.setSpuCode(orderItem.getSpuCode());
|
|
|
|
|
|
// boolean eq = orderItem.getSkuCode().equals(orderItem.getSpuCode());
|
|
|
|
|
|
// if (!StringUtils.hasText(orderItem.getSkuCode()) || eq) {
|
|
|
|
|
|
// GoodsSku sku = goodsSkuService.getById(orderItem.getSkuId());
|
|
|
|
|
|
// GoodsSpu spu = goodsSpuService.getById(orderItem.getSpuId());
|
|
|
|
|
|
// if (!sku.getSkuCode().equals(spu.getSpuCode())) {
|
|
|
|
|
|
// Assert.throwEx("SKU【" + orderItem.getSpuCode() + "】存货缺失,请联系档案负责人");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// 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);
|
|
|
|
|
|
// if (omsOrder.getOrderType().equals(3)) {
|
|
|
|
|
|
// String itemRm = orderItem.getRemark() == null ? "" : orderItem.getRemark();
|
|
|
|
|
|
// xltOrderItem.setBeiZhu("批号[" + orderItem.getSkuBatchCode() + "]" + itemRm);
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
// xltOrderItem.setBeiZhu(orderItem.getRemark());
|
|
|
|
|
|
// }
|
|
|
|
|
|
// xltOrderItem.setZhuangTai(0);
|
|
|
|
|
|
// xltOrderItemList.add(xltOrderItem);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// XltOrderDTO xltOrderDTO = new XltOrderDTO(xltOrder, xltOrderItemList);
|
|
|
|
|
|
// //请求到中间服务保存
|
|
|
|
|
|
// seeYonRequestBaseService.postBase(ERP_ORDER_CREATE, xltOrderDTO, "创建订单:" + xltOrder.getDingDanHao());
|
|
|
omsOrder.setStatus(1); |
|
|
omsOrder.setStatus(1); |
|
|
omsOrder.setCheckTime(LocalDateTime.now()); |
|
|
omsOrder.setCheckTime(LocalDateTime.now()); |
|
|
omsOrder.setCheckUserId(omsOrder.getCreateBy()); |
|
|
omsOrder.setCheckUserId(omsOrder.getCreateBy()); |
|
@ -1103,6 +1186,8 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms |
|
|
omsOrder.setCheckUserId(AuthContextUtils.getSysUserId()); |
|
|
omsOrder.setCheckUserId(AuthContextUtils.getSysUserId()); |
|
|
} |
|
|
} |
|
|
this.updateById(omsOrder); |
|
|
this.updateById(omsOrder); |
|
|
|
|
|
//更新订单
|
|
|
|
|
|
applicationEventPublisher.publishEvent(new OrderCreateCacheEvent(this,omsOrder.getId().toString())); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|