预约单改造;
This commit is contained in:
+70
-2
@@ -1,10 +1,14 @@
|
|||||||
package com.mhd.oms.domain.businessDocumentOrder.service;
|
package com.mhd.oms.domain.businessDocumentOrder.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Snowflake;
|
import cn.hutool.core.lang.Snowflake;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import com.aliyun.oss.ServiceException;
|
import com.aliyun.oss.ServiceException;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.mhd.common.core.domain.entity.TmsOrder;
|
||||||
import com.mhd.common.core.domain.po.UserShipperPo;
|
import com.mhd.common.core.domain.po.UserShipperPo;
|
||||||
import com.mhd.common.core.utils.DateUtils;
|
import com.mhd.common.core.utils.DateUtils;
|
||||||
import com.mhd.common.core.utils.OrderSequence;
|
import com.mhd.common.core.utils.OrderSequence;
|
||||||
@@ -47,6 +51,7 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -101,6 +106,25 @@ public class BusinessDocumentOrderDomainService {
|
|||||||
return businessDocumentOrderService.queryList(businessDocumentOrderDO);
|
return businessDocumentOrderService.queryList(businessDocumentOrderDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getOrderCodeByDate(Date date){
|
||||||
|
return new StringBuffer()
|
||||||
|
.append(getSecondPartByDate(date))
|
||||||
|
.append(getThreePart())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
private static String getSecondPartByDate(Date date) {
|
||||||
|
if (date == null) {
|
||||||
|
date = new Date();
|
||||||
|
}
|
||||||
|
String temp_current_time = DateUtil.format(date, datePattern());
|
||||||
|
return temp_current_time.substring(2, temp_current_time.length());
|
||||||
|
}
|
||||||
|
private static String datePattern() {
|
||||||
|
return "yyyyMMddHHmmss";
|
||||||
|
}
|
||||||
|
private static String getThreePart() {
|
||||||
|
return RandomUtil.randomNumbers(4);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增【请填写功能名称】
|
* 新增【请填写功能名称】
|
||||||
@@ -262,12 +286,16 @@ public class BusinessDocumentOrderDomainService {
|
|||||||
|
|
||||||
tmsOrder.setGoodsNumber(OrderSequence.getOrderCode());
|
tmsOrder.setGoodsNumber(OrderSequence.getOrderCode());
|
||||||
}
|
}
|
||||||
ReservationStockOutOrder reservationStockOutOrder = reservationStockOutOrderMapper.selectOne(new LambdaQueryWrapper<ReservationStockOutOrder>().eq(ReservationStockOutOrder::getOutOrderNumber, tmsOrder.getInOrderNumber()));
|
ReservationStockOutOrder reservationStockOutOrder = reservationStockOutOrderMapper.selectOne(new LambdaQueryWrapper<ReservationStockOutOrder>()
|
||||||
|
.eq(ReservationStockOutOrder::getOutOrderNumber, tmsOrder.getInOrderNumber())
|
||||||
|
.eq(ReservationStockOutOrder::getDelFlag, 1));
|
||||||
if (reservationStockOutOrder != null){
|
if (reservationStockOutOrder != null){
|
||||||
reservationStockOutOrder.setBusinessNumber(tmsOrder.getGoodsNumber());
|
reservationStockOutOrder.setBusinessNumber(tmsOrder.getGoodsNumber());
|
||||||
reservationStockOutOrderMapper.updateById(reservationStockOutOrder);
|
reservationStockOutOrderMapper.updateById(reservationStockOutOrder);
|
||||||
}
|
}
|
||||||
ReservationStockInOrder reservationStockInOrder = reservationStockInOrderMapper.selectOne(new LambdaQueryWrapper<ReservationStockInOrder>().eq(ReservationStockInOrder::getInOrderNumber, tmsOrder.getInOrderNumber()));
|
ReservationStockInOrder reservationStockInOrder = reservationStockInOrderMapper.selectOne(new LambdaQueryWrapper<ReservationStockInOrder>()
|
||||||
|
.eq(ReservationStockInOrder::getInOrderNumber, tmsOrder.getInOrderNumber())
|
||||||
|
.eq(ReservationStockInOrder::getDelFlag, 1));
|
||||||
if (reservationStockInOrder != null){
|
if (reservationStockInOrder != null){
|
||||||
reservationStockInOrder.setBusinessNumber(tmsOrder.getGoodsNumber());
|
reservationStockInOrder.setBusinessNumber(tmsOrder.getGoodsNumber());
|
||||||
reservationStockInOrderMapper.updateById(reservationStockInOrder);
|
reservationStockInOrderMapper.updateById(reservationStockInOrder);
|
||||||
@@ -475,6 +503,7 @@ public class BusinessDocumentOrderDomainService {
|
|||||||
throw new ServiceException("您非货主角色或账号已被删除!");
|
throw new ServiceException("您非货主角色或账号已被删除!");
|
||||||
}
|
}
|
||||||
BusinessDocumentOrder tmsOrder = businessDocumentOrderService.getById(businessDocumentOrderDO.getId());
|
BusinessDocumentOrder tmsOrder = businessDocumentOrderService.getById(businessDocumentOrderDO.getId());
|
||||||
|
|
||||||
if (tmsOrder.getOrderStatus() == 1){
|
if (tmsOrder.getOrderStatus() == 1){
|
||||||
tmsOrder.setOrderStatus(0L);
|
tmsOrder.setOrderStatus(0L);
|
||||||
}
|
}
|
||||||
@@ -681,6 +710,45 @@ public class BusinessDocumentOrderDomainService {
|
|||||||
}
|
}
|
||||||
// boolean istrue=businessDocumentOrderService.update(businessDocumentOrderDO);
|
// boolean istrue=businessDocumentOrderService.update(businessDocumentOrderDO);
|
||||||
|
|
||||||
|
|
||||||
|
String orderCode = null;
|
||||||
|
int maxRetryCount = 100;
|
||||||
|
int retryCount = 0;
|
||||||
|
|
||||||
|
while (retryCount < maxRetryCount) {
|
||||||
|
orderCode = getOrderCodeByDate(tmsOrder.getDocumentDate());
|
||||||
|
retryCount++;
|
||||||
|
|
||||||
|
List<BusinessDocumentOrder> checkOrderCodes = businessDocumentOrderMapper.selectList(
|
||||||
|
new QueryWrapper<BusinessDocumentOrder>().eq("goods_number", orderCode)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(checkOrderCodes)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (retryCount >= maxRetryCount) {
|
||||||
|
throw new ServiceException("生成唯一订单编号失败,已达到最大重试次数:" + maxRetryCount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//生成货源单号
|
||||||
|
tmsOrder.setGoodsNumber(orderCode);
|
||||||
|
|
||||||
|
ReservationStockOutOrder reservationStockOutOrder = reservationStockOutOrderMapper.selectOne(new LambdaQueryWrapper<ReservationStockOutOrder>()
|
||||||
|
.eq(ReservationStockOutOrder::getOutOrderNumber, tmsOrder.getInOrderNumber())
|
||||||
|
.eq(ReservationStockOutOrder::getDelFlag, 1));
|
||||||
|
if (reservationStockOutOrder != null){
|
||||||
|
reservationStockOutOrder.setBusinessNumber(tmsOrder.getGoodsNumber());
|
||||||
|
reservationStockOutOrderMapper.updateById(reservationStockOutOrder);
|
||||||
|
}
|
||||||
|
ReservationStockInOrder reservationStockInOrder = reservationStockInOrderMapper.selectOne(new LambdaQueryWrapper<ReservationStockInOrder>()
|
||||||
|
.eq(ReservationStockInOrder::getInOrderNumber, tmsOrder.getInOrderNumber())
|
||||||
|
.eq(ReservationStockInOrder::getDelFlag, 1));
|
||||||
|
if (reservationStockInOrder != null){
|
||||||
|
reservationStockInOrder.setBusinessNumber(tmsOrder.getGoodsNumber());
|
||||||
|
reservationStockInOrderMapper.updateById(reservationStockInOrder);
|
||||||
|
}
|
||||||
int i = businessDocumentOrderMapper.updateById(tmsOrder);
|
int i = businessDocumentOrderMapper.updateById(tmsOrder);
|
||||||
if (deliveryFreight != null && deliveryFreight.compareTo(BigDecimal.ZERO) > 0){
|
if (deliveryFreight != null && deliveryFreight.compareTo(BigDecimal.ZERO) > 0){
|
||||||
List<ReservationOrder> reservationOrderList = reservationOrderMapper.selectList(new LambdaQueryWrapper<ReservationOrder>().eq(ReservationOrder::getGoodsNumber, businessDocumentOrderDO.getGoodsNumber()));
|
List<ReservationOrder> reservationOrderList = reservationOrderMapper.selectList(new LambdaQueryWrapper<ReservationOrder>().eq(ReservationOrder::getGoodsNumber, businessDocumentOrderDO.getGoodsNumber()));
|
||||||
|
|||||||
Reference in New Issue
Block a user