NewDriverServiceImpl.java 16.4 KB
package com.ruoyi.service.impl.driver;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.ruoyi.common.TipEnum;
import com.ruoyi.common.core.domain.ResponseResult;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.config.BsthSystemConfig;
import com.ruoyi.domain.OrderEntity;
import com.ruoyi.domain.driver.NewDriver;
import com.ruoyi.mapper.driver.NewDriverMapper;
import com.ruoyi.service.driver.NewDriverService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.File;
import java.util.*;

@Service
@Slf4j
public class NewDriverServiceImpl extends ServiceImpl<NewDriverMapper, NewDriver> implements NewDriverService {
    @Autowired
    private NewDriverMapper newDriverMapper;
    @Autowired
    private BsthSystemConfig bsthSystemConfig;

    /**
     * 分页查询
     */
    @Override
    public IPage<NewDriver> pageList(Page<NewDriver> page, NewDriver entity, OrderEntity orderEntity) {
        LambdaQueryWrapper<NewDriver> countWrapper = new LambdaQueryWrapper<>(entity);
        countWrapper.select(NewDriver::getJobCode);
        int count = count(countWrapper);

        List<NewDriver> lists = Collections.emptyList();
        if (count > 0) {
            PageHelper.startPage((int) page.getCurrent(), (int) page.getSize(), false);
            LambdaQueryWrapper<NewDriver> selectWrapper = new LambdaQueryWrapper<>(entity);
            orderColumn(selectWrapper, orderEntity);
            lists = list(selectWrapper);
        }

        IPage<NewDriver> returnPage = new Page<NewDriver>();
        returnPage.setRecords(lists);
        returnPage.setPages(count % page.getSize() == 0 ? count / page.getSize() : count / page.getSize() + 1);
        returnPage.setCurrent(page.getCurrent());
        returnPage.setSize(page.getSize());
        returnPage.setTotal(count);

        return returnPage;
    }

    @Override
    public List<NewDriver> list(NewDriver entity) {
        return list(new LambdaQueryWrapper<>(entity));
    }

    @Override
    public List<NewDriver> listOficRfidAndLikePersonnelNameJobCodeIcCardCode(NewDriver newDriver) {
        LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>();

        if (org.apache.commons.lang3.StringUtils.isNotEmpty(newDriver.getIcRfid())) {
            wrapper.eq(NewDriver::getIcRfid, newDriver.getIcRfid());
        }

        if (org.apache.commons.lang3.StringUtils.isNotEmpty(newDriver.getPersonnelName())) {
            wrapper.like(NewDriver::getPersonnelName, newDriver.getPersonnelName());
        }

        if (org.apache.commons.lang3.StringUtils.isNotEmpty(newDriver.getJobCode())) {
            wrapper.like(NewDriver::getJobCode, newDriver.getJobCode());
        }

        if (org.apache.commons.lang3.StringUtils.isNotEmpty(newDriver.getIcCardCode())) {
            wrapper.like(NewDriver::getIcCardCode, newDriver.getIcCardCode());
        }

        return list(wrapper);
    }

    @Override
    public List<NewDriver> list(Collection<String> jobCodes) {
        if (CollectionUtils.isEmpty(jobCodes)) {
            return Collections.emptyList();
        }
        LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>();
        wrapper.in(NewDriver::getJobCode, jobCodes);
        return list(wrapper);
    }

