wjli
2024-03-18 84fd23e5e865bd5529441a0c318809a00362f44c
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java
@@ -1,13 +1,15 @@
package cn.exrick.xboot.your.schedulings;
import cn.exrick.xboot.your.entity.*;
import cn.exrick.xboot.your.service.*;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -37,46 +39,77 @@
    private ICustomerService iCustomerService;
    @Autowired
    private ICarService iCarService;
    @Autowired
    private ICustomerReceiveService iCustomerReceiveService;
    @Scheduled(cron="0 30 23 * * ?")//每晚凌晨1点执行
    @Autowired
    private IOrderLogService iOrderLogService;
    /**
     * 每天15:59分处理
     * 在原始订单数据(t_order_task_original)获取订单日期为今天的原始订单,转换成订单数据存入订单任务数据表(t_order_task)
     */
    @Scheduled(cron="0 59 15 * * ?")//每晚凌晨1点执行
    //@Scheduled(cron="0 11 15 * * ?")//每晚凌晨1点执行
    public void execute(){
        System.out.println("开始处理订单");
        QueryWrapper<OrderTaskOriginal> queryWrapper = new QueryWrapper<>();
        queryWrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date()));
        List<OrderTaskOriginal> list = iOrderTaskOriginalService.list();
        queryWrapper.between("order_date",DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date()));
        List<OrderTaskOriginal> list = iOrderTaskOriginalService.list(queryWrapper);
        int sumNum = 0;
        for(OrderTaskOriginal original:list){
            OrderTask orderTask = new OrderTask();
            orderTask.setCode(original.getCode());
            orderTask.setAreaId(getArea(original.getAreaName()));
            orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection()));
            orderTask.setCustomerId(getCustomer(original.getCustomerCode(),original.getCustomerName(),original.getCustomerPhone(),original.getLinker(),orderTask.getAreaId(),orderTask.getAreaSectionId()));
            orderTask.setEndDate(original.getPacketDate());
            orderTask.setSendDate(original.getSendDate());
            orderTask.setOrderDate(original.getOrderDate());
            orderTask.setSeq(original.getSeq());
            orderTask.setNum(original.getNum());
            orderTask.setCarId(orderTask.getAreaId());
            iOrderTaskService.saveOrUpdate(orderTask);
            try {
                OrderTask orderTask = new OrderTask();
                orderTask.setCode(original.getCode());
                Area area = getArea(original.getAreaName());
                orderTask.setAreaId(area.getId());
                orderTask.setCarId(area.getCarId());
                orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection()));
                Customer customer = getCustomer(original.getCustomerCode(), original.getCustomerName(), original.getCustomerPhone(), original.getLinker(), orderTask.getAreaId(), orderTask.getAreaSectionId());
                orderTask.setCustomerId(customer.getId());
                orderTask.setCustomerName(customer.getName());
                orderTask.setLinker(customer.getLinker());
                orderTask.setEndDate(original.getPacketDate());
                //orderTask.setSendDate(original.getSendDate());
                orderTask.setSendDate(DateUtil.offsetDay(original.getOrderDate(),1));
                orderTask.setOrderDate(original.getOrderDate());
                if(original.getSeq()!=null){
                    orderTask.setSeq(original.getSeq());
                }else{
                    orderTask.setSeq(999);
                }
            updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone());
                orderTask.setNum(original.getNum());
                sumNum+=original.getNum();
            QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>();
            wrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date()));
            wrapper.eq("order_id",original.getId());
            List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper);
            for(OrderDetailOriginal o:list1){
                OrderDetail orderDetail = new OrderDetail();
                orderDetail.setNum(o.getNum());
                orderDetail.setOrderId(orderTask.getId());
                orderDetail.setProduct(o.getProductName());
                iOrderDetailService.saveOrUpdate(orderDetail);
                iOrderTaskService.saveOrUpdate(orderTask);
                updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone());
                QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>();
                wrapper.eq("order_id",original.getId());
                List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper);
                List<OrderDetail> detailList = new ArrayList<>();
                for(OrderDetailOriginal o:list1){
                    OrderDetail orderDetail = new OrderDetail();
                    orderDetail.setNum(o.getNum());
                    orderDetail.setOrderId(orderTask.getId());
                    orderDetail.setProduct(o.getProductName());
                    detailList.add(orderDetail);
                }
                iOrderDetailService.saveBatch(detailList);
            }catch (Exception e){
                System.out.println(original.getId()+"定时转换报错");
            }
        }
        OrderLog orderLog = new OrderLog();
        orderLog.setNum(sumNum);
        orderLog.setType(0);
        iOrderLogService.save(orderLog);
        System.out.println("处理订单结束");
    }
@@ -84,9 +117,9 @@
        QueryWrapper<CustomerReceive> wrapper = new QueryWrapper<>();
        wrapper.eq("customer_id",customerId);
        wrapper.eq("name",linker);
        CustomerReceive one = iCustomerReceiveService.getOne(wrapper);
        if(one==null){
            one = new CustomerReceive();
        List<CustomerReceive> list = iCustomerReceiveService.list(wrapper);
        if(list.size()==0){
            CustomerReceive one = new CustomerReceive();
            one.setCustomerId(customerId);
            one.setFstatus(0);
            one.setStatus(1);
@@ -96,7 +129,7 @@
        }
    }
    public String getCustomer(String customerCode,String customerName,String customerPhone,String linker,String areaId,String areaSectionId){
    public Customer getCustomer(String customerCode,String customerName,String customerPhone,String linker,String areaId,String areaSectionId){
        QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("licence",customerCode);
        Customer one = iCustomerService.getOne(queryWrapper);
@@ -110,15 +143,15 @@
            customer.setAreaSectionId(areaSectionId);
            customer.setKstatus(1);
            iCustomerService.saveOrUpdate(customer);
            return customer.getId();
            return customer;
        }
        one.setAreaId(areaId);
        one.setAreaSectionId(areaSectionId);
        iCustomerService.saveOrUpdate(one);
        return one.getId();
        return one;
    }
    public String getArea(String name){
    public Area getArea(String name){
        QueryWrapper<Area> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name",name);
        Area one = iAreaService.getOne(queryWrapper);
@@ -126,9 +159,9 @@
            Area area = new Area();
            area.setName(name);
            iAreaService.saveOrUpdate(area);
            return area.getId();
            return area;
        }
        return one.getId();
        return one;
    }
    public String getAreaSection(String areaId,String name){
@@ -148,15 +181,17 @@
    public String getCarId(String areaId){
        Area area = iAreaService.getById(areaId);
        String userId = area.getUserId();
        if(StrUtil.isNotEmpty(userId)){
            QueryWrapper<Car> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("follow_user_id",userId);
            Car one = iCarService.getOne(queryWrapper);
            return one.getId();
        }else{
            return null;
        }
        return area.getCarId();
//        String userId = area.getUserId();
//        if(StrUtil.isNotEmpty(userId)){
//            QueryWrapper<Car> queryWrapper = new QueryWrapper<>();
//            queryWrapper.eq("follow_user_id",userId);
//            Car one = iCarService.getOne(queryWrapper);
//            return one.getId();
//        }else{
//            return null;
//        }
        //return iAreaService.getCarId(areaId);
    }
    public String dateStringFormat(Date strDate) {