package org.jeecg.modules.dnc.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.dnc.entity.DeviceCharacters; import org.jeecg.modules.dnc.exception.ExceptionCast; import org.jeecg.modules.dnc.mapper.DeviceCharactersMapper; import org.jeecg.modules.dnc.request.DeviceCharactersRequest; import org.jeecg.modules.dnc.response.CommonCode; import org.jeecg.modules.dnc.service.IDeviceCharactersService; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.List; @Service public class DeviceCharactersServiceImpl extends ServiceImpl implements IDeviceCharactersService { @Override public Result findByPageList(int page, int size, DeviceCharactersRequest deviceCharactersRequest) { if(page < 1 || size < 1) { ExceptionCast.cast(CommonCode.INVALID_PAGE); } IPage pageData = new Page<>(page, size); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); List productIdList = Arrays.asList(user.getProductionIds().split(",")); LambdaQueryChainWrapper lambdaQuery = super.lambdaQuery(); if(deviceCharactersRequest != null) { lambdaQuery.like(StrUtil.isNotEmpty(deviceCharactersRequest.getDeviceNo()),DeviceCharacters::getDeviceNo, deviceCharactersRequest.getDeviceNo()); lambdaQuery.eq(StrUtil.isNotEmpty(deviceCharactersRequest.getDepartId()),DeviceCharacters::getDepartId, deviceCharactersRequest.getDepartId()); lambdaQuery.like(StrUtil.isNotEmpty(deviceCharactersRequest.getControlSystem()),DeviceCharacters::getControlSystem, deviceCharactersRequest.getControlSystem()); lambdaQuery.like(StrUtil.isNotEmpty(deviceCharactersRequest.getCharacters()),DeviceCharacters::getCharacters, deviceCharactersRequest.getCharacters()); lambdaQuery.ge(StrUtil.isNotEmpty(deviceCharactersRequest.getStartTime()),DeviceCharacters::getCreateTime,deviceCharactersRequest.getStartTime()); lambdaQuery.le(StrUtil.isNotEmpty(deviceCharactersRequest.getEndTime()),DeviceCharacters::getCreateTime,deviceCharactersRequest.getEndTime()); } lambdaQuery.in(DeviceCharacters::getDepartId, productIdList); lambdaQuery.orderByDesc(DeviceCharacters::getCreateTime); IPage userIPage = lambdaQuery.page(pageData); return Result.ok(userIPage); } }