    @Override
    public List<NewDriver> listOfIds(Collection<String> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return Collections.emptyList();
        }
        LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>();
        wrapper.in(NewDriver::getId, ids);
        return list(wrapper);
    }

    @Override
    public List<NewDriver> listOfIdsInt(Collection<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return Collections.emptyList();
        }
        LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>();
        wrapper.in(NewDriver::getId, ids);
        return list(wrapper);
    }

    @Override
    public List<NewDriver> listOfIdsLon(Collection<Long> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return Collections.emptyList();
        }
        LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>();
        wrapper.in(NewDriver::getId, ids);
        return list(wrapper);
    }

    @Override
    public List<NewDriver> listOfSelect(NewDriver entity) {
        LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>(entity);
        wrapper.select(NewDriver::getId, NewDriver::getJobCode, NewDriver::getPersonnelName);
        return list(wrapper);
    }

    @Override
    public NewDriver getOne(NewDriver entity) {
        return getOne(new LambdaQueryWrapper<>(entity));
    }

    @Override
    public Integer countId(NewDriver entity) {
        LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>(entity);
        wrapper.select(NewDriver::getJobCode);
        return count(wrapper);
    }


    /**
     * 插入有值的列
     */
    @Override
    public int insertSelective(NewDriver entity) {
        return newDriverMapper.insertSelective(entity);
    }

    /**
     * 插入数据
     */
    @Override
    public boolean insert(NewDriver entity) {
        return save(entity);
    }

    /**
     * 根据主键修改数据
     */
    @Override
    public boolean updateByPrimaryKey(NewDriver entity) {
        return updateById(entity);
    }

    @Override
    public TipEnum updateClient(NewDriver entity) {
        NewDriver driver = new NewDriver();
        if(StringUtils.isNotEmpty(entity.getJobCode())) {
            driver.setJobCode(entity.getJobCode());
        }
        driver.setId(entity.getId());
        NewDriver source = getOne(driver);
        if (Objects.isNull(source)) {
            log.info("[{}]找不到数据", entity);
            return TipEnum.TIP_404;
        }

        LambdaUpdateWrapper<NewDriver> wrapper = new LambdaUpdateWrapper<>();

        wrapper.set(NewDriver::getImage, entity.getImage()).set(NewDriver::getFaceFeature, entity.getFaceFeature())
                .set(NewDriver::getBlueTooth, entity.getBlueTooth()).set(NewDriver::getInteger, entity.getInteger())
                .set(NewDriver::getSyncontent, entity.getSyncontent()).set(NewDriver::getCsn, entity.getCsn())
                .set(NewDriver::getIcCardCode,entity.getIcCardCode()).set(NewDriver::getImageVersion,entity.getImageVersion())
                .eq(NewDriver::getId, entity.getId());
        boolean flag = update(wrapper);
        return flag ? TipEnum.TIP_200 : TipEnum.TIP_500;
    }

    @Override
    public TipEnum faceRegister(NewDriver entity) {
        NewDriver driver = new NewDriver();
        driver.setIcCardCode(entity.getIcCardCode());
        NewDriver source = getOne(driver);
        if (Objects.isNull(source)) {
            log.info("[{}]找不到数据", entity);
            return TipEnum.TIP_404;
        }
        LambdaUpdateWrapper<NewDriver> wrapper = new LambdaUpdateWrapper<NewDriver>();
        StringBuilder builder = new StringBuilder(bsthSystemConfig.getImageBasePath());
        builder.append(File.separator);
        builder.append(source.getId());
        builder.append(File.separator);
        builder.append("image");

        ResponseResult<String> resultObj = FileUploadUtils.uploadBase64OfImage(builder.toString(), UUID.randomUUID().toString().
                replaceAll("-", ""), "png", entity.getImage());
        if (!resultObj.isSuccess()) {
            return TipEnum.getObjByCode(resultObj.getCode());
        }

        String result = StringUtils.substringAfter(resultObj.getData(), bsthSystemConfig.getImageBasePath() + File.separator);
        entity.setImage(result);

        wrapper.set(NewDriver::getImage, entity.getImage())
                .set(NewDriver::getFaceSignIn, entity.getFaceSignIn())
                .set(NewDriver::getSignInEquipment, entity.getFaceSignIn())
                .eq(NewDriver::getId, source.getId());
        boolean flag = update(wrapper);
        return flag ? TipEnum.TIP_200 : TipEnum.TIP_500;
    }

    /***根据主键删除数据*/
    @Override
    public boolean deleteById(java.lang.String jobCode) {
        return removeById(jobCode);
    }


    public static void orderColumn(LambdaQueryWrapper<NewDriver> wrapper, com.ruoyi.domain.OrderEntity orderEntity) {
        if (org.apache.commons.lang3.StringUtils.equals("ascending", orderEntity.getOrder())) {
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "id")) {
                wrapper.orderByAsc(NewDriver::getId);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "jobCode")) {
                wrapper.orderByAsc(NewDriver::getJobCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "companyCode")) {
                wrapper.orderByAsc(NewDriver::getCompanyCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "brancheCompanyCode")) {
                wrapper.orderByAsc(NewDriver::getBrancheCompanyCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "personnelName")) {
                wrapper.orderByAsc(NewDriver::getPersonnelName);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "papersCode")) {
                wrapper.orderByAsc(NewDriver::getPapersCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "icCardCode")) {
                wrapper.orderByAsc(NewDriver::getIcCardCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "personnelType")) {
                wrapper.orderByAsc(NewDriver::getPersonnelType);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "posts")) {
                wrapper.orderByAsc(NewDriver::getPosts);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "card")) {
                wrapper.orderByAsc(NewDriver::getCard);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "telphone")) {
                wrapper.orderByAsc(NewDriver::getTelphone);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "icRfid")) {
                wrapper.orderByAsc(NewDriver::getIcRfid);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "idRfid")) {
                wrapper.orderByAsc(NewDriver::getIdRfid);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "tagRfid")) {
                wrapper.orderByAsc(NewDriver::getTagRfid);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "remark")) {
                wrapper.orderByAsc(NewDriver::getRemark);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "lineName")) {
                wrapper.orderByAsc(NewDriver::getLineName);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "lineCode")) {
                wrapper.orderByAsc(NewDriver::getLineCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "faceSignIn")) {
                wrapper.orderByAsc(NewDriver::getFaceSignIn);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "image")) {
                wrapper.orderByAsc(NewDriver::getImage);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "updateTime")) {
                wrapper.orderByAsc(NewDriver::getUpdateTime);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "signInEquipment")) {
                wrapper.orderByAsc(NewDriver::getSignInEquipment);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "fleetName")) {
                wrapper.orderByAsc(NewDriver::getFleetName);
            }
        } else if (org.apache.commons.lang3.StringUtils.equals("descending", orderEntity.getOrder())) {
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "id")) {
                wrapper.orderByDesc(NewDriver::getId);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "jobCode")) {
                wrapper.orderByDesc(NewDriver::getJobCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "companyCode")) {
                wrapper.orderByDesc(NewDriver::getCompanyCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "brancheCompanyCode")) {
                wrapper.orderByDesc(NewDriver::getBrancheCompanyCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "personnelName")) {
                wrapper.orderByDesc(NewDriver::getPersonnelName);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "papersCode")) {
                wrapper.orderByDesc(NewDriver::getPapersCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "icCardCode")) {
                wrapper.orderByDesc(NewDriver::getIcCardCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "personnelType")) {
                wrapper.orderByDesc(NewDriver::getPersonnelType);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "posts")) {
                wrapper.orderByDesc(NewDriver::getPosts);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "card")) {
                wrapper.orderByDesc(NewDriver::getCard);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "telphone")) {
                wrapper.orderByDesc(NewDriver::getTelphone);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "icRfid")) {
                wrapper.orderByDesc(NewDriver::getIcRfid);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "idRfid")) {
                wrapper.orderByDesc(NewDriver::getIdRfid);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "tagRfid")) {
                wrapper.orderByDesc(NewDriver::getTagRfid);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "remark")) {
                wrapper.orderByDesc(NewDriver::getRemark);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "lineName")) {
                wrapper.orderByDesc(NewDriver::getLineName);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "lineCode")) {
                wrapper.orderByDesc(NewDriver::getLineCode);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "faceSignIn")) {
                wrapper.orderByDesc(NewDriver::getFaceSignIn);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "image")) {
                wrapper.orderByDesc(NewDriver::getImage);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "updateTime")) {
                wrapper.orderByDesc(NewDriver::getUpdateTime);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "signInEquipment")) {
                wrapper.orderByDesc(NewDriver::getSignInEquipment);
            }
            if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "fleetName")) {
                wrapper.orderByDesc(NewDriver::getFleetName);
            }
        } else {
            wrapper.orderByDesc(NewDriver::getId);
        }
    }

}