SchedulingServiceV1Impl.java 2.19 KB
package com.ruoyi.scheduling.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.scheduling.domain.DriverSchedulingV1;
import com.ruoyi.scheduling.mapper.SchedulingMapperV1;
import com.ruoyi.scheduling.service.SchedulingServiceV1;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.util.Date;
import java.util.List;

@Service
public class SchedulingServiceV1Impl extends ServiceImpl<SchedulingMapperV1, DriverSchedulingV1> implements SchedulingServiceV1 {

    @Override
    public List<DriverSchedulingV1> queryByJobCodeAndSchedulingDate(String jobCode, Date date) {
        String dateStr = DateUtils.FAST_YYYY_MM_DD.format(org.apache.commons.lang3.time.DateUtils.addDays(date, 1));
        dateStr = StringUtils.join(dateStr, " 06:30:30");
        LambdaQueryWrapper<DriverSchedulingV1> wrapper = new LambdaQueryWrapper<>();
        try {
            Date date1 = DateUtils.FAST_YYYY_MM_DDHHMMSS.parse(dateStr);

//            dateStr = DateUtils.FAST_YYYY_MM_DD.format(org.apache.commons.lang3.time.DateUtils.addDays(date, -1));
            dateStr = DateUtils.FAST_YYYY_MM_DD.format(date);
            dateStr = StringUtils.join(dateStr, " 00:00:00");
            Date date2 = DateUtils.FAST_YYYY_MM_DDHHMMSS.parse(dateStr);

            wrapper.eq(DriverSchedulingV1::getJobCode, jobCode);
            wrapper.and(wr -> {
                wr.eq(DriverSchedulingV1::getScheduleDate, date).or().between(DriverSchedulingV1::getFcsjT, date2.getTime(), date1.getTime());
            });
            wrapper.orderByAsc(DriverSchedulingV1::getFcsjT);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        return list(wrapper);
    }

    @Override
    public List<DriverSchedulingV1> queryByNbbmAndDate(String nbbm, Date date) {
        LambdaQueryWrapper<DriverSchedulingV1> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(DriverSchedulingV1::getNbbm, nbbm).eq(DriverSchedulingV1::getScheduleDate, date);

        return list(wrapper);
    }
}