skyouc
2024-12-21 c635d78b479510ebe2556a420948effcd30a0731
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderNoRuleServiceImpl.java
@@ -1,93 +1,93 @@
package com.zy.asrs.wms.asrs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.Order;
import com.zy.asrs.wms.asrs.entity.OrderType;
import com.zy.asrs.wms.asrs.entity.Wave;
import com.zy.asrs.wms.asrs.mapper.OrderNoRuleMapper;
import com.zy.asrs.wms.asrs.entity.OrderNoRule;
import com.zy.asrs.wms.asrs.service.OrderNoRuleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.wms.asrs.service.OrderService;
import com.zy.asrs.wms.asrs.service.OrderTypeService;
import com.zy.asrs.wms.asrs.service.WaveService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service("orderNoRuleService")
public class OrderNoRuleServiceImpl extends ServiceImpl<OrderNoRuleMapper, OrderNoRule> implements OrderNoRuleService {
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderTypeService orderTypeService;
    @Autowired
    private WaveService waveService;
    @Override
    public String getOrderNo(Integer orderType) {
        List<OrderNoRule> list = this.list(new LambdaQueryWrapper<OrderNoRule>().eq(OrderNoRule::getOrderType, orderType).eq(OrderNoRule::getStatus, 1));
        if (list.isEmpty()) {
            throw new CoolException("订单类型无规则");
        }
        OrderNoRule orderNoRule = list.get(0);
        StringBuffer buffer = new StringBuffer();
        buffer.append(orderNoRule.getOrderConst());//订单常量
        String pattern = "yyyyMMddHHmmss";
        if (orderNoRule.getTimeRule() == 0) {
            pattern = "yyyyMMdd";
        }
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        buffer.append(format.format(new Date()));//订单时间
        if(orderType == 1 || orderType == 2) {
            //查当天订单数量
            List<OrderType> list1 = orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, orderType));
            ArrayList<Long> longs = new ArrayList<>();
            for (OrderType orderType1 : list1) {
                longs.add(orderType1.getId());
            }
            LocalDateTime startOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
            LocalDateTime endOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
            List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getOrderType, longs).between(Order::getCreateTime, startOfDay, endOfDay));
            int size = orders.size();
            String sizeStr = String.valueOf(size);
            StringBuilder sizeBuilder = new StringBuilder(sizeStr);
            if (sizeStr.length() < orderNoRule.getIncreaseNum()) {
                for (int i = 0; i < orderNoRule.getIncreaseNum() - sizeStr.length(); i++) {
                    sizeBuilder.insert(0, "0");
                }
            }
            buffer.append(sizeBuilder);
        }else {
            //查当天波次订单数量
            LocalDateTime startOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
            LocalDateTime endOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
            List<Wave> waves = waveService.list(new LambdaQueryWrapper<Wave>().between(Wave::getCreateTime, startOfDay, endOfDay));
            int size = waves.size();
            String sizeStr = String.valueOf(size);
            StringBuilder sizeBuilder = new StringBuilder(sizeStr);
            if (sizeStr.length() < orderNoRule.getIncreaseNum()) {
                for (int i = 0; i < orderNoRule.getIncreaseNum() - sizeStr.length(); i++) {
                    sizeBuilder.insert(0, "0");
                }
            }
            buffer.append(sizeBuilder);
        }
        return buffer.toString();
    }
}
package com.zy.asrs.wms.asrs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.Order;
import com.zy.asrs.wms.asrs.entity.OrderType;
import com.zy.asrs.wms.asrs.entity.Wave;
import com.zy.asrs.wms.asrs.mapper.OrderNoRuleMapper;
import com.zy.asrs.wms.asrs.entity.OrderNoRule;
import com.zy.asrs.wms.asrs.service.OrderNoRuleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.wms.asrs.service.OrderService;
import com.zy.asrs.wms.asrs.service.OrderTypeService;
import com.zy.asrs.wms.asrs.service.WaveService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service("orderNoRuleService")
public class OrderNoRuleServiceImpl extends ServiceImpl<OrderNoRuleMapper, OrderNoRule> implements OrderNoRuleService {
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderTypeService orderTypeService;
    @Autowired
    private WaveService waveService;
    @Override
    public String getOrderNo(Integer orderType) {
        List<OrderNoRule> list = this.list(new LambdaQueryWrapper<OrderNoRule>().eq(OrderNoRule::getOrderType, orderType).eq(OrderNoRule::getStatus, 1));
        if (list.isEmpty()) {
            throw new CoolException("订单类型无规则");
        }
        OrderNoRule orderNoRule = list.get(0);
        StringBuffer buffer = new StringBuffer();
        buffer.append(orderNoRule.getOrderConst());//订单常量
        String pattern = "yyyyMMddHHmmss";
        if (orderNoRule.getTimeRule() == 0) {
            pattern = "yyyyMMdd";
        }
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        buffer.append(format.format(new Date()));//订单时间
        if(orderType == 1 || orderType == 2) {
            //查当天订单数量
            List<OrderType> list1 = orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, orderType));
            ArrayList<Long> longs = new ArrayList<>();
            for (OrderType orderType1 : list1) {
                longs.add(orderType1.getId());
            }
            LocalDateTime startOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
            LocalDateTime endOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
            List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getOrderType, longs).between(Order::getCreateTime, startOfDay, endOfDay));
            int size = orders.size();
            String sizeStr = String.valueOf(size);
            StringBuilder sizeBuilder = new StringBuilder(sizeStr);
            if (sizeStr.length() < orderNoRule.getIncreaseNum()) {
                for (int i = 0; i < orderNoRule.getIncreaseNum() - sizeStr.length(); i++) {
                    sizeBuilder.insert(0, "0");
                }
            }
            buffer.append(sizeBuilder);
        }else {
            //查当天波次订单数量
            LocalDateTime startOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
            LocalDateTime endOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
            List<Wave> waves = waveService.list(new LambdaQueryWrapper<Wave>().between(Wave::getCreateTime, startOfDay, endOfDay));
            int size = waves.size();
            String sizeStr = String.valueOf(size);
            StringBuilder sizeBuilder = new StringBuilder(sizeStr);
            if (sizeStr.length() < orderNoRule.getIncreaseNum()) {
                for (int i = 0; i < orderNoRule.getIncreaseNum() - sizeStr.length(); i++) {
                    sizeBuilder.insert(0, "0");
                }
            }
            buffer.append(sizeBuilder);
        }
        return buffer.toString();
    }
}